{"id":"c88eca3ce2e7d72a0f4473a64738f295","_format":"hh-sol-build-info-1","solcVersion":"0.8.28","solcLongVersion":"0.8.28+commit.7893614a","input":{"language":"Solidity","sources":{"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"@openzeppelin/contracts/access/IAccessControl.sol\";\nimport {ContextUpgradeable} from \"../utils/ContextUpgradeable.sol\";\nimport {ERC165Upgradeable} from \"../utils/introspection/ERC165Upgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n *     require(hasRole(MY_ROLE, msg.sender));\n *     ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControlUpgradeable is Initializable, ContextUpgradeable, IAccessControl, ERC165Upgradeable {\n    struct RoleData {\n        mapping(address account => bool) hasRole;\n        bytes32 adminRole;\n    }\n\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n\n    /// @custom:storage-location erc7201:openzeppelin.storage.AccessControl\n    struct AccessControlStorage {\n        mapping(bytes32 role => RoleData) _roles;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.AccessControl\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant AccessControlStorageLocation = 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800;\n\n    function _getAccessControlStorage() private pure returns (AccessControlStorage storage $) {\n        assembly {\n            $.slot := AccessControlStorageLocation\n        }\n    }\n\n    /**\n     * @dev Modifier that checks that an account has a specific role. Reverts\n     * with an {AccessControlUnauthorizedAccount} error including the required role.\n     */\n    modifier onlyRole(bytes32 role) {\n        _checkRole(role);\n        _;\n    }\n\n    function __AccessControl_init() internal onlyInitializing {\n    }\n\n    function __AccessControl_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) public view virtual returns (bool) {\n        AccessControlStorage storage $ = _getAccessControlStorage();\n        return $._roles[role].hasRole[account];\n    }\n\n    /**\n     * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n     * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.\n     */\n    function _checkRole(bytes32 role) internal view virtual {\n        _checkRole(role, _msgSender());\n    }\n\n    /**\n     * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n     * is missing `role`.\n     */\n    function _checkRole(bytes32 role, address account) internal view virtual {\n        if (!hasRole(role, account)) {\n            revert AccessControlUnauthorizedAccount(account, role);\n        }\n    }\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {\n        AccessControlStorage storage $ = _getAccessControlStorage();\n        return $._roles[role].adminRole;\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `callerConfirmation`.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function renounceRole(bytes32 role, address callerConfirmation) public virtual {\n        if (callerConfirmation != _msgSender()) {\n            revert AccessControlBadConfirmation();\n        }\n\n        _revokeRole(role, callerConfirmation);\n    }\n\n    /**\n     * @dev Sets `adminRole` as ``role``'s admin role.\n     *\n     * Emits a {RoleAdminChanged} event.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n        AccessControlStorage storage $ = _getAccessControlStorage();\n        bytes32 previousAdminRole = getRoleAdmin(role);\n        $._roles[role].adminRole = adminRole;\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\n    }\n\n    /**\n     * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual returns (bool) {\n        AccessControlStorage storage $ = _getAccessControlStorage();\n        if (!hasRole(role, account)) {\n            $._roles[role].hasRole[account] = true;\n            emit RoleGranted(role, account, _msgSender());\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {\n        AccessControlStorage storage $ = _getAccessControlStorage();\n        if (hasRole(role, account)) {\n            $._roles[role].hasRole[account] = false;\n            emit RoleRevoked(role, account, _msgSender());\n            return true;\n        } else {\n            return false;\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.20;\n\nimport {OwnableUpgradeable} from \"./OwnableUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.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 * This extension of the {Ownable} contract includes a two-step mechanism to transfer\n * ownership, where the new owner must call {acceptOwnership} in order to replace the\n * old one. This can help prevent common mistakes, such as transfers of ownership to\n * incorrect accounts, or to contracts that are unable to interact with the\n * permission system.\n *\n * The initial owner is specified at deployment time in the constructor for `Ownable`. 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 Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\n    /// @custom:storage-location erc7201:openzeppelin.storage.Ownable2Step\n    struct Ownable2StepStorage {\n        address _pendingOwner;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable2Step\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant Ownable2StepStorageLocation = 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00;\n\n    function _getOwnable2StepStorage() private pure returns (Ownable2StepStorage storage $) {\n        assembly {\n            $.slot := Ownable2StepStorageLocation\n        }\n    }\n\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n    function __Ownable2Step_init() internal onlyInitializing {\n    }\n\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev Returns the address of the pending owner.\n     */\n    function pendingOwner() public view virtual returns (address) {\n        Ownable2StepStorage storage $ = _getOwnable2StepStorage();\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     * Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\n     */\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\n        Ownable2StepStorage storage $ = _getOwnable2StepStorage();\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        Ownable2StepStorage storage $ = _getOwnable2StepStorage();\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        if (pendingOwner() != sender) {\n            revert OwnableUnauthorizedAccount(sender);\n        }\n        _transferOwnership(sender);\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ContextUpgradeable} from \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.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 * The initial owner is set to the address provided by the deployer. This can\n * 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 OwnableUpgradeable is Initializable, ContextUpgradeable {\n    /// @custom:storage-location erc7201:openzeppelin.storage.Ownable\n    struct OwnableStorage {\n        address _owner;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant OwnableStorageLocation = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300;\n\n    function _getOwnableStorage() private pure returns (OwnableStorage storage $) {\n        assembly {\n            $.slot := OwnableStorageLocation\n        }\n    }\n\n    /**\n     * @dev The caller account is not authorized to perform an operation.\n     */\n    error OwnableUnauthorizedAccount(address account);\n\n    /**\n     * @dev The owner is not a valid owner account. (eg. `address(0)`)\n     */\n    error OwnableInvalidOwner(address owner);\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n     */\n    function __Ownable_init(address initialOwner) internal onlyInitializing {\n        __Ownable_init_unchained(initialOwner);\n    }\n\n    function __Ownable_init_unchained(address initialOwner) internal onlyInitializing {\n        if (initialOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(initialOwner);\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        OwnableStorage storage $ = _getOwnableStorage();\n        return $._owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        if (owner() != _msgSender()) {\n            revert OwnableUnauthorizedAccount(_msgSender());\n        }\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        if (newOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\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        OwnableStorage storage $ = _getOwnableStorage();\n        address oldOwner = $._owner;\n        $._owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n *     function initializeV2() reinitializer(2) public {\n *         __ERC20Permit_init(\"MyToken\");\n *     }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n *     _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n    /**\n     * @dev Storage of the initializable contract.\n     *\n     * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n     * when using with upgradeable contracts.\n     *\n     * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n     */\n    struct InitializableStorage {\n        /**\n         * @dev Indicates that the contract has been initialized.\n         */\n        uint64 _initialized;\n        /**\n         * @dev Indicates that the contract is in the process of being initialized.\n         */\n        bool _initializing;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n    /**\n     * @dev The contract is already initialized.\n     */\n    error InvalidInitialization();\n\n    /**\n     * @dev The contract is not initializing.\n     */\n    error NotInitializing();\n\n    /**\n     * @dev Triggered when the contract has been initialized or reinitialized.\n     */\n    event Initialized(uint64 version);\n\n    /**\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n     * `onlyInitializing` functions can be used to initialize parent contracts.\n     *\n     * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n     * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n     * production.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier initializer() {\n        // solhint-disable-next-line var-name-mixedcase\n        InitializableStorage storage $ = _getInitializableStorage();\n\n        // Cache values to avoid duplicated sloads\n        bool isTopLevelCall = !$._initializing;\n        uint64 initialized = $._initialized;\n\n        // Allowed calls:\n        // - initialSetup: the contract is not in the initializing state and no previous version was\n        //                 initialized\n        // - construction: the contract is initialized at version 1 (no reininitialization) and the\n        //                 current contract is just being deployed\n        bool initialSetup = initialized == 0 && isTopLevelCall;\n        bool construction = initialized == 1 && address(this).code.length == 0;\n\n        if (!initialSetup && !construction) {\n            revert InvalidInitialization();\n        }\n        $._initialized = 1;\n        if (isTopLevelCall) {\n            $._initializing = true;\n        }\n        _;\n        if (isTopLevelCall) {\n            $._initializing = false;\n            emit Initialized(1);\n        }\n    }\n\n    /**\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n     * used to initialize parent contracts.\n     *\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n     * are added through upgrades and that require initialization.\n     *\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\n     *\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n     * a contract, executing them in the right order is up to the developer or operator.\n     *\n     * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier reinitializer(uint64 version) {\n        // solhint-disable-next-line var-name-mixedcase\n        InitializableStorage storage $ = _getInitializableStorage();\n\n        if ($._initializing || $._initialized >= version) {\n            revert InvalidInitialization();\n        }\n        $._initialized = version;\n        $._initializing = true;\n        _;\n        $._initializing = false;\n        emit Initialized(version);\n    }\n\n    /**\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\n     */\n    modifier onlyInitializing() {\n        _checkInitializing();\n        _;\n    }\n\n    /**\n     * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n     */\n    function _checkInitializing() internal view virtual {\n        if (!_isInitializing()) {\n            revert NotInitializing();\n        }\n    }\n\n    /**\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n     * through proxies.\n     *\n     * Emits an {Initialized} event the first time it is successfully executed.\n     */\n    function _disableInitializers() internal virtual {\n        // solhint-disable-next-line var-name-mixedcase\n        InitializableStorage storage $ = _getInitializableStorage();\n\n        if ($._initializing) {\n            revert InvalidInitialization();\n        }\n        if ($._initialized != type(uint64).max) {\n            $._initialized = type(uint64).max;\n            emit Initialized(type(uint64).max);\n        }\n    }\n\n    /**\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\n     */\n    function _getInitializedVersion() internal view returns (uint64) {\n        return _getInitializableStorage()._initialized;\n    }\n\n    /**\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n     */\n    function _isInitializing() internal view returns (bool) {\n        return _getInitializableStorage()._initializing;\n    }\n\n    /**\n     * @dev Returns a pointer to the storage namespace.\n     */\n    // solhint-disable-next-line var-name-mixedcase\n    function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n        assembly {\n            $.slot := INITIALIZABLE_STORAGE\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (proxy/utils/UUPSUpgradeable.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1822Proxiable} from \"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\";\nimport {ERC1967Utils} from \"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\";\nimport {Initializable} from \"./Initializable.sol\";\n\n/**\n * @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an\n * {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy.\n *\n * A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is\n * reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing\n * `UUPSUpgradeable` with a custom implementation of upgrades.\n *\n * The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism.\n */\nabstract contract UUPSUpgradeable is Initializable, IERC1822Proxiable {\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    address private immutable __self = address(this);\n\n    /**\n     * @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgradeTo(address)`\n     * and `upgradeToAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called,\n     * while `upgradeToAndCall` will invoke the `receive` function if the second argument is the empty byte string.\n     * If the getter returns `\"5.0.0\"`, only `upgradeToAndCall(address,bytes)` is present, and the second argument must\n     * be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n     * during an upgrade.\n     */\n    string public constant UPGRADE_INTERFACE_VERSION = \"5.0.0\";\n\n    /**\n     * @dev The call is from an unauthorized context.\n     */\n    error UUPSUnauthorizedCallContext();\n\n    /**\n     * @dev The storage `slot` is unsupported as a UUID.\n     */\n    error UUPSUnsupportedProxiableUUID(bytes32 slot);\n\n    /**\n     * @dev Check that the execution is being performed through a delegatecall call and that the execution context is\n     * a proxy contract with an implementation (as defined in ERC-1967) pointing to self. This should only be the case\n     * for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a\n     * function through ERC-1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to\n     * fail.\n     */\n    modifier onlyProxy() {\n        _checkProxy();\n        _;\n    }\n\n    /**\n     * @dev Check that the execution is not being performed through a delegate call. This allows a function to be\n     * callable on the implementing contract but not through proxies.\n     */\n    modifier notDelegated() {\n        _checkNotDelegated();\n        _;\n    }\n\n    function __UUPSUpgradeable_init() internal onlyInitializing {\n    }\n\n    function __UUPSUpgradeable_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the\n     * implementation. It is used to validate the implementation's compatibility when performing an upgrade.\n     *\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n     * function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\n     */\n    function proxiableUUID() external view virtual notDelegated returns (bytes32) {\n        return ERC1967Utils.IMPLEMENTATION_SLOT;\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call\n     * encoded in `data`.\n     *\n     * Calls {_authorizeUpgrade}.\n     *\n     * Emits an {Upgraded} event.\n     *\n     * @custom:oz-upgrades-unsafe-allow-reachable delegatecall\n     */\n    function upgradeToAndCall(address newImplementation, bytes memory data) public payable virtual onlyProxy {\n        _authorizeUpgrade(newImplementation);\n        _upgradeToAndCallUUPS(newImplementation, data);\n    }\n\n    /**\n     * @dev Reverts if the execution is not performed via delegatecall or the execution\n     * context is not of a proxy with an ERC-1967 compliant implementation pointing to self.\n     * See {_onlyProxy}.\n     */\n    function _checkProxy() internal view virtual {\n        if (\n            address(this) == __self || // Must be called through delegatecall\n            ERC1967Utils.getImplementation() != __self // Must be called through an active proxy\n        ) {\n            revert UUPSUnauthorizedCallContext();\n        }\n    }\n\n    /**\n     * @dev Reverts if the execution is performed via delegatecall.\n     * See {notDelegated}.\n     */\n    function _checkNotDelegated() internal view virtual {\n        if (address(this) != __self) {\n            // Must not be called through delegatecall\n            revert UUPSUnauthorizedCallContext();\n        }\n    }\n\n    /**\n     * @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by\n     * {upgradeToAndCall}.\n     *\n     * Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}.\n     *\n     * ```solidity\n     * function _authorizeUpgrade(address) internal onlyOwner {}\n     * ```\n     */\n    function _authorizeUpgrade(address newImplementation) internal virtual;\n\n    /**\n     * @dev Performs an implementation upgrade with a security check for UUPS proxies, and additional setup call.\n     *\n     * As a security check, {proxiableUUID} is invoked in the new implementation, and the return value\n     * is expected to be the implementation slot in ERC-1967.\n     *\n     * Emits an {IERC1967-Upgraded} event.\n     */\n    function _upgradeToAndCallUUPS(address newImplementation, bytes memory data) private {\n        try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\n            if (slot != ERC1967Utils.IMPLEMENTATION_SLOT) {\n                revert UUPSUnsupportedProxiableUUID(slot);\n            }\n            ERC1967Utils.upgradeToAndCall(newImplementation, data);\n        } catch {\n            // The implementation is not UUPS\n            revert ERC1967Utils.ERC1967InvalidImplementation(newImplementation);\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {ContextUpgradeable} from \"../../utils/ContextUpgradeable.sol\";\nimport {IERC20Errors} from \"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20Upgradeable is Initializable, ContextUpgradeable, IERC20, IERC20Metadata, IERC20Errors {\n    /// @custom:storage-location erc7201:openzeppelin.storage.ERC20\n    struct ERC20Storage {\n        mapping(address account => uint256) _balances;\n\n        mapping(address account => mapping(address spender => uint256)) _allowances;\n\n        uint256 _totalSupply;\n\n        string _name;\n        string _symbol;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.ERC20\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant ERC20StorageLocation = 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00;\n\n    function _getERC20Storage() private pure returns (ERC20Storage storage $) {\n        assembly {\n            $.slot := ERC20StorageLocation\n        }\n    }\n\n    /**\n     * @dev Sets the values for {name} and {symbol}.\n     *\n     * All two of these values are immutable: they can only be set once during\n     * construction.\n     */\n    function __ERC20_init(string memory name_, string memory symbol_) internal onlyInitializing {\n        __ERC20_init_unchained(name_, symbol_);\n    }\n\n    function __ERC20_init_unchained(string memory name_, string memory symbol_) internal onlyInitializing {\n        ERC20Storage storage $ = _getERC20Storage();\n        $._name = name_;\n        $._symbol = symbol_;\n    }\n\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() public view virtual returns (string memory) {\n        ERC20Storage storage $ = _getERC20Storage();\n        return $._name;\n    }\n\n    /**\n     * @dev Returns the symbol of the token, usually a shorter version of the\n     * name.\n     */\n    function symbol() public view virtual returns (string memory) {\n        ERC20Storage storage $ = _getERC20Storage();\n        return $._symbol;\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n     *\n     * Tokens usually opt for a value of 18, imitating the relationship between\n     * Ether and Wei. This is the default value returned by this function, unless\n     * it's overridden.\n     *\n     * NOTE: This information is only used for _display_ purposes: it in\n     * no way affects any of the arithmetic of the contract, including\n     * {IERC20-balanceOf} and {IERC20-transfer}.\n     */\n    function decimals() public view virtual returns (uint8) {\n        return 18;\n    }\n\n    /**\n     * @dev See {IERC20-totalSupply}.\n     */\n    function totalSupply() public view virtual returns (uint256) {\n        ERC20Storage storage $ = _getERC20Storage();\n        return $._totalSupply;\n    }\n\n    /**\n     * @dev See {IERC20-balanceOf}.\n     */\n    function balanceOf(address account) public view virtual returns (uint256) {\n        ERC20Storage storage $ = _getERC20Storage();\n        return $._balances[account];\n    }\n\n    /**\n     * @dev See {IERC20-transfer}.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - the caller must have a balance of at least `value`.\n     */\n    function transfer(address to, uint256 value) public virtual returns (bool) {\n        address owner = _msgSender();\n        _transfer(owner, to, value);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-allowance}.\n     */\n    function allowance(address owner, address spender) public view virtual returns (uint256) {\n        ERC20Storage storage $ = _getERC20Storage();\n        return $._allowances[owner][spender];\n    }\n\n    /**\n     * @dev See {IERC20-approve}.\n     *\n     * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function approve(address spender, uint256 value) public virtual returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, value);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-transferFrom}.\n     *\n     * Skips emitting an {Approval} event indicating an allowance update. This is not\n     * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n     *\n     * NOTE: Does not update the allowance if the current allowance\n     * is the maximum `uint256`.\n     *\n     * Requirements:\n     *\n     * - `from` and `to` cannot be the zero address.\n     * - `from` must have a balance of at least `value`.\n     * - the caller must have allowance for ``from``'s tokens of at least\n     * `value`.\n     */\n    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n        address spender = _msgSender();\n        _spendAllowance(from, spender, value);\n        _transfer(from, to, value);\n        return true;\n    }\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to`.\n     *\n     * This internal function is equivalent to {transfer}, and can be used to\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\n     *\n     * Emits a {Transfer} event.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead.\n     */\n    function _transfer(address from, address to, uint256 value) internal {\n        if (from == address(0)) {\n            revert ERC20InvalidSender(address(0));\n        }\n        if (to == address(0)) {\n            revert ERC20InvalidReceiver(address(0));\n        }\n        _update(from, to, value);\n    }\n\n    /**\n     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n     * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n     * this function.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _update(address from, address to, uint256 value) internal virtual {\n        ERC20Storage storage $ = _getERC20Storage();\n        if (from == address(0)) {\n            // Overflow check required: The rest of the code assumes that totalSupply never overflows\n            $._totalSupply += value;\n        } else {\n            uint256 fromBalance = $._balances[from];\n            if (fromBalance < value) {\n                revert ERC20InsufficientBalance(from, fromBalance, value);\n            }\n            unchecked {\n                // Overflow not possible: value <= fromBalance <= totalSupply.\n                $._balances[from] = fromBalance - value;\n            }\n        }\n\n        if (to == address(0)) {\n            unchecked {\n                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n                $._totalSupply -= value;\n            }\n        } else {\n            unchecked {\n                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n                $._balances[to] += value;\n            }\n        }\n\n        emit Transfer(from, to, value);\n    }\n\n    /**\n     * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n     * Relies on the `_update` mechanism\n     *\n     * Emits a {Transfer} event with `from` set to the zero address.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead.\n     */\n    function _mint(address account, uint256 value) internal {\n        if (account == address(0)) {\n            revert ERC20InvalidReceiver(address(0));\n        }\n        _update(address(0), account, value);\n    }\n\n    /**\n     * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n     * Relies on the `_update` mechanism.\n     *\n     * Emits a {Transfer} event with `to` set to the zero address.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead\n     */\n    function _burn(address account, uint256 value) internal {\n        if (account == address(0)) {\n            revert ERC20InvalidSender(address(0));\n        }\n        _update(account, address(0), value);\n    }\n\n    /**\n     * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n     *\n     * This internal function is equivalent to `approve`, and can be used to\n     * e.g. set automatic allowances for certain subsystems, etc.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `owner` cannot be the zero address.\n     * - `spender` cannot be the zero address.\n     *\n     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n     */\n    function _approve(address owner, address spender, uint256 value) internal {\n        _approve(owner, spender, value, true);\n    }\n\n    /**\n     * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n     *\n     * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n     * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n     * `Approval` event during `transferFrom` operations.\n     *\n     * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n     * true using the following override:\n     *\n     * ```solidity\n     * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n     *     super._approve(owner, spender, value, true);\n     * }\n     * ```\n     *\n     * Requirements are the same as {_approve}.\n     */\n    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n        ERC20Storage storage $ = _getERC20Storage();\n        if (owner == address(0)) {\n            revert ERC20InvalidApprover(address(0));\n        }\n        if (spender == address(0)) {\n            revert ERC20InvalidSpender(address(0));\n        }\n        $._allowances[owner][spender] = value;\n        if (emitEvent) {\n            emit Approval(owner, spender, value);\n        }\n    }\n\n    /**\n     * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n     *\n     * Does not update the allowance value in case of infinite allowance.\n     * Revert if not enough allowance is available.\n     *\n     * Does not emit an {Approval} event.\n     */\n    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n        uint256 currentAllowance = allowance(owner, spender);\n        if (currentAllowance != type(uint256).max) {\n            if (currentAllowance < value) {\n                revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n            }\n            unchecked {\n                _approve(owner, spender, currentAllowance - value, false);\n            }\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\nimport {IERC721Metadata} from \"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\";\nimport {ERC721Utils} from \"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\";\nimport {ContextUpgradeable} from \"../../utils/ContextUpgradeable.sol\";\nimport {Strings} from \"@openzeppelin/contracts/utils/Strings.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport {ERC165Upgradeable} from \"../../utils/introspection/ERC165Upgradeable.sol\";\nimport {IERC721Errors} from \"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradeable, IERC721, IERC721Metadata, IERC721Errors {\n    using Strings for uint256;\n\n    /// @custom:storage-location erc7201:openzeppelin.storage.ERC721\n    struct ERC721Storage {\n        // Token name\n        string _name;\n\n        // Token symbol\n        string _symbol;\n\n        mapping(uint256 tokenId => address) _owners;\n\n        mapping(address owner => uint256) _balances;\n\n        mapping(uint256 tokenId => address) _tokenApprovals;\n\n        mapping(address owner => mapping(address operator => bool)) _operatorApprovals;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.ERC721\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant ERC721StorageLocation = 0x80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300;\n\n    function _getERC721Storage() private pure returns (ERC721Storage storage $) {\n        assembly {\n            $.slot := ERC721StorageLocation\n        }\n    }\n\n    /**\n     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n     */\n    function __ERC721_init(string memory name_, string memory symbol_) internal onlyInitializing {\n        __ERC721_init_unchained(name_, symbol_);\n    }\n\n    function __ERC721_init_unchained(string memory name_, string memory symbol_) internal onlyInitializing {\n        ERC721Storage storage $ = _getERC721Storage();\n        $._name = name_;\n        $._symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165Upgradeable, IERC165) returns (bool) {\n        return\n            interfaceId == type(IERC721).interfaceId ||\n            interfaceId == type(IERC721Metadata).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721-balanceOf}.\n     */\n    function balanceOf(address owner) public view virtual returns (uint256) {\n        ERC721Storage storage $ = _getERC721Storage();\n        if (owner == address(0)) {\n            revert ERC721InvalidOwner(address(0));\n        }\n        return $._balances[owner];\n    }\n\n    /**\n     * @dev See {IERC721-ownerOf}.\n     */\n    function ownerOf(uint256 tokenId) public view virtual returns (address) {\n        return _requireOwned(tokenId);\n    }\n\n    /**\n     * @dev See {IERC721Metadata-name}.\n     */\n    function name() public view virtual returns (string memory) {\n        ERC721Storage storage $ = _getERC721Storage();\n        return $._name;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-symbol}.\n     */\n    function symbol() public view virtual returns (string memory) {\n        ERC721Storage storage $ = _getERC721Storage();\n        return $._symbol;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n        _requireOwned(tokenId);\n\n        string memory baseURI = _baseURI();\n        return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n    }\n\n    /**\n     * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n     * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n     * by default, can be overridden in child contracts.\n     */\n    function _baseURI() internal view virtual returns (string memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IERC721-approve}.\n     */\n    function approve(address to, uint256 tokenId) public virtual {\n        _approve(to, tokenId, _msgSender());\n    }\n\n    /**\n     * @dev See {IERC721-getApproved}.\n     */\n    function getApproved(uint256 tokenId) public view virtual returns (address) {\n        _requireOwned(tokenId);\n\n        return _getApproved(tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-setApprovalForAll}.\n     */\n    function setApprovalForAll(address operator, bool approved) public virtual {\n        _setApprovalForAll(_msgSender(), operator, approved);\n    }\n\n    /**\n     * @dev See {IERC721-isApprovedForAll}.\n     */\n    function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n        ERC721Storage storage $ = _getERC721Storage();\n        return $._operatorApprovals[owner][operator];\n    }\n\n    /**\n     * @dev See {IERC721-transferFrom}.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) public virtual {\n        if (to == address(0)) {\n            revert ERC721InvalidReceiver(address(0));\n        }\n        // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n        // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n        address previousOwner = _update(to, tokenId, _msgSender());\n        if (previousOwner != from) {\n            revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n        }\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) public {\n        safeTransferFrom(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n        transferFrom(from, to, tokenId);\n        ERC721Utils.checkOnERC721Received(_msgSender(), from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n     *\n     * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n     * core ERC-721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n     * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n     * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n     */\n    function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n        ERC721Storage storage $ = _getERC721Storage();\n        return $._owners[tokenId];\n    }\n\n    /**\n     * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n     */\n    function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n        ERC721Storage storage $ = _getERC721Storage();\n        return $._tokenApprovals[tokenId];\n    }\n\n    /**\n     * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n     * particular (ignoring whether it is owned by `owner`).\n     *\n     * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n     * assumption.\n     */\n    function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n        return\n            spender != address(0) &&\n            (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n    }\n\n    /**\n     * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n     * Reverts if:\n     * - `spender` does not have approval from `owner` for `tokenId`.\n     * - `spender` does not have approval to manage all of `owner`'s assets.\n     *\n     * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n     * assumption.\n     */\n    function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n        if (!_isAuthorized(owner, spender, tokenId)) {\n            if (owner == address(0)) {\n                revert ERC721NonexistentToken(tokenId);\n            } else {\n                revert ERC721InsufficientApproval(spender, tokenId);\n            }\n        }\n    }\n\n    /**\n     * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n     *\n     * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n     * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n     *\n     * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n     * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n     * remain consistent with one another.\n     */\n    function _increaseBalance(address account, uint128 value) internal virtual {\n        ERC721Storage storage $ = _getERC721Storage();\n        unchecked {\n            $._balances[account] += value;\n        }\n    }\n\n    /**\n     * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n     * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n     *\n     * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n     * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n     *\n     * Emits a {Transfer} event.\n     *\n     * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n     */\n    function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n        ERC721Storage storage $ = _getERC721Storage();\n        address from = _ownerOf(tokenId);\n\n        // Perform (optional) operator check\n        if (auth != address(0)) {\n            _checkAuthorized(from, auth, tokenId);\n        }\n\n        // Execute the update\n        if (from != address(0)) {\n            // Clear approval. No need to re-authorize or emit the Approval event\n            _approve(address(0), tokenId, address(0), false);\n\n            unchecked {\n                $._balances[from] -= 1;\n            }\n        }\n\n        if (to != address(0)) {\n            unchecked {\n                $._balances[to] += 1;\n            }\n        }\n\n        $._owners[tokenId] = to;\n\n        emit Transfer(from, to, tokenId);\n\n        return from;\n    }\n\n    /**\n     * @dev Mints `tokenId` and transfers it to `to`.\n     *\n     * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - `to` cannot be the zero address.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _mint(address to, uint256 tokenId) internal {\n        if (to == address(0)) {\n            revert ERC721InvalidReceiver(address(0));\n        }\n        address previousOwner = _update(to, tokenId, address(0));\n        if (previousOwner != address(0)) {\n            revert ERC721InvalidSender(address(0));\n        }\n    }\n\n    /**\n     * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeMint(address to, uint256 tokenId) internal {\n        _safeMint(to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n        _mint(to, tokenId);\n        ERC721Utils.checkOnERC721Received(_msgSender(), address(0), to, tokenId, data);\n    }\n\n    /**\n     * @dev Destroys `tokenId`.\n     * The approval is cleared when the token is burned.\n     * This is an internal function that does not check if the sender is authorized to operate on the token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _burn(uint256 tokenId) internal {\n        address previousOwner = _update(address(0), tokenId, address(0));\n        if (previousOwner == address(0)) {\n            revert ERC721NonexistentToken(tokenId);\n        }\n    }\n\n    /**\n     * @dev Transfers `tokenId` from `from` to `to`.\n     *  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _transfer(address from, address to, uint256 tokenId) internal {\n        if (to == address(0)) {\n            revert ERC721InvalidReceiver(address(0));\n        }\n        address previousOwner = _update(to, tokenId, address(0));\n        if (previousOwner == address(0)) {\n            revert ERC721NonexistentToken(tokenId);\n        } else if (previousOwner != from) {\n            revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n        }\n    }\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n     * are aware of the ERC-721 standard to prevent tokens from being forever locked.\n     *\n     * `data` is additional data, it has no specified format and it is sent in call to `to`.\n     *\n     * This internal function is like {safeTransferFrom} in the sense that it invokes\n     * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n     * implement alternative mechanisms to perform token transfer, such as signature-based.\n     *\n     * Requirements:\n     *\n     * - `tokenId` token must exist and be owned by `from`.\n     * - `to` cannot be the zero address.\n     * - `from` cannot be the zero address.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeTransfer(address from, address to, uint256 tokenId) internal {\n        _safeTransfer(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n        _transfer(from, to, tokenId);\n        ERC721Utils.checkOnERC721Received(_msgSender(), from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Approve `to` to operate on `tokenId`\n     *\n     * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n     * either the owner of the token, or approved to operate on all tokens held by this owner.\n     *\n     * Emits an {Approval} event.\n     *\n     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n     */\n    function _approve(address to, uint256 tokenId, address auth) internal {\n        _approve(to, tokenId, auth, true);\n    }\n\n    /**\n     * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n     * emitted in the context of transfers.\n     */\n    function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n        ERC721Storage storage $ = _getERC721Storage();\n        // Avoid reading the owner unless necessary\n        if (emitEvent || auth != address(0)) {\n            address owner = _requireOwned(tokenId);\n\n            // We do not use _isAuthorized because single-token approvals should not be able to call approve\n            if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n                revert ERC721InvalidApprover(auth);\n            }\n\n            if (emitEvent) {\n                emit Approval(owner, to, tokenId);\n            }\n        }\n\n        $._tokenApprovals[tokenId] = to;\n    }\n\n    /**\n     * @dev Approve `operator` to operate on all of `owner` tokens\n     *\n     * Requirements:\n     * - operator can't be the address zero.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n        ERC721Storage storage $ = _getERC721Storage();\n        if (operator == address(0)) {\n            revert ERC721InvalidOperator(operator);\n        }\n        $._operatorApprovals[owner][operator] = approved;\n        emit ApprovalForAll(owner, operator, approved);\n    }\n\n    /**\n     * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n     * Returns the owner.\n     *\n     * Overrides to ownership logic should be done to {_ownerOf}.\n     */\n    function _requireOwned(uint256 tokenId) internal view returns (address) {\n        address owner = _ownerOf(tokenId);\n        if (owner == address(0)) {\n            revert ERC721NonexistentToken(tokenId);\n        }\n        return owner;\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\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 ContextUpgradeable is Initializable {\n    function __Context_init() internal onlyInitializing {\n    }\n\n    function __Context_init_unchained() internal onlyInitializing {\n    }\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-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165Upgradeable is Initializable, IERC165 {\n    function __ERC165_init() internal onlyInitializing {\n    }\n\n    function __ERC165_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n        return interfaceId == type(IERC165).interfaceId;\n    }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC-165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev The `account` is missing a role.\n     */\n    error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n    /**\n     * @dev The caller of a function is not the expected one.\n     *\n     * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n     */\n    error AccessControlBadConfirmation();\n\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n     * Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `callerConfirmation`.\n     */\n    function renounceRole(bytes32 role, address callerConfirmation) external;\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../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 * The initial owner is set to the address provided by the deployer. This can\n * 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    /**\n     * @dev The caller account is not authorized to perform an operation.\n     */\n    error OwnableUnauthorizedAccount(address account);\n\n    /**\n     * @dev The owner is not a valid owner account. (eg. `address(0)`)\n     */\n    error OwnableInvalidOwner(address owner);\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n     */\n    constructor(address initialOwner) {\n        if (initialOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(initialOwner);\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        if (owner() != _msgSender()) {\n            revert OwnableUnauthorizedAccount(_msgSender());\n        }\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        if (newOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\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/interfaces/draft-IERC1822.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC1822.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev ERC-1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n * proxy whose upgrades are fully controlled by the current implementation.\n */\ninterface IERC1822Proxiable {\n    /**\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n     * address.\n     *\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n     * function revert if invoked through a proxy.\n     */\n    function proxiableUUID() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n    /**\n     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param balance Current balance for the interacting account.\n     * @param needed Minimum amount required to perform a transfer.\n     */\n    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC20InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC20InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n     * @param spender Address that may be allowed to operate on tokens without being their owner.\n     * @param allowance Amount of tokens a `spender` is allowed to operate with.\n     * @param needed Minimum amount required to perform a transfer.\n     */\n    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC20InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n     * @param spender Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n    /**\n     * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n     * Used in balance queries.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC721InvalidOwner(address owner);\n\n    /**\n     * @dev Indicates a `tokenId` whose `owner` is the zero address.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC721NonexistentToken(uint256 tokenId);\n\n    /**\n     * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param tokenId Identifier number of a token.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC721InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC721InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC721InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n    /**\n     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param balance Current balance for the interacting account.\n     * @param needed Minimum amount required to perform a transfer.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC1155InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC1155InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC1155MissingApprovalForAll(address operator, address owner);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC1155InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC1155InvalidOperator(address operator);\n\n    /**\n     * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n     * Used in batch transfers.\n     * @param idsLength Length of the array of token identifiers\n     * @param valuesLength Length of the array of token amounts\n     */\n    error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"},"@openzeppelin/contracts/interfaces/IERC1363.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC1363.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @title IERC1363\n * @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].\n *\n * Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract\n * after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.\n */\ninterface IERC1363 is IERC20, IERC165 {\n    /*\n     * Note: the ERC-165 identifier for this interface is 0xb0202a11.\n     * 0xb0202a11 ===\n     *   bytes4(keccak256('transferAndCall(address,uint256)')) ^\n     *   bytes4(keccak256('transferAndCall(address,uint256,bytes)')) ^\n     *   bytes4(keccak256('transferFromAndCall(address,address,uint256)')) ^\n     *   bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) ^\n     *   bytes4(keccak256('approveAndCall(address,uint256)')) ^\n     *   bytes4(keccak256('approveAndCall(address,uint256,bytes)'))\n     */\n\n    /**\n     * @dev Moves a `value` amount of tokens from the caller's account to `to`\n     * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n     * @param to The address which you want to transfer to.\n     * @param value The amount of tokens to be transferred.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function transferAndCall(address to, uint256 value) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from the caller's account to `to`\n     * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n     * @param to The address which you want to transfer to.\n     * @param value The amount of tokens to be transferred.\n     * @param data Additional data with no specified format, sent in call to `to`.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function transferAndCall(address to, uint256 value, bytes calldata data) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\n     * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n     * @param from The address which you want to send tokens from.\n     * @param to The address which you want to transfer to.\n     * @param value The amount of tokens to be transferred.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function transferFromAndCall(address from, address to, uint256 value) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\n     * and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n     * @param from The address which you want to send tokens from.\n     * @param to The address which you want to transfer to.\n     * @param value The amount of tokens to be transferred.\n     * @param data Additional data with no specified format, sent in call to `to`.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function transferFromAndCall(address from, address to, uint256 value, bytes calldata data) external returns (bool);\n\n    /**\n     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n     * caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\n     * @param spender The address which will spend the funds.\n     * @param value The amount of tokens to be spent.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function approveAndCall(address spender, uint256 value) external returns (bool);\n\n    /**\n     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n     * caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\n     * @param spender The address which will spend the funds.\n     * @param value The amount of tokens to be spent.\n     * @param data Additional data with no specified format, sent in call to `spender`.\n     * @return A boolean value indicating whether the operation succeeded unless throwing.\n     */\n    function approveAndCall(address spender, uint256 value, bytes calldata data) external returns (bool);\n}\n"},"@openzeppelin/contracts/interfaces/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../utils/introspection/IERC165.sol\";\n"},"@openzeppelin/contracts/interfaces/IERC1967.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1967.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\n */\ninterface IERC1967 {\n    /**\n     * @dev Emitted when the implementation is upgraded.\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @dev Emitted when the admin account has changed.\n     */\n    event AdminChanged(address previousAdmin, address newAdmin);\n\n    /**\n     * @dev Emitted when the beacon is changed.\n     */\n    event BeaconUpgraded(address indexed beacon);\n}\n"},"@openzeppelin/contracts/interfaces/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../token/ERC20/IERC20.sol\";\n"},"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (proxy/beacon/BeaconProxy.sol)\n\npragma solidity ^0.8.20;\n\nimport {IBeacon} from \"./IBeacon.sol\";\nimport {Proxy} from \"../Proxy.sol\";\nimport {ERC1967Utils} from \"../ERC1967/ERC1967Utils.sol\";\n\n/**\n * @dev This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}.\n *\n * The beacon address can only be set once during construction, and cannot be changed afterwards. It is stored in an\n * immutable variable to avoid unnecessary storage reads, and also in the beacon storage slot specified by\n * https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] so that it can be accessed externally.\n *\n * CAUTION: Since the beacon address can never be changed, you must ensure that you either control the beacon, or trust\n * the beacon to not upgrade the implementation maliciously.\n *\n * IMPORTANT: Do not use the implementation logic to modify the beacon storage slot. Doing so would leave the proxy in\n * an inconsistent state where the beacon storage slot does not match the beacon address.\n */\ncontract BeaconProxy is Proxy {\n    // An immutable address for the beacon to avoid unnecessary SLOADs before each delegate call.\n    address private immutable _beacon;\n\n    /**\n     * @dev Initializes the proxy with `beacon`.\n     *\n     * If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This\n     * will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity\n     * constructor.\n     *\n     * Requirements:\n     *\n     * - `beacon` must be a contract with the interface {IBeacon}.\n     * - If `data` is empty, `msg.value` must be zero.\n     */\n    constructor(address beacon, bytes memory data) payable {\n        ERC1967Utils.upgradeBeaconToAndCall(beacon, data);\n        _beacon = beacon;\n    }\n\n    /**\n     * @dev Returns the current implementation address of the associated beacon.\n     */\n    function _implementation() internal view virtual override returns (address) {\n        return IBeacon(_getBeacon()).implementation();\n    }\n\n    /**\n     * @dev Returns the beacon.\n     */\n    function _getBeacon() internal view virtual returns (address) {\n        return _beacon;\n    }\n}\n"},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n    /**\n     * @dev Must return an address that can be used as a delegate call target.\n     *\n     * {UpgradeableBeacon} will check that this address is a contract.\n     */\n    function implementation() external view returns (address);\n}\n"},"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/UpgradeableBeacon.sol)\n\npragma solidity ^0.8.20;\n\nimport {IBeacon} from \"./IBeacon.sol\";\nimport {Ownable} from \"../../access/Ownable.sol\";\n\n/**\n * @dev This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their\n * implementation contract, which is where they will delegate all function calls.\n *\n * An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon.\n */\ncontract UpgradeableBeacon is IBeacon, Ownable {\n    address private _implementation;\n\n    /**\n     * @dev The `implementation` of the beacon is invalid.\n     */\n    error BeaconInvalidImplementation(address implementation);\n\n    /**\n     * @dev Emitted when the implementation returned by the beacon is changed.\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @dev Sets the address of the initial implementation, and the initial owner who can upgrade the beacon.\n     */\n    constructor(address implementation_, address initialOwner) Ownable(initialOwner) {\n        _setImplementation(implementation_);\n    }\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function implementation() public view virtual returns (address) {\n        return _implementation;\n    }\n\n    /**\n     * @dev Upgrades the beacon to a new implementation.\n     *\n     * Emits an {Upgraded} event.\n     *\n     * Requirements:\n     *\n     * - msg.sender must be the owner of the contract.\n     * - `newImplementation` must be a contract.\n     */\n    function upgradeTo(address newImplementation) public virtual onlyOwner {\n        _setImplementation(newImplementation);\n    }\n\n    /**\n     * @dev Sets the implementation contract address for this beacon\n     *\n     * Requirements:\n     *\n     * - `newImplementation` must be a contract.\n     */\n    function _setImplementation(address newImplementation) private {\n        if (newImplementation.code.length == 0) {\n            revert BeaconInvalidImplementation(newImplementation);\n        }\n        _implementation = newImplementation;\n        emit Upgraded(newImplementation);\n    }\n}\n"},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (proxy/ERC1967/ERC1967Utils.sol)\n\npragma solidity ^0.8.21;\n\nimport {IBeacon} from \"../beacon/IBeacon.sol\";\nimport {IERC1967} from \"../../interfaces/IERC1967.sol\";\nimport {Address} from \"../../utils/Address.sol\";\nimport {StorageSlot} from \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This library provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots.\n */\nlibrary ERC1967Utils {\n    /**\n     * @dev Storage slot with the address of the current implementation.\n     * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1.\n     */\n    // solhint-disable-next-line private-vars-leading-underscore\n    bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    /**\n     * @dev The `implementation` of the proxy is invalid.\n     */\n    error ERC1967InvalidImplementation(address implementation);\n\n    /**\n     * @dev The `admin` of the proxy is invalid.\n     */\n    error ERC1967InvalidAdmin(address admin);\n\n    /**\n     * @dev The `beacon` of the proxy is invalid.\n     */\n    error ERC1967InvalidBeacon(address beacon);\n\n    /**\n     * @dev An upgrade function sees `msg.value > 0` that may be lost.\n     */\n    error ERC1967NonPayable();\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function getImplementation() internal view returns (address) {\n        return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the ERC-1967 implementation slot.\n     */\n    function _setImplementation(address newImplementation) private {\n        if (newImplementation.code.length == 0) {\n            revert ERC1967InvalidImplementation(newImplementation);\n        }\n        StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = newImplementation;\n    }\n\n    /**\n     * @dev Performs implementation upgrade with additional setup call if data is nonempty.\n     * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n     * to avoid stuck value in the contract.\n     *\n     * Emits an {IERC1967-Upgraded} event.\n     */\n    function upgradeToAndCall(address newImplementation, bytes memory data) internal {\n        _setImplementation(newImplementation);\n        emit IERC1967.Upgraded(newImplementation);\n\n        if (data.length > 0) {\n            Address.functionDelegateCall(newImplementation, data);\n        } else {\n            _checkNonPayable();\n        }\n    }\n\n    /**\n     * @dev Storage slot with the admin of the contract.\n     * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1.\n     */\n    // solhint-disable-next-line private-vars-leading-underscore\n    bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    /**\n     * @dev Returns the current admin.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n     * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n     */\n    function getAdmin() internal view returns (address) {\n        return StorageSlot.getAddressSlot(ADMIN_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the ERC-1967 admin slot.\n     */\n    function _setAdmin(address newAdmin) private {\n        if (newAdmin == address(0)) {\n            revert ERC1967InvalidAdmin(address(0));\n        }\n        StorageSlot.getAddressSlot(ADMIN_SLOT).value = newAdmin;\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {IERC1967-AdminChanged} event.\n     */\n    function changeAdmin(address newAdmin) internal {\n        emit IERC1967.AdminChanged(getAdmin(), newAdmin);\n        _setAdmin(newAdmin);\n    }\n\n    /**\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n     * This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1.\n     */\n    // solhint-disable-next-line private-vars-leading-underscore\n    bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n    /**\n     * @dev Returns the current beacon.\n     */\n    function getBeacon() internal view returns (address) {\n        return StorageSlot.getAddressSlot(BEACON_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new beacon in the ERC-1967 beacon slot.\n     */\n    function _setBeacon(address newBeacon) private {\n        if (newBeacon.code.length == 0) {\n            revert ERC1967InvalidBeacon(newBeacon);\n        }\n\n        StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon;\n\n        address beaconImplementation = IBeacon(newBeacon).implementation();\n        if (beaconImplementation.code.length == 0) {\n            revert ERC1967InvalidImplementation(beaconImplementation);\n        }\n    }\n\n    /**\n     * @dev Change the beacon and trigger a setup call if data is nonempty.\n     * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n     * to avoid stuck value in the contract.\n     *\n     * Emits an {IERC1967-BeaconUpgraded} event.\n     *\n     * CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n     * it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n     * efficiency.\n     */\n    function upgradeBeaconToAndCall(address newBeacon, bytes memory data) internal {\n        _setBeacon(newBeacon);\n        emit IERC1967.BeaconUpgraded(newBeacon);\n\n        if (data.length > 0) {\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n        } else {\n            _checkNonPayable();\n        }\n    }\n\n    /**\n     * @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n     * if an upgrade doesn't perform an initialization call.\n     */\n    function _checkNonPayable() private {\n        if (msg.value > 0) {\n            revert ERC1967NonPayable();\n        }\n    }\n}\n"},"@openzeppelin/contracts/proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n    /**\n     * @dev Delegates the current call to `implementation`.\n     *\n     * This function does not return to its internal call site, it will return directly to the external caller.\n     */\n    function _delegate(address implementation) internal virtual {\n        assembly {\n            // Copy msg.data. We take full control of memory in this inline assembly\n            // block because it will not return to Solidity code. We overwrite the\n            // Solidity scratch pad at memory position 0.\n            calldatacopy(0, 0, calldatasize())\n\n            // Call the implementation.\n            // out and outsize are 0 because we don't know the size yet.\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n            // Copy the returned data.\n            returndatacopy(0, 0, returndatasize())\n\n            switch result\n            // delegatecall returns 0 on error.\n            case 0 {\n                revert(0, returndatasize())\n            }\n            default {\n                return(0, returndatasize())\n            }\n        }\n    }\n\n    /**\n     * @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n     * function and {_fallback} should delegate.\n     */\n    function _implementation() internal view virtual returns (address);\n\n    /**\n     * @dev Delegates the current call to the address returned by `_implementation()`.\n     *\n     * This function does not return to its internal call site, it will return directly to the external caller.\n     */\n    function _fallback() internal virtual {\n        _delegate(_implementation());\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n     * function in the contract matches the call data.\n     */\n    fallback() external payable virtual {\n        _fallback();\n    }\n}\n"},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n *     function initializeV2() reinitializer(2) public {\n *         __ERC20Permit_init(\"MyToken\");\n *     }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n *     _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n    /**\n     * @dev Storage of the initializable contract.\n     *\n     * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n     * when using with upgradeable contracts.\n     *\n     * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n     */\n    struct InitializableStorage {\n        /**\n         * @dev Indicates that the contract has been initialized.\n         */\n        uint64 _initialized;\n        /**\n         * @dev Indicates that the contract is in the process of being initialized.\n         */\n        bool _initializing;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n    /**\n     * @dev The contract is already initialized.\n     */\n    error InvalidInitialization();\n\n    /**\n     * @dev The contract is not initializing.\n     */\n    error NotInitializing();\n\n    /**\n     * @dev Triggered when the contract has been initialized or reinitialized.\n     */\n    event Initialized(uint64 version);\n\n    /**\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n     * `onlyInitializing` functions can be used to initialize parent contracts.\n     *\n     * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n     * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n     * production.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier initializer() {\n        // solhint-disable-next-line var-name-mixedcase\n        InitializableStorage storage $ = _getInitializableStorage();\n\n        // Cache values to avoid duplicated sloads\n        bool isTopLevelCall = !$._initializing;\n        uint64 initialized = $._initialized;\n\n        // Allowed calls:\n        // - initialSetup: the contract is not in the initializing state and no previous version was\n        //                 initialized\n        // - construction: the contract is initialized at version 1 (no reininitialization) and the\n        //                 current contract is just being deployed\n        bool initialSetup = initialized == 0 && isTopLevelCall;\n        bool construction = initialized == 1 && address(this).code.length == 0;\n\n        if (!initialSetup && !construction) {\n            revert InvalidInitialization();\n        }\n        $._initialized = 1;\n        if (isTopLevelCall) {\n            $._initializing = true;\n        }\n        _;\n        if (isTopLevelCall) {\n            $._initializing = false;\n            emit Initialized(1);\n        }\n    }\n\n    /**\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n     * used to initialize parent contracts.\n     *\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n     * are added through upgrades and that require initialization.\n     *\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\n     *\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n     * a contract, executing them in the right order is up to the developer or operator.\n     *\n     * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier reinitializer(uint64 version) {\n        // solhint-disable-next-line var-name-mixedcase\n        InitializableStorage storage $ = _getInitializableStorage();\n\n        if ($._initializing || $._initialized >= version) {\n            revert InvalidInitialization();\n        }\n        $._initialized = version;\n        $._initializing = true;\n        _;\n        $._initializing = false;\n        emit Initialized(version);\n    }\n\n    /**\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\n     */\n    modifier onlyInitializing() {\n        _checkInitializing();\n        _;\n    }\n\n    /**\n     * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n     */\n    function _checkInitializing() internal view virtual {\n        if (!_isInitializing()) {\n            revert NotInitializing();\n        }\n    }\n\n    /**\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n     * through proxies.\n     *\n     * Emits an {Initialized} event the first time it is successfully executed.\n     */\n    function _disableInitializers() internal virtual {\n        // solhint-disable-next-line var-name-mixedcase\n        InitializableStorage storage $ = _getInitializableStorage();\n\n        if ($._initializing) {\n            revert InvalidInitialization();\n        }\n        if ($._initialized != type(uint64).max) {\n            $._initialized = type(uint64).max;\n            emit Initialized(type(uint64).max);\n        }\n    }\n\n    /**\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\n     */\n    function _getInitializedVersion() internal view returns (uint64) {\n        return _getInitializableStorage()._initialized;\n    }\n\n    /**\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n     */\n    function _isInitializing() internal view returns (bool) {\n        return _getInitializableStorage()._initializing;\n    }\n\n    /**\n     * @dev Returns a pointer to the storage namespace.\n     */\n    // solhint-disable-next-line var-name-mixedcase\n    function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n        assembly {\n            $.slot := INITIALIZABLE_STORAGE\n        }\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n    mapping(address account => uint256) private _balances;\n\n    mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n    uint256 private _totalSupply;\n\n    string private _name;\n    string private _symbol;\n\n    /**\n     * @dev Sets the values for {name} and {symbol}.\n     *\n     * All two of these values are immutable: they can only be set once during\n     * construction.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() public view virtual returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev Returns the symbol of the token, usually a shorter version of the\n     * name.\n     */\n    function symbol() public view virtual returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n     *\n     * Tokens usually opt for a value of 18, imitating the relationship between\n     * Ether and Wei. This is the default value returned by this function, unless\n     * it's overridden.\n     *\n     * NOTE: This information is only used for _display_ purposes: it in\n     * no way affects any of the arithmetic of the contract, including\n     * {IERC20-balanceOf} and {IERC20-transfer}.\n     */\n    function decimals() public view virtual returns (uint8) {\n        return 18;\n    }\n\n    /**\n     * @dev See {IERC20-totalSupply}.\n     */\n    function totalSupply() public view virtual returns (uint256) {\n        return _totalSupply;\n    }\n\n    /**\n     * @dev See {IERC20-balanceOf}.\n     */\n    function balanceOf(address account) public view virtual returns (uint256) {\n        return _balances[account];\n    }\n\n    /**\n     * @dev See {IERC20-transfer}.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - the caller must have a balance of at least `value`.\n     */\n    function transfer(address to, uint256 value) public virtual returns (bool) {\n        address owner = _msgSender();\n        _transfer(owner, to, value);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-allowance}.\n     */\n    function allowance(address owner, address spender) public view virtual returns (uint256) {\n        return _allowances[owner][spender];\n    }\n\n    /**\n     * @dev See {IERC20-approve}.\n     *\n     * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function approve(address spender, uint256 value) public virtual returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, value);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-transferFrom}.\n     *\n     * Skips emitting an {Approval} event indicating an allowance update. This is not\n     * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n     *\n     * NOTE: Does not update the allowance if the current allowance\n     * is the maximum `uint256`.\n     *\n     * Requirements:\n     *\n     * - `from` and `to` cannot be the zero address.\n     * - `from` must have a balance of at least `value`.\n     * - the caller must have allowance for ``from``'s tokens of at least\n     * `value`.\n     */\n    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n        address spender = _msgSender();\n        _spendAllowance(from, spender, value);\n        _transfer(from, to, value);\n        return true;\n    }\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to`.\n     *\n     * This internal function is equivalent to {transfer}, and can be used to\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\n     *\n     * Emits a {Transfer} event.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead.\n     */\n    function _transfer(address from, address to, uint256 value) internal {\n        if (from == address(0)) {\n            revert ERC20InvalidSender(address(0));\n        }\n        if (to == address(0)) {\n            revert ERC20InvalidReceiver(address(0));\n        }\n        _update(from, to, value);\n    }\n\n    /**\n     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n     * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n     * this function.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _update(address from, address to, uint256 value) internal virtual {\n        if (from == address(0)) {\n            // Overflow check required: The rest of the code assumes that totalSupply never overflows\n            _totalSupply += value;\n        } else {\n            uint256 fromBalance = _balances[from];\n            if (fromBalance < value) {\n                revert ERC20InsufficientBalance(from, fromBalance, value);\n            }\n            unchecked {\n                // Overflow not possible: value <= fromBalance <= totalSupply.\n                _balances[from] = fromBalance - value;\n            }\n        }\n\n        if (to == address(0)) {\n            unchecked {\n                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n                _totalSupply -= value;\n            }\n        } else {\n            unchecked {\n                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n                _balances[to] += value;\n            }\n        }\n\n        emit Transfer(from, to, value);\n    }\n\n    /**\n     * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n     * Relies on the `_update` mechanism\n     *\n     * Emits a {Transfer} event with `from` set to the zero address.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead.\n     */\n    function _mint(address account, uint256 value) internal {\n        if (account == address(0)) {\n            revert ERC20InvalidReceiver(address(0));\n        }\n        _update(address(0), account, value);\n    }\n\n    /**\n     * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n     * Relies on the `_update` mechanism.\n     *\n     * Emits a {Transfer} event with `to` set to the zero address.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead\n     */\n    function _burn(address account, uint256 value) internal {\n        if (account == address(0)) {\n            revert ERC20InvalidSender(address(0));\n        }\n        _update(account, address(0), value);\n    }\n\n    /**\n     * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n     *\n     * This internal function is equivalent to `approve`, and can be used to\n     * e.g. set automatic allowances for certain subsystems, etc.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `owner` cannot be the zero address.\n     * - `spender` cannot be the zero address.\n     *\n     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n     */\n    function _approve(address owner, address spender, uint256 value) internal {\n        _approve(owner, spender, value, true);\n    }\n\n    /**\n     * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n     *\n     * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n     * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n     * `Approval` event during `transferFrom` operations.\n     *\n     * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n     * true using the following override:\n     *\n     * ```solidity\n     * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n     *     super._approve(owner, spender, value, true);\n     * }\n     * ```\n     *\n     * Requirements are the same as {_approve}.\n     */\n    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n        if (owner == address(0)) {\n            revert ERC20InvalidApprover(address(0));\n        }\n        if (spender == address(0)) {\n            revert ERC20InvalidSpender(address(0));\n        }\n        _allowances[owner][spender] = value;\n        if (emitEvent) {\n            emit Approval(owner, spender, value);\n        }\n    }\n\n    /**\n     * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n     *\n     * Does not update the allowance value in case of infinite allowance.\n     * Revert if not enough allowance is available.\n     *\n     * Does not emit an {Approval} event.\n     */\n    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n        uint256 currentAllowance = allowance(owner, spender);\n        if (currentAllowance != type(uint256).max) {\n            if (currentAllowance < value) {\n                revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n            }\n            unchecked {\n                _approve(owner, spender, currentAllowance - value, false);\n            }\n        }\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the symbol of the token.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the decimals places of the token.\n     */\n    function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\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 value of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the value of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens as the allowance of `spender` over the\n     * 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 value) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the\n     * allowance mechanism. `value` 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 value) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\nimport {IERC1363} from \"../../../interfaces/IERC1363.sol\";\nimport {Address} from \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC-20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    /**\n     * @dev An operation with an ERC-20 token failed.\n     */\n    error SafeERC20FailedOperation(address token);\n\n    /**\n     * @dev Indicates a failed `decreaseAllowance` request.\n     */\n    error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\n\n    /**\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\n    }\n\n    /**\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\n     */\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\n    }\n\n    /**\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     *\n     * IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \"client\"\n     * smart contract uses ERC-7674 to set temporary allowances, then the \"client\" smart contract should avoid using\n     * this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\n     * that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior.\n     */\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        uint256 oldAllowance = token.allowance(address(this), spender);\n        forceApprove(token, spender, oldAllowance + value);\n    }\n\n    /**\n     * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\n     * value, non-reverting calls are assumed to be successful.\n     *\n     * IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \"client\"\n     * smart contract uses ERC-7674 to set temporary allowances, then the \"client\" smart contract should avoid using\n     * this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\n     * that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior.\n     */\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\n        unchecked {\n            uint256 currentAllowance = token.allowance(address(this), spender);\n            if (currentAllowance < requestedDecrease) {\n                revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\n            }\n            forceApprove(token, spender, currentAllowance - requestedDecrease);\n        }\n    }\n\n    /**\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n     * to be set to zero before setting it to a non-zero value, such as USDT.\n     *\n     * NOTE: If the token implements ERC-7674, this function will not modify any temporary allowance. This function\n     * only sets the \"standard\" allowance. Any temporary allowance will remain active, in addition to the value being\n     * set here.\n     */\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\n        bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\n\n        if (!_callOptionalReturnBool(token, approvalCall)) {\n            _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\n            _callOptionalReturn(token, approvalCall);\n        }\n    }\n\n    /**\n     * @dev Performs an {ERC1363} transferAndCall, with a fallback to the simple {ERC20} transfer if the target has no\n     * code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n     * targeting contracts.\n     *\n     * Reverts if the returned value is other than `true`.\n     */\n    function transferAndCallRelaxed(IERC1363 token, address to, uint256 value, bytes memory data) internal {\n        if (to.code.length == 0) {\n            safeTransfer(token, to, value);\n        } else if (!token.transferAndCall(to, value, data)) {\n            revert SafeERC20FailedOperation(address(token));\n        }\n    }\n\n    /**\n     * @dev Performs an {ERC1363} transferFromAndCall, with a fallback to the simple {ERC20} transferFrom if the target\n     * has no code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n     * targeting contracts.\n     *\n     * Reverts if the returned value is other than `true`.\n     */\n    function transferFromAndCallRelaxed(\n        IERC1363 token,\n        address from,\n        address to,\n        uint256 value,\n        bytes memory data\n    ) internal {\n        if (to.code.length == 0) {\n            safeTransferFrom(token, from, to, value);\n        } else if (!token.transferFromAndCall(from, to, value, data)) {\n            revert SafeERC20FailedOperation(address(token));\n        }\n    }\n\n    /**\n     * @dev Performs an {ERC1363} approveAndCall, with a fallback to the simple {ERC20} approve if the target has no\n     * code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n     * targeting contracts.\n     *\n     * NOTE: When the recipient address (`to`) has no code (i.e. is an EOA), this function behaves as {forceApprove}.\n     * Opposedly, when the recipient address (`to`) has code, this function only attempts to call {ERC1363-approveAndCall}\n     * once without retrying, and relies on the returned value to be true.\n     *\n     * Reverts if the returned value is other than `true`.\n     */\n    function approveAndCallRelaxed(IERC1363 token, address to, uint256 value, bytes memory data) internal {\n        if (to.code.length == 0) {\n            forceApprove(token, to, value);\n        } else if (!token.approveAndCall(to, value, data)) {\n            revert SafeERC20FailedOperation(address(token));\n        }\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     *\n     * This is a variant of {_callOptionalReturnBool} that reverts if call fails to meet the requirements.\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        uint256 returnSize;\n        uint256 returnValue;\n        assembly (\"memory-safe\") {\n            let success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)\n            // bubble errors\n            if iszero(success) {\n                let ptr := mload(0x40)\n                returndatacopy(ptr, 0, returndatasize())\n                revert(ptr, returndatasize())\n            }\n            returnSize := returndatasize()\n            returnValue := mload(0)\n        }\n\n        if (returnSize == 0 ? address(token).code.length == 0 : returnValue != 1) {\n            revert SafeERC20FailedOperation(address(token));\n        }\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     *\n     * This is a variant of {_callOptionalReturn} that silently catches all reverts and returns a bool instead.\n     */\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\n        bool success;\n        uint256 returnSize;\n        uint256 returnValue;\n        assembly (\"memory-safe\") {\n            success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)\n            returnSize := returndatasize()\n            returnValue := mload(0)\n        }\n        return success && (returnSize == 0 ? address(token).code.length > 0 : returnValue == 1);\n    }\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"./IERC721.sol\";\nimport {IERC721Metadata} from \"./extensions/IERC721Metadata.sol\";\nimport {ERC721Utils} from \"./utils/ERC721Utils.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {Strings} from \"../../utils/Strings.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {IERC721Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\n    using Strings for uint256;\n\n    // Token name\n    string private _name;\n\n    // Token symbol\n    string private _symbol;\n\n    mapping(uint256 tokenId => address) private _owners;\n\n    mapping(address owner => uint256) private _balances;\n\n    mapping(uint256 tokenId => address) private _tokenApprovals;\n\n    mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\n\n    /**\n     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n        return\n            interfaceId == type(IERC721).interfaceId ||\n            interfaceId == type(IERC721Metadata).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721-balanceOf}.\n     */\n    function balanceOf(address owner) public view virtual returns (uint256) {\n        if (owner == address(0)) {\n            revert ERC721InvalidOwner(address(0));\n        }\n        return _balances[owner];\n    }\n\n    /**\n     * @dev See {IERC721-ownerOf}.\n     */\n    function ownerOf(uint256 tokenId) public view virtual returns (address) {\n        return _requireOwned(tokenId);\n    }\n\n    /**\n     * @dev See {IERC721Metadata-name}.\n     */\n    function name() public view virtual returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-symbol}.\n     */\n    function symbol() public view virtual returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n        _requireOwned(tokenId);\n\n        string memory baseURI = _baseURI();\n        return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n    }\n\n    /**\n     * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n     * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n     * by default, can be overridden in child contracts.\n     */\n    function _baseURI() internal view virtual returns (string memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IERC721-approve}.\n     */\n    function approve(address to, uint256 tokenId) public virtual {\n        _approve(to, tokenId, _msgSender());\n    }\n\n    /**\n     * @dev See {IERC721-getApproved}.\n     */\n    function getApproved(uint256 tokenId) public view virtual returns (address) {\n        _requireOwned(tokenId);\n\n        return _getApproved(tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-setApprovalForAll}.\n     */\n    function setApprovalForAll(address operator, bool approved) public virtual {\n        _setApprovalForAll(_msgSender(), operator, approved);\n    }\n\n    /**\n     * @dev See {IERC721-isApprovedForAll}.\n     */\n    function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n        return _operatorApprovals[owner][operator];\n    }\n\n    /**\n     * @dev See {IERC721-transferFrom}.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) public virtual {\n        if (to == address(0)) {\n            revert ERC721InvalidReceiver(address(0));\n        }\n        // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n        // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n        address previousOwner = _update(to, tokenId, _msgSender());\n        if (previousOwner != from) {\n            revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n        }\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) public {\n        safeTransferFrom(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n        transferFrom(from, to, tokenId);\n        ERC721Utils.checkOnERC721Received(_msgSender(), from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n     *\n     * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n     * core ERC-721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n     * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n     * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n     */\n    function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n        return _owners[tokenId];\n    }\n\n    /**\n     * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n     */\n    function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n        return _tokenApprovals[tokenId];\n    }\n\n    /**\n     * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n     * particular (ignoring whether it is owned by `owner`).\n     *\n     * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n     * assumption.\n     */\n    function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n        return\n            spender != address(0) &&\n            (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n    }\n\n    /**\n     * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n     * Reverts if:\n     * - `spender` does not have approval from `owner` for `tokenId`.\n     * - `spender` does not have approval to manage all of `owner`'s assets.\n     *\n     * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n     * assumption.\n     */\n    function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n        if (!_isAuthorized(owner, spender, tokenId)) {\n            if (owner == address(0)) {\n                revert ERC721NonexistentToken(tokenId);\n            } else {\n                revert ERC721InsufficientApproval(spender, tokenId);\n            }\n        }\n    }\n\n    /**\n     * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n     *\n     * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n     * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n     *\n     * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n     * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n     * remain consistent with one another.\n     */\n    function _increaseBalance(address account, uint128 value) internal virtual {\n        unchecked {\n            _balances[account] += value;\n        }\n    }\n\n    /**\n     * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n     * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n     *\n     * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n     * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n     *\n     * Emits a {Transfer} event.\n     *\n     * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n     */\n    function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n        address from = _ownerOf(tokenId);\n\n        // Perform (optional) operator check\n        if (auth != address(0)) {\n            _checkAuthorized(from, auth, tokenId);\n        }\n\n        // Execute the update\n        if (from != address(0)) {\n            // Clear approval. No need to re-authorize or emit the Approval event\n            _approve(address(0), tokenId, address(0), false);\n\n            unchecked {\n                _balances[from] -= 1;\n            }\n        }\n\n        if (to != address(0)) {\n            unchecked {\n                _balances[to] += 1;\n            }\n        }\n\n        _owners[tokenId] = to;\n\n        emit Transfer(from, to, tokenId);\n\n        return from;\n    }\n\n    /**\n     * @dev Mints `tokenId` and transfers it to `to`.\n     *\n     * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - `to` cannot be the zero address.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _mint(address to, uint256 tokenId) internal {\n        if (to == address(0)) {\n            revert ERC721InvalidReceiver(address(0));\n        }\n        address previousOwner = _update(to, tokenId, address(0));\n        if (previousOwner != address(0)) {\n            revert ERC721InvalidSender(address(0));\n        }\n    }\n\n    /**\n     * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeMint(address to, uint256 tokenId) internal {\n        _safeMint(to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n        _mint(to, tokenId);\n        ERC721Utils.checkOnERC721Received(_msgSender(), address(0), to, tokenId, data);\n    }\n\n    /**\n     * @dev Destroys `tokenId`.\n     * The approval is cleared when the token is burned.\n     * This is an internal function that does not check if the sender is authorized to operate on the token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _burn(uint256 tokenId) internal {\n        address previousOwner = _update(address(0), tokenId, address(0));\n        if (previousOwner == address(0)) {\n            revert ERC721NonexistentToken(tokenId);\n        }\n    }\n\n    /**\n     * @dev Transfers `tokenId` from `from` to `to`.\n     *  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _transfer(address from, address to, uint256 tokenId) internal {\n        if (to == address(0)) {\n            revert ERC721InvalidReceiver(address(0));\n        }\n        address previousOwner = _update(to, tokenId, address(0));\n        if (previousOwner == address(0)) {\n            revert ERC721NonexistentToken(tokenId);\n        } else if (previousOwner != from) {\n            revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n        }\n    }\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n     * are aware of the ERC-721 standard to prevent tokens from being forever locked.\n     *\n     * `data` is additional data, it has no specified format and it is sent in call to `to`.\n     *\n     * This internal function is like {safeTransferFrom} in the sense that it invokes\n     * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n     * implement alternative mechanisms to perform token transfer, such as signature-based.\n     *\n     * Requirements:\n     *\n     * - `tokenId` token must exist and be owned by `from`.\n     * - `to` cannot be the zero address.\n     * - `from` cannot be the zero address.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeTransfer(address from, address to, uint256 tokenId) internal {\n        _safeTransfer(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n        _transfer(from, to, tokenId);\n        ERC721Utils.checkOnERC721Received(_msgSender(), from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Approve `to` to operate on `tokenId`\n     *\n     * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n     * either the owner of the token, or approved to operate on all tokens held by this owner.\n     *\n     * Emits an {Approval} event.\n     *\n     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n     */\n    function _approve(address to, uint256 tokenId, address auth) internal {\n        _approve(to, tokenId, auth, true);\n    }\n\n    /**\n     * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n     * emitted in the context of transfers.\n     */\n    function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n        // Avoid reading the owner unless necessary\n        if (emitEvent || auth != address(0)) {\n            address owner = _requireOwned(tokenId);\n\n            // We do not use _isAuthorized because single-token approvals should not be able to call approve\n            if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n                revert ERC721InvalidApprover(auth);\n            }\n\n            if (emitEvent) {\n                emit Approval(owner, to, tokenId);\n            }\n        }\n\n        _tokenApprovals[tokenId] = to;\n    }\n\n    /**\n     * @dev Approve `operator` to operate on all of `owner` tokens\n     *\n     * Requirements:\n     * - operator can't be the address zero.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n        if (operator == address(0)) {\n            revert ERC721InvalidOperator(operator);\n        }\n        _operatorApprovals[owner][operator] = approved;\n        emit ApprovalForAll(owner, operator, approved);\n    }\n\n    /**\n     * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n     * Returns the owner.\n     *\n     * Overrides to ownership logic should be done to {_ownerOf}.\n     */\n    function _requireOwned(uint256 tokenId) internal view returns (address) {\n        address owner = _ownerOf(tokenId);\n        if (owner == address(0)) {\n            revert ERC721NonexistentToken(tokenId);\n        }\n        return owner;\n    }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n    /**\n     * @dev Returns the token collection name.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the token collection symbol.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n     */\n    function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC-721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n    /**\n     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n     */\n    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n     */\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n    /**\n     * @dev Returns the number of tokens in ``owner``'s account.\n     */\n    function balanceOf(address owner) external view returns (uint256 balance);\n\n    /**\n     * @dev Returns the owner of the `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function ownerOf(uint256 tokenId) external view returns (address owner);\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n     *   a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC-721 protocol to prevent tokens from being forever locked.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n     *   {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n     *   a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Transfers `tokenId` token from `from` to `to`.\n     *\n     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721\n     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n     * understand this adds an external call which potentially creates a reentrancy vulnerability.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n     * The approval is cleared when the token is transferred.\n     *\n     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n     *\n     * Requirements:\n     *\n     * - The caller must own the token or be an approved operator.\n     * - `tokenId` must exist.\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address to, uint256 tokenId) external;\n\n    /**\n     * @dev Approve or remove `operator` as an operator for the caller.\n     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n     *\n     * Requirements:\n     *\n     * - The `operator` cannot be the address zero.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function setApprovalForAll(address operator, bool approved) external;\n\n    /**\n     * @dev Returns the account approved for `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function getApproved(uint256 tokenId) external view returns (address operator);\n\n    /**\n     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n     *\n     * See {setApprovalForAll}\n     */\n    function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @title ERC-721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC-721 asset contracts.\n */\ninterface IERC721Receiver {\n    /**\n     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n     * by `operator` from `from`, this function is called.\n     *\n     * It must return its Solidity selector to confirm the token transfer.\n     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n     * reverted.\n     *\n     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n     */\n    function onERC721Received(\n        address operator,\n        address from,\n        uint256 tokenId,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/utils/ERC721Utils.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721Receiver} from \"../IERC721Receiver.sol\";\nimport {IERC721Errors} from \"../../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Library that provide common ERC-721 utility functions.\n *\n * See https://eips.ethereum.org/EIPS/eip-721[ERC-721].\n *\n * _Available since v5.1._\n */\nlibrary ERC721Utils {\n    /**\n     * @dev Performs an acceptance check for the provided `operator` by calling {IERC721-onERC721Received}\n     * on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n     *\n     * The acceptance call is not executed and treated as a no-op if the target address doesn't contain code (i.e. an EOA).\n     * Otherwise, the recipient must implement {IERC721Receiver-onERC721Received} and return the acceptance magic value to accept\n     * the transfer.\n     */\n    function checkOnERC721Received(\n        address operator,\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) internal {\n        if (to.code.length > 0) {\n            try IERC721Receiver(to).onERC721Received(operator, from, tokenId, data) returns (bytes4 retval) {\n                if (retval != IERC721Receiver.onERC721Received.selector) {\n                    // Token rejected\n                    revert IERC721Errors.ERC721InvalidReceiver(to);\n                }\n            } catch (bytes memory reason) {\n                if (reason.length == 0) {\n                    // non-IERC721Receiver implementer\n                    revert IERC721Errors.ERC721InvalidReceiver(to);\n                } else {\n                    assembly (\"memory-safe\") {\n                        revert(add(32, reason), mload(reason))\n                    }\n                }\n            }\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\nimport {Errors} from \"./Errors.sol\";\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev There's no code at `target` (it is not a contract).\n     */\n    error AddressEmptyCode(address target);\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        if (address(this).balance < amount) {\n            revert Errors.InsufficientBalance(address(this).balance, amount);\n        }\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        if (!success) {\n            revert Errors.FailedCall();\n        }\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason or custom error, it is bubbled\n     * up by this function (like regular Solidity function calls). However, if\n     * the call reverted with no returned reason, this function reverts with a\n     * {Errors.FailedCall} error.\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     */\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n        if (address(this).balance < value) {\n            revert Errors.InsufficientBalance(address(this).balance, value);\n        }\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n     * was not a contract or bubbling up the revert reason (falling back to {Errors.FailedCall}) in case\n     * of an unsuccessful call.\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata\n    ) internal view returns (bytes memory) {\n        if (!success) {\n            _revert(returndata);\n        } else {\n            // only check if target is a contract if the call was successful and the return data is empty\n            // otherwise we already know that it was a contract\n            if (returndata.length == 0 && target.code.length == 0) {\n                revert AddressEmptyCode(target);\n            }\n            return returndata;\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n     * revert reason or with a default {Errors.FailedCall} error.\n     */\n    function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\n        if (!success) {\n            _revert(returndata);\n        } else {\n            return returndata;\n        }\n    }\n\n    /**\n     * @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}.\n     */\n    function _revert(bytes memory returndata) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            assembly (\"memory-safe\") {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert Errors.FailedCall();\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\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/Create2.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Create2.sol)\n\npragma solidity ^0.8.20;\n\nimport {Errors} from \"./Errors.sol\";\n\n/**\n * @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.\n * `CREATE2` can be used to compute in advance the address where a smart\n * contract will be deployed, which allows for interesting new mechanisms known\n * as 'counterfactual interactions'.\n *\n * See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more\n * information.\n */\nlibrary Create2 {\n    /**\n     * @dev There's no code to deploy.\n     */\n    error Create2EmptyBytecode();\n\n    /**\n     * @dev Deploys a contract using `CREATE2`. The address where the contract\n     * will be deployed can be known in advance via {computeAddress}.\n     *\n     * The bytecode for a contract can be obtained from Solidity with\n     * `type(contractName).creationCode`.\n     *\n     * Requirements:\n     *\n     * - `bytecode` must not be empty.\n     * - `salt` must have not been used for `bytecode` already.\n     * - the factory must have a balance of at least `amount`.\n     * - if `amount` is non-zero, `bytecode` must have a `payable` constructor.\n     */\n    function deploy(uint256 amount, bytes32 salt, bytes memory bytecode) internal returns (address addr) {\n        if (address(this).balance < amount) {\n            revert Errors.InsufficientBalance(address(this).balance, amount);\n        }\n        if (bytecode.length == 0) {\n            revert Create2EmptyBytecode();\n        }\n        assembly (\"memory-safe\") {\n            addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt)\n            // if no address was created, and returndata is not empty, bubble revert\n            if and(iszero(addr), not(iszero(returndatasize()))) {\n                let p := mload(0x40)\n                returndatacopy(p, 0, returndatasize())\n                revert(p, returndatasize())\n            }\n        }\n        if (addr == address(0)) {\n            revert Errors.FailedDeployment();\n        }\n    }\n\n    /**\n     * @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the\n     * `bytecodeHash` or `salt` will result in a new destination address.\n     */\n    function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) {\n        return computeAddress(salt, bytecodeHash, address(this));\n    }\n\n    /**\n     * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at\n     * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.\n     */\n    function computeAddress(bytes32 salt, bytes32 bytecodeHash, address deployer) internal pure returns (address addr) {\n        assembly (\"memory-safe\") {\n            let ptr := mload(0x40) // Get free memory pointer\n\n            // |                   | ↓ ptr ...  ↓ ptr + 0x0B (start) ...  ↓ ptr + 0x20 ...  ↓ ptr + 0x40 ...   |\n            // |-------------------|---------------------------------------------------------------------------|\n            // | bytecodeHash      |                                                        CCCCCCCCCCCCC...CC |\n            // | salt              |                                      BBBBBBBBBBBBB...BB                   |\n            // | deployer          | 000000...0000AAAAAAAAAAAAAAAAAAA...AA                                     |\n            // | 0xFF              |            FF                                                             |\n            // |-------------------|---------------------------------------------------------------------------|\n            // | memory            | 000000...00FFAAAAAAAAAAAAAAAAAAA...AABBBBBBBBBBBBB...BBCCCCCCCCCCCCC...CC |\n            // | keccak(start, 85) |            ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ |\n\n            mstore(add(ptr, 0x40), bytecodeHash)\n            mstore(add(ptr, 0x20), salt)\n            mstore(ptr, deployer) // Right-aligned with 12 preceding garbage bytes\n            let start := add(ptr, 0x0b) // The hashed data starts at the final garbage byte which we will set to 0xff\n            mstore8(start, 0xff)\n            addr := and(keccak256(start, 85), 0xffffffffffffffffffffffffffffffffffffffff)\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/Hashes.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/cryptography/Hashes.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library of standard hash functions.\n *\n * _Available since v5.1._\n */\nlibrary Hashes {\n    /**\n     * @dev Commutative Keccak256 hash of a sorted pair of bytes32. Frequently used when working with merkle proofs.\n     *\n     * NOTE: Equivalent to the `standardNodeHash` in our https://github.com/OpenZeppelin/merkle-tree[JavaScript library].\n     */\n    function commutativeKeccak256(bytes32 a, bytes32 b) internal pure returns (bytes32) {\n        return a < b ? _efficientKeccak256(a, b) : _efficientKeccak256(b, a);\n    }\n\n    /**\n     * @dev Implementation of keccak256(abi.encode(a, b)) that doesn't allocate or expand memory.\n     */\n    function _efficientKeccak256(bytes32 a, bytes32 b) private pure returns (bytes32 value) {\n        assembly (\"memory-safe\") {\n            mstore(0x00, a)\n            mstore(0x20, b)\n            value := keccak256(0x00, 0x40)\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/cryptography/MerkleProof.sol)\n// This file was procedurally generated from scripts/generate/templates/MerkleProof.js.\n\npragma solidity ^0.8.20;\n\nimport {Hashes} from \"./Hashes.sol\";\n\n/**\n * @dev These functions deal with verification of Merkle Tree proofs.\n *\n * The tree and the proofs can be generated using our\n * https://github.com/OpenZeppelin/merkle-tree[JavaScript library].\n * You will find a quickstart guide in the readme.\n *\n * WARNING: You should avoid using leaf values that are 64 bytes long prior to\n * hashing, or use a hash function other than keccak256 for hashing leaves.\n * This is because the concatenation of a sorted pair of internal nodes in\n * the Merkle tree could be reinterpreted as a leaf value.\n * OpenZeppelin's JavaScript library generates Merkle trees that are safe\n * against this attack out of the box.\n *\n * IMPORTANT: Consider memory side-effects when using custom hashing functions\n * that access memory in an unsafe way.\n *\n * NOTE: This library supports proof verification for merkle trees built using\n * custom _commutative_ hashing functions (i.e. `H(a, b) == H(b, a)`). Proving\n * leaf inclusion in trees built using non-commutative hashing functions requires\n * additional logic that is not supported by this library.\n */\nlibrary MerkleProof {\n    /**\n     *@dev The multiproof provided is not valid.\n     */\n    error MerkleProofInvalidMultiproof();\n\n    /**\n     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n     * defined by `root`. For this, a `proof` must be provided, containing\n     * sibling hashes on the branch from the leaf to the root of the tree. Each\n     * pair of leaves and each pair of pre-images are assumed to be sorted.\n     *\n     * This version handles proofs in memory with the default hashing function.\n     */\n    function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) {\n        return processProof(proof, leaf) == root;\n    }\n\n    /**\n     * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n     * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n     * hash matches the root of the tree. When processing the proof, the pairs\n     * of leaves & pre-images are assumed to be sorted.\n     *\n     * This version handles proofs in memory with the default hashing function.\n     */\n    function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {\n        bytes32 computedHash = leaf;\n        for (uint256 i = 0; i < proof.length; i++) {\n            computedHash = Hashes.commutativeKeccak256(computedHash, proof[i]);\n        }\n        return computedHash;\n    }\n\n    /**\n     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n     * defined by `root`. For this, a `proof` must be provided, containing\n     * sibling hashes on the branch from the leaf to the root of the tree. Each\n     * pair of leaves and each pair of pre-images are assumed to be sorted.\n     *\n     * This version handles proofs in memory with a custom hashing function.\n     */\n    function verify(\n        bytes32[] memory proof,\n        bytes32 root,\n        bytes32 leaf,\n        function(bytes32, bytes32) view returns (bytes32) hasher\n    ) internal view returns (bool) {\n        return processProof(proof, leaf, hasher) == root;\n    }\n\n    /**\n     * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n     * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n     * hash matches the root of the tree. When processing the proof, the pairs\n     * of leaves & pre-images are assumed to be sorted.\n     *\n     * This version handles proofs in memory with a custom hashing function.\n     */\n    function processProof(\n        bytes32[] memory proof,\n        bytes32 leaf,\n        function(bytes32, bytes32) view returns (bytes32) hasher\n    ) internal view returns (bytes32) {\n        bytes32 computedHash = leaf;\n        for (uint256 i = 0; i < proof.length; i++) {\n            computedHash = hasher(computedHash, proof[i]);\n        }\n        return computedHash;\n    }\n\n    /**\n     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n     * defined by `root`. For this, a `proof` must be provided, containing\n     * sibling hashes on the branch from the leaf to the root of the tree. Each\n     * pair of leaves and each pair of pre-images are assumed to be sorted.\n     *\n     * This version handles proofs in calldata with the default hashing function.\n     */\n    function verifyCalldata(bytes32[] calldata proof, bytes32 root, bytes32 leaf) internal pure returns (bool) {\n        return processProofCalldata(proof, leaf) == root;\n    }\n\n    /**\n     * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n     * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n     * hash matches the root of the tree. When processing the proof, the pairs\n     * of leaves & pre-images are assumed to be sorted.\n     *\n     * This version handles proofs in calldata with the default hashing function.\n     */\n    function processProofCalldata(bytes32[] calldata proof, bytes32 leaf) internal pure returns (bytes32) {\n        bytes32 computedHash = leaf;\n        for (uint256 i = 0; i < proof.length; i++) {\n            computedHash = Hashes.commutativeKeccak256(computedHash, proof[i]);\n        }\n        return computedHash;\n    }\n\n    /**\n     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n     * defined by `root`. For this, a `proof` must be provided, containing\n     * sibling hashes on the branch from the leaf to the root of the tree. Each\n     * pair of leaves and each pair of pre-images are assumed to be sorted.\n     *\n     * This version handles proofs in calldata with a custom hashing function.\n     */\n    function verifyCalldata(\n        bytes32[] calldata proof,\n        bytes32 root,\n        bytes32 leaf,\n        function(bytes32, bytes32) view returns (bytes32) hasher\n    ) internal view returns (bool) {\n        return processProofCalldata(proof, leaf, hasher) == root;\n    }\n\n    /**\n     * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n     * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n     * hash matches the root of the tree. When processing the proof, the pairs\n     * of leaves & pre-images are assumed to be sorted.\n     *\n     * This version handles proofs in calldata with a custom hashing function.\n     */\n    function processProofCalldata(\n        bytes32[] calldata proof,\n        bytes32 leaf,\n        function(bytes32, bytes32) view returns (bytes32) hasher\n    ) internal view returns (bytes32) {\n        bytes32 computedHash = leaf;\n        for (uint256 i = 0; i < proof.length; i++) {\n            computedHash = hasher(computedHash, proof[i]);\n        }\n        return computedHash;\n    }\n\n    /**\n     * @dev Returns true if the `leaves` can be simultaneously proven to be a part of a Merkle tree defined by\n     * `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n     *\n     * This version handles multiproofs in memory with the default hashing function.\n     *\n     * CAUTION: Not all Merkle trees admit multiproofs. See {processMultiProof} for details.\n     *\n     * NOTE: Consider the case where `root == proof[0] && leaves.length == 0` as it will return `true`.\n     * The `leaves` must be validated independently. See {processMultiProof}.\n     */\n    function multiProofVerify(\n        bytes32[] memory proof,\n        bool[] memory proofFlags,\n        bytes32 root,\n        bytes32[] memory leaves\n    ) internal pure returns (bool) {\n        return processMultiProof(proof, proofFlags, leaves) == root;\n    }\n\n    /**\n     * @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n     * proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n     * leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n     * respectively.\n     *\n     * This version handles multiproofs in memory with the default hashing function.\n     *\n     * CAUTION: Not all Merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n     * is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n     * tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n     *\n     * NOTE: The _empty set_ (i.e. the case where `proof.length == 1 && leaves.length == 0`) is considered a no-op,\n     * and therefore a valid multiproof (i.e. it returns `proof[0]`). Consider disallowing this case if you're not\n     * validating the leaves elsewhere.\n     */\n    function processMultiProof(\n        bytes32[] memory proof,\n        bool[] memory proofFlags,\n        bytes32[] memory leaves\n    ) internal pure returns (bytes32 merkleRoot) {\n        // This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by\n        // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the\n        // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of\n        // the Merkle tree.\n        uint256 leavesLen = leaves.length;\n        uint256 proofFlagsLen = proofFlags.length;\n\n        // Check proof validity.\n        if (leavesLen + proof.length != proofFlagsLen + 1) {\n            revert MerkleProofInvalidMultiproof();\n        }\n\n        // The xxxPos values are \"pointers\" to the next value to consume in each array. All accesses are done using\n        // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's \"pop\".\n        bytes32[] memory hashes = new bytes32[](proofFlagsLen);\n        uint256 leafPos = 0;\n        uint256 hashPos = 0;\n        uint256 proofPos = 0;\n        // At each step, we compute the next hash using two values:\n        // - a value from the \"main queue\". If not all leaves have been consumed, we get the next leaf, otherwise we\n        //   get the next hash.\n        // - depending on the flag, either another value from the \"main queue\" (merging branches) or an element from the\n        //   `proof` array.\n        for (uint256 i = 0; i < proofFlagsLen; i++) {\n            bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];\n            bytes32 b = proofFlags[i]\n                ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++])\n                : proof[proofPos++];\n            hashes[i] = Hashes.commutativeKeccak256(a, b);\n        }\n\n        if (proofFlagsLen > 0) {\n            if (proofPos != proof.length) {\n                revert MerkleProofInvalidMultiproof();\n            }\n            unchecked {\n                return hashes[proofFlagsLen - 1];\n            }\n        } else if (leavesLen > 0) {\n            return leaves[0];\n        } else {\n            return proof[0];\n        }\n    }\n\n    /**\n     * @dev Returns true if the `leaves` can be simultaneously proven to be a part of a Merkle tree defined by\n     * `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n     *\n     * This version handles multiproofs in memory with a custom hashing function.\n     *\n     * CAUTION: Not all Merkle trees admit multiproofs. See {processMultiProof} for details.\n     *\n     * NOTE: Consider the case where `root == proof[0] && leaves.length == 0` as it will return `true`.\n     * The `leaves` must be validated independently. See {processMultiProof}.\n     */\n    function multiProofVerify(\n        bytes32[] memory proof,\n        bool[] memory proofFlags,\n        bytes32 root,\n        bytes32[] memory leaves,\n        function(bytes32, bytes32) view returns (bytes32) hasher\n    ) internal view returns (bool) {\n        return processMultiProof(proof, proofFlags, leaves, hasher) == root;\n    }\n\n    /**\n     * @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n     * proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n     * leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n     * respectively.\n     *\n     * This version handles multiproofs in memory with a custom hashing function.\n     *\n     * CAUTION: Not all Merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n     * is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n     * tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n     *\n     * NOTE: The _empty set_ (i.e. the case where `proof.length == 1 && leaves.length == 0`) is considered a no-op,\n     * and therefore a valid multiproof (i.e. it returns `proof[0]`). Consider disallowing this case if you're not\n     * validating the leaves elsewhere.\n     */\n    function processMultiProof(\n        bytes32[] memory proof,\n        bool[] memory proofFlags,\n        bytes32[] memory leaves,\n        function(bytes32, bytes32) view returns (bytes32) hasher\n    ) internal view returns (bytes32 merkleRoot) {\n        // This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by\n        // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the\n        // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of\n        // the Merkle tree.\n        uint256 leavesLen = leaves.length;\n        uint256 proofFlagsLen = proofFlags.length;\n\n        // Check proof validity.\n        if (leavesLen + proof.length != proofFlagsLen + 1) {\n            revert MerkleProofInvalidMultiproof();\n        }\n\n        // The xxxPos values are \"pointers\" to the next value to consume in each array. All accesses are done using\n        // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's \"pop\".\n        bytes32[] memory hashes = new bytes32[](proofFlagsLen);\n        uint256 leafPos = 0;\n        uint256 hashPos = 0;\n        uint256 proofPos = 0;\n        // At each step, we compute the next hash using two values:\n        // - a value from the \"main queue\". If not all leaves have been consumed, we get the next leaf, otherwise we\n        //   get the next hash.\n        // - depending on the flag, either another value from the \"main queue\" (merging branches) or an element from the\n        //   `proof` array.\n        for (uint256 i = 0; i < proofFlagsLen; i++) {\n            bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];\n            bytes32 b = proofFlags[i]\n                ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++])\n                : proof[proofPos++];\n            hashes[i] = hasher(a, b);\n        }\n\n        if (proofFlagsLen > 0) {\n            if (proofPos != proof.length) {\n                revert MerkleProofInvalidMultiproof();\n            }\n            unchecked {\n                return hashes[proofFlagsLen - 1];\n            }\n        } else if (leavesLen > 0) {\n            return leaves[0];\n        } else {\n            return proof[0];\n        }\n    }\n\n    /**\n     * @dev Returns true if the `leaves` can be simultaneously proven to be a part of a Merkle tree defined by\n     * `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n     *\n     * This version handles multiproofs in calldata with the default hashing function.\n     *\n     * CAUTION: Not all Merkle trees admit multiproofs. See {processMultiProof} for details.\n     *\n     * NOTE: Consider the case where `root == proof[0] && leaves.length == 0` as it will return `true`.\n     * The `leaves` must be validated independently. See {processMultiProofCalldata}.\n     */\n    function multiProofVerifyCalldata(\n        bytes32[] calldata proof,\n        bool[] calldata proofFlags,\n        bytes32 root,\n        bytes32[] memory leaves\n    ) internal pure returns (bool) {\n        return processMultiProofCalldata(proof, proofFlags, leaves) == root;\n    }\n\n    /**\n     * @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n     * proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n     * leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n     * respectively.\n     *\n     * This version handles multiproofs in calldata with the default hashing function.\n     *\n     * CAUTION: Not all Merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n     * is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n     * tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n     *\n     * NOTE: The _empty set_ (i.e. the case where `proof.length == 1 && leaves.length == 0`) is considered a no-op,\n     * and therefore a valid multiproof (i.e. it returns `proof[0]`). Consider disallowing this case if you're not\n     * validating the leaves elsewhere.\n     */\n    function processMultiProofCalldata(\n        bytes32[] calldata proof,\n        bool[] calldata proofFlags,\n        bytes32[] memory leaves\n    ) internal pure returns (bytes32 merkleRoot) {\n        // This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by\n        // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the\n        // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of\n        // the Merkle tree.\n        uint256 leavesLen = leaves.length;\n        uint256 proofFlagsLen = proofFlags.length;\n\n        // Check proof validity.\n        if (leavesLen + proof.length != proofFlagsLen + 1) {\n            revert MerkleProofInvalidMultiproof();\n        }\n\n        // The xxxPos values are \"pointers\" to the next value to consume in each array. All accesses are done using\n        // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's \"pop\".\n        bytes32[] memory hashes = new bytes32[](proofFlagsLen);\n        uint256 leafPos = 0;\n        uint256 hashPos = 0;\n        uint256 proofPos = 0;\n        // At each step, we compute the next hash using two values:\n        // - a value from the \"main queue\". If not all leaves have been consumed, we get the next leaf, otherwise we\n        //   get the next hash.\n        // - depending on the flag, either another value from the \"main queue\" (merging branches) or an element from the\n        //   `proof` array.\n        for (uint256 i = 0; i < proofFlagsLen; i++) {\n            bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];\n            bytes32 b = proofFlags[i]\n                ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++])\n                : proof[proofPos++];\n            hashes[i] = Hashes.commutativeKeccak256(a, b);\n        }\n\n        if (proofFlagsLen > 0) {\n            if (proofPos != proof.length) {\n                revert MerkleProofInvalidMultiproof();\n            }\n            unchecked {\n                return hashes[proofFlagsLen - 1];\n            }\n        } else if (leavesLen > 0) {\n            return leaves[0];\n        } else {\n            return proof[0];\n        }\n    }\n\n    /**\n     * @dev Returns true if the `leaves` can be simultaneously proven to be a part of a Merkle tree defined by\n     * `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n     *\n     * This version handles multiproofs in calldata with a custom hashing function.\n     *\n     * CAUTION: Not all Merkle trees admit multiproofs. See {processMultiProof} for details.\n     *\n     * NOTE: Consider the case where `root == proof[0] && leaves.length == 0` as it will return `true`.\n     * The `leaves` must be validated independently. See {processMultiProofCalldata}.\n     */\n    function multiProofVerifyCalldata(\n        bytes32[] calldata proof,\n        bool[] calldata proofFlags,\n        bytes32 root,\n        bytes32[] memory leaves,\n        function(bytes32, bytes32) view returns (bytes32) hasher\n    ) internal view returns (bool) {\n        return processMultiProofCalldata(proof, proofFlags, leaves, hasher) == root;\n    }\n\n    /**\n     * @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n     * proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n     * leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n     * respectively.\n     *\n     * This version handles multiproofs in calldata with a custom hashing function.\n     *\n     * CAUTION: Not all Merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n     * is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n     * tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n     *\n     * NOTE: The _empty set_ (i.e. the case where `proof.length == 1 && leaves.length == 0`) is considered a no-op,\n     * and therefore a valid multiproof (i.e. it returns `proof[0]`). Consider disallowing this case if you're not\n     * validating the leaves elsewhere.\n     */\n    function processMultiProofCalldata(\n        bytes32[] calldata proof,\n        bool[] calldata proofFlags,\n        bytes32[] memory leaves,\n        function(bytes32, bytes32) view returns (bytes32) hasher\n    ) internal view returns (bytes32 merkleRoot) {\n        // This function rebuilds the root hash by traversing the tree up from the leaves. The root is rebuilt by\n        // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the\n        // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of\n        // the Merkle tree.\n        uint256 leavesLen = leaves.length;\n        uint256 proofFlagsLen = proofFlags.length;\n\n        // Check proof validity.\n        if (leavesLen + proof.length != proofFlagsLen + 1) {\n            revert MerkleProofInvalidMultiproof();\n        }\n\n        // The xxxPos values are \"pointers\" to the next value to consume in each array. All accesses are done using\n        // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's \"pop\".\n        bytes32[] memory hashes = new bytes32[](proofFlagsLen);\n        uint256 leafPos = 0;\n        uint256 hashPos = 0;\n        uint256 proofPos = 0;\n        // At each step, we compute the next hash using two values:\n        // - a value from the \"main queue\". If not all leaves have been consumed, we get the next leaf, otherwise we\n        //   get the next hash.\n        // - depending on the flag, either another value from the \"main queue\" (merging branches) or an element from the\n        //   `proof` array.\n        for (uint256 i = 0; i < proofFlagsLen; i++) {\n            bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];\n            bytes32 b = proofFlags[i]\n                ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++])\n                : proof[proofPos++];\n            hashes[i] = hasher(a, b);\n        }\n\n        if (proofFlagsLen > 0) {\n            if (proofPos != proof.length) {\n                revert MerkleProofInvalidMultiproof();\n            }\n            unchecked {\n                return hashes[proofFlagsLen - 1];\n            }\n        } else if (leavesLen > 0) {\n            return leaves[0];\n        } else {\n            return proof[0];\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Errors.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Errors.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of common custom errors used in multiple contracts\n *\n * IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n * It is recommended to avoid relying on the error API for critical functionality.\n *\n * _Available since v5.1._\n */\nlibrary Errors {\n    /**\n     * @dev The ETH balance of the account is not enough to perform the operation.\n     */\n    error InsufficientBalance(uint256 balance, uint256 needed);\n\n    /**\n     * @dev A call to an address target failed. The target may have reverted.\n     */\n    error FailedCall();\n\n    /**\n     * @dev The deployment failed.\n     */\n    error FailedDeployment();\n\n    /**\n     * @dev A necessary precompile is missing.\n     */\n    error MissingPrecompile(address);\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n        return interfaceId == type(IERC165).interfaceId;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n    enum Rounding {\n        Floor, // Toward negative infinity\n        Ceil, // Toward positive infinity\n        Trunc, // Toward zero\n        Expand // Away from zero\n    }\n\n    /**\n     * @dev Returns the addition of two unsigned integers, with an success flag (no overflow).\n     */\n    function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n        unchecked {\n            uint256 c = a + b;\n            if (c < a) return (false, 0);\n            return (true, c);\n        }\n    }\n\n    /**\n     * @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow).\n     */\n    function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n        unchecked {\n            if (b > a) return (false, 0);\n            return (true, a - b);\n        }\n    }\n\n    /**\n     * @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow).\n     */\n    function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n        unchecked {\n            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n            // benefit is lost if 'b' is also tested.\n            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n            if (a == 0) return (true, 0);\n            uint256 c = a * b;\n            if (c / a != b) return (false, 0);\n            return (true, c);\n        }\n    }\n\n    /**\n     * @dev Returns the division of two unsigned integers, with a success flag (no division by zero).\n     */\n    function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n        unchecked {\n            if (b == 0) return (false, 0);\n            return (true, a / b);\n        }\n    }\n\n    /**\n     * @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero).\n     */\n    function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n        unchecked {\n            if (b == 0) return (false, 0);\n            return (true, a % b);\n        }\n    }\n\n    /**\n     * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n     *\n     * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n     * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n     * one branch when needed, making this function more expensive.\n     */\n    function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n        unchecked {\n            // branchless ternary works because:\n            // b ^ (a ^ b) == a\n            // b ^ 0 == b\n            return b ^ ((a ^ b) * SafeCast.toUint(condition));\n        }\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 ternary(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 ternary(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 towards infinity instead\n     * of rounding towards zero.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        if (b == 0) {\n            // Guarantee the same behavior as in a regular Solidity division.\n            Panic.panic(Panic.DIVISION_BY_ZERO);\n        }\n\n        // The following calculation ensures accurate ceiling division without overflow.\n        // Since a is non-zero, (a - 1) / b will not overflow.\n        // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n        // but the largest value we can obtain is type(uint256).max - 1, which happens\n        // when a = type(uint256).max and b = 1.\n        unchecked {\n            return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n        }\n    }\n\n    /**\n     * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n     * denominator == 0.\n     *\n     * Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n     * 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²⁵⁶ and mod 2²⁵⁶ - 1, then use\n            // the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2²⁵⁶ + prod0.\n            uint256 prod0 = x * y; // 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                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²⁵⁶. Also prevents denominator == 0.\n            if (denominator <= prod1) {\n                Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\n            }\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.\n            // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n            uint256 twos = denominator & (0 - denominator);\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²⁵⁶ / 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²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n            // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\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\n            // works in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2⁸\n            inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n            inverse *= 2 - denominator * inverse; // inverse mod 2³²\n            inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n            inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n            inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\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²⁵⁶. Since the preconditions guarantee that the outcome is\n            // less than 2²⁵⁶, 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     * @dev 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        return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n    }\n\n    /**\n     * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n     *\n     * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n     * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n     *\n     * If the input value is not inversible, 0 is returned.\n     *\n     * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n     * inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}.\n     */\n    function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n        unchecked {\n            if (n == 0) return 0;\n\n            // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n            // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n            // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n            // ax + ny = 1\n            // ax = 1 + (-y)n\n            // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n            // If the remainder is 0 the gcd is n right away.\n            uint256 remainder = a % n;\n            uint256 gcd = n;\n\n            // Therefore the initial coefficients are:\n            // ax + ny = gcd(a, n) = n\n            // 0a + 1n = n\n            int256 x = 0;\n            int256 y = 1;\n\n            while (remainder != 0) {\n                uint256 quotient = gcd / remainder;\n\n                (gcd, remainder) = (\n                    // The old remainder is the next gcd to try.\n                    remainder,\n                    // Compute the next remainder.\n                    // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n                    // where gcd is at most n (capped to type(uint256).max)\n                    gcd - remainder * quotient\n                );\n\n                (x, y) = (\n                    // Increment the coefficient of a.\n                    y,\n                    // Decrement the coefficient of n.\n                    // Can overflow, but the result is casted to uint256 so that the\n                    // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n                    x - y * int256(quotient)\n                );\n            }\n\n            if (gcd != 1) return 0; // No inverse exists.\n            return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n        }\n    }\n\n    /**\n     * @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n     *\n     * From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n     * prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n     * `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n     *\n     * NOTE: this function does NOT check that `p` is a prime greater than `2`.\n     */\n    function invModPrime(uint256 a, uint256 p) internal view returns (uint256) {\n        unchecked {\n            return Math.modExp(a, p - 2, p);\n        }\n    }\n\n    /**\n     * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n     *\n     * Requirements:\n     * - modulus can't be zero\n     * - underlying staticcall to precompile must succeed\n     *\n     * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n     * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n     * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n     * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n     * interpreted as 0.\n     */\n    function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n        (bool success, uint256 result) = tryModExp(b, e, m);\n        if (!success) {\n            Panic.panic(Panic.DIVISION_BY_ZERO);\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n     * It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n     * to operate modulo 0 or if the underlying precompile reverted.\n     *\n     * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n     * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n     * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n     * of a revert, but the result may be incorrectly interpreted as 0.\n     */\n    function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n        if (m == 0) return (false, 0);\n        assembly (\"memory-safe\") {\n            let ptr := mload(0x40)\n            // | Offset    | Content    | Content (Hex)                                                      |\n            // |-----------|------------|--------------------------------------------------------------------|\n            // | 0x00:0x1f | size of b  | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n            // | 0x20:0x3f | size of e  | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n            // | 0x40:0x5f | size of m  | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n            // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n            // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n            // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n            mstore(ptr, 0x20)\n            mstore(add(ptr, 0x20), 0x20)\n            mstore(add(ptr, 0x40), 0x20)\n            mstore(add(ptr, 0x60), b)\n            mstore(add(ptr, 0x80), e)\n            mstore(add(ptr, 0xa0), m)\n\n            // Given the result < m, it's guaranteed to fit in 32 bytes,\n            // so we can use the memory scratch space located at offset 0.\n            success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n            result := mload(0x00)\n        }\n    }\n\n    /**\n     * @dev Variant of {modExp} that supports inputs of arbitrary length.\n     */\n    function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n        (bool success, bytes memory result) = tryModExp(b, e, m);\n        if (!success) {\n            Panic.panic(Panic.DIVISION_BY_ZERO);\n        }\n        return result;\n    }\n\n    /**\n     * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n     */\n    function tryModExp(\n        bytes memory b,\n        bytes memory e,\n        bytes memory m\n    ) internal view returns (bool success, bytes memory result) {\n        if (_zeroBytes(m)) return (false, new bytes(0));\n\n        uint256 mLen = m.length;\n\n        // Encode call args in result and move the free memory pointer\n        result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n        assembly (\"memory-safe\") {\n            let dataPtr := add(result, 0x20)\n            // Write result on top of args to avoid allocating extra memory.\n            success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n            // Overwrite the length.\n            // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n            mstore(result, mLen)\n            // Set the memory pointer after the returned data.\n            mstore(0x40, add(dataPtr, mLen))\n        }\n    }\n\n    /**\n     * @dev Returns whether the provided byte array is zero.\n     */\n    function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n        for (uint256 i = 0; i < byteArray.length; ++i) {\n            if (byteArray[i] != 0) {\n                return false;\n            }\n        }\n        return true;\n    }\n\n    /**\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n     * towards zero.\n     *\n     * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n     * using integer operations.\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        unchecked {\n            // Take care of easy edge cases when a == 0 or a == 1\n            if (a <= 1) {\n                return a;\n            }\n\n            // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n            // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n            // the current value as `ε_n = | x_n - sqrt(a) |`.\n            //\n            // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n            // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n            // bigger than any uint256.\n            //\n            // By noticing that\n            // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n            // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n            // to the msb function.\n            uint256 aa = a;\n            uint256 xn = 1;\n\n            if (aa >= (1 << 128)) {\n                aa >>= 128;\n                xn <<= 64;\n            }\n            if (aa >= (1 << 64)) {\n                aa >>= 64;\n                xn <<= 32;\n            }\n            if (aa >= (1 << 32)) {\n                aa >>= 32;\n                xn <<= 16;\n            }\n            if (aa >= (1 << 16)) {\n                aa >>= 16;\n                xn <<= 8;\n            }\n            if (aa >= (1 << 8)) {\n                aa >>= 8;\n                xn <<= 4;\n            }\n            if (aa >= (1 << 4)) {\n                aa >>= 4;\n                xn <<= 2;\n            }\n            if (aa >= (1 << 2)) {\n                xn <<= 1;\n            }\n\n            // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n            //\n            // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n            // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n            // This is going to be our x_0 (and ε_0)\n            xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n            // From here, Newton's method give us:\n            // x_{n+1} = (x_n + a / x_n) / 2\n            //\n            // One should note that:\n            // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n            //              = ((x_n² + a) / (2 * x_n))² - a\n            //              = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n            //              = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n            //              = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n            //              = (x_n² - a)² / (2 * x_n)²\n            //              = ((x_n² - a) / (2 * x_n))²\n            //              ≥ 0\n            // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n            //\n            // This gives us the proof of quadratic convergence of the sequence:\n            // ε_{n+1} = | x_{n+1} - sqrt(a) |\n            //         = | (x_n + a / x_n) / 2 - sqrt(a) |\n            //         = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n            //         = | (x_n - sqrt(a))² / (2 * x_n) |\n            //         = | ε_n² / (2 * x_n) |\n            //         = ε_n² / | (2 * x_n) |\n            //\n            // For the first iteration, we have a special case where x_0 is known:\n            // ε_1 = ε_0² / | (2 * x_0) |\n            //     ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n            //     ≤ 2**(2*e-4) / (3 * 2**(e-1))\n            //     ≤ 2**(e-3) / 3\n            //     ≤ 2**(e-3-log2(3))\n            //     ≤ 2**(e-4.5)\n            //\n            // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n            // ε_{n+1} = ε_n² / | (2 * x_n) |\n            //         ≤ (2**(e-k))² / (2 * 2**(e-1))\n            //         ≤ 2**(2*e-2*k) / 2**e\n            //         ≤ 2**(e-2*k)\n            xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5)  -- special case, see above\n            xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9)    -- general case with k = 4.5\n            xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18)   -- general case with k = 9\n            xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36)   -- general case with k = 18\n            xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72)   -- general case with k = 36\n            xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144)  -- general case with k = 72\n\n            // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n            // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n            // sqrt(a) or sqrt(a) + 1.\n            return xn - SafeCast.toUint(xn > a / xn);\n        }\n    }\n\n    /**\n     * @dev 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 + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 2 of a positive value rounded towards zero.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        uint256 exp;\n        unchecked {\n            exp = 128 * SafeCast.toUint(value > (1 << 128) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 64 * SafeCast.toUint(value > (1 << 64) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 32 * SafeCast.toUint(value > (1 << 32) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 16 * SafeCast.toUint(value > (1 << 16) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 8 * SafeCast.toUint(value > (1 << 8) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 4 * SafeCast.toUint(value > (1 << 4) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 2 * SafeCast.toUint(value > (1 << 2) - 1);\n            value >>= exp;\n            result += exp;\n\n            result += SafeCast.toUint(value > 1);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 10 of a positive value rounded towards zero.\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 256 of a positive value rounded towards zero.\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        uint256 isGt;\n        unchecked {\n            isGt = SafeCast.toUint(value > (1 << 128) - 1);\n            value >>= isGt * 128;\n            result += isGt * 16;\n\n            isGt = SafeCast.toUint(value > (1 << 64) - 1);\n            value >>= isGt * 64;\n            result += isGt * 8;\n\n            isGt = SafeCast.toUint(value > (1 << 32) - 1);\n            value >>= isGt * 32;\n            result += isGt * 4;\n\n            isGt = SafeCast.toUint(value > (1 << 16) - 1);\n            value >>= isGt * 16;\n            result += isGt * 2;\n\n            result += SafeCast.toUint(value > (1 << 8) - 1);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\n        }\n    }\n\n    /**\n     * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n     */\n    function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n        return uint8(rounding) % 2 == 1;\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeCast {\n    /**\n     * @dev Value doesn't fit in an uint of `bits` size.\n     */\n    error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n    /**\n     * @dev An int value doesn't fit in an uint of `bits` size.\n     */\n    error SafeCastOverflowedIntToUint(int256 value);\n\n    /**\n     * @dev Value doesn't fit in an int of `bits` size.\n     */\n    error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n    /**\n     * @dev An uint value doesn't fit in an int of `bits` size.\n     */\n    error SafeCastOverflowedUintToInt(uint256 value);\n\n    /**\n     * @dev Returns the downcasted uint248 from uint256, reverting on\n     * overflow (when the input is greater than largest uint248).\n     *\n     * Counterpart to Solidity's `uint248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     */\n    function toUint248(uint256 value) internal pure returns (uint248) {\n        if (value > type(uint248).max) {\n            revert SafeCastOverflowedUintDowncast(248, value);\n        }\n        return uint248(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint240 from uint256, reverting on\n     * overflow (when the input is greater than largest uint240).\n     *\n     * Counterpart to Solidity's `uint240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     */\n    function toUint240(uint256 value) internal pure returns (uint240) {\n        if (value > type(uint240).max) {\n            revert SafeCastOverflowedUintDowncast(240, value);\n        }\n        return uint240(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint232 from uint256, reverting on\n     * overflow (when the input is greater than largest uint232).\n     *\n     * Counterpart to Solidity's `uint232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     */\n    function toUint232(uint256 value) internal pure returns (uint232) {\n        if (value > type(uint232).max) {\n            revert SafeCastOverflowedUintDowncast(232, value);\n        }\n        return uint232(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint224 from uint256, reverting on\n     * overflow (when the input is greater than largest uint224).\n     *\n     * Counterpart to Solidity's `uint224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     */\n    function toUint224(uint256 value) internal pure returns (uint224) {\n        if (value > type(uint224).max) {\n            revert SafeCastOverflowedUintDowncast(224, value);\n        }\n        return uint224(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint216 from uint256, reverting on\n     * overflow (when the input is greater than largest uint216).\n     *\n     * Counterpart to Solidity's `uint216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     */\n    function toUint216(uint256 value) internal pure returns (uint216) {\n        if (value > type(uint216).max) {\n            revert SafeCastOverflowedUintDowncast(216, value);\n        }\n        return uint216(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint208 from uint256, reverting on\n     * overflow (when the input is greater than largest uint208).\n     *\n     * Counterpart to Solidity's `uint208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     */\n    function toUint208(uint256 value) internal pure returns (uint208) {\n        if (value > type(uint208).max) {\n            revert SafeCastOverflowedUintDowncast(208, value);\n        }\n        return uint208(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint200 from uint256, reverting on\n     * overflow (when the input is greater than largest uint200).\n     *\n     * Counterpart to Solidity's `uint200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     */\n    function toUint200(uint256 value) internal pure returns (uint200) {\n        if (value > type(uint200).max) {\n            revert SafeCastOverflowedUintDowncast(200, value);\n        }\n        return uint200(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint192 from uint256, reverting on\n     * overflow (when the input is greater than largest uint192).\n     *\n     * Counterpart to Solidity's `uint192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     */\n    function toUint192(uint256 value) internal pure returns (uint192) {\n        if (value > type(uint192).max) {\n            revert SafeCastOverflowedUintDowncast(192, value);\n        }\n        return uint192(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint184 from uint256, reverting on\n     * overflow (when the input is greater than largest uint184).\n     *\n     * Counterpart to Solidity's `uint184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     */\n    function toUint184(uint256 value) internal pure returns (uint184) {\n        if (value > type(uint184).max) {\n            revert SafeCastOverflowedUintDowncast(184, value);\n        }\n        return uint184(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint176 from uint256, reverting on\n     * overflow (when the input is greater than largest uint176).\n     *\n     * Counterpart to Solidity's `uint176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     */\n    function toUint176(uint256 value) internal pure returns (uint176) {\n        if (value > type(uint176).max) {\n            revert SafeCastOverflowedUintDowncast(176, value);\n        }\n        return uint176(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint168 from uint256, reverting on\n     * overflow (when the input is greater than largest uint168).\n     *\n     * Counterpart to Solidity's `uint168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     */\n    function toUint168(uint256 value) internal pure returns (uint168) {\n        if (value > type(uint168).max) {\n            revert SafeCastOverflowedUintDowncast(168, value);\n        }\n        return uint168(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint160 from uint256, reverting on\n     * overflow (when the input is greater than largest uint160).\n     *\n     * Counterpart to Solidity's `uint160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     */\n    function toUint160(uint256 value) internal pure returns (uint160) {\n        if (value > type(uint160).max) {\n            revert SafeCastOverflowedUintDowncast(160, value);\n        }\n        return uint160(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint152 from uint256, reverting on\n     * overflow (when the input is greater than largest uint152).\n     *\n     * Counterpart to Solidity's `uint152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     */\n    function toUint152(uint256 value) internal pure returns (uint152) {\n        if (value > type(uint152).max) {\n            revert SafeCastOverflowedUintDowncast(152, value);\n        }\n        return uint152(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint144 from uint256, reverting on\n     * overflow (when the input is greater than largest uint144).\n     *\n     * Counterpart to Solidity's `uint144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     */\n    function toUint144(uint256 value) internal pure returns (uint144) {\n        if (value > type(uint144).max) {\n            revert SafeCastOverflowedUintDowncast(144, value);\n        }\n        return uint144(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint136 from uint256, reverting on\n     * overflow (when the input is greater than largest uint136).\n     *\n     * Counterpart to Solidity's `uint136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     */\n    function toUint136(uint256 value) internal pure returns (uint136) {\n        if (value > type(uint136).max) {\n            revert SafeCastOverflowedUintDowncast(136, value);\n        }\n        return uint136(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint128 from uint256, reverting on\n     * overflow (when the input is greater than largest uint128).\n     *\n     * Counterpart to Solidity's `uint128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     */\n    function toUint128(uint256 value) internal pure returns (uint128) {\n        if (value > type(uint128).max) {\n            revert SafeCastOverflowedUintDowncast(128, value);\n        }\n        return uint128(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint120 from uint256, reverting on\n     * overflow (when the input is greater than largest uint120).\n     *\n     * Counterpart to Solidity's `uint120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     */\n    function toUint120(uint256 value) internal pure returns (uint120) {\n        if (value > type(uint120).max) {\n            revert SafeCastOverflowedUintDowncast(120, value);\n        }\n        return uint120(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint112 from uint256, reverting on\n     * overflow (when the input is greater than largest uint112).\n     *\n     * Counterpart to Solidity's `uint112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     */\n    function toUint112(uint256 value) internal pure returns (uint112) {\n        if (value > type(uint112).max) {\n            revert SafeCastOverflowedUintDowncast(112, value);\n        }\n        return uint112(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint104 from uint256, reverting on\n     * overflow (when the input is greater than largest uint104).\n     *\n     * Counterpart to Solidity's `uint104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     */\n    function toUint104(uint256 value) internal pure returns (uint104) {\n        if (value > type(uint104).max) {\n            revert SafeCastOverflowedUintDowncast(104, value);\n        }\n        return uint104(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint96 from uint256, reverting on\n     * overflow (when the input is greater than largest uint96).\n     *\n     * Counterpart to Solidity's `uint96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     */\n    function toUint96(uint256 value) internal pure returns (uint96) {\n        if (value > type(uint96).max) {\n            revert SafeCastOverflowedUintDowncast(96, value);\n        }\n        return uint96(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint88 from uint256, reverting on\n     * overflow (when the input is greater than largest uint88).\n     *\n     * Counterpart to Solidity's `uint88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     */\n    function toUint88(uint256 value) internal pure returns (uint88) {\n        if (value > type(uint88).max) {\n            revert SafeCastOverflowedUintDowncast(88, value);\n        }\n        return uint88(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint80 from uint256, reverting on\n     * overflow (when the input is greater than largest uint80).\n     *\n     * Counterpart to Solidity's `uint80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     */\n    function toUint80(uint256 value) internal pure returns (uint80) {\n        if (value > type(uint80).max) {\n            revert SafeCastOverflowedUintDowncast(80, value);\n        }\n        return uint80(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint72 from uint256, reverting on\n     * overflow (when the input is greater than largest uint72).\n     *\n     * Counterpart to Solidity's `uint72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     */\n    function toUint72(uint256 value) internal pure returns (uint72) {\n        if (value > type(uint72).max) {\n            revert SafeCastOverflowedUintDowncast(72, value);\n        }\n        return uint72(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint64 from uint256, reverting on\n     * overflow (when the input is greater than largest uint64).\n     *\n     * Counterpart to Solidity's `uint64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     */\n    function toUint64(uint256 value) internal pure returns (uint64) {\n        if (value > type(uint64).max) {\n            revert SafeCastOverflowedUintDowncast(64, value);\n        }\n        return uint64(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint56 from uint256, reverting on\n     * overflow (when the input is greater than largest uint56).\n     *\n     * Counterpart to Solidity's `uint56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     */\n    function toUint56(uint256 value) internal pure returns (uint56) {\n        if (value > type(uint56).max) {\n            revert SafeCastOverflowedUintDowncast(56, value);\n        }\n        return uint56(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint48 from uint256, reverting on\n     * overflow (when the input is greater than largest uint48).\n     *\n     * Counterpart to Solidity's `uint48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     */\n    function toUint48(uint256 value) internal pure returns (uint48) {\n        if (value > type(uint48).max) {\n            revert SafeCastOverflowedUintDowncast(48, value);\n        }\n        return uint48(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint40 from uint256, reverting on\n     * overflow (when the input is greater than largest uint40).\n     *\n     * Counterpart to Solidity's `uint40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     */\n    function toUint40(uint256 value) internal pure returns (uint40) {\n        if (value > type(uint40).max) {\n            revert SafeCastOverflowedUintDowncast(40, value);\n        }\n        return uint40(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint32 from uint256, reverting on\n     * overflow (when the input is greater than largest uint32).\n     *\n     * Counterpart to Solidity's `uint32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     */\n    function toUint32(uint256 value) internal pure returns (uint32) {\n        if (value > type(uint32).max) {\n            revert SafeCastOverflowedUintDowncast(32, value);\n        }\n        return uint32(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint24 from uint256, reverting on\n     * overflow (when the input is greater than largest uint24).\n     *\n     * Counterpart to Solidity's `uint24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     */\n    function toUint24(uint256 value) internal pure returns (uint24) {\n        if (value > type(uint24).max) {\n            revert SafeCastOverflowedUintDowncast(24, value);\n        }\n        return uint24(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint16 from uint256, reverting on\n     * overflow (when the input is greater than largest uint16).\n     *\n     * Counterpart to Solidity's `uint16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     */\n    function toUint16(uint256 value) internal pure returns (uint16) {\n        if (value > type(uint16).max) {\n            revert SafeCastOverflowedUintDowncast(16, value);\n        }\n        return uint16(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint8 from uint256, reverting on\n     * overflow (when the input is greater than largest uint8).\n     *\n     * Counterpart to Solidity's `uint8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     */\n    function toUint8(uint256 value) internal pure returns (uint8) {\n        if (value > type(uint8).max) {\n            revert SafeCastOverflowedUintDowncast(8, value);\n        }\n        return uint8(value);\n    }\n\n    /**\n     * @dev Converts a signed int256 into an unsigned uint256.\n     *\n     * Requirements:\n     *\n     * - input must be greater than or equal to 0.\n     */\n    function toUint256(int256 value) internal pure returns (uint256) {\n        if (value < 0) {\n            revert SafeCastOverflowedIntToUint(value);\n        }\n        return uint256(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int248 from int256, reverting on\n     * overflow (when the input is less than smallest int248 or\n     * greater than largest int248).\n     *\n     * Counterpart to Solidity's `int248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     */\n    function toInt248(int256 value) internal pure returns (int248 downcasted) {\n        downcasted = int248(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(248, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int240 from int256, reverting on\n     * overflow (when the input is less than smallest int240 or\n     * greater than largest int240).\n     *\n     * Counterpart to Solidity's `int240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     */\n    function toInt240(int256 value) internal pure returns (int240 downcasted) {\n        downcasted = int240(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(240, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int232 from int256, reverting on\n     * overflow (when the input is less than smallest int232 or\n     * greater than largest int232).\n     *\n     * Counterpart to Solidity's `int232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     */\n    function toInt232(int256 value) internal pure returns (int232 downcasted) {\n        downcasted = int232(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(232, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int224 from int256, reverting on\n     * overflow (when the input is less than smallest int224 or\n     * greater than largest int224).\n     *\n     * Counterpart to Solidity's `int224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     */\n    function toInt224(int256 value) internal pure returns (int224 downcasted) {\n        downcasted = int224(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(224, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int216 from int256, reverting on\n     * overflow (when the input is less than smallest int216 or\n     * greater than largest int216).\n     *\n     * Counterpart to Solidity's `int216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     */\n    function toInt216(int256 value) internal pure returns (int216 downcasted) {\n        downcasted = int216(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(216, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int208 from int256, reverting on\n     * overflow (when the input is less than smallest int208 or\n     * greater than largest int208).\n     *\n     * Counterpart to Solidity's `int208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     */\n    function toInt208(int256 value) internal pure returns (int208 downcasted) {\n        downcasted = int208(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(208, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int200 from int256, reverting on\n     * overflow (when the input is less than smallest int200 or\n     * greater than largest int200).\n     *\n     * Counterpart to Solidity's `int200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     */\n    function toInt200(int256 value) internal pure returns (int200 downcasted) {\n        downcasted = int200(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(200, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int192 from int256, reverting on\n     * overflow (when the input is less than smallest int192 or\n     * greater than largest int192).\n     *\n     * Counterpart to Solidity's `int192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     */\n    function toInt192(int256 value) internal pure returns (int192 downcasted) {\n        downcasted = int192(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(192, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int184 from int256, reverting on\n     * overflow (when the input is less than smallest int184 or\n     * greater than largest int184).\n     *\n     * Counterpart to Solidity's `int184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     */\n    function toInt184(int256 value) internal pure returns (int184 downcasted) {\n        downcasted = int184(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(184, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int176 from int256, reverting on\n     * overflow (when the input is less than smallest int176 or\n     * greater than largest int176).\n     *\n     * Counterpart to Solidity's `int176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     */\n    function toInt176(int256 value) internal pure returns (int176 downcasted) {\n        downcasted = int176(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(176, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int168 from int256, reverting on\n     * overflow (when the input is less than smallest int168 or\n     * greater than largest int168).\n     *\n     * Counterpart to Solidity's `int168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     */\n    function toInt168(int256 value) internal pure returns (int168 downcasted) {\n        downcasted = int168(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(168, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int160 from int256, reverting on\n     * overflow (when the input is less than smallest int160 or\n     * greater than largest int160).\n     *\n     * Counterpart to Solidity's `int160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     */\n    function toInt160(int256 value) internal pure returns (int160 downcasted) {\n        downcasted = int160(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(160, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int152 from int256, reverting on\n     * overflow (when the input is less than smallest int152 or\n     * greater than largest int152).\n     *\n     * Counterpart to Solidity's `int152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     */\n    function toInt152(int256 value) internal pure returns (int152 downcasted) {\n        downcasted = int152(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(152, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int144 from int256, reverting on\n     * overflow (when the input is less than smallest int144 or\n     * greater than largest int144).\n     *\n     * Counterpart to Solidity's `int144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     */\n    function toInt144(int256 value) internal pure returns (int144 downcasted) {\n        downcasted = int144(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(144, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int136 from int256, reverting on\n     * overflow (when the input is less than smallest int136 or\n     * greater than largest int136).\n     *\n     * Counterpart to Solidity's `int136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     */\n    function toInt136(int256 value) internal pure returns (int136 downcasted) {\n        downcasted = int136(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(136, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int128 from int256, reverting on\n     * overflow (when the input is less than smallest int128 or\n     * greater than largest int128).\n     *\n     * Counterpart to Solidity's `int128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     */\n    function toInt128(int256 value) internal pure returns (int128 downcasted) {\n        downcasted = int128(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(128, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int120 from int256, reverting on\n     * overflow (when the input is less than smallest int120 or\n     * greater than largest int120).\n     *\n     * Counterpart to Solidity's `int120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     */\n    function toInt120(int256 value) internal pure returns (int120 downcasted) {\n        downcasted = int120(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(120, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int112 from int256, reverting on\n     * overflow (when the input is less than smallest int112 or\n     * greater than largest int112).\n     *\n     * Counterpart to Solidity's `int112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     */\n    function toInt112(int256 value) internal pure returns (int112 downcasted) {\n        downcasted = int112(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(112, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int104 from int256, reverting on\n     * overflow (when the input is less than smallest int104 or\n     * greater than largest int104).\n     *\n     * Counterpart to Solidity's `int104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     */\n    function toInt104(int256 value) internal pure returns (int104 downcasted) {\n        downcasted = int104(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(104, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int96 from int256, reverting on\n     * overflow (when the input is less than smallest int96 or\n     * greater than largest int96).\n     *\n     * Counterpart to Solidity's `int96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     */\n    function toInt96(int256 value) internal pure returns (int96 downcasted) {\n        downcasted = int96(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(96, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int88 from int256, reverting on\n     * overflow (when the input is less than smallest int88 or\n     * greater than largest int88).\n     *\n     * Counterpart to Solidity's `int88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     */\n    function toInt88(int256 value) internal pure returns (int88 downcasted) {\n        downcasted = int88(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(88, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int80 from int256, reverting on\n     * overflow (when the input is less than smallest int80 or\n     * greater than largest int80).\n     *\n     * Counterpart to Solidity's `int80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     */\n    function toInt80(int256 value) internal pure returns (int80 downcasted) {\n        downcasted = int80(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(80, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int72 from int256, reverting on\n     * overflow (when the input is less than smallest int72 or\n     * greater than largest int72).\n     *\n     * Counterpart to Solidity's `int72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     */\n    function toInt72(int256 value) internal pure returns (int72 downcasted) {\n        downcasted = int72(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(72, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int64 from int256, reverting on\n     * overflow (when the input is less than smallest int64 or\n     * greater than largest int64).\n     *\n     * Counterpart to Solidity's `int64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     */\n    function toInt64(int256 value) internal pure returns (int64 downcasted) {\n        downcasted = int64(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(64, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int56 from int256, reverting on\n     * overflow (when the input is less than smallest int56 or\n     * greater than largest int56).\n     *\n     * Counterpart to Solidity's `int56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     */\n    function toInt56(int256 value) internal pure returns (int56 downcasted) {\n        downcasted = int56(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(56, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int48 from int256, reverting on\n     * overflow (when the input is less than smallest int48 or\n     * greater than largest int48).\n     *\n     * Counterpart to Solidity's `int48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     */\n    function toInt48(int256 value) internal pure returns (int48 downcasted) {\n        downcasted = int48(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(48, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int40 from int256, reverting on\n     * overflow (when the input is less than smallest int40 or\n     * greater than largest int40).\n     *\n     * Counterpart to Solidity's `int40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     */\n    function toInt40(int256 value) internal pure returns (int40 downcasted) {\n        downcasted = int40(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(40, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int32 from int256, reverting on\n     * overflow (when the input is less than smallest int32 or\n     * greater than largest int32).\n     *\n     * Counterpart to Solidity's `int32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     */\n    function toInt32(int256 value) internal pure returns (int32 downcasted) {\n        downcasted = int32(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(32, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int24 from int256, reverting on\n     * overflow (when the input is less than smallest int24 or\n     * greater than largest int24).\n     *\n     * Counterpart to Solidity's `int24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     */\n    function toInt24(int256 value) internal pure returns (int24 downcasted) {\n        downcasted = int24(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(24, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int16 from int256, reverting on\n     * overflow (when the input is less than smallest int16 or\n     * greater than largest int16).\n     *\n     * Counterpart to Solidity's `int16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     */\n    function toInt16(int256 value) internal pure returns (int16 downcasted) {\n        downcasted = int16(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(16, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int8 from int256, reverting on\n     * overflow (when the input is less than smallest int8 or\n     * greater than largest int8).\n     *\n     * Counterpart to Solidity's `int8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     */\n    function toInt8(int256 value) internal pure returns (int8 downcasted) {\n        downcasted = int8(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(8, value);\n        }\n    }\n\n    /**\n     * @dev Converts an unsigned uint256 into a signed int256.\n     *\n     * Requirements:\n     *\n     * - input must be less than or equal to maxInt256.\n     */\n    function toInt256(uint256 value) internal pure returns (int256) {\n        // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n        if (value > uint256(type(int256).max)) {\n            revert SafeCastOverflowedUintToInt(value);\n        }\n        return int256(value);\n    }\n\n    /**\n     * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n     */\n    function toUint(bool b) internal pure returns (uint256 u) {\n        assembly (\"memory-safe\") {\n            u := iszero(iszero(b))\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n    /**\n     * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n     *\n     * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n     * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n     * one branch when needed, making this function more expensive.\n     */\n    function ternary(bool condition, int256 a, int256 b) internal pure returns (int256) {\n        unchecked {\n            // branchless ternary works because:\n            // b ^ (a ^ b) == a\n            // b ^ 0 == b\n            return b ^ ((a ^ b) * int256(SafeCast.toUint(condition)));\n        }\n    }\n\n    /**\n     * @dev Returns the largest of two signed numbers.\n     */\n    function max(int256 a, int256 b) internal pure returns (int256) {\n        return ternary(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 ternary(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            // Formula from the \"Bit Twiddling Hacks\" by Sean Eron Anderson.\n            // Since `n` is a signed integer, the generated bytecode will use the SAR opcode to perform the right shift,\n            // taking advantage of the most significant (or \"sign\" bit) in two's complement representation.\n            // This opcode adds new most significant bits set to the value of the previous most significant bit. As a result,\n            // the mask will either be `bytes32(0)` (if n is positive) or `~bytes32(0)` (if n is negative).\n            int256 mask = n >> 255;\n\n            // A `bytes32(0)` mask leaves the input unchanged, while a `~bytes32(0)` mask complements it.\n            return uint256((n + mask) ^ mask);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Panic.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n *      using Panic for uint256;\n *\n *      // Use any of the declared internal constants\n *      function foo() { Panic.GENERIC.panic(); }\n *\n *      // Alternatively\n *      function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n *\n * _Available since v5.1._\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n    /// @dev generic / unspecified error\n    uint256 internal constant GENERIC = 0x00;\n    /// @dev used by the assert() builtin\n    uint256 internal constant ASSERT = 0x01;\n    /// @dev arithmetic underflow or overflow\n    uint256 internal constant UNDER_OVERFLOW = 0x11;\n    /// @dev division or modulo by zero\n    uint256 internal constant DIVISION_BY_ZERO = 0x12;\n    /// @dev enum conversion error\n    uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n    /// @dev invalid encoding in storage\n    uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n    /// @dev empty array pop\n    uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n    /// @dev array out of bounds access\n    uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n    /// @dev resource error (too large allocation or too large array)\n    uint256 internal constant RESOURCE_ERROR = 0x41;\n    /// @dev calling invalid internal function\n    uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n    /// @dev Reverts with a panic code. Recommended to use with\n    /// the internal constants with predefined codes.\n    function panic(uint256 code) internal pure {\n        assembly (\"memory-safe\") {\n            mstore(0x00, 0x4e487b71)\n            mstore(0x20, code)\n            revert(0x1c, 0x24)\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Contract module that helps prevent reentrant calls to a function.\n *\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n * available, which can be applied to functions to make sure there are no nested\n * (reentrant) calls to them.\n *\n * Note that because there is a single `nonReentrant` guard, functions marked as\n * `nonReentrant` may not call one another. This can be worked around by making\n * those functions `private`, and then adding `external` `nonReentrant` entry\n * points to them.\n *\n * TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at,\n * consider using {ReentrancyGuardTransient} instead.\n *\n * TIP: If you would like to learn more about reentrancy and alternative ways\n * to protect against it, check out our blog post\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\n */\nabstract contract ReentrancyGuard {\n    // Booleans are more expensive than uint256 or any type that takes up a full\n    // word because each write operation emits an extra SLOAD to first read the\n    // slot's contents, replace the bits taken up by the boolean, and then write\n    // back. This is the compiler's defense against contract upgrades and\n    // pointer aliasing, and it cannot be disabled.\n\n    // The values being non-zero value makes deployment a bit more expensive,\n    // but in exchange the refund on every call to nonReentrant will be lower in\n    // amount. Since refunds are capped to a percentage of the total\n    // transaction's gas, it is best to keep them low in cases like this one, to\n    // increase the likelihood of the full refund coming into effect.\n    uint256 private constant NOT_ENTERED = 1;\n    uint256 private constant ENTERED = 2;\n\n    uint256 private _status;\n\n    /**\n     * @dev Unauthorized reentrant call.\n     */\n    error ReentrancyGuardReentrantCall();\n\n    constructor() {\n        _status = NOT_ENTERED;\n    }\n\n    /**\n     * @dev Prevents a contract from calling itself, directly or indirectly.\n     * Calling a `nonReentrant` function from another `nonReentrant`\n     * function is not supported. It is possible to prevent this from happening\n     * by making the `nonReentrant` function external, and making it call a\n     * `private` function that does the actual work.\n     */\n    modifier nonReentrant() {\n        _nonReentrantBefore();\n        _;\n        _nonReentrantAfter();\n    }\n\n    function _nonReentrantBefore() private {\n        // On the first call to nonReentrant, _status will be NOT_ENTERED\n        if (_status == ENTERED) {\n            revert ReentrancyGuardReentrantCall();\n        }\n\n        // Any calls to nonReentrant after this point will fail\n        _status = ENTERED;\n    }\n\n    function _nonReentrantAfter() private {\n        // By storing the original value once again, a refund is triggered (see\n        // https://eips.ethereum.org/EIPS/eip-2200)\n        _status = NOT_ENTERED;\n    }\n\n    /**\n     * @dev Returns true if the reentrancy guard is currently set to \"entered\", which indicates there is a\n     * `nonReentrant` function in the call stack.\n     */\n    function _reentrancyGuardEntered() internal view returns (bool) {\n        return _status == ENTERED;\n    }\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.20;\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 ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n *     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\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(newImplementation.code.length > 0);\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n *     }\n * }\n * ```\n *\n * TIP: Consider using this library along with {SlotDerivation}.\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 Int256Slot {\n        int256 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        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `BooleanSlot` with member `value` located at `slot`.\n     */\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `Bytes32Slot` with member `value` located at `slot`.\n     */\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `Uint256Slot` with member `value` located at `slot`.\n     */\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `Int256Slot` with member `value` located at `slot`.\n     */\n    function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `StringSlot` with member `value` located at `slot`.\n     */\n    function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n        assembly (\"memory-safe\") {\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        assembly (\"memory-safe\") {\n            r.slot := store.slot\n        }\n    }\n\n    /**\n     * @dev Returns a `BytesSlot` with member `value` located at `slot`.\n     */\n    function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n        assembly (\"memory-safe\") {\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        assembly (\"memory-safe\") {\n            r.slot := store.slot\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n    uint8 private constant ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev The `value` string doesn't fit in the specified `length`.\n     */\n    error StringsInsufficientHexLength(uint256 value, uint256 length);\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            assembly (\"memory-safe\") {\n                ptr := add(buffer, add(32, length))\n            }\n            while (true) {\n                ptr--;\n                assembly (\"memory-safe\") {\n                    mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\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 toStringSigned(int256 value) internal pure returns (string memory) {\n        return string.concat(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        uint256 localValue = value;\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] = HEX_DIGITS[localValue & 0xf];\n            localValue >>= 4;\n        }\n        if (localValue != 0) {\n            revert StringsInsufficientHexLength(value, length);\n        }\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\n     * 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 Converts an `address` with fixed length of 20 bytes to its checksummed ASCII `string` hexadecimal\n     * representation, according to EIP-55.\n     */\n    function toChecksumHexString(address addr) internal pure returns (string memory) {\n        bytes memory buffer = bytes(toHexString(addr));\n\n        // hash the hex part of buffer (skip length + 2 bytes, length 40)\n        uint256 hashValue;\n        assembly (\"memory-safe\") {\n            hashValue := shr(96, keccak256(add(buffer, 0x22), 40))\n        }\n\n        for (uint256 i = 41; i > 1; --i) {\n            // possible values for buffer[i] are 48 (0) to 57 (9) and 97 (a) to 102 (f)\n            if (hashValue & 0xf > 7 && uint8(buffer[i]) > 96) {\n                // case shift by xoring with 0x20\n                buffer[i] ^= 0x20;\n            }\n            hashValue >>= 4;\n        }\n        return string(buffer);\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 bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n    }\n}\n"},"@uniswap/lib/contracts/libraries/TransferHelper.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity >=0.6.0;\n\n// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false\nlibrary TransferHelper {\n    function safeApprove(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        // bytes4(keccak256(bytes('approve(address,uint256)')));\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            'TransferHelper::safeApprove: approve failed'\n        );\n    }\n\n    function safeTransfer(\n        address token,\n        address to,\n        uint256 value\n    ) internal {\n        // bytes4(keccak256(bytes('transfer(address,uint256)')));\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            'TransferHelper::safeTransfer: transfer failed'\n        );\n    }\n\n    function safeTransferFrom(\n        address token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\n        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));\n        require(\n            success && (data.length == 0 || abi.decode(data, (bool))),\n            'TransferHelper::transferFrom: transferFrom failed'\n        );\n    }\n\n    function safeTransferETH(address to, uint256 value) internal {\n        (bool success, ) = to.call{value: value}(new bytes(0));\n        require(success, 'TransferHelper::safeTransferETH: ETH transfer failed');\n    }\n}\n"},"contracts/core/Consensus.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { AccessControlUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\";\nimport { Initializable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport { UUPSUpgradeable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\n\nimport { ISettings } from \"../interfaces/ISettings.sol\";\nimport { EpochInfo } from \"./Structs.sol\";\nimport { IConsensus } from \"../interfaces/IConsensus.sol\";\n\nimport { SettingsConstants } from \"../libs/SettingsConstants.sol\";\nimport { TacInitializable } from \"./TacInitializable.sol\";\n\ncontract Consensus is TacInitializable, UUPSUpgradeable, AccessControlUpgradeable, IConsensus {\n\n    // errors\n    error OnlyVoter(address voter);\n    error OnlyGroupAdmin(address admin);\n    error ZeroAddress();\n    error InvalidGroupId();\n    error GroupAlreadyAdded(bytes32 groupId);\n    error GroupDoesntExist(bytes32 groupId);\n    error GroupIsNotEmpty(bytes32 groupId);\n    error VoterAlreadyAdded(bytes32 groupId, address voter);\n    error VoterAlreadyRemoved(address voter);\n    error VotingIsNotActive();\n    error VoterAlreadyVoted(address voter);\n\n    // events\n    event ConsensusReached(uint64 currEpochStartTime, bytes32 merkleRoot);\n    event ConsensusEpochStarted(EpochInfo epochInfo);\n    event GroupAdded(bytes32 groupId);\n    event VoterAdded(bytes32 groupId, address voterAddress);\n    event VoterRemoved(address voterAddress);\n\n    // constants\n\n    bytes32 public constant ADMIN = keccak256(\"ADMIN\");\n    bytes32 public constant EPOCH_MANAGER = keccak256(\"EPOCH_MANAGER\");\n\n    /**\n     * @dev contract with protocol settings\n     */\n    ISettings internal _settings;\n\n    // groups info\n    struct GroupInfo {\n        bytes32 groupId;\n        address admin;\n    }\n    GroupInfo[] groupsToAdd;\n    /**\n     * @dev map with group's admin addresses\n     */\n    mapping(bytes32 groupId => address admin) public groupsAdmins;\n    /**\n     * @dev array, contains each group id\n     */\n    bytes32[] groupIds;\n\n    // Voter info\n    struct VoterInfo{\n        bytes32 groupId;\n        address voterAddress;\n    }\n    VoterInfo[] votersToAdd;\n    address[] votersToRemove;\n    /**\n     * @dev mapping of voter's group id\n     */\n    mapping(address voter => bytes32 groupId) public voterToGroupId;\n    /**\n     * @dev mapping of total number of voters on each group\n     */\n    mapping(bytes32 groupId => uint256 num) public inGroupVotersNum;\n\n    /**\n     * @dev EVM consensus votes number for each group\n     * @dev value = abi.encodePacked(evmEpochNum,evmMerkleRoot);\n    */\n    mapping(bytes value => mapping (bytes32 groupId => uint256 num)) public consensusVotesNumber;\n\n    /**\n     * @dev EVM and TVM consensus voters wich has already voted for specified value\n    */\n    mapping(bytes value => mapping (address => bool)) public hasVoted;\n\n    // mapping of all approved merkle roots\n    mapping(bytes32 root => uint256 validUntil) public _roots;\n\n    // current merkle root\n    bytes32 _currentRoot;\n\n    // epoch\n    uint64 private _prevMessageCollectEndTime;\n    uint64 private _messageCollectEndTime;\n    uint64 private _prevEpochStartTime;\n    uint64 private _currEpochStartTime;\n    uint64 private _nextVotingTime;\n\n    /**\n     * @dev Initializer function to initialize the contract with initial state.\n     * @param adminAddress Admin address.\n     * @param settingsAddress Settings contract address.\n     */\n    function initialize(address adminAddress, address settingsAddress) public initializer {\n        __AccessControl_init();\n        __UUPSUpgradeable_init();\n        _settings = ISettings(settingsAddress);\n\n        _setRoleAdmin(ADMIN, ADMIN);\n        _setRoleAdmin(EPOCH_MANAGER, ADMIN);\n        _grantRole(ADMIN, adminAddress);\n        _grantRole(EPOCH_MANAGER, adminAddress);\n\n        _startEpoch();\n    }\n\n    function _authorizeUpgrade(address) internal override onlyRole(ADMIN) {}\n\n    /**\n     * @dev Modifier to restrict access to vote\n     */\n    modifier onlyVoter() {\n        if (voterToGroupId[msg.sender] == bytes32(0)) revert OnlyVoter(msg.sender);\n        _;\n    }\n\n    /**\n     * @dev Modifier to restrict access to group admins\n     */\n    modifier onlyGroupAdmin(bytes32 groupId) {\n        if (groupsAdmins[groupId] != msg.sender) revert OnlyGroupAdmin(msg.sender);\n        _;\n    }\n\n    /**\n     * @dev Add new voter's group\n     * @param groupId group id\n     * @param adminAddress group admin address\n     */\n    function addGroup(bytes32 groupId, address adminAddress) external onlyRole(ADMIN) {\n        if (groupId == bytes32(0)) revert InvalidGroupId();\n        if (adminAddress == address(0)) revert ZeroAddress();\n        if (groupsAdmins[groupId] != address(0)) revert GroupAlreadyAdded(groupId);\n\n        for (uint i; i < groupsToAdd.length;) {\n            if (groupsToAdd[i].groupId == groupId) revert GroupAlreadyAdded(groupId);\n            unchecked { i++; }\n        }\n\n        groupsToAdd.push(GroupInfo(groupId, adminAddress));\n    }\n\n    function _addGroup(bytes32 groupId, address adminAddress) internal {\n        if (groupsAdmins[groupId] != address(0)) return;\n        groupsAdmins[groupId] = adminAddress;\n        groupIds.push(groupId);\n    }\n\n    /**\n     * @dev removing of existing group\n     * remove only if group is empty (no voters in group)\n     * @param groupId group id to remove\n     */\n    function removeGroup(bytes32 groupId) external onlyRole(ADMIN) {\n        if (groupId == bytes32(0)) revert InvalidGroupId();\n        if (groupsAdmins[groupId] == address(0)) revert GroupDoesntExist(groupId);\n        if (inGroupVotersNum[groupId] != 0) revert GroupIsNotEmpty(groupId);\n\n        groupsAdmins[groupId] = address(0);\n\n        bytes32[] memory newGroups = new bytes32[](groupIds.length);\n        uint n;\n        uint i;\n        while (i < groupIds.length) {\n            if (groupIds[i] != groupId) {\n                newGroups[n++] = groupIds[i];\n            }\n            unchecked { i++; }\n        }\n        assembly {\n            mstore(newGroups, n)\n        }\n        groupIds = newGroups;\n    }\n\n    /**\n     * Set new group admin address\n     * @param groupId group id\n     * @param newAdminAddress new admin address\n     */\n    function setGroupAdmin(bytes32 groupId, address newAdminAddress) external onlyGroupAdmin(groupId) {\n        if (newAdminAddress == address(0)) revert ZeroAddress();\n        groupsAdmins[groupId] = newAdminAddress;\n    }\n\n    /**\n     * @dev Adds a new voter.\n     * @param groupId voter group id\n     * @param voterAddress voter evm address\n     */\n    function addVoter(bytes32 groupId, address voterAddress) external onlyGroupAdmin(groupId) {\n        if (voterAddress == address(0)) revert ZeroAddress();\n        if (voterToGroupId[voterAddress] != bytes32(0)) revert VoterAlreadyAdded(voterToGroupId[voterAddress], voterAddress);\n\n        for (uint i; i < votersToAdd.length;) {\n            if (votersToAdd[i].voterAddress == voterAddress) revert VoterAlreadyAdded(votersToAdd[i].groupId, voterAddress);\n            unchecked { i++; }\n        }\n\n        votersToAdd.push(VoterInfo(groupId, voterAddress));\n\n        emit VoterAdded(groupId, voterAddress);\n    }\n\n    function _addVoter(bytes32 groupId, address voterAddress) internal {\n        if (voterToGroupId[voterAddress] != bytes32(0)) return;\n        voterToGroupId[voterAddress] = groupId;\n        inGroupVotersNum[groupId]++;\n    }\n\n    /**\n     * @dev Remove voter.\n     * @param voterAddress Address of the voter to remove.\n     */\n    function removeVoter(address voterAddress) external onlyGroupAdmin(voterToGroupId[voterAddress]) {\n        for (uint i; i < votersToRemove.length;) {\n            if (votersToRemove[i] == voterAddress) revert VoterAlreadyRemoved(voterAddress);\n            unchecked { i++; }\n        }\n\n        votersToRemove.push(voterAddress);\n\n        emit VoterRemoved(voterAddress);\n    }\n\n    function _removeVoter(address voterAddress) internal {\n        if (voterToGroupId[voterAddress] == bytes32(0)) return;\n\n        bytes32 groupId = voterToGroupId[voterAddress];\n        voterToGroupId[voterAddress] = bytes32(0);\n        inGroupVotersNum[groupId]--;\n    }\n\n    function _checkInGroupConsensus(bytes memory value, bytes32 groupId) internal view returns (bool) {\n        if (inGroupVotersNum[groupId] == 0) return false;\n\n        uint requiredQuorum = _settings.getUintSetting(SettingsConstants.CONSENSUS_THRESHOLD_IN_GROUP_KEY) * inGroupVotersNum[groupId];\n        if (consensusVotesNumber[value][groupId] * SettingsConstants.RATE_DECIMALS >= requiredQuorum) {\n            return true;\n        }\n        else {\n            return false;\n        }\n    }\n\n    function _checkConsensus(bytes memory value) internal view returns (bool) {\n        uint inGroupConsensusReached;\n        uint requiredQuorum = _settings.getUintSetting(SettingsConstants.CONSENSUS_THRESHOLD_GROUPS_KEY) * groupIds.length;\n\n        for (uint i; i < groupIds.length;) {\n            // check consensus inside group\n            inGroupConsensusReached += _checkInGroupConsensus(value, groupIds[i]) ? 1 : 0;\n            if (inGroupConsensusReached * SettingsConstants.RATE_DECIMALS >= requiredQuorum) {\n                return true;\n            }\n            unchecked { i++; }\n        }\n        return false;\n    }\n\n    /**\n     * @dev Vote for a new root value.\n     * @param messageCollectEndTime Message collect end time for current vote.\n     * @param newRoot New root to vote for.\n     */\n    function vote(uint64 messageCollectEndTime, bytes32 newRoot) external onlyVoter {\n        // inconsistent message collect time\n        if (messageCollectEndTime < _nextVotingTime) return;\n\n        // execution delay in progress\n        if (block.timestamp < _nextVotingTime) revert VotingIsNotActive();\n\n        bytes memory value = abi.encodePacked(messageCollectEndTime, newRoot);\n        address voter = msg.sender;\n\n        // voter already voted for this root\n        if (hasVoted[value][voter]) revert VoterAlreadyVoted(voter);\n\n        // in group consensus reached\n        if (_checkInGroupConsensus(value, voterToGroupId[voter])) return;\n\n        consensusVotesNumber[value][voterToGroupId[voter]]++;\n        hasVoted[value][voter] = true;\n\n        if (_checkConsensus(value)) {\n            _currentRoot = newRoot;\n            _prevMessageCollectEndTime = _messageCollectEndTime;\n            _messageCollectEndTime = messageCollectEndTime;\n            _roots[newRoot] = block.timestamp + _settings.getUintSetting(SettingsConstants.VALIDITY_DURATION_KEY);\n            emit ConsensusReached(_currEpochStartTime, newRoot);\n            _startEpoch();\n        }\n    }\n\n    function forceEpoch() external onlyRole(EPOCH_MANAGER) {\n        if (_currEpochStartTime + _settings.getUintSetting(SettingsConstants.MAX_EPOCH_DURATION_KEY) <= block.timestamp) {\n            _startEpoch();\n        }\n    }\n\n    /**\n     * @dev Starts a new epoch if needed, performs delayed adding and removing groups and voters.\n     */\n    function _startEpoch() internal {\n\n        uint i;\n\n        for (; i < groupsToAdd.length;) {\n            _addGroup(groupsToAdd[i].groupId, groupsToAdd[i].admin);\n            unchecked { i++; }\n        }\n        delete groupsToAdd;\n        delete i;\n\n        for (; i < votersToAdd.length;) {\n            _addVoter(votersToAdd[i].groupId, votersToAdd[i].voterAddress);\n            unchecked{ i++; }\n        }\n        delete votersToAdd;\n        delete i;\n\n        for (; i < votersToRemove.length;) {\n            _removeVoter(votersToRemove[i]);\n            unchecked { i++; }\n        }\n        delete votersToRemove;\n        delete i;\n\n        _prevEpochStartTime = _currEpochStartTime;\n        _currEpochStartTime = uint64(block.timestamp);\n\n        uint64 epochDelay = _settings.getUintSetting(SettingsConstants.EPOCH_DELAY_KEY);\n        _nextVotingTime = _currEpochStartTime + epochDelay;\n\n        emit ConsensusEpochStarted(getCurrentEpochInfo());\n    }\n\n    /**\n     * @dev Returns current epoch info.\n     * @return Epoch info.\n     */\n    function getCurrentEpochInfo() public view returns (EpochInfo memory) {\n        return EpochInfo({\n            merkleRoot: _currentRoot,\n            prevMessageCollectEndTime: _prevMessageCollectEndTime,\n            messageCollectEndTime: _messageCollectEndTime,\n            prevEpochStartTime: _prevEpochStartTime,\n            currEpochStartTime: _currEpochStartTime,\n            nextVotingTime: _nextVotingTime\n        });\n    }\n\n    /**\n     * @dev Gets total number of active gropus.\n     * @return uint Total number of active groups.\n     */\n    function totalGroups() public view returns (uint) {\n        return groupIds.length;\n    }\n\n    function getGroups() public view returns (bytes32[] memory) {\n        return groupIds;\n    }\n\n    /**\n     * @dev Gets total number of active voters.\n     * @return num Total number of active voters.\n     */\n    function totalVoters() public view returns (uint256 num) {\n        for(uint i; i < groupIds.length;){\n            num += inGroupVotersNum[groupIds[i]];\n            unchecked { i++; }\n        }\n    }\n\n    function getValue() public view returns (bytes32) {\n        return _currentRoot;\n    }\n\n    function checkMerkleRoot(bytes32 merkleRoot) public view returns (bool) {\n        return _roots[merkleRoot] > block.timestamp;\n    }\n}"},"contracts/core/CrossChainLayer.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { Ownable2StepUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\nimport { UUPSUpgradeable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\nimport { MerkleProof } from \"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\";\n\nimport { VersionLib } from \"../libs/VersionLib.sol\";\n\nimport { TVMFeeInfo, InMessageV1, TokenInfo, TokenAmount, EpochInfo, SimulationParams, NFTInfo, NFTAmount } from \"./Structs.sol\";\nimport { TokenHelperLib } from \"../libs/TokenHelperLib.sol\";\nimport { IConsensus } from \"../interfaces/IConsensus.sol\";\nimport { ICrossChainLayer } from \"../interfaces/ICrossChainLayer.sol\";\nimport { ITokenUtils } from \"../interfaces/ITokenUtils.sol\";\nimport { TacProxy } from \"../proxies/TacProxy.sol\";\nimport { TacInitializable } from \"./TacInitializable.sol\";\n\n\n/**\n * @title CrossChainLayer\n * @dev A contract for managing cross-chain messages and tokens.\n */\ncontract CrossChainLayer is TacInitializable, UUPSUpgradeable, Ownable2StepUpgradeable, ICrossChainLayer {\n\n    // Errors\n\n    // protocol errors\n    error TokenNotExist(address token);\n    error ProxyCallError(bytes reason);\n    error NativeTrasferError(bytes reason);\n    error TargetIsNotTacProxy(address target);\n    error InvalidProxyVersion(address target, uint version);\n    error RecursiveMessageProcessing();\n    error OnlySelfCall();\n    error MessageAlreadyProcessed(bytes32 messageHash);\n    error InvalidMerkleProof();\n    error AppLayerUnexpectedError();\n    error AppLayerCallError(bytes32 operationId, bytes reason);\n    error BridgeAmountToBig(address token, uint256 amount);\n    error ExecutorIsNotValid(bytes32 operationId, address sender, address origin);\n    error NativeFeeTransferError(bytes32 operationId, bytes reason);\n    error NotEnoughGas(uint64 gasLimit, uint256 gasLeft);\n    error CantUnlockNative(uint256 locked, uint256 toUnlock);\n    error ExtraDataIsNotSupported();\n\n    // fee errors\n    error ZeroFeeSetting();\n    error InsufficientProtocolFeeBalance(uint256 needed, uint256 available);\n    error InsufficientFeeAmount(uint256 needed, uint256 attached);\n    error InsufficientNativeAttached(uint256 needed, uint256 attached);\n\n    // simulation errors\n    error SimulationRecursiveCall();\n    error SimulationUnexpectedSuccess();\n    error SimulationUnexpectedError();\n    error SimulationIsNotInProgress();\n    error SimulationFinished(bool success, bytes result);\n    error SimulationFailedError(bytes reason);\n\n    // Events\n\n    /**\n     * @dev Error event for calling the application layer context.\n     */\n    event AppLayerCallErrorEvent(bytes32 operationId, bytes reason);\n\n    event SimulationSuccess(OutMessageProcessedEventStruct[] outMessages);\n\n    /**\n     * @dev Input (receive) message executed event\n     * @param operationId Operation Id to track message\n     */\n    event InMessageProcessed(bytes32 operationId);\n\n    /**\n     * @dev Output (send) message executed event\n     * @param shardsKey Key to track message\n     * @param operationId Operation Id to track message\n     * @param callerAddress Caller address (EVM message initiator)\n     * @param targetAddress Recipient address (TVM recipient address))\n     * @param payload Message payload\n     * @param protocolFee Protocol fee for the message\n     * @param executorFee Executor fee for the message\n     * @param tvmValidExecutors TVM valid executors for the message\n     * @param tokensBurned Token burned during message processing\n     * @param tokensLocked Token locked during message processing\n     * @param nftsBurned NFT burned during message processing\n     * @param nftsLocked NFT locked during message processing\n     */\n    event OutMessageProcessed(\n        uint64 shardsKey,\n        bytes32 operationId,\n        address callerAddress,\n        string targetAddress,\n        string payload,\n        uint256 protocolFee,\n        uint256 executorFee,\n        string[] tvmValidExecutors,\n        TokenAmount[] tokensBurned,\n        TokenAmount[] tokensLocked,\n        NFTAmount[] nftsBurned,\n        NFTAmount[] nftsLocked\n    );\n\n    // Constants\n\n    address public constant NATIVE_TOKEN_ADDRESS = address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);\n\n    uint256 private constant MAX_BRIDGE_AMOUNT = uint256(1 << 128);\n\n    // State variables\n\n    ITokenUtils private _tokenUtils;\n    IConsensus private _consensus;\n\n    bytes32 private _currentInMessageOperationId;\n    bool private _receiveInProgress;\n\n    mapping(bytes32 => bool) private _processedInMessages;\n\n    // simulation state\n    enum SimulationMode {\n        None,\n        JustGas,\n        WithMessages\n    }\n    SimulationMode private _simulationMode;\n    bytes32 private _simulationRoot;\n\n    /**\n     * @dev Output (send) message executed event structure\n     * @param shardsKey Key to track message\n     * @param operationId Operation Id to track message\n     * @param callerAddress Caller address (EVM message initiator)\n     * @param targetAddress Recipient address (TVM recipient address))\n     * @param payload Message payload\n     * @param protocolFee Protocol fee for the message\n     * @param executorFee Executor fee for the message\n     * @param tvmValidExecutors TVM valid executors for the message\n     * @param tokensBurned Token burned during message processing\n     * @param tokensLocked Token locked during message processing\n     * @param nftsBurned NFT burned during message processing\n     * @param nftsLocked NFT locked during message processing\n     */\n    struct OutMessageProcessedEventStruct {\n        uint64 shardsKey;\n        bytes32 operationId;\n        address callerAddress;\n        string targetAddress;\n        string payload;\n        uint256 protocolFee;\n        uint256 executorFee;\n        string[] tvmValidExecutors;\n        TokenAmount[] tokensBurned;\n        TokenAmount[] tokensLocked;\n        NFTAmount[] nftsBurned;\n        NFTAmount[] nftsLocked;\n    }\n    /**\n     * @dev This array is always empty, because all changes are reverted inside simulateAppLayerContext\n     * So the OutMessageProcessedEventStruct struct can be upgraded safely\n     */\n    OutMessageProcessedEventStruct[] private _simulationOutMessagesProcessedEvents;\n\n    uint256 private _protocolFee;\n    uint256 private _collectedProtocolFee;\n    /** END OF STORAGE VARS **/\n\n    /**\n     * @dev Initializer function to initialize the contract with initial state.\n     * @param adminAddress admin address.\n     * @param consensusAddress Consensus contract address.\n     */\n    function initialize(\n        address adminAddress,\n        address consensusAddress\n    ) public initializer {\n        __UUPSUpgradeable_init();\n        __Ownable_init(adminAddress);\n\n        _consensus = IConsensus(consensusAddress);\n    }\n\n    function _authorizeUpgrade(address) internal override onlyOwner {}\n\n    // Admin methods\n\n    /**\n     * @dev Sets the token utils contract address.\n     * @param tokenUtils Token utils contract address.\n     */\n    function setTokenUtils(address tokenUtils) external onlyOwner {\n        if (address(_tokenUtils) != address(0)) revert();\n        _tokenUtils = ITokenUtils(tokenUtils);\n    }\n\n    function setProtocolFee(uint256 fee) external onlyOwner {\n        if (fee == 0) {\n            revert ZeroFeeSetting();\n        }\n        _protocolFee = fee;\n    }\n\n    function withdrawProtocolFee(address payable to, uint256 amount) external onlyOwner {\n        if (to == address(0) || amount == 0) {\n            revert();\n        }\n\n        if (amount > _collectedProtocolFee) {\n            revert InsufficientProtocolFeeBalance(amount, _collectedProtocolFee);\n        }\n\n        (bool success, bytes memory response) = to.call{value: amount}(\"\");\n        if (!success) {\n            revert NativeTrasferError(response);\n        }\n\n        _collectedProtocolFee -= amount;\n    }\n\n    // Internal methods\n\n    function _decodeCustomError(bytes memory customErrorBytes) internal pure returns (bytes4 selector, bytes memory data) {\n        assembly (\"memory-safe\") {\n            // Load the 4-byte error selector\n            selector := mload(add(customErrorBytes, 0x20))\n\n            // Calculate the length of `data` (excluding the 4-byte selector)\n            let dataLength := sub(mload(customErrorBytes), 4)\n\n            // Allocate memory for `data`\n            data := mload(0x40) // Get the current free memory pointer\n            mstore(data, dataLength) // Store the length of `data`\n            mstore(0x40, add(data, add(dataLength, 0x20))) // Update the free memory pointer\n\n            // Copy full 32-byte chunks\n            let source := add(customErrorBytes, 0x24) // Start of data in customErrorBytes\n            let dest := add(data, 0x20) // Start of the `data` array in memory\n            for { let i := 0 } lt(i, sub(dataLength, mod(dataLength, 0x20))) { i := add(i, 0x20) } {\n                mstore(add(dest, i), mload(add(source, i)))\n            }\n\n            // Copy remaining bytes (if any)\n            let remainingBytes := mod(dataLength, 0x20)\n            if gt(remainingBytes, 0) {\n                let mask :=  not(sub(exp(0x100, sub(0x20, remainingBytes)), 1)) // Mask for remaining bytes\n                let src := mload(add(source, sub(dataLength, remainingBytes)))\n                mstore(add(dest, sub(dataLength, remainingBytes)), and(src,mask)) // Copy only valid bytes\n            }\n        }\n    }\n\n    function _checkMerkleRoot(bytes32 root) internal view returns (bool) {\n        if (_simulationMode == SimulationMode.None) {\n            return _consensus.checkMerkleRoot(root);\n        } else {\n            return root == _simulationRoot;\n        }\n    }\n\n    function _checkInMessage(\n        uint256 version,\n        bytes calldata encodedMessage,\n        bytes32[] calldata proof)\n    internal view returns (bytes32 messageHash, VersionLib.UnionInMessage memory message) {\n        uint256 gasPassed = gasleft();\n\n        if (_receiveInProgress) {\n            revert RecursiveMessageProcessing();\n        }\n\n        // calculate the message hash\n        messageHash = keccak256(bytes.concat(keccak256(encodedMessage)));\n\n        // check if the message has already been processed\n        if(_processedInMessages[messageHash] == true) {\n            revert MessageAlreadyProcessed(messageHash);\n        }\n\n        if (!_checkMerkleRoot(MerkleProof.processProofCalldata(proof, messageHash))) {\n            revert InvalidMerkleProof();\n        }\n\n        message = VersionLib.decodeInMessage(version, encodedMessage);\n\n        if (_simulationMode == SimulationMode.None) {\n            if (message.gasLimit > gasPassed) {\n                revert NotEnoughGas(message.gasLimit, gasPassed);\n            }\n        }\n\n        EpochInfo memory epochInfo = _consensus.getCurrentEpochInfo();\n        bytes32 seed = keccak256(abi.encodePacked(epochInfo.merkleRoot, epochInfo.currEpochStartTime, message.operationId));\n        uint256 executorIndex = uint256(seed) % message.evmValidExecutors.length;\n        address currentExecutor = message.evmValidExecutors[executorIndex];\n        if (_simulationMode == SimulationMode.None && currentExecutor != msg.sender && currentExecutor != tx.origin) {\n            revert ExecutorIsNotValid(message.operationId, msg.sender, tx.origin);\n        }\n    }\n\n    function _preprocessInMessage(VersionLib.UnionInMessage memory message, address feeReceiver) internal {\n        uint i;\n        // deploy tokens if not exist\n        for (;i < message.meta.length;) {\n            TokenInfo memory info = message.meta[i];\n            if (!_tokenUtils.exists(info.tvmAddress)) {\n                _tokenUtils.create(info);\n            }\n            unchecked {\n                i++;\n            }\n        }\n        delete i;\n        // erc721\n        for(;i < message.metaNFT.length;) {\n            NFTInfo memory info = message.metaNFT[i];\n            if (!_tokenUtils.exists(info.tvmAddress)) {\n                _tokenUtils.createERC721(info);\n            }\n            unchecked {\n                i++;\n            }\n        }\n\n        // mint fee to executor\n        TokenHelperLib.mint(message.evmExecutorFee, feeReceiver);\n    }\n\n    function _processInMessageTokens(VersionLib.UnionInMessage calldata message) internal returns (uint256 valueToUnlock) {\n        uint i;\n        // mint tokens\n        for (; i < message.mint.length;) {\n            TokenAmount calldata token = message.mint[i];\n            if (!_tokenUtils.exists(token.evmAddress)) {\n                revert TokenNotExist(token.evmAddress);\n            }\n            TokenHelperLib.mint(token, message.target);\n            unchecked {\n                i++;\n            }\n        }\n\n        // unlock tokens\n        delete i;\n        for (; i < message.unlock.length;) {\n            TokenAmount calldata token = message.unlock[i];\n            if (token.evmAddress == NATIVE_TOKEN_ADDRESS) {\n                valueToUnlock += token.amount;\n            } else {\n                TokenHelperLib.unlock(token, message.target);\n            }\n            unchecked {\n                i++;\n            }\n        }\n\n        if (valueToUnlock > 0) {\n            uint256 balance = address(this).balance;\n            if (balance < valueToUnlock) {\n                revert CantUnlockNative(balance, valueToUnlock);\n            }\n        }\n\n        // nft\n        // mint nft\n        delete i;\n        for (; i < message.mintNFT.length;) {\n            NFTAmount calldata token = message.mintNFT[i];\n            if (!_tokenUtils.exists(token.evmAddress)) {\n                revert TokenNotExist(token.evmAddress);\n            }\n            TokenHelperLib.mintNFT(token, message.target);\n            unchecked {\n                i++;\n            }\n        }\n\n        // unlock nft\n        delete i;\n        for (; i < message.unlockNFT.length;) {\n            NFTAmount calldata token = message.unlockNFT[i];\n            TokenHelperLib.unlockNFT(token, message.target);\n            unchecked {\n                i++;\n            }\n        }\n    }\n\n    function _processOutMessageTokens(\n        VersionLib.UnionOutMessage memory message\n    ) internal returns (TokenAmount[] memory toBurn, TokenAmount[] memory toLock, NFTAmount[] memory toBurnNFT, NFTAmount[] memory toLockNFT) {\n\n        toBurn = new TokenAmount[](message.toBridge.length);\n        toLock = new TokenAmount[](message.toBridge.length + 1);\n        uint256 i;\n        uint256 l;\n        uint256 b;\n        for (;i < message.toBridge.length;) {\n            TokenAmount memory token = message.toBridge[i];\n            if (token.amount == 0) {\n                unchecked {\n                    i++;\n                }\n                continue;\n            }\n            if (token.amount >= MAX_BRIDGE_AMOUNT) {\n                revert BridgeAmountToBig(token.evmAddress, token.amount);\n            }\n            if (_tokenUtils.exists(token.evmAddress)) {\n                TokenHelperLib.burn(token);\n                toBurn[b] = token;\n                unchecked {\n                    b++;\n                }\n            }\n            else {\n                TokenHelperLib.lock(token);\n                toLock[l] = token;\n                unchecked {\n                    l++;\n                }\n            }\n            unchecked {\n                i++;\n            }\n        }\n\n        uint256 valueToLock = msg.value;\n\n        // ensure processing fees\n        if (!_receiveInProgress) {\n            if (message.tvmProtocolFee < _protocolFee) {\n                revert InsufficientFeeAmount(_protocolFee, message.tvmProtocolFee);\n            }\n\n            uint256 totalFee = message.tvmExecutorFee + message.tvmProtocolFee;\n            if (valueToLock < totalFee) {\n                revert InsufficientNativeAttached(totalFee, msg.value);\n            }\n            valueToLock -= totalFee;\n            _collectedProtocolFee += message.tvmProtocolFee;\n        }\n\n        // lock received native\n        if (valueToLock > 0) {\n            if (valueToLock >= MAX_BRIDGE_AMOUNT) {\n                revert BridgeAmountToBig(NATIVE_TOKEN_ADDRESS, valueToLock);\n            }\n            toLock[l] = TokenAmount({\n                evmAddress: NATIVE_TOKEN_ADDRESS,\n                amount: valueToLock\n            });\n            unchecked {\n                l++;\n            }\n        }\n\n        // set arrays length\n        assembly {\n            mstore(toBurn, b)\n            mstore(toLock, l)\n        }\n\n        delete i;\n        delete l;\n        delete b;\n        toBurnNFT = new NFTAmount[](message.toBridgeNFT.length);\n        toLockNFT = new NFTAmount[](message.toBridgeNFT.length);\n        for(;i < message.toBridgeNFT.length;) {\n            NFTAmount memory token = message.toBridgeNFT[i];\n            if (_tokenUtils.exists(token.evmAddress)) {\n                TokenHelperLib.burnNFT(token);\n                toBurnNFT[l] = token;\n                unchecked {\n                    l++;\n                }\n            }\n            else {\n                TokenHelperLib.lockNFT(token);\n                toLockNFT[b] = token;\n                unchecked {\n                    b++;\n                }\n            }\n            unchecked {\n                i++;\n            }\n        }\n\n        // set arrays length\n        assembly {\n            mstore(toBurnNFT, l)\n            mstore(toLockNFT, b)\n        }\n    }\n\n    // External methods\n\n    /**\n     * @dev Simulates the processing of an TVM->EVM message.\n     * @param messageVersion Message version.\n     * @param encodedMessage Message to simulate.\n     * @param merkleRoot Merkle root for checking proofs simulation.\n     * @param merkleProof Merkle proof to check.\n     * @param withMessages True if the simulation should include out messages, false - just for gas calculation.\n     * @return simulationStatus True if the simulation was successful, false otherwise.\n     * @return outMessages Array of out messages if the simulation was successful.\n     * @return errorReason Encoded error reason if the simulation was unsuccessful.\n     */\n    function simulateReceiveMessage(\n        uint256 messageVersion,\n        bytes calldata encodedMessage,\n        bytes calldata extraData,\n        bytes32 merkleRoot,\n        bytes32[] calldata merkleProof,\n        bool withMessages\n    ) external returns (bool simulationStatus, OutMessageProcessedEventStruct[] memory outMessages, bytes memory errorReason) {\n        if (_simulationMode != SimulationMode.None) {\n            revert SimulationRecursiveCall();\n        }\n\n        if (extraData.length != 0) {\n            revert ExtraDataIsNotSupported();\n        }\n\n        if (!withMessages) {\n            _simulationMode = SimulationMode.JustGas;\n        }\n        else {\n            _simulationMode = SimulationMode.WithMessages;\n        }\n\n        _simulationRoot = merkleRoot;\n\n        (, VersionLib.UnionInMessage memory message) = _checkInMessage(messageVersion, encodedMessage, merkleProof);\n\n        _currentInMessageOperationId = message.operationId;\n        _receiveInProgress = true;\n        (bool success, bytes memory result) = address(this).call(\n            abi.encodeWithSelector(\n                this.simulateAppLayerContext.selector,\n                message,\n                extraData\n            )\n        );\n\n        if (success) {\n            revert SimulationUnexpectedSuccess();\n        }\n\n        (bytes4 errorSelector, bytes memory errorData) = _decodeCustomError(result);\n\n        if (errorSelector != SimulationFinished.selector) {\n            revert SimulationUnexpectedError();\n        }\n\n        bytes memory simulationData;\n        (simulationStatus, simulationData) = abi.decode(errorData, (bool, bytes));\n\n        if (simulationStatus) {\n            if (_simulationMode == SimulationMode.WithMessages) {\n                outMessages = abi.decode(simulationData, (OutMessageProcessedEventStruct[]));\n                emit SimulationSuccess(outMessages);\n            }\n        }\n        else {\n            if (simulationData.length == 0) {\n                revert SimulationUnexpectedError();\n            }\n\n            errorReason = simulationData;\n\n            if (_simulationMode == SimulationMode.JustGas) {\n                revert SimulationFailedError(errorReason);\n            }\n        }\n\n        _simulationMode = SimulationMode.None;\n        delete _simulationRoot;\n        _receiveInProgress = false;\n        delete _currentInMessageOperationId;\n    }\n\n    function simulateAppLayerContext(\n        VersionLib.UnionInMessage calldata message,\n        bytes calldata extraData\n    ) external {\n        if (msg.sender != address(this)) {\n            revert OnlySelfCall();\n        }\n\n        if (_simulationMode == SimulationMode.None) {\n            revert SimulationIsNotInProgress();\n        }\n\n        // deploy tokens and mint fee\n        _preprocessInMessage(message, message.evmValidExecutors[0]);\n\n        // call appLayerContext where can be called sendMessage\n        (bool success, bytes memory result) = address(this).call(\n            abi.encodeWithSelector(\n                this.appLayerContext.selector,\n                message,\n                extraData\n            )\n        );\n\n        if (success) {\n            bytes memory outMessagesEncoded;\n            if (_simulationMode == SimulationMode.WithMessages) {\n                outMessagesEncoded = abi.encode(_simulationOutMessagesProcessedEvents);\n            }\n\n            revert SimulationFinished(true, outMessagesEncoded);\n        }\n\n        revert SimulationFinished(false, result);\n    }\n\n    /**\n     * @dev Accepts an TVM->EVM message to process if the Merkle proof is valid.\n     * @param messageVersion Message version.\n     * @param encodedMessage Encoded message to process.\n     * @param merkleProof Merkle proof for the message.\n     * @param feeReceiver receiver of fee.\n     * @param extraData Untrusted extra data to pass to the message.\n     */\n    function receiveMessage(\n        uint256 messageVersion,\n        bytes calldata encodedMessage,\n        bytes32[] calldata merkleProof,\n        address feeReceiver,\n        bytes calldata extraData\n    ) external {\n\n        if (extraData.length != 0) {\n            revert ExtraDataIsNotSupported();\n        }\n\n        (bytes32 messageHash, VersionLib.UnionInMessage memory message) = _checkInMessage(messageVersion, encodedMessage, merkleProof);\n\n        // deploy tokens and mint fee\n        _preprocessInMessage(message, feeReceiver);\n\n        _currentInMessageOperationId = message.operationId;\n        _receiveInProgress = true;\n\n        // call with full InMessage to avoid stack depth overflow\n        (bool success, bytes memory result) = address(this).call(\n            abi.encodeWithSelector(\n                this.appLayerContext.selector,\n                message,\n                extraData\n            )\n        );\n\n        if (!success) {\n            if (result.length == 0) revert AppLayerUnexpectedError();\n            emit AppLayerCallErrorEvent(message.operationId, result);\n        }\n        else {\n            emit InMessageProcessed({\n                operationId: message.operationId\n            });\n        }\n\n        _processedInMessages[messageHash] = true;\n\n        _receiveInProgress = false;\n        delete _currentInMessageOperationId;\n    }\n\n    function appLayerContext(\n        VersionLib.UnionInMessage calldata message,\n        bytes calldata extraData\n    ) external {\n        if (msg.sender != address(this)) {\n            revert OnlySelfCall();\n        }\n\n        uint256 valueToUnlock = _processInMessageTokens(message);\n\n        // Process (execute) the message\n        if (message.target != address(0)) {\n            bool status = true;\n            bytes memory response;\n            if (bytes(message.methodName).length != 0) {\n\n                bytes memory header = VersionLib.prepareTacHeader(message, extraData);\n\n                bytes memory methodCall = abi.encodeWithSelector(\n                    bytes4(keccak256(bytes(message.methodName))),\n                    header,\n                    message.arguments\n                );\n                (status, response) = address(message.target).call{value: valueToUnlock}(methodCall);\n            }\n            else if (valueToUnlock != 0) {\n                (status, response) = address(message.target).call{value: valueToUnlock}(\"\");\n            }\n\n            if (!status) {\n                revert ProxyCallError(response);\n            }\n        }\n    }\n\n    /**\n     * @dev Accepts an EVM->TVM message to process (e.g. a callback from dApp).\n     * @param messageVersion Message version.\n     * @param encodedMessage Encoded message to process.\n     */\n    function sendMessage(\n        uint256 messageVersion,\n        bytes calldata encodedMessage\n    ) external payable override {\n        VersionLib.UnionOutMessage memory message = VersionLib.decodeOutMessage(messageVersion, encodedMessage);\n\n        (\n            TokenAmount[] memory toBurn,\n            TokenAmount[] memory toLock,\n            NFTAmount[] memory toBurnNFT,\n            NFTAmount[] memory toLockNFT\n        ) = _processOutMessageTokens(message);\n\n        // ensure message parameters if this is a callback message\n        bytes32 operationId = bytes32(0);\n        if (_receiveInProgress) {\n            operationId = _currentInMessageOperationId;\n        }\n\n        // if simulation mode is WithMessages, save the out message to the simulation state\n        if (_simulationMode == SimulationMode.WithMessages) {\n\n            OutMessageProcessedEventStruct storage outMessage = _simulationOutMessagesProcessedEvents.push();\n\n            outMessage.shardsKey = message.shardsKey;\n            outMessage.operationId = operationId;\n            outMessage.callerAddress = msg.sender;\n            outMessage.targetAddress = message.tvmTarget;\n            outMessage.payload = message.tvmPayload;\n            outMessage.protocolFee = message.tvmProtocolFee;\n            outMessage.executorFee = message.tvmExecutorFee;\n\n            uint i;\n            for(; i < message.tvmValidExecutors.length;) {\n                outMessage.tvmValidExecutors.push(message.tvmValidExecutors[i]);\n                unchecked {\n                    i++;\n                }\n            }\n\n            delete i;\n            for (; i < toBurn.length;) {\n                outMessage.tokensBurned.push(toBurn[i]);\n                unchecked {\n                    i++;\n                }\n            }\n\n            delete i;\n            for (; i < toLock.length;) {\n                outMessage.tokensLocked.push(toLock[i]);\n                unchecked {\n                    i++;\n                }\n            }\n            delete i;\n            for (; i < toBurnNFT.length;) {\n                outMessage.nftsBurned.push(toBurnNFT[i]);\n                unchecked {\n                    i++;\n                }\n            }\n            delete i;\n            for (; i < toLockNFT.length;) {\n                outMessage.nftsLocked.push(toLockNFT[i]);\n                unchecked {\n                    i++;\n                }\n            }\n        }\n\n        emit OutMessageProcessed({\n            shardsKey: message.shardsKey,\n            operationId: operationId,\n            callerAddress: msg.sender,\n            targetAddress: message.tvmTarget,\n            payload: message.tvmPayload,\n            protocolFee: message.tvmProtocolFee,\n            executorFee: message.tvmExecutorFee,\n            tvmValidExecutors: message.tvmValidExecutors,\n            tokensBurned: toBurn,\n            tokensLocked: toLock,\n            nftsBurned: toBurnNFT,\n            nftsLocked: toLockNFT\n        });\n\n    }\n\n    // View methods\n\n    /**\n     * @dev Checks if the input (receive) message has been processed.\n     * @param messageHash Message hash to check.\n     * @return bool True if the message has been processed, false otherwise.\n     */\n    function getInMessageState(\n         bytes32 messageHash\n    ) external view returns (bool) {\n        return _processedInMessages[messageHash];\n    }\n\n    /**\n     * @dev Gets the current min protocol fee.\n     * @return uint256 Fee amount.\n     */\n    function getProtocolFee() public view returns(uint256) {\n        return _protocolFee;\n    }\n\n    /**\n     * @dev Gets collected protocol fee by token address.\n     * @return uint256 Collected fee amount.\n     */\n    function getCollectedProtocolFee() public view returns(uint256) {\n        return _collectedProtocolFee;\n    }\n}\n"},"contracts/core/Settings.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { AccessControlUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\";\nimport { UUPSUpgradeable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\n\nimport { ISettings } from \"../interfaces/ISettings.sol\";\nimport { SettingsConstants } from \"../libs/SettingsConstants.sol\";\nimport { TacInitializable } from \"./TacInitializable.sol\";\n\n/**\n * @title Settings\n * @dev A contract for storing Cross-Chain Layer configuration\n */\ncontract Settings is TacInitializable, UUPSUpgradeable, AccessControlUpgradeable, ISettings {\n\n    // Errors\n    error InvalidKey(bytes32 key);\n    error InvalidUintValue(bytes32 key);\n    error ZeroAddress(bytes32 key);\n    error ChangingAddressForbidden(bytes32 key);\n\n    // Events\n    event UintSettingsUpdated(bytes32 key, uint value);\n    event AddressSettingsUpdated(bytes32 key, address value);\n    event BoolSettingsUpdated(bytes32 key, bool value);\n    event TrustedEVMExecutorsUpdated(address[] indexed executors);\n    event TrustedTVMExecutorsUpdated(string[] indexed executors);\n\n    // Constants\n    bytes32 public constant ADMIN = keccak256(\"ADMIN\");\n\n    // Mappings for storing settings\n    mapping(bytes32 => uint64) private _uintSettings;\n    mapping(bytes32 => address) private _addressSettings;\n    mapping(bytes32 => bool) private _boolSettings;\n    mapping(bytes32 => string) private _stringSettings;\n    address[] private _trustedEVMExecutors;\n    string[] private _trustedTVMExecutors;\n\n    /**\n     * @dev Constructor function to initialize the contract with initial state.\n     * @param adminAddress Admin address.\n     */\n    function initialize(address adminAddress) public initializer {\n        __UUPSUpgradeable_init();\n        __AccessControl_init();\n\n        _setRoleAdmin(ADMIN, ADMIN);\n        _grantRole(ADMIN, adminAddress);\n    }\n\n    /**\n     * @dev Upgrades the contract.\n     */\n    function _authorizeUpgrade(address) internal override onlyRole(ADMIN) {}\n\n\n    // External methods\n\n    function _checkUintSetting(bytes32 key, uint value) internal pure {\n\n        if (key == SettingsConstants.CONSENSUS_THRESHOLD_GROUPS_KEY) {\n            if (value == 0 || value > SettingsConstants.RATE_DECIMALS) {\n                revert InvalidUintValue(key);\n            }\n        } else if (key == SettingsConstants.CONSENSUS_THRESHOLD_IN_GROUP_KEY) {\n            if (value == 0 || value > SettingsConstants.RATE_DECIMALS) {\n                revert InvalidUintValue(key);\n            }\n        } else if (key == SettingsConstants.EPOCH_DELAY_KEY) {\n            // 5 mins\n            if (value > 300) {\n                revert InvalidUintValue(key);\n            }\n        } else if (key == SettingsConstants.TREE_DURATION_KEY) {\n            // TODO: Add a check\n        } else if (key == SettingsConstants.VALIDITY_DURATION_KEY) {\n            // TODO: Add a check\n        } else if (key == SettingsConstants.MAX_EPOCH_DURATION_KEY) {\n            // TODO: Add a check\n        } else if (key == SettingsConstants.ASSET_DEPLOY_FINALIZE_TIME_KEY) {\n            // TODO: Add a check\n        } else {\n            revert InvalidKey(key);\n        }\n    }\n\n    /**\n     * @dev Update trustedEVMExecutors setting.\n     * @param trustedEVMExecutors Trusted executors.\n     */\n    function setTrustedEVMExecutors(address[] memory trustedEVMExecutors) public onlyRole(ADMIN) {\n        _trustedEVMExecutors = trustedEVMExecutors;\n        emit TrustedEVMExecutorsUpdated(trustedEVMExecutors);\n    }\n\n    /**\n     * @dev Get trustedEVMExecutors.\n     */\n    function getTrustedEVMExecutors() public view returns (address[] memory) {\n        return _trustedEVMExecutors;\n    }\n\n    /**\n     * @dev Update trustedTVMExecutors setting.\n     * @param trustedTVMExecutors Trusted executors.\n     */\n    function setTrustedTVMExecutors(string[] memory trustedTVMExecutors) public onlyRole(ADMIN) {\n        _trustedTVMExecutors = trustedTVMExecutors;\n        emit TrustedTVMExecutorsUpdated(trustedTVMExecutors);\n    }\n\n    /**\n     * @dev Get trustedTVMExecutors.\n     */\n    function getTrustedTVMExecutors() public view returns (string[] memory) {\n        return _trustedTVMExecutors;\n    }\n\n    /**\n     * @dev Update a uint64 setting.\n     * @param key The setting key.\n     * @param value The new value.\n     */\n    function setUintSetting(bytes32 key, uint64 value) public onlyRole(ADMIN) {\n        _checkUintSetting(key, value);\n        _uintSettings[key] = value;\n        emit SettingsUpdated(key);\n    }\n\n    /**\n     * @dev Get a uint64 setting.\n     * @param key The setting key.\n     * @return The setting value.\n     */\n    function getUintSetting(bytes32 key) public view returns (uint64) {\n        return _uintSettings[key];\n    }\n\n    function _forbiddenChangingAddress(bytes32 key) internal view {\n        if (_addressSettings[key] != address(0)) {\n                revert ChangingAddressForbidden(key);\n        }\n    }\n\n    function _checkAddressSetting(bytes32 key, address value) internal view {\n        if (value == address(0)) {\n            revert ZeroAddress(key);\n        }\n\n        if (key == SettingsConstants.CONSENSUS_ADDRESS_KEY) {\n            _forbiddenChangingAddress(key);\n        } else if (key == SettingsConstants.CCL_ADDRESS_KEY) {\n            _forbiddenChangingAddress(key);\n        } else if (key == SettingsConstants.TOKEN_UTILS_ADDRESS_KEY) {\n            _forbiddenChangingAddress(key);\n        } else {\n            revert InvalidKey(key);\n        }\n    }\n\n    /**\n     * @dev Update an address setting.\n     * @param key The setting key.\n     * @param value The new address value.\n     */\n    function setAddressSetting(bytes32 key, address value) public onlyRole(ADMIN) {\n        _checkAddressSetting(key, value);\n        _addressSettings[key] = value;\n        emit SettingsUpdated(key);\n    }\n\n    /**\n     * @dev Get an address setting.\n     * @param key The setting key.\n     * @return The setting value.\n     */\n    function getAddressSetting(bytes32 key) public view returns (address) {\n        return _addressSettings[key];\n    }\n\n    function _checkBoolSetting(bytes32, bool) internal pure {\n        return;\n    }\n\n    /**\n     * @dev Update a bool setting.\n     * @param key The setting key.\n     * @param value The new bool value.\n     */\n    function setBoolSetting(bytes32 key, bool value) public onlyRole(ADMIN) {\n        _checkBoolSetting(key, value);\n        _boolSettings[key] = value;\n        emit SettingsUpdated(key);\n    }\n\n    /**\n     * @dev Get a bool setting.\n     * @param key The setting key.\n     * @return The setting value.\n     */\n    function getBoolSetting(bytes32 key) public view returns (bool) {\n        return _boolSettings[key];\n    }\n\n    function _checkStringSetting(bytes32 key, string memory) internal pure {\n        if (key == SettingsConstants.NFT_PREFIX_URI_KEY) {\n            return;\n        } else if (key == SettingsConstants.FT_PREFIX_IMAGE_KEY) {\n            return;\n        } else {\n            revert InvalidKey(key);\n        }\n    }\n\n    /**\n     * @dev Update a string setting.\n     * @param key The setting key.\n     * @param value The new string value.\n     */\n    function setStringSetting(bytes32 key, string memory value) public onlyRole(ADMIN) {\n        _checkStringSetting(key, value);\n        _stringSettings[key] = value;\n        emit SettingsUpdated(key);\n    }\n\n    /**\n     * @dev Get a string setting.\n     * @param key The setting key.\n     * @return The setting value.\n     */\n    function getStringSetting(bytes32 key) public view returns (string memory) {\n        return _stringSettings[key];\n    }\n\n}\n"},"contracts/core/Structs.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\n\n/**\n * @title TokenInfo\n * @dev Extended TVM token info\n */\nstruct TokenInfo {\n    string name;\n    string symbol;\n    uint8 decimals;\n    string tvmAddress;\n}\n\n/**\n * @title NFTInfo\n * @dev Extended NFT collection info\n */\nstruct NFTInfo {\n    string name;\n    string symbol;\n    string baseURI;\n    string tvmAddress;\n}\n\n/**\n * @title TokenAmount\n * @dev Token address with amount\n */\nstruct TokenAmount {\n    address evmAddress;\n    uint256 amount;\n}\n\n/**\n * @title NFTAmount\n * @dev NFT address with token id and amount\n * compatible with ERC721 and ERC1155 both\n * For ERC721, amount ignored\n */\nstruct NFTAmount {\n    address evmAddress;\n    uint256 tokenId;\n    uint256 amount;\n}\n\n\n/**\n * @title InMessage v1\n * @dev TVM->EVM message\n */\nstruct InMessageV1 {\n    uint64 shardsKey;\n    uint64 gasLimit;\n    bytes32 operationId;\n    uint256 timestamp;\n    address target;\n    string methodName;\n    bytes arguments;\n    string caller;\n    TokenAmount evmExecutorFee;\n    address[] evmValidExecutors;\n    TokenAmount[] mint;\n    TokenAmount[] unlock;\n    TokenInfo[] meta;\n    NFTAmount[] mintNFT;\n    NFTAmount[] unlockNFT;\n    NFTInfo[] metaNFT;\n}\n\n/**\n * @title TVMFeeInfo\n * @dev Fee info\n */\nstruct TVMFeeInfo {\n    uint256 protocolFee;\n    uint256 executorFee;\n}\n\n/**\n * @title OutMessage v1\n * @dev EVM->TVM message v1\n */\nstruct OutMessageV1 {\n    uint64 shardsKey;\n    string tvmTarget;\n    string tvmPayload;\n    uint256 tvmProtocolFee;\n    uint256 tvmExecutorFee;\n    string[] tvmValidExecutors;\n    TokenAmount[] toBridge;\n    NFTAmount[] toBridgeNFT;\n}\n\n/**\n * @title EpochInfo\n * @dev Consensus epoch info\n */\nstruct EpochInfo {\n    bytes32 merkleRoot;\n    uint64 prevMessageCollectEndTime;\n    uint64 messageCollectEndTime;\n    uint64 prevEpochStartTime;\n    uint64 currEpochStartTime;\n    uint64 nextVotingTime;\n}\n\n/**\n * @title TacHeaderV1\n */\nstruct TacHeaderV1 {\n    uint64 shardsKey;\n    uint256 timestamp;\n    bytes32 operationId;\n    string tvmCaller;\n    bytes extraData;\n}\n\n/**\n * @title SimulationParams\n */\nstruct SimulationParams {\n    uint256 messageVersion;\n    bytes encodedMessage;\n    bytes extraData;\n    bytes32 merkleRoot;\n    bytes32[] merkleProof;\n    bool withMessages;\n}\n\n\n/**\n * @title IStructsInterface\n * @dev Unusable interface for structs typechain generation\n */\ninterface IStructsInterface {\n    function __InMessageV1(InMessageV1 calldata message) external pure returns(InMessageV1 calldata);\n    function __OutMessageV1(OutMessageV1 calldata message) external pure returns(OutMessageV1 calldata);\n    function __TacHeaderV1(TacHeaderV1 calldata tacHeader) external pure returns(TacHeaderV1 calldata);\n    function __TokenInfo(TokenInfo calldata tokenInfo) external pure returns(TokenInfo calldata);\n    function __NFTInfo(NFTInfo calldata nftInfo) external pure returns(NFTInfo calldata);\n    function __TokenAmount(TokenAmount calldata tokenAmount) external pure returns(TokenAmount calldata);\n    function __NFTAmount(NFTAmount calldata nftAmount) external pure returns(NFTAmount calldata);\n    function __EpochInfo(EpochInfo calldata epochInfo) external pure returns(EpochInfo calldata);\n    function __TVMFeeInfo(TVMFeeInfo calldata tvmFeeInfo) external pure returns(TVMFeeInfo calldata);\n    function __SimulationParams(SimulationParams calldata simulationParams) external pure returns(SimulationParams calldata);\n}"},"contracts/core/TacInitializable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { Initializable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\n\nimport { ITacInitializable } from \"../interfaces/ITacInitializable.sol\";\n\n/**\n * @title TacInitializable\n */\nabstract contract TacInitializable is Initializable, ITacInitializable {\n\n    error AlreadyInitialized();\n\n    function disableInitializers() external {\n        if (_getInitializedVersion() != 0) {\n            revert AlreadyInitialized();\n        }\n        _disableInitializers();\n    }\n}"},"contracts/core/TokenFactories/ERC20TokenFactory.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.28;\n\nimport { ITokenFactory } from \"../../interfaces/ITokenFactory.sol\";\nimport { Create2 } from \"@openzeppelin/contracts/utils/Create2.sol\";\nimport { CrossChainLayerERC20 } from \"../tokens/CrossChainLayerERC20.sol\";\n\ncontract ERC20TokenFactory is ITokenFactory {\n\n    /**\n     * @dev Deploy new ERC20 token, must be called by tokenUtils with delegate call\n     * @param salt salt for the contract deployment\n     * @param initCode constructor params of the token\n     * @param initData initializer params of the token\n     * @return address of the deployed token\n     */\n    function deploy(bytes32 salt, bytes calldata initCode, bytes calldata initData) external returns (address) {\n        bytes memory bytecode = abi.encodePacked(\n            type(CrossChainLayerERC20).creationCode,\n            initCode\n        );\n        address token = Create2.deploy(0, salt, bytecode);\n\n        (\n            string memory name,\n            string memory symbol,\n            uint8 decimals,\n            string memory tvmAddress\n        ) = abi.decode(initData, (string, string, uint8, string));\n\n        CrossChainLayerERC20(token).initialize(name, symbol, decimals, tvmAddress);\n\n        return token;\n    }\n\n    /**\n     * @dev Compute address of the token contract\n     * @param salt Salt for the contract deployment\n     * @param initCode Constructor params of the token\n     * @param deployer Address of the deployer\n     * @return Calculated address of the token\n     */\n    function computeAddress(bytes32 salt, bytes calldata initCode, address deployer) external pure returns (address) {\n        bytes memory bytecode = abi.encodePacked(\n            type(CrossChainLayerERC20).creationCode,\n            initCode\n        );\n        return Create2.computeAddress(salt, keccak256(bytecode), deployer);\n    }\n}"},"contracts/core/TokenFactories/ERC721TokenFactory.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.28;\n\nimport { ITokenFactory } from \"../../interfaces/ITokenFactory.sol\";\nimport { Create2 } from \"@openzeppelin/contracts/utils/Create2.sol\";\n\nimport { CrossChainLayerERC721 } from \"../tokens/CrossChainLayerERC721.sol\";\n\ncontract ERC721TokenFactory is ITokenFactory {\n\n\n    /**\n     * @dev Deploy new ERC20 token, must be called by tokenUtils with delegate call\n     * @param salt salt for the contract deployment\n     * @param initCode constructor params of the token\n     * @param initData initializer params of the token\n     * @return address of the deployed token\n     */\n    function deploy(bytes32 salt, bytes calldata initCode, bytes calldata initData) external returns (address) {\n        bytes memory bytecode = abi.encodePacked(\n            type(CrossChainLayerERC721).creationCode,\n            initCode\n        );\n        address token = Create2.deploy(0, salt, bytecode);\n\n        (\n            string memory name,\n            string memory symbol,\n            string memory baseURI,\n            string memory tvmAddress\n        ) = abi.decode(initData, (string, string, string, string));\n\n        CrossChainLayerERC721(token).initialize(name, symbol, baseURI, tvmAddress);\n\n        return token;\n    }\n\n    /**\n     * @dev Compute address of the token contract\n     * @param salt Salt for the contract deployment\n     * @param initCode Constructor params of the token\n     * @param deployer Address of the deployer\n     * @return Calculated address of the token\n     */\n    function computeAddress(bytes32 salt, bytes calldata initCode, address deployer) external pure returns (address) {\n        bytes memory bytecode = abi.encodePacked(\n            type(CrossChainLayerERC721).creationCode,\n            initCode\n        );\n        return Create2.computeAddress(salt, keccak256(bytecode), deployer);\n    }\n}\n"},"contracts/core/tokens/CrossChainLayerERC20.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { ERC20Upgradeable } from \"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol\";\n\nimport { TokenInfo } from \"../Structs.sol\";\nimport { ICrossChainLayerERC20 } from \"../../interfaces/tokens/ICrossChainLayerERC20.sol\";\n\n/**\n * @title CrossChainLayer\n * @dev A contract for all Cross-Chain Layer ERC20 tokens.\n */\ncontract CrossChainLayerERC20 is ERC20Upgradeable, ICrossChainLayerERC20 {\n\n    // Errors\n    error UnauthorizedAccess();\n\n    // Events\n\n    // State variables\n    uint8 private __decimals;\n    string private __tvmAddress;\n    address private __crossChainLayer;\n    address private __tokenUtils;\n\n    /**\n     * @dev Constructor function to initialize the contract with initial state.\n     * @param crossChainLayer Cross-chain layer contract address.\n     */\n    constructor(address crossChainLayer)\n    {\n        __crossChainLayer = crossChainLayer;\n        __tokenUtils = msg.sender;\n    }\n\n    /**\n     * @dev Constructor function to initialize the contract with initial state.\n     * @param name_ ERC20 token name.\n     * @param symbol_ ERC20 token symbol.\n     * @param decimals_ ERC20 token decimals override.\n     * @param tvmAddress_ Correspondent TVM token address.\n     */\n    function initialize(\n        string memory name_,\n        string memory symbol_,\n        uint8 decimals_,\n        string memory tvmAddress_\n    )\n        public\n        initializer\n    {\n        _checkTokenUtils();\n        __ERC20_init(name_, symbol_);\n        __decimals = decimals_;\n        __tvmAddress = tvmAddress_;\n    }\n\n    function _checkCrossChainLayer() internal view {\n        if (msg.sender != __crossChainLayer) {\n            revert UnauthorizedAccess();\n        }\n    }\n\n    function _checkTokenUtils() internal view {\n        if (msg.sender != __tokenUtils) {\n            revert UnauthorizedAccess();\n        }\n    }\n\n    /**\n     * @dev Function to mint tokens\n     * @param to Address to mint tokens to\n     * @param amount Amount of tokens to mint\n     */\n    function mint(address to, uint256 amount) external {\n        _checkCrossChainLayer();\n        _mint(to, amount);\n    }\n\n    /**\n     * @dev Function to burn tokens\n     * @param from Address to mint tokens to\n     * @param amount Amount of tokens to burn\n     */\n    function burn(address from, uint256 amount) external {\n        _checkCrossChainLayer();\n        _burn(from, amount);\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     *      ERC20 override\n     */\n    function decimals() public view override(ERC20Upgradeable, ICrossChainLayerERC20) returns (uint8) {\n        return __decimals;\n    }\n\n    /**\n     * @dev Returns token info.\n     */\n    function getInfo() public view returns (TokenInfo memory) {\n        return TokenInfo({\n            name: name(),\n            symbol: symbol(),\n            decimals: decimals(),\n            tvmAddress: __tvmAddress\n        });\n    }\n}\n"},"contracts/core/tokens/CrossChainLayerERC721.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { ERC721Upgradeable } from \"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\";\nimport { IERC165 } from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport { ICrossChainLayerERC721 } from \"../../interfaces/tokens/ICrossChainLayerERC721.sol\";\nimport { NFTInfo } from \"../Structs.sol\";\n\ncontract CrossChainLayerERC721 is ERC721Upgradeable, ICrossChainLayerERC721 {\n    // Errors\n    error UnauthorizedAccess();\n\n    // Events\n\n    // State variables\n\n    string private __tvmAddress;\n    address private __crossChainLayer;\n    address private __tokenUtils;\n\n    string private __baseURI;\n\n    /**\n     * @dev Constructor function to initialize the contract with initial state.\n     * @param crossChainLayer Cross-chain layer contract address.\n     */\n    constructor(address crossChainLayer)\n    {\n        __crossChainLayer = crossChainLayer;\n        __tokenUtils = msg.sender;\n    }\n\n    function initialize(\n        string memory name_,\n        string memory symbol_,\n        string memory baseURI_,\n        string memory tvmAddress_\n    ) external initializer {\n        _checkTokenUtils();\n        __ERC721_init(name_, symbol_);\n        __baseURI = baseURI_;\n        __tvmAddress = tvmAddress_;\n    }\n\n    function _checkCrossChainLayer() internal view {\n        if (msg.sender != __crossChainLayer) {\n            revert UnauthorizedAccess();\n        }\n    }\n\n    function _checkTokenUtils() internal view {\n        if (msg.sender != __tokenUtils) {\n            revert UnauthorizedAccess();\n        }\n    }\n\n    function _baseURI() internal view override returns (string memory) {\n        return __baseURI;\n    }\n\n    function setBaseURI(string calldata baseURI) external {\n        _checkTokenUtils();\n        __baseURI = baseURI;\n    }\n\n    /**\n     * @dev Mint a new token.\n     * @param to Receiver address, must be a NFT receiver.\n     * @param tokenId token id\n     */\n    function safeMint(address to, uint256 tokenId, bytes memory data) external {\n        _checkCrossChainLayer();\n        _safeMint(to, tokenId, data);\n    }\n\n    /**\n     * @dev Burn a token.\n     * @param tokenId token id\n     */\n    function burn(uint256 tokenId) external {\n        _checkCrossChainLayer();\n        _burn(tokenId);\n    }\n\n    function getInfo() external view returns (NFTInfo memory) {\n        return NFTInfo({\n            name: name(),\n            symbol: symbol(),\n            baseURI: _baseURI(),\n            tvmAddress: __tvmAddress\n        });\n    }\n\n    function supportsInterface(bytes4 interfaceId) public view override(ERC721Upgradeable, IERC165) returns (bool) {\n        return interfaceId == type(ICrossChainLayerERC721).interfaceId || super.supportsInterface(interfaceId);\n    }\n}"},"contracts/core/TokenUtils.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.28;\n\nimport { Initializable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport { UUPSUpgradeable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\nimport { AccessControlUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\";\n\nimport { ISettings } from \"../interfaces/ISettings.sol\";\nimport { ITokenUtils } from \"../interfaces/ITokenUtils.sol\";\nimport { ITokenFactory } from \"../interfaces/ITokenFactory.sol\";\nimport { ICrossChainLayerERC721 } from \"../interfaces/tokens/ICrossChainLayerERC721.sol\";\nimport { TacInitializable } from \"./TacInitializable.sol\";\n\nimport { TokenInfo, NFTInfo } from \"../core/Structs.sol\";\n\n/**\n * @title TokenUtils\n * @dev Cross-chain layer token factory and utility functions.\n */\ncontract TokenUtils is TacInitializable, AccessControlUpgradeable, UUPSUpgradeable, ITokenUtils {\n\n    error UnauthorizedAccess();\n    error InvalidTokenType(uint256);\n    error TokenNotFound(address);\n\n    /**\n        * @dev New Cross-Chain Layer token contract was deployed\n        * @param tvmAddress TVM Jetton address\n        * @param evmAddress Token address\n        * @param tokenType Token type\n    */\n    event TokenCreated(string tvmAddress, address evmAddress, uint8 tokenType);\n\n    // constants\n    bytes32 public constant ADMIN = keccak256(\"ADMIN\");\n    uint8 public constant ERC20_TYPE = 0x1;\n    uint8 public constant ERC721_TYPE = 0x2;\n\n\n    // state variables\n\n    struct DeployInfo {\n        uint8 tokenType;\n        uint64 deployTime;\n    }\n\n    mapping(address => DeployInfo) private _tacTokens;\n    mapping(string => address) private _tvmToEVMTokenAddress;\n    mapping(uint256 => ITokenFactory) private _factories;\n\n    address private _crossChainLayer;\n\n    /**\n     * @dev Initializes the contract.\n     * @param adminAddress Admin address.\n     * @param crossChainLayer Cross-Chain Layer contract address.\n     */\n    function initialize(address adminAddress, address crossChainLayer) public initializer {\n        __UUPSUpgradeable_init();\n        __AccessControl_init();\n\n        _setRoleAdmin(ADMIN, ADMIN);\n        _grantRole(ADMIN, adminAddress);\n\n        _crossChainLayer = crossChainLayer;\n    }\n\n    /**\n     * @dev Upgrades the contract.\n     */\n    function _authorizeUpgrade(address) internal override onlyRole(ADMIN) {}\n\n    function _checkCrossChainLayer() internal view {\n        if (msg.sender != _crossChainLayer) {\n            revert UnauthorizedAccess();\n        }\n    }\n\n    /* ADMIN FUNCTIONS */\n\n    /**\n     * @dev setup new token factory\n     * @param tokenType Token type\n     * @param factory Token factory address\n     */\n    function setTokenFactory(uint256 tokenType, address factory) external onlyRole(ADMIN) {\n\n        if (\n            tokenType != ERC20_TYPE &&\n            tokenType != ERC721_TYPE\n        ) {\n            revert InvalidTokenType(tokenType);\n        }\n        _factories[tokenType] = ITokenFactory(factory);\n    }\n\n    /**\n     * @dev Set new base URI for ERC721 Cross-Chain Layer token.\n     * @param erc721Token CrosschainLayerERC721 address\n     * @param baseURI Base URI\n     */\n    function setBaseURI(address erc721Token, string calldata baseURI) external onlyRole(ADMIN) {\n        if (_tacTokens[erc721Token].tokenType != ERC721_TYPE) {\n            revert TokenNotFound(erc721Token);\n        }\n        ICrossChainLayerERC721(erc721Token).setBaseURI(baseURI);\n    }\n\n    /* LOGIC FUNCTIONS */\n\n    function _create(uint8 tokenType, string calldata tvmAddress, bytes memory initCode, bytes memory initData) internal {\n        bytes32 salt = keccak256(abi.encodePacked(tvmAddress));\n\n        // delegate call is not safe inside upgradeable contract\n        // but there is just like callcode opcode and target contract do not use storage\n        // so it's safe to use delegate call here\n        (bool success, bytes memory result) = address(_factories[tokenType]).delegatecall(\n            abi.encodeWithSelector(ITokenFactory.deploy.selector, salt, initCode, initData)\n        );\n\n        if (!success) {\n            assembly {\n                let result_size := mload(result)\n                revert(add(0x20, result), result_size)\n            }\n        }\n\n        address token = abi.decode(result, (address));\n\n        _tvmToEVMTokenAddress[tvmAddress] = token;\n        _tacTokens[token] = DeployInfo({\n            tokenType: tokenType,\n            deployTime: uint64(block.timestamp)\n        });\n\n        emit TokenCreated(tvmAddress, token, tokenType);\n    }\n\n    /**\n     * @dev Deploy new ERC20 Cross-Chain Layer token.\n     * @param info TokenInfo struct containing token details.\n     */\n    function create(\n        TokenInfo calldata info\n    ) external {\n        _checkCrossChainLayer();\n\n        bytes memory initCode = abi.encode(address(_crossChainLayer));\n        bytes memory initData = abi.encode(info.name, info.symbol, info.decimals, info.tvmAddress);\n\n        _create(ERC20_TYPE, info.tvmAddress, initCode, initData);\n    }\n\n    /**\n     * @dev Deploy new ERC721 Cross-Chain Layer token.\n     * @param info NFTInfo struct containing token details.\n     */\n    function createERC721(\n        NFTInfo calldata info\n    ) external {\n        _checkCrossChainLayer();\n\n        bytes memory initCode = abi.encode(address(_crossChainLayer));\n        bytes memory initData = abi.encode(info.name, info.symbol, info.baseURI, info.tvmAddress);\n\n        _create(ERC721_TYPE, info.tvmAddress, initCode, initData);\n    }\n\n    /*\n        VIEW FUNCTIONS\n    */\n\n    /**\n     * @dev Checks if the token exists or not by evm address\n     * @param evmAddress Corresponding EVM token address.\n     */\n    function exists(address evmAddress) external view returns (bool) {\n        return _tacTokens[evmAddress].tokenType != 0;\n    }\n\n    /**\n     * @dev Checks if the token exists or not by tvm address\n     * @param tvmAddress Corresponding TON token address.\n     */\n    function exists(string calldata tvmAddress) external view returns (bool) {\n        return _tvmToEVMTokenAddress[tvmAddress] != address(0);\n    }\n\n    function _computeAddress(\n        string calldata tvmAddress,\n        uint256 tokenType\n    ) internal view returns (address) {\n        bytes32 salt = keccak256(abi.encodePacked(tvmAddress));\n        bytes memory initCode = abi.encode(address(_crossChainLayer));\n\n        return _factories[tokenType].computeAddress(salt, initCode, address(this));\n    }\n\n    /**\n     * @dev Get address of ERC20 Cross-Chain Layer token.\n     * @param tvmAddress Corresponding TON token address.\n     */\n    function computeAddress(\n        string calldata tvmAddress\n    ) external view returns (address) {\n        return _computeAddress(tvmAddress, ERC20_TYPE);\n    }\n\n    /**\n     * @dev Get address of ERC721 Cross-Chain Layer token.\n     * @param tvmAddress Corresponding TON collection address.\n     */\n    function computeAddressERC721(\n        string calldata tvmAddress\n    ) external view returns (address) {\n        return _computeAddress(tvmAddress, ERC721_TYPE);\n    }\n\n    /**\n     * @dev Get token deploy timestamp\n     * @param evmAddress Token address\n     */\n    function getTokenDeployTime(\n        address evmAddress\n    ) external view returns (uint64) {\n        return _tacTokens[evmAddress].deployTime;\n    }\n\n}\n"},"contracts/interfaces/IConsensus.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { EpochInfo } from \"../core/Structs.sol\";\nimport { ITacInitializable } from \"./ITacInitializable.sol\";\n\ninterface IConsensus is ITacInitializable {\n\n    /**\n     * @dev Add new voters's group\n     * @param groupId group id\n     * @param adminAddress group admin address\n     */\n    function addGroup(bytes32 groupId, address adminAddress) external;\n\n    /**\n     * @dev Adds a new voter.\n     * @param groupId voter group id\n     * @param voterAddress voter address\n     */\n    function addVoter(bytes32 groupId, address voterAddress) external;\n\n    /**\n     * @dev Remove voter.\n     * @param voterAddress Address of the voter to remove.\n     */\n    function removeVoter(address voterAddress) external;\n\n    /**\n     * @dev Vote for a new value.\n     * @param messageCollectEndTime Message collect end time for current vote.\n     * @param newValue New value.\n     */\n    function vote(uint64 messageCollectEndTime, bytes32 newValue) external;\n\n    /**\n     * @dev Returns current epoch info.\n     * @return Epoch info.\n     */\n    function getCurrentEpochInfo() external view returns (EpochInfo memory);\n\n    /**\n     * @dev Gets total number of active voters.\n     * @return totalVoters Total number of active voters.\n     */\n    function totalVoters() external view returns (uint256 totalVoters);\n\n    /**\n     * @dev Gets the current (last selected) value.\n     * @return bytes32 Current (last selected) value.\n     */\n    function getValue() external view returns (bytes32);\n\n    /**\n     * @dev Checks if merkle root is valid.\n     * @param merkleRoot Merkle root.\n     * @return bool True if merkle root is valid, false otherwise.\n     */\n    function checkMerkleRoot(bytes32 merkleRoot) external view returns (bool);\n}"},"contracts/interfaces/ICrossChainLayer.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { ITacInitializable } from \"./ITacInitializable.sol\";\n\n/**\n * @title ICrossChainLayer\n * @dev An interface for Cross-Chain Layer.\n */\ninterface ICrossChainLayer is ITacInitializable {\n\n    // Interface\n\n    /**\n     * @dev Accepts an TVM->EVM message to process if the Merkle proof is valid.\n     * @param messageVersion Message version.\n     * @param encodedMessage Encoded message to process.\n     * @param merkleProof Merkle proof for the message.\n     * @param feeReceiver receiver of fee.\n     * @param extraData Untrusted extra data to pass to the message.\n     */\n    function receiveMessage(\n        uint256 messageVersion,\n        bytes calldata encodedMessage,\n        bytes32[] calldata merkleProof,\n        address feeReceiver,\n        bytes calldata extraData\n    ) external;\n\n    /**\n     * @dev Accepts an EVM->TVM message to process (e.g. a callback from dApp).\n     * @param messageVersion Message version.\n     * @param encodedMessage Encoded message to process.\n     */\n    function sendMessage(\n        uint256 messageVersion,\n        bytes calldata encodedMessage\n    ) external payable;\n\n    /**\n     * @dev Checks if the input (receive) message has been processed.\n     * @param messageHash Message hash to check.\n     * @return bool True if the message has been processed, false otherwise.\n     */\n    function getInMessageState(bytes32 messageHash) external view returns (bool);\n\n    /**\n     * @dev Gets the current min protocol fee.\n     * @return uint256 Fee amount.\n     */\n    function getProtocolFee() external view returns(uint256);\n}\n"},"contracts/interfaces/IMerkleTreeUtils.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { InMessageV1 } from \"../core/Structs.sol\";\n\n\n/**\n * @title IMerkleTreeUtils\n * @dev An interface to message and Merkle tree utility functions\n */\ninterface IMerkleTreeUtils {\n    /**\n     * @dev Calculates message v1 hash.\n     * @param message Message v1.\n     */\n    function hashInMessageV1(InMessageV1 calldata message) external pure returns (bytes32);\n\n    /**\n     * @dev Function to calculate the Merkle root from the message hash and proof.\n     * @param objectHash Leaf object hash to validate.\n     * @param merkleProof Merkle proof.\n     */\n    function checkMerkleProof(bytes32 objectHash, bytes32[] calldata merkleProof) external pure returns (bytes32);\n}\n"},"contracts/interfaces/ISettings.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { ITacInitializable } from \"./ITacInitializable.sol\";\n\n\n/**\n * @title Settings interface\n * @dev A contract for storing Cross-Chain Layer configuration\n */\ninterface ISettings is ITacInitializable {\n    /**\n     * @dev Cross-Chain Layer configuration setting changed event\n     * @param variable Name of the variable updated\n     */\n    event SettingsUpdated(bytes32 indexed variable);\n\n    /**\n     * @dev Update a uint64 setting.\n     * @param key The setting key.\n     * @param value The new value.\n     */\n    function setUintSetting(bytes32 key, uint64 value) external;\n\n    /**\n     * @dev Get a uint64 setting.\n     * @param key The setting key.\n     * @return The setting value.\n     */\n    function getUintSetting(bytes32 key) external view returns (uint64);\n\n    /**\n     * @dev Update an address setting.\n     * @param key The setting key.\n     * @param value The new address value.\n     */\n    function setAddressSetting(bytes32 key, address value) external;\n\n    /**\n     * @dev Get an address setting.\n     * @param key The setting key.\n     * @return The setting value.\n     */\n    function getAddressSetting(bytes32 key) external view returns (address);\n\n    /**\n     * @dev Update a bool setting.\n     * @param key The setting key.\n     * @param value The new bool value.\n     */\n    function setBoolSetting(bytes32 key, bool value) external;\n\n    /**\n     * @dev Get a bool setting.\n     * @param key The setting key.\n     * @return The setting value.\n     */\n    function getBoolSetting(bytes32 key) external view returns (bool);\n    \n    /**\n     * @dev Update trustedEVMExecutors setting.\n     * @param trustedEVMExecutors Trusted executors.\n     */\n    function setTrustedEVMExecutors(address[] memory trustedEVMExecutors) external;\n\n    /**\n     * @dev Get trustedEVMExecutors.\n     */\n    function getTrustedEVMExecutors() external view returns (address[] memory);\n\n    /**\n     * @dev Update trustedTVMExecutors setting.\n     * @param trustedTVMExecutors Trusted executors.\n     */\n    function setTrustedTVMExecutors(string[] memory trustedTVMExecutors) external;\n\n    /**\n     * @dev Get trustedTVMExecutors.\n     */\n    function getTrustedTVMExecutors() external view returns (string[] memory);\n}\n"},"contracts/interfaces/ITacInitializable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\n/**\n * @title TacInitializable interface\n */\ninterface ITacInitializable {\n    function disableInitializers() external;\n}"},"contracts/interfaces/ITokenFactory.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.28;\n\n\ninterface ITokenFactory {\n\n    function deploy(bytes32 _salt, bytes calldata _initCode, bytes calldata initData) external returns (address);\n    function computeAddress(bytes32 _salt, bytes calldata _initCode, address _deployer) external view returns (address);\n}"},"contracts/interfaces/ITokenUtils.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { TokenInfo, NFTInfo } from \"../core/Structs.sol\";\n\nimport { ITacInitializable } from \"./ITacInitializable.sol\";\n\n/**\n * @title ITokenUtils\n * @dev An interface to message and Merkle tree utility functions\n */\ninterface ITokenUtils is ITacInitializable {\n\n    /**\n     * @dev Deploy new ERC20 Cross-Chain Layer token.\n     * @param info TokenInfo struct containing token details.\n     */\n    function create(\n        TokenInfo calldata info\n    ) external;\n\n    /**\n     * @dev Deploy new ERC721 Cross-Chain Layer token.\n     * @param info NFTInfo struct containing token details.\n     */\n    function createERC721(\n        NFTInfo calldata info\n    ) external;\n\n    /**\n     * @dev Checks if the token exists or not by evm address\n     * @param evmAddress EVM token address.\n     */\n    function exists(address evmAddress) external view returns (bool);\n\n    /**\n     * @dev Checks if the token exists or not by tvm address\n     * @param tvmAddress Corresponding TON token address.\n     */\n    function exists(string memory tvmAddress) external view returns (bool);\n\n    /**\n     * @dev Get address of Cross-Chain Layer token.\n     * @param tvmAddress Corresponding TON token address.\n     */\n    function computeAddress(\n        string memory tvmAddress\n    ) external view returns (address);\n\n    /**\n     * @dev Get address of ERC721 Cross-Chain Layer token.\n     * @param tvmAddress Corresponding TON collection address.\n     */\n    function computeAddressERC721(\n        string calldata tvmAddress\n    ) external view returns (address);\n}\n"},"contracts/interfaces/IWTAC.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { IERC20 } from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\n/// @title Wrapped TAC contract interface\n/// @author TAC\n/// @notice Wrapped TAC token contract over ERC20\ninterface IWTAC is IERC20 {\n\n    event Deposit(address indexed dst, uint wad);\n    event Withdrawal(address indexed src, uint wad);\n\n    function deposit() external payable;\n    function withdraw(uint wad) external;\n}"},"contracts/interfaces/tokens/ICrossChainLayerERC20.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { IERC20 } from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport { TokenInfo } from \"../../core/Structs.sol\";\n\n\n/**\n * @title CrossChainLayerERC20\n * @dev A contract for all Cross-Chain Layer ERC20 tokens.\n */\ninterface ICrossChainLayerERC20 is IERC20 {\n\n    /**\n     * @dev Function to mint tokens\n     * @param to Address to mint tokens to\n     * @param amount Amount of tokens to mint\n     */\n    function mint(address to, uint256 amount) external;\n\n    /**\n     * @dev Function to burn tokens\n     * @param from Address to mint tokens to\n     * @param amount Amount of tokens to burn\n     */\n    function burn(address from, uint256 amount) external;\n\n    /**\n     * @dev Returns token decimals.\n     * @return uint8 Token decimals\n     */\n    function decimals() external view returns (uint8);\n\n    /**\n     * @dev Returns token info.\n     */\n    function getInfo() external view returns (TokenInfo memory);\n}\n"},"contracts/interfaces/tokens/ICrossChainLayerERC721.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { IERC721 } from \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\nimport { NFTInfo } from \"../../core/Structs.sol\";\n\n/**\n * @title ICrossChainLayerERC721\n * @dev A contract interface for all Cross-Chain Layer ERC721 tokens.\n */\ninterface ICrossChainLayerERC721 is IERC721 {\n\n    function  setBaseURI(string calldata baseURI) external;\n\n    /**\n     * @dev Function to mint tokens\n     * @param to Address to mint tokens to\n     * @param tokenId Token ID to mint\n     * @param data Additional data\n     */\n    function safeMint(address to, uint256 tokenId, bytes memory data) external;\n\n    /**\n     * @dev Function to burn tokens\n     * @param tokenId Token ID to burn\n     */\n    function burn(uint256 tokenId) external;\n\n    /**\n     * @dev Returns token info.\n     */\n    function getInfo() external view returns (NFTInfo memory);\n}\n"},"contracts/libs/SettingsConstants.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nlibrary SettingsConstants {\n\n    uint internal constant RATE_DECIMALS = 1000;\n\n    // consensus\n    /*\n        export const inGroupConsensusThresholdKey = keccak256(ethers.toUtf8Bytes(\"MerkleRootConsensusThresholdInGroup\"));\n        export const groupsConsensusThresholdKey = keccak256(ethers.toUtf8Bytes(\"MerkleRootConsensusThresholdGroups\"));\n        export const epochDelayKey = keccak256(ethers.toUtf8Bytes(\"MerkleRootEpochDelay\"));\n        export const treeDurationKey = keccak256(ethers.toUtf8Bytes(\"MerkleTreeDuration\"));\n        export const rootValidityDurationKey = keccak256(ethers.toUtf8Bytes(\"MerkleRootValidityDuration\"));\n        export const maxEpochDurationKey = keccak256(ethers.toUtf8Bytes(\"MerkleRootMaxEpochDuration\"));\n        export const assetDeployFinalizeTimeKey = keccak256(ethers.toUtf8Bytes(\"AssetDeployFinalizeTime\"));\n    */\n    bytes32 internal constant CONSENSUS_THRESHOLD_GROUPS_KEY = keccak256(\"MerkleRootConsensusThresholdGroups\");\n    bytes32 internal constant CONSENSUS_THRESHOLD_IN_GROUP_KEY = keccak256(\"MerkleRootConsensusThresholdInGroup\");\n    bytes32 internal constant EPOCH_DELAY_KEY = keccak256(\"MerkleRootEpochDelay\");\n    bytes32 internal constant TREE_DURATION_KEY = keccak256(\"MerkleTreeDuration\");\n    bytes32 internal constant VALIDITY_DURATION_KEY = keccak256(\"MerkleRootValidityDuration\");\n    bytes32 internal constant MAX_EPOCH_DURATION_KEY = keccak256(\"MerkleRootMaxEpochDuration\");\n    bytes32 internal constant ASSET_DEPLOY_FINALIZE_TIME_KEY = keccak256(\"AssetDeployFinalizeTime\");\n\n    // addresses\n    /*\n        export const crossChainLayerAddressKey = keccak256(ethers.toUtf8Bytes(\"CrossChainLayerAddress\"));\n        export const tokenUtilsAddressKey = keccak256(ethers.toUtf8Bytes(\"TokenUtilsAddress\"));\n        export const consensusAddressKey = keccak256(ethers.toUtf8Bytes(\"ConsensusAddress\"));\n    */\n    bytes32 internal constant CCL_ADDRESS_KEY = keccak256(\"CrossChainLayerAddress\");\n    bytes32 internal constant TOKEN_UTILS_ADDRESS_KEY = keccak256(\"TokenUtilsAddress\");\n    bytes32 internal constant CONSENSUS_ADDRESS_KEY = keccak256(\"ConsensusAddress\");\n\n    // misc\n    /*\n        export const nftPrefixURIKey = keccak256(ethers.toUtf8Bytes(\"NFTPrefixURI\"));\n    */\n    bytes32 internal constant NFT_PREFIX_URI_KEY = keccak256(\"NFTPrefixURI\");\n\n    /*\n        export const ftPrefixImageKey = keccak256(ethers.toUtf8Bytes(\"FTPrefixImage\"));\n    */\n    bytes32 internal constant FT_PREFIX_IMAGE_KEY = keccak256(\"FTPrefixImage\");\n}"},"contracts/libs/TokenHelperLib.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.28;\n\nimport { IERC20 } from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport { IERC165 } from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport { IERC721 } from \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\nimport { SafeERC20 } from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport { CrossChainLayerERC20 } from \"../core/tokens/CrossChainLayerERC20.sol\";\nimport { CrossChainLayerERC721 } from \"../core/tokens/CrossChainLayerERC721.sol\";\nimport { TokenAmount, NFTAmount } from \"../core/Structs.sol\";\n\n/**\n * @title TokenHelperLib\n * @dev Token utility functions\n */\nlibrary TokenHelperLib {\n\n    error InvalidNFTInterface(address);\n\n    using SafeERC20 for IERC20;\n\n    /**\n     * @dev Mint token.\n     * @param token Token amount info.\n     * @param toAddress Recipient.\n     */\n    function mint(TokenAmount memory token, address toAddress) internal {\n        if (token.amount > 0) {\n            CrossChainLayerERC20(token.evmAddress).mint(toAddress, token.amount);\n        }\n    }\n\n    /**\n     * @dev Unlock token.\n     * @param token Token amount info.\n     * @param toAddress Recipient.\n     */\n    function unlock(TokenAmount memory token, address toAddress) internal {\n        if (token.amount > 0) {\n            IERC20(token.evmAddress).safeTransfer(toAddress, token.amount);\n        }\n    }\n\n    /**\n     * @dev Burn token.\n     * @param token Token amount info.\n     */\n    function burn(TokenAmount memory token) internal {\n        if (token.amount > 0) {\n            // transfer tokens for decreasing allowance\n            IERC20(token.evmAddress).safeTransferFrom(msg.sender, address(this), token.amount);\n            CrossChainLayerERC20(token.evmAddress).burn(address(this), token.amount);\n        }\n    }\n\n    /**\n     * @dev Lock token.\n     * @param token Token amount info.\n     */\n    function lock(TokenAmount memory token) internal {\n        if (token.amount > 0) {\n            IERC20(token.evmAddress).safeTransferFrom(msg.sender, address(this), token.amount);\n        }\n    }\n\n    /* NFT */\n\n    /**\n     * @dev mint nft\n     * @param token NFT amount info\n     * @param to Recipient\n     */\n    function mintNFT(NFTAmount memory token, address to) internal {\n        // check if ERC721\n        if (IERC165(token.evmAddress).supportsInterface(type(IERC721).interfaceId)) {\n            // target must be a nft receiver contract\n            CrossChainLayerERC721(token.evmAddress).safeMint(to, token.tokenId, \"\");\n        } else {\n            revert InvalidNFTInterface(token.evmAddress);\n        }\n    }\n\n    /**\n     * @dev burn nft\n     * @param token NFT amount info\n     */\n    function burnNFT(NFTAmount memory token) internal {\n        // check if ERC721\n        if (IERC165(token.evmAddress).supportsInterface(type(IERC721).interfaceId)) {\n            // transfer token for decreasing allowance\n            // use transferFrom instead of safeTransferFrom because ccl is not a regular nft receiver\n            IERC721(token.evmAddress).transferFrom(msg.sender, address(this), token.tokenId);\n            CrossChainLayerERC721(token.evmAddress).burn(token.tokenId);\n        } else {\n            revert InvalidNFTInterface(token.evmAddress);\n        }\n    }\n\n    /**\n     * @dev unlock nft\n     * @param token NFT amount info\n     * @param to Recipient\n     */\n    function unlockNFT(NFTAmount memory token, address to) internal {\n        // check if ERC721\n        if (IERC165(token.evmAddress).supportsInterface(type(IERC721).interfaceId)) {\n            // use safeTransferFrom because target must be a nft receiver contract\n            IERC721(token.evmAddress).safeTransferFrom(address(this), to, token.tokenId);\n        } else {\n            revert InvalidNFTInterface(token.evmAddress);\n        }\n    }\n\n    /**\n     * @dev lock nft\n     * @param token NFT amount info\n     */\n    function lockNFT(NFTAmount memory token) internal {\n        // check if ERC721\n        if (IERC165(token.evmAddress).supportsInterface(type(IERC721).interfaceId)) {\n            // use transfer from instead of safeTransferFrom because ccl is not a regular nft receiver\n            IERC721(token.evmAddress).transferFrom(msg.sender, address(this), token.tokenId);\n        } else {\n            revert InvalidNFTInterface(token.evmAddress);\n        }\n    }\n}\n"},"contracts/libs/VersionLib.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { InMessageV1, OutMessageV1, TacHeaderV1, TokenAmount, TokenInfo, TVMFeeInfo, NFTAmount, NFTInfo } from \"../core/Structs.sol\";\nimport { TacProxy } from \"../proxies/TacProxy.sol\";\n\nlibrary VersionLib {\n\n    error InvalidInMessageVersion(uint256 version);\n    error InvalidOutMessageVersion(uint256 version);\n    error TargetIsNotTacProxy(address target);\n    error InvalidProxyVersion(address target, uint version);\n\n    /**\n     * @title UnionInMessage\n     * @dev Struct can be changed in future\n     */\n    struct UnionInMessage {\n        uint64 shardsKey;\n        uint64 gasLimit;\n        bytes32 operationId;\n        uint256 timestamp;\n        address target;\n        string methodName;\n        bytes arguments;\n        string caller;\n        TokenAmount evmExecutorFee;\n        address[] evmValidExecutors;\n        TokenAmount[] mint;\n        TokenAmount[] unlock;\n        TokenInfo[] meta;\n        NFTAmount[] mintNFT;\n        NFTAmount[] unlockNFT;\n        NFTInfo[] metaNFT;\n    }\n\n    /**\n     * @title UnionOutMessage\n     * @dev Struct can be changed in future\n     */\n    struct UnionOutMessage {\n        uint64 shardsKey;\n        string tvmTarget;\n        string tvmPayload;\n        uint256 tvmProtocolFee;\n        uint256 tvmExecutorFee;\n        string[] tvmValidExecutors;\n        TokenAmount[] toBridge;\n        NFTAmount[] toBridgeNFT;\n    }\n\n    function decodeInMessage(uint256 messageVersion, bytes calldata encodedMessage) internal pure returns (UnionInMessage memory) {\n        if (messageVersion == 1) {\n            InMessageV1 memory messageV1 = abi.decode(encodedMessage, (InMessageV1));\n            return UnionInMessage({\n                shardsKey: messageV1.shardsKey,\n                gasLimit: messageV1.gasLimit,\n                operationId: messageV1.operationId,\n                timestamp: messageV1.timestamp,\n                target: messageV1.target,\n                methodName: messageV1.methodName,\n                arguments: messageV1.arguments,\n                caller: messageV1.caller,\n                evmExecutorFee: messageV1.evmExecutorFee,\n                evmValidExecutors: messageV1.evmValidExecutors,\n                mint: messageV1.mint,\n                unlock: messageV1.unlock,\n                meta: messageV1.meta,\n                mintNFT: messageV1.mintNFT,\n                unlockNFT: messageV1.unlockNFT,\n                metaNFT: messageV1.metaNFT\n            });\n        }\n        else {\n            revert InvalidInMessageVersion(messageVersion);\n        }\n    }\n\n    function decodeOutMessage(uint256 messageVersion, bytes calldata encodedMessage) internal pure returns (UnionOutMessage memory) {\n        if (messageVersion == 1) {\n            OutMessageV1 memory messageV1 = abi.decode(encodedMessage, (OutMessageV1));\n            return UnionOutMessage({\n                shardsKey: messageV1.shardsKey,\n                tvmTarget: messageV1.tvmTarget,\n                tvmPayload: messageV1.tvmPayload,\n                tvmProtocolFee: messageV1.tvmProtocolFee,\n                tvmExecutorFee: messageV1.tvmExecutorFee,\n                tvmValidExecutors: messageV1.tvmValidExecutors,\n                toBridge: messageV1.toBridge,\n                toBridgeNFT: messageV1.toBridgeNFT\n            });\n        }\n        else {\n            revert InvalidOutMessageVersion(messageVersion);\n        }\n    }\n\n    function prepareTacHeader(\n        UnionInMessage calldata message,\n        bytes calldata extraData\n    ) internal view returns (bytes memory header) {\n        (bool status, bytes memory response) = address(message.target).staticcall(\n            abi.encodeWithSelector(\n                TacProxy.getVersion.selector\n            )\n        );\n        if (!status || response.length == 0) {\n            revert TargetIsNotTacProxy(message.target);\n        }\n        uint version = abi.decode(response, (uint));\n        if (version == 1) {\n            header = abi.encode(TacHeaderV1(\n                message.shardsKey,\n                message.timestamp,\n                message.operationId,\n                message.caller,\n                extraData\n            ));\n        }\n        else {\n            revert InvalidProxyVersion(message.target, version);\n        }\n    }\n}"},"contracts/proxies/TacProxy.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nabstract contract TacProxy {\n\n    error OnlyCrossChainLayer();\n\n    /**\n     * @dev Get Tac Proxy contract version.\n     * @return Contract version.\n     */\n    function getVersion() public pure virtual returns (uint256);\n\n}"},"contracts/proxies/TacProxyV1.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { TacProxy } from \"./TacProxy.sol\";\nimport { TacHeaderV1, OutMessageV1 } from \"../core/Structs.sol\";\nimport { ICrossChainLayer } from \"../interfaces/ICrossChainLayer.sol\";\n\n\nabstract contract TacProxyV1 is TacProxy {\n\n    uint256 private constant TAC_HEADER_VERSION = 1;\n    uint256 private constant TAC_OUT_MESSAGE_VERSION_1 = 1;\n\n    ICrossChainLayer private immutable _crossChainLayer;\n\n    constructor(address crossChainLayer) {\n        _crossChainLayer = ICrossChainLayer(crossChainLayer);\n    }\n\n    modifier _onlyCrossChainLayer() {\n        if (msg.sender != _getCrossChainLayerAddress()) {\n            revert OnlyCrossChainLayer();\n        }\n        _;\n    }\n\n    /**\n     * @dev Get CrossChainLayer contract address.\n     * @return CrossChainLayer contract address.\n     */\n    function _getCrossChainLayerAddress() internal view returns (address) {\n        return address(_crossChainLayer);\n    }\n\n    /**\n     * @dev Gets the current min protocol fee.\n     * @return uint256 Fee amount.\n     */\n    function getProtocolFee() internal view returns (uint256) {\n        return _crossChainLayer.getProtocolFee();\n    }\n\n    /**\n     * @dev Decode TacHeaderV1 data.\n     * @param tacHeader encoded TacHeaderV1 data.\n     * @return TacHeaderV1 struct.\n     */\n    function _decodeTacHeader(bytes calldata tacHeader) internal pure returns (TacHeaderV1 memory) {\n        return abi.decode(tacHeader, (TacHeaderV1));\n    }\n\n    /**\n     * @dev Send v1 message to TON\n     * @param outMessage v1 message to TON\n     * @param tacAmount Amount of TAC to send.\n     */\n    function _sendMessageV1(OutMessageV1 memory outMessage, uint256 tacAmount) internal {\n        _crossChainLayer.sendMessage{value: tacAmount}(TAC_OUT_MESSAGE_VERSION_1, abi.encode(outMessage));\n    }\n\n    /**\n     * @dev Get Tac Proxy contract version.\n     * @return Contract version.\n     */\n    function getVersion() public pure override returns (uint256) {\n        return TAC_HEADER_VERSION;\n    }\n\n    /*\n      All proxy functions must have the following signature:\n        function <function_name>(bytes calldata encodedTacHeader, bytes calldata arguments) external;\n    */\n}"},"contracts/proxies/TacProxyV1Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { Initializable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\n\nimport { TacProxy } from \"./TacProxy.sol\";\nimport { TacHeaderV1, OutMessageV1 } from \"../core/Structs.sol\";\nimport { ICrossChainLayer } from \"../interfaces/ICrossChainLayer.sol\";\n\n\nabstract contract TacProxyV1Upgradeable is Initializable, TacProxy {\n\n    // keccak256(abi.encode(uint256(keccak256(\"tac.storage.TacProxyV1Upgradeable\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant TacProxyV1UpgradeableStorageLocation = 0x9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d100;\n\n    uint256 private constant TAC_HEADER_VERSION = 1;\n    uint256 private constant TAC_OUT_MESSAGE_VERSION_1 = 1;\n\n    /**\n     * @dev Storage of the TacProxy contract.\n     *\n     * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n     * when using with upgradeable contracts.\n     *\n     * @custom:storage-location erc7201:tac.storage.TacProxyV1Upgradeable\n     */\n    struct TacProxyV1UpgradeableStorage {\n        address _crossChainLayer;\n    }\n\n    /**\n     * @dev Initialize the contract.\n     * @param crossChainLayer Address of the CrossChainLayer contract.\n     */\n    function __TacProxyV1Upgradeable_init(address crossChainLayer) internal onlyInitializing {\n        __TacProxyV1Upgradeable_init_unchained(crossChainLayer);\n    }\n\n    function __TacProxyV1Upgradeable_init_unchained(address crossChainLayer) internal onlyInitializing {\n        TacProxyV1UpgradeableStorage storage $ = _getTacProxyV1UpgradeableStorage();\n        $._crossChainLayer = crossChainLayer;\n    }\n\n    modifier _onlyCrossChainLayer() {\n        if (msg.sender != _getCrossChainLayerAddress()) {\n            revert OnlyCrossChainLayer();\n        }\n        _;\n    }\n\n    /**\n     * @dev Returns a pointer to the storage namespace.\n     */\n    function _getTacProxyV1UpgradeableStorage() private pure returns (TacProxyV1UpgradeableStorage storage $) {\n        assembly {\n            $.slot := TacProxyV1UpgradeableStorageLocation\n        }\n    }\n\n    function _getCrossChainLayerAddress() internal view returns (address) {\n        return _getTacProxyV1UpgradeableStorage()._crossChainLayer;\n    }\n\n    /**\n     * @dev Decode TacHeaderV1 data.\n     * @param tacHeader encoded TacHeaderV1 data.\n     * @return TacHeaderV1 struct.\n     */\n    function _decodeTacHeader(bytes calldata tacHeader) internal pure returns (TacHeaderV1 memory) {\n        return abi.decode(tacHeader, (TacHeaderV1));\n    }\n\n    /**\n     * @dev Send v1 message to TON\n     * @param outMessage v1 message to TON\n     * @param tacAmount Amount of TAC to send.\n     */\n    function _sendMessageV1(OutMessageV1 memory outMessage, uint256 tacAmount) internal {\n        ICrossChainLayer(_getCrossChainLayerAddress()).sendMessage{value: tacAmount}(TAC_OUT_MESSAGE_VERSION_1, abi.encode(outMessage));\n    }\n\n    /**\n     * @dev Get Tac Proxy contract version.\n     * @return Contract version.\n     */\n    function getVersion() public pure override returns (uint256) {\n        return TAC_HEADER_VERSION;\n    }\n\n    /*\n      All proxy functions must have the following signature:\n        function <function_name>(bytes calldata encodedTacHeader, bytes calldata arguments) external;\n    */\n}"},"contracts/smart-account/interfaces/IHooks.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\ninterface IHooks {\n    struct PreHook {\n        bool isFromSAPerspective;\n        address contractAddress;\n        uint256 value;\n        bytes data;\n    }\n\n    struct PostHook {\n        bool isFromSAPerspective;\n        address contractAddress;\n        uint256 value;\n        bytes data;\n    }\n\n    struct MainCallHook {\n        bool isFromSAPerspective;\n        address contractAddress;\n        uint256 value;\n        bytes data;\n    }\n    struct SaHooks{\n        PreHook[] preHooks;\n        PostHook[] postHooks;\n        MainCallHook mainCallHook;\n    }\n    \n}\n"},"contracts/smart-account/interfaces/ISAFactory.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { ITacInitializable } from \"../../interfaces/ITacInitializable.sol\";\n\nimport {TokenAmount, NFTAmount} from \"../../core/Structs.sol\";\ninterface ISAFactory is ITacInitializable {\n    function getOrCreateSmartAccount(\n        string memory tvmWallet\n    ) external returns (address, bool isNewAccount);\n\n    function getSmartAccountForApplication(\n        string memory tvmWallet,\n        address application\n    ) external view returns (address);\n\n    function predictSmartAccountAddress(\n        string memory tvmWallet,\n        address application\n    ) external view returns (address);\n\n    function updateBlueprint(address _newBlueprint) external;\n\n}\n"},"contracts/smart-account/interfaces/ITacSmartAccount.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport {TokenAmount, NFTAmount} from \"../../core/Structs.sol\";\ninterface ITacSmartAccount {\n    function execute(address target, uint256 value, bytes calldata data) external payable returns(bytes memory);\n    function executeUnsafe(address target, uint256 value, bytes calldata data) external payable returns(bool success, bytes memory returnData);\n    function delegatecall(address target, bytes calldata data) external returns(bool success, bytes memory returnData);\n    function createOneTimeTicket(address caller) external;\n    function revokeOneTimeTicket(address caller) external;\n    function multicall(address[] calldata targets, uint256[] calldata values, bytes[] calldata data) external payable returns(bytes[] memory);\n    function approve(address token, address to, uint256 amount) external;\n}\n"},"contracts/smart-account/libs/SaHelper.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport {IHooks} from \"../interfaces/IHooks.sol\";\nimport {ITacSmartAccount} from \"../interfaces/ITacSmartAccount.sol\";\nimport {TokenAmount, NFTAmount} from \"../../core/Structs.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\nlibrary SaHelper {\n    function executePreHooks(address sa, IHooks.SaHooks memory hooks) internal returns(bytes[] memory) {\n        IHooks.PreHook[] memory preHooks = hooks.preHooks;\n        bytes[] memory results = new bytes[](preHooks.length);\n        for (uint256 i = 0; i < preHooks.length; i++) {\n            if (preHooks[i].isFromSAPerspective) {\n                results[i] = ITacSmartAccount(sa).execute(preHooks[i].contractAddress, preHooks[i].value, preHooks[i].data);\n            } else {\n                results[i] = _selfCall(preHooks[i].contractAddress, preHooks[i].value, preHooks[i].data);\n            }\n        }\n        return results;\n    }\n\n    function executePostHooks(address sa, IHooks.SaHooks memory hooks) internal returns(bytes[] memory) {\n        IHooks.PostHook[] memory postHooks = hooks.postHooks;\n        bytes[] memory results = new bytes[](postHooks.length);\n        for (uint256 i = 0; i < postHooks.length; i++) {\n            if (postHooks[i].isFromSAPerspective) {\n                results[i] = ITacSmartAccount(sa).execute(postHooks[i].contractAddress, postHooks[i].value, postHooks[i].data);\n            } else {\n                results[i] = _selfCall(postHooks[i].contractAddress, postHooks[i].value, postHooks[i].data);\n            }\n        }\n        return results;\n    }\n\n    function executeMainCall(address sa, IHooks.SaHooks memory hooks) internal returns(bytes memory) {\n        IHooks.MainCallHook memory mainCallHook = hooks.mainCallHook;\n        if (mainCallHook.isFromSAPerspective) {\n            return ITacSmartAccount(sa).execute(mainCallHook.contractAddress, mainCallHook.value, mainCallHook.data);\n        } else {\n            return _selfCall(mainCallHook.contractAddress, mainCallHook.value, mainCallHook.data);\n        }\n    }\n\n    function _selfCall(address to, uint256 value, bytes memory data) internal returns(bytes memory) {\n        (bool success, bytes memory returnData) = to.call{value: value}(data);\n        require(success, \"Self call failed\");\n        return returnData;\n    }\n}\n"},"contracts/smart-account/TacSAFactory.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.28;\n\nimport {BeaconProxy} from \"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol\";\nimport {UpgradeableBeacon} from \"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol\";\nimport {Ownable2StepUpgradeable} from \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\nimport { UUPSUpgradeable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\nimport {TacSmartAccount} from \"./TacSmartAccount.sol\";\nimport {ISAFactory} from \"./interfaces/ISAFactory.sol\";\nimport {TacInitializable} from \"../core/TacInitializable.sol\";\n\ncontract TacSAFactory is TacInitializable, Ownable2StepUpgradeable, UUPSUpgradeable, ISAFactory {\n    UpgradeableBeacon public beacon;\n    mapping(address application => mapping(bytes32 id => address smartAccount)) public smartAccounts;\n\n    event SmartAccountCreated(address indexed smartAccountAddress, address indexed application, string tvmWallet);\n\n    function initialize(\n        address _initBlueprint\n    ) external initializer {\n        __Ownable2Step_init();\n        __Ownable_init(msg.sender);\n        __UUPSUpgradeable_init();\n        beacon = new UpgradeableBeacon(_initBlueprint, address(this));\n    }\n\n    function _authorizeUpgrade(address newImplementation)\n        internal\n        override\n        onlyOwner\n    {}\n\n    function getOrCreateSmartAccount(\n        string memory tvmWallet\n    ) external returns (address, bool isNewAccount) {\n        bytes32 id = keccak256(abi.encodePacked(tvmWallet));\n        if (smartAccounts[msg.sender][id] != address(0)) {\n            return (smartAccounts[msg.sender][id], false);\n        }\n        address account = _createSmartAccount(tvmWallet, msg.sender);\n        smartAccounts[msg.sender][id] = account;\n        return (account, true);\n    }\n\n    function getSmartAccountForApplication(\n        string memory tvmWallet,\n        address application\n    ) external view returns (address) {\n        bytes32 id = keccak256(abi.encodePacked(tvmWallet));\n        if (smartAccounts[application][id] == address(0)) {\n            return predictSmartAccountAddress(tvmWallet, application);\n        }\n        return smartAccounts[application][id];\n    }\n\n    function predictSmartAccountAddress(\n        string memory tvmWallet,\n        address application\n    ) public view returns (address) {\n        bytes32 id = keccak256(abi.encodePacked(tvmWallet));\n        if (smartAccounts[application][id] != address(0)) {\n            return smartAccounts[application][id];\n        }\n        \n        // Predict the address using the same logic as _createSmartAccount\n        bytes memory bytecode = abi.encodePacked(\n            type(BeaconProxy).creationCode,\n            abi.encode(\n                address(beacon),\n                abi.encodeWithSelector(\n                    TacSmartAccount.initialize.selector,\n                    application\n                )\n            )\n        );\n        \n        bytes32 salt = keccak256(abi.encodePacked(application, id));\n        return address(uint160(uint256(keccak256(abi.encodePacked(\n            bytes1(0xff),\n            address(this),\n            salt,\n            keccak256(bytecode)\n        )))));\n    }\n\n    function _createSmartAccount(string memory tvmWallet, address application) internal returns (address) {\n        bytes32 id = keccak256(abi.encodePacked(tvmWallet));\n        bytes32 salt = keccak256(abi.encodePacked(application, id));\n        BeaconProxy proxy = new BeaconProxy{salt: salt}(\n            address(beacon),\n            abi.encodeWithSelector(\n                TacSmartAccount.initialize.selector,\n                application\n            )\n        );\n        emit SmartAccountCreated(address(proxy), application, tvmWallet);\n        return address(proxy);\n    }\n\n\n    function updateBlueprint(address _newBlueprint) external onlyOwner {\n        beacon.upgradeTo(_newBlueprint);\n    }\n}"},"contracts/smart-account/TacSmartAccount.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.28;\n\nimport {Initializable} from \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {SafeERC20} from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport {IERC721Receiver} from \"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\";\n\n\ncontract TacSmartAccount is Initializable, IERC721Receiver {\n\n    using SafeERC20 for IERC20;\n\n    address public owner;\n\n    event Executed(address indexed target, uint256 value, bytes data);\n\n    mapping(address caller => bool ticket) public oneTimeTickets;\n\n    error ExecutionFailed(address target, uint256 value, bytes data, bytes returnData);\n    error AccessDenied(address caller);\n\n    modifier onlyOwnerOrTicket() {\n        if (oneTimeTickets[msg.sender]) {\n            oneTimeTickets[msg.sender] = false;\n        } else {\n            require(msg.sender == owner, AccessDenied(msg.sender));\n        }\n        _;\n    }\n\n    modifier onlyOwner() {\n        require(msg.sender == owner, AccessDenied(msg.sender));\n        _;\n    }\n\n    constructor() {\n        _disableInitializers();\n    }\n\n    function initialize(address _owner) public initializer {\n        owner = _owner;\n    }\n\n    function execute(address target, uint256 value, bytes calldata data) external payable onlyOwnerOrTicket returns(bytes memory) {\n        (bool success, bytes memory returnData) = target.call{value: value}(data);\n        require(success, ExecutionFailed(target, value, data, returnData));\n        emit Executed(target, value, data);\n        return returnData;\n    }\n\n    function executeUnsafe(address target, uint256 value, bytes calldata data) external payable onlyOwnerOrTicket returns(bool success, bytes memory returnData)  {\n        (success, returnData) = target.call{value: value}(data);\n        emit Executed(target, value, data);\n    }\n\n    function delegatecall(address target, bytes calldata data) external onlyOwner returns(bool success, bytes memory returnData) {\n        (success, returnData) = target.delegatecall(data);\n        require(success, ExecutionFailed(target, 0, data, returnData));\n        emit Executed(target, 0, data);\n    }\n\n    function createOneTimeTicket(address caller) external onlyOwner {\n        oneTimeTickets[caller] = true;\n    }\n\n    function revokeOneTimeTicket(address caller) external onlyOwner {\n        oneTimeTickets[caller] = false;\n    }\n\n    function approve(IERC20 token, address to, uint256 amount) external onlyOwnerOrTicket{\n        token.forceApprove(to, amount);\n    }\n\n    function multicall(address[] calldata targets, uint256[] calldata values, bytes[] calldata data) external payable onlyOwnerOrTicket returns(bytes[] memory) {\n        bytes[] memory results = new bytes[](targets.length);\n        for (uint256 i = 0; i < targets.length; i++) {\n            (bool success, bytes memory returnData) = targets[i].call{value: values[i]}(data[i]);\n            require(success, ExecutionFailed(targets[i], values[i], data[i], returnData));\n            results[i] = returnData;\n        }\n        return results;\n    }\n\n    receive() external payable {}\n\n    function onERC721Received(\n        address,\n        address,\n        uint256,\n        bytes calldata\n    ) external pure override returns (bytes4) {\n        return this.onERC721Received.selector;\n    }\n}"},"contracts/test/interfaces/IMockTacSmartAccount.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport {TokenAmount, NFTAmount} from \"../../core/Structs.sol\";\ninterface IMockTacSmartAccount {\n    function upgradedToMockBluePrint() external pure returns(bool);\n}\n"},"contracts/test/MerkleTreeUtils.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { IMerkleTreeUtils } from \"../interfaces/IMerkleTreeUtils.sol\";\nimport { MerkleProof } from \"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\";\n\nimport { InMessageV1 } from \"../core/Structs.sol\";\n\n\n/**\n * @title MerkleTreeUtils\n * @dev A contract testing merkle tree utils.\n */\ncontract MerkleTreeUtils is IMerkleTreeUtils {\n    /**\n     * @dev Calculates message v1 hash.\n     * @param message Message v1.\n     */\n    function hashInMessageV1(InMessageV1 calldata message) external pure returns (bytes32) {\n        return keccak256(bytes.concat(keccak256(abi.encode(message))));\n    }\n\n    /**\n     * @dev Function to calculate the Merkle root from the message hash and proof.\n     * @param objectHash Leaf object hash to validate.\n     * @param merkleProof Merkle proof.\n     */\n    function checkMerkleProof(bytes32 objectHash, bytes32[] calldata merkleProof) external pure returns (bytes32) {\n        return MerkleProof.processProofCalldata(merkleProof, objectHash);\n    }\n}\n"},"contracts/test/MockBluePrint.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.28;\n\nimport {Initializable} from \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {TransferHelper} from \"@uniswap/lib/contracts/libraries/TransferHelper.sol\";\n\n\ncontract MockBluePrint is Initializable {\n    address public owner;\n\n    event Executed(address indexed target, uint256 value, bytes data);\n\n    mapping(address caller => bool ticket) public oneTimeTickets;\n\n    error ExecutionFailed(address target, uint256 value, bytes data, bytes returnData);\n    error AccessDenied(address caller);\n\n    modifier onlyOwnerOrTicket() {\n        if (oneTimeTickets[msg.sender]) {\n            oneTimeTickets[msg.sender] = false;\n        } else {\n            require(msg.sender == owner, AccessDenied(msg.sender));\n        }\n        _;\n    }\n\n    modifier onlyOwner() {\n        require(msg.sender == owner, AccessDenied(msg.sender));\n        _;\n    }\n\n    constructor() {\n        _disableInitializers();\n    }\n\n    function initialize(address _owner) public initializer {\n        owner = _owner;\n    }\n\n    function execute(address target, uint256 value, bytes calldata data) external payable onlyOwnerOrTicket returns(bytes memory) {\n        (bool success, bytes memory returnData) = target.call{value: value}(data);\n        require(success, ExecutionFailed(target, value, data, returnData));\n        emit Executed(target, value, data);\n        return returnData;\n    }\n\n    function executeUnsafe(address target, uint256 value, bytes calldata data) external payable onlyOwnerOrTicket returns(bool success, bytes memory returnData)  {\n        (success, returnData) = target.call{value: value}(data);\n        emit Executed(target, value, data);\n    }\n\n    function delegatecall(address target, bytes calldata data) external onlyOwner returns(bool success, bytes memory returnData) {\n        (success, returnData) = target.delegatecall(data);\n        require(success, ExecutionFailed(target, 0, data, returnData));\n        emit Executed(target, 0, data);\n    }\n\n    function createOneTimeTicket(address caller) external onlyOwner {\n        oneTimeTickets[caller] = true;\n    }\n\n    function revokeOneTimeTicket(address caller) external onlyOwner {\n        oneTimeTickets[caller] = false;\n    }\n\n    function approve(address token, address to, uint256 amount) external onlyOwnerOrTicket{\n        TransferHelper.safeApprove(token, to, amount);\n    }\n\n    function multicall(address[] calldata targets, uint256[] calldata values, bytes[] calldata data) external onlyOwnerOrTicket returns(bytes[] memory) {\n        bytes[] memory results = new bytes[](targets.length);\n        for (uint256 i = 0; i < targets.length; i++) {\n            (bool success, bytes memory returnData) = targets[i].call{value: values[i]}(data[i]);\n            require(success, ExecutionFailed(targets[i], values[i], data[i], returnData));\n            results[i] = returnData;\n        }\n        return results;\n    }\n\n    function upgradedToMockBluePrint() external pure returns(bool) {\n        return true;\n    }\n\n    receive() external payable {}\n}"},"contracts/test/MyProxyUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { Initializable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport { UUPSUpgradeable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\nimport { OwnableUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\n\nimport { IERC20 } from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\nimport { ICrossChainLayer } from \"../interfaces/ICrossChainLayer.sol\";\nimport { TacProxyV1Upgradeable } from \"../proxies/TacProxyV1Upgradeable.sol\";\nimport { TVMFeeInfo, OutMessageV1, TacHeaderV1, TokenAmount, NFTAmount } from \"../core/Structs.sol\";\n\ncontract MyProxyUpgradeable is Initializable, OwnableUpgradeable, UUPSUpgradeable, TacProxyV1Upgradeable {\n\n    function initialize(address owner, address crossChainLayer) public initializer {\n        __UUPSUpgradeable_init();\n        __Ownable_init(owner);\n        __TacProxyV1Upgradeable_init(crossChainLayer);\n    }\n\n    function _authorizeUpgrade(address) internal override onlyOwner {}\n\n    function myProxyFunction(bytes calldata tacHeader, bytes calldata arguments) external _onlyCrossChainLayer() {\n        // Decode the header\n        TacHeaderV1 memory header = _decodeTacHeader(tacHeader);\n\n        // Decode the token list\n        TokenAmount[] memory receivedTokens = abi.decode(arguments, (TokenAmount[]));\n\n        // there you can call dapp contract\n        // dappContract.myFunction(receivedTokens);\n\n        // Approve and send tokens back through the cross-chain layer\n        for (uint i = 0; i < receivedTokens.length; i++) {\n            IERC20(receivedTokens[i].evmAddress).approve(\n                _getCrossChainLayerAddress(),\n                receivedTokens[i].amount\n            );\n        }\n\n        // send tokens back to TON\n        _sendMessageV1(\n            OutMessageV1(\n                header.shardsKey,\n                header.tvmCaller,\n                \"\",\n                0, \n                0,\n                new string[](0),\n                receivedTokens,\n                new NFTAmount[](0)\n            ),\n            0\n        );\n    }\n}\n"},"contracts/test/TestERC721Token.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { ERC721 } from \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\n\ncontract TestERC721Token is ERC721 {\n\n    string private __baseURI;\n\n    constructor(string memory _name, string memory _symbol, string memory baseURI) ERC721(_name, _symbol) {\n        __baseURI = baseURI;\n    }\n\n    function mint(address _to, uint256 _tokenId) external {\n        _mint(_to, _tokenId);\n    }\n\n    function _baseURI() internal view override returns (string memory) {\n        return __baseURI;\n    }\n}"},"contracts/test/TestProxy.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { IERC20 } from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport { IERC721 } from \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\nimport { IERC721Receiver } from \"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\";\n\nimport { ICrossChainLayer } from \"../interfaces/ICrossChainLayer.sol\";\nimport { TacProxyV1 } from \"../proxies/TacProxyV1.sol\";\nimport { OutMessageV1, TacHeaderV1, TokenAmount, TVMFeeInfo, NFTAmount } from \"../core/Structs.sol\";\n\ncontract TestProxy is TacProxyV1, IERC721Receiver {\n    uint cnt;\n\n    event Receive(uint256 value);\n    event Invoke(uint256 value, uint64 shardsKey, uint256 timestamp, bytes32 operationId, string tvmCaller, bytes extraData);\n    event InvokeWithCallback(uint64 shardsKey, uint256 timestamp, bytes32 operationId, string tvmCaller, bytes extraData, TokenAmount[] receivedTokens);\n\n    error MockError(string message);\n    error NotEnoughProtocolFee(uint256 attachedFee, uint256 requiredFee);\n    error NotEnoughValue(uint256 attachedValue, uint256 requiredValue);\n\n\n    constructor(address _crossChainLayer) TacProxyV1(_crossChainLayer) {}\n\n    receive() external payable {\n        emit Receive(msg.value);\n    }\n\n    function invoke(bytes calldata tacHeader, bytes calldata arguments) external _onlyCrossChainLayer() {\n        TacHeaderV1 memory header = _decodeTacHeader(tacHeader);\n        uint256 a = abi.decode(arguments, (uint256));\n        cnt += a;\n        emit Invoke(a, header.shardsKey, header.timestamp, header.operationId, header.tvmCaller, header.extraData);\n    }\n\n    function invokeWithCallback(bytes calldata tacHeader, bytes calldata arguments) external {\n        // decode header\n        TacHeaderV1 memory header = _decodeTacHeader(tacHeader);\n        // decode arguments\n        TokenAmount[] memory receivedTokens = abi.decode(arguments, (TokenAmount[]));\n\n        emit InvokeWithCallback(header.shardsKey, header.timestamp, header.operationId, header.tvmCaller, header.extraData, receivedTokens);\n\n        // approve to bridge\n        for (uint i = 0; i < receivedTokens.length; i++) {\n            IERC20(receivedTokens[i].evmAddress).approve(_getCrossChainLayerAddress(), receivedTokens[i].amount);\n        }\n\n        // bridge received tokens back to TON\n        _sendMessageV1(\n            OutMessageV1(\n                header.shardsKey,\n                header.tvmCaller,\n                \"\",\n                0,\n                0,\n                new string[](0),\n                receivedTokens,\n                new NFTAmount[](0)\n            ),\n            0\n        );\n    }\n\n    function sendMultiplyCallbackToCrossChainLayer(bytes calldata header, bytes calldata arguments) external {\n        TacHeaderV1 memory tacHeader = _decodeTacHeader(header);\n        TokenAmount[] memory tokens = abi.decode(arguments, (TokenAmount[]));\n\n        uint i;\n        // send out message for each received token\n        for (; i < tokens.length;) {\n            TokenAmount memory receivedToken = tokens[i];\n            IERC20(receivedToken.evmAddress).approve(_getCrossChainLayerAddress(), receivedToken.amount);\n            TokenAmount[] memory toBridge = new TokenAmount[](1);\n            toBridge[0] = receivedToken;\n\n            OutMessageV1 memory outMessage = OutMessageV1(\n                tacHeader.shardsKey,\n                tacHeader.tvmCaller,\n                \"\",\n                0,\n                0,\n                new string[](0),\n                toBridge,\n                new NFTAmount[](0)\n            );\n            _sendMessageV1(outMessage, 0);\n\n            unchecked {\n                i++;\n            }\n        }\n\n    }\n\n    function bridgeTokensToTON(OutMessageV1 calldata outMessage) payable external {\n        // approve to bridge\n        for (uint i = 0; i < outMessage.toBridge.length; i++) {\n            IERC20(outMessage.toBridge[i].evmAddress).transferFrom(msg.sender, address(this), outMessage.toBridge[i].amount);\n            IERC20(outMessage.toBridge[i].evmAddress).approve(_getCrossChainLayerAddress(), outMessage.toBridge[i].amount);\n        }\n\n        uint256 protocolFee = getProtocolFee();\n        if (outMessage.tvmProtocolFee < protocolFee) {\n            revert NotEnoughProtocolFee(outMessage.tvmProtocolFee, protocolFee);\n        }\n\n        if (outMessage.tvmProtocolFee + outMessage.tvmExecutorFee > msg.value) {\n            revert NotEnoughValue(msg.value, outMessage.tvmProtocolFee + outMessage.tvmExecutorFee);\n        }\n\n        // bridge received tokens back to TON\n        _sendMessageV1(\n            outMessage,\n            msg.value\n        );\n    }\n\n    function mockWithCustomError(bytes calldata, bytes calldata arguments) external {\n        string memory message = abi.decode(arguments, (string));\n        cnt = 0;\n        revert MockError(message);\n    }\n\n    function mockWithDefaultError(bytes calldata, bytes calldata arguments) external {\n        cnt = 0;\n        string memory message = abi.decode(arguments, (string));\n        require(false, message);\n\n    }\n\n    function onERC721Received(\n        address,\n        address,\n        uint256,\n        bytes calldata\n    ) external pure returns (bytes4) {\n        return this.onERC721Received.selector;\n    }\n\n    function receiveNFT(bytes calldata tacHeader, bytes calldata arguments) external {\n        NFTAmount[] memory nfts = abi.decode(arguments, (NFTAmount[]));\n        TacHeaderV1 memory header = _decodeTacHeader(tacHeader);\n\n        for (uint i; i < nfts.length; i++) {\n            IERC721(nfts[i].evmAddress).approve(_getCrossChainLayerAddress(), nfts[i].tokenId);\n        }\n\n        OutMessageV1 memory outMessage = OutMessageV1(\n            header.shardsKey,\n            header.tvmCaller,\n            \"\",\n            0,\n            0,\n            new string[](0),\n            new TokenAmount[](0),\n            nfts\n        );\n        _sendMessageV1(outMessage, 0);\n    }\n\n    function getValue() public view returns (uint) {\n        return cnt;\n    }\n\n    function emptyFunction(bytes calldata,bytes calldata) external view {\n    }\n}\n"},"contracts/test/TestSmartAccountProxyUser.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport {SaHelper} from \"../smart-account/libs/SaHelper.sol\";\nimport {IHooks} from \"../smart-account/interfaces/IHooks.sol\";\nimport {TacProxyV1Upgradeable} from \"../proxies/TacProxyV1Upgradeable.sol\";\nimport {UUPSUpgradeable} from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\nimport {OwnableUpgradeable} from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\nimport {TacSAFactory} from \"../smart-account/TacSAFactory.sol\";\nimport {TacHeaderV1, TokenAmount, NFTAmount, OutMessageV1} from \"../core/Structs.sol\";\nimport {TransferHelper} from \"@uniswap/lib/contracts/libraries/TransferHelper.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {IMockTacSmartAccount} from \"./interfaces/IMockTacSmartAccount.sol\";\nimport {ERC721Upgradeable} from \"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\";\n\nimport {ITacSmartAccount} from \"../smart-account/interfaces/ITacSmartAccount.sol\";\n\ncontract TestSmartAccountProxyUser is UUPSUpgradeable, TacProxyV1Upgradeable, ERC721Upgradeable {\n\n    TacSAFactory public tacSAFactory;\n    uint256 public counter;\n    bool public mainCallExecuted;\n    address public tokenToBridge;\n    address public user;\n    struct MainCallStruct{\n        uint256 value;\n    }\n    event Incremented(uint256 indexed count, address indexed sender);\n    function initialize(\n        address _crossChainLayer,\n        address _tacSAFactory\n    ) external initializer {\n        __TacProxyV1Upgradeable_init(_crossChainLayer);\n        __UUPSUpgradeable_init();        \n        tacSAFactory = TacSAFactory(_tacSAFactory);\n    }\n\n    function _authorizeUpgrade(\n        address newImplementation\n    ) internal override {}\n    \n    function test(bytes calldata tacHeader, bytes calldata arguments) public _onlyCrossChainLayer {\n\n        TacHeaderV1 memory header = _decodeTacHeader(tacHeader);\n        (address createdUser,) = tacSAFactory.getOrCreateSmartAccount(header.tvmCaller);\n\n        (IHooks.SaHooks memory hooks) = abi.decode(arguments, (IHooks.SaHooks));\n        SaHelper.executePreHooks(createdUser, hooks);\n        SaHelper.executeMainCall(createdUser, hooks);\n        SaHelper.executePostHooks(createdUser, hooks);\n        TokenAmount[] memory tokens = new TokenAmount[](1);\n        tokens[0] = TokenAmount({\n            evmAddress: tokenToBridge,\n            amount: IERC20(tokenToBridge).balanceOf(address(this))\n        });\n        _bridgeTokens(tacHeader, tokens, \"payload\");\n    }\n\n    function mintAndSafeTransferCheck(bytes calldata tacHeader, bytes calldata) public _onlyCrossChainLayer {\n        TacHeaderV1 memory header = _decodeTacHeader(tacHeader);\n        (address createdUser,) = tacSAFactory.getOrCreateSmartAccount(header.tvmCaller);\n        \n        _safeMint(createdUser, 0);        \n    }\n\n    function increment() public {\n        counter++;\n        emit Incremented(counter, msg.sender);\n    }\n\n    function mainCall(uint256, address _tokenToBrdige) public {\n        mainCallExecuted = true;\n        tokenToBridge = _tokenToBrdige;\n        user = msg.sender;\n    }\n\n    function checkBlueprint(address _user) public pure returns(bool) {\n        return IMockTacSmartAccount(_user).upgradedToMockBluePrint();\n    }\n\n    /// @notice Bridges tokens to the cross-chain layer\n    /// @param tacHeader TAC header data\n    /// @param tokens Array of token amounts to bridge\n    /// @param payload Additional payload data\n    function _bridgeTokens(\n        bytes calldata tacHeader,\n        TokenAmount[] memory tokens,\n        string memory payload\n    ) private {\n        for (uint256 i = 0; i < tokens.length; i++) {\n            TransferHelper.safeApprove(\n                tokens[i].evmAddress,\n                _getCrossChainLayerAddress(),\n                tokens[i].amount\n            );\n        }\n\n        TacHeaderV1 memory header = _decodeTacHeader(tacHeader);\n        OutMessageV1 memory message = OutMessageV1({\n            shardsKey: header.shardsKey,\n            tvmTarget: header.tvmCaller,\n            tvmPayload: payload,\n            tvmProtocolFee: 0,\n            tvmExecutorFee: 0,\n            tvmValidExecutors: new string[](0),\n            toBridge: tokens,\n            toBridgeNFT: new NFTAmount[](0)\n        });\n\n        _sendMessageV1(message, address(this).balance);\n    }\n    \n}\n"},"contracts/test/TestToken.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract TestToken is ERC20 {\n    constructor(string memory _name, string memory _symbol) ERC20(_name, _symbol) {}\n\n    function mint(address _to, uint256 _amount) external {\n        _mint(_to, _amount);\n    }\n}"},"contracts/WTAC.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport { ReentrancyGuard } from \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\nimport { IWTAC } from \"./interfaces/IWTAC.sol\";\n\n/// @title Wrapped TAC contract\n/// @author TAC\n/// @notice Wrapped TAC token contract over ERC20\ncontract WTAC is ERC20, ReentrancyGuard, IWTAC {\n\n    constructor() ERC20(\"Wrapped TAC\", \"WTAC\") {}\n\n    receive() external payable {\n        deposit();\n    }\n\n    function deposit() public payable nonReentrant {\n        require(msg.value > 0, \"Deposit value must be greater than 0\");\n        _mint(msg.sender, msg.value);\n        emit Deposit(msg.sender, msg.value);\n    }\n\n    function withdraw(uint wad) public nonReentrant {\n        require(balanceOf(msg.sender) >= wad, \"Insufficient balance\");\n        _burn(msg.sender, wad);\n        (bool success,) = address(msg.sender).call{value: wad}(\"\");\n        require(success, \"Withdrawal failed\");\n        emit Withdrawal(msg.sender, wad);\n    }\n}"}},"settings":{"optimizer":{"enabled":true,"runs":200},"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","storageLayout"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","exportedSymbols":{"AccessControlUpgradeable":[362],"ContextUpgradeable":[2873],"ERC165Upgradeable":[2913],"IAccessControl":[2996],"Initializable":[948]},"id":363,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:0"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":363,"sourceUnit":2997,"src":"134:81:0","symbolAliases":[{"foreign":{"id":2,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2996,"src":"142:14:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":363,"sourceUnit":2874,"src":"216:67:0","symbolAliases":[{"foreign":{"id":4,"name":"ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2873,"src":"224:18:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","file":"../utils/introspection/ERC165Upgradeable.sol","id":7,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":363,"sourceUnit":2914,"src":"284:79:0","symbolAliases":[{"foreign":{"id":6,"name":"ERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2913,"src":"292:17:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":9,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":363,"sourceUnit":949,"src":"364:63:0","symbolAliases":[{"foreign":{"id":8,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"372:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":11,"name":"Initializable","nameLocations":["2136:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"2136:13:0"},"id":12,"nodeType":"InheritanceSpecifier","src":"2136:13:0"},{"baseName":{"id":13,"name":"ContextUpgradeable","nameLocations":["2151:18:0"],"nodeType":"IdentifierPath","referencedDeclaration":2873,"src":"2151:18:0"},"id":14,"nodeType":"InheritanceSpecifier","src":"2151:18:0"},{"baseName":{"id":15,"name":"IAccessControl","nameLocations":["2171:14:0"],"nodeType":"IdentifierPath","referencedDeclaration":2996,"src":"2171:14:0"},"id":16,"nodeType":"InheritanceSpecifier","src":"2171:14:0"},{"baseName":{"id":17,"name":"ERC165Upgradeable","nameLocations":["2187:17:0"],"nodeType":"IdentifierPath","referencedDeclaration":2913,"src":"2187:17:0"},"id":18,"nodeType":"InheritanceSpecifier","src":"2187:17:0"}],"canonicalName":"AccessControlUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":10,"nodeType":"StructuredDocumentation","src":"429:1660:0","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role."},"fullyImplemented":true,"id":362,"linearizedBaseContracts":[362,2913,8493,2996,2873,948],"name":"AccessControlUpgradeable","nameLocation":"2108:24:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControlUpgradeable.RoleData","id":25,"members":[{"constant":false,"id":22,"mutability":"mutable","name":"hasRole","nameLocation":"2270:7:0","nodeType":"VariableDeclaration","scope":25,"src":"2237:40:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":21,"keyName":"account","keyNameLocation":"2253:7:0","keyType":{"id":19,"name":"address","nodeType":"ElementaryTypeName","src":"2245:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2237:32:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20,"name":"bool","nodeType":"ElementaryTypeName","src":"2264:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":24,"mutability":"mutable","name":"adminRole","nameLocation":"2295:9:0","nodeType":"VariableDeclaration","scope":25,"src":"2287:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2287:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"2218:8:0","nodeType":"StructDefinition","scope":362,"src":"2211:100:0","visibility":"public"},{"constant":true,"functionSelector":"a217fddf","id":28,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2341:18:0","nodeType":"VariableDeclaration","scope":362,"src":"2317:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2317:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":27,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:4:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"canonicalName":"AccessControlUpgradeable.AccessControlStorage","documentation":{"id":29,"nodeType":"StructuredDocumentation","src":"2374:71:0","text":"@custom:storage-location erc7201:openzeppelin.storage.AccessControl"},"id":35,"members":[{"constant":false,"id":34,"mutability":"mutable","name":"_roles","nameLocation":"2522:6:0","nodeType":"VariableDeclaration","scope":35,"src":"2488:40:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)"},"typeName":{"id":33,"keyName":"role","keyNameLocation":"2504:4:0","keyType":{"id":30,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2496:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2488:33:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32,"nodeType":"UserDefinedTypeName","pathNode":{"id":31,"name":"RoleData","nameLocations":["2512:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2512:8:0"},"referencedDeclaration":25,"src":"2512:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$25_storage_ptr","typeString":"struct AccessControlUpgradeable.RoleData"}}},"visibility":"internal"}],"name":"AccessControlStorage","nameLocation":"2457:20:0","nodeType":"StructDefinition","scope":362,"src":"2450:85:0","visibility":"public"},{"constant":true,"id":38,"mutability":"constant","name":"AccessControlStorageLocation","nameLocation":"2683:28:0","nodeType":"VariableDeclaration","scope":362,"src":"2658:122:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2658:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830326464376263376465633464636565646461373735653538646435343165303861313136633663353338313563306264303238313932663762363236383030","id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2714:66:0","typeDescriptions":{"typeIdentifier":"t_rational_1295953201772911215391058989745868821651057887752387839782086074958115661824_by_1","typeString":"int_const 1295...(68 digits omitted)...1824"},"value":"0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800"},"visibility":"private"},{"body":{"id":45,"nodeType":"Block","src":"2877:87:0","statements":[{"AST":{"nativeSrc":"2896:62:0","nodeType":"YulBlock","src":"2896:62:0","statements":[{"nativeSrc":"2910:38:0","nodeType":"YulAssignment","src":"2910:38:0","value":{"name":"AccessControlStorageLocation","nativeSrc":"2920:28:0","nodeType":"YulIdentifier","src":"2920:28:0"},"variableNames":[{"name":"$.slot","nativeSrc":"2910:6:0","nodeType":"YulIdentifier","src":"2910:6:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":42,"isOffset":false,"isSlot":true,"src":"2910:6:0","suffix":"slot","valueSize":1},{"declaration":38,"isOffset":false,"isSlot":false,"src":"2920:28:0","valueSize":1}],"id":44,"nodeType":"InlineAssembly","src":"2887:71:0"}]},"id":46,"implemented":true,"kind":"function","modifiers":[],"name":"_getAccessControlStorage","nameLocation":"2796:24:0","nodeType":"FunctionDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[],"src":"2820:2:0"},"returnParameters":{"id":43,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42,"mutability":"mutable","name":"$","nameLocation":"2874:1:0","nodeType":"VariableDeclaration","scope":46,"src":"2845:30:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":41,"nodeType":"UserDefinedTypeName","pathNode":{"id":40,"name":"AccessControlStorage","nameLocations":["2845:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":35,"src":"2845:20:0"},"referencedDeclaration":35,"src":"2845:20:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"src":"2844:32:0"},"scope":362,"src":"2787:177:0","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":56,"nodeType":"Block","src":"3181:44:0","statements":[{"expression":{"arguments":[{"id":52,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49,"src":"3202:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":51,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[129,150],"referencedDeclaration":129,"src":"3191:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":53,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3191:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54,"nodeType":"ExpressionStatement","src":"3191:16:0"},{"id":55,"nodeType":"PlaceholderStatement","src":"3217:1:0"}]},"documentation":{"id":47,"nodeType":"StructuredDocumentation","src":"2970:174:0","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role."},"id":57,"name":"onlyRole","nameLocation":"3158:8:0","nodeType":"ModifierDefinition","parameters":{"id":50,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49,"mutability":"mutable","name":"role","nameLocation":"3175:4:0","nodeType":"VariableDeclaration","scope":57,"src":"3167:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3167:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3166:14:0"},"src":"3149:76:0","virtual":false,"visibility":"internal"},{"body":{"id":62,"nodeType":"Block","src":"3289:7:0","statements":[]},"id":63,"implemented":true,"kind":"function","modifiers":[{"id":60,"kind":"modifierInvocation","modifierName":{"id":59,"name":"onlyInitializing","nameLocations":["3272:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"3272:16:0"},"nodeType":"ModifierInvocation","src":"3272:16:0"}],"name":"__AccessControl_init","nameLocation":"3240:20:0","nodeType":"FunctionDefinition","parameters":{"id":58,"nodeType":"ParameterList","parameters":[],"src":"3260:2:0"},"returnParameters":{"id":61,"nodeType":"ParameterList","parameters":[],"src":"3289:0:0"},"scope":362,"src":"3231:65:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":68,"nodeType":"Block","src":"3370:7:0","statements":[]},"id":69,"implemented":true,"kind":"function","modifiers":[{"id":66,"kind":"modifierInvocation","modifierName":{"id":65,"name":"onlyInitializing","nameLocations":["3353:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"3353:16:0"},"nodeType":"ModifierInvocation","src":"3353:16:0"}],"name":"__AccessControl_init_unchained","nameLocation":"3311:30:0","nodeType":"FunctionDefinition","parameters":{"id":64,"nodeType":"ParameterList","parameters":[],"src":"3341:2:0"},"returnParameters":{"id":67,"nodeType":"ParameterList","parameters":[],"src":"3370:0:0"},"scope":362,"src":"3302:75:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2912],"body":{"id":90,"nodeType":"Block","src":"3534:111:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":88,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":83,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3551:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":80,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2996,"src":"3571:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$2996_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$2996_$","typeString":"type(contract IAccessControl)"}],"id":79,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3566:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":81,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3566:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$2996","typeString":"type(contract IAccessControl)"}},"id":82,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3587:11:0","memberName":"interfaceId","nodeType":"MemberAccess","src":"3566:32:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3551:47:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":86,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3626:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":84,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3602:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlUpgradeable_$362_$","typeString":"type(contract super AccessControlUpgradeable)"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3608:17:0","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2912,"src":"3602:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":87,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3602:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3551:87:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77,"id":89,"nodeType":"Return","src":"3544:94:0"}]},"documentation":{"id":70,"nodeType":"StructuredDocumentation","src":"3382:56:0","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":91,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3452:17:0","nodeType":"FunctionDefinition","overrides":{"id":74,"nodeType":"OverrideSpecifier","overrides":[],"src":"3510:8:0"},"parameters":{"id":73,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72,"mutability":"mutable","name":"interfaceId","nameLocation":"3477:11:0","nodeType":"VariableDeclaration","scope":91,"src":"3470:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":71,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3470:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3469:20:0"},"returnParameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91,"src":"3528:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75,"name":"bool","nodeType":"ElementaryTypeName","src":"3528:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3527:6:0"},"scope":362,"src":"3443:202:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2963],"body":{"id":115,"nodeType":"Block","src":"3815:124:0","statements":[{"assignments":[103],"declarations":[{"constant":false,"id":103,"mutability":"mutable","name":"$","nameLocation":"3854:1:0","nodeType":"VariableDeclaration","scope":115,"src":"3825:30:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":102,"nodeType":"UserDefinedTypeName","pathNode":{"id":101,"name":"AccessControlStorage","nameLocations":["3825:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":35,"src":"3825:20:0"},"referencedDeclaration":35,"src":"3825:20:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":106,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":104,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"3858:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3858:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3825:59:0"},{"expression":{"baseExpression":{"expression":{"baseExpression":{"expression":{"id":107,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"3901:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3903:6:0","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":34,"src":"3901:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":110,"indexExpression":{"id":109,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94,"src":"3910:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3901:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$25_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3916:7:0","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":22,"src":"3901:22:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":113,"indexExpression":{"id":112,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3924:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3901:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":100,"id":114,"nodeType":"Return","src":"3894:38:0"}]},"documentation":{"id":92,"nodeType":"StructuredDocumentation","src":"3651:76:0","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":116,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"3741:7:0","nodeType":"FunctionDefinition","parameters":{"id":97,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94,"mutability":"mutable","name":"role","nameLocation":"3757:4:0","nodeType":"VariableDeclaration","scope":116,"src":"3749:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3749:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":96,"mutability":"mutable","name":"account","nameLocation":"3771:7:0","nodeType":"VariableDeclaration","scope":116,"src":"3763:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":95,"name":"address","nodeType":"ElementaryTypeName","src":"3763:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3748:31:0"},"returnParameters":{"id":100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":116,"src":"3809:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":98,"name":"bool","nodeType":"ElementaryTypeName","src":"3809:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3808:6:0"},"scope":362,"src":"3732:207:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":128,"nodeType":"Block","src":"4204:47:0","statements":[{"expression":{"arguments":[{"id":123,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119,"src":"4225:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":124,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"4231:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4231:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":122,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[129,150],"referencedDeclaration":150,"src":"4214:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":127,"nodeType":"ExpressionStatement","src":"4214:30:0"}]},"documentation":{"id":117,"nodeType":"StructuredDocumentation","src":"3945:198:0","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier."},"id":129,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"4157:10:0","nodeType":"FunctionDefinition","parameters":{"id":120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119,"mutability":"mutable","name":"role","nameLocation":"4176:4:0","nodeType":"VariableDeclaration","scope":129,"src":"4168:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4168:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4167:14:0"},"returnParameters":{"id":121,"nodeType":"ParameterList","parameters":[],"src":"4204:0:0"},"scope":362,"src":"4148:103:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":149,"nodeType":"Block","src":"4454:124:0","statements":[{"condition":{"id":141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4468:23:0","subExpression":{"arguments":[{"id":138,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"4477:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":139,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134,"src":"4483:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":137,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116,"src":"4469:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4469:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":148,"nodeType":"IfStatement","src":"4464:108:0","trueBody":{"id":147,"nodeType":"Block","src":"4493:79:0","statements":[{"errorCall":{"arguments":[{"id":143,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134,"src":"4547:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":144,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"4556:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":142,"name":"AccessControlUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2923,"src":"4514:32:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$","typeString":"function (address,bytes32) pure returns (error)"}},"id":145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4514:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":146,"nodeType":"RevertStatement","src":"4507:54:0"}]}}]},"documentation":{"id":130,"nodeType":"StructuredDocumentation","src":"4257:119:0","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`."},"id":150,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"4390:10:0","nodeType":"FunctionDefinition","parameters":{"id":135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":132,"mutability":"mutable","name":"role","nameLocation":"4409:4:0","nodeType":"VariableDeclaration","scope":150,"src":"4401:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4401:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":134,"mutability":"mutable","name":"account","nameLocation":"4423:7:0","nodeType":"VariableDeclaration","scope":150,"src":"4415:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":133,"name":"address","nodeType":"ElementaryTypeName","src":"4415:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4400:31:0"},"returnParameters":{"id":136,"nodeType":"ParameterList","parameters":[],"src":"4454:0:0"},"scope":362,"src":"4381:197:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[2971],"body":{"id":170,"nodeType":"Block","src":"4833:117:0","statements":[{"assignments":[160],"declarations":[{"constant":false,"id":160,"mutability":"mutable","name":"$","nameLocation":"4872:1:0","nodeType":"VariableDeclaration","scope":170,"src":"4843:30:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":159,"nodeType":"UserDefinedTypeName","pathNode":{"id":158,"name":"AccessControlStorage","nameLocations":["4843:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":35,"src":"4843:20:0"},"referencedDeclaration":35,"src":"4843:20:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":163,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":161,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"4876:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4876:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4843:59:0"},{"expression":{"expression":{"baseExpression":{"expression":{"id":164,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"4919:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4921:6:0","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":34,"src":"4919:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":167,"indexExpression":{"id":166,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"4928:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4919:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$25_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4934:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":24,"src":"4919:24:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":157,"id":169,"nodeType":"Return","src":"4912:31:0"}]},"documentation":{"id":151,"nodeType":"StructuredDocumentation","src":"4584:170:0","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":171,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4768:12:0","nodeType":"FunctionDefinition","parameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":153,"mutability":"mutable","name":"role","nameLocation":"4789:4:0","nodeType":"VariableDeclaration","scope":171,"src":"4781:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4781:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4780:14:0"},"returnParameters":{"id":157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":156,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":171,"src":"4824:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4824:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4823:9:0"},"scope":362,"src":"4759:191:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2979],"body":{"id":189,"nodeType":"Block","src":"5340:42:0","statements":[{"expression":{"arguments":[{"id":185,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"5361:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":186,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176,"src":"5367:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":184,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"5350:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5350:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":188,"nodeType":"ExpressionStatement","src":"5350:25:0"}]},"documentation":{"id":172,"nodeType":"StructuredDocumentation","src":"4956:285:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":190,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":180,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"5333:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":179,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"5320:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":182,"kind":"modifierInvocation","modifierName":{"id":178,"name":"onlyRole","nameLocations":["5311:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"5311:8:0"},"nodeType":"ModifierInvocation","src":"5311:28:0"}],"name":"grantRole","nameLocation":"5255:9:0","nodeType":"FunctionDefinition","parameters":{"id":177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":174,"mutability":"mutable","name":"role","nameLocation":"5273:4:0","nodeType":"VariableDeclaration","scope":190,"src":"5265:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5265:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":176,"mutability":"mutable","name":"account","nameLocation":"5287:7:0","nodeType":"VariableDeclaration","scope":190,"src":"5279:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":175,"name":"address","nodeType":"ElementaryTypeName","src":"5279:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5264:31:0"},"returnParameters":{"id":183,"nodeType":"ParameterList","parameters":[],"src":"5340:0:0"},"scope":362,"src":"5246:136:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2987],"body":{"id":208,"nodeType":"Block","src":"5757:43:0","statements":[{"expression":{"arguments":[{"id":204,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"5779:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":205,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":195,"src":"5785:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":203,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"5767:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":207,"nodeType":"ExpressionStatement","src":"5767:26:0"}]},"documentation":{"id":191,"nodeType":"StructuredDocumentation","src":"5388:269:0","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":209,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":199,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"5750:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":198,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"5737:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5737:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":201,"kind":"modifierInvocation","modifierName":{"id":197,"name":"onlyRole","nameLocations":["5728:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"5728:8:0"},"nodeType":"ModifierInvocation","src":"5728:28:0"}],"name":"revokeRole","nameLocation":"5671:10:0","nodeType":"FunctionDefinition","parameters":{"id":196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":193,"mutability":"mutable","name":"role","nameLocation":"5690:4:0","nodeType":"VariableDeclaration","scope":209,"src":"5682:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5682:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":195,"mutability":"mutable","name":"account","nameLocation":"5704:7:0","nodeType":"VariableDeclaration","scope":209,"src":"5696:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"5696:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5681:31:0"},"returnParameters":{"id":202,"nodeType":"ParameterList","parameters":[],"src":"5757:0:0"},"scope":362,"src":"5662:138:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2995],"body":{"id":231,"nodeType":"Block","src":"6427:166:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":217,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"6441:18:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":218,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"6463:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6463:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6441:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":225,"nodeType":"IfStatement","src":"6437:102:0","trueBody":{"id":224,"nodeType":"Block","src":"6477:62:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":221,"name":"AccessControlBadConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2926,"src":"6498:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6498:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":223,"nodeType":"RevertStatement","src":"6491:37:0"}]}},{"expression":{"arguments":[{"id":227,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":212,"src":"6561:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":228,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"6567:18:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":226,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"6549:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6549:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":230,"nodeType":"ExpressionStatement","src":"6549:37:0"}]},"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"5806:537:0","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":232,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"6357:12:0","nodeType":"FunctionDefinition","parameters":{"id":215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":212,"mutability":"mutable","name":"role","nameLocation":"6378:4:0","nodeType":"VariableDeclaration","scope":232,"src":"6370:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6370:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":214,"mutability":"mutable","name":"callerConfirmation","nameLocation":"6392:18:0","nodeType":"VariableDeclaration","scope":232,"src":"6384:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":213,"name":"address","nodeType":"ElementaryTypeName","src":"6384:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6369:42:0"},"returnParameters":{"id":216,"nodeType":"ParameterList","parameters":[],"src":"6427:0:0"},"scope":362,"src":"6348:245:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":267,"nodeType":"Block","src":"6791:245:0","statements":[{"assignments":[242],"declarations":[{"constant":false,"id":242,"mutability":"mutable","name":"$","nameLocation":"6830:1:0","nodeType":"VariableDeclaration","scope":267,"src":"6801:30:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":241,"nodeType":"UserDefinedTypeName","pathNode":{"id":240,"name":"AccessControlStorage","nameLocations":["6801:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":35,"src":"6801:20:0"},"referencedDeclaration":35,"src":"6801:20:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":245,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":243,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"6834:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6834:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6801:59:0"},{"assignments":[247],"declarations":[{"constant":false,"id":247,"mutability":"mutable","name":"previousAdminRole","nameLocation":"6878:17:0","nodeType":"VariableDeclaration","scope":267,"src":"6870:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":246,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6870:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":251,"initialValue":{"arguments":[{"id":249,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"6911:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":248,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"6898:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6898:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6870:46:0"},{"expression":{"id":259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":252,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"6926:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6928:6:0","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":34,"src":"6926:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":256,"indexExpression":{"id":254,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"6935:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6926:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$25_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6941:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":24,"src":"6926:24:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":258,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"6953:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6926:36:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":260,"nodeType":"ExpressionStatement","src":"6926:36:0"},{"eventCall":{"arguments":[{"id":262,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"6994:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":263,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"7000:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":264,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"7019:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":261,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2935,"src":"6977:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6977:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":266,"nodeType":"EmitStatement","src":"6972:57:0"}]},"documentation":{"id":233,"nodeType":"StructuredDocumentation","src":"6599:114:0","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":268,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"6727:13:0","nodeType":"FunctionDefinition","parameters":{"id":238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":235,"mutability":"mutable","name":"role","nameLocation":"6749:4:0","nodeType":"VariableDeclaration","scope":268,"src":"6741:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6741:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":237,"mutability":"mutable","name":"adminRole","nameLocation":"6763:9:0","nodeType":"VariableDeclaration","scope":268,"src":"6755:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6755:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6740:33:0"},"returnParameters":{"id":239,"nodeType":"ParameterList","parameters":[],"src":"6791:0:0"},"scope":362,"src":"6718:318:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":314,"nodeType":"Block","src":"7353:304:0","statements":[{"assignments":[280],"declarations":[{"constant":false,"id":280,"mutability":"mutable","name":"$","nameLocation":"7392:1:0","nodeType":"VariableDeclaration","scope":314,"src":"7363:30:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":279,"nodeType":"UserDefinedTypeName","pathNode":{"id":278,"name":"AccessControlStorage","nameLocations":["7363:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":35,"src":"7363:20:0"},"referencedDeclaration":35,"src":"7363:20:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":283,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":281,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"7396:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7396:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7363:59:0"},{"condition":{"id":288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7436:23:0","subExpression":{"arguments":[{"id":285,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"7445:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":286,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":273,"src":"7451:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":284,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116,"src":"7437:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7437:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":312,"nodeType":"Block","src":"7614:37:0","statements":[{"expression":{"hexValue":"66616c7365","id":310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7635:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":277,"id":311,"nodeType":"Return","src":"7628:12:0"}]},"id":313,"nodeType":"IfStatement","src":"7432:219:0","trueBody":{"id":309,"nodeType":"Block","src":"7461:147:0","statements":[{"expression":{"id":298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"expression":{"id":289,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":280,"src":"7475:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7477:6:0","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":34,"src":"7475:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":293,"indexExpression":{"id":291,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"7484:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7475:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$25_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7490:7:0","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":22,"src":"7475:22:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":296,"indexExpression":{"id":295,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":273,"src":"7498:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7475:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7509:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7475:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":299,"nodeType":"ExpressionStatement","src":"7475:38:0"},{"eventCall":{"arguments":[{"id":301,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"7544:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":302,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":273,"src":"7550:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":303,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"7559:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7559:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":300,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2944,"src":"7532:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7532:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":306,"nodeType":"EmitStatement","src":"7527:45:0"},{"expression":{"hexValue":"74727565","id":307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7593:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":277,"id":308,"nodeType":"Return","src":"7586:11:0"}]}}]},"documentation":{"id":269,"nodeType":"StructuredDocumentation","src":"7042:223:0","text":" @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":315,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7279:10:0","nodeType":"FunctionDefinition","parameters":{"id":274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":271,"mutability":"mutable","name":"role","nameLocation":"7298:4:0","nodeType":"VariableDeclaration","scope":315,"src":"7290:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7290:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":273,"mutability":"mutable","name":"account","nameLocation":"7312:7:0","nodeType":"VariableDeclaration","scope":315,"src":"7304:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":272,"name":"address","nodeType":"ElementaryTypeName","src":"7304:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7289:31:0"},"returnParameters":{"id":277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":315,"src":"7347:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":275,"name":"bool","nodeType":"ElementaryTypeName","src":"7347:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7346:6:0"},"scope":362,"src":"7270:387:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":360,"nodeType":"Block","src":"7976:304:0","statements":[{"assignments":[327],"declarations":[{"constant":false,"id":327,"mutability":"mutable","name":"$","nameLocation":"8015:1:0","nodeType":"VariableDeclaration","scope":360,"src":"7986:30:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":326,"nodeType":"UserDefinedTypeName","pathNode":{"id":325,"name":"AccessControlStorage","nameLocations":["7986:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":35,"src":"7986:20:0"},"referencedDeclaration":35,"src":"7986:20:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":328,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"8019:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8019:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7986:59:0"},{"condition":{"arguments":[{"id":332,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"8067:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":333,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"8073:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":331,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116,"src":"8059:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8059:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":358,"nodeType":"Block","src":"8237:37:0","statements":[{"expression":{"hexValue":"66616c7365","id":356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8258:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":324,"id":357,"nodeType":"Return","src":"8251:12:0"}]},"id":359,"nodeType":"IfStatement","src":"8055:219:0","trueBody":{"id":355,"nodeType":"Block","src":"8083:148:0","statements":[{"expression":{"id":344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"expression":{"id":335,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"8097:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$35_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8099:6:0","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":34,"src":"8097:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":339,"indexExpression":{"id":337,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"8106:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8097:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$25_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8112:7:0","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":22,"src":"8097:22:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":342,"indexExpression":{"id":341,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"8120:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8097:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8131:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8097:39:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":345,"nodeType":"ExpressionStatement","src":"8097:39:0"},{"eventCall":{"arguments":[{"id":347,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"8167:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":348,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"8173:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":349,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"8182:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8182:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":346,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"8155:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8155:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":352,"nodeType":"EmitStatement","src":"8150:45:0"},{"expression":{"hexValue":"74727565","id":353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8216:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":324,"id":354,"nodeType":"Return","src":"8209:11:0"}]}}]},"documentation":{"id":316,"nodeType":"StructuredDocumentation","src":"7663:224:0","text":" @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":361,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"7901:11:0","nodeType":"FunctionDefinition","parameters":{"id":321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":318,"mutability":"mutable","name":"role","nameLocation":"7921:4:0","nodeType":"VariableDeclaration","scope":361,"src":"7913:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7913:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":320,"mutability":"mutable","name":"account","nameLocation":"7935:7:0","nodeType":"VariableDeclaration","scope":361,"src":"7927:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":319,"name":"address","nodeType":"ElementaryTypeName","src":"7927:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7912:31:0"},"returnParameters":{"id":324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":361,"src":"7970:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":322,"name":"bool","nodeType":"ElementaryTypeName","src":"7970:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7969:6:0"},"scope":362,"src":"7892:388:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":363,"src":"2090:6192:0","usedErrors":[711,714,2923,2926],"usedEvents":[719,2935,2944,2953]}],"src":"108:8175:0"},"id":0},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","exportedSymbols":{"Initializable":[948],"Ownable2StepUpgradeable":[499],"OwnableUpgradeable":[694]},"id":500,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":364,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:1"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"./OwnableUpgradeable.sol","id":366,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":500,"sourceUnit":695,"src":"133:60:1","symbolAliases":[{"foreign":{"id":365,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"141:18:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":368,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":500,"sourceUnit":949,"src":"194:63:1","symbolAliases":[{"foreign":{"id":367,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"202:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":370,"name":"Initializable","nameLocations":["1115:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"1115:13:1"},"id":371,"nodeType":"InheritanceSpecifier","src":"1115:13:1"},{"baseName":{"id":372,"name":"OwnableUpgradeable","nameLocations":["1130:18:1"],"nodeType":"IdentifierPath","referencedDeclaration":694,"src":"1130:18:1"},"id":373,"nodeType":"InheritanceSpecifier","src":"1130:18:1"}],"canonicalName":"Ownable2StepUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":369,"nodeType":"StructuredDocumentation","src":"259:810: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 This extension of the {Ownable} contract includes a two-step mechanism to transfer\n ownership, where the new owner must call {acceptOwnership} in order to replace the\n old one. This can help prevent common mistakes, such as transfers of ownership to\n incorrect accounts, or to contracts that are unable to interact with the\n permission system.\n The initial owner is specified at deployment time in the constructor for `Ownable`. 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":499,"linearizedBaseContracts":[499,694,2873,948],"name":"Ownable2StepUpgradeable","nameLocation":"1088:23:1","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Ownable2StepUpgradeable.Ownable2StepStorage","documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"1155:70:1","text":"@custom:storage-location erc7201:openzeppelin.storage.Ownable2Step"},"id":377,"members":[{"constant":false,"id":376,"mutability":"mutable","name":"_pendingOwner","nameLocation":"1275:13:1","nodeType":"VariableDeclaration","scope":377,"src":"1267:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":375,"name":"address","nodeType":"ElementaryTypeName","src":"1267:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Ownable2StepStorage","nameLocation":"1237:19:1","nodeType":"StructDefinition","scope":499,"src":"1230:65:1","visibility":"public"},{"constant":true,"id":380,"mutability":"constant","name":"Ownable2StepStorageLocation","nameLocation":"1442:27:1","nodeType":"VariableDeclaration","scope":499,"src":"1417:121:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1417:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307832333765313538323232653365363936386237326239646230643830343361616366303734616439663635306630643136303662346438326565343332633030","id":379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1472:66:1","typeDescriptions":{"typeIdentifier":"t_rational_16053720875717120191110171845200109550086765943194951757191984851604933389312_by_1","typeString":"int_const 1605...(69 digits omitted)...9312"},"value":"0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00"},"visibility":"private"},{"body":{"id":387,"nodeType":"Block","src":"1633:86:1","statements":[{"AST":{"nativeSrc":"1652:61:1","nodeType":"YulBlock","src":"1652:61:1","statements":[{"nativeSrc":"1666:37:1","nodeType":"YulAssignment","src":"1666:37:1","value":{"name":"Ownable2StepStorageLocation","nativeSrc":"1676:27:1","nodeType":"YulIdentifier","src":"1676:27:1"},"variableNames":[{"name":"$.slot","nativeSrc":"1666:6:1","nodeType":"YulIdentifier","src":"1666:6:1"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":384,"isOffset":false,"isSlot":true,"src":"1666:6:1","suffix":"slot","valueSize":1},{"declaration":380,"isOffset":false,"isSlot":false,"src":"1676:27:1","valueSize":1}],"id":386,"nodeType":"InlineAssembly","src":"1643:70:1"}]},"id":388,"implemented":true,"kind":"function","modifiers":[],"name":"_getOwnable2StepStorage","nameLocation":"1554:23:1","nodeType":"FunctionDefinition","parameters":{"id":381,"nodeType":"ParameterList","parameters":[],"src":"1577:2:1"},"returnParameters":{"id":385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":384,"mutability":"mutable","name":"$","nameLocation":"1630:1:1","nodeType":"VariableDeclaration","scope":388,"src":"1602:29:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"},"typeName":{"id":383,"nodeType":"UserDefinedTypeName","pathNode":{"id":382,"name":"Ownable2StepStorage","nameLocations":["1602:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":377,"src":"1602:19:1"},"referencedDeclaration":377,"src":"1602:19:1","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"}},"visibility":"internal"}],"src":"1601:31:1"},"scope":499,"src":"1545:174:1","stateMutability":"pure","virtual":false,"visibility":"private"},{"anonymous":false,"eventSelector":"38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700","id":394,"name":"OwnershipTransferStarted","nameLocation":"1731:24:1","nodeType":"EventDefinition","parameters":{"id":393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":390,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1772:13:1","nodeType":"VariableDeclaration","scope":394,"src":"1756:29:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":389,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":392,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1803:8:1","nodeType":"VariableDeclaration","scope":394,"src":"1787:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":391,"name":"address","nodeType":"ElementaryTypeName","src":"1787:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1755:57:1"},"src":"1725:88:1"},{"body":{"id":399,"nodeType":"Block","src":"1876:7:1","statements":[]},"id":400,"implemented":true,"kind":"function","modifiers":[{"id":397,"kind":"modifierInvocation","modifierName":{"id":396,"name":"onlyInitializing","nameLocations":["1859:16:1"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"1859:16:1"},"nodeType":"ModifierInvocation","src":"1859:16:1"}],"name":"__Ownable2Step_init","nameLocation":"1828:19:1","nodeType":"FunctionDefinition","parameters":{"id":395,"nodeType":"ParameterList","parameters":[],"src":"1847:2:1"},"returnParameters":{"id":398,"nodeType":"ParameterList","parameters":[],"src":"1876:0:1"},"scope":499,"src":"1819:64:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":405,"nodeType":"Block","src":"1956:7:1","statements":[]},"id":406,"implemented":true,"kind":"function","modifiers":[{"id":403,"kind":"modifierInvocation","modifierName":{"id":402,"name":"onlyInitializing","nameLocations":["1939:16:1"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"1939:16:1"},"nodeType":"ModifierInvocation","src":"1939:16:1"}],"name":"__Ownable2Step_init_unchained","nameLocation":"1898:29:1","nodeType":"FunctionDefinition","parameters":{"id":401,"nodeType":"ParameterList","parameters":[],"src":"1927:2:1"},"returnParameters":{"id":404,"nodeType":"ParameterList","parameters":[],"src":"1956:0:1"},"scope":499,"src":"1889:74:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":421,"nodeType":"Block","src":"2100:106:1","statements":[{"assignments":[414],"declarations":[{"constant":false,"id":414,"mutability":"mutable","name":"$","nameLocation":"2138:1:1","nodeType":"VariableDeclaration","scope":421,"src":"2110:29:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"},"typeName":{"id":413,"nodeType":"UserDefinedTypeName","pathNode":{"id":412,"name":"Ownable2StepStorage","nameLocations":["2110:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":377,"src":"2110:19:1"},"referencedDeclaration":377,"src":"2110:19:1","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"}},"visibility":"internal"}],"id":417,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":415,"name":"_getOwnable2StepStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"2142:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$377_storage_ptr_$","typeString":"function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)"}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2142:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2110:57:1"},{"expression":{"expression":{"id":418,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":414,"src":"2184:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"id":419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2186:13:1","memberName":"_pendingOwner","nodeType":"MemberAccess","referencedDeclaration":376,"src":"2184:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":411,"id":420,"nodeType":"Return","src":"2177:22:1"}]},"documentation":{"id":407,"nodeType":"StructuredDocumentation","src":"1968:65:1","text":" @dev Returns the address of the pending owner."},"functionSelector":"e30c3978","id":422,"implemented":true,"kind":"function","modifiers":[],"name":"pendingOwner","nameLocation":"2047:12:1","nodeType":"FunctionDefinition","parameters":{"id":408,"nodeType":"ParameterList","parameters":[],"src":"2059:2:1"},"returnParameters":{"id":411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":422,"src":"2091:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":409,"name":"address","nodeType":"ElementaryTypeName","src":"2091:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2090:9:1"},"scope":499,"src":"2038:168:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[664],"body":{"id":449,"nodeType":"Block","src":"2603:168:1","statements":[{"assignments":[433],"declarations":[{"constant":false,"id":433,"mutability":"mutable","name":"$","nameLocation":"2641:1:1","nodeType":"VariableDeclaration","scope":449,"src":"2613:29:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"},"typeName":{"id":432,"nodeType":"UserDefinedTypeName","pathNode":{"id":431,"name":"Ownable2StepStorage","nameLocations":["2613:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":377,"src":"2613:19:1"},"referencedDeclaration":377,"src":"2613:19:1","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"}},"visibility":"internal"}],"id":436,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":434,"name":"_getOwnable2StepStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"2645:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$377_storage_ptr_$","typeString":"function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)"}},"id":435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2645:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2613:57:1"},{"expression":{"id":441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":437,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":433,"src":"2680:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"id":439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2682:13:1","memberName":"_pendingOwner","nodeType":"MemberAccess","referencedDeclaration":376,"src":"2680:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":440,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"2698:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2680:26:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":442,"nodeType":"ExpressionStatement","src":"2680:26:1"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":444,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":605,"src":"2746:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2746:7:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":446,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"2755:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":443,"name":"OwnershipTransferStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"2721:24:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2721:43:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":448,"nodeType":"EmitStatement","src":"2716:48:1"}]},"documentation":{"id":423,"nodeType":"StructuredDocumentation","src":"2212:307: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.\n Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"functionSelector":"f2fde38b","id":450,"implemented":true,"kind":"function","modifiers":[{"id":429,"kind":"modifierInvocation","modifierName":{"id":428,"name":"onlyOwner","nameLocations":["2593:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"2593:9:1"},"nodeType":"ModifierInvocation","src":"2593:9:1"}],"name":"transferOwnership","nameLocation":"2533:17:1","nodeType":"FunctionDefinition","overrides":{"id":427,"nodeType":"OverrideSpecifier","overrides":[],"src":"2584:8:1"},"parameters":{"id":426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":425,"mutability":"mutable","name":"newOwner","nameLocation":"2559:8:1","nodeType":"VariableDeclaration","scope":450,"src":"2551:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":424,"name":"address","nodeType":"ElementaryTypeName","src":"2551:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2550:18:1"},"returnParameters":{"id":430,"nodeType":"ParameterList","parameters":[],"src":"2603:0:1"},"scope":499,"src":"2524:247:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[693],"body":{"id":473,"nodeType":"Block","src":"3027:150:1","statements":[{"assignments":[459],"declarations":[{"constant":false,"id":459,"mutability":"mutable","name":"$","nameLocation":"3065:1:1","nodeType":"VariableDeclaration","scope":473,"src":"3037:29:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"},"typeName":{"id":458,"nodeType":"UserDefinedTypeName","pathNode":{"id":457,"name":"Ownable2StepStorage","nameLocations":["3037:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":377,"src":"3037:19:1"},"referencedDeclaration":377,"src":"3037:19:1","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"}},"visibility":"internal"}],"id":462,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":460,"name":"_getOwnable2StepStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"3069:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$377_storage_ptr_$","typeString":"function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)"}},"id":461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3069:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3037:57:1"},{"expression":{"id":465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3104:22:1","subExpression":{"expression":{"id":463,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"3111:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$377_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"id":464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3113:13:1","memberName":"_pendingOwner","nodeType":"MemberAccess","referencedDeclaration":376,"src":"3111:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":466,"nodeType":"ExpressionStatement","src":"3104:22:1"},{"expression":{"arguments":[{"id":470,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"3161:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":467,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3136:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Ownable2StepUpgradeable_$499_$","typeString":"type(contract super Ownable2StepUpgradeable)"}},"id":469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3142:18:1","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":693,"src":"3136:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3136:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":472,"nodeType":"ExpressionStatement","src":"3136:34:1"}]},"documentation":{"id":451,"nodeType":"StructuredDocumentation","src":"2777: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":474,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2964:18:1","nodeType":"FunctionDefinition","overrides":{"id":455,"nodeType":"OverrideSpecifier","overrides":[],"src":"3018:8:1"},"parameters":{"id":454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":453,"mutability":"mutable","name":"newOwner","nameLocation":"2991:8:1","nodeType":"VariableDeclaration","scope":474,"src":"2983:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":452,"name":"address","nodeType":"ElementaryTypeName","src":"2983:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2982:18:1"},"returnParameters":{"id":456,"nodeType":"ParameterList","parameters":[],"src":"3027:0:1"},"scope":499,"src":"2955:222:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":497,"nodeType":"Block","src":"3299:187:1","statements":[{"assignments":[479],"declarations":[{"constant":false,"id":479,"mutability":"mutable","name":"sender","nameLocation":"3317:6:1","nodeType":"VariableDeclaration","scope":497,"src":"3309:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":478,"name":"address","nodeType":"ElementaryTypeName","src":"3309:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":482,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":480,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"3326:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3326:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3309:29:1"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":483,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"3352:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3352:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":485,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"3370:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3352:24:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":492,"nodeType":"IfStatement","src":"3348:96:1","trueBody":{"id":491,"nodeType":"Block","src":"3378:66:1","statements":[{"errorCall":{"arguments":[{"id":488,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"3426:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":487,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"3399:26:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3399:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":490,"nodeType":"RevertStatement","src":"3392:41:1"}]}},{"expression":{"arguments":[{"id":494,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"3472:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":493,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[474],"referencedDeclaration":474,"src":"3453:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":496,"nodeType":"ExpressionStatement","src":"3453:26:1"}]},"documentation":{"id":475,"nodeType":"StructuredDocumentation","src":"3183:69:1","text":" @dev The new owner accepts the ownership transfer."},"functionSelector":"79ba5097","id":498,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"3266:15:1","nodeType":"FunctionDefinition","parameters":{"id":476,"nodeType":"ParameterList","parameters":[],"src":"3281:2:1"},"returnParameters":{"id":477,"nodeType":"ParameterList","parameters":[],"src":"3299:0:1"},"scope":499,"src":"3257:229:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":500,"src":"1070:2418:1","usedErrors":[530,535,711,714],"usedEvents":[394,541,719]}],"src":"107:3382:1"},"id":1},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[2873],"Initializable":[948],"OwnableUpgradeable":[694]},"id":695,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":501,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:2"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":503,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":695,"sourceUnit":2874,"src":"128:67:2","symbolAliases":[{"foreign":{"id":502,"name":"ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2873,"src":"136:18:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":505,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":695,"sourceUnit":949,"src":"196:63:2","symbolAliases":[{"foreign":{"id":504,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"204:13:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":507,"name":"Initializable","nameLocations":["789:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"789:13:2"},"id":508,"nodeType":"InheritanceSpecifier","src":"789:13:2"},{"baseName":{"id":509,"name":"ContextUpgradeable","nameLocations":["804:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":2873,"src":"804:18:2"},"id":510,"nodeType":"InheritanceSpecifier","src":"804:18:2"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":506,"nodeType":"StructuredDocumentation","src":"261:487:2","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 The initial owner is set to the address provided by the deployer. This can\n 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":694,"linearizedBaseContracts":[694,2873,948],"name":"OwnableUpgradeable","nameLocation":"767:18:2","nodeType":"ContractDefinition","nodes":[{"canonicalName":"OwnableUpgradeable.OwnableStorage","documentation":{"id":511,"nodeType":"StructuredDocumentation","src":"829:65:2","text":"@custom:storage-location erc7201:openzeppelin.storage.Ownable"},"id":514,"members":[{"constant":false,"id":513,"mutability":"mutable","name":"_owner","nameLocation":"939:6:2","nodeType":"VariableDeclaration","scope":514,"src":"931:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":512,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"OwnableStorage","nameLocation":"906:14:2","nodeType":"StructDefinition","scope":694,"src":"899:53:2","visibility":"public"},{"constant":true,"id":517,"mutability":"constant","name":"OwnableStorageLocation","nameLocation":"1094:22:2","nodeType":"VariableDeclaration","scope":694,"src":"1069:116:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1069:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307839303136643039643732643430666461653266643863656163366236323334633737303632313466643339633163643165363039613035323863313939333030","id":516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:66:2","typeDescriptions":{"typeIdentifier":"t_rational_65173360639460082030725920392146925864023520599682862633725751242436743107328_by_1","typeString":"int_const 6517...(69 digits omitted)...7328"},"value":"0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300"},"visibility":"private"},{"body":{"id":524,"nodeType":"Block","src":"1270:81:2","statements":[{"AST":{"nativeSrc":"1289:56:2","nodeType":"YulBlock","src":"1289:56:2","statements":[{"nativeSrc":"1303:32:2","nodeType":"YulAssignment","src":"1303:32:2","value":{"name":"OwnableStorageLocation","nativeSrc":"1313:22:2","nodeType":"YulIdentifier","src":"1313:22:2"},"variableNames":[{"name":"$.slot","nativeSrc":"1303:6:2","nodeType":"YulIdentifier","src":"1303:6:2"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":521,"isOffset":false,"isSlot":true,"src":"1303:6:2","suffix":"slot","valueSize":1},{"declaration":517,"isOffset":false,"isSlot":false,"src":"1313:22:2","valueSize":1}],"id":523,"nodeType":"InlineAssembly","src":"1280:65:2"}]},"id":525,"implemented":true,"kind":"function","modifiers":[],"name":"_getOwnableStorage","nameLocation":"1201:18:2","nodeType":"FunctionDefinition","parameters":{"id":518,"nodeType":"ParameterList","parameters":[],"src":"1219:2:2"},"returnParameters":{"id":522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":521,"mutability":"mutable","name":"$","nameLocation":"1267:1:2","nodeType":"VariableDeclaration","scope":525,"src":"1244:24:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"},"typeName":{"id":520,"nodeType":"UserDefinedTypeName","pathNode":{"id":519,"name":"OwnableStorage","nameLocations":["1244:14:2"],"nodeType":"IdentifierPath","referencedDeclaration":514,"src":"1244:14:2"},"referencedDeclaration":514,"src":"1244:14:2","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"}},"visibility":"internal"}],"src":"1243:26:2"},"scope":694,"src":"1192:159:2","stateMutability":"pure","virtual":false,"visibility":"private"},{"documentation":{"id":526,"nodeType":"StructuredDocumentation","src":"1357:85:2","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":530,"name":"OwnableUnauthorizedAccount","nameLocation":"1453:26:2","nodeType":"ErrorDefinition","parameters":{"id":529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":528,"mutability":"mutable","name":"account","nameLocation":"1488:7:2","nodeType":"VariableDeclaration","scope":530,"src":"1480:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":527,"name":"address","nodeType":"ElementaryTypeName","src":"1480:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1479:17:2"},"src":"1447:50:2"},{"documentation":{"id":531,"nodeType":"StructuredDocumentation","src":"1503:82:2","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":535,"name":"OwnableInvalidOwner","nameLocation":"1596:19:2","nodeType":"ErrorDefinition","parameters":{"id":534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":533,"mutability":"mutable","name":"owner","nameLocation":"1624:5:2","nodeType":"VariableDeclaration","scope":535,"src":"1616:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":532,"name":"address","nodeType":"ElementaryTypeName","src":"1616:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1615:15:2"},"src":"1590:41:2"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":541,"name":"OwnershipTransferred","nameLocation":"1643:20:2","nodeType":"EventDefinition","parameters":{"id":540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":537,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1680:13:2","nodeType":"VariableDeclaration","scope":541,"src":"1664:29:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":536,"name":"address","nodeType":"ElementaryTypeName","src":"1664:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":539,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1711:8:2","nodeType":"VariableDeclaration","scope":541,"src":"1695:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":538,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1663:57:2"},"src":"1637:84:2"},{"body":{"id":553,"nodeType":"Block","src":"1919:55:2","statements":[{"expression":{"arguments":[{"id":550,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":544,"src":"1954:12:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":549,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":581,"src":"1929:24:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":552,"nodeType":"ExpressionStatement","src":"1929:38:2"}]},"documentation":{"id":542,"nodeType":"StructuredDocumentation","src":"1727:115:2","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":554,"implemented":true,"kind":"function","modifiers":[{"id":547,"kind":"modifierInvocation","modifierName":{"id":546,"name":"onlyInitializing","nameLocations":["1902:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"1902:16:2"},"nodeType":"ModifierInvocation","src":"1902:16:2"}],"name":"__Ownable_init","nameLocation":"1856:14:2","nodeType":"FunctionDefinition","parameters":{"id":545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":544,"mutability":"mutable","name":"initialOwner","nameLocation":"1879:12:2","nodeType":"VariableDeclaration","scope":554,"src":"1871:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":543,"name":"address","nodeType":"ElementaryTypeName","src":"1871:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1870:22:2"},"returnParameters":{"id":548,"nodeType":"ParameterList","parameters":[],"src":"1919:0:2"},"scope":694,"src":"1847:127:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":580,"nodeType":"Block","src":"2062:153:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":561,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"2076:12:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:1:2","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":563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2092:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":562,"name":"address","nodeType":"ElementaryTypeName","src":"2092:7:2","typeDescriptions":{}}},"id":565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2092:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2076:26:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":575,"nodeType":"IfStatement","src":"2072:95:2","trueBody":{"id":574,"nodeType":"Block","src":"2104:63:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2153:1:2","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":569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2145:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":568,"name":"address","nodeType":"ElementaryTypeName","src":"2145:7:2","typeDescriptions":{}}},"id":571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2145:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":567,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"2125:19:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2125:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":573,"nodeType":"RevertStatement","src":"2118:38:2"}]}},{"expression":{"arguments":[{"id":577,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"2195:12:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":576,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"2176:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2176:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":579,"nodeType":"ExpressionStatement","src":"2176:32:2"}]},"id":581,"implemented":true,"kind":"function","modifiers":[{"id":559,"kind":"modifierInvocation","modifierName":{"id":558,"name":"onlyInitializing","nameLocations":["2045:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"2045:16:2"},"nodeType":"ModifierInvocation","src":"2045:16:2"}],"name":"__Ownable_init_unchained","nameLocation":"1989:24:2","nodeType":"FunctionDefinition","parameters":{"id":557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":556,"mutability":"mutable","name":"initialOwner","nameLocation":"2022:12:2","nodeType":"VariableDeclaration","scope":581,"src":"2014:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":555,"name":"address","nodeType":"ElementaryTypeName","src":"2014:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2013:22:2"},"returnParameters":{"id":560,"nodeType":"ParameterList","parameters":[],"src":"2062:0:2"},"scope":694,"src":"1980:235:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":588,"nodeType":"Block","src":"2324:41:2","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":584,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":622,"src":"2334:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2334:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":586,"nodeType":"ExpressionStatement","src":"2334:13:2"},{"id":587,"nodeType":"PlaceholderStatement","src":"2357:1:2"}]},"documentation":{"id":582,"nodeType":"StructuredDocumentation","src":"2221:77:2","text":" @dev Throws if called by any account other than the owner."},"id":589,"name":"onlyOwner","nameLocation":"2312:9:2","nodeType":"ModifierDefinition","parameters":{"id":583,"nodeType":"ParameterList","parameters":[],"src":"2321:2:2"},"src":"2303:62:2","virtual":false,"visibility":"internal"},{"body":{"id":604,"nodeType":"Block","src":"2496:89:2","statements":[{"assignments":[597],"declarations":[{"constant":false,"id":597,"mutability":"mutable","name":"$","nameLocation":"2529:1:2","nodeType":"VariableDeclaration","scope":604,"src":"2506:24:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"},"typeName":{"id":596,"nodeType":"UserDefinedTypeName","pathNode":{"id":595,"name":"OwnableStorage","nameLocations":["2506:14:2"],"nodeType":"IdentifierPath","referencedDeclaration":514,"src":"2506:14:2"},"referencedDeclaration":514,"src":"2506:14:2","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"}},"visibility":"internal"}],"id":600,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":598,"name":"_getOwnableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":525,"src":"2533:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$514_storage_ptr_$","typeString":"function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)"}},"id":599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:20:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2506:47:2"},{"expression":{"expression":{"id":601,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"2570:1:2","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"id":602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2572:6:2","memberName":"_owner","nodeType":"MemberAccess","referencedDeclaration":513,"src":"2570:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":594,"id":603,"nodeType":"Return","src":"2563:15:2"}]},"documentation":{"id":590,"nodeType":"StructuredDocumentation","src":"2371:65:2","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":605,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"2450:5:2","nodeType":"FunctionDefinition","parameters":{"id":591,"nodeType":"ParameterList","parameters":[],"src":"2455:2:2"},"returnParameters":{"id":594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":605,"src":"2487:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":592,"name":"address","nodeType":"ElementaryTypeName","src":"2487:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2486:9:2"},"scope":694,"src":"2441:144:2","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":621,"nodeType":"Block","src":"2703:117:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":609,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":605,"src":"2717:5:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:7:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":611,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"2728:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2717:23:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":620,"nodeType":"IfStatement","src":"2713:101:2","trueBody":{"id":619,"nodeType":"Block","src":"2742:72:2","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":615,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"2790:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2790:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":614,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"2763:26:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2763:40:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":618,"nodeType":"RevertStatement","src":"2756:47:2"}]}}]},"documentation":{"id":606,"nodeType":"StructuredDocumentation","src":"2591:62:2","text":" @dev Throws if the sender is not the owner."},"id":622,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"2667:11:2","nodeType":"FunctionDefinition","parameters":{"id":607,"nodeType":"ParameterList","parameters":[],"src":"2678:2:2"},"returnParameters":{"id":608,"nodeType":"ParameterList","parameters":[],"src":"2703:0:2"},"scope":694,"src":"2658:162:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":635,"nodeType":"Block","src":"3209:47:2","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:1:2","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":630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3238:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":629,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:2","typeDescriptions":{}}},"id":632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":628,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"3219:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3219:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":634,"nodeType":"ExpressionStatement","src":"3219:30:2"}]},"documentation":{"id":623,"nodeType":"StructuredDocumentation","src":"2826:324:2","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":636,"implemented":true,"kind":"function","modifiers":[{"id":626,"kind":"modifierInvocation","modifierName":{"id":625,"name":"onlyOwner","nameLocations":["3199:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"3199:9:2"},"nodeType":"ModifierInvocation","src":"3199:9:2"}],"name":"renounceOwnership","nameLocation":"3164:17:2","nodeType":"FunctionDefinition","parameters":{"id":624,"nodeType":"ParameterList","parameters":[],"src":"3181:2:2"},"returnParameters":{"id":627,"nodeType":"ParameterList","parameters":[],"src":"3209:0:2"},"scope":694,"src":"3155:101:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":663,"nodeType":"Block","src":"3475:145:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":644,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":639,"src":"3489:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3509:1:2","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":646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3501:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"3501:7:2","typeDescriptions":{}}},"id":648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3501:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3489:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":658,"nodeType":"IfStatement","src":"3485:91:2","trueBody":{"id":657,"nodeType":"Block","src":"3513:63:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3562:1:2","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":652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3554:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":651,"name":"address","nodeType":"ElementaryTypeName","src":"3554:7:2","typeDescriptions":{}}},"id":654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3554:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":650,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"3534:19:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3534:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":656,"nodeType":"RevertStatement","src":"3527:38:2"}]}},{"expression":{"arguments":[{"id":660,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":639,"src":"3604:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":659,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"3585:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3585:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":662,"nodeType":"ExpressionStatement","src":"3585:28:2"}]},"documentation":{"id":637,"nodeType":"StructuredDocumentation","src":"3262:138:2","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":664,"implemented":true,"kind":"function","modifiers":[{"id":642,"kind":"modifierInvocation","modifierName":{"id":641,"name":"onlyOwner","nameLocations":["3465:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"3465:9:2"},"nodeType":"ModifierInvocation","src":"3465:9:2"}],"name":"transferOwnership","nameLocation":"3414:17:2","nodeType":"FunctionDefinition","parameters":{"id":640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":639,"mutability":"mutable","name":"newOwner","nameLocation":"3440:8:2","nodeType":"VariableDeclaration","scope":664,"src":"3432:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":638,"name":"address","nodeType":"ElementaryTypeName","src":"3432:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3431:18:2"},"returnParameters":{"id":643,"nodeType":"ParameterList","parameters":[],"src":"3475:0:2"},"scope":694,"src":"3405:215:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":692,"nodeType":"Block","src":"3837:185:2","statements":[{"assignments":[672],"declarations":[{"constant":false,"id":672,"mutability":"mutable","name":"$","nameLocation":"3870:1:2","nodeType":"VariableDeclaration","scope":692,"src":"3847:24:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"},"typeName":{"id":671,"nodeType":"UserDefinedTypeName","pathNode":{"id":670,"name":"OwnableStorage","nameLocations":["3847:14:2"],"nodeType":"IdentifierPath","referencedDeclaration":514,"src":"3847:14:2"},"referencedDeclaration":514,"src":"3847:14:2","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"}},"visibility":"internal"}],"id":675,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":673,"name":"_getOwnableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":525,"src":"3874:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$514_storage_ptr_$","typeString":"function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)"}},"id":674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3874:20:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3847:47:2"},{"assignments":[677],"declarations":[{"constant":false,"id":677,"mutability":"mutable","name":"oldOwner","nameLocation":"3912:8:2","nodeType":"VariableDeclaration","scope":692,"src":"3904:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":676,"name":"address","nodeType":"ElementaryTypeName","src":"3904:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":680,"initialValue":{"expression":{"id":678,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"3923:1:2","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"id":679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3925:6:2","memberName":"_owner","nodeType":"MemberAccess","referencedDeclaration":513,"src":"3923:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3904:27:2"},{"expression":{"id":685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":681,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"3941:1:2","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$514_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"id":683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3943:6:2","memberName":"_owner","nodeType":"MemberAccess","referencedDeclaration":513,"src":"3941:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":684,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":667,"src":"3952:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3941:19:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":686,"nodeType":"ExpressionStatement","src":"3941:19:2"},{"eventCall":{"arguments":[{"id":688,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":677,"src":"3996:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":689,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":667,"src":"4006:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":687,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":541,"src":"3975:20:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3975:40:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":691,"nodeType":"EmitStatement","src":"3970:45:2"}]},"documentation":{"id":665,"nodeType":"StructuredDocumentation","src":"3626:143:2","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":693,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"3783:18:2","nodeType":"FunctionDefinition","parameters":{"id":668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":667,"mutability":"mutable","name":"newOwner","nameLocation":"3810:8:2","nodeType":"VariableDeclaration","scope":693,"src":"3802:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":666,"name":"address","nodeType":"ElementaryTypeName","src":"3802:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3801:18:2"},"returnParameters":{"id":669,"nodeType":"ParameterList","parameters":[],"src":"3837:0:2"},"scope":694,"src":"3774:248:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":695,"src":"749:3275:2","usedErrors":[530,535,711,714],"usedEvents":[541,719]}],"src":"102:3923:2"},"id":2},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"Initializable":[948]},"id":949,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":696,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"113:24:3"},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":697,"nodeType":"StructuredDocumentation","src":"139:2209:3","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n     function initialize() initializer public {\n         __ERC20_init(\"MyToken\", \"MTK\");\n     }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n     function initializeV2() reinitializer(2) public {\n         __ERC20Permit_init(\"MyToken\");\n     }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n     _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":948,"linearizedBaseContracts":[948],"name":"Initializable","nameLocation":"2367:13:3","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Initializable.InitializableStorage","documentation":{"id":698,"nodeType":"StructuredDocumentation","src":"2387:293:3","text":" @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable"},"id":705,"members":[{"constant":false,"id":701,"mutability":"mutable","name":"_initialized","nameLocation":"2820:12:3","nodeType":"VariableDeclaration","scope":705,"src":"2813:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":700,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":704,"mutability":"mutable","name":"_initializing","nameLocation":"2955:13:3","nodeType":"VariableDeclaration","scope":705,"src":"2950:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":703,"name":"bool","nodeType":"ElementaryTypeName","src":"2950:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"InitializableStorage","nameLocation":"2692:20:3","nodeType":"StructDefinition","scope":948,"src":"2685:290:3","visibility":"public"},{"constant":true,"id":708,"mutability":"constant","name":"INITIALIZABLE_STORAGE","nameLocation":"3123:21:3","nodeType":"VariableDeclaration","scope":948,"src":"3098:115:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3098:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030","id":707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:66:3","typeDescriptions":{"typeIdentifier":"t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1","typeString":"int_const 1089...(70 digits omitted)...9600"},"value":"0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00"},"visibility":"private"},{"documentation":{"id":709,"nodeType":"StructuredDocumentation","src":"3220:60:3","text":" @dev The contract is already initialized."},"errorSelector":"f92ee8a9","id":711,"name":"InvalidInitialization","nameLocation":"3291:21:3","nodeType":"ErrorDefinition","parameters":{"id":710,"nodeType":"ParameterList","parameters":[],"src":"3312:2:3"},"src":"3285:30:3"},{"documentation":{"id":712,"nodeType":"StructuredDocumentation","src":"3321:57:3","text":" @dev The contract is not initializing."},"errorSelector":"d7e6bcf8","id":714,"name":"NotInitializing","nameLocation":"3389:15:3","nodeType":"ErrorDefinition","parameters":{"id":713,"nodeType":"ParameterList","parameters":[],"src":"3404:2:3"},"src":"3383:24:3"},{"anonymous":false,"documentation":{"id":715,"nodeType":"StructuredDocumentation","src":"3413:90:3","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2","id":719,"name":"Initialized","nameLocation":"3514:11:3","nodeType":"EventDefinition","parameters":{"id":718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":717,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"3533:7:3","nodeType":"VariableDeclaration","scope":719,"src":"3526:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":716,"name":"uint64","nodeType":"ElementaryTypeName","src":"3526:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3525:16:3"},"src":"3508:34:3"},{"body":{"id":801,"nodeType":"Block","src":"4092:1081:3","statements":[{"assignments":[724],"declarations":[{"constant":false,"id":724,"mutability":"mutable","name":"$","nameLocation":"4187:1:3","nodeType":"VariableDeclaration","scope":801,"src":"4158:30:3","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":723,"nodeType":"UserDefinedTypeName","pathNode":{"id":722,"name":"InitializableStorage","nameLocations":["4158:20:3"],"nodeType":"IdentifierPath","referencedDeclaration":705,"src":"4158:20:3"},"referencedDeclaration":705,"src":"4158:20:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":725,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"4191:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$705_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4158:59:3"},{"assignments":[729],"declarations":[{"constant":false,"id":729,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"4284:14:3","nodeType":"VariableDeclaration","scope":801,"src":"4279:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":728,"name":"bool","nodeType":"ElementaryTypeName","src":"4279:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":733,"initialValue":{"id":732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4301:16:3","subExpression":{"expression":{"id":730,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"4302:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4304:13:3","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":704,"src":"4302:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4279:38:3"},{"assignments":[735],"declarations":[{"constant":false,"id":735,"mutability":"mutable","name":"initialized","nameLocation":"4334:11:3","nodeType":"VariableDeclaration","scope":801,"src":"4327:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":734,"name":"uint64","nodeType":"ElementaryTypeName","src":"4327:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":738,"initialValue":{"expression":{"id":736,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"4348:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4350:12:3","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":701,"src":"4348:14:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4327:35:3"},{"assignments":[740],"declarations":[{"constant":false,"id":740,"mutability":"mutable","name":"initialSetup","nameLocation":"4711:12:3","nodeType":"VariableDeclaration","scope":801,"src":"4706:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":739,"name":"bool","nodeType":"ElementaryTypeName","src":"4706:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":746,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":741,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":735,"src":"4726:11:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4741:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4726:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":744,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"4746:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4726:34:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4706:54:3"},{"assignments":[748],"declarations":[{"constant":false,"id":748,"mutability":"mutable","name":"construction","nameLocation":"4775:12:3","nodeType":"VariableDeclaration","scope":801,"src":"4770:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":747,"name":"bool","nodeType":"ElementaryTypeName","src":"4770:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":761,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":749,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":735,"src":"4790:11:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4805:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4790:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":754,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4818:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$948","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$948","typeString":"contract Initializable"}],"id":753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4810:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":752,"name":"address","nodeType":"ElementaryTypeName","src":"4810:7:3","typeDescriptions":{}}},"id":755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4810:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4824:4:3","memberName":"code","nodeType":"MemberAccess","src":"4810:18:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4829:6:3","memberName":"length","nodeType":"MemberAccess","src":"4810:25:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4839:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4810:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4790:50:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4770:70:3"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4855:13:3","subExpression":{"id":762,"name":"initialSetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":740,"src":"4856:12:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4872:13:3","subExpression":{"id":764,"name":"construction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":748,"src":"4873:12:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4855:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":771,"nodeType":"IfStatement","src":"4851:91:3","trueBody":{"id":770,"nodeType":"Block","src":"4887:55:3","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":767,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"4908:21:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4908:23:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":769,"nodeType":"RevertStatement","src":"4901:30:3"}]}},{"expression":{"id":776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":772,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"4951:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4953:12:3","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":701,"src":"4951:14:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4968:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4951:18:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":777,"nodeType":"ExpressionStatement","src":"4951:18:3"},{"condition":{"id":778,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"4983:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":786,"nodeType":"IfStatement","src":"4979:67:3","trueBody":{"id":785,"nodeType":"Block","src":"4999:47:3","statements":[{"expression":{"id":783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":779,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"5013:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5015:13:3","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":704,"src":"5013:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5031:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5013:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":784,"nodeType":"ExpressionStatement","src":"5013:22:3"}]}},{"id":787,"nodeType":"PlaceholderStatement","src":"5055:1:3"},{"condition":{"id":788,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"5070:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":800,"nodeType":"IfStatement","src":"5066:101:3","trueBody":{"id":799,"nodeType":"Block","src":"5086:81:3","statements":[{"expression":{"id":793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":789,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"5100:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5102:13:3","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":704,"src":"5100:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5118:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5100:23:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":794,"nodeType":"ExpressionStatement","src":"5100:23:3"},{"eventCall":{"arguments":[{"hexValue":"31","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5154:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":795,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":719,"src":"5142:11:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":798,"nodeType":"EmitStatement","src":"5137:19:3"}]}}]},"documentation":{"id":720,"nodeType":"StructuredDocumentation","src":"3548:516:3","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event."},"id":802,"name":"initializer","nameLocation":"4078:11:3","nodeType":"ModifierDefinition","parameters":{"id":721,"nodeType":"ParameterList","parameters":[],"src":"4089:2:3"},"src":"4069:1104:3","virtual":false,"visibility":"internal"},{"body":{"id":848,"nodeType":"Block","src":"6291:392:3","statements":[{"assignments":[809],"declarations":[{"constant":false,"id":809,"mutability":"mutable","name":"$","nameLocation":"6386:1:3","nodeType":"VariableDeclaration","scope":848,"src":"6357:30:3","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":808,"nodeType":"UserDefinedTypeName","pathNode":{"id":807,"name":"InitializableStorage","nameLocations":["6357:20:3"],"nodeType":"IdentifierPath","referencedDeclaration":705,"src":"6357:20:3"},"referencedDeclaration":705,"src":"6357:20:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":812,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":810,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"6390:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$705_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6357:59:3"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":813,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"6431:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6433:13:3","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":704,"src":"6431:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":815,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"6450:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6452:12:3","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":701,"src":"6450:14:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":817,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"6468:7:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6450:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6431:44:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":824,"nodeType":"IfStatement","src":"6427:105:3","trueBody":{"id":823,"nodeType":"Block","src":"6477:55:3","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":820,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"6498:21:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6498:23:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":822,"nodeType":"RevertStatement","src":"6491:30:3"}]}},{"expression":{"id":829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":825,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"6541:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6543:12:3","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":701,"src":"6541:14:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":828,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"6558:7:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6541:24:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":830,"nodeType":"ExpressionStatement","src":"6541:24:3"},{"expression":{"id":835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":831,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"6575:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6577:13:3","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":704,"src":"6575:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6593:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6575:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":836,"nodeType":"ExpressionStatement","src":"6575:22:3"},{"id":837,"nodeType":"PlaceholderStatement","src":"6607:1:3"},{"expression":{"id":842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":838,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"6618:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6620:13:3","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":704,"src":"6618:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6636:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6618:23:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":843,"nodeType":"ExpressionStatement","src":"6618:23:3"},{"eventCall":{"arguments":[{"id":845,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"6668:7:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":844,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":719,"src":"6656:11:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6656:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":847,"nodeType":"EmitStatement","src":"6651:25:3"}]},"documentation":{"id":803,"nodeType":"StructuredDocumentation","src":"5179:1068:3","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":849,"name":"reinitializer","nameLocation":"6261:13:3","nodeType":"ModifierDefinition","parameters":{"id":806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":805,"mutability":"mutable","name":"version","nameLocation":"6282:7:3","nodeType":"VariableDeclaration","scope":849,"src":"6275:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":804,"name":"uint64","nodeType":"ElementaryTypeName","src":"6275:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6274:16:3"},"src":"6252:431:3","virtual":false,"visibility":"internal"},{"body":{"id":856,"nodeType":"Block","src":"6921:48:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":852,"name":"_checkInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":870,"src":"6931:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6931:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":854,"nodeType":"ExpressionStatement","src":"6931:20:3"},{"id":855,"nodeType":"PlaceholderStatement","src":"6961:1:3"}]},"documentation":{"id":850,"nodeType":"StructuredDocumentation","src":"6689:199:3","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":857,"name":"onlyInitializing","nameLocation":"6902:16:3","nodeType":"ModifierDefinition","parameters":{"id":851,"nodeType":"ParameterList","parameters":[],"src":"6918:2:3"},"src":"6893:76:3","virtual":false,"visibility":"internal"},{"body":{"id":869,"nodeType":"Block","src":"7136:89:3","statements":[{"condition":{"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7150:18:3","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":861,"name":"_isInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":938,"src":"7151:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7151:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":868,"nodeType":"IfStatement","src":"7146:73:3","trueBody":{"id":867,"nodeType":"Block","src":"7170:49:3","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":864,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":714,"src":"7191:15:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7191:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":866,"nodeType":"RevertStatement","src":"7184:24:3"}]}}]},"documentation":{"id":858,"nodeType":"StructuredDocumentation","src":"6975:104:3","text":" @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}."},"id":870,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInitializing","nameLocation":"7093:18:3","nodeType":"FunctionDefinition","parameters":{"id":859,"nodeType":"ParameterList","parameters":[],"src":"7111:2:3"},"returnParameters":{"id":860,"nodeType":"ParameterList","parameters":[],"src":"7136:0:3"},"scope":948,"src":"7084:141:3","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":915,"nodeType":"Block","src":"7760:373:3","statements":[{"assignments":[876],"declarations":[{"constant":false,"id":876,"mutability":"mutable","name":"$","nameLocation":"7855:1:3","nodeType":"VariableDeclaration","scope":915,"src":"7826:30:3","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":875,"nodeType":"UserDefinedTypeName","pathNode":{"id":874,"name":"InitializableStorage","nameLocations":["7826:20:3"],"nodeType":"IdentifierPath","referencedDeclaration":705,"src":"7826:20:3"},"referencedDeclaration":705,"src":"7826:20:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":879,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":877,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"7859:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$705_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7859:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7826:59:3"},{"condition":{"expression":{"id":880,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"7900:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7902:13:3","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":704,"src":"7900:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":886,"nodeType":"IfStatement","src":"7896:76:3","trueBody":{"id":885,"nodeType":"Block","src":"7917:55:3","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":882,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"7938:21:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7938:23:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":884,"nodeType":"RevertStatement","src":"7931:30:3"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":887,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"7985:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7987:12:3","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":701,"src":"7985:14:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8008:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":890,"name":"uint64","nodeType":"ElementaryTypeName","src":"8008:6:3","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":889,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8003:4:3","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8003:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8016:3:3","memberName":"max","nodeType":"MemberAccess","src":"8003:16:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7985:34:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":914,"nodeType":"IfStatement","src":"7981:146:3","trueBody":{"id":913,"nodeType":"Block","src":"8021:106:3","statements":[{"expression":{"id":903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":895,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"8035:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8037:12:3","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":701,"src":"8035:14:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8057:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":899,"name":"uint64","nodeType":"ElementaryTypeName","src":"8057:6:3","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":898,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8052:4:3","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8052:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8065:3:3","memberName":"max","nodeType":"MemberAccess","src":"8052:16:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8035:33:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":904,"nodeType":"ExpressionStatement","src":"8035:33:3"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8104:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":907,"name":"uint64","nodeType":"ElementaryTypeName","src":"8104:6:3","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":906,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8099:4:3","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8099:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8112:3:3","memberName":"max","nodeType":"MemberAccess","src":"8099:16:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":905,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":719,"src":"8087:11:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":912,"nodeType":"EmitStatement","src":"8082:34:3"}]}}]},"documentation":{"id":871,"nodeType":"StructuredDocumentation","src":"7231:475:3","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":916,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"7720:20:3","nodeType":"FunctionDefinition","parameters":{"id":872,"nodeType":"ParameterList","parameters":[],"src":"7740:2:3"},"returnParameters":{"id":873,"nodeType":"ParameterList","parameters":[],"src":"7760:0:3"},"scope":948,"src":"7711:422:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":926,"nodeType":"Block","src":"8308:63:3","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":922,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"8325:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$705_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8325:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8352:12:3","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":701,"src":"8325:39:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":921,"id":925,"nodeType":"Return","src":"8318:46:3"}]},"documentation":{"id":917,"nodeType":"StructuredDocumentation","src":"8139:99:3","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":927,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"8252:22:3","nodeType":"FunctionDefinition","parameters":{"id":918,"nodeType":"ParameterList","parameters":[],"src":"8274:2:3"},"returnParameters":{"id":921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":927,"src":"8300:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":919,"name":"uint64","nodeType":"ElementaryTypeName","src":"8300:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8299:8:3"},"scope":948,"src":"8243:128:3","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":937,"nodeType":"Block","src":"8543:64:3","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":933,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"8560:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$705_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8587:13:3","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":704,"src":"8560:40:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":932,"id":936,"nodeType":"Return","src":"8553:47:3"}]},"documentation":{"id":928,"nodeType":"StructuredDocumentation","src":"8377:105:3","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":938,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"8496:15:3","nodeType":"FunctionDefinition","parameters":{"id":929,"nodeType":"ParameterList","parameters":[],"src":"8511:2:3"},"returnParameters":{"id":932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":938,"src":"8537:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":930,"name":"bool","nodeType":"ElementaryTypeName","src":"8537:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8536:6:3"},"scope":948,"src":"8487:120:3","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":946,"nodeType":"Block","src":"8827:80:3","statements":[{"AST":{"nativeSrc":"8846:55:3","nodeType":"YulBlock","src":"8846:55:3","statements":[{"nativeSrc":"8860:31:3","nodeType":"YulAssignment","src":"8860:31:3","value":{"name":"INITIALIZABLE_STORAGE","nativeSrc":"8870:21:3","nodeType":"YulIdentifier","src":"8870:21:3"},"variableNames":[{"name":"$.slot","nativeSrc":"8860:6:3","nodeType":"YulIdentifier","src":"8860:6:3"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":943,"isOffset":false,"isSlot":true,"src":"8860:6:3","suffix":"slot","valueSize":1},{"declaration":708,"isOffset":false,"isSlot":false,"src":"8870:21:3","valueSize":1}],"id":945,"nodeType":"InlineAssembly","src":"8837:64:3"}]},"documentation":{"id":939,"nodeType":"StructuredDocumentation","src":"8613:67:3","text":" @dev Returns a pointer to the storage namespace."},"id":947,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializableStorage","nameLocation":"8746:24:3","nodeType":"FunctionDefinition","parameters":{"id":940,"nodeType":"ParameterList","parameters":[],"src":"8770:2:3"},"returnParameters":{"id":944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":943,"mutability":"mutable","name":"$","nameLocation":"8824:1:3","nodeType":"VariableDeclaration","scope":947,"src":"8795:30:3","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":942,"nodeType":"UserDefinedTypeName","pathNode":{"id":941,"name":"InitializableStorage","nameLocations":["8795:20:3"],"nodeType":"IdentifierPath","referencedDeclaration":705,"src":"8795:20:3"},"referencedDeclaration":705,"src":"8795:20:3","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$705_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"src":"8794:32:3"},"scope":948,"src":"8737:170:3","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":949,"src":"2349:6560:3","usedErrors":[711,714],"usedEvents":[719]}],"src":"113:8797:3"},"id":3},"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","exportedSymbols":{"ERC1967Utils":[3696],"IERC1822Proxiable":[3265],"Initializable":[948],"UUPSUpgradeable":[1130]},"id":1131,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":950,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:4"},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","file":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","id":952,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1131,"sourceUnit":3266,"src":"141:88:4","symbolAliases":[{"foreign":{"id":951,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3265,"src":"149:17:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","id":954,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1131,"sourceUnit":3697,"src":"230:84:4","symbolAliases":[{"foreign":{"id":953,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"238:12:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"./Initializable.sol","id":956,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1131,"sourceUnit":949,"src":"315:50:4","symbolAliases":[{"foreign":{"id":955,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"323:13:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":958,"name":"Initializable","nameLocations":["1023:13:4"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"1023:13:4"},"id":959,"nodeType":"InheritanceSpecifier","src":"1023:13:4"},{"baseName":{"id":960,"name":"IERC1822Proxiable","nameLocations":["1038:17:4"],"nodeType":"IdentifierPath","referencedDeclaration":3265,"src":"1038:17:4"},"id":961,"nodeType":"InheritanceSpecifier","src":"1038:17:4"}],"canonicalName":"UUPSUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":957,"nodeType":"StructuredDocumentation","src":"367:618:4","text":" @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an\n {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy.\n A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is\n reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing\n `UUPSUpgradeable` with a custom implementation of upgrades.\n The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism."},"fullyImplemented":false,"id":1130,"linearizedBaseContracts":[1130,3265,948],"name":"UUPSUpgradeable","nameLocation":"1004:15:4","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":962,"nodeType":"StructuredDocumentation","src":"1062:61:4","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":968,"mutability":"immutable","name":"__self","nameLocation":"1154:6:4","nodeType":"VariableDeclaration","scope":1130,"src":"1128:48:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":963,"name":"address","nodeType":"ElementaryTypeName","src":"1128:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"id":966,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1171:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1130","typeString":"contract UUPSUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1130","typeString":"contract UUPSUpgradeable"}],"id":965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1163:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":964,"name":"address","nodeType":"ElementaryTypeName","src":"1163:7:4","typeDescriptions":{}}},"id":967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1163:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":true,"documentation":{"id":969,"nodeType":"StructuredDocumentation","src":"1183:631:4","text":" @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgradeTo(address)`\n and `upgradeToAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called,\n while `upgradeToAndCall` will invoke the `receive` function if the second argument is the empty byte string.\n If the getter returns `\"5.0.0\"`, only `upgradeToAndCall(address,bytes)` is present, and the second argument must\n be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n during an upgrade."},"functionSelector":"ad3cb1cc","id":972,"mutability":"constant","name":"UPGRADE_INTERFACE_VERSION","nameLocation":"1842:25:4","nodeType":"VariableDeclaration","scope":1130,"src":"1819:58:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":970,"name":"string","nodeType":"ElementaryTypeName","src":"1819:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"352e302e30","id":971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1870:7:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c","typeString":"literal_string \"5.0.0\""},"value":"5.0.0"},"visibility":"public"},{"documentation":{"id":973,"nodeType":"StructuredDocumentation","src":"1884:65:4","text":" @dev The call is from an unauthorized context."},"errorSelector":"e07c8dba","id":975,"name":"UUPSUnauthorizedCallContext","nameLocation":"1960:27:4","nodeType":"ErrorDefinition","parameters":{"id":974,"nodeType":"ParameterList","parameters":[],"src":"1987:2:4"},"src":"1954:36:4"},{"documentation":{"id":976,"nodeType":"StructuredDocumentation","src":"1996:68:4","text":" @dev The storage `slot` is unsupported as a UUID."},"errorSelector":"aa1d49a4","id":980,"name":"UUPSUnsupportedProxiableUUID","nameLocation":"2075:28:4","nodeType":"ErrorDefinition","parameters":{"id":979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":978,"mutability":"mutable","name":"slot","nameLocation":"2112:4:4","nodeType":"VariableDeclaration","scope":980,"src":"2104:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2104:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2103:14:4"},"src":"2069:49:4"},{"body":{"id":987,"nodeType":"Block","src":"2645:41:4","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":983,"name":"_checkProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1062,"src":"2655:11:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2655:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":985,"nodeType":"ExpressionStatement","src":"2655:13:4"},{"id":986,"nodeType":"PlaceholderStatement","src":"2678:1:4"}]},"documentation":{"id":981,"nodeType":"StructuredDocumentation","src":"2124:495:4","text":" @dev Check that the execution is being performed through a delegatecall call and that the execution context is\n a proxy contract with an implementation (as defined in ERC-1967) pointing to self. This should only be the case\n for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a\n function through ERC-1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to\n fail."},"id":988,"name":"onlyProxy","nameLocation":"2633:9:4","nodeType":"ModifierDefinition","parameters":{"id":982,"nodeType":"ParameterList","parameters":[],"src":"2642:2:4"},"src":"2624:62:4","virtual":false,"visibility":"internal"},{"body":{"id":995,"nodeType":"Block","src":"2916:48:4","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":991,"name":"_checkNotDelegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"2926:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2926:20:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":993,"nodeType":"ExpressionStatement","src":"2926:20:4"},{"id":994,"nodeType":"PlaceholderStatement","src":"2956:1:4"}]},"documentation":{"id":989,"nodeType":"StructuredDocumentation","src":"2692:195:4","text":" @dev Check that the execution is not being performed through a delegate call. This allows a function to be\n callable on the implementing contract but not through proxies."},"id":996,"name":"notDelegated","nameLocation":"2901:12:4","nodeType":"ModifierDefinition","parameters":{"id":990,"nodeType":"ParameterList","parameters":[],"src":"2913:2:4"},"src":"2892:72:4","virtual":false,"visibility":"internal"},{"body":{"id":1001,"nodeType":"Block","src":"3030:7:4","statements":[]},"id":1002,"implemented":true,"kind":"function","modifiers":[{"id":999,"kind":"modifierInvocation","modifierName":{"id":998,"name":"onlyInitializing","nameLocations":["3013:16:4"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"3013:16:4"},"nodeType":"ModifierInvocation","src":"3013:16:4"}],"name":"__UUPSUpgradeable_init","nameLocation":"2979:22:4","nodeType":"FunctionDefinition","parameters":{"id":997,"nodeType":"ParameterList","parameters":[],"src":"3001:2:4"},"returnParameters":{"id":1000,"nodeType":"ParameterList","parameters":[],"src":"3030:0:4"},"scope":1130,"src":"2970:67:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1007,"nodeType":"Block","src":"3113:7:4","statements":[]},"id":1008,"implemented":true,"kind":"function","modifiers":[{"id":1005,"kind":"modifierInvocation","modifierName":{"id":1004,"name":"onlyInitializing","nameLocations":["3096:16:4"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"3096:16:4"},"nodeType":"ModifierInvocation","src":"3096:16:4"}],"name":"__UUPSUpgradeable_init_unchained","nameLocation":"3052:32:4","nodeType":"FunctionDefinition","parameters":{"id":1003,"nodeType":"ParameterList","parameters":[],"src":"3084:2:4"},"returnParameters":{"id":1006,"nodeType":"ParameterList","parameters":[],"src":"3113:0:4"},"scope":1130,"src":"3043:77:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[3264],"body":{"id":1019,"nodeType":"Block","src":"3786:56:4","statements":[{"expression":{"expression":{"id":1016,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"3803:12:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$3696_$","typeString":"type(library ERC1967Utils)"}},"id":1017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3816:19:4","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":3417,"src":"3803:32:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1015,"id":1018,"nodeType":"Return","src":"3796:39:4"}]},"documentation":{"id":1009,"nodeType":"StructuredDocumentation","src":"3125:578:4","text":" @dev Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the\n implementation. It is used to validate the implementation's compatibility when performing an upgrade.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"functionSelector":"52d1902d","id":1020,"implemented":true,"kind":"function","modifiers":[{"id":1012,"kind":"modifierInvocation","modifierName":{"id":1011,"name":"notDelegated","nameLocations":["3755:12:4"],"nodeType":"IdentifierPath","referencedDeclaration":996,"src":"3755:12:4"},"nodeType":"ModifierInvocation","src":"3755:12:4"}],"name":"proxiableUUID","nameLocation":"3717:13:4","nodeType":"FunctionDefinition","parameters":{"id":1010,"nodeType":"ParameterList","parameters":[],"src":"3730:2:4"},"returnParameters":{"id":1015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1020,"src":"3777:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3777:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3776:9:4"},"scope":1130,"src":"3708:134:4","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":1039,"nodeType":"Block","src":"4266:109:4","statements":[{"expression":{"arguments":[{"id":1031,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1023,"src":"4294:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1030,"name":"_authorizeUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1084,"src":"4276:17:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4276:36:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1033,"nodeType":"ExpressionStatement","src":"4276:36:4"},{"expression":{"arguments":[{"id":1035,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1023,"src":"4344:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1036,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1025,"src":"4363:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1034,"name":"_upgradeToAndCallUUPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"4322:21:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":1037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4322:46:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1038,"nodeType":"ExpressionStatement","src":"4322:46:4"}]},"documentation":{"id":1021,"nodeType":"StructuredDocumentation","src":"3848:308:4","text":" @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call\n encoded in `data`.\n Calls {_authorizeUpgrade}.\n Emits an {Upgraded} event.\n @custom:oz-upgrades-unsafe-allow-reachable delegatecall"},"functionSelector":"4f1ef286","id":1040,"implemented":true,"kind":"function","modifiers":[{"id":1028,"kind":"modifierInvocation","modifierName":{"id":1027,"name":"onlyProxy","nameLocations":["4256:9:4"],"nodeType":"IdentifierPath","referencedDeclaration":988,"src":"4256:9:4"},"nodeType":"ModifierInvocation","src":"4256:9:4"}],"name":"upgradeToAndCall","nameLocation":"4170:16:4","nodeType":"FunctionDefinition","parameters":{"id":1026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1023,"mutability":"mutable","name":"newImplementation","nameLocation":"4195:17:4","nodeType":"VariableDeclaration","scope":1040,"src":"4187:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1022,"name":"address","nodeType":"ElementaryTypeName","src":"4187:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1025,"mutability":"mutable","name":"data","nameLocation":"4227:4:4","nodeType":"VariableDeclaration","scope":1040,"src":"4214:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1024,"name":"bytes","nodeType":"ElementaryTypeName","src":"4214:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4186:46:4"},"returnParameters":{"id":1029,"nodeType":"ParameterList","parameters":[],"src":"4266:0:4"},"scope":1130,"src":"4161:214:4","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":1061,"nodeType":"Block","src":"4648:267:4","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1046,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4683:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1130","typeString":"contract UUPSUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1130","typeString":"contract UUPSUpgradeable"}],"id":1045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4675:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1044,"name":"address","nodeType":"ElementaryTypeName","src":"4675:7:4","typeDescriptions":{}}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4675:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1048,"name":"__self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"4692:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4675:23:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1050,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"4753:12:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$3696_$","typeString":"type(library ERC1967Utils)"}},"id":1051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4766:17:4","memberName":"getImplementation","nodeType":"MemberAccess","referencedDeclaration":3448,"src":"4753:30:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4753:32:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1053,"name":"__self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"4789:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4753:42:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4675:120:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1060,"nodeType":"IfStatement","src":"4658:251:4","trueBody":{"id":1059,"nodeType":"Block","src":"4848:61:4","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1056,"name":"UUPSUnauthorizedCallContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":975,"src":"4869:27:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4869:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1058,"nodeType":"RevertStatement","src":"4862:36:4"}]}}]},"documentation":{"id":1041,"nodeType":"StructuredDocumentation","src":"4381:217:4","text":" @dev Reverts if the execution is not performed via delegatecall or the execution\n context is not of a proxy with an ERC-1967 compliant implementation pointing to self.\n See {_onlyProxy}."},"id":1062,"implemented":true,"kind":"function","modifiers":[],"name":"_checkProxy","nameLocation":"4612:11:4","nodeType":"FunctionDefinition","parameters":{"id":1042,"nodeType":"ParameterList","parameters":[],"src":"4623:2:4"},"returnParameters":{"id":1043,"nodeType":"ParameterList","parameters":[],"src":"4648:0:4"},"scope":1130,"src":"4603:312:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1077,"nodeType":"Block","src":"5084:161:4","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1068,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5106:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1130","typeString":"contract UUPSUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1130","typeString":"contract UUPSUpgradeable"}],"id":1067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5098:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1066,"name":"address","nodeType":"ElementaryTypeName","src":"5098:7:4","typeDescriptions":{}}},"id":1069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5098:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1070,"name":"__self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"5115:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5098:23:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1076,"nodeType":"IfStatement","src":"5094:145:4","trueBody":{"id":1075,"nodeType":"Block","src":"5123:116:4","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1072,"name":"UUPSUnauthorizedCallContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":975,"src":"5199:27:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5199:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1074,"nodeType":"RevertStatement","src":"5192:36:4"}]}}]},"documentation":{"id":1063,"nodeType":"StructuredDocumentation","src":"4921:106:4","text":" @dev Reverts if the execution is performed via delegatecall.\n See {notDelegated}."},"id":1078,"implemented":true,"kind":"function","modifiers":[],"name":"_checkNotDelegated","nameLocation":"5041:18:4","nodeType":"FunctionDefinition","parameters":{"id":1064,"nodeType":"ParameterList","parameters":[],"src":"5059:2:4"},"returnParameters":{"id":1065,"nodeType":"ParameterList","parameters":[],"src":"5084:0:4"},"scope":1130,"src":"5032:213:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"documentation":{"id":1079,"nodeType":"StructuredDocumentation","src":"5251:372:4","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by\n {upgradeToAndCall}.\n Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}.\n ```solidity\n function _authorizeUpgrade(address) internal onlyOwner {}\n ```"},"id":1084,"implemented":false,"kind":"function","modifiers":[],"name":"_authorizeUpgrade","nameLocation":"5637:17:4","nodeType":"FunctionDefinition","parameters":{"id":1082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1081,"mutability":"mutable","name":"newImplementation","nameLocation":"5663:17:4","nodeType":"VariableDeclaration","scope":1084,"src":"5655:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1080,"name":"address","nodeType":"ElementaryTypeName","src":"5655:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5654:27:4"},"returnParameters":{"id":1083,"nodeType":"ParameterList","parameters":[],"src":"5698:0:4"},"scope":1130,"src":"5628:71:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1128,"nodeType":"Block","src":"6142:453:4","statements":[{"clauses":[{"block":{"id":1117,"nodeType":"Block","src":"6232:212:4","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1100,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1098,"src":"6250:4:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1101,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"6258:12:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$3696_$","typeString":"type(library ERC1967Utils)"}},"id":1102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6271:19:4","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":3417,"src":"6258:32:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6250:40:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1109,"nodeType":"IfStatement","src":"6246:120:4","trueBody":{"id":1108,"nodeType":"Block","src":"6292:74:4","statements":[{"errorCall":{"arguments":[{"id":1105,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1098,"src":"6346:4:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1104,"name":"UUPSUnsupportedProxiableUUID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"6317:28:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":1106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6317:34:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1107,"nodeType":"RevertStatement","src":"6310:41:4"}]}},{"expression":{"arguments":[{"id":1113,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"6409:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1114,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"6428:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1110,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"6379:12:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$3696_$","typeString":"type(library ERC1967Utils)"}},"id":1112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6392:16:4","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":3511,"src":"6379:29:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":1115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6379:54:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1116,"nodeType":"ExpressionStatement","src":"6379:54:4"}]},"errorName":"","id":1118,"nodeType":"TryCatchClause","parameters":{"id":1099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1098,"mutability":"mutable","name":"slot","nameLocation":"6226:4:4","nodeType":"VariableDeclaration","scope":1118,"src":"6218:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6218:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6217:14:4"},"src":"6209:235:4"},{"block":{"id":1125,"nodeType":"Block","src":"6451:138:4","statements":[{"errorCall":{"arguments":[{"id":1122,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"6560:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1119,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"6518:12:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$3696_$","typeString":"type(library ERC1967Utils)"}},"id":1121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6531:28:4","memberName":"ERC1967InvalidImplementation","nodeType":"MemberAccess","referencedDeclaration":3422,"src":"6518:41:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6518:60:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1124,"nodeType":"RevertStatement","src":"6511:67:4"}]},"errorName":"","id":1126,"nodeType":"TryCatchClause","src":"6445:144:4"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":1093,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"6174:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1092,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3265,"src":"6156:17:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$3265_$","typeString":"type(contract IERC1822Proxiable)"}},"id":1094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6156:36:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$3265","typeString":"contract IERC1822Proxiable"}},"id":1095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6193:13:4","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":3264,"src":"6156:50:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":1096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6156:52:4","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1127,"nodeType":"TryStatement","src":"6152:437:4"}]},"documentation":{"id":1085,"nodeType":"StructuredDocumentation","src":"5705:347:4","text":" @dev Performs an implementation upgrade with a security check for UUPS proxies, and additional setup call.\n As a security check, {proxiableUUID} is invoked in the new implementation, and the return value\n is expected to be the implementation slot in ERC-1967.\n Emits an {IERC1967-Upgraded} event."},"id":1129,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"6066:21:4","nodeType":"FunctionDefinition","parameters":{"id":1090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1087,"mutability":"mutable","name":"newImplementation","nameLocation":"6096:17:4","nodeType":"VariableDeclaration","scope":1129,"src":"6088:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1086,"name":"address","nodeType":"ElementaryTypeName","src":"6088:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1089,"mutability":"mutable","name":"data","nameLocation":"6128:4:4","nodeType":"VariableDeclaration","scope":1129,"src":"6115:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1088,"name":"bytes","nodeType":"ElementaryTypeName","src":"6115:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6087:46:4"},"returnParameters":{"id":1091,"nodeType":"ParameterList","parameters":[],"src":"6142:0:4"},"scope":1130,"src":"6057:538:4","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":1131,"src":"986:5611:4","usedErrors":[711,714,975,980,3422,3435,6379,6770],"usedEvents":[719,3238]}],"src":"115:6483:4"},"id":4},"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","exportedSymbols":{"ContextUpgradeable":[2873],"ERC20Upgradeable":[1747],"IERC20":[4735],"IERC20Errors":[3307],"IERC20Metadata":[4761],"Initializable":[948]},"id":1748,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1132,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"105:24:5"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":1134,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1748,"sourceUnit":4736,"src":"131:70:5","symbolAliases":[{"foreign":{"id":1133,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"139:6:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":1136,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1748,"sourceUnit":4762,"src":"202:97:5","symbolAliases":[{"foreign":{"id":1135,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4761,"src":"210:14:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../../utils/ContextUpgradeable.sol","id":1138,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1748,"sourceUnit":2874,"src":"300:70:5","symbolAliases":[{"foreign":{"id":1137,"name":"ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2873,"src":"308:18:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","id":1140,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1748,"sourceUnit":3403,"src":"371:83:5","symbolAliases":[{"foreign":{"id":1139,"name":"IERC20Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3307,"src":"379:12:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","id":1142,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1748,"sourceUnit":949,"src":"455:66:5","symbolAliases":[{"foreign":{"id":1141,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"463:13:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1144,"name":"Initializable","nameLocations":["1319:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"1319:13:5"},"id":1145,"nodeType":"InheritanceSpecifier","src":"1319:13:5"},{"baseName":{"id":1146,"name":"ContextUpgradeable","nameLocations":["1334:18:5"],"nodeType":"IdentifierPath","referencedDeclaration":2873,"src":"1334:18:5"},"id":1147,"nodeType":"InheritanceSpecifier","src":"1334:18:5"},{"baseName":{"id":1148,"name":"IERC20","nameLocations":["1354:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"1354:6:5"},"id":1149,"nodeType":"InheritanceSpecifier","src":"1354:6:5"},{"baseName":{"id":1150,"name":"IERC20Metadata","nameLocations":["1362:14:5"],"nodeType":"IdentifierPath","referencedDeclaration":4761,"src":"1362:14:5"},"id":1151,"nodeType":"InheritanceSpecifier","src":"1362:14:5"},{"baseName":{"id":1152,"name":"IERC20Errors","nameLocations":["1378:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":3307,"src":"1378:12:5"},"id":1153,"nodeType":"InheritanceSpecifier","src":"1378:12:5"}],"canonicalName":"ERC20Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1143,"nodeType":"StructuredDocumentation","src":"523:757:5","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications."},"fullyImplemented":true,"id":1747,"linearizedBaseContracts":[1747,3307,4761,4735,2873,948],"name":"ERC20Upgradeable","nameLocation":"1299:16:5","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ERC20Upgradeable.ERC20Storage","documentation":{"id":1154,"nodeType":"StructuredDocumentation","src":"1397:63:5","text":"@custom:storage-location erc7201:openzeppelin.storage.ERC20"},"id":1171,"members":[{"constant":false,"id":1158,"mutability":"mutable","name":"_balances","nameLocation":"1531:9:5","nodeType":"VariableDeclaration","scope":1171,"src":"1495:45:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1157,"keyName":"account","keyNameLocation":"1511:7:5","keyType":{"id":1155,"name":"address","nodeType":"ElementaryTypeName","src":"1503:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1495:35:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1156,"name":"uint256","nodeType":"ElementaryTypeName","src":"1522:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":1164,"mutability":"mutable","name":"_allowances","nameLocation":"1615:11:5","nodeType":"VariableDeclaration","scope":1171,"src":"1551:75:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":1163,"keyName":"account","keyNameLocation":"1567:7:5","keyType":{"id":1159,"name":"address","nodeType":"ElementaryTypeName","src":"1559:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1551:63:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1162,"keyName":"spender","keyNameLocation":"1594:7:5","keyType":{"id":1160,"name":"address","nodeType":"ElementaryTypeName","src":"1586:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1578:35:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1161,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"constant":false,"id":1166,"mutability":"mutable","name":"_totalSupply","nameLocation":"1645:12:5","nodeType":"VariableDeclaration","scope":1171,"src":"1637:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1165,"name":"uint256","nodeType":"ElementaryTypeName","src":"1637:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1168,"mutability":"mutable","name":"_name","nameLocation":"1675:5:5","nodeType":"VariableDeclaration","scope":1171,"src":"1668:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":1167,"name":"string","nodeType":"ElementaryTypeName","src":"1668:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"_symbol","nameLocation":"1697:7:5","nodeType":"VariableDeclaration","scope":1171,"src":"1690:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":1169,"name":"string","nodeType":"ElementaryTypeName","src":"1690:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"ERC20Storage","nameLocation":"1472:12:5","nodeType":"StructDefinition","scope":1747,"src":"1465:246:5","visibility":"public"},{"constant":true,"id":1174,"mutability":"constant","name":"ERC20StorageLocation","nameLocation":"1851:20:5","nodeType":"VariableDeclaration","scope":1747,"src":"1826:114:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1826:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835326336333234376531663437646231396435636530343630303330633439376630363763613463656266373162613938656561646162653230626163653030","id":1173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1874:66:5","typeDescriptions":{"typeIdentifier":"t_rational_37439836327923360225337895871394760624280537466773280374265222508165906222592_by_1","typeString":"int_const 3743...(69 digits omitted)...2592"},"value":"0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00"},"visibility":"private"},{"body":{"id":1181,"nodeType":"Block","src":"2021:79:5","statements":[{"AST":{"nativeSrc":"2040:54:5","nodeType":"YulBlock","src":"2040:54:5","statements":[{"nativeSrc":"2054:30:5","nodeType":"YulAssignment","src":"2054:30:5","value":{"name":"ERC20StorageLocation","nativeSrc":"2064:20:5","nodeType":"YulIdentifier","src":"2064:20:5"},"variableNames":[{"name":"$.slot","nativeSrc":"2054:6:5","nodeType":"YulIdentifier","src":"2054:6:5"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1178,"isOffset":false,"isSlot":true,"src":"2054:6:5","suffix":"slot","valueSize":1},{"declaration":1174,"isOffset":false,"isSlot":false,"src":"2064:20:5","valueSize":1}],"id":1180,"nodeType":"InlineAssembly","src":"2031:63:5"}]},"id":1182,"implemented":true,"kind":"function","modifiers":[],"name":"_getERC20Storage","nameLocation":"1956:16:5","nodeType":"FunctionDefinition","parameters":{"id":1175,"nodeType":"ParameterList","parameters":[],"src":"1972:2:5"},"returnParameters":{"id":1179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1178,"mutability":"mutable","name":"$","nameLocation":"2018:1:5","nodeType":"VariableDeclaration","scope":1182,"src":"1997:22:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"},"typeName":{"id":1177,"nodeType":"UserDefinedTypeName","pathNode":{"id":1176,"name":"ERC20Storage","nameLocations":["1997:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1171,"src":"1997:12:5"},"referencedDeclaration":1171,"src":"1997:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"}},"visibility":"internal"}],"src":"1996:24:5"},"scope":1747,"src":"1947:153:5","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1197,"nodeType":"Block","src":"2374:55:5","statements":[{"expression":{"arguments":[{"id":1193,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1185,"src":"2407:5:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1194,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"2414:7:5","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"}],"id":1192,"name":"__ERC20_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"2384:22:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2384:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1196,"nodeType":"ExpressionStatement","src":"2384:38:5"}]},"documentation":{"id":1183,"nodeType":"StructuredDocumentation","src":"2106:171:5","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"id":1198,"implemented":true,"kind":"function","modifiers":[{"id":1190,"kind":"modifierInvocation","modifierName":{"id":1189,"name":"onlyInitializing","nameLocations":["2357:16:5"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"2357:16:5"},"nodeType":"ModifierInvocation","src":"2357:16:5"}],"name":"__ERC20_init","nameLocation":"2291:12:5","nodeType":"FunctionDefinition","parameters":{"id":1188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1185,"mutability":"mutable","name":"name_","nameLocation":"2318:5:5","nodeType":"VariableDeclaration","scope":1198,"src":"2304:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1184,"name":"string","nodeType":"ElementaryTypeName","src":"2304:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1187,"mutability":"mutable","name":"symbol_","nameLocation":"2339:7:5","nodeType":"VariableDeclaration","scope":1198,"src":"2325:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1186,"name":"string","nodeType":"ElementaryTypeName","src":"2325:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2303:44:5"},"returnParameters":{"id":1191,"nodeType":"ParameterList","parameters":[],"src":"2374:0:5"},"scope":1747,"src":"2282:147:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1225,"nodeType":"Block","src":"2537:114:5","statements":[{"assignments":[1209],"declarations":[{"constant":false,"id":1209,"mutability":"mutable","name":"$","nameLocation":"2568:1:5","nodeType":"VariableDeclaration","scope":1225,"src":"2547:22:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"},"typeName":{"id":1208,"nodeType":"UserDefinedTypeName","pathNode":{"id":1207,"name":"ERC20Storage","nameLocations":["2547:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1171,"src":"2547:12:5"},"referencedDeclaration":1171,"src":"2547:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"}},"visibility":"internal"}],"id":1212,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1210,"name":"_getERC20Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"2572:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC20Storage_$1171_storage_ptr_$","typeString":"function () pure returns (struct ERC20Upgradeable.ERC20Storage storage pointer)"}},"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2572:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2547:43:5"},{"expression":{"id":1217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1213,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"2600:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2602:5:5","memberName":"_name","nodeType":"MemberAccess","referencedDeclaration":1168,"src":"2600:7:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1216,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1200,"src":"2610:5:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2600:15:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1218,"nodeType":"ExpressionStatement","src":"2600:15:5"},{"expression":{"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1219,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"2625:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2627:7:5","memberName":"_symbol","nodeType":"MemberAccess","referencedDeclaration":1170,"src":"2625:9:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1222,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1202,"src":"2637:7:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2625:19:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1224,"nodeType":"ExpressionStatement","src":"2625:19:5"}]},"id":1226,"implemented":true,"kind":"function","modifiers":[{"id":1205,"kind":"modifierInvocation","modifierName":{"id":1204,"name":"onlyInitializing","nameLocations":["2520:16:5"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"2520:16:5"},"nodeType":"ModifierInvocation","src":"2520:16:5"}],"name":"__ERC20_init_unchained","nameLocation":"2444:22:5","nodeType":"FunctionDefinition","parameters":{"id":1203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1200,"mutability":"mutable","name":"name_","nameLocation":"2481:5:5","nodeType":"VariableDeclaration","scope":1226,"src":"2467:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1199,"name":"string","nodeType":"ElementaryTypeName","src":"2467:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1202,"mutability":"mutable","name":"symbol_","nameLocation":"2502:7:5","nodeType":"VariableDeclaration","scope":1226,"src":"2488:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1201,"name":"string","nodeType":"ElementaryTypeName","src":"2488:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2466:44:5"},"returnParameters":{"id":1206,"nodeType":"ParameterList","parameters":[],"src":"2537:0:5"},"scope":1747,"src":"2435:216:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4748],"body":{"id":1241,"nodeType":"Block","src":"2776:84:5","statements":[{"assignments":[1234],"declarations":[{"constant":false,"id":1234,"mutability":"mutable","name":"$","nameLocation":"2807:1:5","nodeType":"VariableDeclaration","scope":1241,"src":"2786:22:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"},"typeName":{"id":1233,"nodeType":"UserDefinedTypeName","pathNode":{"id":1232,"name":"ERC20Storage","nameLocations":["2786:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1171,"src":"2786:12:5"},"referencedDeclaration":1171,"src":"2786:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"}},"visibility":"internal"}],"id":1237,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1235,"name":"_getERC20Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"2811:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC20Storage_$1171_storage_ptr_$","typeString":"function () pure returns (struct ERC20Upgradeable.ERC20Storage storage pointer)"}},"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2811:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2786:43:5"},{"expression":{"expression":{"id":1238,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"2846:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2848:5:5","memberName":"_name","nodeType":"MemberAccess","referencedDeclaration":1168,"src":"2846:7:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1231,"id":1240,"nodeType":"Return","src":"2839:14:5"}]},"documentation":{"id":1227,"nodeType":"StructuredDocumentation","src":"2657:54:5","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":1242,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2725:4:5","nodeType":"FunctionDefinition","parameters":{"id":1228,"nodeType":"ParameterList","parameters":[],"src":"2729:2:5"},"returnParameters":{"id":1231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1242,"src":"2761:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1229,"name":"string","nodeType":"ElementaryTypeName","src":"2761:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2760:15:5"},"scope":1747,"src":"2716:144:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4754],"body":{"id":1257,"nodeType":"Block","src":"3035:86:5","statements":[{"assignments":[1250],"declarations":[{"constant":false,"id":1250,"mutability":"mutable","name":"$","nameLocation":"3066:1:5","nodeType":"VariableDeclaration","scope":1257,"src":"3045:22:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"},"typeName":{"id":1249,"nodeType":"UserDefinedTypeName","pathNode":{"id":1248,"name":"ERC20Storage","nameLocations":["3045:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1171,"src":"3045:12:5"},"referencedDeclaration":1171,"src":"3045:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"}},"visibility":"internal"}],"id":1253,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1251,"name":"_getERC20Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"3070:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC20Storage_$1171_storage_ptr_$","typeString":"function () pure returns (struct ERC20Upgradeable.ERC20Storage storage pointer)"}},"id":1252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3045:43:5"},{"expression":{"expression":{"id":1254,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1250,"src":"3105:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3107:7:5","memberName":"_symbol","nodeType":"MemberAccess","referencedDeclaration":1170,"src":"3105:9:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1247,"id":1256,"nodeType":"Return","src":"3098:16:5"}]},"documentation":{"id":1243,"nodeType":"StructuredDocumentation","src":"2866:102:5","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":1258,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2982:6:5","nodeType":"FunctionDefinition","parameters":{"id":1244,"nodeType":"ParameterList","parameters":[],"src":"2988:2:5"},"returnParameters":{"id":1247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1258,"src":"3020:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1245,"name":"string","nodeType":"ElementaryTypeName","src":"3020:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3019:15:5"},"scope":1747,"src":"2973:148:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4760],"body":{"id":1266,"nodeType":"Block","src":"3810:26:5","statements":[{"expression":{"hexValue":"3138","id":1264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3827:2:5","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":1263,"id":1265,"nodeType":"Return","src":"3820:9:5"}]},"documentation":{"id":1259,"nodeType":"StructuredDocumentation","src":"3127:622:5","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":1267,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3763:8:5","nodeType":"FunctionDefinition","parameters":{"id":1260,"nodeType":"ParameterList","parameters":[],"src":"3771:2:5"},"returnParameters":{"id":1263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1267,"src":"3803:5:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1261,"name":"uint8","nodeType":"ElementaryTypeName","src":"3803:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3802:7:5"},"scope":1747,"src":"3754:82:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4684],"body":{"id":1282,"nodeType":"Block","src":"3957:91:5","statements":[{"assignments":[1275],"declarations":[{"constant":false,"id":1275,"mutability":"mutable","name":"$","nameLocation":"3988:1:5","nodeType":"VariableDeclaration","scope":1282,"src":"3967:22:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"},"typeName":{"id":1274,"nodeType":"UserDefinedTypeName","pathNode":{"id":1273,"name":"ERC20Storage","nameLocations":["3967:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1171,"src":"3967:12:5"},"referencedDeclaration":1171,"src":"3967:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"}},"visibility":"internal"}],"id":1278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1276,"name":"_getERC20Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"3992:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC20Storage_$1171_storage_ptr_$","typeString":"function () pure returns (struct ERC20Upgradeable.ERC20Storage storage pointer)"}},"id":1277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3992:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3967:43:5"},{"expression":{"expression":{"id":1279,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"4027:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4029:12:5","memberName":"_totalSupply","nodeType":"MemberAccess","referencedDeclaration":1166,"src":"4027:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1272,"id":1281,"nodeType":"Return","src":"4020:21:5"}]},"documentation":{"id":1268,"nodeType":"StructuredDocumentation","src":"3842:49:5","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":1283,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3905:11:5","nodeType":"FunctionDefinition","parameters":{"id":1269,"nodeType":"ParameterList","parameters":[],"src":"3916:2:5"},"returnParameters":{"id":1272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1283,"src":"3948:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1270,"name":"uint256","nodeType":"ElementaryTypeName","src":"3948:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3947:9:5"},"scope":1747,"src":"3896:152:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4692],"body":{"id":1302,"nodeType":"Block","src":"4180:97:5","statements":[{"assignments":[1293],"declarations":[{"constant":false,"id":1293,"mutability":"mutable","name":"$","nameLocation":"4211:1:5","nodeType":"VariableDeclaration","scope":1302,"src":"4190:22:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"},"typeName":{"id":1292,"nodeType":"UserDefinedTypeName","pathNode":{"id":1291,"name":"ERC20Storage","nameLocations":["4190:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1171,"src":"4190:12:5"},"referencedDeclaration":1171,"src":"4190:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"}},"visibility":"internal"}],"id":1296,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1294,"name":"_getERC20Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"4215:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC20Storage_$1171_storage_ptr_$","typeString":"function () pure returns (struct ERC20Upgradeable.ERC20Storage storage pointer)"}},"id":1295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4215:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4190:43:5"},{"expression":{"baseExpression":{"expression":{"id":1297,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1293,"src":"4250:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4252:9:5","memberName":"_balances","nodeType":"MemberAccess","referencedDeclaration":1158,"src":"4250:11:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1300,"indexExpression":{"id":1299,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1286,"src":"4262:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4250:20:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1290,"id":1301,"nodeType":"Return","src":"4243:27:5"}]},"documentation":{"id":1284,"nodeType":"StructuredDocumentation","src":"4054:47:5","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":1303,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"4115:9:5","nodeType":"FunctionDefinition","parameters":{"id":1287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1286,"mutability":"mutable","name":"account","nameLocation":"4133:7:5","nodeType":"VariableDeclaration","scope":1303,"src":"4125:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1285,"name":"address","nodeType":"ElementaryTypeName","src":"4125:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4124:17:5"},"returnParameters":{"id":1290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1303,"src":"4171:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1288,"name":"uint256","nodeType":"ElementaryTypeName","src":"4171:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4170:9:5"},"scope":1747,"src":"4106:171:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4702],"body":{"id":1326,"nodeType":"Block","src":"4547:103:5","statements":[{"assignments":[1314],"declarations":[{"constant":false,"id":1314,"mutability":"mutable","name":"owner","nameLocation":"4565:5:5","nodeType":"VariableDeclaration","scope":1326,"src":"4557:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1313,"name":"address","nodeType":"ElementaryTypeName","src":"4557:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1317,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1315,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"4573:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4573:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4557:28:5"},{"expression":{"arguments":[{"id":1319,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"4605:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1320,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1306,"src":"4612:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1308,"src":"4616:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1318,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"4595:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4595:27:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1323,"nodeType":"ExpressionStatement","src":"4595:27:5"},{"expression":{"hexValue":"74727565","id":1324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4639:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1312,"id":1325,"nodeType":"Return","src":"4632:11:5"}]},"documentation":{"id":1304,"nodeType":"StructuredDocumentation","src":"4283:184:5","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`."},"functionSelector":"a9059cbb","id":1327,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"4481:8:5","nodeType":"FunctionDefinition","parameters":{"id":1309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1306,"mutability":"mutable","name":"to","nameLocation":"4498:2:5","nodeType":"VariableDeclaration","scope":1327,"src":"4490:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"4490:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1308,"mutability":"mutable","name":"value","nameLocation":"4510:5:5","nodeType":"VariableDeclaration","scope":1327,"src":"4502:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1307,"name":"uint256","nodeType":"ElementaryTypeName","src":"4502:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4489:27:5"},"returnParameters":{"id":1312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1327,"src":"4541:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1310,"name":"bool","nodeType":"ElementaryTypeName","src":"4541:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4540:6:5"},"scope":1747,"src":"4472:178:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4712],"body":{"id":1350,"nodeType":"Block","src":"4797:106:5","statements":[{"assignments":[1339],"declarations":[{"constant":false,"id":1339,"mutability":"mutable","name":"$","nameLocation":"4828:1:5","nodeType":"VariableDeclaration","scope":1350,"src":"4807:22:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"},"typeName":{"id":1338,"nodeType":"UserDefinedTypeName","pathNode":{"id":1337,"name":"ERC20Storage","nameLocations":["4807:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1171,"src":"4807:12:5"},"referencedDeclaration":1171,"src":"4807:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"}},"visibility":"internal"}],"id":1342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1340,"name":"_getERC20Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"4832:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC20Storage_$1171_storage_ptr_$","typeString":"function () pure returns (struct ERC20Upgradeable.ERC20Storage storage pointer)"}},"id":1341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4832:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4807:43:5"},{"expression":{"baseExpression":{"baseExpression":{"expression":{"id":1343,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1339,"src":"4867:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4869:11:5","memberName":"_allowances","nodeType":"MemberAccess","referencedDeclaration":1164,"src":"4867:13:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1346,"indexExpression":{"id":1345,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1330,"src":"4881:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4867:20:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1348,"indexExpression":{"id":1347,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"4888:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4867:29:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1336,"id":1349,"nodeType":"Return","src":"4860:36:5"}]},"documentation":{"id":1328,"nodeType":"StructuredDocumentation","src":"4656:47:5","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":1351,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"4717:9:5","nodeType":"FunctionDefinition","parameters":{"id":1333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1330,"mutability":"mutable","name":"owner","nameLocation":"4735:5:5","nodeType":"VariableDeclaration","scope":1351,"src":"4727:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1329,"name":"address","nodeType":"ElementaryTypeName","src":"4727:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1332,"mutability":"mutable","name":"spender","nameLocation":"4750:7:5","nodeType":"VariableDeclaration","scope":1351,"src":"4742:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1331,"name":"address","nodeType":"ElementaryTypeName","src":"4742:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4726:32:5"},"returnParameters":{"id":1336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1351,"src":"4788:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1334,"name":"uint256","nodeType":"ElementaryTypeName","src":"4788:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4787:9:5"},"scope":1747,"src":"4708:195:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4722],"body":{"id":1374,"nodeType":"Block","src":"5289:107:5","statements":[{"assignments":[1362],"declarations":[{"constant":false,"id":1362,"mutability":"mutable","name":"owner","nameLocation":"5307:5:5","nodeType":"VariableDeclaration","scope":1374,"src":"5299:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1361,"name":"address","nodeType":"ElementaryTypeName","src":"5299:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1365,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1363,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"5315:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5315:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5299:28:5"},{"expression":{"arguments":[{"id":1367,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1362,"src":"5346:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1368,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1354,"src":"5353:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1369,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1356,"src":"5362:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1366,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[1630,1698],"referencedDeclaration":1630,"src":"5337:8:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5337:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1371,"nodeType":"ExpressionStatement","src":"5337:31:5"},{"expression":{"hexValue":"74727565","id":1372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5385:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1360,"id":1373,"nodeType":"Return","src":"5378:11:5"}]},"documentation":{"id":1352,"nodeType":"StructuredDocumentation","src":"4909:296:5","text":" @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":1375,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"5219:7:5","nodeType":"FunctionDefinition","parameters":{"id":1357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1354,"mutability":"mutable","name":"spender","nameLocation":"5235:7:5","nodeType":"VariableDeclaration","scope":1375,"src":"5227:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1353,"name":"address","nodeType":"ElementaryTypeName","src":"5227:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1356,"mutability":"mutable","name":"value","nameLocation":"5252:5:5","nodeType":"VariableDeclaration","scope":1375,"src":"5244:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1355,"name":"uint256","nodeType":"ElementaryTypeName","src":"5244:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5226:32:5"},"returnParameters":{"id":1360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1375,"src":"5283:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1358,"name":"bool","nodeType":"ElementaryTypeName","src":"5283:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5282:6:5"},"scope":1747,"src":"5210:186:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4734],"body":{"id":1406,"nodeType":"Block","src":"6081:151:5","statements":[{"assignments":[1388],"declarations":[{"constant":false,"id":1388,"mutability":"mutable","name":"spender","nameLocation":"6099:7:5","nodeType":"VariableDeclaration","scope":1406,"src":"6091:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1387,"name":"address","nodeType":"ElementaryTypeName","src":"6091:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1391,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1389,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"6109:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6109:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6091:30:5"},{"expression":{"arguments":[{"id":1393,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1378,"src":"6147:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1394,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"6153:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1395,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1382,"src":"6162:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1392,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1746,"src":"6131:15:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6131:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1397,"nodeType":"ExpressionStatement","src":"6131:37:5"},{"expression":{"arguments":[{"id":1399,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1378,"src":"6188:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1400,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"6194:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1401,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1382,"src":"6198:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1398,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"6178:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1403,"nodeType":"ExpressionStatement","src":"6178:26:5"},{"expression":{"hexValue":"74727565","id":1404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6221:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1386,"id":1405,"nodeType":"Return","src":"6214:11:5"}]},"documentation":{"id":1376,"nodeType":"StructuredDocumentation","src":"5402:581:5","text":" @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`."},"functionSelector":"23b872dd","id":1407,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5997:12:5","nodeType":"FunctionDefinition","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1378,"mutability":"mutable","name":"from","nameLocation":"6018:4:5","nodeType":"VariableDeclaration","scope":1407,"src":"6010:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1377,"name":"address","nodeType":"ElementaryTypeName","src":"6010:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1380,"mutability":"mutable","name":"to","nameLocation":"6032:2:5","nodeType":"VariableDeclaration","scope":1407,"src":"6024:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1379,"name":"address","nodeType":"ElementaryTypeName","src":"6024:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1382,"mutability":"mutable","name":"value","nameLocation":"6044:5:5","nodeType":"VariableDeclaration","scope":1407,"src":"6036:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1381,"name":"uint256","nodeType":"ElementaryTypeName","src":"6036:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6009:41:5"},"returnParameters":{"id":1386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1407,"src":"6075:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1384,"name":"bool","nodeType":"ElementaryTypeName","src":"6075:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6074:6:5"},"scope":1747,"src":"5988:244:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1453,"nodeType":"Block","src":"6674:231:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1417,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1410,"src":"6688:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6704:1:5","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":1419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6696:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1418,"name":"address","nodeType":"ElementaryTypeName","src":"6696:7:5","typeDescriptions":{}}},"id":1421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6696:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6688:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1431,"nodeType":"IfStatement","src":"6684:86:5","trueBody":{"id":1430,"nodeType":"Block","src":"6708:62:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6756:1:5","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":1425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6748:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1424,"name":"address","nodeType":"ElementaryTypeName","src":"6748:7:5","typeDescriptions":{}}},"id":1427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6748:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1423,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"6729:18:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6729:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1429,"nodeType":"RevertStatement","src":"6722:37:5"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1432,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1412,"src":"6783:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6797:1:5","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":1434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6789:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1433,"name":"address","nodeType":"ElementaryTypeName","src":"6789:7:5","typeDescriptions":{}}},"id":1436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6789:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6783:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1446,"nodeType":"IfStatement","src":"6779:86:5","trueBody":{"id":1445,"nodeType":"Block","src":"6801:64:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6851:1:5","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":1440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6843:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1439,"name":"address","nodeType":"ElementaryTypeName","src":"6843:7:5","typeDescriptions":{}}},"id":1442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6843:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1438,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"6822:20:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6822:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1444,"nodeType":"RevertStatement","src":"6815:39:5"}]}},{"expression":{"arguments":[{"id":1448,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1410,"src":"6882:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1449,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1412,"src":"6888:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1450,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1414,"src":"6892:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1447,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1546,"src":"6874:7:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6874:24:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1452,"nodeType":"ExpressionStatement","src":"6874:24:5"}]},"documentation":{"id":1408,"nodeType":"StructuredDocumentation","src":"6238:362:5","text":" @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":1454,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"6614:9:5","nodeType":"FunctionDefinition","parameters":{"id":1415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1410,"mutability":"mutable","name":"from","nameLocation":"6632:4:5","nodeType":"VariableDeclaration","scope":1454,"src":"6624:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1409,"name":"address","nodeType":"ElementaryTypeName","src":"6624:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1412,"mutability":"mutable","name":"to","nameLocation":"6646:2:5","nodeType":"VariableDeclaration","scope":1454,"src":"6638:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1411,"name":"address","nodeType":"ElementaryTypeName","src":"6638:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1414,"mutability":"mutable","name":"value","nameLocation":"6658:5:5","nodeType":"VariableDeclaration","scope":1454,"src":"6650:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1413,"name":"uint256","nodeType":"ElementaryTypeName","src":"6650:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6623:41:5"},"returnParameters":{"id":1416,"nodeType":"ParameterList","parameters":[],"src":"6674:0:5"},"scope":1747,"src":"6605:300:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1545,"nodeType":"Block","src":"7295:1095:5","statements":[{"assignments":[1466],"declarations":[{"constant":false,"id":1466,"mutability":"mutable","name":"$","nameLocation":"7326:1:5","nodeType":"VariableDeclaration","scope":1545,"src":"7305:22:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"},"typeName":{"id":1465,"nodeType":"UserDefinedTypeName","pathNode":{"id":1464,"name":"ERC20Storage","nameLocations":["7305:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1171,"src":"7305:12:5"},"referencedDeclaration":1171,"src":"7305:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"}},"visibility":"internal"}],"id":1469,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1467,"name":"_getERC20Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"7330:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC20Storage_$1171_storage_ptr_$","typeString":"function () pure returns (struct ERC20Upgradeable.ERC20Storage storage pointer)"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7330:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7305:43:5"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1470,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1457,"src":"7362:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7378:1:5","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":1472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7370:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1471,"name":"address","nodeType":"ElementaryTypeName","src":"7370:7:5","typeDescriptions":{}}},"id":1474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7370:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7362:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1512,"nodeType":"Block","src":"7538:366:5","statements":[{"assignments":[1484],"declarations":[{"constant":false,"id":1484,"mutability":"mutable","name":"fromBalance","nameLocation":"7560:11:5","nodeType":"VariableDeclaration","scope":1512,"src":"7552:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1483,"name":"uint256","nodeType":"ElementaryTypeName","src":"7552:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1489,"initialValue":{"baseExpression":{"expression":{"id":1485,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1466,"src":"7574:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7576:9:5","memberName":"_balances","nodeType":"MemberAccess","referencedDeclaration":1158,"src":"7574:11:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1488,"indexExpression":{"id":1487,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1457,"src":"7586:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7574:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7552:39:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1490,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1484,"src":"7609:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1491,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"7623:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7609:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1500,"nodeType":"IfStatement","src":"7605:115:5","trueBody":{"id":1499,"nodeType":"Block","src":"7630:90:5","statements":[{"errorCall":{"arguments":[{"id":1494,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1457,"src":"7680:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1495,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1484,"src":"7686:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1496,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"7699:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1493,"name":"ERC20InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3277,"src":"7655:24:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":1497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7655:50:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1498,"nodeType":"RevertStatement","src":"7648:57:5"}]}},{"id":1511,"nodeType":"UncheckedBlock","src":"7733:161:5","statements":[{"expression":{"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":1501,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1466,"src":"7840:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7842:9:5","memberName":"_balances","nodeType":"MemberAccess","referencedDeclaration":1158,"src":"7840:11:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1505,"indexExpression":{"id":1503,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1457,"src":"7852:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7840:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1506,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1484,"src":"7860:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1507,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"7874:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7860:19:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7840:39:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1510,"nodeType":"ExpressionStatement","src":"7840:39:5"}]}]},"id":1513,"nodeType":"IfStatement","src":"7358:546:5","trueBody":{"id":1482,"nodeType":"Block","src":"7382:150:5","statements":[{"expression":{"id":1480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1476,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1466,"src":"7498:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7500:12:5","memberName":"_totalSupply","nodeType":"MemberAccess","referencedDeclaration":1166,"src":"7498:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1479,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"7516:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7498:23:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1481,"nodeType":"ExpressionStatement","src":"7498:23:5"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1514,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1459,"src":"7918:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7932:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7924:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1515,"name":"address","nodeType":"ElementaryTypeName","src":"7924:7:5","typeDescriptions":{}}},"id":1518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7924:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7918:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1537,"nodeType":"Block","src":"8135:208:5","statements":[{"id":1536,"nodeType":"UncheckedBlock","src":"8149:184:5","statements":[{"expression":{"id":1534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":1528,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1466,"src":"8294:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8296:9:5","memberName":"_balances","nodeType":"MemberAccess","referencedDeclaration":1158,"src":"8294:11:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1532,"indexExpression":{"id":1530,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1459,"src":"8306:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8294:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1533,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"8313:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8294:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1535,"nodeType":"ExpressionStatement","src":"8294:24:5"}]}]},"id":1538,"nodeType":"IfStatement","src":"7914:429:5","trueBody":{"id":1527,"nodeType":"Block","src":"7936:193:5","statements":[{"id":1526,"nodeType":"UncheckedBlock","src":"7950:169:5","statements":[{"expression":{"id":1524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1520,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1466,"src":"8081:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8083:12:5","memberName":"_totalSupply","nodeType":"MemberAccess","referencedDeclaration":1166,"src":"8081:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":1523,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"8099:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8081:23:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1525,"nodeType":"ExpressionStatement","src":"8081:23:5"}]}]}},{"eventCall":{"arguments":[{"id":1540,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1457,"src":"8367:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1541,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1459,"src":"8373:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"8377:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1539,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4669,"src":"8358:8:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8358:25:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1544,"nodeType":"EmitStatement","src":"8353:30:5"}]},"documentation":{"id":1455,"nodeType":"StructuredDocumentation","src":"6911:304:5","text":" @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event."},"id":1546,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"7229:7:5","nodeType":"FunctionDefinition","parameters":{"id":1462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1457,"mutability":"mutable","name":"from","nameLocation":"7245:4:5","nodeType":"VariableDeclaration","scope":1546,"src":"7237:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1456,"name":"address","nodeType":"ElementaryTypeName","src":"7237:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1459,"mutability":"mutable","name":"to","nameLocation":"7259:2:5","nodeType":"VariableDeclaration","scope":1546,"src":"7251:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1458,"name":"address","nodeType":"ElementaryTypeName","src":"7251:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1461,"mutability":"mutable","name":"value","nameLocation":"7271:5:5","nodeType":"VariableDeclaration","scope":1546,"src":"7263:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1460,"name":"uint256","nodeType":"ElementaryTypeName","src":"7263:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7236:41:5"},"returnParameters":{"id":1463,"nodeType":"ParameterList","parameters":[],"src":"7295:0:5"},"scope":1747,"src":"7220:1170:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1578,"nodeType":"Block","src":"8789:152:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1554,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1549,"src":"8803:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8822:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8814:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1555,"name":"address","nodeType":"ElementaryTypeName","src":"8814:7:5","typeDescriptions":{}}},"id":1558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8803:21:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1568,"nodeType":"IfStatement","src":"8799:91:5","trueBody":{"id":1567,"nodeType":"Block","src":"8826:64:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8876:1:5","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":1562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8868:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1561,"name":"address","nodeType":"ElementaryTypeName","src":"8868:7:5","typeDescriptions":{}}},"id":1564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8868:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1560,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"8847:20:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8847:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1566,"nodeType":"RevertStatement","src":"8840:39:5"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8915:1:5","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":1571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8907:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1570,"name":"address","nodeType":"ElementaryTypeName","src":"8907:7:5","typeDescriptions":{}}},"id":1573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8907:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1574,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1549,"src":"8919:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1575,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1551,"src":"8928:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1569,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1546,"src":"8899:7:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8899:35:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1577,"nodeType":"ExpressionStatement","src":"8899:35:5"}]},"documentation":{"id":1547,"nodeType":"StructuredDocumentation","src":"8396:332:5","text":" @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":1579,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8742:5:5","nodeType":"FunctionDefinition","parameters":{"id":1552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1549,"mutability":"mutable","name":"account","nameLocation":"8756:7:5","nodeType":"VariableDeclaration","scope":1579,"src":"8748:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1548,"name":"address","nodeType":"ElementaryTypeName","src":"8748:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1551,"mutability":"mutable","name":"value","nameLocation":"8773:5:5","nodeType":"VariableDeclaration","scope":1579,"src":"8765:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1550,"name":"uint256","nodeType":"ElementaryTypeName","src":"8765:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8747:32:5"},"returnParameters":{"id":1553,"nodeType":"ParameterList","parameters":[],"src":"8789:0:5"},"scope":1747,"src":"8733:208:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1611,"nodeType":"Block","src":"9315:150:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1587,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"9329:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9348:1:5","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":1589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9340:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1588,"name":"address","nodeType":"ElementaryTypeName","src":"9340:7:5","typeDescriptions":{}}},"id":1591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9340:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9329:21:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1601,"nodeType":"IfStatement","src":"9325:89:5","trueBody":{"id":1600,"nodeType":"Block","src":"9352:62:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9400:1:5","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":1595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9392:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1594,"name":"address","nodeType":"ElementaryTypeName","src":"9392:7:5","typeDescriptions":{}}},"id":1597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9392:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1593,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"9373:18:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9373:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1599,"nodeType":"RevertStatement","src":"9366:37:5"}]}},{"expression":{"arguments":[{"id":1603,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"9431:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9448:1:5","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":1605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9440:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1604,"name":"address","nodeType":"ElementaryTypeName","src":"9440:7:5","typeDescriptions":{}}},"id":1607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9440:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1608,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1584,"src":"9452:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1602,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1546,"src":"9423:7:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9423:35:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1610,"nodeType":"ExpressionStatement","src":"9423:35:5"}]},"documentation":{"id":1580,"nodeType":"StructuredDocumentation","src":"8947:307:5","text":" @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"},"id":1612,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9268:5:5","nodeType":"FunctionDefinition","parameters":{"id":1585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1582,"mutability":"mutable","name":"account","nameLocation":"9282:7:5","nodeType":"VariableDeclaration","scope":1612,"src":"9274:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1581,"name":"address","nodeType":"ElementaryTypeName","src":"9274:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1584,"mutability":"mutable","name":"value","nameLocation":"9299:5:5","nodeType":"VariableDeclaration","scope":1612,"src":"9291:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1583,"name":"uint256","nodeType":"ElementaryTypeName","src":"9291:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9273:32:5"},"returnParameters":{"id":1586,"nodeType":"ParameterList","parameters":[],"src":"9315:0:5"},"scope":1747,"src":"9259:206:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1629,"nodeType":"Block","src":"10075:54:5","statements":[{"expression":{"arguments":[{"id":1623,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"10094:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1624,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1617,"src":"10101:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1625,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"10110:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":1626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10117:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1622,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[1630,1698],"referencedDeclaration":1698,"src":"10085:8:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":1627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10085:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1628,"nodeType":"ExpressionStatement","src":"10085:37:5"}]},"documentation":{"id":1613,"nodeType":"StructuredDocumentation","src":"9471:525:5","text":" @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":1630,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10010:8:5","nodeType":"FunctionDefinition","parameters":{"id":1620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1615,"mutability":"mutable","name":"owner","nameLocation":"10027:5:5","nodeType":"VariableDeclaration","scope":1630,"src":"10019:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1614,"name":"address","nodeType":"ElementaryTypeName","src":"10019:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1617,"mutability":"mutable","name":"spender","nameLocation":"10042:7:5","nodeType":"VariableDeclaration","scope":1630,"src":"10034:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1616,"name":"address","nodeType":"ElementaryTypeName","src":"10034:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1619,"mutability":"mutable","name":"value","nameLocation":"10059:5:5","nodeType":"VariableDeclaration","scope":1630,"src":"10051:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1618,"name":"uint256","nodeType":"ElementaryTypeName","src":"10051:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10018:47:5"},"returnParameters":{"id":1621,"nodeType":"ParameterList","parameters":[],"src":"10075:0:5"},"scope":1747,"src":"10001:128:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1697,"nodeType":"Block","src":"11074:389:5","statements":[{"assignments":[1644],"declarations":[{"constant":false,"id":1644,"mutability":"mutable","name":"$","nameLocation":"11105:1:5","nodeType":"VariableDeclaration","scope":1697,"src":"11084:22:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"},"typeName":{"id":1643,"nodeType":"UserDefinedTypeName","pathNode":{"id":1642,"name":"ERC20Storage","nameLocations":["11084:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":1171,"src":"11084:12:5"},"referencedDeclaration":1171,"src":"11084:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage"}},"visibility":"internal"}],"id":1647,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1645,"name":"_getERC20Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"11109:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC20Storage_$1171_storage_ptr_$","typeString":"function () pure returns (struct ERC20Upgradeable.ERC20Storage storage pointer)"}},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11109:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11084:43:5"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1648,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1633,"src":"11141:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11158:1:5","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":1650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11150:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1649,"name":"address","nodeType":"ElementaryTypeName","src":"11150:7:5","typeDescriptions":{}}},"id":1652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11150:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11141:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1662,"nodeType":"IfStatement","src":"11137:89:5","trueBody":{"id":1661,"nodeType":"Block","src":"11162:64:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11212:1:5","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":1656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11204:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1655,"name":"address","nodeType":"ElementaryTypeName","src":"11204:7:5","typeDescriptions":{}}},"id":1658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11204:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1654,"name":"ERC20InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3301,"src":"11183:20:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1660,"nodeType":"RevertStatement","src":"11176:39:5"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1663,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1635,"src":"11239:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11258:1:5","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":1665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11250:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1664,"name":"address","nodeType":"ElementaryTypeName","src":"11250:7:5","typeDescriptions":{}}},"id":1667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11250:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11239:21:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1677,"nodeType":"IfStatement","src":"11235:90:5","trueBody":{"id":1676,"nodeType":"Block","src":"11262:63:5","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11311:1:5","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":1671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11303:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1670,"name":"address","nodeType":"ElementaryTypeName","src":"11303:7:5","typeDescriptions":{}}},"id":1673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11303:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1669,"name":"ERC20InvalidSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3306,"src":"11283:19:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11283:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1675,"nodeType":"RevertStatement","src":"11276:38:5"}]}},{"expression":{"id":1686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":1678,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1644,"src":"11334:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20Storage_$1171_storage_ptr","typeString":"struct ERC20Upgradeable.ERC20Storage storage pointer"}},"id":1682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11336:11:5","memberName":"_allowances","nodeType":"MemberAccess","referencedDeclaration":1164,"src":"11334:13:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1683,"indexExpression":{"id":1680,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1633,"src":"11348:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11334:20:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1684,"indexExpression":{"id":1681,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1635,"src":"11355:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11334:29:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1685,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"11366:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11334:37:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1687,"nodeType":"ExpressionStatement","src":"11334:37:5"},{"condition":{"id":1688,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1639,"src":"11385:9:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1696,"nodeType":"IfStatement","src":"11381:76:5","trueBody":{"id":1695,"nodeType":"Block","src":"11396:61:5","statements":[{"eventCall":{"arguments":[{"id":1690,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1633,"src":"11424:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1691,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1635,"src":"11431:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1692,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"11440:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1689,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4678,"src":"11415:8:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11415:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1694,"nodeType":"EmitStatement","src":"11410:36:5"}]}}]},"documentation":{"id":1631,"nodeType":"StructuredDocumentation","src":"10135:836:5","text":" @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n     super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}."},"id":1698,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10985:8:5","nodeType":"FunctionDefinition","parameters":{"id":1640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1633,"mutability":"mutable","name":"owner","nameLocation":"11002:5:5","nodeType":"VariableDeclaration","scope":1698,"src":"10994:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1632,"name":"address","nodeType":"ElementaryTypeName","src":"10994:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1635,"mutability":"mutable","name":"spender","nameLocation":"11017:7:5","nodeType":"VariableDeclaration","scope":1698,"src":"11009:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1634,"name":"address","nodeType":"ElementaryTypeName","src":"11009:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1637,"mutability":"mutable","name":"value","nameLocation":"11034:5:5","nodeType":"VariableDeclaration","scope":1698,"src":"11026:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1636,"name":"uint256","nodeType":"ElementaryTypeName","src":"11026:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1639,"mutability":"mutable","name":"emitEvent","nameLocation":"11046:9:5","nodeType":"VariableDeclaration","scope":1698,"src":"11041:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1638,"name":"bool","nodeType":"ElementaryTypeName","src":"11041:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10993:63:5"},"returnParameters":{"id":1641,"nodeType":"ParameterList","parameters":[],"src":"11074:0:5"},"scope":1747,"src":"10976:487:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1745,"nodeType":"Block","src":"11834:388:5","statements":[{"assignments":[1709],"declarations":[{"constant":false,"id":1709,"mutability":"mutable","name":"currentAllowance","nameLocation":"11852:16:5","nodeType":"VariableDeclaration","scope":1745,"src":"11844:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1708,"name":"uint256","nodeType":"ElementaryTypeName","src":"11844:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1714,"initialValue":{"arguments":[{"id":1711,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"11881:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1712,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"11888:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1710,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1351,"src":"11871:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11871:25:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11844:52:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1715,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1709,"src":"11910:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":1718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11935:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1717,"name":"uint256","nodeType":"ElementaryTypeName","src":"11935:7:5","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1716,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11930:4:5","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11930:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11944:3:5","memberName":"max","nodeType":"MemberAccess","src":"11930:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11910:37:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1744,"nodeType":"IfStatement","src":"11906:310:5","trueBody":{"id":1743,"nodeType":"Block","src":"11949:267:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1722,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1709,"src":"11967:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1723,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1705,"src":"11986:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11967:24:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1732,"nodeType":"IfStatement","src":"11963:130:5","trueBody":{"id":1731,"nodeType":"Block","src":"11993:100:5","statements":[{"errorCall":{"arguments":[{"id":1726,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"12045:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1727,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1709,"src":"12054:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1728,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1705,"src":"12072:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1725,"name":"ERC20InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"12018:26:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":1729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12018:60:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1730,"nodeType":"RevertStatement","src":"12011:67:5"}]}},{"id":1742,"nodeType":"UncheckedBlock","src":"12106:100:5","statements":[{"expression":{"arguments":[{"id":1734,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"12143:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1735,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"12150:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1736,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1709,"src":"12159:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1737,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1705,"src":"12178:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12159:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":1739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12185:5:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1733,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[1630,1698],"referencedDeclaration":1698,"src":"12134:8:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":1740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12134:57:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1741,"nodeType":"ExpressionStatement","src":"12134:57:5"}]}]}}]},"documentation":{"id":1699,"nodeType":"StructuredDocumentation","src":"11469:271:5","text":" @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event."},"id":1746,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11754:15:5","nodeType":"FunctionDefinition","parameters":{"id":1706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1701,"mutability":"mutable","name":"owner","nameLocation":"11778:5:5","nodeType":"VariableDeclaration","scope":1746,"src":"11770:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1700,"name":"address","nodeType":"ElementaryTypeName","src":"11770:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1703,"mutability":"mutable","name":"spender","nameLocation":"11793:7:5","nodeType":"VariableDeclaration","scope":1746,"src":"11785:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1702,"name":"address","nodeType":"ElementaryTypeName","src":"11785:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1705,"mutability":"mutable","name":"value","nameLocation":"11810:5:5","nodeType":"VariableDeclaration","scope":1746,"src":"11802:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1704,"name":"uint256","nodeType":"ElementaryTypeName","src":"11802:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11769:47:5"},"returnParameters":{"id":1707,"nodeType":"ParameterList","parameters":[],"src":"11834:0:5"},"scope":1747,"src":"11745:477:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":1748,"src":"1281:10943:5","usedErrors":[711,714,3277,3282,3287,3296,3301,3306],"usedEvents":[719,4669,4678]}],"src":"105:12120:5"},"id":5},"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","exportedSymbols":{"ContextUpgradeable":[2873],"ERC165Upgradeable":[2913],"ERC721Upgradeable":[2827],"ERC721Utils":[6369],"IERC165":[8493],"IERC721":[6246],"IERC721Errors":[3355],"IERC721Metadata":[6292],"Initializable":[948],"Strings":[7344]},"id":2828,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1749,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:6"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":1751,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2828,"sourceUnit":6247,"src":"133:73:6","symbolAliases":[{"foreign":{"id":1750,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"141:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","id":1753,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2828,"sourceUnit":6293,"src":"207:100:6","symbolAliases":[{"foreign":{"id":1752,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6292,"src":"215:15:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol","file":"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol","id":1755,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2828,"sourceUnit":6370,"src":"308:87:6","symbolAliases":[{"foreign":{"id":1754,"name":"ERC721Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"316:11:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../../utils/ContextUpgradeable.sol","id":1757,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2828,"sourceUnit":2874,"src":"396:70:6","symbolAliases":[{"foreign":{"id":1756,"name":"ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2873,"src":"404:18:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":1759,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2828,"sourceUnit":7345,"src":"467:66:6","symbolAliases":[{"foreign":{"id":1758,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7344,"src":"475:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":1761,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2828,"sourceUnit":8494,"src":"534:80:6","symbolAliases":[{"foreign":{"id":1760,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"542:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","file":"../../utils/introspection/ERC165Upgradeable.sol","id":1763,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2828,"sourceUnit":2914,"src":"615:82:6","symbolAliases":[{"foreign":{"id":1762,"name":"ERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2913,"src":"623:17:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","id":1765,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2828,"sourceUnit":3403,"src":"698:84:6","symbolAliases":[{"foreign":{"id":1764,"name":"IERC721Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3355,"src":"706:13:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","id":1767,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2828,"sourceUnit":949,"src":"783:66:6","symbolAliases":[{"foreign":{"id":1766,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"791:13:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1769,"name":"Initializable","nameLocations":["1138:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"1138:13:6"},"id":1770,"nodeType":"InheritanceSpecifier","src":"1138:13:6"},{"baseName":{"id":1771,"name":"ContextUpgradeable","nameLocations":["1153:18:6"],"nodeType":"IdentifierPath","referencedDeclaration":2873,"src":"1153:18:6"},"id":1772,"nodeType":"InheritanceSpecifier","src":"1153:18:6"},{"baseName":{"id":1773,"name":"ERC165Upgradeable","nameLocations":["1173:17:6"],"nodeType":"IdentifierPath","referencedDeclaration":2913,"src":"1173:17:6"},"id":1774,"nodeType":"InheritanceSpecifier","src":"1173:17:6"},{"baseName":{"id":1775,"name":"IERC721","nameLocations":["1192:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":6246,"src":"1192:7:6"},"id":1776,"nodeType":"InheritanceSpecifier","src":"1192:7:6"},{"baseName":{"id":1777,"name":"IERC721Metadata","nameLocations":["1201:15:6"],"nodeType":"IdentifierPath","referencedDeclaration":6292,"src":"1201:15:6"},"id":1778,"nodeType":"InheritanceSpecifier","src":"1201:15:6"},{"baseName":{"id":1779,"name":"IERC721Errors","nameLocations":["1218:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":3355,"src":"1218:13:6"},"id":1780,"nodeType":"InheritanceSpecifier","src":"1218:13:6"}],"canonicalName":"ERC721Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1768,"nodeType":"StructuredDocumentation","src":"851:247:6","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":2827,"linearizedBaseContracts":[2827,3355,6292,6246,2913,8493,2873,948],"name":"ERC721Upgradeable","nameLocation":"1117:17:6","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1783,"libraryName":{"id":1781,"name":"Strings","nameLocations":["1244:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":7344,"src":"1244:7:6"},"nodeType":"UsingForDirective","src":"1238:26:6","typeName":{"id":1782,"name":"uint256","nodeType":"ElementaryTypeName","src":"1256:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"canonicalName":"ERC721Upgradeable.ERC721Storage","documentation":{"id":1784,"nodeType":"StructuredDocumentation","src":"1270:64:6","text":"@custom:storage-location erc7201:openzeppelin.storage.ERC721"},"id":1807,"members":[{"constant":false,"id":1786,"mutability":"mutable","name":"_name","nameLocation":"1399:5:6","nodeType":"VariableDeclaration","scope":1807,"src":"1392:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":1785,"name":"string","nodeType":"ElementaryTypeName","src":"1392:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1788,"mutability":"mutable","name":"_symbol","nameLocation":"1446:7:6","nodeType":"VariableDeclaration","scope":1807,"src":"1439:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":1787,"name":"string","nodeType":"ElementaryTypeName","src":"1439:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1792,"mutability":"mutable","name":"_owners","nameLocation":"1500:7:6","nodeType":"VariableDeclaration","scope":1807,"src":"1464:43:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":1791,"keyName":"tokenId","keyNameLocation":"1480:7:6","keyType":{"id":1789,"name":"uint256","nodeType":"ElementaryTypeName","src":"1472:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1464:35:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1790,"name":"address","nodeType":"ElementaryTypeName","src":"1491:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"constant":false,"id":1796,"mutability":"mutable","name":"_balances","nameLocation":"1552:9:6","nodeType":"VariableDeclaration","scope":1807,"src":"1518:43:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1795,"keyName":"owner","keyNameLocation":"1534:5:6","keyType":{"id":1793,"name":"address","nodeType":"ElementaryTypeName","src":"1526:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1518:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1794,"name":"uint256","nodeType":"ElementaryTypeName","src":"1543:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":1800,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1608:15:6","nodeType":"VariableDeclaration","scope":1807,"src":"1572:51:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":1799,"keyName":"tokenId","keyNameLocation":"1588:7:6","keyType":{"id":1797,"name":"uint256","nodeType":"ElementaryTypeName","src":"1580:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1572:35:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1798,"name":"address","nodeType":"ElementaryTypeName","src":"1599:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"constant":false,"id":1806,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1694:18:6","nodeType":"VariableDeclaration","scope":1807,"src":"1634:78:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":1805,"keyName":"owner","keyNameLocation":"1650:5:6","keyType":{"id":1801,"name":"address","nodeType":"ElementaryTypeName","src":"1642:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1634:59:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1804,"keyName":"operator","keyNameLocation":"1675:8:6","keyType":{"id":1802,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1659:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1803,"name":"bool","nodeType":"ElementaryTypeName","src":"1687:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"}],"name":"ERC721Storage","nameLocation":"1346:13:6","nodeType":"StructDefinition","scope":2827,"src":"1339:380:6","visibility":"public"},{"constant":true,"id":1810,"mutability":"constant","name":"ERC721StorageLocation","nameLocation":"1860:21:6","nodeType":"VariableDeclaration","scope":2827,"src":"1835:115:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1835:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838306262326236333863633230626334643061363064363639343066336162346130306331643762333133343937636138326662306234616230303739333030","id":1809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:66:6","typeDescriptions":{"typeIdentifier":"t_rational_58226744478722834339948329933988999792353370511964151963072532422914231210752_by_1","typeString":"int_const 5822...(69 digits omitted)...0752"},"value":"0x80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300"},"visibility":"private"},{"body":{"id":1817,"nodeType":"Block","src":"2033:80:6","statements":[{"AST":{"nativeSrc":"2052:55:6","nodeType":"YulBlock","src":"2052:55:6","statements":[{"nativeSrc":"2066:31:6","nodeType":"YulAssignment","src":"2066:31:6","value":{"name":"ERC721StorageLocation","nativeSrc":"2076:21:6","nodeType":"YulIdentifier","src":"2076:21:6"},"variableNames":[{"name":"$.slot","nativeSrc":"2066:6:6","nodeType":"YulIdentifier","src":"2066:6:6"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1814,"isOffset":false,"isSlot":true,"src":"2066:6:6","suffix":"slot","valueSize":1},{"declaration":1810,"isOffset":false,"isSlot":false,"src":"2076:21:6","valueSize":1}],"id":1816,"nodeType":"InlineAssembly","src":"2043:64:6"}]},"id":1818,"implemented":true,"kind":"function","modifiers":[],"name":"_getERC721Storage","nameLocation":"1966:17:6","nodeType":"FunctionDefinition","parameters":{"id":1811,"nodeType":"ParameterList","parameters":[],"src":"1983:2:6"},"returnParameters":{"id":1815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1814,"mutability":"mutable","name":"$","nameLocation":"2030:1:6","nodeType":"VariableDeclaration","scope":1818,"src":"2008:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":1813,"nodeType":"UserDefinedTypeName","pathNode":{"id":1812,"name":"ERC721Storage","nameLocations":["2008:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"2008:13:6"},"referencedDeclaration":1807,"src":"2008:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"src":"2007:25:6"},"scope":2827,"src":"1957:156:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1833,"nodeType":"Block","src":"2325:56:6","statements":[{"expression":{"arguments":[{"id":1829,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1821,"src":"2359:5:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1830,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"2366:7:6","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"}],"id":1828,"name":"__ERC721_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1862,"src":"2335:23:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1832,"nodeType":"ExpressionStatement","src":"2335:39:6"}]},"documentation":{"id":1819,"nodeType":"StructuredDocumentation","src":"2119:108:6","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":1834,"implemented":true,"kind":"function","modifiers":[{"id":1826,"kind":"modifierInvocation","modifierName":{"id":1825,"name":"onlyInitializing","nameLocations":["2308:16:6"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"2308:16:6"},"nodeType":"ModifierInvocation","src":"2308:16:6"}],"name":"__ERC721_init","nameLocation":"2241:13:6","nodeType":"FunctionDefinition","parameters":{"id":1824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1821,"mutability":"mutable","name":"name_","nameLocation":"2269:5:6","nodeType":"VariableDeclaration","scope":1834,"src":"2255:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1820,"name":"string","nodeType":"ElementaryTypeName","src":"2255:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1823,"mutability":"mutable","name":"symbol_","nameLocation":"2290:7:6","nodeType":"VariableDeclaration","scope":1834,"src":"2276:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1822,"name":"string","nodeType":"ElementaryTypeName","src":"2276:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2254:44:6"},"returnParameters":{"id":1827,"nodeType":"ParameterList","parameters":[],"src":"2325:0:6"},"scope":2827,"src":"2232:149:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1861,"nodeType":"Block","src":"2490:116:6","statements":[{"assignments":[1845],"declarations":[{"constant":false,"id":1845,"mutability":"mutable","name":"$","nameLocation":"2522:1:6","nodeType":"VariableDeclaration","scope":1861,"src":"2500:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":1844,"nodeType":"UserDefinedTypeName","pathNode":{"id":1843,"name":"ERC721Storage","nameLocations":["2500:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"2500:13:6"},"referencedDeclaration":1807,"src":"2500:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":1848,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1846,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"2526:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":1847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2526:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2500:45:6"},{"expression":{"id":1853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1849,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"2555:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":1851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2557:5:6","memberName":"_name","nodeType":"MemberAccess","referencedDeclaration":1786,"src":"2555:7:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1852,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"2565:5:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2555:15:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1854,"nodeType":"ExpressionStatement","src":"2555:15:6"},{"expression":{"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1855,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"2580:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":1857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2582:7:6","memberName":"_symbol","nodeType":"MemberAccess","referencedDeclaration":1788,"src":"2580:9:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1858,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1838,"src":"2592:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2580:19:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1860,"nodeType":"ExpressionStatement","src":"2580:19:6"}]},"id":1862,"implemented":true,"kind":"function","modifiers":[{"id":1841,"kind":"modifierInvocation","modifierName":{"id":1840,"name":"onlyInitializing","nameLocations":["2473:16:6"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"2473:16:6"},"nodeType":"ModifierInvocation","src":"2473:16:6"}],"name":"__ERC721_init_unchained","nameLocation":"2396:23:6","nodeType":"FunctionDefinition","parameters":{"id":1839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1836,"mutability":"mutable","name":"name_","nameLocation":"2434:5:6","nodeType":"VariableDeclaration","scope":1862,"src":"2420:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1835,"name":"string","nodeType":"ElementaryTypeName","src":"2420:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1838,"mutability":"mutable","name":"symbol_","nameLocation":"2455:7:6","nodeType":"VariableDeclaration","scope":1862,"src":"2441:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1837,"name":"string","nodeType":"ElementaryTypeName","src":"2441:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2419:44:6"},"returnParameters":{"id":1842,"nodeType":"ParameterList","parameters":[],"src":"2490:0:6"},"scope":2827,"src":"2387:219:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2912,8492],"body":{"id":1892,"nodeType":"Block","src":"2792:192:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1873,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1865,"src":"2821:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1875,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"2841:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}],"id":1874,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2836:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2836:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$6246","typeString":"type(contract IERC721)"}},"id":1877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2850:11:6","memberName":"interfaceId","nodeType":"MemberAccess","src":"2836:25:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2821:40:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1879,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1865,"src":"2877:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1881,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6292,"src":"2897:15:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$6292_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$6292_$","typeString":"type(contract IERC721Metadata)"}],"id":1880,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2892:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2892:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$6292","typeString":"type(contract IERC721Metadata)"}},"id":1883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2914:11:6","memberName":"interfaceId","nodeType":"MemberAccess","src":"2892:33:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2877:48:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2821:104:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1888,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1865,"src":"2965:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1886,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2941:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Upgradeable_$2827_$","typeString":"type(contract super ERC721Upgradeable)"}},"id":1887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2947:17:6","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2912,"src":"2941:23:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2941:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2821:156:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1872,"id":1891,"nodeType":"Return","src":"2802:175:6"}]},"documentation":{"id":1863,"nodeType":"StructuredDocumentation","src":"2612:56:6","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":1893,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2682:17:6","nodeType":"FunctionDefinition","overrides":{"id":1869,"nodeType":"OverrideSpecifier","overrides":[{"id":1867,"name":"ERC165Upgradeable","nameLocations":["2749:17:6"],"nodeType":"IdentifierPath","referencedDeclaration":2913,"src":"2749:17:6"},{"id":1868,"name":"IERC165","nameLocations":["2768:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":8493,"src":"2768:7:6"}],"src":"2740:36:6"},"parameters":{"id":1866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1865,"mutability":"mutable","name":"interfaceId","nameLocation":"2707:11:6","nodeType":"VariableDeclaration","scope":1893,"src":"2700:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1864,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2700:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2699:20:6"},"returnParameters":{"id":1872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1893,"src":"2786:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1870,"name":"bool","nodeType":"ElementaryTypeName","src":"2786:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2785:6:6"},"scope":2827,"src":"2673:311:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6171],"body":{"id":1927,"nodeType":"Block","src":"3115:193:6","statements":[{"assignments":[1903],"declarations":[{"constant":false,"id":1903,"mutability":"mutable","name":"$","nameLocation":"3147:1:6","nodeType":"VariableDeclaration","scope":1927,"src":"3125:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":1902,"nodeType":"UserDefinedTypeName","pathNode":{"id":1901,"name":"ERC721Storage","nameLocations":["3125:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"3125:13:6"},"referencedDeclaration":1807,"src":"3125:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":1906,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1904,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"3151:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3151:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3125:45:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1907,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"3184:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3201:1:6","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":1909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3193:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1908,"name":"address","nodeType":"ElementaryTypeName","src":"3193:7:6","typeDescriptions":{}}},"id":1911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3193:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3184:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1921,"nodeType":"IfStatement","src":"3180:87:6","trueBody":{"id":1920,"nodeType":"Block","src":"3205:62:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3253:1:6","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":1915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3245:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1914,"name":"address","nodeType":"ElementaryTypeName","src":"3245:7:6","typeDescriptions":{}}},"id":1917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3245:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1913,"name":"ERC721InvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3313,"src":"3226:18:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3226:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1919,"nodeType":"RevertStatement","src":"3219:37:6"}]}},{"expression":{"baseExpression":{"expression":{"id":1922,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"3283:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":1923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3285:9:6","memberName":"_balances","nodeType":"MemberAccess","referencedDeclaration":1796,"src":"3283:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1925,"indexExpression":{"id":1924,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"3295:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3283:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1900,"id":1926,"nodeType":"Return","src":"3276:25:6"}]},"documentation":{"id":1894,"nodeType":"StructuredDocumentation","src":"2990:48:6","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":1928,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3052:9:6","nodeType":"FunctionDefinition","parameters":{"id":1897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1896,"mutability":"mutable","name":"owner","nameLocation":"3070:5:6","nodeType":"VariableDeclaration","scope":1928,"src":"3062:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1895,"name":"address","nodeType":"ElementaryTypeName","src":"3062:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3061:15:6"},"returnParameters":{"id":1900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1899,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1928,"src":"3106:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1898,"name":"uint256","nodeType":"ElementaryTypeName","src":"3106:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3105:9:6"},"scope":2827,"src":"3043:265:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6179],"body":{"id":1940,"nodeType":"Block","src":"3437:46:6","statements":[{"expression":{"arguments":[{"id":1937,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1931,"src":"3468:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1936,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2826,"src":"3454:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3454:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1935,"id":1939,"nodeType":"Return","src":"3447:29:6"}]},"documentation":{"id":1929,"nodeType":"StructuredDocumentation","src":"3314:46:6","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":1941,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"3374:7:6","nodeType":"FunctionDefinition","parameters":{"id":1932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1931,"mutability":"mutable","name":"tokenId","nameLocation":"3390:7:6","nodeType":"VariableDeclaration","scope":1941,"src":"3382:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3382:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3381:17:6"},"returnParameters":{"id":1935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1941,"src":"3428:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1933,"name":"address","nodeType":"ElementaryTypeName","src":"3428:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3427:9:6"},"scope":2827,"src":"3365:118:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6277],"body":{"id":1956,"nodeType":"Block","src":"3605:86:6","statements":[{"assignments":[1949],"declarations":[{"constant":false,"id":1949,"mutability":"mutable","name":"$","nameLocation":"3637:1:6","nodeType":"VariableDeclaration","scope":1956,"src":"3615:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":1948,"nodeType":"UserDefinedTypeName","pathNode":{"id":1947,"name":"ERC721Storage","nameLocations":["3615:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"3615:13:6"},"referencedDeclaration":1807,"src":"3615:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":1952,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1950,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"3641:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":1951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3641:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3615:45:6"},{"expression":{"expression":{"id":1953,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1949,"src":"3677:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":1954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3679:5:6","memberName":"_name","nodeType":"MemberAccess","referencedDeclaration":1786,"src":"3677:7:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1946,"id":1955,"nodeType":"Return","src":"3670:14:6"}]},"documentation":{"id":1942,"nodeType":"StructuredDocumentation","src":"3489:51:6","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":1957,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"3554:4:6","nodeType":"FunctionDefinition","parameters":{"id":1943,"nodeType":"ParameterList","parameters":[],"src":"3558:2:6"},"returnParameters":{"id":1946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1957,"src":"3590:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1944,"name":"string","nodeType":"ElementaryTypeName","src":"3590:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3589:15:6"},"scope":2827,"src":"3545:146:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6283],"body":{"id":1972,"nodeType":"Block","src":"3817:88:6","statements":[{"assignments":[1965],"declarations":[{"constant":false,"id":1965,"mutability":"mutable","name":"$","nameLocation":"3849:1:6","nodeType":"VariableDeclaration","scope":1972,"src":"3827:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":1964,"nodeType":"UserDefinedTypeName","pathNode":{"id":1963,"name":"ERC721Storage","nameLocations":["3827:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"3827:13:6"},"referencedDeclaration":1807,"src":"3827:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":1968,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1966,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"3853:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3827:45:6"},{"expression":{"expression":{"id":1969,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"3889:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":1970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3891:7:6","memberName":"_symbol","nodeType":"MemberAccess","referencedDeclaration":1788,"src":"3889:9:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1962,"id":1971,"nodeType":"Return","src":"3882:16:6"}]},"documentation":{"id":1958,"nodeType":"StructuredDocumentation","src":"3697:53:6","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":1973,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"3764:6:6","nodeType":"FunctionDefinition","parameters":{"id":1959,"nodeType":"ParameterList","parameters":[],"src":"3770:2:6"},"returnParameters":{"id":1962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1973,"src":"3802:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1960,"name":"string","nodeType":"ElementaryTypeName","src":"3802:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3801:15:6"},"scope":2827,"src":"3755:150:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6291],"body":{"id":2008,"nodeType":"Block","src":"4050:176:6","statements":[{"expression":{"arguments":[{"id":1982,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1976,"src":"4074:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1981,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2826,"src":"4060:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1984,"nodeType":"ExpressionStatement","src":"4060:22:6"},{"assignments":[1986],"declarations":[{"constant":false,"id":1986,"mutability":"mutable","name":"baseURI","nameLocation":"4107:7:6","nodeType":"VariableDeclaration","scope":2008,"src":"4093:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1985,"name":"string","nodeType":"ElementaryTypeName","src":"4093:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1989,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1987,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2018,"src":"4117:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4117:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"4093:34:6"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1992,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1986,"src":"4150:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4144:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1990,"name":"bytes","nodeType":"ElementaryTypeName","src":"4144:5:6","typeDescriptions":{}}},"id":1993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4144:14:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4159:6:6","memberName":"length","nodeType":"MemberAccess","src":"4144:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4168:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4144:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":2005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4217:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":2006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4144:75:6","trueExpression":{"arguments":[{"id":2000,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1986,"src":"4186:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2001,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1976,"src":"4195:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4203:8:6","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":7092,"src":"4195:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":2003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4195:18:6","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":1998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4172:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1997,"name":"string","nodeType":"ElementaryTypeName","src":"4172:6:6","typeDescriptions":{}}},"id":1999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4179:6:6","memberName":"concat","nodeType":"MemberAccess","src":"4172:13:6","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":2004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4172:42:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1980,"id":2007,"nodeType":"Return","src":"4137:82:6"}]},"documentation":{"id":1974,"nodeType":"StructuredDocumentation","src":"3911:55:6","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":2009,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"3980:8:6","nodeType":"FunctionDefinition","parameters":{"id":1977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1976,"mutability":"mutable","name":"tokenId","nameLocation":"3997:7:6","nodeType":"VariableDeclaration","scope":2009,"src":"3989:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1975,"name":"uint256","nodeType":"ElementaryTypeName","src":"3989:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3988:17:6"},"returnParameters":{"id":1980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2009,"src":"4035:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1978,"name":"string","nodeType":"ElementaryTypeName","src":"4035:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4034:15:6"},"scope":2827,"src":"3971:255:6","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2017,"nodeType":"Block","src":"4534:26:6","statements":[{"expression":{"hexValue":"","id":2015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4551:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":2014,"id":2016,"nodeType":"Return","src":"4544:9:6"}]},"documentation":{"id":2010,"nodeType":"StructuredDocumentation","src":"4232:231:6","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":2018,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"4477:8:6","nodeType":"FunctionDefinition","parameters":{"id":2011,"nodeType":"ParameterList","parameters":[],"src":"4485:2:6"},"returnParameters":{"id":2014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2018,"src":"4519:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2012,"name":"string","nodeType":"ElementaryTypeName","src":"4519:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4518:15:6"},"scope":2827,"src":"4468:92:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[6219],"body":{"id":2033,"nodeType":"Block","src":"4678:52:6","statements":[{"expression":{"arguments":[{"id":2027,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"4697:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2028,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"4701:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2029,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"4710:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4710:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2026,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[2678,2752],"referencedDeclaration":2678,"src":"4688:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4688:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2032,"nodeType":"ExpressionStatement","src":"4688:35:6"}]},"documentation":{"id":2019,"nodeType":"StructuredDocumentation","src":"4566:46:6","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":2034,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4626:7:6","nodeType":"FunctionDefinition","parameters":{"id":2024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2021,"mutability":"mutable","name":"to","nameLocation":"4642:2:6","nodeType":"VariableDeclaration","scope":2034,"src":"4634:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2020,"name":"address","nodeType":"ElementaryTypeName","src":"4634:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2023,"mutability":"mutable","name":"tokenId","nameLocation":"4654:7:6","nodeType":"VariableDeclaration","scope":2034,"src":"4646:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2022,"name":"uint256","nodeType":"ElementaryTypeName","src":"4646:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4633:29:6"},"returnParameters":{"id":2025,"nodeType":"ParameterList","parameters":[],"src":"4678:0:6"},"scope":2827,"src":"4617:113:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6235],"body":{"id":2050,"nodeType":"Block","src":"4867:78:6","statements":[{"expression":{"arguments":[{"id":2043,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2037,"src":"4891:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2042,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2826,"src":"4877:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":2044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4877:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2045,"nodeType":"ExpressionStatement","src":"4877:22:6"},{"expression":{"arguments":[{"id":2047,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2037,"src":"4930:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2046,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2225,"src":"4917:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4917:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2041,"id":2049,"nodeType":"Return","src":"4910:28:6"}]},"documentation":{"id":2035,"nodeType":"StructuredDocumentation","src":"4736:50:6","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":2051,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4800:11:6","nodeType":"FunctionDefinition","parameters":{"id":2038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2037,"mutability":"mutable","name":"tokenId","nameLocation":"4820:7:6","nodeType":"VariableDeclaration","scope":2051,"src":"4812:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2036,"name":"uint256","nodeType":"ElementaryTypeName","src":"4812:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4811:17:6"},"returnParameters":{"id":2041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2051,"src":"4858:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2039,"name":"address","nodeType":"ElementaryTypeName","src":"4858:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4857:9:6"},"scope":2827,"src":"4791:154:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6227],"body":{"id":2066,"nodeType":"Block","src":"5087:69:6","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2060,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"5116:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5116:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2062,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2054,"src":"5130:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2063,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"5140:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2059,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2797,"src":"5097:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5097:52:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2065,"nodeType":"ExpressionStatement","src":"5097:52:6"}]},"documentation":{"id":2052,"nodeType":"StructuredDocumentation","src":"4951:56:6","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":2067,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"5021:17:6","nodeType":"FunctionDefinition","parameters":{"id":2057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2054,"mutability":"mutable","name":"operator","nameLocation":"5047:8:6","nodeType":"VariableDeclaration","scope":2067,"src":"5039:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2053,"name":"address","nodeType":"ElementaryTypeName","src":"5039:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2056,"mutability":"mutable","name":"approved","nameLocation":"5062:8:6","nodeType":"VariableDeclaration","scope":2067,"src":"5057:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2055,"name":"bool","nodeType":"ElementaryTypeName","src":"5057:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5038:33:6"},"returnParameters":{"id":2058,"nodeType":"ParameterList","parameters":[],"src":"5087:0:6"},"scope":2827,"src":"5012:144:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6245],"body":{"id":2090,"nodeType":"Block","src":"5316:116:6","statements":[{"assignments":[2079],"declarations":[{"constant":false,"id":2079,"mutability":"mutable","name":"$","nameLocation":"5348:1:6","nodeType":"VariableDeclaration","scope":2090,"src":"5326:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":2078,"nodeType":"UserDefinedTypeName","pathNode":{"id":2077,"name":"ERC721Storage","nameLocations":["5326:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"5326:13:6"},"referencedDeclaration":1807,"src":"5326:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":2082,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2080,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"5352:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":2081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5352:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5326:45:6"},{"expression":{"baseExpression":{"baseExpression":{"expression":{"id":2083,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"5388:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":2084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5390:18:6","memberName":"_operatorApprovals","nodeType":"MemberAccess","referencedDeclaration":1806,"src":"5388:20:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":2086,"indexExpression":{"id":2085,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2070,"src":"5409:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5388:27:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2088,"indexExpression":{"id":2087,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2072,"src":"5416:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5388:37:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2076,"id":2089,"nodeType":"Return","src":"5381:44:6"}]},"documentation":{"id":2068,"nodeType":"StructuredDocumentation","src":"5162:55:6","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":2091,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"5231:16:6","nodeType":"FunctionDefinition","parameters":{"id":2073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2070,"mutability":"mutable","name":"owner","nameLocation":"5256:5:6","nodeType":"VariableDeclaration","scope":2091,"src":"5248:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2069,"name":"address","nodeType":"ElementaryTypeName","src":"5248:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2072,"mutability":"mutable","name":"operator","nameLocation":"5271:8:6","nodeType":"VariableDeclaration","scope":2091,"src":"5263:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2071,"name":"address","nodeType":"ElementaryTypeName","src":"5263:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5247:33:6"},"returnParameters":{"id":2076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2091,"src":"5310:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2074,"name":"bool","nodeType":"ElementaryTypeName","src":"5310:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5309:6:6"},"scope":2827,"src":"5222:210:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6211],"body":{"id":2136,"nodeType":"Block","src":"5574:498:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2101,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2096,"src":"5588:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5602:1:6","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":2103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5594:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2102,"name":"address","nodeType":"ElementaryTypeName","src":"5594:7:6","typeDescriptions":{}}},"id":2105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5594:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5588:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2115,"nodeType":"IfStatement","src":"5584:87:6","trueBody":{"id":2114,"nodeType":"Block","src":"5606:65:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":2110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5657:1:6","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":2109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5649:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2108,"name":"address","nodeType":"ElementaryTypeName","src":"5649:7:6","typeDescriptions":{}}},"id":2111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5649:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2107,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3337,"src":"5627:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5627:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2113,"nodeType":"RevertStatement","src":"5620:40:6"}]}},{"assignments":[2117],"declarations":[{"constant":false,"id":2117,"mutability":"mutable","name":"previousOwner","nameLocation":"5897:13:6","nodeType":"VariableDeclaration","scope":2136,"src":"5889:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2116,"name":"address","nodeType":"ElementaryTypeName","src":"5889:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2124,"initialValue":{"arguments":[{"id":2119,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2096,"src":"5921:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2120,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2098,"src":"5925:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2121,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"5934:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5934:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2118,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2424,"src":"5913:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":2123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5913:34:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5889:58:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2125,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2117,"src":"5961:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2126,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"5978:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5961:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2135,"nodeType":"IfStatement","src":"5957:109:6","trueBody":{"id":2134,"nodeType":"Block","src":"5984:82:6","statements":[{"errorCall":{"arguments":[{"id":2129,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"6026:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2130,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2098,"src":"6032:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2131,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2117,"src":"6041:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2128,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3327,"src":"6005:20:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$_t_error_$","typeString":"function (address,uint256,address) pure returns (error)"}},"id":2132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6005:50:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2133,"nodeType":"RevertStatement","src":"5998:57:6"}]}}]},"documentation":{"id":2092,"nodeType":"StructuredDocumentation","src":"5438:51:6","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":2137,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5503:12:6","nodeType":"FunctionDefinition","parameters":{"id":2099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2094,"mutability":"mutable","name":"from","nameLocation":"5524:4:6","nodeType":"VariableDeclaration","scope":2137,"src":"5516:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2093,"name":"address","nodeType":"ElementaryTypeName","src":"5516:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2096,"mutability":"mutable","name":"to","nameLocation":"5538:2:6","nodeType":"VariableDeclaration","scope":2137,"src":"5530:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2095,"name":"address","nodeType":"ElementaryTypeName","src":"5530:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2098,"mutability":"mutable","name":"tokenId","nameLocation":"5550:7:6","nodeType":"VariableDeclaration","scope":2137,"src":"5542:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2097,"name":"uint256","nodeType":"ElementaryTypeName","src":"5542:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5515:43:6"},"returnParameters":{"id":2100,"nodeType":"ParameterList","parameters":[],"src":"5574:0:6"},"scope":2827,"src":"5494:578:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6201],"body":{"id":2154,"nodeType":"Block","src":"6214:56:6","statements":[{"expression":{"arguments":[{"id":2148,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2140,"src":"6241:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2149,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2142,"src":"6247:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2150,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2144,"src":"6251:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":2151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6260:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":2147,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[2155,2185],"referencedDeclaration":2185,"src":"6224:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":2152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6224:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2153,"nodeType":"ExpressionStatement","src":"6224:39:6"}]},"documentation":{"id":2138,"nodeType":"StructuredDocumentation","src":"6078:55:6","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":2155,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"6147:16:6","nodeType":"FunctionDefinition","parameters":{"id":2145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2140,"mutability":"mutable","name":"from","nameLocation":"6172:4:6","nodeType":"VariableDeclaration","scope":2155,"src":"6164:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2139,"name":"address","nodeType":"ElementaryTypeName","src":"6164:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2142,"mutability":"mutable","name":"to","nameLocation":"6186:2:6","nodeType":"VariableDeclaration","scope":2155,"src":"6178:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2141,"name":"address","nodeType":"ElementaryTypeName","src":"6178:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2144,"mutability":"mutable","name":"tokenId","nameLocation":"6198:7:6","nodeType":"VariableDeclaration","scope":2155,"src":"6190:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2143,"name":"uint256","nodeType":"ElementaryTypeName","src":"6190:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6163:43:6"},"returnParameters":{"id":2146,"nodeType":"ParameterList","parameters":[],"src":"6214:0:6"},"scope":2827,"src":"6138:132:6","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[6191],"body":{"id":2184,"nodeType":"Block","src":"6439:130:6","statements":[{"expression":{"arguments":[{"id":2168,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2158,"src":"6462:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2169,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2160,"src":"6468:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2170,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"6472:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2167,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2137,"src":"6449:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6449:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2172,"nodeType":"ExpressionStatement","src":"6449:31:6"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2176,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"6524:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6524:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2178,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2158,"src":"6538:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2179,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2160,"src":"6544:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2180,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"6548:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2181,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2164,"src":"6557:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2173,"name":"ERC721Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"6490:11:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Utils_$6369_$","typeString":"type(library ERC721Utils)"}},"id":2175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6502:21:6","memberName":"checkOnERC721Received","nodeType":"MemberAccess","referencedDeclaration":6368,"src":"6490:33:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,bytes memory)"}},"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6490:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2183,"nodeType":"ExpressionStatement","src":"6490:72:6"}]},"documentation":{"id":2156,"nodeType":"StructuredDocumentation","src":"6276:55:6","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":2185,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"6345:16:6","nodeType":"FunctionDefinition","parameters":{"id":2165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2158,"mutability":"mutable","name":"from","nameLocation":"6370:4:6","nodeType":"VariableDeclaration","scope":2185,"src":"6362:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2157,"name":"address","nodeType":"ElementaryTypeName","src":"6362:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2160,"mutability":"mutable","name":"to","nameLocation":"6384:2:6","nodeType":"VariableDeclaration","scope":2185,"src":"6376:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2159,"name":"address","nodeType":"ElementaryTypeName","src":"6376:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2162,"mutability":"mutable","name":"tokenId","nameLocation":"6396:7:6","nodeType":"VariableDeclaration","scope":2185,"src":"6388:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2161,"name":"uint256","nodeType":"ElementaryTypeName","src":"6388:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2164,"mutability":"mutable","name":"data","nameLocation":"6418:4:6","nodeType":"VariableDeclaration","scope":2185,"src":"6405:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2163,"name":"bytes","nodeType":"ElementaryTypeName","src":"6405:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6361:62:6"},"returnParameters":{"id":2166,"nodeType":"ParameterList","parameters":[],"src":"6439:0:6"},"scope":2827,"src":"6336:233:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2204,"nodeType":"Block","src":"7159:97:6","statements":[{"assignments":[2195],"declarations":[{"constant":false,"id":2195,"mutability":"mutable","name":"$","nameLocation":"7191:1:6","nodeType":"VariableDeclaration","scope":2204,"src":"7169:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":2194,"nodeType":"UserDefinedTypeName","pathNode":{"id":2193,"name":"ERC721Storage","nameLocations":["7169:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"7169:13:6"},"referencedDeclaration":1807,"src":"7169:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":2198,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2196,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"7195:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":2197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7195:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7169:45:6"},{"expression":{"baseExpression":{"expression":{"id":2199,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"7231:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":2200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7233:7:6","memberName":"_owners","nodeType":"MemberAccess","referencedDeclaration":1792,"src":"7231:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":2202,"indexExpression":{"id":2201,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"7241:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7231:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2192,"id":2203,"nodeType":"Return","src":"7224:25:6"}]},"documentation":{"id":2186,"nodeType":"StructuredDocumentation","src":"6575:504:6","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC-721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`."},"id":2205,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"7093:8:6","nodeType":"FunctionDefinition","parameters":{"id":2189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2188,"mutability":"mutable","name":"tokenId","nameLocation":"7110:7:6","nodeType":"VariableDeclaration","scope":2205,"src":"7102:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2187,"name":"uint256","nodeType":"ElementaryTypeName","src":"7102:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7101:17:6"},"returnParameters":{"id":2192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2205,"src":"7150:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2190,"name":"address","nodeType":"ElementaryTypeName","src":"7150:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7149:9:6"},"scope":2827,"src":"7084:172:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2224,"nodeType":"Block","src":"7451:105:6","statements":[{"assignments":[2215],"declarations":[{"constant":false,"id":2215,"mutability":"mutable","name":"$","nameLocation":"7483:1:6","nodeType":"VariableDeclaration","scope":2224,"src":"7461:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":2214,"nodeType":"UserDefinedTypeName","pathNode":{"id":2213,"name":"ERC721Storage","nameLocations":["7461:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"7461:13:6"},"referencedDeclaration":1807,"src":"7461:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":2218,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2216,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"7487:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7487:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7461:45:6"},{"expression":{"baseExpression":{"expression":{"id":2219,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2215,"src":"7523:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":2220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7525:15:6","memberName":"_tokenApprovals","nodeType":"MemberAccess","referencedDeclaration":1800,"src":"7523:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":2222,"indexExpression":{"id":2221,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2208,"src":"7541:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7523:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2212,"id":2223,"nodeType":"Return","src":"7516:33:6"}]},"documentation":{"id":2206,"nodeType":"StructuredDocumentation","src":"7262:105:6","text":" @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted."},"id":2225,"implemented":true,"kind":"function","modifiers":[],"name":"_getApproved","nameLocation":"7381:12:6","nodeType":"FunctionDefinition","parameters":{"id":2209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2208,"mutability":"mutable","name":"tokenId","nameLocation":"7402:7:6","nodeType":"VariableDeclaration","scope":2225,"src":"7394:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2207,"name":"uint256","nodeType":"ElementaryTypeName","src":"7394:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7393:17:6"},"returnParameters":{"id":2212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2225,"src":"7442:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2210,"name":"address","nodeType":"ElementaryTypeName","src":"7442:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7441:9:6"},"scope":2827,"src":"7372:184:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2260,"nodeType":"Block","src":"7976:163:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2237,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"8005:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8024:1:6","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":2239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8016:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2238,"name":"address","nodeType":"ElementaryTypeName","src":"8016:7:6","typeDescriptions":{}}},"id":2241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8016:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8005:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2243,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2228,"src":"8043:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2244,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"8052:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8043:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":2247,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2228,"src":"8080:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2248,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"8087:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2246,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2091,"src":"8063:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":2249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8063:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8043:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2252,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2232,"src":"8112:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2251,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2225,"src":"8099:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":2253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8099:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2254,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"8124:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8099:32:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8043:88:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2257,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8042:90:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8005:127:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2236,"id":2259,"nodeType":"Return","src":"7986:146:6"}]},"documentation":{"id":2226,"nodeType":"StructuredDocumentation","src":"7562:300:6","text":" @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":2261,"implemented":true,"kind":"function","modifiers":[],"name":"_isAuthorized","nameLocation":"7876:13:6","nodeType":"FunctionDefinition","parameters":{"id":2233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2228,"mutability":"mutable","name":"owner","nameLocation":"7898:5:6","nodeType":"VariableDeclaration","scope":2261,"src":"7890:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2227,"name":"address","nodeType":"ElementaryTypeName","src":"7890:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2230,"mutability":"mutable","name":"spender","nameLocation":"7913:7:6","nodeType":"VariableDeclaration","scope":2261,"src":"7905:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2229,"name":"address","nodeType":"ElementaryTypeName","src":"7905:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2232,"mutability":"mutable","name":"tokenId","nameLocation":"7930:7:6","nodeType":"VariableDeclaration","scope":2261,"src":"7922:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2231,"name":"uint256","nodeType":"ElementaryTypeName","src":"7922:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7889:49:6"},"returnParameters":{"id":2236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2261,"src":"7970:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2234,"name":"bool","nodeType":"ElementaryTypeName","src":"7970:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7969:6:6"},"scope":2827,"src":"7867:272:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2297,"nodeType":"Block","src":"8668:271:6","statements":[{"condition":{"id":2276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8682:39:6","subExpression":{"arguments":[{"id":2272,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"8697:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2273,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2266,"src":"8704:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2274,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"8713:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2271,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"8683:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) view returns (bool)"}},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8683:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2296,"nodeType":"IfStatement","src":"8678:255:6","trueBody":{"id":2295,"nodeType":"Block","src":"8723:210:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2277,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"8741:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8758:1:6","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":2279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8750:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2278,"name":"address","nodeType":"ElementaryTypeName","src":"8750:7:6","typeDescriptions":{}}},"id":2281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8750:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8741:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2293,"nodeType":"Block","src":"8839:84:6","statements":[{"errorCall":{"arguments":[{"id":2289,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2266,"src":"8891:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2290,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"8900:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2288,"name":"ERC721InsufficientApproval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"8864:26:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8864:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2292,"nodeType":"RevertStatement","src":"8857:51:6"}]},"id":2294,"nodeType":"IfStatement","src":"8737:186:6","trueBody":{"id":2287,"nodeType":"Block","src":"8762:71:6","statements":[{"errorCall":{"arguments":[{"id":2284,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"8810:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2283,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3318,"src":"8787:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":2285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8787:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2286,"nodeType":"RevertStatement","src":"8780:38:6"}]}}]}}]},"documentation":{"id":2262,"nodeType":"StructuredDocumentation","src":"8145:421:6","text":" @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if:\n - `spender` does not have approval from `owner` for `tokenId`.\n - `spender` does not have approval to manage all of `owner`'s assets.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":2298,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAuthorized","nameLocation":"8580:16:6","nodeType":"FunctionDefinition","parameters":{"id":2269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2264,"mutability":"mutable","name":"owner","nameLocation":"8605:5:6","nodeType":"VariableDeclaration","scope":2298,"src":"8597:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2263,"name":"address","nodeType":"ElementaryTypeName","src":"8597:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2266,"mutability":"mutable","name":"spender","nameLocation":"8620:7:6","nodeType":"VariableDeclaration","scope":2298,"src":"8612:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2265,"name":"address","nodeType":"ElementaryTypeName","src":"8612:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2268,"mutability":"mutable","name":"tokenId","nameLocation":"8637:7:6","nodeType":"VariableDeclaration","scope":2298,"src":"8629:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2267,"name":"uint256","nodeType":"ElementaryTypeName","src":"8629:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8596:49:6"},"returnParameters":{"id":2270,"nodeType":"ParameterList","parameters":[],"src":"8668:0:6"},"scope":2827,"src":"8571:368:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2321,"nodeType":"Block","src":"9656:135:6","statements":[{"assignments":[2308],"declarations":[{"constant":false,"id":2308,"mutability":"mutable","name":"$","nameLocation":"9688:1:6","nodeType":"VariableDeclaration","scope":2321,"src":"9666:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":2307,"nodeType":"UserDefinedTypeName","pathNode":{"id":2306,"name":"ERC721Storage","nameLocations":["9666:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"9666:13:6"},"referencedDeclaration":1807,"src":"9666:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":2311,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2309,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9692:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":2310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9692:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9666:45:6"},{"id":2320,"nodeType":"UncheckedBlock","src":"9721:64:6","statements":[{"expression":{"id":2318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":2312,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"9745:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":2315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9747:9:6","memberName":"_balances","nodeType":"MemberAccess","referencedDeclaration":1796,"src":"9745:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2316,"indexExpression":{"id":2314,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2301,"src":"9757:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9745:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2303,"src":"9769:5:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9745:29:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2319,"nodeType":"ExpressionStatement","src":"9745:29:6"}]}]},"documentation":{"id":2299,"nodeType":"StructuredDocumentation","src":"8945:631:6","text":" @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another."},"id":2322,"implemented":true,"kind":"function","modifiers":[],"name":"_increaseBalance","nameLocation":"9590:16:6","nodeType":"FunctionDefinition","parameters":{"id":2304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2301,"mutability":"mutable","name":"account","nameLocation":"9615:7:6","nodeType":"VariableDeclaration","scope":2322,"src":"9607:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2300,"name":"address","nodeType":"ElementaryTypeName","src":"9607:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2303,"mutability":"mutable","name":"value","nameLocation":"9632:5:6","nodeType":"VariableDeclaration","scope":2322,"src":"9624:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2302,"name":"uint128","nodeType":"ElementaryTypeName","src":"9624:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9606:32:6"},"returnParameters":{"id":2305,"nodeType":"ParameterList","parameters":[],"src":"9656:0:6"},"scope":2827,"src":"9581:210:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2423,"nodeType":"Block","src":"10479:761:6","statements":[{"assignments":[2336],"declarations":[{"constant":false,"id":2336,"mutability":"mutable","name":"$","nameLocation":"10511:1:6","nodeType":"VariableDeclaration","scope":2423,"src":"10489:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":2335,"nodeType":"UserDefinedTypeName","pathNode":{"id":2334,"name":"ERC721Storage","nameLocations":["10489:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"10489:13:6"},"referencedDeclaration":1807,"src":"10489:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":2339,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2337,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"10515:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":2338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10515:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10489:45:6"},{"assignments":[2341],"declarations":[{"constant":false,"id":2341,"mutability":"mutable","name":"from","nameLocation":"10552:4:6","nodeType":"VariableDeclaration","scope":2423,"src":"10544:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2340,"name":"address","nodeType":"ElementaryTypeName","src":"10544:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2345,"initialValue":{"arguments":[{"id":2343,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"10568:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2342,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"10559:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":2344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10544:32:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2346,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"10636:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10652:1:6","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":2348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10644:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2347,"name":"address","nodeType":"ElementaryTypeName","src":"10644:7:6","typeDescriptions":{}}},"id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10644:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10636:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2359,"nodeType":"IfStatement","src":"10632:86:6","trueBody":{"id":2358,"nodeType":"Block","src":"10656:62:6","statements":[{"expression":{"arguments":[{"id":2353,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"10687:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2354,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"10693:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2355,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"10699:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2352,"name":"_checkAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"10670:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) view"}},"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10670:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2357,"nodeType":"ExpressionStatement","src":"10670:37:6"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2360,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"10762:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10778:1:6","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":2362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10770:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2361,"name":"address","nodeType":"ElementaryTypeName","src":"10770:7:6","typeDescriptions":{}}},"id":2364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10762:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2389,"nodeType":"IfStatement","src":"10758:258:6","trueBody":{"id":2388,"nodeType":"Block","src":"10782:234:6","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":2369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10895:1:6","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":2368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10887:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2367,"name":"address","nodeType":"ElementaryTypeName","src":"10887:7:6","typeDescriptions":{}}},"id":2370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10887:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2371,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"10899:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":2374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10916:1:6","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":2373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10908:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2372,"name":"address","nodeType":"ElementaryTypeName","src":"10908:7:6","typeDescriptions":{}}},"id":2375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10908:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":2376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10920:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2366,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[2678,2752],"referencedDeclaration":2752,"src":"10878:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":2377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10878:48:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2378,"nodeType":"ExpressionStatement","src":"10878:48:6"},{"id":2387,"nodeType":"UncheckedBlock","src":"10941:65:6","statements":[{"expression":{"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":2379,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2336,"src":"10969:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":2382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10971:9:6","memberName":"_balances","nodeType":"MemberAccess","referencedDeclaration":1796,"src":"10969:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2383,"indexExpression":{"id":2381,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"10981:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10969:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":2384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10990:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10969:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2386,"nodeType":"ExpressionStatement","src":"10969:22:6"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2390,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"11030:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11044:1:6","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":2392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11036:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2391,"name":"address","nodeType":"ElementaryTypeName","src":"11036:7:6","typeDescriptions":{}}},"id":2394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11036:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11030:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2406,"nodeType":"IfStatement","src":"11026:109:6","trueBody":{"id":2405,"nodeType":"Block","src":"11048:87:6","statements":[{"id":2404,"nodeType":"UncheckedBlock","src":"11062:63:6","statements":[{"expression":{"id":2402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":2396,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2336,"src":"11090:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":2399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11092:9:6","memberName":"_balances","nodeType":"MemberAccess","referencedDeclaration":1796,"src":"11090:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2400,"indexExpression":{"id":2398,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"11102:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11090:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11109:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11090:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2403,"nodeType":"ExpressionStatement","src":"11090:20:6"}]}]}},{"expression":{"id":2413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":2407,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2336,"src":"11145:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":2410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11147:7:6","memberName":"_owners","nodeType":"MemberAccess","referencedDeclaration":1792,"src":"11145:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":2411,"indexExpression":{"id":2409,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"11155:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11145:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2412,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"11166:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11145:23:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2414,"nodeType":"ExpressionStatement","src":"11145:23:6"},{"eventCall":{"arguments":[{"id":2416,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"11193:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2417,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"11199:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2418,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"11203:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2415,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"11184:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11184:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2420,"nodeType":"EmitStatement","src":"11179:32:6"},{"expression":{"id":2421,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"11229:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2333,"id":2422,"nodeType":"Return","src":"11222:11:6"}]},"documentation":{"id":2323,"nodeType":"StructuredDocumentation","src":"9797:582:6","text":" @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}."},"id":2424,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"10393:7:6","nodeType":"FunctionDefinition","parameters":{"id":2330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2325,"mutability":"mutable","name":"to","nameLocation":"10409:2:6","nodeType":"VariableDeclaration","scope":2424,"src":"10401:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2324,"name":"address","nodeType":"ElementaryTypeName","src":"10401:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2327,"mutability":"mutable","name":"tokenId","nameLocation":"10421:7:6","nodeType":"VariableDeclaration","scope":2424,"src":"10413:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2326,"name":"uint256","nodeType":"ElementaryTypeName","src":"10413:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2329,"mutability":"mutable","name":"auth","nameLocation":"10438:4:6","nodeType":"VariableDeclaration","scope":2424,"src":"10430:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2328,"name":"address","nodeType":"ElementaryTypeName","src":"10430:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10400:43:6"},"returnParameters":{"id":2333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2424,"src":"10470:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2331,"name":"address","nodeType":"ElementaryTypeName","src":"10470:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10469:9:6"},"scope":2827,"src":"10384:856:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2473,"nodeType":"Block","src":"11615:274:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2432,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2427,"src":"11629:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11643:1:6","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":2434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11635:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2433,"name":"address","nodeType":"ElementaryTypeName","src":"11635:7:6","typeDescriptions":{}}},"id":2436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11635:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11629:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2446,"nodeType":"IfStatement","src":"11625:87:6","trueBody":{"id":2445,"nodeType":"Block","src":"11647:65:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":2441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11698:1:6","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":2440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11690:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2439,"name":"address","nodeType":"ElementaryTypeName","src":"11690:7:6","typeDescriptions":{}}},"id":2442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11690:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2438,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3337,"src":"11668:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11668:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2444,"nodeType":"RevertStatement","src":"11661:40:6"}]}},{"assignments":[2448],"declarations":[{"constant":false,"id":2448,"mutability":"mutable","name":"previousOwner","nameLocation":"11729:13:6","nodeType":"VariableDeclaration","scope":2473,"src":"11721:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2447,"name":"address","nodeType":"ElementaryTypeName","src":"11721:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2457,"initialValue":{"arguments":[{"id":2450,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2427,"src":"11753:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2451,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2429,"src":"11757:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":2454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11774:1:6","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":2453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11766:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2452,"name":"address","nodeType":"ElementaryTypeName","src":"11766:7:6","typeDescriptions":{}}},"id":2455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11766:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2449,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2424,"src":"11745:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":2456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11745:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11721:56:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2458,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2448,"src":"11791:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11816:1:6","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":2460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11808:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2459,"name":"address","nodeType":"ElementaryTypeName","src":"11808:7:6","typeDescriptions":{}}},"id":2462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11808:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11791:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2472,"nodeType":"IfStatement","src":"11787:96:6","trueBody":{"id":2471,"nodeType":"Block","src":"11820:63:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":2467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11869:1:6","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":2466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11861:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2465,"name":"address","nodeType":"ElementaryTypeName","src":"11861:7:6","typeDescriptions":{}}},"id":2468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11861:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2464,"name":"ERC721InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"11841:19:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11841:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2470,"nodeType":"RevertStatement","src":"11834:38:6"}]}}]},"documentation":{"id":2425,"nodeType":"StructuredDocumentation","src":"11246:311:6","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":2474,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"11571:5:6","nodeType":"FunctionDefinition","parameters":{"id":2430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2427,"mutability":"mutable","name":"to","nameLocation":"11585:2:6","nodeType":"VariableDeclaration","scope":2474,"src":"11577:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2426,"name":"address","nodeType":"ElementaryTypeName","src":"11577:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2429,"mutability":"mutable","name":"tokenId","nameLocation":"11597:7:6","nodeType":"VariableDeclaration","scope":2474,"src":"11589:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2428,"name":"uint256","nodeType":"ElementaryTypeName","src":"11589:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11576:29:6"},"returnParameters":{"id":2431,"nodeType":"ParameterList","parameters":[],"src":"11615:0:6"},"scope":2827,"src":"11562:327:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2488,"nodeType":"Block","src":"12297:43:6","statements":[{"expression":{"arguments":[{"id":2483,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2477,"src":"12317:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2484,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2479,"src":"12321:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":2485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12330:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":2482,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[2489,2519],"referencedDeclaration":2519,"src":"12307:9:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":2486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12307:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2487,"nodeType":"ExpressionStatement","src":"12307:26:6"}]},"documentation":{"id":2475,"nodeType":"StructuredDocumentation","src":"11895:340:6","text":" @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":2489,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"12249:9:6","nodeType":"FunctionDefinition","parameters":{"id":2480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2477,"mutability":"mutable","name":"to","nameLocation":"12267:2:6","nodeType":"VariableDeclaration","scope":2489,"src":"12259:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2476,"name":"address","nodeType":"ElementaryTypeName","src":"12259:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2479,"mutability":"mutable","name":"tokenId","nameLocation":"12279:7:6","nodeType":"VariableDeclaration","scope":2489,"src":"12271:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2478,"name":"uint256","nodeType":"ElementaryTypeName","src":"12271:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12258:29:6"},"returnParameters":{"id":2481,"nodeType":"ParameterList","parameters":[],"src":"12297:0:6"},"scope":2827,"src":"12240:100:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2518,"nodeType":"Block","src":"12645:123:6","statements":[{"expression":{"arguments":[{"id":2500,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2492,"src":"12661:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2501,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2494,"src":"12665:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2499,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2474,"src":"12655:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12655:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2503,"nodeType":"ExpressionStatement","src":"12655:18:6"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2507,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"12717:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12717:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":2511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12739:1:6","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":2510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12731:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2509,"name":"address","nodeType":"ElementaryTypeName","src":"12731:7:6","typeDescriptions":{}}},"id":2512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12731:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2513,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2492,"src":"12743:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2514,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2494,"src":"12747:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2515,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2496,"src":"12756:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2504,"name":"ERC721Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"12683:11:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Utils_$6369_$","typeString":"type(library ERC721Utils)"}},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12695:21:6","memberName":"checkOnERC721Received","nodeType":"MemberAccess","referencedDeclaration":6368,"src":"12683:33:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,bytes memory)"}},"id":2516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12683:78:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2517,"nodeType":"ExpressionStatement","src":"12683:78:6"}]},"documentation":{"id":2490,"nodeType":"StructuredDocumentation","src":"12346:210:6","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":2519,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"12570:9:6","nodeType":"FunctionDefinition","parameters":{"id":2497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2492,"mutability":"mutable","name":"to","nameLocation":"12588:2:6","nodeType":"VariableDeclaration","scope":2519,"src":"12580:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2491,"name":"address","nodeType":"ElementaryTypeName","src":"12580:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2494,"mutability":"mutable","name":"tokenId","nameLocation":"12600:7:6","nodeType":"VariableDeclaration","scope":2519,"src":"12592:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2493,"name":"uint256","nodeType":"ElementaryTypeName","src":"12592:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2496,"mutability":"mutable","name":"data","nameLocation":"12622:4:6","nodeType":"VariableDeclaration","scope":2519,"src":"12609:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2495,"name":"bytes","nodeType":"ElementaryTypeName","src":"12609:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12579:48:6"},"returnParameters":{"id":2498,"nodeType":"ParameterList","parameters":[],"src":"12645:0:6"},"scope":2827,"src":"12561:207:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2551,"nodeType":"Block","src":"13135:186:6","statements":[{"assignments":[2526],"declarations":[{"constant":false,"id":2526,"mutability":"mutable","name":"previousOwner","nameLocation":"13153:13:6","nodeType":"VariableDeclaration","scope":2551,"src":"13145:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2525,"name":"address","nodeType":"ElementaryTypeName","src":"13145:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2538,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":2530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13185:1:6","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":2529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13177:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2528,"name":"address","nodeType":"ElementaryTypeName","src":"13177:7:6","typeDescriptions":{}}},"id":2531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13177:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2532,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2522,"src":"13189:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":2535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13206:1:6","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":2534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13198:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2533,"name":"address","nodeType":"ElementaryTypeName","src":"13198:7:6","typeDescriptions":{}}},"id":2536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13198:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2527,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2424,"src":"13169:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":2537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13169:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13145:64:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2539,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2526,"src":"13223:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13248:1:6","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":2541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13240:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2540,"name":"address","nodeType":"ElementaryTypeName","src":"13240:7:6","typeDescriptions":{}}},"id":2543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13240:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13223:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2550,"nodeType":"IfStatement","src":"13219:96:6","trueBody":{"id":2549,"nodeType":"Block","src":"13252:63:6","statements":[{"errorCall":{"arguments":[{"id":2546,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2522,"src":"13296:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2545,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3318,"src":"13273:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":2547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13273:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2548,"nodeType":"RevertStatement","src":"13266:38:6"}]}}]},"documentation":{"id":2520,"nodeType":"StructuredDocumentation","src":"12774:315:6","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":2552,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"13103:5:6","nodeType":"FunctionDefinition","parameters":{"id":2523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2522,"mutability":"mutable","name":"tokenId","nameLocation":"13117:7:6","nodeType":"VariableDeclaration","scope":2552,"src":"13109:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2521,"name":"uint256","nodeType":"ElementaryTypeName","src":"13109:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13108:17:6"},"returnParameters":{"id":2524,"nodeType":"ParameterList","parameters":[],"src":"13135:0:6"},"scope":2827,"src":"13094:227:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2611,"nodeType":"Block","src":"13716:389:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2562,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2557,"src":"13730:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13744:1:6","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":2564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13736:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2563,"name":"address","nodeType":"ElementaryTypeName","src":"13736:7:6","typeDescriptions":{}}},"id":2566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13736:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13730:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2576,"nodeType":"IfStatement","src":"13726:87:6","trueBody":{"id":2575,"nodeType":"Block","src":"13748:65:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":2571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13799:1:6","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":2570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13791:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2569,"name":"address","nodeType":"ElementaryTypeName","src":"13791:7:6","typeDescriptions":{}}},"id":2572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13791:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2568,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3337,"src":"13769:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13769:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2574,"nodeType":"RevertStatement","src":"13762:40:6"}]}},{"assignments":[2578],"declarations":[{"constant":false,"id":2578,"mutability":"mutable","name":"previousOwner","nameLocation":"13830:13:6","nodeType":"VariableDeclaration","scope":2611,"src":"13822:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2577,"name":"address","nodeType":"ElementaryTypeName","src":"13822:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2587,"initialValue":{"arguments":[{"id":2580,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2557,"src":"13854:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2581,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2559,"src":"13858:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":2584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13875:1:6","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":2583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13867:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2582,"name":"address","nodeType":"ElementaryTypeName","src":"13867:7:6","typeDescriptions":{}}},"id":2585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13867:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2579,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2424,"src":"13846:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":2586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13846:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13822:56:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2588,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2578,"src":"13892:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13917:1:6","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":2590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13909:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2589,"name":"address","nodeType":"ElementaryTypeName","src":"13909:7:6","typeDescriptions":{}}},"id":2592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13909:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13892:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2599,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2578,"src":"13994:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2600,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2555,"src":"14011:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13994:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2609,"nodeType":"IfStatement","src":"13990:109:6","trueBody":{"id":2608,"nodeType":"Block","src":"14017:82:6","statements":[{"errorCall":{"arguments":[{"id":2603,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2555,"src":"14059:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2604,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2559,"src":"14065:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2605,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2578,"src":"14074:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2602,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3327,"src":"14038:20:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$_t_error_$","typeString":"function (address,uint256,address) pure returns (error)"}},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14038:50:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2607,"nodeType":"RevertStatement","src":"14031:57:6"}]}},"id":2610,"nodeType":"IfStatement","src":"13888:211:6","trueBody":{"id":2598,"nodeType":"Block","src":"13921:63:6","statements":[{"errorCall":{"arguments":[{"id":2595,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2559,"src":"13965:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2594,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3318,"src":"13942:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":2596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13942:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2597,"nodeType":"RevertStatement","src":"13935:38:6"}]}}]},"documentation":{"id":2553,"nodeType":"StructuredDocumentation","src":"13327:313:6","text":" @dev Transfers `tokenId` from `from` to `to`.\n  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":2612,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"13654:9:6","nodeType":"FunctionDefinition","parameters":{"id":2560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2555,"mutability":"mutable","name":"from","nameLocation":"13672:4:6","nodeType":"VariableDeclaration","scope":2612,"src":"13664:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2554,"name":"address","nodeType":"ElementaryTypeName","src":"13664:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2557,"mutability":"mutable","name":"to","nameLocation":"13686:2:6","nodeType":"VariableDeclaration","scope":2612,"src":"13678:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2556,"name":"address","nodeType":"ElementaryTypeName","src":"13678:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2559,"mutability":"mutable","name":"tokenId","nameLocation":"13698:7:6","nodeType":"VariableDeclaration","scope":2612,"src":"13690:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2558,"name":"uint256","nodeType":"ElementaryTypeName","src":"13690:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13663:43:6"},"returnParameters":{"id":2561,"nodeType":"ParameterList","parameters":[],"src":"13716:0:6"},"scope":2827,"src":"13645:460:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2629,"nodeType":"Block","src":"15114:53:6","statements":[{"expression":{"arguments":[{"id":2623,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2615,"src":"15138:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2624,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2617,"src":"15144:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2625,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"15148:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":2626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15157:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":2622,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[2630,2660],"referencedDeclaration":2660,"src":"15124:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":2627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15124:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2628,"nodeType":"ExpressionStatement","src":"15124:36:6"}]},"documentation":{"id":2613,"nodeType":"StructuredDocumentation","src":"14111:923:6","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC-721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":2630,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"15048:13:6","nodeType":"FunctionDefinition","parameters":{"id":2620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2615,"mutability":"mutable","name":"from","nameLocation":"15070:4:6","nodeType":"VariableDeclaration","scope":2630,"src":"15062:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2614,"name":"address","nodeType":"ElementaryTypeName","src":"15062:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2617,"mutability":"mutable","name":"to","nameLocation":"15084:2:6","nodeType":"VariableDeclaration","scope":2630,"src":"15076:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2616,"name":"address","nodeType":"ElementaryTypeName","src":"15076:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2619,"mutability":"mutable","name":"tokenId","nameLocation":"15096:7:6","nodeType":"VariableDeclaration","scope":2630,"src":"15088:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2618,"name":"uint256","nodeType":"ElementaryTypeName","src":"15088:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15061:43:6"},"returnParameters":{"id":2621,"nodeType":"ParameterList","parameters":[],"src":"15114:0:6"},"scope":2827,"src":"15039:128:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2659,"nodeType":"Block","src":"15506:127:6","statements":[{"expression":{"arguments":[{"id":2643,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2633,"src":"15526:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2644,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2635,"src":"15532:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2645,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"15536:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2642,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2612,"src":"15516:9:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15516:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2647,"nodeType":"ExpressionStatement","src":"15516:28:6"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2651,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"15588:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15588:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2653,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2633,"src":"15602:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2654,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2635,"src":"15608:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2655,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"15612:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2656,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2639,"src":"15621:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2648,"name":"ERC721Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"15554:11:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Utils_$6369_$","typeString":"type(library ERC721Utils)"}},"id":2650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15566:21:6","memberName":"checkOnERC721Received","nodeType":"MemberAccess","referencedDeclaration":6368,"src":"15554:33:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,bytes memory)"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15554:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2658,"nodeType":"ExpressionStatement","src":"15554:72:6"}]},"documentation":{"id":2631,"nodeType":"StructuredDocumentation","src":"15173:226:6","text":" @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":2660,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"15413:13:6","nodeType":"FunctionDefinition","parameters":{"id":2640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2633,"mutability":"mutable","name":"from","nameLocation":"15435:4:6","nodeType":"VariableDeclaration","scope":2660,"src":"15427:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2632,"name":"address","nodeType":"ElementaryTypeName","src":"15427:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2635,"mutability":"mutable","name":"to","nameLocation":"15449:2:6","nodeType":"VariableDeclaration","scope":2660,"src":"15441:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2634,"name":"address","nodeType":"ElementaryTypeName","src":"15441:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2637,"mutability":"mutable","name":"tokenId","nameLocation":"15461:7:6","nodeType":"VariableDeclaration","scope":2660,"src":"15453:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2636,"name":"uint256","nodeType":"ElementaryTypeName","src":"15453:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2639,"mutability":"mutable","name":"data","nameLocation":"15483:4:6","nodeType":"VariableDeclaration","scope":2660,"src":"15470:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2638,"name":"bytes","nodeType":"ElementaryTypeName","src":"15470:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15426:62:6"},"returnParameters":{"id":2641,"nodeType":"ParameterList","parameters":[],"src":"15506:0:6"},"scope":2827,"src":"15404:229:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2677,"nodeType":"Block","src":"16146:50:6","statements":[{"expression":{"arguments":[{"id":2671,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2663,"src":"16165:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2672,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2665,"src":"16169:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2673,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2667,"src":"16178:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":2674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16184:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2670,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[2678,2752],"referencedDeclaration":2752,"src":"16156:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16156:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2676,"nodeType":"ExpressionStatement","src":"16156:33:6"}]},"documentation":{"id":2661,"nodeType":"StructuredDocumentation","src":"15639:432:6","text":" @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":2678,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"16085:8:6","nodeType":"FunctionDefinition","parameters":{"id":2668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2663,"mutability":"mutable","name":"to","nameLocation":"16102:2:6","nodeType":"VariableDeclaration","scope":2678,"src":"16094:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2662,"name":"address","nodeType":"ElementaryTypeName","src":"16094:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2665,"mutability":"mutable","name":"tokenId","nameLocation":"16114:7:6","nodeType":"VariableDeclaration","scope":2678,"src":"16106:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2664,"name":"uint256","nodeType":"ElementaryTypeName","src":"16106:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2667,"mutability":"mutable","name":"auth","nameLocation":"16131:4:6","nodeType":"VariableDeclaration","scope":2678,"src":"16123:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2666,"name":"address","nodeType":"ElementaryTypeName","src":"16123:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16093:43:6"},"returnParameters":{"id":2669,"nodeType":"ParameterList","parameters":[],"src":"16146:0:6"},"scope":2827,"src":"16076:120:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2751,"nodeType":"Block","src":"16472:625:6","statements":[{"assignments":[2692],"declarations":[{"constant":false,"id":2692,"mutability":"mutable","name":"$","nameLocation":"16504:1:6","nodeType":"VariableDeclaration","scope":2751,"src":"16482:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":2691,"nodeType":"UserDefinedTypeName","pathNode":{"id":2690,"name":"ERC721Storage","nameLocations":["16482:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"16482:13:6"},"referencedDeclaration":1807,"src":"16482:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":2695,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2693,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"16508:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":2694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16508:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16482:45:6"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2696,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2687,"src":"16593:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2697,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"16606:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16622:1:6","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":2699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16614:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2698,"name":"address","nodeType":"ElementaryTypeName","src":"16614:7:6","typeDescriptions":{}}},"id":2701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16614:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16606:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16593:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2742,"nodeType":"IfStatement","src":"16589:460:6","trueBody":{"id":2741,"nodeType":"Block","src":"16626:423:6","statements":[{"assignments":[2705],"declarations":[{"constant":false,"id":2705,"mutability":"mutable","name":"owner","nameLocation":"16648:5:6","nodeType":"VariableDeclaration","scope":2741,"src":"16640:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2704,"name":"address","nodeType":"ElementaryTypeName","src":"16640:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2709,"initialValue":{"arguments":[{"id":2707,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2683,"src":"16670:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2706,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2826,"src":"16656:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":2708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16656:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16640:38:6"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2710,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"16806:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16822:1:6","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":2712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16814:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2711,"name":"address","nodeType":"ElementaryTypeName","src":"16814:7:6","typeDescriptions":{}}},"id":2714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16814:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16806:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2716,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"16828:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2717,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"16837:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16828:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16806:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16845:30:6","subExpression":{"arguments":[{"id":2721,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"16863:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2722,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"16870:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2720,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2091,"src":"16846:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":2723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16846:29:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16806:69:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2731,"nodeType":"IfStatement","src":"16802:142:6","trueBody":{"id":2730,"nodeType":"Block","src":"16877:67:6","statements":[{"errorCall":{"arguments":[{"id":2727,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"16924:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2726,"name":"ERC721InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3349,"src":"16902:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2729,"nodeType":"RevertStatement","src":"16895:34:6"}]}},{"condition":{"id":2732,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2687,"src":"16962:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2740,"nodeType":"IfStatement","src":"16958:81:6","trueBody":{"id":2739,"nodeType":"Block","src":"16973:66:6","statements":[{"eventCall":{"arguments":[{"id":2734,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"17005:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2735,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"17012:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2736,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2683,"src":"17016:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2733,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"16996:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16996:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2738,"nodeType":"EmitStatement","src":"16991:33:6"}]}}]}},{"expression":{"id":2749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":2743,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2692,"src":"17059:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":2746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17061:15:6","memberName":"_tokenApprovals","nodeType":"MemberAccess","referencedDeclaration":1800,"src":"17059:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":2747,"indexExpression":{"id":2745,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2683,"src":"17077:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17059:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2748,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"17088:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17059:31:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2750,"nodeType":"ExpressionStatement","src":"17059:31:6"}]},"documentation":{"id":2679,"nodeType":"StructuredDocumentation","src":"16202:171:6","text":" @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers."},"id":2752,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"16387:8:6","nodeType":"FunctionDefinition","parameters":{"id":2688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2681,"mutability":"mutable","name":"to","nameLocation":"16404:2:6","nodeType":"VariableDeclaration","scope":2752,"src":"16396:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2680,"name":"address","nodeType":"ElementaryTypeName","src":"16396:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2683,"mutability":"mutable","name":"tokenId","nameLocation":"16416:7:6","nodeType":"VariableDeclaration","scope":2752,"src":"16408:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2682,"name":"uint256","nodeType":"ElementaryTypeName","src":"16408:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2685,"mutability":"mutable","name":"auth","nameLocation":"16433:4:6","nodeType":"VariableDeclaration","scope":2752,"src":"16425:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2684,"name":"address","nodeType":"ElementaryTypeName","src":"16425:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2687,"mutability":"mutable","name":"emitEvent","nameLocation":"16444:9:6","nodeType":"VariableDeclaration","scope":2752,"src":"16439:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2686,"name":"bool","nodeType":"ElementaryTypeName","src":"16439:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16395:59:6"},"returnParameters":{"id":2689,"nodeType":"ParameterList","parameters":[],"src":"16472:0:6"},"scope":2827,"src":"16378:719:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2796,"nodeType":"Block","src":"17399:276:6","statements":[{"assignments":[2764],"declarations":[{"constant":false,"id":2764,"mutability":"mutable","name":"$","nameLocation":"17431:1:6","nodeType":"VariableDeclaration","scope":2796,"src":"17409:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"},"typeName":{"id":2763,"nodeType":"UserDefinedTypeName","pathNode":{"id":2762,"name":"ERC721Storage","nameLocations":["17409:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":1807,"src":"17409:13:6"},"referencedDeclaration":1807,"src":"17409:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage"}},"visibility":"internal"}],"id":2767,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2765,"name":"_getERC721Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"17435:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$1807_storage_ptr_$","typeString":"function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)"}},"id":2766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17435:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17409:45:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2768,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"17468:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17488:1:6","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":2770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17480:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2769,"name":"address","nodeType":"ElementaryTypeName","src":"17480:7:6","typeDescriptions":{}}},"id":2772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17480:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17468:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2779,"nodeType":"IfStatement","src":"17464:91:6","trueBody":{"id":2778,"nodeType":"Block","src":"17492:63:6","statements":[{"errorCall":{"arguments":[{"id":2775,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"17535:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2774,"name":"ERC721InvalidOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"17513:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17513:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2777,"nodeType":"RevertStatement","src":"17506:38:6"}]}},{"expression":{"id":2788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":2780,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2764,"src":"17564:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_ERC721Storage_$1807_storage_ptr","typeString":"struct ERC721Upgradeable.ERC721Storage storage pointer"}},"id":2784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17566:18:6","memberName":"_operatorApprovals","nodeType":"MemberAccess","referencedDeclaration":1806,"src":"17564:20:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":2785,"indexExpression":{"id":2782,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2755,"src":"17585:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17564:27:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2786,"indexExpression":{"id":2783,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"17592:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17564:37:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2787,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"17604:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17564:48:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2789,"nodeType":"ExpressionStatement","src":"17564:48:6"},{"eventCall":{"arguments":[{"id":2791,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2755,"src":"17642:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2792,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"17649:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2793,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"17659:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2790,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"17627:14:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17627:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2795,"nodeType":"EmitStatement","src":"17622:46:6"}]},"documentation":{"id":2753,"nodeType":"StructuredDocumentation","src":"17103:198:6","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event."},"id":2797,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"17315:18:6","nodeType":"FunctionDefinition","parameters":{"id":2760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2755,"mutability":"mutable","name":"owner","nameLocation":"17342:5:6","nodeType":"VariableDeclaration","scope":2797,"src":"17334:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2754,"name":"address","nodeType":"ElementaryTypeName","src":"17334:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2757,"mutability":"mutable","name":"operator","nameLocation":"17357:8:6","nodeType":"VariableDeclaration","scope":2797,"src":"17349:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2756,"name":"address","nodeType":"ElementaryTypeName","src":"17349:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2759,"mutability":"mutable","name":"approved","nameLocation":"17372:8:6","nodeType":"VariableDeclaration","scope":2797,"src":"17367:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2758,"name":"bool","nodeType":"ElementaryTypeName","src":"17367:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17333:48:6"},"returnParameters":{"id":2761,"nodeType":"ParameterList","parameters":[],"src":"17399:0:6"},"scope":2827,"src":"17306:369:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2825,"nodeType":"Block","src":"17982:169:6","statements":[{"assignments":[2806],"declarations":[{"constant":false,"id":2806,"mutability":"mutable","name":"owner","nameLocation":"18000:5:6","nodeType":"VariableDeclaration","scope":2825,"src":"17992:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2805,"name":"address","nodeType":"ElementaryTypeName","src":"17992:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2810,"initialValue":{"arguments":[{"id":2808,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"18017:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2807,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"18008:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":2809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18008:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17992:33:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2811,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2806,"src":"18039:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18056:1:6","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":2813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18048:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2812,"name":"address","nodeType":"ElementaryTypeName","src":"18048:7:6","typeDescriptions":{}}},"id":2815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18048:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18039:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2822,"nodeType":"IfStatement","src":"18035:88:6","trueBody":{"id":2821,"nodeType":"Block","src":"18060:63:6","statements":[{"errorCall":{"arguments":[{"id":2818,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"18104:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2817,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3318,"src":"18081:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":2819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18081:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2820,"nodeType":"RevertStatement","src":"18074:38:6"}]}},{"expression":{"id":2823,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2806,"src":"18139:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2804,"id":2824,"nodeType":"Return","src":"18132:12:6"}]},"documentation":{"id":2798,"nodeType":"StructuredDocumentation","src":"17681:224:6","text":" @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}."},"id":2826,"implemented":true,"kind":"function","modifiers":[],"name":"_requireOwned","nameLocation":"17919:13:6","nodeType":"FunctionDefinition","parameters":{"id":2801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2800,"mutability":"mutable","name":"tokenId","nameLocation":"17941:7:6","nodeType":"VariableDeclaration","scope":2826,"src":"17933:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2799,"name":"uint256","nodeType":"ElementaryTypeName","src":"17933:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17932:17:6"},"returnParameters":{"id":2804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2826,"src":"17973:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2802,"name":"address","nodeType":"ElementaryTypeName","src":"17973:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17972:9:6"},"scope":2827,"src":"17910:241:6","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2828,"src":"1099:17054:6","usedErrors":[711,714,3313,3318,3327,3332,3337,3344,3349,3354],"usedEvents":[719,6145,6154,6163]}],"src":"107:18047:6"},"id":6},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[2873],"Initializable":[948]},"id":2874,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2829,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:7"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":2831,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2874,"sourceUnit":949,"src":"126:63:7","symbolAliases":[{"foreign":{"id":2830,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"134:13:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2833,"name":"Initializable","nameLocations":["728:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"728:13:7"},"id":2834,"nodeType":"InheritanceSpecifier","src":"728:13:7"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2832,"nodeType":"StructuredDocumentation","src":"191:496:7","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":2873,"linearizedBaseContracts":[2873,948],"name":"ContextUpgradeable","nameLocation":"706:18:7","nodeType":"ContractDefinition","nodes":[{"body":{"id":2839,"nodeType":"Block","src":"800:7:7","statements":[]},"id":2840,"implemented":true,"kind":"function","modifiers":[{"id":2837,"kind":"modifierInvocation","modifierName":{"id":2836,"name":"onlyInitializing","nameLocations":["783:16:7"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"783:16:7"},"nodeType":"ModifierInvocation","src":"783:16:7"}],"name":"__Context_init","nameLocation":"757:14:7","nodeType":"FunctionDefinition","parameters":{"id":2835,"nodeType":"ParameterList","parameters":[],"src":"771:2:7"},"returnParameters":{"id":2838,"nodeType":"ParameterList","parameters":[],"src":"800:0:7"},"scope":2873,"src":"748:59:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2845,"nodeType":"Block","src":"875:7:7","statements":[]},"id":2846,"implemented":true,"kind":"function","modifiers":[{"id":2843,"kind":"modifierInvocation","modifierName":{"id":2842,"name":"onlyInitializing","nameLocations":["858:16:7"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"858:16:7"},"nodeType":"ModifierInvocation","src":"858:16:7"}],"name":"__Context_init_unchained","nameLocation":"822:24:7","nodeType":"FunctionDefinition","parameters":{"id":2841,"nodeType":"ParameterList","parameters":[],"src":"846:2:7"},"returnParameters":{"id":2844,"nodeType":"ParameterList","parameters":[],"src":"875:0:7"},"scope":2873,"src":"813:69:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2854,"nodeType":"Block","src":"949:34:7","statements":[{"expression":{"expression":{"id":2851,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"966:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"970:6:7","memberName":"sender","nodeType":"MemberAccess","src":"966:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2850,"id":2853,"nodeType":"Return","src":"959:17:7"}]},"id":2855,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"896:10:7","nodeType":"FunctionDefinition","parameters":{"id":2847,"nodeType":"ParameterList","parameters":[],"src":"906:2:7"},"returnParameters":{"id":2850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2849,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2855,"src":"940:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2848,"name":"address","nodeType":"ElementaryTypeName","src":"940:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"939:9:7"},"scope":2873,"src":"887:96:7","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2863,"nodeType":"Block","src":"1056:32:7","statements":[{"expression":{"expression":{"id":2860,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1073:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1077:4:7","memberName":"data","nodeType":"MemberAccess","src":"1073:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":2859,"id":2862,"nodeType":"Return","src":"1066:15:7"}]},"id":2864,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"998:8:7","nodeType":"FunctionDefinition","parameters":{"id":2856,"nodeType":"ParameterList","parameters":[],"src":"1006:2:7"},"returnParameters":{"id":2859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2864,"src":"1040:14:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2857,"name":"bytes","nodeType":"ElementaryTypeName","src":"1040:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1039:16:7"},"scope":2873,"src":"989:99:7","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2871,"nodeType":"Block","src":"1166:25:7","statements":[{"expression":{"hexValue":"30","id":2869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1183:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2868,"id":2870,"nodeType":"Return","src":"1176:8:7"}]},"id":2872,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"1103:20:7","nodeType":"FunctionDefinition","parameters":{"id":2865,"nodeType":"ParameterList","parameters":[],"src":"1123:2:7"},"returnParameters":{"id":2868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2872,"src":"1157:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2866,"name":"uint256","nodeType":"ElementaryTypeName","src":"1157:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1156:9:7"},"scope":2873,"src":"1094:97:7","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":2874,"src":"688:505:7","usedErrors":[711,714],"usedEvents":[719]}],"src":"101:1093:7"},"id":7},"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","exportedSymbols":{"ERC165Upgradeable":[2913],"IERC165":[8493],"Initializable":[948]},"id":2914,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2875,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:8"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":2877,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2914,"sourceUnit":8494,"src":"140:80:8","symbolAliases":[{"foreign":{"id":2876,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"148:7:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","id":2879,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2914,"sourceUnit":949,"src":"221:66:8","symbolAliases":[{"foreign":{"id":2878,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"229:13:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2881,"name":"Initializable","nameLocations":["808:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"808:13:8"},"id":2882,"nodeType":"InheritanceSpecifier","src":"808:13:8"},{"baseName":{"id":2883,"name":"IERC165","nameLocations":["823:7:8"],"nodeType":"IdentifierPath","referencedDeclaration":8493,"src":"823:7:8"},"id":2884,"nodeType":"InheritanceSpecifier","src":"823:7:8"}],"canonicalName":"ERC165Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2880,"nodeType":"StructuredDocumentation","src":"289:479:8","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":2913,"linearizedBaseContracts":[2913,8493,948],"name":"ERC165Upgradeable","nameLocation":"787:17:8","nodeType":"ContractDefinition","nodes":[{"body":{"id":2889,"nodeType":"Block","src":"888:7:8","statements":[]},"id":2890,"implemented":true,"kind":"function","modifiers":[{"id":2887,"kind":"modifierInvocation","modifierName":{"id":2886,"name":"onlyInitializing","nameLocations":["871:16:8"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"871:16:8"},"nodeType":"ModifierInvocation","src":"871:16:8"}],"name":"__ERC165_init","nameLocation":"846:13:8","nodeType":"FunctionDefinition","parameters":{"id":2885,"nodeType":"ParameterList","parameters":[],"src":"859:2:8"},"returnParameters":{"id":2888,"nodeType":"ParameterList","parameters":[],"src":"888:0:8"},"scope":2913,"src":"837:58:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2895,"nodeType":"Block","src":"962:7:8","statements":[]},"id":2896,"implemented":true,"kind":"function","modifiers":[{"id":2893,"kind":"modifierInvocation","modifierName":{"id":2892,"name":"onlyInitializing","nameLocations":["945:16:8"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"945:16:8"},"nodeType":"ModifierInvocation","src":"945:16:8"}],"name":"__ERC165_init_unchained","nameLocation":"910:23:8","nodeType":"FunctionDefinition","parameters":{"id":2891,"nodeType":"ParameterList","parameters":[],"src":"933:2:8"},"returnParameters":{"id":2894,"nodeType":"ParameterList","parameters":[],"src":"962:0:8"},"scope":2913,"src":"901:68:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[8492],"body":{"id":2911,"nodeType":"Block","src":"1117:64:8","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2904,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"1134:11:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2906,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"1154:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8493_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$8493_$","typeString":"type(contract IERC165)"}],"id":2905,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1149:4:8","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1149:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$8493","typeString":"type(contract IERC165)"}},"id":2908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1163:11:8","memberName":"interfaceId","nodeType":"MemberAccess","src":"1149:25:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1134:40:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2903,"id":2910,"nodeType":"Return","src":"1127:47:8"}]},"documentation":{"id":2897,"nodeType":"StructuredDocumentation","src":"974:56:8","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":2912,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1044:17:8","nodeType":"FunctionDefinition","parameters":{"id":2900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2899,"mutability":"mutable","name":"interfaceId","nameLocation":"1069:11:8","nodeType":"VariableDeclaration","scope":2912,"src":"1062:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2898,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1062:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1061:20:8"},"returnParameters":{"id":2903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2902,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2912,"src":"1111:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2901,"name":"bool","nodeType":"ElementaryTypeName","src":"1111:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1110:6:8"},"scope":2913,"src":"1035:146:8","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2914,"src":"769:414:8","usedErrors":[711,714],"usedEvents":[719]}],"src":"114:1070:8"},"id":8},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[2996]},"id":2997,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2915,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:9"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":2916,"nodeType":"StructuredDocumentation","src":"135:90:9","text":" @dev External interface of AccessControl declared to support ERC-165 detection."},"fullyImplemented":false,"id":2996,"linearizedBaseContracts":[2996],"name":"IAccessControl","nameLocation":"236:14:9","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2917,"nodeType":"StructuredDocumentation","src":"257:56:9","text":" @dev The `account` is missing a role."},"errorSelector":"e2517d3f","id":2923,"name":"AccessControlUnauthorizedAccount","nameLocation":"324:32:9","nodeType":"ErrorDefinition","parameters":{"id":2922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2919,"mutability":"mutable","name":"account","nameLocation":"365:7:9","nodeType":"VariableDeclaration","scope":2923,"src":"357:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2918,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2921,"mutability":"mutable","name":"neededRole","nameLocation":"382:10:9","nodeType":"VariableDeclaration","scope":2923,"src":"374:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"356:37:9"},"src":"318:76:9"},{"documentation":{"id":2924,"nodeType":"StructuredDocumentation","src":"400:148:9","text":" @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."},"errorSelector":"6697b232","id":2926,"name":"AccessControlBadConfirmation","nameLocation":"559:28:9","nodeType":"ErrorDefinition","parameters":{"id":2925,"nodeType":"ParameterList","parameters":[],"src":"587:2:9"},"src":"553:37:9"},{"anonymous":false,"documentation":{"id":2927,"nodeType":"StructuredDocumentation","src":"596:254:9","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this."},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":2935,"name":"RoleAdminChanged","nameLocation":"861:16:9","nodeType":"EventDefinition","parameters":{"id":2934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2929,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"894:4:9","nodeType":"VariableDeclaration","scope":2935,"src":"878:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"878:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2931,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"916:17:9","nodeType":"VariableDeclaration","scope":2935,"src":"900:33:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2930,"name":"bytes32","nodeType":"ElementaryTypeName","src":"900:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2933,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"951:12:9","nodeType":"VariableDeclaration","scope":2935,"src":"935:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"935:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"877:87:9"},"src":"855:110:9"},{"anonymous":false,"documentation":{"id":2936,"nodeType":"StructuredDocumentation","src":"971:295:9","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n Expected in cases where the role was granted using the internal {AccessControl-_grantRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":2944,"name":"RoleGranted","nameLocation":"1277:11:9","nodeType":"EventDefinition","parameters":{"id":2943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2938,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1305:4:9","nodeType":"VariableDeclaration","scope":2944,"src":"1289:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2937,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2940,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1327:7:9","nodeType":"VariableDeclaration","scope":2944,"src":"1311:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2939,"name":"address","nodeType":"ElementaryTypeName","src":"1311:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2942,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1352:6:9","nodeType":"VariableDeclaration","scope":2944,"src":"1336:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2941,"name":"address","nodeType":"ElementaryTypeName","src":"1336:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1288:71:9"},"src":"1271:89:9"},{"anonymous":false,"documentation":{"id":2945,"nodeType":"StructuredDocumentation","src":"1366:275:9","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":2953,"name":"RoleRevoked","nameLocation":"1652:11:9","nodeType":"EventDefinition","parameters":{"id":2952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2947,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1680:4:9","nodeType":"VariableDeclaration","scope":2953,"src":"1664:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1664:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2949,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1702:7:9","nodeType":"VariableDeclaration","scope":2953,"src":"1686:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2948,"name":"address","nodeType":"ElementaryTypeName","src":"1686:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2951,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1727:6:9","nodeType":"VariableDeclaration","scope":2953,"src":"1711:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2950,"name":"address","nodeType":"ElementaryTypeName","src":"1711:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1663:71:9"},"src":"1646:89:9"},{"documentation":{"id":2954,"nodeType":"StructuredDocumentation","src":"1741:76:9","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":2963,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1831:7:9","nodeType":"FunctionDefinition","parameters":{"id":2959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2956,"mutability":"mutable","name":"role","nameLocation":"1847:4:9","nodeType":"VariableDeclaration","scope":2963,"src":"1839:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1839:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2958,"mutability":"mutable","name":"account","nameLocation":"1861:7:9","nodeType":"VariableDeclaration","scope":2963,"src":"1853:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2957,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1838:31:9"},"returnParameters":{"id":2962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2963,"src":"1893:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2960,"name":"bool","nodeType":"ElementaryTypeName","src":"1893:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1892:6:9"},"scope":2996,"src":"1822:77:9","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2964,"nodeType":"StructuredDocumentation","src":"1905:184:9","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":2971,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"2103:12:9","nodeType":"FunctionDefinition","parameters":{"id":2967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2966,"mutability":"mutable","name":"role","nameLocation":"2124:4:9","nodeType":"VariableDeclaration","scope":2971,"src":"2116:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2965,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2116:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2115:14:9"},"returnParameters":{"id":2970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2971,"src":"2153:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2968,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2153:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2152:9:9"},"scope":2996,"src":"2094:68:9","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2972,"nodeType":"StructuredDocumentation","src":"2168:239:9","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":2979,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2421:9:9","nodeType":"FunctionDefinition","parameters":{"id":2977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2974,"mutability":"mutable","name":"role","nameLocation":"2439:4:9","nodeType":"VariableDeclaration","scope":2979,"src":"2431:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2431:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2976,"mutability":"mutable","name":"account","nameLocation":"2453:7:9","nodeType":"VariableDeclaration","scope":2979,"src":"2445:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2975,"name":"address","nodeType":"ElementaryTypeName","src":"2445:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2430:31:9"},"returnParameters":{"id":2978,"nodeType":"ParameterList","parameters":[],"src":"2470:0:9"},"scope":2996,"src":"2412:59:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2980,"nodeType":"StructuredDocumentation","src":"2477:223:9","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":2987,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2714:10:9","nodeType":"FunctionDefinition","parameters":{"id":2985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2982,"mutability":"mutable","name":"role","nameLocation":"2733:4:9","nodeType":"VariableDeclaration","scope":2987,"src":"2725:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2725:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2984,"mutability":"mutable","name":"account","nameLocation":"2747:7:9","nodeType":"VariableDeclaration","scope":2987,"src":"2739:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2983,"name":"address","nodeType":"ElementaryTypeName","src":"2739:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2724:31:9"},"returnParameters":{"id":2986,"nodeType":"ParameterList","parameters":[],"src":"2764:0:9"},"scope":2996,"src":"2705:60:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2988,"nodeType":"StructuredDocumentation","src":"2771:491:9","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`."},"functionSelector":"36568abe","id":2995,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"3276:12:9","nodeType":"FunctionDefinition","parameters":{"id":2993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2990,"mutability":"mutable","name":"role","nameLocation":"3297:4:9","nodeType":"VariableDeclaration","scope":2995,"src":"3289:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3289:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2992,"mutability":"mutable","name":"callerConfirmation","nameLocation":"3311:18:9","nodeType":"VariableDeclaration","scope":2995,"src":"3303:26:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2991,"name":"address","nodeType":"ElementaryTypeName","src":"3303:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3288:42:9"},"returnParameters":{"id":2994,"nodeType":"ParameterList","parameters":[],"src":"3339:0:9"},"scope":2996,"src":"3267:73:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2997,"src":"226:3116:9","usedErrors":[2923,2926],"usedEvents":[2935,2944,2953]}],"src":"109:3234:9"},"id":9},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[6658],"Ownable":[3144]},"id":3145,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2998,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:10"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3000,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3145,"sourceUnit":6659,"src":"128:45:10","symbolAliases":[{"foreign":{"id":2999,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6658,"src":"136:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3002,"name":"Context","nameLocations":["692:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":6658,"src":"692:7:10"},"id":3003,"nodeType":"InheritanceSpecifier","src":"692:7:10"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3001,"nodeType":"StructuredDocumentation","src":"175:487:10","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 The initial owner is set to the address provided by the deployer. This can\n 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":3144,"linearizedBaseContracts":[3144,6658],"name":"Ownable","nameLocation":"681:7:10","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3005,"mutability":"mutable","name":"_owner","nameLocation":"722:6:10","nodeType":"VariableDeclaration","scope":3144,"src":"706:22:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3004,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":3006,"nodeType":"StructuredDocumentation","src":"735:85:10","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":3010,"name":"OwnableUnauthorizedAccount","nameLocation":"831:26:10","nodeType":"ErrorDefinition","parameters":{"id":3009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3008,"mutability":"mutable","name":"account","nameLocation":"866:7:10","nodeType":"VariableDeclaration","scope":3010,"src":"858:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3007,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:17:10"},"src":"825:50:10"},{"documentation":{"id":3011,"nodeType":"StructuredDocumentation","src":"881:82:10","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":3015,"name":"OwnableInvalidOwner","nameLocation":"974:19:10","nodeType":"ErrorDefinition","parameters":{"id":3014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3013,"mutability":"mutable","name":"owner","nameLocation":"1002:5:10","nodeType":"VariableDeclaration","scope":3015,"src":"994:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3012,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"993:15:10"},"src":"968:41:10"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":3021,"name":"OwnershipTransferred","nameLocation":"1021:20:10","nodeType":"EventDefinition","parameters":{"id":3020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3017,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1058:13:10","nodeType":"VariableDeclaration","scope":3021,"src":"1042:29:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3016,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3019,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1089:8:10","nodeType":"VariableDeclaration","scope":3021,"src":"1073:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3018,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1041:57:10"},"src":"1015:84:10"},{"body":{"id":3046,"nodeType":"Block","src":"1259:153:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3027,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3024,"src":"1273:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297: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":3029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3028,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:10","typeDescriptions":{}}},"id":3031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1273:26:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3041,"nodeType":"IfStatement","src":"1269:95:10","trueBody":{"id":3040,"nodeType":"Block","src":"1301:63:10","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":3036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350: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":3035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1342:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3034,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:10","typeDescriptions":{}}},"id":3037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3033,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"1322:19:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3039,"nodeType":"RevertStatement","src":"1315:38:10"}]}},{"expression":{"arguments":[{"id":3043,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3024,"src":"1392:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3042,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"1373:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3045,"nodeType":"ExpressionStatement","src":"1373:32:10"}]},"documentation":{"id":3022,"nodeType":"StructuredDocumentation","src":"1105:115:10","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":3047,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3024,"mutability":"mutable","name":"initialOwner","nameLocation":"1245:12:10","nodeType":"VariableDeclaration","scope":3047,"src":"1237:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3023,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1236:22:10"},"returnParameters":{"id":3026,"nodeType":"ParameterList","parameters":[],"src":"1259:0:10"},"scope":3144,"src":"1225:187:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3054,"nodeType":"Block","src":"1521:41:10","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3050,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"1531:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":3051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3052,"nodeType":"ExpressionStatement","src":"1531:13:10"},{"id":3053,"nodeType":"PlaceholderStatement","src":"1554:1:10"}]},"documentation":{"id":3048,"nodeType":"StructuredDocumentation","src":"1418:77:10","text":" @dev Throws if called by any account other than the owner."},"id":3055,"name":"onlyOwner","nameLocation":"1509:9:10","nodeType":"ModifierDefinition","parameters":{"id":3049,"nodeType":"ParameterList","parameters":[],"src":"1518:2:10"},"src":"1500:62:10","virtual":false,"visibility":"internal"},{"body":{"id":3063,"nodeType":"Block","src":"1693:30:10","statements":[{"expression":{"id":3061,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"1710:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3060,"id":3062,"nodeType":"Return","src":"1703:13:10"}]},"documentation":{"id":3056,"nodeType":"StructuredDocumentation","src":"1568:65:10","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":3064,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1647:5:10","nodeType":"FunctionDefinition","parameters":{"id":3057,"nodeType":"ParameterList","parameters":[],"src":"1652:2:10"},"returnParameters":{"id":3060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3064,"src":"1684:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3058,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1683:9:10"},"scope":3144,"src":"1638:85:10","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3080,"nodeType":"Block","src":"1841:117:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3068,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"1855:5:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:7:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3070,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"1866:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1855:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3079,"nodeType":"IfStatement","src":"1851:101:10","trueBody":{"id":3078,"nodeType":"Block","src":"1880:72:10","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3074,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"1928:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3073,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"1901:26:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3077,"nodeType":"RevertStatement","src":"1894:47:10"}]}}]},"documentation":{"id":3065,"nodeType":"StructuredDocumentation","src":"1729:62:10","text":" @dev Throws if the sender is not the owner."},"id":3081,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1805:11:10","nodeType":"FunctionDefinition","parameters":{"id":3066,"nodeType":"ParameterList","parameters":[],"src":"1816:2:10"},"returnParameters":{"id":3067,"nodeType":"ParameterList","parameters":[],"src":"1841:0:10"},"scope":3144,"src":"1796:162:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3094,"nodeType":"Block","src":"2347:47:10","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384: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":3089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3088,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:10","typeDescriptions":{}}},"id":3091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3087,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"2357:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:30:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3093,"nodeType":"ExpressionStatement","src":"2357:30:10"}]},"documentation":{"id":3082,"nodeType":"StructuredDocumentation","src":"1964:324:10","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":3095,"implemented":true,"kind":"function","modifiers":[{"id":3085,"kind":"modifierInvocation","modifierName":{"id":3084,"name":"onlyOwner","nameLocations":["2337:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":3055,"src":"2337:9:10"},"nodeType":"ModifierInvocation","src":"2337:9:10"}],"name":"renounceOwnership","nameLocation":"2302:17:10","nodeType":"FunctionDefinition","parameters":{"id":3083,"nodeType":"ParameterList","parameters":[],"src":"2319:2:10"},"returnParameters":{"id":3086,"nodeType":"ParameterList","parameters":[],"src":"2347:0:10"},"scope":3144,"src":"2293:101:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3122,"nodeType":"Block","src":"2613:145:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3103,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"2627:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2647: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":3105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2639:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3104,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:10","typeDescriptions":{}}},"id":3107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:22:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3117,"nodeType":"IfStatement","src":"2623:91:10","trueBody":{"id":3116,"nodeType":"Block","src":"2651:63:10","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":3112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700: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":3111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2692:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3110,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:10","typeDescriptions":{}}},"id":3113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3109,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"2672:19:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3115,"nodeType":"RevertStatement","src":"2665:38:10"}]}},{"expression":{"arguments":[{"id":3119,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"2742:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3118,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"2723:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3121,"nodeType":"ExpressionStatement","src":"2723:28:10"}]},"documentation":{"id":3096,"nodeType":"StructuredDocumentation","src":"2400:138:10","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":3123,"implemented":true,"kind":"function","modifiers":[{"id":3101,"kind":"modifierInvocation","modifierName":{"id":3100,"name":"onlyOwner","nameLocations":["2603:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":3055,"src":"2603:9:10"},"nodeType":"ModifierInvocation","src":"2603:9:10"}],"name":"transferOwnership","nameLocation":"2552:17:10","nodeType":"FunctionDefinition","parameters":{"id":3099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3098,"mutability":"mutable","name":"newOwner","nameLocation":"2578:8:10","nodeType":"VariableDeclaration","scope":3123,"src":"2570:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3097,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:18:10"},"returnParameters":{"id":3102,"nodeType":"ParameterList","parameters":[],"src":"2613:0:10"},"scope":3144,"src":"2543:215:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3142,"nodeType":"Block","src":"2975:124:10","statements":[{"assignments":[3130],"declarations":[{"constant":false,"id":3130,"mutability":"mutable","name":"oldOwner","nameLocation":"2993:8:10","nodeType":"VariableDeclaration","scope":3142,"src":"2985:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3129,"name":"address","nodeType":"ElementaryTypeName","src":"2985:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3132,"initialValue":{"id":3131,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"3004:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2985:25:10"},{"expression":{"id":3135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3133,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"3020:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3134,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3126,"src":"3029:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3020:17:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3136,"nodeType":"ExpressionStatement","src":"3020:17:10"},{"eventCall":{"arguments":[{"id":3138,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3130,"src":"3073:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3139,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3126,"src":"3083:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3137,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3021,"src":"3052:20:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3141,"nodeType":"EmitStatement","src":"3047:45:10"}]},"documentation":{"id":3124,"nodeType":"StructuredDocumentation","src":"2764:143:10","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":3143,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2921:18:10","nodeType":"FunctionDefinition","parameters":{"id":3127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3126,"mutability":"mutable","name":"newOwner","nameLocation":"2948:8:10","nodeType":"VariableDeclaration","scope":3143,"src":"2940:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3125,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2939:18:10"},"returnParameters":{"id":3128,"nodeType":"ParameterList","parameters":[],"src":"2975:0:10"},"scope":3144,"src":"2912:187:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3145,"src":"663:2438:10","usedErrors":[3010,3015],"usedEvents":[3021]}],"src":"102:3000:10"},"id":10},"@openzeppelin/contracts/interfaces/IERC1363.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1363.sol","exportedSymbols":{"IERC1363":[3226],"IERC165":[8493],"IERC20":[4735]},"id":3227,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3146,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:11"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","file":"./IERC20.sol","id":3148,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3227,"sourceUnit":3256,"src":"133:36:11","symbolAliases":[{"foreign":{"id":3147,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"141:6:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","file":"./IERC165.sol","id":3150,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3227,"sourceUnit":3231,"src":"170:38:11","symbolAliases":[{"foreign":{"id":3149,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"178:7:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3152,"name":"IERC20","nameLocations":["590:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"590:6:11"},"id":3153,"nodeType":"InheritanceSpecifier","src":"590:6:11"},{"baseName":{"id":3154,"name":"IERC165","nameLocations":["598:7:11"],"nodeType":"IdentifierPath","referencedDeclaration":8493,"src":"598:7:11"},"id":3155,"nodeType":"InheritanceSpecifier","src":"598:7:11"}],"canonicalName":"IERC1363","contractDependencies":[],"contractKind":"interface","documentation":{"id":3151,"nodeType":"StructuredDocumentation","src":"210:357:11","text":" @title IERC1363\n @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].\n Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract\n after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction."},"fullyImplemented":false,"id":3226,"linearizedBaseContracts":[3226,8493,4735],"name":"IERC1363","nameLocation":"578:8:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3156,"nodeType":"StructuredDocumentation","src":"1148:370:11","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`\n and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n @param to The address which you want to transfer to.\n @param value The amount of tokens to be transferred.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"1296ee62","id":3165,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"1532:15:11","nodeType":"FunctionDefinition","parameters":{"id":3161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3158,"mutability":"mutable","name":"to","nameLocation":"1556:2:11","nodeType":"VariableDeclaration","scope":3165,"src":"1548:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3157,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3160,"mutability":"mutable","name":"value","nameLocation":"1568:5:11","nodeType":"VariableDeclaration","scope":3165,"src":"1560:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1560:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1547:27:11"},"returnParameters":{"id":3164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3165,"src":"1593:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3162,"name":"bool","nodeType":"ElementaryTypeName","src":"1593:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1592:6:11"},"scope":3226,"src":"1523:76:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3166,"nodeType":"StructuredDocumentation","src":"1605:453:11","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`\n and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n @param to The address which you want to transfer to.\n @param value The amount of tokens to be transferred.\n @param data Additional data with no specified format, sent in call to `to`.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"4000aea0","id":3177,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"2072:15:11","nodeType":"FunctionDefinition","parameters":{"id":3173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3168,"mutability":"mutable","name":"to","nameLocation":"2096:2:11","nodeType":"VariableDeclaration","scope":3177,"src":"2088:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3167,"name":"address","nodeType":"ElementaryTypeName","src":"2088:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3170,"mutability":"mutable","name":"value","nameLocation":"2108:5:11","nodeType":"VariableDeclaration","scope":3177,"src":"2100:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3169,"name":"uint256","nodeType":"ElementaryTypeName","src":"2100:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3172,"mutability":"mutable","name":"data","nameLocation":"2130:4:11","nodeType":"VariableDeclaration","scope":3177,"src":"2115:19:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3171,"name":"bytes","nodeType":"ElementaryTypeName","src":"2115:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2087:48:11"},"returnParameters":{"id":3176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3177,"src":"2154:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3174,"name":"bool","nodeType":"ElementaryTypeName","src":"2154:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2153:6:11"},"scope":3226,"src":"2063:97:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3178,"nodeType":"StructuredDocumentation","src":"2166:453:11","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\n and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n @param from The address which you want to send tokens from.\n @param to The address which you want to transfer to.\n @param value The amount of tokens to be transferred.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"d8fbe994","id":3189,"implemented":false,"kind":"function","modifiers":[],"name":"transferFromAndCall","nameLocation":"2633:19:11","nodeType":"FunctionDefinition","parameters":{"id":3185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3180,"mutability":"mutable","name":"from","nameLocation":"2661:4:11","nodeType":"VariableDeclaration","scope":3189,"src":"2653:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3179,"name":"address","nodeType":"ElementaryTypeName","src":"2653:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3182,"mutability":"mutable","name":"to","nameLocation":"2675:2:11","nodeType":"VariableDeclaration","scope":3189,"src":"2667:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3181,"name":"address","nodeType":"ElementaryTypeName","src":"2667:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3184,"mutability":"mutable","name":"value","nameLocation":"2687:5:11","nodeType":"VariableDeclaration","scope":3189,"src":"2679:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3183,"name":"uint256","nodeType":"ElementaryTypeName","src":"2679:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2652:41:11"},"returnParameters":{"id":3188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3189,"src":"2712:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3186,"name":"bool","nodeType":"ElementaryTypeName","src":"2712:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2711:6:11"},"scope":3226,"src":"2624:94:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3190,"nodeType":"StructuredDocumentation","src":"2724:536:11","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism\n and then calls {IERC1363Receiver-onTransferReceived} on `to`.\n @param from The address which you want to send tokens from.\n @param to The address which you want to transfer to.\n @param value The amount of tokens to be transferred.\n @param data Additional data with no specified format, sent in call to `to`.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"c1d34b89","id":3203,"implemented":false,"kind":"function","modifiers":[],"name":"transferFromAndCall","nameLocation":"3274:19:11","nodeType":"FunctionDefinition","parameters":{"id":3199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3192,"mutability":"mutable","name":"from","nameLocation":"3302:4:11","nodeType":"VariableDeclaration","scope":3203,"src":"3294:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3191,"name":"address","nodeType":"ElementaryTypeName","src":"3294:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3194,"mutability":"mutable","name":"to","nameLocation":"3316:2:11","nodeType":"VariableDeclaration","scope":3203,"src":"3308:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3193,"name":"address","nodeType":"ElementaryTypeName","src":"3308:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3196,"mutability":"mutable","name":"value","nameLocation":"3328:5:11","nodeType":"VariableDeclaration","scope":3203,"src":"3320:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3195,"name":"uint256","nodeType":"ElementaryTypeName","src":"3320:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3198,"mutability":"mutable","name":"data","nameLocation":"3350:4:11","nodeType":"VariableDeclaration","scope":3203,"src":"3335:19:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3197,"name":"bytes","nodeType":"ElementaryTypeName","src":"3335:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3293:62:11"},"returnParameters":{"id":3202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3201,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3203,"src":"3374:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3200,"name":"bool","nodeType":"ElementaryTypeName","src":"3374:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3373:6:11"},"scope":3226,"src":"3265:115:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3204,"nodeType":"StructuredDocumentation","src":"3386:390:11","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\n @param spender The address which will spend the funds.\n @param value The amount of tokens to be spent.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"3177029f","id":3213,"implemented":false,"kind":"function","modifiers":[],"name":"approveAndCall","nameLocation":"3790:14:11","nodeType":"FunctionDefinition","parameters":{"id":3209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3206,"mutability":"mutable","name":"spender","nameLocation":"3813:7:11","nodeType":"VariableDeclaration","scope":3213,"src":"3805:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3205,"name":"address","nodeType":"ElementaryTypeName","src":"3805:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3208,"mutability":"mutable","name":"value","nameLocation":"3830:5:11","nodeType":"VariableDeclaration","scope":3213,"src":"3822:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3207,"name":"uint256","nodeType":"ElementaryTypeName","src":"3822:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3804:32:11"},"returnParameters":{"id":3212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3213,"src":"3855:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3210,"name":"bool","nodeType":"ElementaryTypeName","src":"3855:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3854:6:11"},"scope":3226,"src":"3781:80:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3214,"nodeType":"StructuredDocumentation","src":"3867:478:11","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\n @param spender The address which will spend the funds.\n @param value The amount of tokens to be spent.\n @param data Additional data with no specified format, sent in call to `spender`.\n @return A boolean value indicating whether the operation succeeded unless throwing."},"functionSelector":"cae9ca51","id":3225,"implemented":false,"kind":"function","modifiers":[],"name":"approveAndCall","nameLocation":"4359:14:11","nodeType":"FunctionDefinition","parameters":{"id":3221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3216,"mutability":"mutable","name":"spender","nameLocation":"4382:7:11","nodeType":"VariableDeclaration","scope":3225,"src":"4374:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3215,"name":"address","nodeType":"ElementaryTypeName","src":"4374:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3218,"mutability":"mutable","name":"value","nameLocation":"4399:5:11","nodeType":"VariableDeclaration","scope":3225,"src":"4391:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3217,"name":"uint256","nodeType":"ElementaryTypeName","src":"4391:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3220,"mutability":"mutable","name":"data","nameLocation":"4421:4:11","nodeType":"VariableDeclaration","scope":3225,"src":"4406:19:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3219,"name":"bytes","nodeType":"ElementaryTypeName","src":"4406:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4373:53:11"},"returnParameters":{"id":3224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3225,"src":"4445:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3222,"name":"bool","nodeType":"ElementaryTypeName","src":"4445:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4444:6:11"},"scope":3226,"src":"4350:101:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3227,"src":"568:3885:11","usedErrors":[],"usedEvents":[4669,4678]}],"src":"107:4347:11"},"id":11},"@openzeppelin/contracts/interfaces/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","exportedSymbols":{"IERC165":[8493]},"id":3231,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3228,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:12"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../utils/introspection/IERC165.sol","id":3230,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3231,"sourceUnit":8494,"src":"132:59:12","symbolAliases":[{"foreign":{"id":3229,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"140:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"106:86:12"},"id":12},"@openzeppelin/contracts/interfaces/IERC1967.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1967.sol","exportedSymbols":{"IERC1967":[3251]},"id":3252,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3232,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:13"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1967","contractDependencies":[],"contractKind":"interface","documentation":{"id":3233,"nodeType":"StructuredDocumentation","src":"133:101:13","text":" @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC."},"fullyImplemented":true,"id":3251,"linearizedBaseContracts":[3251],"name":"IERC1967","nameLocation":"245:8:13","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":3234,"nodeType":"StructuredDocumentation","src":"260:68:13","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":3238,"name":"Upgraded","nameLocation":"339:8:13","nodeType":"EventDefinition","parameters":{"id":3237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3236,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"364:14:13","nodeType":"VariableDeclaration","scope":3238,"src":"348:30:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3235,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"347:32:13"},"src":"333:47:13"},{"anonymous":false,"documentation":{"id":3239,"nodeType":"StructuredDocumentation","src":"386:67:13","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":3245,"name":"AdminChanged","nameLocation":"464:12:13","nodeType":"EventDefinition","parameters":{"id":3244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3241,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"485:13:13","nodeType":"VariableDeclaration","scope":3245,"src":"477:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3240,"name":"address","nodeType":"ElementaryTypeName","src":"477:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3243,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"508:8:13","nodeType":"VariableDeclaration","scope":3245,"src":"500:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3242,"name":"address","nodeType":"ElementaryTypeName","src":"500:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"476:41:13"},"src":"458:60:13"},{"anonymous":false,"documentation":{"id":3246,"nodeType":"StructuredDocumentation","src":"524:59:13","text":" @dev Emitted when the beacon is changed."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":3250,"name":"BeaconUpgraded","nameLocation":"594:14:13","nodeType":"EventDefinition","parameters":{"id":3249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3248,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"625:6:13","nodeType":"VariableDeclaration","scope":3250,"src":"609:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3247,"name":"address","nodeType":"ElementaryTypeName","src":"609:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"608:24:13"},"src":"588:45:13"}],"scope":3252,"src":"235:400:13","usedErrors":[],"usedEvents":[3238,3245,3250]}],"src":"107:529:13"},"id":13},"@openzeppelin/contracts/interfaces/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC20.sol","exportedSymbols":{"IERC20":[4735]},"id":3256,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3253,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"105:24:14"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../token/ERC20/IERC20.sol","id":3255,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3256,"sourceUnit":4736,"src":"131:49:14","symbolAliases":[{"foreign":{"id":3254,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"139:6:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"105:76:14"},"id":14},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","exportedSymbols":{"IERC1822Proxiable":[3265]},"id":3266,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3257,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"113:24:15"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1822Proxiable","contractDependencies":[],"contractKind":"interface","documentation":{"id":3258,"nodeType":"StructuredDocumentation","src":"139:204:15","text":" @dev ERC-1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"id":3265,"linearizedBaseContracts":[3265],"name":"IERC1822Proxiable","nameLocation":"354:17:15","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3259,"nodeType":"StructuredDocumentation","src":"378:438:15","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","id":3264,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"830:13:15","nodeType":"FunctionDefinition","parameters":{"id":3260,"nodeType":"ParameterList","parameters":[],"src":"843:2:15"},"returnParameters":{"id":3263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3264,"src":"869:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"869:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"868:9:15"},"scope":3265,"src":"821:57:15","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3266,"src":"344:536:15","usedErrors":[],"usedEvents":[]}],"src":"113:768:15"},"id":15},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[3402],"IERC20Errors":[3307],"IERC721Errors":[3355]},"id":3403,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3267,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:16"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":3268,"nodeType":"StructuredDocumentation","src":"138:141:16","text":" @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens."},"fullyImplemented":true,"id":3307,"linearizedBaseContracts":[3307],"name":"IERC20Errors","nameLocation":"290:12:16","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3269,"nodeType":"StructuredDocumentation","src":"309:309:16","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","id":3277,"name":"ERC20InsufficientBalance","nameLocation":"629:24:16","nodeType":"ErrorDefinition","parameters":{"id":3276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3271,"mutability":"mutable","name":"sender","nameLocation":"662:6:16","nodeType":"VariableDeclaration","scope":3277,"src":"654:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3270,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3273,"mutability":"mutable","name":"balance","nameLocation":"678:7:16","nodeType":"VariableDeclaration","scope":3277,"src":"670:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3272,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3275,"mutability":"mutable","name":"needed","nameLocation":"695:6:16","nodeType":"VariableDeclaration","scope":3277,"src":"687:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3274,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"653:49:16"},"src":"623:80:16"},{"documentation":{"id":3278,"nodeType":"StructuredDocumentation","src":"709:152:16","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":3282,"name":"ERC20InvalidSender","nameLocation":"872:18:16","nodeType":"ErrorDefinition","parameters":{"id":3281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3280,"mutability":"mutable","name":"sender","nameLocation":"899:6:16","nodeType":"VariableDeclaration","scope":3282,"src":"891:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3279,"name":"address","nodeType":"ElementaryTypeName","src":"891:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"890:16:16"},"src":"866:41:16"},{"documentation":{"id":3283,"nodeType":"StructuredDocumentation","src":"913:159:16","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","id":3287,"name":"ERC20InvalidReceiver","nameLocation":"1083:20:16","nodeType":"ErrorDefinition","parameters":{"id":3286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3285,"mutability":"mutable","name":"receiver","nameLocation":"1112:8:16","nodeType":"VariableDeclaration","scope":3287,"src":"1104:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3284,"name":"address","nodeType":"ElementaryTypeName","src":"1104:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1103:18:16"},"src":"1077:45:16"},{"documentation":{"id":3288,"nodeType":"StructuredDocumentation","src":"1128:345:16","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","id":3296,"name":"ERC20InsufficientAllowance","nameLocation":"1484:26:16","nodeType":"ErrorDefinition","parameters":{"id":3295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3290,"mutability":"mutable","name":"spender","nameLocation":"1519:7:16","nodeType":"VariableDeclaration","scope":3296,"src":"1511:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3289,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3292,"mutability":"mutable","name":"allowance","nameLocation":"1536:9:16","nodeType":"VariableDeclaration","scope":3296,"src":"1528:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3291,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3294,"mutability":"mutable","name":"needed","nameLocation":"1555:6:16","nodeType":"VariableDeclaration","scope":3296,"src":"1547:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3293,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1510:52:16"},"src":"1478:85:16"},{"documentation":{"id":3297,"nodeType":"StructuredDocumentation","src":"1569:174:16","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","id":3301,"name":"ERC20InvalidApprover","nameLocation":"1754:20:16","nodeType":"ErrorDefinition","parameters":{"id":3300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3299,"mutability":"mutable","name":"approver","nameLocation":"1783:8:16","nodeType":"VariableDeclaration","scope":3301,"src":"1775:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3298,"name":"address","nodeType":"ElementaryTypeName","src":"1775:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1774:18:16"},"src":"1748:45:16"},{"documentation":{"id":3302,"nodeType":"StructuredDocumentation","src":"1799:195:16","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","id":3306,"name":"ERC20InvalidSpender","nameLocation":"2005:19:16","nodeType":"ErrorDefinition","parameters":{"id":3305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3304,"mutability":"mutable","name":"spender","nameLocation":"2033:7:16","nodeType":"VariableDeclaration","scope":3306,"src":"2025:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3303,"name":"address","nodeType":"ElementaryTypeName","src":"2025:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2024:17:16"},"src":"1999:43:16"}],"scope":3403,"src":"280:1764:16","usedErrors":[3277,3282,3287,3296,3301,3306],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":3308,"nodeType":"StructuredDocumentation","src":"2046:143:16","text":" @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens."},"fullyImplemented":true,"id":3355,"linearizedBaseContracts":[3355],"name":"IERC721Errors","nameLocation":"2200:13:16","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3309,"nodeType":"StructuredDocumentation","src":"2220:219:16","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":3313,"name":"ERC721InvalidOwner","nameLocation":"2450:18:16","nodeType":"ErrorDefinition","parameters":{"id":3312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3311,"mutability":"mutable","name":"owner","nameLocation":"2477:5:16","nodeType":"VariableDeclaration","scope":3313,"src":"2469:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3310,"name":"address","nodeType":"ElementaryTypeName","src":"2469:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2468:15:16"},"src":"2444:40:16"},{"documentation":{"id":3314,"nodeType":"StructuredDocumentation","src":"2490:132:16","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":3318,"name":"ERC721NonexistentToken","nameLocation":"2633:22:16","nodeType":"ErrorDefinition","parameters":{"id":3317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3316,"mutability":"mutable","name":"tokenId","nameLocation":"2664:7:16","nodeType":"VariableDeclaration","scope":3318,"src":"2656:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3315,"name":"uint256","nodeType":"ElementaryTypeName","src":"2656:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2655:17:16"},"src":"2627:46:16"},{"documentation":{"id":3319,"nodeType":"StructuredDocumentation","src":"2679:289:16","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","id":3327,"name":"ERC721IncorrectOwner","nameLocation":"2979:20:16","nodeType":"ErrorDefinition","parameters":{"id":3326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3321,"mutability":"mutable","name":"sender","nameLocation":"3008:6:16","nodeType":"VariableDeclaration","scope":3327,"src":"3000:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3320,"name":"address","nodeType":"ElementaryTypeName","src":"3000:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3323,"mutability":"mutable","name":"tokenId","nameLocation":"3024:7:16","nodeType":"VariableDeclaration","scope":3327,"src":"3016:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3322,"name":"uint256","nodeType":"ElementaryTypeName","src":"3016:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3325,"mutability":"mutable","name":"owner","nameLocation":"3041:5:16","nodeType":"VariableDeclaration","scope":3327,"src":"3033:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3324,"name":"address","nodeType":"ElementaryTypeName","src":"3033:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2999:48:16"},"src":"2973:75:16"},{"documentation":{"id":3328,"nodeType":"StructuredDocumentation","src":"3054:152:16","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":3332,"name":"ERC721InvalidSender","nameLocation":"3217:19:16","nodeType":"ErrorDefinition","parameters":{"id":3331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3330,"mutability":"mutable","name":"sender","nameLocation":"3245:6:16","nodeType":"VariableDeclaration","scope":3332,"src":"3237:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3329,"name":"address","nodeType":"ElementaryTypeName","src":"3237:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3236:16:16"},"src":"3211:42:16"},{"documentation":{"id":3333,"nodeType":"StructuredDocumentation","src":"3259:159:16","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","id":3337,"name":"ERC721InvalidReceiver","nameLocation":"3429:21:16","nodeType":"ErrorDefinition","parameters":{"id":3336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3335,"mutability":"mutable","name":"receiver","nameLocation":"3459:8:16","nodeType":"VariableDeclaration","scope":3337,"src":"3451:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3334,"name":"address","nodeType":"ElementaryTypeName","src":"3451:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3450:18:16"},"src":"3423:46:16"},{"documentation":{"id":3338,"nodeType":"StructuredDocumentation","src":"3475:247:16","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","id":3344,"name":"ERC721InsufficientApproval","nameLocation":"3733:26:16","nodeType":"ErrorDefinition","parameters":{"id":3343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3340,"mutability":"mutable","name":"operator","nameLocation":"3768:8:16","nodeType":"VariableDeclaration","scope":3344,"src":"3760:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3339,"name":"address","nodeType":"ElementaryTypeName","src":"3760:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3342,"mutability":"mutable","name":"tokenId","nameLocation":"3786:7:16","nodeType":"VariableDeclaration","scope":3344,"src":"3778:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3341,"name":"uint256","nodeType":"ElementaryTypeName","src":"3778:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3759:35:16"},"src":"3727:68:16"},{"documentation":{"id":3345,"nodeType":"StructuredDocumentation","src":"3801:174:16","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","id":3349,"name":"ERC721InvalidApprover","nameLocation":"3986:21:16","nodeType":"ErrorDefinition","parameters":{"id":3348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"approver","nameLocation":"4016:8:16","nodeType":"VariableDeclaration","scope":3349,"src":"4008:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3346,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4007:18:16"},"src":"3980:46:16"},{"documentation":{"id":3350,"nodeType":"StructuredDocumentation","src":"4032:197:16","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","id":3354,"name":"ERC721InvalidOperator","nameLocation":"4240:21:16","nodeType":"ErrorDefinition","parameters":{"id":3353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3352,"mutability":"mutable","name":"operator","nameLocation":"4270:8:16","nodeType":"VariableDeclaration","scope":3354,"src":"4262:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3351,"name":"address","nodeType":"ElementaryTypeName","src":"4262:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4261:18:16"},"src":"4234:46:16"}],"scope":3403,"src":"2190:2092:16","usedErrors":[3313,3318,3327,3332,3337,3344,3349,3354],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":3356,"nodeType":"StructuredDocumentation","src":"4284:145:16","text":" @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens."},"fullyImplemented":true,"id":3402,"linearizedBaseContracts":[3402],"name":"IERC1155Errors","nameLocation":"4440:14:16","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3357,"nodeType":"StructuredDocumentation","src":"4461:361:16","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."},"errorSelector":"03dee4c5","id":3367,"name":"ERC1155InsufficientBalance","nameLocation":"4833:26:16","nodeType":"ErrorDefinition","parameters":{"id":3366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3359,"mutability":"mutable","name":"sender","nameLocation":"4868:6:16","nodeType":"VariableDeclaration","scope":3367,"src":"4860:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3358,"name":"address","nodeType":"ElementaryTypeName","src":"4860:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3361,"mutability":"mutable","name":"balance","nameLocation":"4884:7:16","nodeType":"VariableDeclaration","scope":3367,"src":"4876:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3360,"name":"uint256","nodeType":"ElementaryTypeName","src":"4876:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3363,"mutability":"mutable","name":"needed","nameLocation":"4901:6:16","nodeType":"VariableDeclaration","scope":3367,"src":"4893:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3362,"name":"uint256","nodeType":"ElementaryTypeName","src":"4893:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3365,"mutability":"mutable","name":"tokenId","nameLocation":"4917:7:16","nodeType":"VariableDeclaration","scope":3367,"src":"4909:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3364,"name":"uint256","nodeType":"ElementaryTypeName","src":"4909:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4859:66:16"},"src":"4827:99:16"},{"documentation":{"id":3368,"nodeType":"StructuredDocumentation","src":"4932:152:16","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":3372,"name":"ERC1155InvalidSender","nameLocation":"5095:20:16","nodeType":"ErrorDefinition","parameters":{"id":3371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3370,"mutability":"mutable","name":"sender","nameLocation":"5124:6:16","nodeType":"VariableDeclaration","scope":3372,"src":"5116:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3369,"name":"address","nodeType":"ElementaryTypeName","src":"5116:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5115:16:16"},"src":"5089:43:16"},{"documentation":{"id":3373,"nodeType":"StructuredDocumentation","src":"5138:159:16","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","id":3377,"name":"ERC1155InvalidReceiver","nameLocation":"5308:22:16","nodeType":"ErrorDefinition","parameters":{"id":3376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3375,"mutability":"mutable","name":"receiver","nameLocation":"5339:8:16","nodeType":"VariableDeclaration","scope":3377,"src":"5331:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3374,"name":"address","nodeType":"ElementaryTypeName","src":"5331:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5330:18:16"},"src":"5302:47:16"},{"documentation":{"id":3378,"nodeType":"StructuredDocumentation","src":"5355:256:16","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"e237d922","id":3384,"name":"ERC1155MissingApprovalForAll","nameLocation":"5622:28:16","nodeType":"ErrorDefinition","parameters":{"id":3383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3380,"mutability":"mutable","name":"operator","nameLocation":"5659:8:16","nodeType":"VariableDeclaration","scope":3384,"src":"5651:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3379,"name":"address","nodeType":"ElementaryTypeName","src":"5651:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3382,"mutability":"mutable","name":"owner","nameLocation":"5677:5:16","nodeType":"VariableDeclaration","scope":3384,"src":"5669:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3381,"name":"address","nodeType":"ElementaryTypeName","src":"5669:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5650:33:16"},"src":"5616:68:16"},{"documentation":{"id":3385,"nodeType":"StructuredDocumentation","src":"5690:174:16","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","id":3389,"name":"ERC1155InvalidApprover","nameLocation":"5875:22:16","nodeType":"ErrorDefinition","parameters":{"id":3388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3387,"mutability":"mutable","name":"approver","nameLocation":"5906:8:16","nodeType":"VariableDeclaration","scope":3389,"src":"5898:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3386,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5897:18:16"},"src":"5869:47:16"},{"documentation":{"id":3390,"nodeType":"StructuredDocumentation","src":"5922:197:16","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","id":3394,"name":"ERC1155InvalidOperator","nameLocation":"6130:22:16","nodeType":"ErrorDefinition","parameters":{"id":3393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3392,"mutability":"mutable","name":"operator","nameLocation":"6161:8:16","nodeType":"VariableDeclaration","scope":3394,"src":"6153:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3391,"name":"address","nodeType":"ElementaryTypeName","src":"6153:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6152:18:16"},"src":"6124:47:16"},{"documentation":{"id":3395,"nodeType":"StructuredDocumentation","src":"6177:280:16","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","id":3401,"name":"ERC1155InvalidArrayLength","nameLocation":"6468:25:16","nodeType":"ErrorDefinition","parameters":{"id":3400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3397,"mutability":"mutable","name":"idsLength","nameLocation":"6502:9:16","nodeType":"VariableDeclaration","scope":3401,"src":"6494:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3396,"name":"uint256","nodeType":"ElementaryTypeName","src":"6494:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3399,"mutability":"mutable","name":"valuesLength","nameLocation":"6521:12:16","nodeType":"VariableDeclaration","scope":3401,"src":"6513:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3398,"name":"uint256","nodeType":"ElementaryTypeName","src":"6513:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6493:41:16"},"src":"6462:73:16"}],"scope":3403,"src":"4430:2107:16","usedErrors":[3367,3372,3377,3384,3389,3394,3401],"usedEvents":[]}],"src":"112:6426:16"},"id":16},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","exportedSymbols":{"Address":[6628],"ERC1967Utils":[3696],"IBeacon":[3800],"IERC1967":[3251],"StorageSlot":[7024]},"id":3697,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3404,"literals":["solidity","^","0.8",".21"],"nodeType":"PragmaDirective","src":"114:24:17"},{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":3406,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3697,"sourceUnit":3801,"src":"140:46:17","symbolAliases":[{"foreign":{"id":3405,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"148:7:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1967.sol","file":"../../interfaces/IERC1967.sol","id":3408,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3697,"sourceUnit":3252,"src":"187:55:17","symbolAliases":[{"foreign":{"id":3407,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3251,"src":"195:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":3410,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3697,"sourceUnit":6629,"src":"243:48:17","symbolAliases":[{"foreign":{"id":3409,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6628,"src":"251:7:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":3412,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3697,"sourceUnit":7025,"src":"292:56:17","symbolAliases":[{"foreign":{"id":3411,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"300:11:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ERC1967Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":3413,"nodeType":"StructuredDocumentation","src":"350:145:17","text":" @dev This library provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots."},"fullyImplemented":true,"id":3696,"linearizedBaseContracts":[3696],"name":"ERC1967Utils","nameLocation":"504:12:17","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":3414,"nodeType":"StructuredDocumentation","src":"523:170:17","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1."},"id":3417,"mutability":"constant","name":"IMPLEMENTATION_SLOT","nameLocation":"789:19:17","nodeType":"VariableDeclaration","scope":3696,"src":"763:114:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"763:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":3416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"811:66:17","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"documentation":{"id":3418,"nodeType":"StructuredDocumentation","src":"884:69:17","text":" @dev The `implementation` of the proxy is invalid."},"errorSelector":"4c9c8ce3","id":3422,"name":"ERC1967InvalidImplementation","nameLocation":"964:28:17","nodeType":"ErrorDefinition","parameters":{"id":3421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3420,"mutability":"mutable","name":"implementation","nameLocation":"1001:14:17","nodeType":"VariableDeclaration","scope":3422,"src":"993:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3419,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"992:24:17"},"src":"958:59:17"},{"documentation":{"id":3423,"nodeType":"StructuredDocumentation","src":"1023:60:17","text":" @dev The `admin` of the proxy is invalid."},"errorSelector":"62e77ba2","id":3427,"name":"ERC1967InvalidAdmin","nameLocation":"1094:19:17","nodeType":"ErrorDefinition","parameters":{"id":3426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3425,"mutability":"mutable","name":"admin","nameLocation":"1122:5:17","nodeType":"VariableDeclaration","scope":3427,"src":"1114:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3424,"name":"address","nodeType":"ElementaryTypeName","src":"1114:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1113:15:17"},"src":"1088:41:17"},{"documentation":{"id":3428,"nodeType":"StructuredDocumentation","src":"1135:61:17","text":" @dev The `beacon` of the proxy is invalid."},"errorSelector":"64ced0ec","id":3432,"name":"ERC1967InvalidBeacon","nameLocation":"1207:20:17","nodeType":"ErrorDefinition","parameters":{"id":3431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3430,"mutability":"mutable","name":"beacon","nameLocation":"1236:6:17","nodeType":"VariableDeclaration","scope":3432,"src":"1228:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3429,"name":"address","nodeType":"ElementaryTypeName","src":"1228:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1227:16:17"},"src":"1201:43:17"},{"documentation":{"id":3433,"nodeType":"StructuredDocumentation","src":"1250:82:17","text":" @dev An upgrade function sees `msg.value > 0` that may be lost."},"errorSelector":"b398979f","id":3435,"name":"ERC1967NonPayable","nameLocation":"1343:17:17","nodeType":"ErrorDefinition","parameters":{"id":3434,"nodeType":"ParameterList","parameters":[],"src":"1360:2:17"},"src":"1337:26:17"},{"body":{"id":3447,"nodeType":"Block","src":"1502:77:17","statements":[{"expression":{"expression":{"arguments":[{"id":3443,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3417,"src":"1546:19:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3441,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"1519:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7024_$","typeString":"type(library StorageSlot)"}},"id":3442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1531:14:17","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":6935,"src":"1519:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6906_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":3444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:47:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6906_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":3445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1567:5:17","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6905,"src":"1519:53:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3440,"id":3446,"nodeType":"Return","src":"1512:60:17"}]},"documentation":{"id":3436,"nodeType":"StructuredDocumentation","src":"1369:67:17","text":" @dev Returns the current implementation address."},"id":3448,"implemented":true,"kind":"function","modifiers":[],"name":"getImplementation","nameLocation":"1450:17:17","nodeType":"FunctionDefinition","parameters":{"id":3437,"nodeType":"ParameterList","parameters":[],"src":"1467:2:17"},"returnParameters":{"id":3440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3448,"src":"1493:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3438,"name":"address","nodeType":"ElementaryTypeName","src":"1493:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1492:9:17"},"scope":3696,"src":"1441:138:17","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3474,"nodeType":"Block","src":"1734:218:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":3454,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3451,"src":"1748:17:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:4:17","memberName":"code","nodeType":"MemberAccess","src":"1748:22:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1771:6:17","memberName":"length","nodeType":"MemberAccess","src":"1748:29:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1781:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1748:34:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3464,"nodeType":"IfStatement","src":"1744:119:17","trueBody":{"id":3463,"nodeType":"Block","src":"1784:79:17","statements":[{"errorCall":{"arguments":[{"id":3460,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3451,"src":"1834:17:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3459,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3422,"src":"1805:28:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:47:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3462,"nodeType":"RevertStatement","src":"1798:54:17"}]}},{"expression":{"id":3472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":3468,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3417,"src":"1899:19:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3465,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"1872:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7024_$","typeString":"type(library StorageSlot)"}},"id":3467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1884:14:17","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":6935,"src":"1872:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6906_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1872:47:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6906_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":3470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1920:5:17","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6905,"src":"1872:53:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3471,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3451,"src":"1928:17:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1872:73:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3473,"nodeType":"ExpressionStatement","src":"1872:73:17"}]},"documentation":{"id":3449,"nodeType":"StructuredDocumentation","src":"1585:81:17","text":" @dev Stores a new address in the ERC-1967 implementation slot."},"id":3475,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1680:18:17","nodeType":"FunctionDefinition","parameters":{"id":3452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3451,"mutability":"mutable","name":"newImplementation","nameLocation":"1707:17:17","nodeType":"VariableDeclaration","scope":3475,"src":"1699:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3450,"name":"address","nodeType":"ElementaryTypeName","src":"1699:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1698:27:17"},"returnParameters":{"id":3453,"nodeType":"ParameterList","parameters":[],"src":"1734:0:17"},"scope":3696,"src":"1671:281:17","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3510,"nodeType":"Block","src":"2345:263:17","statements":[{"expression":{"arguments":[{"id":3484,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3478,"src":"2374:17:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3483,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"2355:18:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:37:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3486,"nodeType":"ExpressionStatement","src":"2355:37:17"},{"eventCall":{"arguments":[{"id":3490,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3478,"src":"2425:17:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3487,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3251,"src":"2407:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1967_$3251_$","typeString":"type(contract IERC1967)"}},"id":3489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2416:8:17","memberName":"Upgraded","nodeType":"MemberAccess","referencedDeclaration":3238,"src":"2407:17:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2407:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3492,"nodeType":"EmitStatement","src":"2402:41:17"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3493,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3480,"src":"2458:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2463:6:17","memberName":"length","nodeType":"MemberAccess","src":"2458:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2472:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2458:15:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3508,"nodeType":"Block","src":"2559:43:17","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3505,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3695,"src":"2573:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3507,"nodeType":"ExpressionStatement","src":"2573:18:17"}]},"id":3509,"nodeType":"IfStatement","src":"2454:148:17","trueBody":{"id":3504,"nodeType":"Block","src":"2475:78:17","statements":[{"expression":{"arguments":[{"id":3500,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3478,"src":"2518:17:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3501,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3480,"src":"2537:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3497,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6628,"src":"2489:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$6628_$","typeString":"type(library Address)"}},"id":3499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2497:20:17","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6545,"src":"2489:28:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":3502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2489:53:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3503,"nodeType":"ExpressionStatement","src":"2489:53:17"}]}}]},"documentation":{"id":3476,"nodeType":"StructuredDocumentation","src":"1958:301:17","text":" @dev Performs implementation upgrade with additional setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-Upgraded} event."},"id":3511,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"2273:16:17","nodeType":"FunctionDefinition","parameters":{"id":3481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3478,"mutability":"mutable","name":"newImplementation","nameLocation":"2298:17:17","nodeType":"VariableDeclaration","scope":3511,"src":"2290:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3477,"name":"address","nodeType":"ElementaryTypeName","src":"2290:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3480,"mutability":"mutable","name":"data","nameLocation":"2330:4:17","nodeType":"VariableDeclaration","scope":3511,"src":"2317:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3479,"name":"bytes","nodeType":"ElementaryTypeName","src":"2317:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2289:46:17"},"returnParameters":{"id":3482,"nodeType":"ParameterList","parameters":[],"src":"2345:0:17"},"scope":3696,"src":"2264:344:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":3512,"nodeType":"StructuredDocumentation","src":"2614:145:17","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1."},"id":3515,"mutability":"constant","name":"ADMIN_SLOT","nameLocation":"2855:10:17","nodeType":"VariableDeclaration","scope":3696,"src":"2829:105:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2829:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":3514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2868:66:17","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"body":{"id":3527,"nodeType":"Block","src":"3339:68:17","statements":[{"expression":{"expression":{"arguments":[{"id":3523,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"3383:10:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3521,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"3356:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7024_$","typeString":"type(library StorageSlot)"}},"id":3522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3368:14:17","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":6935,"src":"3356:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6906_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":3524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:38:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6906_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":3525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3395:5:17","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6905,"src":"3356:44:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3520,"id":3526,"nodeType":"Return","src":"3349:51:17"}]},"documentation":{"id":3516,"nodeType":"StructuredDocumentation","src":"2941:341:17","text":" @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"id":3528,"implemented":true,"kind":"function","modifiers":[],"name":"getAdmin","nameLocation":"3296:8:17","nodeType":"FunctionDefinition","parameters":{"id":3517,"nodeType":"ParameterList","parameters":[],"src":"3304:2:17"},"returnParameters":{"id":3520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3528,"src":"3330:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3518,"name":"address","nodeType":"ElementaryTypeName","src":"3330:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3329:9:17"},"scope":3696,"src":"3287:120:17","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3558,"nodeType":"Block","src":"3535:172:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3534,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3531,"src":"3549:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3569:1:17","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":3536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3561:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3535,"name":"address","nodeType":"ElementaryTypeName","src":"3561:7:17","typeDescriptions":{}}},"id":3538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3561:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3549:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3548,"nodeType":"IfStatement","src":"3545:91:17","trueBody":{"id":3547,"nodeType":"Block","src":"3573:63:17","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":3543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3622:1:17","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":3542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3614:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3541,"name":"address","nodeType":"ElementaryTypeName","src":"3614:7:17","typeDescriptions":{}}},"id":3544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3614:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3540,"name":"ERC1967InvalidAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"3594:19:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3594:31:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3546,"nodeType":"RevertStatement","src":"3587:38:17"}]}},{"expression":{"id":3556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":3552,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"3672:10:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3549,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"3645:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7024_$","typeString":"type(library StorageSlot)"}},"id":3551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3657:14:17","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":6935,"src":"3645:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6906_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":3553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3645:38:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6906_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":3554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3684:5:17","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6905,"src":"3645:44:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3555,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3531,"src":"3692:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3645:55:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3557,"nodeType":"ExpressionStatement","src":"3645:55:17"}]},"documentation":{"id":3529,"nodeType":"StructuredDocumentation","src":"3413:72:17","text":" @dev Stores a new address in the ERC-1967 admin slot."},"id":3559,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"3499:9:17","nodeType":"FunctionDefinition","parameters":{"id":3532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3531,"mutability":"mutable","name":"newAdmin","nameLocation":"3517:8:17","nodeType":"VariableDeclaration","scope":3559,"src":"3509:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3530,"name":"address","nodeType":"ElementaryTypeName","src":"3509:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3508:18:17"},"returnParameters":{"id":3533,"nodeType":"ParameterList","parameters":[],"src":"3535:0:17"},"scope":3696,"src":"3490:217:17","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3577,"nodeType":"Block","src":"3875:94:17","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3568,"name":"getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"3912:8:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3912:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3570,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"3924:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3565,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3251,"src":"3890:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1967_$3251_$","typeString":"type(contract IERC1967)"}},"id":3567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3899:12:17","memberName":"AdminChanged","nodeType":"MemberAccess","referencedDeclaration":3245,"src":"3890:21:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":3571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3890:43:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3572,"nodeType":"EmitStatement","src":"3885:48:17"},{"expression":{"arguments":[{"id":3574,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"3953:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3573,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"3943:9:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3943:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3576,"nodeType":"ExpressionStatement","src":"3943:19:17"}]},"documentation":{"id":3560,"nodeType":"StructuredDocumentation","src":"3713:109:17","text":" @dev Changes the admin of the proxy.\n Emits an {IERC1967-AdminChanged} event."},"id":3578,"implemented":true,"kind":"function","modifiers":[],"name":"changeAdmin","nameLocation":"3836:11:17","nodeType":"FunctionDefinition","parameters":{"id":3563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3562,"mutability":"mutable","name":"newAdmin","nameLocation":"3856:8:17","nodeType":"VariableDeclaration","scope":3578,"src":"3848:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3561,"name":"address","nodeType":"ElementaryTypeName","src":"3848:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3847:18:17"},"returnParameters":{"id":3564,"nodeType":"ParameterList","parameters":[],"src":"3875:0:17"},"scope":3696,"src":"3827:142:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":3579,"nodeType":"StructuredDocumentation","src":"3975:201:17","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1."},"id":3582,"mutability":"constant","name":"BEACON_SLOT","nameLocation":"4272:11:17","nodeType":"VariableDeclaration","scope":3696,"src":"4246:106:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4246:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":3581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4286:66:17","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"body":{"id":3594,"nodeType":"Block","src":"4468:69:17","statements":[{"expression":{"expression":{"arguments":[{"id":3590,"name":"BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"4512:11:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3588,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"4485:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7024_$","typeString":"type(library StorageSlot)"}},"id":3589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4497:14:17","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":6935,"src":"4485:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6906_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":3591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4485:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6906_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":3592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4525:5:17","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6905,"src":"4485:45:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3587,"id":3593,"nodeType":"Return","src":"4478:52:17"}]},"documentation":{"id":3583,"nodeType":"StructuredDocumentation","src":"4359:51:17","text":" @dev Returns the current beacon."},"id":3595,"implemented":true,"kind":"function","modifiers":[],"name":"getBeacon","nameLocation":"4424:9:17","nodeType":"FunctionDefinition","parameters":{"id":3584,"nodeType":"ParameterList","parameters":[],"src":"4433:2:17"},"returnParameters":{"id":3587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3595,"src":"4459:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3585,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4458:9:17"},"scope":3696,"src":"4415:122:17","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3640,"nodeType":"Block","src":"4667:390:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":3601,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"4681:9:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4691:4:17","memberName":"code","nodeType":"MemberAccess","src":"4681:14:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4696:6:17","memberName":"length","nodeType":"MemberAccess","src":"4681:21:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4706:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4681:26:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3611,"nodeType":"IfStatement","src":"4677:95:17","trueBody":{"id":3610,"nodeType":"Block","src":"4709:63:17","statements":[{"errorCall":{"arguments":[{"id":3607,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"4751:9:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3606,"name":"ERC1967InvalidBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3432,"src":"4730:20:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4730:31:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3609,"nodeType":"RevertStatement","src":"4723:38:17"}]}},{"expression":{"id":3619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":3615,"name":"BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"4809:11:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3612,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"4782:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7024_$","typeString":"type(library StorageSlot)"}},"id":3614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4794:14:17","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":6935,"src":"4782:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6906_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":3616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4782:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6906_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":3617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4822:5:17","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6905,"src":"4782:45:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3618,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"4830:9:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4782:57:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3620,"nodeType":"ExpressionStatement","src":"4782:57:17"},{"assignments":[3622],"declarations":[{"constant":false,"id":3622,"mutability":"mutable","name":"beaconImplementation","nameLocation":"4858:20:17","nodeType":"VariableDeclaration","scope":3640,"src":"4850:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3621,"name":"address","nodeType":"ElementaryTypeName","src":"4850:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3628,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3624,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"4889:9:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3623,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"4881:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$3800_$","typeString":"type(contract IBeacon)"}},"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$3800","typeString":"contract IBeacon"}},"id":3626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4900:14:17","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":3799,"src":"4881:33:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":3627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:35:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4850:66:17"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":3629,"name":"beaconImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"4930:20:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4951:4:17","memberName":"code","nodeType":"MemberAccess","src":"4930:25:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4956:6:17","memberName":"length","nodeType":"MemberAccess","src":"4930:32:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4966:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4930:37:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3639,"nodeType":"IfStatement","src":"4926:125:17","trueBody":{"id":3638,"nodeType":"Block","src":"4969:82:17","statements":[{"errorCall":{"arguments":[{"id":3635,"name":"beaconImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"5019:20:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3634,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3422,"src":"4990:28:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4990:50:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3637,"nodeType":"RevertStatement","src":"4983:57:17"}]}}]},"documentation":{"id":3596,"nodeType":"StructuredDocumentation","src":"4543:72:17","text":" @dev Stores a new beacon in the ERC-1967 beacon slot."},"id":3641,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"4629:10:17","nodeType":"FunctionDefinition","parameters":{"id":3599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3598,"mutability":"mutable","name":"newBeacon","nameLocation":"4648:9:17","nodeType":"VariableDeclaration","scope":3641,"src":"4640:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3597,"name":"address","nodeType":"ElementaryTypeName","src":"4640:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4639:19:17"},"returnParameters":{"id":3600,"nodeType":"ParameterList","parameters":[],"src":"4667:0:17"},"scope":3696,"src":"4620:437:17","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3680,"nodeType":"Block","src":"5661:263:17","statements":[{"expression":{"arguments":[{"id":3650,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3644,"src":"5682:9:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3649,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3641,"src":"5671:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5671:21:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3652,"nodeType":"ExpressionStatement","src":"5671:21:17"},{"eventCall":{"arguments":[{"id":3656,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3644,"src":"5731:9:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3653,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3251,"src":"5707:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1967_$3251_$","typeString":"type(contract IERC1967)"}},"id":3655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5716:14:17","memberName":"BeaconUpgraded","nodeType":"MemberAccess","referencedDeclaration":3250,"src":"5707:23:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5707:34:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3658,"nodeType":"EmitStatement","src":"5702:39:17"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3659,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3646,"src":"5756:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5761:6:17","memberName":"length","nodeType":"MemberAccess","src":"5756:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5770:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5756:15:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3678,"nodeType":"Block","src":"5875:43:17","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3675,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3695,"src":"5889:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5889:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3677,"nodeType":"ExpressionStatement","src":"5889:18:17"}]},"id":3679,"nodeType":"IfStatement","src":"5752:166:17","trueBody":{"id":3674,"nodeType":"Block","src":"5773:96:17","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3667,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3644,"src":"5824:9:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3666,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"5816:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$3800_$","typeString":"type(contract IBeacon)"}},"id":3668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$3800","typeString":"contract IBeacon"}},"id":3669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5835:14:17","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":3799,"src":"5816:33:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":3670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:35:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3671,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3646,"src":"5853:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3663,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6628,"src":"5787:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$6628_$","typeString":"type(library Address)"}},"id":3665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5795:20:17","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6545,"src":"5787:28:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":3672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5787:71:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3673,"nodeType":"ExpressionStatement","src":"5787:71:17"}]}}]},"documentation":{"id":3642,"nodeType":"StructuredDocumentation","src":"5063:514:17","text":" @dev Change the beacon and trigger a setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-BeaconUpgraded} event.\n CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n efficiency."},"id":3681,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeaconToAndCall","nameLocation":"5591:22:17","nodeType":"FunctionDefinition","parameters":{"id":3647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3644,"mutability":"mutable","name":"newBeacon","nameLocation":"5622:9:17","nodeType":"VariableDeclaration","scope":3681,"src":"5614:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3643,"name":"address","nodeType":"ElementaryTypeName","src":"5614:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3646,"mutability":"mutable","name":"data","nameLocation":"5646:4:17","nodeType":"VariableDeclaration","scope":3681,"src":"5633:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3645,"name":"bytes","nodeType":"ElementaryTypeName","src":"5633:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5613:38:17"},"returnParameters":{"id":3648,"nodeType":"ParameterList","parameters":[],"src":"5661:0:17"},"scope":3696,"src":"5582:342:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3694,"nodeType":"Block","src":"6149:86:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3685,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6163:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6167:5:17","memberName":"value","nodeType":"MemberAccess","src":"6163:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6175:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6163:13:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3693,"nodeType":"IfStatement","src":"6159:70:17","trueBody":{"id":3692,"nodeType":"Block","src":"6178:51:17","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3689,"name":"ERC1967NonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3435,"src":"6199:17:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6199:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3691,"nodeType":"RevertStatement","src":"6192:26:17"}]}}]},"documentation":{"id":3682,"nodeType":"StructuredDocumentation","src":"5930:178:17","text":" @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n if an upgrade doesn't perform an initialization call."},"id":3695,"implemented":true,"kind":"function","modifiers":[],"name":"_checkNonPayable","nameLocation":"6122:16:17","nodeType":"FunctionDefinition","parameters":{"id":3683,"nodeType":"ParameterList","parameters":[],"src":"6138:2:17"},"returnParameters":{"id":3684,"nodeType":"ParameterList","parameters":[],"src":"6149:0:17"},"scope":3696,"src":"6113:122:17","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":3697,"src":"496:5741:17","usedErrors":[3422,3427,3432,3435],"usedEvents":[]}],"src":"114:6124:17"},"id":17},"@openzeppelin/contracts/proxy/Proxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","exportedSymbols":{"Proxy":[3732]},"id":3733,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3698,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"99:24:18"},{"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":3699,"nodeType":"StructuredDocumentation","src":"125:598:18","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":3732,"linearizedBaseContracts":[3732],"name":"Proxy","nameLocation":"742:5:18","nodeType":"ContractDefinition","nodes":[{"body":{"id":3706,"nodeType":"Block","src":"1009:835:18","statements":[{"AST":{"nativeSrc":"1028:810:18","nodeType":"YulBlock","src":"1028:810:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1281:1:18","nodeType":"YulLiteral","src":"1281:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"1284:1:18","nodeType":"YulLiteral","src":"1284:1:18","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1287:12:18","nodeType":"YulIdentifier","src":"1287:12:18"},"nativeSrc":"1287:14:18","nodeType":"YulFunctionCall","src":"1287:14:18"}],"functionName":{"name":"calldatacopy","nativeSrc":"1268:12:18","nodeType":"YulIdentifier","src":"1268:12:18"},"nativeSrc":"1268:34:18","nodeType":"YulFunctionCall","src":"1268:34:18"},"nativeSrc":"1268:34:18","nodeType":"YulExpressionStatement","src":"1268:34:18"},{"nativeSrc":"1429:74:18","nodeType":"YulVariableDeclaration","src":"1429:74:18","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1456:3:18","nodeType":"YulIdentifier","src":"1456:3:18"},"nativeSrc":"1456:5:18","nodeType":"YulFunctionCall","src":"1456:5:18"},{"name":"implementation","nativeSrc":"1463:14:18","nodeType":"YulIdentifier","src":"1463:14:18"},{"kind":"number","nativeSrc":"1479:1:18","nodeType":"YulLiteral","src":"1479:1:18","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1482:12:18","nodeType":"YulIdentifier","src":"1482:12:18"},"nativeSrc":"1482:14:18","nodeType":"YulFunctionCall","src":"1482:14:18"},{"kind":"number","nativeSrc":"1498:1:18","nodeType":"YulLiteral","src":"1498:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"1501:1:18","nodeType":"YulLiteral","src":"1501:1:18","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"1443:12:18","nodeType":"YulIdentifier","src":"1443:12:18"},"nativeSrc":"1443:60:18","nodeType":"YulFunctionCall","src":"1443:60:18"},"variables":[{"name":"result","nativeSrc":"1433:6:18","nodeType":"YulTypedName","src":"1433:6:18","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1571:1:18","nodeType":"YulLiteral","src":"1571:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"1574:1:18","nodeType":"YulLiteral","src":"1574:1:18","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1577:14:18","nodeType":"YulIdentifier","src":"1577:14:18"},"nativeSrc":"1577:16:18","nodeType":"YulFunctionCall","src":"1577:16:18"}],"functionName":{"name":"returndatacopy","nativeSrc":"1556:14:18","nodeType":"YulIdentifier","src":"1556:14:18"},"nativeSrc":"1556:38:18","nodeType":"YulFunctionCall","src":"1556:38:18"},"nativeSrc":"1556:38:18","nodeType":"YulExpressionStatement","src":"1556:38:18"},{"cases":[{"body":{"nativeSrc":"1689:59:18","nodeType":"YulBlock","src":"1689:59:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1714:1:18","nodeType":"YulLiteral","src":"1714:1:18","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1717:14:18","nodeType":"YulIdentifier","src":"1717:14:18"},"nativeSrc":"1717:16:18","nodeType":"YulFunctionCall","src":"1717:16:18"}],"functionName":{"name":"revert","nativeSrc":"1707:6:18","nodeType":"YulIdentifier","src":"1707:6:18"},"nativeSrc":"1707:27:18","nodeType":"YulFunctionCall","src":"1707:27:18"},"nativeSrc":"1707:27:18","nodeType":"YulExpressionStatement","src":"1707:27:18"}]},"nativeSrc":"1682:66:18","nodeType":"YulCase","src":"1682:66:18","value":{"kind":"number","nativeSrc":"1687:1:18","nodeType":"YulLiteral","src":"1687:1:18","type":"","value":"0"}},{"body":{"nativeSrc":"1769:59:18","nodeType":"YulBlock","src":"1769:59:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1794:1:18","nodeType":"YulLiteral","src":"1794:1:18","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1797:14:18","nodeType":"YulIdentifier","src":"1797:14:18"},"nativeSrc":"1797:16:18","nodeType":"YulFunctionCall","src":"1797:16:18"}],"functionName":{"name":"return","nativeSrc":"1787:6:18","nodeType":"YulIdentifier","src":"1787:6:18"},"nativeSrc":"1787:27:18","nodeType":"YulFunctionCall","src":"1787:27:18"},"nativeSrc":"1787:27:18","nodeType":"YulExpressionStatement","src":"1787:27:18"}]},"nativeSrc":"1761:67:18","nodeType":"YulCase","src":"1761:67:18","value":"default"}],"expression":{"name":"result","nativeSrc":"1615:6:18","nodeType":"YulIdentifier","src":"1615:6:18"},"nativeSrc":"1608:220:18","nodeType":"YulSwitch","src":"1608:220:18"}]},"evmVersion":"paris","externalReferences":[{"declaration":3702,"isOffset":false,"isSlot":false,"src":"1463:14:18","valueSize":1}],"id":3705,"nodeType":"InlineAssembly","src":"1019:819:18"}]},"documentation":{"id":3700,"nodeType":"StructuredDocumentation","src":"754:190:18","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":3707,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"958:9:18","nodeType":"FunctionDefinition","parameters":{"id":3703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3702,"mutability":"mutable","name":"implementation","nameLocation":"976:14:18","nodeType":"VariableDeclaration","scope":3707,"src":"968:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3701,"name":"address","nodeType":"ElementaryTypeName","src":"968:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"967:24:18"},"returnParameters":{"id":3704,"nodeType":"ParameterList","parameters":[],"src":"1009:0:18"},"scope":3732,"src":"949:895:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":3708,"nodeType":"StructuredDocumentation","src":"1850:173:18","text":" @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n function and {_fallback} should delegate."},"id":3713,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2037:15:18","nodeType":"FunctionDefinition","parameters":{"id":3709,"nodeType":"ParameterList","parameters":[],"src":"2052:2:18"},"returnParameters":{"id":3712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3713,"src":"2086:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3710,"name":"address","nodeType":"ElementaryTypeName","src":"2086:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2085:9:18"},"scope":3732,"src":"2028:67:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3722,"nodeType":"Block","src":"2361:45:18","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3718,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3713,"src":"2381:15:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:17:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3717,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"2371:9:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2371:28:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3721,"nodeType":"ExpressionStatement","src":"2371:28:18"}]},"documentation":{"id":3714,"nodeType":"StructuredDocumentation","src":"2101:217:18","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":3723,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2332:9:18","nodeType":"FunctionDefinition","parameters":{"id":3715,"nodeType":"ParameterList","parameters":[],"src":"2341:2:18"},"returnParameters":{"id":3716,"nodeType":"ParameterList","parameters":[],"src":"2361:0:18"},"scope":3732,"src":"2323:83:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3730,"nodeType":"Block","src":"2639:28:18","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3727,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3723,"src":"2649:9:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2649:11:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3729,"nodeType":"ExpressionStatement","src":"2649:11:18"}]},"documentation":{"id":3724,"nodeType":"StructuredDocumentation","src":"2412:186:18","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":3731,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3725,"nodeType":"ParameterList","parameters":[],"src":"2611:2:18"},"returnParameters":{"id":3726,"nodeType":"ParameterList","parameters":[],"src":"2639:0:18"},"scope":3732,"src":"2603:64:18","stateMutability":"payable","virtual":true,"visibility":"external"}],"scope":3733,"src":"724:1945:18","usedErrors":[],"usedEvents":[]}],"src":"99:2571:18"},"id":18},"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol","exportedSymbols":{"BeaconProxy":[3790],"ERC1967Utils":[3696],"IBeacon":[3800],"Proxy":[3732]},"id":3791,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3734,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:19"},{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","file":"./IBeacon.sol","id":3736,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3791,"sourceUnit":3801,"src":"138:38:19","symbolAliases":[{"foreign":{"id":3735,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"146:7:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","file":"../Proxy.sol","id":3738,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3791,"sourceUnit":3733,"src":"177:35:19","symbolAliases":[{"foreign":{"id":3737,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"185:5:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"../ERC1967/ERC1967Utils.sol","id":3740,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3791,"sourceUnit":3697,"src":"213:57:19","symbolAliases":[{"foreign":{"id":3739,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"221:12:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3742,"name":"Proxy","nameLocations":["1140:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":3732,"src":"1140:5:19"},"id":3743,"nodeType":"InheritanceSpecifier","src":"1140:5:19"}],"canonicalName":"BeaconProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":3741,"nodeType":"StructuredDocumentation","src":"272:843:19","text":" @dev This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}.\n The beacon address can only be set once during construction, and cannot be changed afterwards. It is stored in an\n immutable variable to avoid unnecessary storage reads, and also in the beacon storage slot specified by\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] so that it can be accessed externally.\n CAUTION: Since the beacon address can never be changed, you must ensure that you either control the beacon, or trust\n the beacon to not upgrade the implementation maliciously.\n IMPORTANT: Do not use the implementation logic to modify the beacon storage slot. Doing so would leave the proxy in\n an inconsistent state where the beacon storage slot does not match the beacon address."},"fullyImplemented":true,"id":3790,"linearizedBaseContracts":[3790,3732],"name":"BeaconProxy","nameLocation":"1125:11:19","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3745,"mutability":"immutable","name":"_beacon","nameLocation":"1276:7:19","nodeType":"VariableDeclaration","scope":3790,"src":"1250:33:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3744,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"body":{"id":3764,"nodeType":"Block","src":"1828:92:19","statements":[{"expression":{"arguments":[{"id":3756,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3748,"src":"1874:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3757,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3750,"src":"1882:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3753,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"1838:12:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$3696_$","typeString":"type(library ERC1967Utils)"}},"id":3755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1851:22:19","memberName":"upgradeBeaconToAndCall","nodeType":"MemberAccess","referencedDeclaration":3681,"src":"1838:35:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":3758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:49:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3759,"nodeType":"ExpressionStatement","src":"1838:49:19"},{"expression":{"id":3762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3760,"name":"_beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3745,"src":"1897:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3761,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3748,"src":"1907:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1897:16:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3763,"nodeType":"ExpressionStatement","src":"1897:16:19"}]},"documentation":{"id":3746,"nodeType":"StructuredDocumentation","src":"1290:478:19","text":" @dev Initializes the proxy with `beacon`.\n If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This\n will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity\n constructor.\n Requirements:\n - `beacon` must be a contract with the interface {IBeacon}.\n - If `data` is empty, `msg.value` must be zero."},"id":3765,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3748,"mutability":"mutable","name":"beacon","nameLocation":"1793:6:19","nodeType":"VariableDeclaration","scope":3765,"src":"1785:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3747,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3750,"mutability":"mutable","name":"data","nameLocation":"1814:4:19","nodeType":"VariableDeclaration","scope":3765,"src":"1801:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3749,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1784:35:19"},"returnParameters":{"id":3752,"nodeType":"ParameterList","parameters":[],"src":"1828:0:19"},"scope":3790,"src":"1773:147:19","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[3713],"body":{"id":3779,"nodeType":"Block","src":"2099:62:19","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3773,"name":"_getBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3789,"src":"2124:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2124:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3772,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"2116:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$3800_$","typeString":"type(contract IBeacon)"}},"id":3775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2116:21:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$3800","typeString":"contract IBeacon"}},"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2138:14:19","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":3799,"src":"2116:36:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":3777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2116:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3771,"id":3778,"nodeType":"Return","src":"2109:45:19"}]},"documentation":{"id":3766,"nodeType":"StructuredDocumentation","src":"1926:92:19","text":" @dev Returns the current implementation address of the associated beacon."},"id":3780,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2032:15:19","nodeType":"FunctionDefinition","overrides":{"id":3768,"nodeType":"OverrideSpecifier","overrides":[],"src":"2072:8:19"},"parameters":{"id":3767,"nodeType":"ParameterList","parameters":[],"src":"2047:2:19"},"returnParameters":{"id":3771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3780,"src":"2090:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3769,"name":"address","nodeType":"ElementaryTypeName","src":"2090:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2089:9:19"},"scope":3790,"src":"2023:138:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3788,"nodeType":"Block","src":"2277:31:19","statements":[{"expression":{"id":3786,"name":"_beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3745,"src":"2294:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3785,"id":3787,"nodeType":"Return","src":"2287:14:19"}]},"documentation":{"id":3781,"nodeType":"StructuredDocumentation","src":"2167:43:19","text":" @dev Returns the beacon."},"id":3789,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"2224:10:19","nodeType":"FunctionDefinition","parameters":{"id":3782,"nodeType":"ParameterList","parameters":[],"src":"2234:2:19"},"returnParameters":{"id":3785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3789,"src":"2268:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3783,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2267:9:19"},"scope":3790,"src":"2215:93:19","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":3791,"src":"1116:1194:19","usedErrors":[3422,3432,3435,6379,6770],"usedEvents":[3250]}],"src":"112:2199:19"},"id":19},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[3800]},"id":3801,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3792,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:20"},{"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":3793,"nodeType":"StructuredDocumentation","src":"134:79:20","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":3800,"linearizedBaseContracts":[3800],"name":"IBeacon","nameLocation":"224:7:20","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3794,"nodeType":"StructuredDocumentation","src":"238:168:20","text":" @dev Must return an address that can be used as a delegate call target.\n {UpgradeableBeacon} will check that this address is a contract."},"functionSelector":"5c60da1b","id":3799,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"420:14:20","nodeType":"FunctionDefinition","parameters":{"id":3795,"nodeType":"ParameterList","parameters":[],"src":"434:2:20"},"returnParameters":{"id":3798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3799,"src":"460:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3796,"name":"address","nodeType":"ElementaryTypeName","src":"460:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"459:9:20"},"scope":3800,"src":"411:58:20","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3801,"src":"214:257:20","usedErrors":[],"usedEvents":[]}],"src":"108:364:20"},"id":20},"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol","exportedSymbols":{"IBeacon":[3800],"Ownable":[3144],"UpgradeableBeacon":[3888]},"id":3889,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3802,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"118:24:21"},{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","file":"./IBeacon.sol","id":3804,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3889,"sourceUnit":3801,"src":"144:38:21","symbolAliases":[{"foreign":{"id":3803,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3800,"src":"152:7:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"../../access/Ownable.sol","id":3806,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3889,"sourceUnit":3145,"src":"183:49:21","symbolAliases":[{"foreign":{"id":3805,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3144,"src":"191:7:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3808,"name":"IBeacon","nameLocations":["585:7:21"],"nodeType":"IdentifierPath","referencedDeclaration":3800,"src":"585:7:21"},"id":3809,"nodeType":"InheritanceSpecifier","src":"585:7:21"},{"baseName":{"id":3810,"name":"Ownable","nameLocations":["594:7:21"],"nodeType":"IdentifierPath","referencedDeclaration":3144,"src":"594:7:21"},"id":3811,"nodeType":"InheritanceSpecifier","src":"594:7:21"}],"canonicalName":"UpgradeableBeacon","contractDependencies":[],"contractKind":"contract","documentation":{"id":3807,"nodeType":"StructuredDocumentation","src":"234:320:21","text":" @dev This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their\n implementation contract, which is where they will delegate all function calls.\n An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon."},"fullyImplemented":true,"id":3888,"linearizedBaseContracts":[3888,3144,6658,3800],"name":"UpgradeableBeacon","nameLocation":"564:17:21","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3813,"mutability":"mutable","name":"_implementation","nameLocation":"624:15:21","nodeType":"VariableDeclaration","scope":3888,"src":"608:31:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3812,"name":"address","nodeType":"ElementaryTypeName","src":"608:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":3814,"nodeType":"StructuredDocumentation","src":"646:70:21","text":" @dev The `implementation` of the beacon is invalid."},"errorSelector":"847ac564","id":3818,"name":"BeaconInvalidImplementation","nameLocation":"727:27:21","nodeType":"ErrorDefinition","parameters":{"id":3817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3816,"mutability":"mutable","name":"implementation","nameLocation":"763:14:21","nodeType":"VariableDeclaration","scope":3818,"src":"755:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3815,"name":"address","nodeType":"ElementaryTypeName","src":"755:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"754:24:21"},"src":"721:58:21"},{"anonymous":false,"documentation":{"id":3819,"nodeType":"StructuredDocumentation","src":"785:90:21","text":" @dev Emitted when the implementation returned by the beacon is changed."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":3823,"name":"Upgraded","nameLocation":"886:8:21","nodeType":"EventDefinition","parameters":{"id":3822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3821,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"911:14:21","nodeType":"VariableDeclaration","scope":3823,"src":"895:30:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3820,"name":"address","nodeType":"ElementaryTypeName","src":"895:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"894:32:21"},"src":"880:47:21"},{"body":{"id":3838,"nodeType":"Block","src":"1140:52:21","statements":[{"expression":{"arguments":[{"id":3835,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3826,"src":"1169:15:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3834,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3887,"src":"1150:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1150:35:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3837,"nodeType":"ExpressionStatement","src":"1150:35:21"}]},"documentation":{"id":3824,"nodeType":"StructuredDocumentation","src":"933:121:21","text":" @dev Sets the address of the initial implementation, and the initial owner who can upgrade the beacon."},"id":3839,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3831,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3828,"src":"1126:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3832,"kind":"baseConstructorSpecifier","modifierName":{"id":3830,"name":"Ownable","nameLocations":["1118:7:21"],"nodeType":"IdentifierPath","referencedDeclaration":3144,"src":"1118:7:21"},"nodeType":"ModifierInvocation","src":"1118:21:21"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3826,"mutability":"mutable","name":"implementation_","nameLocation":"1079:15:21","nodeType":"VariableDeclaration","scope":3839,"src":"1071:23:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3825,"name":"address","nodeType":"ElementaryTypeName","src":"1071:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3828,"mutability":"mutable","name":"initialOwner","nameLocation":"1104:12:21","nodeType":"VariableDeclaration","scope":3839,"src":"1096:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3827,"name":"address","nodeType":"ElementaryTypeName","src":"1096:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1070:47:21"},"returnParameters":{"id":3833,"nodeType":"ParameterList","parameters":[],"src":"1140:0:21"},"scope":3888,"src":"1059:133:21","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3799],"body":{"id":3847,"nodeType":"Block","src":"1334:39:21","statements":[{"expression":{"id":3845,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"1351:15:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3844,"id":3846,"nodeType":"Return","src":"1344:22:21"}]},"documentation":{"id":3840,"nodeType":"StructuredDocumentation","src":"1198:67:21","text":" @dev Returns the current implementation address."},"functionSelector":"5c60da1b","id":3848,"implemented":true,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"1279:14:21","nodeType":"FunctionDefinition","parameters":{"id":3841,"nodeType":"ParameterList","parameters":[],"src":"1293:2:21"},"returnParameters":{"id":3844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3843,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3848,"src":"1325:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3842,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1324:9:21"},"scope":3888,"src":"1270:103:21","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3860,"nodeType":"Block","src":"1703:54:21","statements":[{"expression":{"arguments":[{"id":3857,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"1732:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3856,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3887,"src":"1713:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1713:37:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3859,"nodeType":"ExpressionStatement","src":"1713:37:21"}]},"documentation":{"id":3849,"nodeType":"StructuredDocumentation","src":"1379:248:21","text":" @dev Upgrades the beacon to a new implementation.\n Emits an {Upgraded} event.\n Requirements:\n - msg.sender must be the owner of the contract.\n - `newImplementation` must be a contract."},"functionSelector":"3659cfe6","id":3861,"implemented":true,"kind":"function","modifiers":[{"id":3854,"kind":"modifierInvocation","modifierName":{"id":3853,"name":"onlyOwner","nameLocations":["1693:9:21"],"nodeType":"IdentifierPath","referencedDeclaration":3055,"src":"1693:9:21"},"nodeType":"ModifierInvocation","src":"1693:9:21"}],"name":"upgradeTo","nameLocation":"1641:9:21","nodeType":"FunctionDefinition","parameters":{"id":3852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3851,"mutability":"mutable","name":"newImplementation","nameLocation":"1659:17:21","nodeType":"VariableDeclaration","scope":3861,"src":"1651:25:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3850,"name":"address","nodeType":"ElementaryTypeName","src":"1651:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1650:27:21"},"returnParameters":{"id":3855,"nodeType":"ParameterList","parameters":[],"src":"1703:0:21"},"scope":3888,"src":"1632:125:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3886,"nodeType":"Block","src":"1995:221:21","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":3867,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"2009:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2027:4:21","memberName":"code","nodeType":"MemberAccess","src":"2009:22:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2032:6:21","memberName":"length","nodeType":"MemberAccess","src":"2009:29:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2042:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2009:34:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3877,"nodeType":"IfStatement","src":"2005:118:21","trueBody":{"id":3876,"nodeType":"Block","src":"2045:78:21","statements":[{"errorCall":{"arguments":[{"id":3873,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"2094:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3872,"name":"BeaconInvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"2066:27:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2066:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3875,"nodeType":"RevertStatement","src":"2059:53:21"}]}},{"expression":{"id":3880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3878,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"2132:15:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3879,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"2150:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2132:35:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3881,"nodeType":"ExpressionStatement","src":"2132:35:21"},{"eventCall":{"arguments":[{"id":3883,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"2191:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3882,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3823,"src":"2182:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2182:27:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3885,"nodeType":"EmitStatement","src":"2177:32:21"}]},"documentation":{"id":3862,"nodeType":"StructuredDocumentation","src":"1763:164:21","text":" @dev Sets the implementation contract address for this beacon\n Requirements:\n - `newImplementation` must be a contract."},"id":3887,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1941:18:21","nodeType":"FunctionDefinition","parameters":{"id":3865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3864,"mutability":"mutable","name":"newImplementation","nameLocation":"1968:17:21","nodeType":"VariableDeclaration","scope":3887,"src":"1960:25:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3863,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1959:27:21"},"returnParameters":{"id":3866,"nodeType":"ParameterList","parameters":[],"src":"1995:0:21"},"scope":3888,"src":"1932:284:21","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":3889,"src":"555:1663:21","usedErrors":[3010,3015,3818],"usedEvents":[3021,3823]}],"src":"118:2101:21"},"id":21},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","exportedSymbols":{"Initializable":[4142]},"id":4143,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3890,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"113:24:22"},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3891,"nodeType":"StructuredDocumentation","src":"139:2209:22","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n     function initialize() initializer public {\n         __ERC20_init(\"MyToken\", \"MTK\");\n     }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n     function initializeV2() reinitializer(2) public {\n         __ERC20Permit_init(\"MyToken\");\n     }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n     _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":4142,"linearizedBaseContracts":[4142],"name":"Initializable","nameLocation":"2367:13:22","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Initializable.InitializableStorage","documentation":{"id":3892,"nodeType":"StructuredDocumentation","src":"2387:293:22","text":" @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable"},"id":3899,"members":[{"constant":false,"id":3895,"mutability":"mutable","name":"_initialized","nameLocation":"2820:12:22","nodeType":"VariableDeclaration","scope":3899,"src":"2813:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3894,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3898,"mutability":"mutable","name":"_initializing","nameLocation":"2955:13:22","nodeType":"VariableDeclaration","scope":3899,"src":"2950:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3897,"name":"bool","nodeType":"ElementaryTypeName","src":"2950:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"InitializableStorage","nameLocation":"2692:20:22","nodeType":"StructDefinition","scope":4142,"src":"2685:290:22","visibility":"public"},{"constant":true,"id":3902,"mutability":"constant","name":"INITIALIZABLE_STORAGE","nameLocation":"3123:21:22","nodeType":"VariableDeclaration","scope":4142,"src":"3098:115:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3098:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030","id":3901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:66:22","typeDescriptions":{"typeIdentifier":"t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1","typeString":"int_const 1089...(70 digits omitted)...9600"},"value":"0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00"},"visibility":"private"},{"documentation":{"id":3903,"nodeType":"StructuredDocumentation","src":"3220:60:22","text":" @dev The contract is already initialized."},"errorSelector":"f92ee8a9","id":3905,"name":"InvalidInitialization","nameLocation":"3291:21:22","nodeType":"ErrorDefinition","parameters":{"id":3904,"nodeType":"ParameterList","parameters":[],"src":"3312:2:22"},"src":"3285:30:22"},{"documentation":{"id":3906,"nodeType":"StructuredDocumentation","src":"3321:57:22","text":" @dev The contract is not initializing."},"errorSelector":"d7e6bcf8","id":3908,"name":"NotInitializing","nameLocation":"3389:15:22","nodeType":"ErrorDefinition","parameters":{"id":3907,"nodeType":"ParameterList","parameters":[],"src":"3404:2:22"},"src":"3383:24:22"},{"anonymous":false,"documentation":{"id":3909,"nodeType":"StructuredDocumentation","src":"3413:90:22","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2","id":3913,"name":"Initialized","nameLocation":"3514:11:22","nodeType":"EventDefinition","parameters":{"id":3912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3911,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"3533:7:22","nodeType":"VariableDeclaration","scope":3913,"src":"3526:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3910,"name":"uint64","nodeType":"ElementaryTypeName","src":"3526:6:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3525:16:22"},"src":"3508:34:22"},{"body":{"id":3995,"nodeType":"Block","src":"4092:1081:22","statements":[{"assignments":[3918],"declarations":[{"constant":false,"id":3918,"mutability":"mutable","name":"$","nameLocation":"4187:1:22","nodeType":"VariableDeclaration","scope":3995,"src":"4158:30:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":3917,"nodeType":"UserDefinedTypeName","pathNode":{"id":3916,"name":"InitializableStorage","nameLocations":["4158:20:22"],"nodeType":"IdentifierPath","referencedDeclaration":3899,"src":"4158:20:22"},"referencedDeclaration":3899,"src":"4158:20:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":3921,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3919,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"4191:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$3899_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4158:59:22"},{"assignments":[3923],"declarations":[{"constant":false,"id":3923,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"4284:14:22","nodeType":"VariableDeclaration","scope":3995,"src":"4279:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3922,"name":"bool","nodeType":"ElementaryTypeName","src":"4279:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3927,"initialValue":{"id":3926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4301:16:22","subExpression":{"expression":{"id":3924,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"4302:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":3925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4304:13:22","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":3898,"src":"4302:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4279:38:22"},{"assignments":[3929],"declarations":[{"constant":false,"id":3929,"mutability":"mutable","name":"initialized","nameLocation":"4334:11:22","nodeType":"VariableDeclaration","scope":3995,"src":"4327:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3928,"name":"uint64","nodeType":"ElementaryTypeName","src":"4327:6:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":3932,"initialValue":{"expression":{"id":3930,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"4348:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":3931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4350:12:22","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":3895,"src":"4348:14:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4327:35:22"},{"assignments":[3934],"declarations":[{"constant":false,"id":3934,"mutability":"mutable","name":"initialSetup","nameLocation":"4711:12:22","nodeType":"VariableDeclaration","scope":3995,"src":"4706:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3933,"name":"bool","nodeType":"ElementaryTypeName","src":"4706:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3940,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":3937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3935,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3929,"src":"4726:11:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4741:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4726:16:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":3938,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"4746:14:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4726:34:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4706:54:22"},{"assignments":[3942],"declarations":[{"constant":false,"id":3942,"mutability":"mutable","name":"construction","nameLocation":"4775:12:22","nodeType":"VariableDeclaration","scope":3995,"src":"4770:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3941,"name":"bool","nodeType":"ElementaryTypeName","src":"4770:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3955,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":3945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3943,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3929,"src":"4790:11:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":3944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4805:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4790:16:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":3948,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4818:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$4142","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$4142","typeString":"contract Initializable"}],"id":3947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4810:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3946,"name":"address","nodeType":"ElementaryTypeName","src":"4810:7:22","typeDescriptions":{}}},"id":3949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4810:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4824:4:22","memberName":"code","nodeType":"MemberAccess","src":"4810:18:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4829:6:22","memberName":"length","nodeType":"MemberAccess","src":"4810:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4839:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4810:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4790:50:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4770:70:22"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4855:13:22","subExpression":{"id":3956,"name":"initialSetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3934,"src":"4856:12:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":3959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4872:13:22","subExpression":{"id":3958,"name":"construction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"4873:12:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4855:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3965,"nodeType":"IfStatement","src":"4851:91:22","trueBody":{"id":3964,"nodeType":"Block","src":"4887:55:22","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3961,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3905,"src":"4908:21:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4908:23:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3963,"nodeType":"RevertStatement","src":"4901:30:22"}]}},{"expression":{"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3966,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"4951:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":3968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4953:12:22","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":3895,"src":"4951:14:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":3969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4968:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4951:18:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":3971,"nodeType":"ExpressionStatement","src":"4951:18:22"},{"condition":{"id":3972,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"4983:14:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3980,"nodeType":"IfStatement","src":"4979:67:22","trueBody":{"id":3979,"nodeType":"Block","src":"4999:47:22","statements":[{"expression":{"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3973,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"5013:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":3975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5015:13:22","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":3898,"src":"5013:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5031:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5013:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3978,"nodeType":"ExpressionStatement","src":"5013:22:22"}]}},{"id":3981,"nodeType":"PlaceholderStatement","src":"5055:1:22"},{"condition":{"id":3982,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"5070:14:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3994,"nodeType":"IfStatement","src":"5066:101:22","trueBody":{"id":3993,"nodeType":"Block","src":"5086:81:22","statements":[{"expression":{"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3983,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"5100:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":3985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5102:13:22","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":3898,"src":"5100:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5118:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5100:23:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3988,"nodeType":"ExpressionStatement","src":"5100:23:22"},{"eventCall":{"arguments":[{"hexValue":"31","id":3990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5154:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":3989,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3913,"src":"5142:11:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":3991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:14:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3992,"nodeType":"EmitStatement","src":"5137:19:22"}]}}]},"documentation":{"id":3914,"nodeType":"StructuredDocumentation","src":"3548:516:22","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event."},"id":3996,"name":"initializer","nameLocation":"4078:11:22","nodeType":"ModifierDefinition","parameters":{"id":3915,"nodeType":"ParameterList","parameters":[],"src":"4089:2:22"},"src":"4069:1104:22","virtual":false,"visibility":"internal"},{"body":{"id":4042,"nodeType":"Block","src":"6291:392:22","statements":[{"assignments":[4003],"declarations":[{"constant":false,"id":4003,"mutability":"mutable","name":"$","nameLocation":"6386:1:22","nodeType":"VariableDeclaration","scope":4042,"src":"6357:30:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":4002,"nodeType":"UserDefinedTypeName","pathNode":{"id":4001,"name":"InitializableStorage","nameLocations":["6357:20:22"],"nodeType":"IdentifierPath","referencedDeclaration":3899,"src":"6357:20:22"},"referencedDeclaration":3899,"src":"6357:20:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":4006,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4004,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"6390:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$3899_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":4005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6357:59:22"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4007,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4003,"src":"6431:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6433:13:22","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":3898,"src":"6431:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4009,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4003,"src":"6450:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6452:12:22","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":3895,"src":"6450:14:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":4011,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3999,"src":"6468:7:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6450:25:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6431:44:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4018,"nodeType":"IfStatement","src":"6427:105:22","trueBody":{"id":4017,"nodeType":"Block","src":"6477:55:22","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4014,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3905,"src":"6498:21:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6498:23:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4016,"nodeType":"RevertStatement","src":"6491:30:22"}]}},{"expression":{"id":4023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4019,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4003,"src":"6541:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6543:12:22","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":3895,"src":"6541:14:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4022,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3999,"src":"6558:7:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6541:24:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":4024,"nodeType":"ExpressionStatement","src":"6541:24:22"},{"expression":{"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4025,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4003,"src":"6575:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6577:13:22","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":3898,"src":"6575:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6593:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6575:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4030,"nodeType":"ExpressionStatement","src":"6575:22:22"},{"id":4031,"nodeType":"PlaceholderStatement","src":"6607:1:22"},{"expression":{"id":4036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4032,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4003,"src":"6618:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6620:13:22","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":3898,"src":"6618:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6636:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6618:23:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4037,"nodeType":"ExpressionStatement","src":"6618:23:22"},{"eventCall":{"arguments":[{"id":4039,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3999,"src":"6668:7:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":4038,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3913,"src":"6656:11:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":4040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6656:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4041,"nodeType":"EmitStatement","src":"6651:25:22"}]},"documentation":{"id":3997,"nodeType":"StructuredDocumentation","src":"5179:1068:22","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":4043,"name":"reinitializer","nameLocation":"6261:13:22","nodeType":"ModifierDefinition","parameters":{"id":4000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3999,"mutability":"mutable","name":"version","nameLocation":"6282:7:22","nodeType":"VariableDeclaration","scope":4043,"src":"6275:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3998,"name":"uint64","nodeType":"ElementaryTypeName","src":"6275:6:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6274:16:22"},"src":"6252:431:22","virtual":false,"visibility":"internal"},{"body":{"id":4050,"nodeType":"Block","src":"6921:48:22","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4046,"name":"_checkInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"6931:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":4047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6931:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4048,"nodeType":"ExpressionStatement","src":"6931:20:22"},{"id":4049,"nodeType":"PlaceholderStatement","src":"6961:1:22"}]},"documentation":{"id":4044,"nodeType":"StructuredDocumentation","src":"6689:199:22","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":4051,"name":"onlyInitializing","nameLocation":"6902:16:22","nodeType":"ModifierDefinition","parameters":{"id":4045,"nodeType":"ParameterList","parameters":[],"src":"6918:2:22"},"src":"6893:76:22","virtual":false,"visibility":"internal"},{"body":{"id":4063,"nodeType":"Block","src":"7136:89:22","statements":[{"condition":{"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7150:18:22","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4055,"name":"_isInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4132,"src":"7151:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":4056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7151:17:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4062,"nodeType":"IfStatement","src":"7146:73:22","trueBody":{"id":4061,"nodeType":"Block","src":"7170:49:22","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4058,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"7191:15:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7191:17:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4060,"nodeType":"RevertStatement","src":"7184:24:22"}]}}]},"documentation":{"id":4052,"nodeType":"StructuredDocumentation","src":"6975:104:22","text":" @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}."},"id":4064,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInitializing","nameLocation":"7093:18:22","nodeType":"FunctionDefinition","parameters":{"id":4053,"nodeType":"ParameterList","parameters":[],"src":"7111:2:22"},"returnParameters":{"id":4054,"nodeType":"ParameterList","parameters":[],"src":"7136:0:22"},"scope":4142,"src":"7084:141:22","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4109,"nodeType":"Block","src":"7760:373:22","statements":[{"assignments":[4070],"declarations":[{"constant":false,"id":4070,"mutability":"mutable","name":"$","nameLocation":"7855:1:22","nodeType":"VariableDeclaration","scope":4109,"src":"7826:30:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":4069,"nodeType":"UserDefinedTypeName","pathNode":{"id":4068,"name":"InitializableStorage","nameLocations":["7826:20:22"],"nodeType":"IdentifierPath","referencedDeclaration":3899,"src":"7826:20:22"},"referencedDeclaration":3899,"src":"7826:20:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":4073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4071,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"7859:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$3899_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":4072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7859:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7826:59:22"},{"condition":{"expression":{"id":4074,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"7900:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7902:13:22","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":3898,"src":"7900:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4080,"nodeType":"IfStatement","src":"7896:76:22","trueBody":{"id":4079,"nodeType":"Block","src":"7917:55:22","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4076,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3905,"src":"7938:21:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7938:23:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4078,"nodeType":"RevertStatement","src":"7931:30:22"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4081,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"7985:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7987:12:22","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":3895,"src":"7985:14:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":4085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8008:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4084,"name":"uint64","nodeType":"ElementaryTypeName","src":"8008:6:22","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":4083,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8003:4:22","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8003:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":4087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8016:3:22","memberName":"max","nodeType":"MemberAccess","src":"8003:16:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7985:34:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4108,"nodeType":"IfStatement","src":"7981:146:22","trueBody":{"id":4107,"nodeType":"Block","src":"8021:106:22","statements":[{"expression":{"id":4097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4089,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"8035:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8037:12:22","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":3895,"src":"8035:14:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":4094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8057:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4093,"name":"uint64","nodeType":"ElementaryTypeName","src":"8057:6:22","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":4092,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8052:4:22","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8052:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":4096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8065:3:22","memberName":"max","nodeType":"MemberAccess","src":"8052:16:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8035:33:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":4098,"nodeType":"ExpressionStatement","src":"8035:33:22"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":4102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8104:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4101,"name":"uint64","nodeType":"ElementaryTypeName","src":"8104:6:22","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":4100,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8099:4:22","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8099:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":4104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8112:3:22","memberName":"max","nodeType":"MemberAccess","src":"8099:16:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":4099,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3913,"src":"8087:11:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":4105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087:29:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4106,"nodeType":"EmitStatement","src":"8082:34:22"}]}}]},"documentation":{"id":4065,"nodeType":"StructuredDocumentation","src":"7231:475:22","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":4110,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"7720:20:22","nodeType":"FunctionDefinition","parameters":{"id":4066,"nodeType":"ParameterList","parameters":[],"src":"7740:2:22"},"returnParameters":{"id":4067,"nodeType":"ParameterList","parameters":[],"src":"7760:0:22"},"scope":4142,"src":"7711:422:22","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4120,"nodeType":"Block","src":"8308:63:22","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4116,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"8325:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$3899_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":4117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8325:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8352:12:22","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":3895,"src":"8325:39:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":4115,"id":4119,"nodeType":"Return","src":"8318:46:22"}]},"documentation":{"id":4111,"nodeType":"StructuredDocumentation","src":"8139:99:22","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":4121,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"8252:22:22","nodeType":"FunctionDefinition","parameters":{"id":4112,"nodeType":"ParameterList","parameters":[],"src":"8274:2:22"},"returnParameters":{"id":4115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4121,"src":"8300:6:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4113,"name":"uint64","nodeType":"ElementaryTypeName","src":"8300:6:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8299:8:22"},"scope":4142,"src":"8243:128:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4131,"nodeType":"Block","src":"8543:64:22","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4127,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"8560:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$3899_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":4128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":4129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8587:13:22","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":3898,"src":"8560:40:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4126,"id":4130,"nodeType":"Return","src":"8553:47:22"}]},"documentation":{"id":4122,"nodeType":"StructuredDocumentation","src":"8377:105:22","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":4132,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"8496:15:22","nodeType":"FunctionDefinition","parameters":{"id":4123,"nodeType":"ParameterList","parameters":[],"src":"8511:2:22"},"returnParameters":{"id":4126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4132,"src":"8537:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4124,"name":"bool","nodeType":"ElementaryTypeName","src":"8537:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8536:6:22"},"scope":4142,"src":"8487:120:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4140,"nodeType":"Block","src":"8827:80:22","statements":[{"AST":{"nativeSrc":"8846:55:22","nodeType":"YulBlock","src":"8846:55:22","statements":[{"nativeSrc":"8860:31:22","nodeType":"YulAssignment","src":"8860:31:22","value":{"name":"INITIALIZABLE_STORAGE","nativeSrc":"8870:21:22","nodeType":"YulIdentifier","src":"8870:21:22"},"variableNames":[{"name":"$.slot","nativeSrc":"8860:6:22","nodeType":"YulIdentifier","src":"8860:6:22"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4137,"isOffset":false,"isSlot":true,"src":"8860:6:22","suffix":"slot","valueSize":1},{"declaration":3902,"isOffset":false,"isSlot":false,"src":"8870:21:22","valueSize":1}],"id":4139,"nodeType":"InlineAssembly","src":"8837:64:22"}]},"documentation":{"id":4133,"nodeType":"StructuredDocumentation","src":"8613:67:22","text":" @dev Returns a pointer to the storage namespace."},"id":4141,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializableStorage","nameLocation":"8746:24:22","nodeType":"FunctionDefinition","parameters":{"id":4134,"nodeType":"ParameterList","parameters":[],"src":"8770:2:22"},"returnParameters":{"id":4138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4137,"mutability":"mutable","name":"$","nameLocation":"8824:1:22","nodeType":"VariableDeclaration","scope":4141,"src":"8795:30:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":4136,"nodeType":"UserDefinedTypeName","pathNode":{"id":4135,"name":"InitializableStorage","nameLocations":["8795:20:22"],"nodeType":"IdentifierPath","referencedDeclaration":3899,"src":"8795:20:22"},"referencedDeclaration":3899,"src":"8795:20:22","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$3899_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"src":"8794:32:22"},"scope":4142,"src":"8737:170:22","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":4143,"src":"2349:6560:22","usedErrors":[3905,3908],"usedEvents":[3913]}],"src":"113:8797:22"},"id":22},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[6658],"ERC20":[4657],"IERC20":[4735],"IERC20Errors":[3307],"IERC20Metadata":[4761]},"id":4658,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4144,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"105:24:23"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":4146,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4658,"sourceUnit":4736,"src":"131:36:23","symbolAliases":[{"foreign":{"id":4145,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"139:6:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":4148,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4658,"sourceUnit":4762,"src":"168:63:23","symbolAliases":[{"foreign":{"id":4147,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4761,"src":"176:14:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":4150,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4658,"sourceUnit":6659,"src":"232:48:23","symbolAliases":[{"foreign":{"id":4149,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6658,"src":"240:7:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":4152,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4658,"sourceUnit":3403,"src":"281:65:23","symbolAliases":[{"foreign":{"id":4151,"name":"IERC20Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3307,"src":"289:12:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4154,"name":"Context","nameLocations":["1133:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":6658,"src":"1133:7:23"},"id":4155,"nodeType":"InheritanceSpecifier","src":"1133:7:23"},{"baseName":{"id":4156,"name":"IERC20","nameLocations":["1142:6:23"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"1142:6:23"},"id":4157,"nodeType":"InheritanceSpecifier","src":"1142:6:23"},{"baseName":{"id":4158,"name":"IERC20Metadata","nameLocations":["1150:14:23"],"nodeType":"IdentifierPath","referencedDeclaration":4761,"src":"1150:14:23"},"id":4159,"nodeType":"InheritanceSpecifier","src":"1150:14:23"},{"baseName":{"id":4160,"name":"IERC20Errors","nameLocations":["1166:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":3307,"src":"1166:12:23"},"id":4161,"nodeType":"InheritanceSpecifier","src":"1166:12:23"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":4153,"nodeType":"StructuredDocumentation","src":"348:757:23","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications."},"fullyImplemented":true,"id":4657,"linearizedBaseContracts":[4657,3307,4761,4735,6658],"name":"ERC20","nameLocation":"1124:5:23","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":4165,"mutability":"mutable","name":"_balances","nameLocation":"1229:9:23","nodeType":"VariableDeclaration","scope":4657,"src":"1185:53:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4164,"keyName":"account","keyNameLocation":"1201:7:23","keyType":{"id":4162,"name":"address","nodeType":"ElementaryTypeName","src":"1193:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1185:35:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4163,"name":"uint256","nodeType":"ElementaryTypeName","src":"1212:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":4171,"mutability":"mutable","name":"_allowances","nameLocation":"1317:11:23","nodeType":"VariableDeclaration","scope":4657,"src":"1245:83:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":4170,"keyName":"account","keyNameLocation":"1261:7:23","keyType":{"id":4166,"name":"address","nodeType":"ElementaryTypeName","src":"1253:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1245:63:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4169,"keyName":"spender","keyNameLocation":"1288:7:23","keyType":{"id":4167,"name":"address","nodeType":"ElementaryTypeName","src":"1280:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1272:35:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1299:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":4173,"mutability":"mutable","name":"_totalSupply","nameLocation":"1351:12:23","nodeType":"VariableDeclaration","scope":4657,"src":"1335:28:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1335:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":4175,"mutability":"mutable","name":"_name","nameLocation":"1385:5:23","nodeType":"VariableDeclaration","scope":4657,"src":"1370:20:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":4174,"name":"string","nodeType":"ElementaryTypeName","src":"1370:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":4177,"mutability":"mutable","name":"_symbol","nameLocation":"1411:7:23","nodeType":"VariableDeclaration","scope":4657,"src":"1396:22:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":4176,"name":"string","nodeType":"ElementaryTypeName","src":"1396:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":4193,"nodeType":"Block","src":"1657:57:23","statements":[{"expression":{"id":4187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4185,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4175,"src":"1667:5:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4186,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4180,"src":"1675:5:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1667:13:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4188,"nodeType":"ExpressionStatement","src":"1667:13:23"},{"expression":{"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4189,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4177,"src":"1690:7:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4190,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"1700:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1690:17:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4192,"nodeType":"ExpressionStatement","src":"1690:17:23"}]},"documentation":{"id":4178,"nodeType":"StructuredDocumentation","src":"1425:171:23","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"id":4194,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4180,"mutability":"mutable","name":"name_","nameLocation":"1627:5:23","nodeType":"VariableDeclaration","scope":4194,"src":"1613:19:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4179,"name":"string","nodeType":"ElementaryTypeName","src":"1613:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4182,"mutability":"mutable","name":"symbol_","nameLocation":"1648:7:23","nodeType":"VariableDeclaration","scope":4194,"src":"1634:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4181,"name":"string","nodeType":"ElementaryTypeName","src":"1634:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1612:44:23"},"returnParameters":{"id":4184,"nodeType":"ParameterList","parameters":[],"src":"1657:0:23"},"scope":4657,"src":"1601:113:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4748],"body":{"id":4202,"nodeType":"Block","src":"1839:29:23","statements":[{"expression":{"id":4200,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4175,"src":"1856:5:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":4199,"id":4201,"nodeType":"Return","src":"1849:12:23"}]},"documentation":{"id":4195,"nodeType":"StructuredDocumentation","src":"1720:54:23","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":4203,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"1788:4:23","nodeType":"FunctionDefinition","parameters":{"id":4196,"nodeType":"ParameterList","parameters":[],"src":"1792:2:23"},"returnParameters":{"id":4199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4203,"src":"1824:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4197,"name":"string","nodeType":"ElementaryTypeName","src":"1824:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1823:15:23"},"scope":4657,"src":"1779:89:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4754],"body":{"id":4211,"nodeType":"Block","src":"2043:31:23","statements":[{"expression":{"id":4209,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4177,"src":"2060:7:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":4208,"id":4210,"nodeType":"Return","src":"2053:14:23"}]},"documentation":{"id":4204,"nodeType":"StructuredDocumentation","src":"1874:102:23","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":4212,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1990:6:23","nodeType":"FunctionDefinition","parameters":{"id":4205,"nodeType":"ParameterList","parameters":[],"src":"1996:2:23"},"returnParameters":{"id":4208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4212,"src":"2028:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4206,"name":"string","nodeType":"ElementaryTypeName","src":"2028:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2027:15:23"},"scope":4657,"src":"1981:93:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4760],"body":{"id":4220,"nodeType":"Block","src":"2763:26:23","statements":[{"expression":{"hexValue":"3138","id":4218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2780:2:23","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":4217,"id":4219,"nodeType":"Return","src":"2773:9:23"}]},"documentation":{"id":4213,"nodeType":"StructuredDocumentation","src":"2080:622:23","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":4221,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"2716:8:23","nodeType":"FunctionDefinition","parameters":{"id":4214,"nodeType":"ParameterList","parameters":[],"src":"2724:2:23"},"returnParameters":{"id":4217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4221,"src":"2756:5:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4215,"name":"uint8","nodeType":"ElementaryTypeName","src":"2756:5:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2755:7:23"},"scope":4657,"src":"2707:82:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4684],"body":{"id":4229,"nodeType":"Block","src":"2910:36:23","statements":[{"expression":{"id":4227,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4173,"src":"2927:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4226,"id":4228,"nodeType":"Return","src":"2920:19:23"}]},"documentation":{"id":4222,"nodeType":"StructuredDocumentation","src":"2795:49:23","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":4230,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"2858:11:23","nodeType":"FunctionDefinition","parameters":{"id":4223,"nodeType":"ParameterList","parameters":[],"src":"2869:2:23"},"returnParameters":{"id":4226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4230,"src":"2901:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4224,"name":"uint256","nodeType":"ElementaryTypeName","src":"2901:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2900:9:23"},"scope":4657,"src":"2849:97:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4692],"body":{"id":4242,"nodeType":"Block","src":"3078:42:23","statements":[{"expression":{"baseExpression":{"id":4238,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"3095:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4240,"indexExpression":{"id":4239,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"3105:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3095:18:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4237,"id":4241,"nodeType":"Return","src":"3088:25:23"}]},"documentation":{"id":4231,"nodeType":"StructuredDocumentation","src":"2952:47:23","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":4243,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3013:9:23","nodeType":"FunctionDefinition","parameters":{"id":4234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4233,"mutability":"mutable","name":"account","nameLocation":"3031:7:23","nodeType":"VariableDeclaration","scope":4243,"src":"3023:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4232,"name":"address","nodeType":"ElementaryTypeName","src":"3023:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3022:17:23"},"returnParameters":{"id":4237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4243,"src":"3069:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4235,"name":"uint256","nodeType":"ElementaryTypeName","src":"3069:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3068:9:23"},"scope":4657,"src":"3004:116:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4702],"body":{"id":4266,"nodeType":"Block","src":"3390:103:23","statements":[{"assignments":[4254],"declarations":[{"constant":false,"id":4254,"mutability":"mutable","name":"owner","nameLocation":"3408:5:23","nodeType":"VariableDeclaration","scope":4266,"src":"3400:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4253,"name":"address","nodeType":"ElementaryTypeName","src":"3400:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4257,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4255,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"3416:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3416:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3400:28:23"},{"expression":{"arguments":[{"id":4259,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"3448:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4260,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4246,"src":"3455:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4261,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4248,"src":"3459:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4258,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4387,"src":"3438:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4263,"nodeType":"ExpressionStatement","src":"3438:27:23"},{"expression":{"hexValue":"74727565","id":4264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3482:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4252,"id":4265,"nodeType":"Return","src":"3475:11:23"}]},"documentation":{"id":4244,"nodeType":"StructuredDocumentation","src":"3126:184:23","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`."},"functionSelector":"a9059cbb","id":4267,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3324:8:23","nodeType":"FunctionDefinition","parameters":{"id":4249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4246,"mutability":"mutable","name":"to","nameLocation":"3341:2:23","nodeType":"VariableDeclaration","scope":4267,"src":"3333:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4245,"name":"address","nodeType":"ElementaryTypeName","src":"3333:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4248,"mutability":"mutable","name":"value","nameLocation":"3353:5:23","nodeType":"VariableDeclaration","scope":4267,"src":"3345:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4247,"name":"uint256","nodeType":"ElementaryTypeName","src":"3345:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3332:27:23"},"returnParameters":{"id":4252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4267,"src":"3384:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4250,"name":"bool","nodeType":"ElementaryTypeName","src":"3384:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3383:6:23"},"scope":4657,"src":"3315:178:23","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4712],"body":{"id":4283,"nodeType":"Block","src":"3640:51:23","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":4277,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4171,"src":"3657:11:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":4279,"indexExpression":{"id":4278,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"3669:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3657:18:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4281,"indexExpression":{"id":4280,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4272,"src":"3676:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3657:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4276,"id":4282,"nodeType":"Return","src":"3650:34:23"}]},"documentation":{"id":4268,"nodeType":"StructuredDocumentation","src":"3499:47:23","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":4284,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3560:9:23","nodeType":"FunctionDefinition","parameters":{"id":4273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4270,"mutability":"mutable","name":"owner","nameLocation":"3578:5:23","nodeType":"VariableDeclaration","scope":4284,"src":"3570:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4269,"name":"address","nodeType":"ElementaryTypeName","src":"3570:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4272,"mutability":"mutable","name":"spender","nameLocation":"3593:7:23","nodeType":"VariableDeclaration","scope":4284,"src":"3585:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4271,"name":"address","nodeType":"ElementaryTypeName","src":"3585:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3569:32:23"},"returnParameters":{"id":4276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4284,"src":"3631:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4274,"name":"uint256","nodeType":"ElementaryTypeName","src":"3631:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3630:9:23"},"scope":4657,"src":"3551:140:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4722],"body":{"id":4307,"nodeType":"Block","src":"4077:107:23","statements":[{"assignments":[4295],"declarations":[{"constant":false,"id":4295,"mutability":"mutable","name":"owner","nameLocation":"4095:5:23","nodeType":"VariableDeclaration","scope":4307,"src":"4087:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4294,"name":"address","nodeType":"ElementaryTypeName","src":"4087:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4296,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"4103:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4087:28:23"},{"expression":{"arguments":[{"id":4300,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4295,"src":"4134:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4301,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4287,"src":"4141:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"4150:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4299,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[4548,4608],"referencedDeclaration":4548,"src":"4125:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4125:31:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4304,"nodeType":"ExpressionStatement","src":"4125:31:23"},{"expression":{"hexValue":"74727565","id":4305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4173:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4293,"id":4306,"nodeType":"Return","src":"4166:11:23"}]},"documentation":{"id":4285,"nodeType":"StructuredDocumentation","src":"3697:296:23","text":" @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":4308,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4007:7:23","nodeType":"FunctionDefinition","parameters":{"id":4290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4287,"mutability":"mutable","name":"spender","nameLocation":"4023:7:23","nodeType":"VariableDeclaration","scope":4308,"src":"4015:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4286,"name":"address","nodeType":"ElementaryTypeName","src":"4015:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4289,"mutability":"mutable","name":"value","nameLocation":"4040:5:23","nodeType":"VariableDeclaration","scope":4308,"src":"4032:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4288,"name":"uint256","nodeType":"ElementaryTypeName","src":"4032:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4014:32:23"},"returnParameters":{"id":4293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4308,"src":"4071:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4291,"name":"bool","nodeType":"ElementaryTypeName","src":"4071:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4070:6:23"},"scope":4657,"src":"3998:186:23","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4734],"body":{"id":4339,"nodeType":"Block","src":"4869:151:23","statements":[{"assignments":[4321],"declarations":[{"constant":false,"id":4321,"mutability":"mutable","name":"spender","nameLocation":"4887:7:23","nodeType":"VariableDeclaration","scope":4339,"src":"4879:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4320,"name":"address","nodeType":"ElementaryTypeName","src":"4879:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4324,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4322,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"4897:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4897:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4879:30:23"},{"expression":{"arguments":[{"id":4326,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4311,"src":"4935:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4327,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4321,"src":"4941:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4328,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4315,"src":"4950:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4325,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4656,"src":"4919:15:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:37:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4330,"nodeType":"ExpressionStatement","src":"4919:37:23"},{"expression":{"arguments":[{"id":4332,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4311,"src":"4976:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4333,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4313,"src":"4982:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4334,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4315,"src":"4986:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4331,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4387,"src":"4966:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4966:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4336,"nodeType":"ExpressionStatement","src":"4966:26:23"},{"expression":{"hexValue":"74727565","id":4337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5009:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4319,"id":4338,"nodeType":"Return","src":"5002:11:23"}]},"documentation":{"id":4309,"nodeType":"StructuredDocumentation","src":"4190:581:23","text":" @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`."},"functionSelector":"23b872dd","id":4340,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4785:12:23","nodeType":"FunctionDefinition","parameters":{"id":4316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4311,"mutability":"mutable","name":"from","nameLocation":"4806:4:23","nodeType":"VariableDeclaration","scope":4340,"src":"4798:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4310,"name":"address","nodeType":"ElementaryTypeName","src":"4798:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4313,"mutability":"mutable","name":"to","nameLocation":"4820:2:23","nodeType":"VariableDeclaration","scope":4340,"src":"4812:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4312,"name":"address","nodeType":"ElementaryTypeName","src":"4812:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4315,"mutability":"mutable","name":"value","nameLocation":"4832:5:23","nodeType":"VariableDeclaration","scope":4340,"src":"4824:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4824:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4797:41:23"},"returnParameters":{"id":4319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4340,"src":"4863:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4317,"name":"bool","nodeType":"ElementaryTypeName","src":"4863:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4862:6:23"},"scope":4657,"src":"4776:244:23","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":4386,"nodeType":"Block","src":"5462:231:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4350,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4343,"src":"5476:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5492:1:23","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":4352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5484:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4351,"name":"address","nodeType":"ElementaryTypeName","src":"5484:7:23","typeDescriptions":{}}},"id":4354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5484:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5476:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4364,"nodeType":"IfStatement","src":"5472:86:23","trueBody":{"id":4363,"nodeType":"Block","src":"5496:62:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":4359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5544:1:23","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":4358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5536:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4357,"name":"address","nodeType":"ElementaryTypeName","src":"5536:7:23","typeDescriptions":{}}},"id":4360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5536:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4356,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"5517:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":4361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5517:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4362,"nodeType":"RevertStatement","src":"5510:37:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4365,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4345,"src":"5571:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5585:1:23","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":4367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5577:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4366,"name":"address","nodeType":"ElementaryTypeName","src":"5577:7:23","typeDescriptions":{}}},"id":4369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5577:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5571:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4379,"nodeType":"IfStatement","src":"5567:86:23","trueBody":{"id":4378,"nodeType":"Block","src":"5589:64:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":4374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5639:1:23","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":4373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5631:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4372,"name":"address","nodeType":"ElementaryTypeName","src":"5631:7:23","typeDescriptions":{}}},"id":4375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5631:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4371,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"5610:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":4376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5610:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4377,"nodeType":"RevertStatement","src":"5603:39:23"}]}},{"expression":{"arguments":[{"id":4381,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4343,"src":"5670:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4382,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4345,"src":"5676:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4383,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4347,"src":"5680:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4380,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"5662:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5662:24:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4385,"nodeType":"ExpressionStatement","src":"5662:24:23"}]},"documentation":{"id":4341,"nodeType":"StructuredDocumentation","src":"5026:362:23","text":" @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":4387,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"5402:9:23","nodeType":"FunctionDefinition","parameters":{"id":4348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4343,"mutability":"mutable","name":"from","nameLocation":"5420:4:23","nodeType":"VariableDeclaration","scope":4387,"src":"5412:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4342,"name":"address","nodeType":"ElementaryTypeName","src":"5412:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4345,"mutability":"mutable","name":"to","nameLocation":"5434:2:23","nodeType":"VariableDeclaration","scope":4387,"src":"5426:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4344,"name":"address","nodeType":"ElementaryTypeName","src":"5426:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4347,"mutability":"mutable","name":"value","nameLocation":"5446:5:23","nodeType":"VariableDeclaration","scope":4387,"src":"5438:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4346,"name":"uint256","nodeType":"ElementaryTypeName","src":"5438:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5411:41:23"},"returnParameters":{"id":4349,"nodeType":"ParameterList","parameters":[],"src":"5462:0:23"},"scope":4657,"src":"5393:300:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4463,"nodeType":"Block","src":"6083:1032:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4397,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4390,"src":"6097:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6113:1:23","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":4399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6105:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4398,"name":"address","nodeType":"ElementaryTypeName","src":"6105:7:23","typeDescriptions":{}}},"id":4401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6105:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6097:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4434,"nodeType":"Block","src":"6271:362:23","statements":[{"assignments":[4409],"declarations":[{"constant":false,"id":4409,"mutability":"mutable","name":"fromBalance","nameLocation":"6293:11:23","nodeType":"VariableDeclaration","scope":4434,"src":"6285:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4408,"name":"uint256","nodeType":"ElementaryTypeName","src":"6285:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4413,"initialValue":{"baseExpression":{"id":4410,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"6307:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4412,"indexExpression":{"id":4411,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4390,"src":"6317:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6307:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6285:37:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4414,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"6340:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4415,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"6354:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6340:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4424,"nodeType":"IfStatement","src":"6336:115:23","trueBody":{"id":4423,"nodeType":"Block","src":"6361:90:23","statements":[{"errorCall":{"arguments":[{"id":4418,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4390,"src":"6411:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4419,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"6417:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4420,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"6430:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4417,"name":"ERC20InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3277,"src":"6386:24:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":4421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6386:50:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4422,"nodeType":"RevertStatement","src":"6379:57:23"}]}},{"id":4433,"nodeType":"UncheckedBlock","src":"6464:159:23","statements":[{"expression":{"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4425,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"6571:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4427,"indexExpression":{"id":4426,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4390,"src":"6581:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6571:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4428,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"6589:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4429,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"6603:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6589:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6571:37:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4432,"nodeType":"ExpressionStatement","src":"6571:37:23"}]}]},"id":4435,"nodeType":"IfStatement","src":"6093:540:23","trueBody":{"id":4407,"nodeType":"Block","src":"6117:148:23","statements":[{"expression":{"id":4405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4403,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4173,"src":"6233:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4404,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"6249:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6233:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4406,"nodeType":"ExpressionStatement","src":"6233:21:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4436,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"6647:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6661:1:23","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":4438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6653:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4437,"name":"address","nodeType":"ElementaryTypeName","src":"6653:7:23","typeDescriptions":{}}},"id":4440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6653:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6647:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4455,"nodeType":"Block","src":"6862:206:23","statements":[{"id":4454,"nodeType":"UncheckedBlock","src":"6876:182:23","statements":[{"expression":{"id":4452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4448,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"7021:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4450,"indexExpression":{"id":4449,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"7031:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7021:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4451,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"7038:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7021:22:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4453,"nodeType":"ExpressionStatement","src":"7021:22:23"}]}]},"id":4456,"nodeType":"IfStatement","src":"6643:425:23","trueBody":{"id":4447,"nodeType":"Block","src":"6665:191:23","statements":[{"id":4446,"nodeType":"UncheckedBlock","src":"6679:167:23","statements":[{"expression":{"id":4444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4442,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4173,"src":"6810:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":4443,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"6826:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6810:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4445,"nodeType":"ExpressionStatement","src":"6810:21:23"}]}]}},{"eventCall":{"arguments":[{"id":4458,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4390,"src":"7092:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4459,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"7098:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4460,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"7102:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4457,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4669,"src":"7083:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7083:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4462,"nodeType":"EmitStatement","src":"7078:30:23"}]},"documentation":{"id":4388,"nodeType":"StructuredDocumentation","src":"5699:304:23","text":" @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event."},"id":4464,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"6017:7:23","nodeType":"FunctionDefinition","parameters":{"id":4395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4390,"mutability":"mutable","name":"from","nameLocation":"6033:4:23","nodeType":"VariableDeclaration","scope":4464,"src":"6025:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4389,"name":"address","nodeType":"ElementaryTypeName","src":"6025:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4392,"mutability":"mutable","name":"to","nameLocation":"6047:2:23","nodeType":"VariableDeclaration","scope":4464,"src":"6039:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4391,"name":"address","nodeType":"ElementaryTypeName","src":"6039:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4394,"mutability":"mutable","name":"value","nameLocation":"6059:5:23","nodeType":"VariableDeclaration","scope":4464,"src":"6051:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4393,"name":"uint256","nodeType":"ElementaryTypeName","src":"6051:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6024:41:23"},"returnParameters":{"id":4396,"nodeType":"ParameterList","parameters":[],"src":"6083:0:23"},"scope":4657,"src":"6008:1107:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4496,"nodeType":"Block","src":"7514:152:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4472,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4467,"src":"7528:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7547:1:23","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":4474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7539:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4473,"name":"address","nodeType":"ElementaryTypeName","src":"7539:7:23","typeDescriptions":{}}},"id":4476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7539:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7528:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4486,"nodeType":"IfStatement","src":"7524:91:23","trueBody":{"id":4485,"nodeType":"Block","src":"7551:64:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":4481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7601:1:23","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":4480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7593:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4479,"name":"address","nodeType":"ElementaryTypeName","src":"7593:7:23","typeDescriptions":{}}},"id":4482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7593:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4478,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"7572:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":4483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7572:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4484,"nodeType":"RevertStatement","src":"7565:39:23"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":4490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7640:1:23","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":4489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7632:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4488,"name":"address","nodeType":"ElementaryTypeName","src":"7632:7:23","typeDescriptions":{}}},"id":4491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7632:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4492,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4467,"src":"7644:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4493,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4469,"src":"7653:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4487,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"7624:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7624:35:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4495,"nodeType":"ExpressionStatement","src":"7624:35:23"}]},"documentation":{"id":4465,"nodeType":"StructuredDocumentation","src":"7121:332:23","text":" @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":4497,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"7467:5:23","nodeType":"FunctionDefinition","parameters":{"id":4470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4467,"mutability":"mutable","name":"account","nameLocation":"7481:7:23","nodeType":"VariableDeclaration","scope":4497,"src":"7473:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4466,"name":"address","nodeType":"ElementaryTypeName","src":"7473:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4469,"mutability":"mutable","name":"value","nameLocation":"7498:5:23","nodeType":"VariableDeclaration","scope":4497,"src":"7490:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4468,"name":"uint256","nodeType":"ElementaryTypeName","src":"7490:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7472:32:23"},"returnParameters":{"id":4471,"nodeType":"ParameterList","parameters":[],"src":"7514:0:23"},"scope":4657,"src":"7458:208:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4529,"nodeType":"Block","src":"8040:150:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4505,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4500,"src":"8054:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8073:1:23","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":4507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8065:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4506,"name":"address","nodeType":"ElementaryTypeName","src":"8065:7:23","typeDescriptions":{}}},"id":4509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8065:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8054:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4519,"nodeType":"IfStatement","src":"8050:89:23","trueBody":{"id":4518,"nodeType":"Block","src":"8077:62:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":4514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8125:1:23","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":4513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8117:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4512,"name":"address","nodeType":"ElementaryTypeName","src":"8117:7:23","typeDescriptions":{}}},"id":4515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8117:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4511,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"8098:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":4516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8098:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4517,"nodeType":"RevertStatement","src":"8091:37:23"}]}},{"expression":{"arguments":[{"id":4521,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4500,"src":"8156:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":4524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8173:1:23","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":4523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8165:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4522,"name":"address","nodeType":"ElementaryTypeName","src":"8165:7:23","typeDescriptions":{}}},"id":4525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8165:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4526,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4502,"src":"8177:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4520,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"8148:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8148:35:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4528,"nodeType":"ExpressionStatement","src":"8148:35:23"}]},"documentation":{"id":4498,"nodeType":"StructuredDocumentation","src":"7672:307:23","text":" @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"},"id":4530,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"7993:5:23","nodeType":"FunctionDefinition","parameters":{"id":4503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4500,"mutability":"mutable","name":"account","nameLocation":"8007:7:23","nodeType":"VariableDeclaration","scope":4530,"src":"7999:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4499,"name":"address","nodeType":"ElementaryTypeName","src":"7999:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4502,"mutability":"mutable","name":"value","nameLocation":"8024:5:23","nodeType":"VariableDeclaration","scope":4530,"src":"8016:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4501,"name":"uint256","nodeType":"ElementaryTypeName","src":"8016:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7998:32:23"},"returnParameters":{"id":4504,"nodeType":"ParameterList","parameters":[],"src":"8040:0:23"},"scope":4657,"src":"7984:206:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4547,"nodeType":"Block","src":"8800:54:23","statements":[{"expression":{"arguments":[{"id":4541,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4533,"src":"8819:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4542,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4535,"src":"8826:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4543,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"8835:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":4544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8842:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4540,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[4548,4608],"referencedDeclaration":4608,"src":"8810:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":4545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8810:37:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4546,"nodeType":"ExpressionStatement","src":"8810:37:23"}]},"documentation":{"id":4531,"nodeType":"StructuredDocumentation","src":"8196:525:23","text":" @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":4548,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"8735:8:23","nodeType":"FunctionDefinition","parameters":{"id":4538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4533,"mutability":"mutable","name":"owner","nameLocation":"8752:5:23","nodeType":"VariableDeclaration","scope":4548,"src":"8744:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4532,"name":"address","nodeType":"ElementaryTypeName","src":"8744:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4535,"mutability":"mutable","name":"spender","nameLocation":"8767:7:23","nodeType":"VariableDeclaration","scope":4548,"src":"8759:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4534,"name":"address","nodeType":"ElementaryTypeName","src":"8759:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4537,"mutability":"mutable","name":"value","nameLocation":"8784:5:23","nodeType":"VariableDeclaration","scope":4548,"src":"8776:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4536,"name":"uint256","nodeType":"ElementaryTypeName","src":"8776:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8743:47:23"},"returnParameters":{"id":4539,"nodeType":"ParameterList","parameters":[],"src":"8800:0:23"},"scope":4657,"src":"8726:128:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4607,"nodeType":"Block","src":"9799:334:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4560,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"9813:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9830:1:23","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":4562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9822:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4561,"name":"address","nodeType":"ElementaryTypeName","src":"9822:7:23","typeDescriptions":{}}},"id":4564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9822:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9813:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4574,"nodeType":"IfStatement","src":"9809:89:23","trueBody":{"id":4573,"nodeType":"Block","src":"9834:64:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":4569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9884:1:23","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":4568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9876:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4567,"name":"address","nodeType":"ElementaryTypeName","src":"9876:7:23","typeDescriptions":{}}},"id":4570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9876:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4566,"name":"ERC20InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3301,"src":"9855:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":4571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9855:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4572,"nodeType":"RevertStatement","src":"9848:39:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4575,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"9911:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9930:1:23","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":4577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9922:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4576,"name":"address","nodeType":"ElementaryTypeName","src":"9922:7:23","typeDescriptions":{}}},"id":4579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9922:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9911:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4589,"nodeType":"IfStatement","src":"9907:90:23","trueBody":{"id":4588,"nodeType":"Block","src":"9934:63:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":4584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9983:1:23","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":4583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9975:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4582,"name":"address","nodeType":"ElementaryTypeName","src":"9975:7:23","typeDescriptions":{}}},"id":4585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9975:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4581,"name":"ERC20InvalidSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3306,"src":"9955:19:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":4586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9955:31:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4587,"nodeType":"RevertStatement","src":"9948:38:23"}]}},{"expression":{"id":4596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4590,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4171,"src":"10006:11:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":4593,"indexExpression":{"id":4591,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"10018:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10006:18:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4594,"indexExpression":{"id":4592,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"10025:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10006:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4595,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"10036:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10006:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4597,"nodeType":"ExpressionStatement","src":"10006:35:23"},{"condition":{"id":4598,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"10055:9:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4606,"nodeType":"IfStatement","src":"10051:76:23","trueBody":{"id":4605,"nodeType":"Block","src":"10066:61:23","statements":[{"eventCall":{"arguments":[{"id":4600,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"10094:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4601,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"10101:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4602,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"10110:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4599,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4678,"src":"10085:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10085:31:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4604,"nodeType":"EmitStatement","src":"10080:36:23"}]}}]},"documentation":{"id":4549,"nodeType":"StructuredDocumentation","src":"8860:836:23","text":" @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n     super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}."},"id":4608,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"9710:8:23","nodeType":"FunctionDefinition","parameters":{"id":4558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4551,"mutability":"mutable","name":"owner","nameLocation":"9727:5:23","nodeType":"VariableDeclaration","scope":4608,"src":"9719:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4550,"name":"address","nodeType":"ElementaryTypeName","src":"9719:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4553,"mutability":"mutable","name":"spender","nameLocation":"9742:7:23","nodeType":"VariableDeclaration","scope":4608,"src":"9734:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4552,"name":"address","nodeType":"ElementaryTypeName","src":"9734:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4555,"mutability":"mutable","name":"value","nameLocation":"9759:5:23","nodeType":"VariableDeclaration","scope":4608,"src":"9751:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4554,"name":"uint256","nodeType":"ElementaryTypeName","src":"9751:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4557,"mutability":"mutable","name":"emitEvent","nameLocation":"9771:9:23","nodeType":"VariableDeclaration","scope":4608,"src":"9766:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4556,"name":"bool","nodeType":"ElementaryTypeName","src":"9766:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9718:63:23"},"returnParameters":{"id":4559,"nodeType":"ParameterList","parameters":[],"src":"9799:0:23"},"scope":4657,"src":"9701:432:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4655,"nodeType":"Block","src":"10504:388:23","statements":[{"assignments":[4619],"declarations":[{"constant":false,"id":4619,"mutability":"mutable","name":"currentAllowance","nameLocation":"10522:16:23","nodeType":"VariableDeclaration","scope":4655,"src":"10514:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4618,"name":"uint256","nodeType":"ElementaryTypeName","src":"10514:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4624,"initialValue":{"arguments":[{"id":4621,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4611,"src":"10551:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4622,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4613,"src":"10558:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4620,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4284,"src":"10541:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10541:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10514:52:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4625,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4619,"src":"10580:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":4628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10605:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4627,"name":"uint256","nodeType":"ElementaryTypeName","src":"10605:7:23","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":4626,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10600:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10600:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":4630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10614:3:23","memberName":"max","nodeType":"MemberAccess","src":"10600:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10580:37:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4654,"nodeType":"IfStatement","src":"10576:310:23","trueBody":{"id":4653,"nodeType":"Block","src":"10619:267:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4632,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4619,"src":"10637:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4633,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4615,"src":"10656:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10637:24:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4642,"nodeType":"IfStatement","src":"10633:130:23","trueBody":{"id":4641,"nodeType":"Block","src":"10663:100:23","statements":[{"errorCall":{"arguments":[{"id":4636,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4613,"src":"10715:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4637,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4619,"src":"10724:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4638,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4615,"src":"10742:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4635,"name":"ERC20InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"10688:26:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":4639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10688:60:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4640,"nodeType":"RevertStatement","src":"10681:67:23"}]}},{"id":4652,"nodeType":"UncheckedBlock","src":"10776:100:23","statements":[{"expression":{"arguments":[{"id":4644,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4611,"src":"10813:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4645,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4613,"src":"10820:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4646,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4619,"src":"10829:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4647,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4615,"src":"10848:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10829:24:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":4649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10855:5:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4643,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[4548,4608],"referencedDeclaration":4608,"src":"10804:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":4650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10804:57:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4651,"nodeType":"ExpressionStatement","src":"10804:57:23"}]}]}}]},"documentation":{"id":4609,"nodeType":"StructuredDocumentation","src":"10139:271:23","text":" @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event."},"id":4656,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10424:15:23","nodeType":"FunctionDefinition","parameters":{"id":4616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4611,"mutability":"mutable","name":"owner","nameLocation":"10448:5:23","nodeType":"VariableDeclaration","scope":4656,"src":"10440:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4610,"name":"address","nodeType":"ElementaryTypeName","src":"10440:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4613,"mutability":"mutable","name":"spender","nameLocation":"10463:7:23","nodeType":"VariableDeclaration","scope":4656,"src":"10455:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4612,"name":"address","nodeType":"ElementaryTypeName","src":"10455:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4615,"mutability":"mutable","name":"value","nameLocation":"10480:5:23","nodeType":"VariableDeclaration","scope":4656,"src":"10472:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4614,"name":"uint256","nodeType":"ElementaryTypeName","src":"10472:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10439:47:23"},"returnParameters":{"id":4617,"nodeType":"ParameterList","parameters":[],"src":"10504:0:23"},"scope":4657,"src":"10415:477:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":4658,"src":"1106:9788:23","usedErrors":[3277,3282,3287,3296,3301,3306],"usedEvents":[4669,4678]}],"src":"105:10790:23"},"id":23},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[4735]},"id":4736,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4659,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:24"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":4660,"nodeType":"StructuredDocumentation","src":"132:71:24","text":" @dev Interface of the ERC-20 standard as defined in the ERC."},"fullyImplemented":false,"id":4735,"linearizedBaseContracts":[4735],"name":"IERC20","nameLocation":"214:6:24","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":4661,"nodeType":"StructuredDocumentation","src":"227:158:24","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":4669,"name":"Transfer","nameLocation":"396:8:24","nodeType":"EventDefinition","parameters":{"id":4668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4663,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"421:4:24","nodeType":"VariableDeclaration","scope":4669,"src":"405:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4662,"name":"address","nodeType":"ElementaryTypeName","src":"405:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4665,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"443:2:24","nodeType":"VariableDeclaration","scope":4669,"src":"427:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4664,"name":"address","nodeType":"ElementaryTypeName","src":"427:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4667,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"455:5:24","nodeType":"VariableDeclaration","scope":4669,"src":"447:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4666,"name":"uint256","nodeType":"ElementaryTypeName","src":"447:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"404:57:24"},"src":"390:72:24"},{"anonymous":false,"documentation":{"id":4670,"nodeType":"StructuredDocumentation","src":"468:148:24","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":4678,"name":"Approval","nameLocation":"627:8:24","nodeType":"EventDefinition","parameters":{"id":4677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4672,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"652:5:24","nodeType":"VariableDeclaration","scope":4678,"src":"636:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4671,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4674,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"675:7:24","nodeType":"VariableDeclaration","scope":4678,"src":"659:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4673,"name":"address","nodeType":"ElementaryTypeName","src":"659:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4676,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"692:5:24","nodeType":"VariableDeclaration","scope":4678,"src":"684:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4675,"name":"uint256","nodeType":"ElementaryTypeName","src":"684:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"635:63:24"},"src":"621:78:24"},{"documentation":{"id":4679,"nodeType":"StructuredDocumentation","src":"705:65:24","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","id":4684,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"784:11:24","nodeType":"FunctionDefinition","parameters":{"id":4680,"nodeType":"ParameterList","parameters":[],"src":"795:2:24"},"returnParameters":{"id":4683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4684,"src":"821:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4681,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"820:9:24"},"scope":4735,"src":"775:55:24","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4685,"nodeType":"StructuredDocumentation","src":"836:71:24","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","id":4692,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:24","nodeType":"FunctionDefinition","parameters":{"id":4688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4687,"mutability":"mutable","name":"account","nameLocation":"939:7:24","nodeType":"VariableDeclaration","scope":4692,"src":"931:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4686,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:24"},"returnParameters":{"id":4691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4692,"src":"971:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4689,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:24"},"scope":4735,"src":"912:68:24","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4693,"nodeType":"StructuredDocumentation","src":"986:213:24","text":" @dev Moves a `value` amount of 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":4702,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1213:8:24","nodeType":"FunctionDefinition","parameters":{"id":4698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4695,"mutability":"mutable","name":"to","nameLocation":"1230:2:24","nodeType":"VariableDeclaration","scope":4702,"src":"1222:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4694,"name":"address","nodeType":"ElementaryTypeName","src":"1222:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4697,"mutability":"mutable","name":"value","nameLocation":"1242:5:24","nodeType":"VariableDeclaration","scope":4702,"src":"1234:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4696,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1221:27:24"},"returnParameters":{"id":4701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4702,"src":"1267:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4699,"name":"bool","nodeType":"ElementaryTypeName","src":"1267:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1266:6:24"},"scope":4735,"src":"1204:69:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4703,"nodeType":"StructuredDocumentation","src":"1279:264:24","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":4712,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1557:9:24","nodeType":"FunctionDefinition","parameters":{"id":4708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4705,"mutability":"mutable","name":"owner","nameLocation":"1575:5:24","nodeType":"VariableDeclaration","scope":4712,"src":"1567:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4704,"name":"address","nodeType":"ElementaryTypeName","src":"1567:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4707,"mutability":"mutable","name":"spender","nameLocation":"1590:7:24","nodeType":"VariableDeclaration","scope":4712,"src":"1582:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4706,"name":"address","nodeType":"ElementaryTypeName","src":"1582:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1566:32:24"},"returnParameters":{"id":4711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4712,"src":"1622:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4709,"name":"uint256","nodeType":"ElementaryTypeName","src":"1622:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1621:9:24"},"scope":4735,"src":"1548:83:24","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4713,"nodeType":"StructuredDocumentation","src":"1637:667:24","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n 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":4722,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2318:7:24","nodeType":"FunctionDefinition","parameters":{"id":4718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4715,"mutability":"mutable","name":"spender","nameLocation":"2334:7:24","nodeType":"VariableDeclaration","scope":4722,"src":"2326:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4714,"name":"address","nodeType":"ElementaryTypeName","src":"2326:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4717,"mutability":"mutable","name":"value","nameLocation":"2351:5:24","nodeType":"VariableDeclaration","scope":4722,"src":"2343:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4716,"name":"uint256","nodeType":"ElementaryTypeName","src":"2343:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2325:32:24"},"returnParameters":{"id":4721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4722,"src":"2376:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4719,"name":"bool","nodeType":"ElementaryTypeName","src":"2376:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2375:6:24"},"scope":4735,"src":"2309:73:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4723,"nodeType":"StructuredDocumentation","src":"2388:297:24","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` 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":4734,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2699:12:24","nodeType":"FunctionDefinition","parameters":{"id":4730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4725,"mutability":"mutable","name":"from","nameLocation":"2720:4:24","nodeType":"VariableDeclaration","scope":4734,"src":"2712:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4724,"name":"address","nodeType":"ElementaryTypeName","src":"2712:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4727,"mutability":"mutable","name":"to","nameLocation":"2734:2:24","nodeType":"VariableDeclaration","scope":4734,"src":"2726:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4726,"name":"address","nodeType":"ElementaryTypeName","src":"2726:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4729,"mutability":"mutable","name":"value","nameLocation":"2746:5:24","nodeType":"VariableDeclaration","scope":4734,"src":"2738:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4728,"name":"uint256","nodeType":"ElementaryTypeName","src":"2738:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2711:41:24"},"returnParameters":{"id":4733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4734,"src":"2771:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4731,"name":"bool","nodeType":"ElementaryTypeName","src":"2771:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2770:6:24"},"scope":4735,"src":"2690:87:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4736,"src":"204:2575:24","usedErrors":[],"usedEvents":[4669,4678]}],"src":"106:2674:24"},"id":24},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[4735],"IERC20Metadata":[4761]},"id":4762,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4737,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"125:24:25"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":4739,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4762,"sourceUnit":4736,"src":"151:37:25","symbolAliases":[{"foreign":{"id":4738,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"159:6:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4741,"name":"IERC20","nameLocations":["306:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"306:6:25"},"id":4742,"nodeType":"InheritanceSpecifier","src":"306:6:25"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":4740,"nodeType":"StructuredDocumentation","src":"190:87:25","text":" @dev Interface for the optional metadata functions from the ERC-20 standard."},"fullyImplemented":false,"id":4761,"linearizedBaseContracts":[4761,4735],"name":"IERC20Metadata","nameLocation":"288:14:25","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4743,"nodeType":"StructuredDocumentation","src":"319:54:25","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":4748,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"387:4:25","nodeType":"FunctionDefinition","parameters":{"id":4744,"nodeType":"ParameterList","parameters":[],"src":"391:2:25"},"returnParameters":{"id":4747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4748,"src":"417:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4745,"name":"string","nodeType":"ElementaryTypeName","src":"417:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"416:15:25"},"scope":4761,"src":"378:54:25","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4749,"nodeType":"StructuredDocumentation","src":"438:56:25","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":4754,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"508:6:25","nodeType":"FunctionDefinition","parameters":{"id":4750,"nodeType":"ParameterList","parameters":[],"src":"514:2:25"},"returnParameters":{"id":4753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4754,"src":"540:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4751,"name":"string","nodeType":"ElementaryTypeName","src":"540:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"539:15:25"},"scope":4761,"src":"499:56:25","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4755,"nodeType":"StructuredDocumentation","src":"561:65:25","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":4760,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"640:8:25","nodeType":"FunctionDefinition","parameters":{"id":4756,"nodeType":"ParameterList","parameters":[],"src":"648:2:25"},"returnParameters":{"id":4759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4760,"src":"674:5:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4757,"name":"uint8","nodeType":"ElementaryTypeName","src":"674:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"673:7:25"},"scope":4761,"src":"631:50:25","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4762,"src":"278:405:25","usedErrors":[],"usedEvents":[4669,4678]}],"src":"125:559:25"},"id":25},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[6628],"IERC1363":[3226],"IERC20":[4735],"SafeERC20":[5172]},"id":5173,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4763,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:26"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":4765,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5173,"sourceUnit":4736,"src":"141:37:26","symbolAliases":[{"foreign":{"id":4764,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"149:6:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1363.sol","file":"../../../interfaces/IERC1363.sol","id":4767,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5173,"sourceUnit":3227,"src":"179:58:26","symbolAliases":[{"foreign":{"id":4766,"name":"IERC1363","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3226,"src":"187:8:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":4769,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5173,"sourceUnit":6629,"src":"238:51:26","symbolAliases":[{"foreign":{"id":4768,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6628,"src":"246:7:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":4770,"nodeType":"StructuredDocumentation","src":"291:458:26","text":" @title SafeERC20\n @dev Wrappers around ERC-20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":5172,"linearizedBaseContracts":[5172],"name":"SafeERC20","nameLocation":"758:9:26","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4771,"nodeType":"StructuredDocumentation","src":"774:65:26","text":" @dev An operation with an ERC-20 token failed."},"errorSelector":"5274afe7","id":4775,"name":"SafeERC20FailedOperation","nameLocation":"850:24:26","nodeType":"ErrorDefinition","parameters":{"id":4774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4773,"mutability":"mutable","name":"token","nameLocation":"883:5:26","nodeType":"VariableDeclaration","scope":4775,"src":"875:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4772,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"874:15:26"},"src":"844:46:26"},{"documentation":{"id":4776,"nodeType":"StructuredDocumentation","src":"896:71:26","text":" @dev Indicates a failed `decreaseAllowance` request."},"errorSelector":"e570110f","id":4784,"name":"SafeERC20FailedDecreaseAllowance","nameLocation":"978:32:26","nodeType":"ErrorDefinition","parameters":{"id":4783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4778,"mutability":"mutable","name":"spender","nameLocation":"1019:7:26","nodeType":"VariableDeclaration","scope":4784,"src":"1011:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4777,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4780,"mutability":"mutable","name":"currentAllowance","nameLocation":"1036:16:26","nodeType":"VariableDeclaration","scope":4784,"src":"1028:24:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4779,"name":"uint256","nodeType":"ElementaryTypeName","src":"1028:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4782,"mutability":"mutable","name":"requestedDecrease","nameLocation":"1062:17:26","nodeType":"VariableDeclaration","scope":4784,"src":"1054:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4781,"name":"uint256","nodeType":"ElementaryTypeName","src":"1054:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:70:26"},"src":"972:109:26"},{"body":{"id":4807,"nodeType":"Block","src":"1343:88:26","statements":[{"expression":{"arguments":[{"id":4796,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4788,"src":"1373:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":4799,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4788,"src":"1395:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":4800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1401:8:26","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4702,"src":"1395:14:26","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":4801,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"1412:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4802,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4792,"src":"1416:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4803,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1411:11:26","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}],"expression":{"id":4797,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1380:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1384:10:26","memberName":"encodeCall","nodeType":"MemberAccess","src":"1380:14:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1380:43:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4795,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5130,"src":"1353:19:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":4805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1353:71:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4806,"nodeType":"ExpressionStatement","src":"1353:71:26"}]},"documentation":{"id":4785,"nodeType":"StructuredDocumentation","src":"1087:179:26","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":4808,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"1280:12:26","nodeType":"FunctionDefinition","parameters":{"id":4793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4788,"mutability":"mutable","name":"token","nameLocation":"1300:5:26","nodeType":"VariableDeclaration","scope":4808,"src":"1293:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},"typeName":{"id":4787,"nodeType":"UserDefinedTypeName","pathNode":{"id":4786,"name":"IERC20","nameLocations":["1293:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"1293:6:26"},"referencedDeclaration":4735,"src":"1293:6:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":4790,"mutability":"mutable","name":"to","nameLocation":"1315:2:26","nodeType":"VariableDeclaration","scope":4808,"src":"1307:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4789,"name":"address","nodeType":"ElementaryTypeName","src":"1307:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4792,"mutability":"mutable","name":"value","nameLocation":"1327:5:26","nodeType":"VariableDeclaration","scope":4808,"src":"1319:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4791,"name":"uint256","nodeType":"ElementaryTypeName","src":"1319:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1292:41:26"},"returnParameters":{"id":4794,"nodeType":"ParameterList","parameters":[],"src":"1343:0:26"},"scope":5172,"src":"1271:160:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4834,"nodeType":"Block","src":"1760:98:26","statements":[{"expression":{"arguments":[{"id":4822,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4812,"src":"1790:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":4825,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4812,"src":"1812:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":4826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1818:12:26","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4734,"src":"1812:18:26","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},{"components":[{"id":4827,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4814,"src":"1833:4:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4828,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4816,"src":"1839:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4829,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"1843:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4830,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1832:17:26","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}],"expression":{"id":4823,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1797:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1801:10:26","memberName":"encodeCall","nodeType":"MemberAccess","src":"1797:14:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1797:53:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4821,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5130,"src":"1770:19:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":4832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1770:81:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4833,"nodeType":"ExpressionStatement","src":"1770:81:26"}]},"documentation":{"id":4809,"nodeType":"StructuredDocumentation","src":"1437:228:26","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"id":4835,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1679:16:26","nodeType":"FunctionDefinition","parameters":{"id":4819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4812,"mutability":"mutable","name":"token","nameLocation":"1703:5:26","nodeType":"VariableDeclaration","scope":4835,"src":"1696:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},"typeName":{"id":4811,"nodeType":"UserDefinedTypeName","pathNode":{"id":4810,"name":"IERC20","nameLocations":["1696:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"1696:6:26"},"referencedDeclaration":4735,"src":"1696:6:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":4814,"mutability":"mutable","name":"from","nameLocation":"1718:4:26","nodeType":"VariableDeclaration","scope":4835,"src":"1710:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4813,"name":"address","nodeType":"ElementaryTypeName","src":"1710:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4816,"mutability":"mutable","name":"to","nameLocation":"1732:2:26","nodeType":"VariableDeclaration","scope":4835,"src":"1724:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4815,"name":"address","nodeType":"ElementaryTypeName","src":"1724:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4818,"mutability":"mutable","name":"value","nameLocation":"1744:5:26","nodeType":"VariableDeclaration","scope":4835,"src":"1736:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4817,"name":"uint256","nodeType":"ElementaryTypeName","src":"1736:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1695:55:26"},"returnParameters":{"id":4820,"nodeType":"ParameterList","parameters":[],"src":"1760:0:26"},"scope":5172,"src":"1670:188:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4865,"nodeType":"Block","src":"2600:139:26","statements":[{"assignments":[4847],"declarations":[{"constant":false,"id":4847,"mutability":"mutable","name":"oldAllowance","nameLocation":"2618:12:26","nodeType":"VariableDeclaration","scope":4865,"src":"2610:20:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4846,"name":"uint256","nodeType":"ElementaryTypeName","src":"2610:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4856,"initialValue":{"arguments":[{"arguments":[{"id":4852,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2657:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5172","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5172","typeString":"library SafeERC20"}],"id":4851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2649:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4850,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:26","typeDescriptions":{}}},"id":4853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2649:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4854,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4841,"src":"2664:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4848,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4839,"src":"2633:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":4849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2639:9:26","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4712,"src":"2633:15:26","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":4855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2633:39:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2610:62:26"},{"expression":{"arguments":[{"id":4858,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4839,"src":"2695:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},{"id":4859,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4841,"src":"2702:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4860,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4847,"src":"2711:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":4861,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"2726:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2711:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4857,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"2682:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2682:50:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4864,"nodeType":"ExpressionStatement","src":"2682:50:26"}]},"documentation":{"id":4836,"nodeType":"StructuredDocumentation","src":"1864:645:26","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful.\n IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \"client\"\n smart contract uses ERC-7674 to set temporary allowances, then the \"client\" smart contract should avoid using\n this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\n that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior."},"id":4866,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2523:21:26","nodeType":"FunctionDefinition","parameters":{"id":4844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4839,"mutability":"mutable","name":"token","nameLocation":"2552:5:26","nodeType":"VariableDeclaration","scope":4866,"src":"2545:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},"typeName":{"id":4838,"nodeType":"UserDefinedTypeName","pathNode":{"id":4837,"name":"IERC20","nameLocations":["2545:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"2545:6:26"},"referencedDeclaration":4735,"src":"2545:6:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":4841,"mutability":"mutable","name":"spender","nameLocation":"2567:7:26","nodeType":"VariableDeclaration","scope":4866,"src":"2559:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4840,"name":"address","nodeType":"ElementaryTypeName","src":"2559:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4843,"mutability":"mutable","name":"value","nameLocation":"2584:5:26","nodeType":"VariableDeclaration","scope":4866,"src":"2576:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4842,"name":"uint256","nodeType":"ElementaryTypeName","src":"2576:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2544:46:26"},"returnParameters":{"id":4845,"nodeType":"ParameterList","parameters":[],"src":"2600:0:26"},"scope":5172,"src":"2514:225:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4908,"nodeType":"Block","src":"3505:370:26","statements":[{"id":4907,"nodeType":"UncheckedBlock","src":"3515:354:26","statements":[{"assignments":[4878],"declarations":[{"constant":false,"id":4878,"mutability":"mutable","name":"currentAllowance","nameLocation":"3547:16:26","nodeType":"VariableDeclaration","scope":4907,"src":"3539:24:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4877,"name":"uint256","nodeType":"ElementaryTypeName","src":"3539:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4887,"initialValue":{"arguments":[{"arguments":[{"id":4883,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3590:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5172","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5172","typeString":"library SafeERC20"}],"id":4882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3582:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4881,"name":"address","nodeType":"ElementaryTypeName","src":"3582:7:26","typeDescriptions":{}}},"id":4884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3582:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4885,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"3597:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4879,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4870,"src":"3566:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":4880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3572:9:26","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4712,"src":"3566:15:26","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":4886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3566:39:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3539:66:26"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4888,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"3623:16:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4889,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4874,"src":"3642:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3623:36:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4898,"nodeType":"IfStatement","src":"3619:160:26","trueBody":{"id":4897,"nodeType":"Block","src":"3661:118:26","statements":[{"errorCall":{"arguments":[{"id":4892,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"3719:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4893,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"3728:16:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4894,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4874,"src":"3746:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4891,"name":"SafeERC20FailedDecreaseAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4784,"src":"3686:32:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":4895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3686:78:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4896,"nodeType":"RevertStatement","src":"3679:85:26"}]}},{"expression":{"arguments":[{"id":4900,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4870,"src":"3805:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},{"id":4901,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"3812:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4902,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"3821:16:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4903,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4874,"src":"3840:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3821:36:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4899,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"3792:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":4905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3792:66:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4906,"nodeType":"ExpressionStatement","src":"3792:66:26"}]}]},"documentation":{"id":4867,"nodeType":"StructuredDocumentation","src":"2745:657:26","text":" @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\n value, non-reverting calls are assumed to be successful.\n IMPORTANT: If the token implements ERC-7674 (ERC-20 with temporary allowance), and if the \"client\"\n smart contract uses ERC-7674 to set temporary allowances, then the \"client\" smart contract should avoid using\n this function. Performing a {safeIncreaseAllowance} or {safeDecreaseAllowance} operation on a token contract\n that has a non-zero temporary allowance (for that particular owner-spender) will result in unexpected behavior."},"id":4909,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"3416:21:26","nodeType":"FunctionDefinition","parameters":{"id":4875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4870,"mutability":"mutable","name":"token","nameLocation":"3445:5:26","nodeType":"VariableDeclaration","scope":4909,"src":"3438:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},"typeName":{"id":4869,"nodeType":"UserDefinedTypeName","pathNode":{"id":4868,"name":"IERC20","nameLocations":["3438:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"3438:6:26"},"referencedDeclaration":4735,"src":"3438:6:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":4872,"mutability":"mutable","name":"spender","nameLocation":"3460:7:26","nodeType":"VariableDeclaration","scope":4909,"src":"3452:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4871,"name":"address","nodeType":"ElementaryTypeName","src":"3452:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4874,"mutability":"mutable","name":"requestedDecrease","nameLocation":"3477:17:26","nodeType":"VariableDeclaration","scope":4909,"src":"3469:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4873,"name":"uint256","nodeType":"ElementaryTypeName","src":"3469:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3437:58:26"},"returnParameters":{"id":4876,"nodeType":"ParameterList","parameters":[],"src":"3505:0:26"},"scope":5172,"src":"3407:468:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4955,"nodeType":"Block","src":"4529:303:26","statements":[{"assignments":[4921],"declarations":[{"constant":false,"id":4921,"mutability":"mutable","name":"approvalCall","nameLocation":"4552:12:26","nodeType":"VariableDeclaration","scope":4955,"src":"4539:25:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4920,"name":"bytes","nodeType":"ElementaryTypeName","src":"4539:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4930,"initialValue":{"arguments":[{"expression":{"id":4924,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4913,"src":"4582:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4588:7:26","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4722,"src":"4582:13:26","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":4926,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4915,"src":"4598:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4917,"src":"4607:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4928,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4597:16:26","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}],"expression":{"id":4922,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4567:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4571:10:26","memberName":"encodeCall","nodeType":"MemberAccess","src":"4567:14:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4567:47:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4539:75:26"},{"condition":{"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4629:45:26","subExpression":{"arguments":[{"id":4932,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4913,"src":"4654:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},{"id":4933,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4921,"src":"4661:12:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4931,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5171,"src":"4630:23:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":4934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4630:44:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4954,"nodeType":"IfStatement","src":"4625:201:26","trueBody":{"id":4953,"nodeType":"Block","src":"4676:150:26","statements":[{"expression":{"arguments":[{"id":4937,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4913,"src":"4710:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":4940,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4913,"src":"4732:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":4941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4738:7:26","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4722,"src":"4732:13:26","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":4942,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4915,"src":"4748:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":4943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4757:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":4944,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4747:12:26","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_rational_0_by_1_$","typeString":"tuple(address,int_const 0)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_rational_0_by_1_$","typeString":"tuple(address,int_const 0)"}],"expression":{"id":4938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4717:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4721:10:26","memberName":"encodeCall","nodeType":"MemberAccess","src":"4717:14:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4717:43:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4936,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5130,"src":"4690:19:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":4946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4690:71:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4947,"nodeType":"ExpressionStatement","src":"4690:71:26"},{"expression":{"arguments":[{"id":4949,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4913,"src":"4795:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},{"id":4950,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4921,"src":"4802:12:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4948,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5130,"src":"4775:19:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":4951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4952,"nodeType":"ExpressionStatement","src":"4775:40:26"}]}}]},"documentation":{"id":4910,"nodeType":"StructuredDocumentation","src":"3881:566:26","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT.\n NOTE: If the token implements ERC-7674, this function will not modify any temporary allowance. This function\n only sets the \"standard\" allowance. Any temporary allowance will remain active, in addition to the value being\n set here."},"id":4956,"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"4461:12:26","nodeType":"FunctionDefinition","parameters":{"id":4918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4913,"mutability":"mutable","name":"token","nameLocation":"4481:5:26","nodeType":"VariableDeclaration","scope":4956,"src":"4474:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},"typeName":{"id":4912,"nodeType":"UserDefinedTypeName","pathNode":{"id":4911,"name":"IERC20","nameLocations":["4474:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"4474:6:26"},"referencedDeclaration":4735,"src":"4474:6:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":4915,"mutability":"mutable","name":"spender","nameLocation":"4496:7:26","nodeType":"VariableDeclaration","scope":4956,"src":"4488:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4914,"name":"address","nodeType":"ElementaryTypeName","src":"4488:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4917,"mutability":"mutable","name":"value","nameLocation":"4513:5:26","nodeType":"VariableDeclaration","scope":4956,"src":"4505:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4916,"name":"uint256","nodeType":"ElementaryTypeName","src":"4505:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4473:46:26"},"returnParameters":{"id":4919,"nodeType":"ParameterList","parameters":[],"src":"4529:0:26"},"scope":5172,"src":"4452:380:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4998,"nodeType":"Block","src":"5279:219:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4969,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4962,"src":"5293:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5296:4:26","memberName":"code","nodeType":"MemberAccess","src":"5293:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5301:6:26","memberName":"length","nodeType":"MemberAccess","src":"5293:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5311:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5293:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":4987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5379:39:26","subExpression":{"arguments":[{"id":4983,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4962,"src":"5402:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4984,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4964,"src":"5406:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4985,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4966,"src":"5413:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4981,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4960,"src":"5380:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}},"id":4982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5386:15:26","memberName":"transferAndCall","nodeType":"MemberAccess","referencedDeclaration":3177,"src":"5380:21:26","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":4986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5380:38:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4996,"nodeType":"IfStatement","src":"5375:117:26","trueBody":{"id":4995,"nodeType":"Block","src":"5420:72:26","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":4991,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4960,"src":"5474:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}],"id":4990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5466:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4989,"name":"address","nodeType":"ElementaryTypeName","src":"5466:7:26","typeDescriptions":{}}},"id":4992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5466:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4988,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4775,"src":"5441:24:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":4993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4994,"nodeType":"RevertStatement","src":"5434:47:26"}]}},"id":4997,"nodeType":"IfStatement","src":"5289:203:26","trueBody":{"id":4980,"nodeType":"Block","src":"5314:55:26","statements":[{"expression":{"arguments":[{"id":4975,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4960,"src":"5341:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}},{"id":4976,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4962,"src":"5348:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4977,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4964,"src":"5352:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4974,"name":"safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"5328:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":4978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:30:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4979,"nodeType":"ExpressionStatement","src":"5328:30:26"}]}}]},"documentation":{"id":4957,"nodeType":"StructuredDocumentation","src":"4838:333:26","text":" @dev Performs an {ERC1363} transferAndCall, with a fallback to the simple {ERC20} transfer if the target has no\n code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n targeting contracts.\n Reverts if the returned value is other than `true`."},"id":4999,"implemented":true,"kind":"function","modifiers":[],"name":"transferAndCallRelaxed","nameLocation":"5185:22:26","nodeType":"FunctionDefinition","parameters":{"id":4967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4960,"mutability":"mutable","name":"token","nameLocation":"5217:5:26","nodeType":"VariableDeclaration","scope":4999,"src":"5208:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"},"typeName":{"id":4959,"nodeType":"UserDefinedTypeName","pathNode":{"id":4958,"name":"IERC1363","nameLocations":["5208:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":3226,"src":"5208:8:26"},"referencedDeclaration":3226,"src":"5208:8:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}},"visibility":"internal"},{"constant":false,"id":4962,"mutability":"mutable","name":"to","nameLocation":"5232:2:26","nodeType":"VariableDeclaration","scope":4999,"src":"5224:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4961,"name":"address","nodeType":"ElementaryTypeName","src":"5224:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4964,"mutability":"mutable","name":"value","nameLocation":"5244:5:26","nodeType":"VariableDeclaration","scope":4999,"src":"5236:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4963,"name":"uint256","nodeType":"ElementaryTypeName","src":"5236:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4966,"mutability":"mutable","name":"data","nameLocation":"5264:4:26","nodeType":"VariableDeclaration","scope":4999,"src":"5251:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4965,"name":"bytes","nodeType":"ElementaryTypeName","src":"5251:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5207:62:26"},"returnParameters":{"id":4968,"nodeType":"ParameterList","parameters":[],"src":"5279:0:26"},"scope":5172,"src":"5176:322:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5045,"nodeType":"Block","src":"6017:239:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5014,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5007,"src":"6031:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6034:4:26","memberName":"code","nodeType":"MemberAccess","src":"6031:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6039:6:26","memberName":"length","nodeType":"MemberAccess","src":"6031:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6049:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6031:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":5034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6127:49:26","subExpression":{"arguments":[{"id":5029,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"6154:4:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5030,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5007,"src":"6160:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5031,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5009,"src":"6164:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5032,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5011,"src":"6171:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5027,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"6128:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}},"id":5028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6134:19:26","memberName":"transferFromAndCall","nodeType":"MemberAccess","referencedDeclaration":3203,"src":"6128:25:26","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) external returns (bool)"}},"id":5033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6128:48:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5043,"nodeType":"IfStatement","src":"6123:127:26","trueBody":{"id":5042,"nodeType":"Block","src":"6178:72:26","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":5038,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"6232:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}],"id":5037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6224:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5036,"name":"address","nodeType":"ElementaryTypeName","src":"6224:7:26","typeDescriptions":{}}},"id":5039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6224:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5035,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4775,"src":"6199:24:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":5040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6199:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5041,"nodeType":"RevertStatement","src":"6192:47:26"}]}},"id":5044,"nodeType":"IfStatement","src":"6027:223:26","trueBody":{"id":5026,"nodeType":"Block","src":"6052:65:26","statements":[{"expression":{"arguments":[{"id":5020,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"6083:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}},{"id":5021,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"6090:4:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5022,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5007,"src":"6096:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5023,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5009,"src":"6100:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5019,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"6066:16:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":5024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6066:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5025,"nodeType":"ExpressionStatement","src":"6066:40:26"}]}}]},"documentation":{"id":5000,"nodeType":"StructuredDocumentation","src":"5504:341:26","text":" @dev Performs an {ERC1363} transferFromAndCall, with a fallback to the simple {ERC20} transferFrom if the target\n has no code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n targeting contracts.\n Reverts if the returned value is other than `true`."},"id":5046,"implemented":true,"kind":"function","modifiers":[],"name":"transferFromAndCallRelaxed","nameLocation":"5859:26:26","nodeType":"FunctionDefinition","parameters":{"id":5012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5003,"mutability":"mutable","name":"token","nameLocation":"5904:5:26","nodeType":"VariableDeclaration","scope":5046,"src":"5895:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"},"typeName":{"id":5002,"nodeType":"UserDefinedTypeName","pathNode":{"id":5001,"name":"IERC1363","nameLocations":["5895:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":3226,"src":"5895:8:26"},"referencedDeclaration":3226,"src":"5895:8:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}},"visibility":"internal"},{"constant":false,"id":5005,"mutability":"mutable","name":"from","nameLocation":"5927:4:26","nodeType":"VariableDeclaration","scope":5046,"src":"5919:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5004,"name":"address","nodeType":"ElementaryTypeName","src":"5919:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5007,"mutability":"mutable","name":"to","nameLocation":"5949:2:26","nodeType":"VariableDeclaration","scope":5046,"src":"5941:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5006,"name":"address","nodeType":"ElementaryTypeName","src":"5941:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5009,"mutability":"mutable","name":"value","nameLocation":"5969:5:26","nodeType":"VariableDeclaration","scope":5046,"src":"5961:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5008,"name":"uint256","nodeType":"ElementaryTypeName","src":"5961:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5011,"mutability":"mutable","name":"data","nameLocation":"5997:4:26","nodeType":"VariableDeclaration","scope":5046,"src":"5984:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5010,"name":"bytes","nodeType":"ElementaryTypeName","src":"5984:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5885:122:26"},"returnParameters":{"id":5013,"nodeType":"ParameterList","parameters":[],"src":"6017:0:26"},"scope":5172,"src":"5850:406:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5088,"nodeType":"Block","src":"7023:218:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5059,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5052,"src":"7037:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7040:4:26","memberName":"code","nodeType":"MemberAccess","src":"7037:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7045:6:26","memberName":"length","nodeType":"MemberAccess","src":"7037:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7055:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7037:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":5077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7123:38:26","subExpression":{"arguments":[{"id":5073,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5052,"src":"7145:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5054,"src":"7149:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5075,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5056,"src":"7156:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5071,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5050,"src":"7124:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}},"id":5072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7130:14:26","memberName":"approveAndCall","nodeType":"MemberAccess","referencedDeclaration":3225,"src":"7124:20:26","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":5076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7124:37:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5086,"nodeType":"IfStatement","src":"7119:116:26","trueBody":{"id":5085,"nodeType":"Block","src":"7163:72:26","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":5081,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5050,"src":"7217:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}],"id":5080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7209:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5079,"name":"address","nodeType":"ElementaryTypeName","src":"7209:7:26","typeDescriptions":{}}},"id":5082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7209:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5078,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4775,"src":"7184:24:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":5083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7184:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5084,"nodeType":"RevertStatement","src":"7177:47:26"}]}},"id":5087,"nodeType":"IfStatement","src":"7033:202:26","trueBody":{"id":5070,"nodeType":"Block","src":"7058:55:26","statements":[{"expression":{"arguments":[{"id":5065,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5050,"src":"7085:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}},{"id":5066,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5052,"src":"7092:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5067,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5054,"src":"7096:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5064,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"7072:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":5068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7072:30:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5069,"nodeType":"ExpressionStatement","src":"7072:30:26"}]}}]},"documentation":{"id":5047,"nodeType":"StructuredDocumentation","src":"6262:654:26","text":" @dev Performs an {ERC1363} approveAndCall, with a fallback to the simple {ERC20} approve if the target has no\n code. This can be used to implement an {ERC721}-like safe transfer that rely on {ERC1363} checks when\n targeting contracts.\n NOTE: When the recipient address (`to`) has no code (i.e. is an EOA), this function behaves as {forceApprove}.\n Opposedly, when the recipient address (`to`) has code, this function only attempts to call {ERC1363-approveAndCall}\n once without retrying, and relies on the returned value to be true.\n Reverts if the returned value is other than `true`."},"id":5089,"implemented":true,"kind":"function","modifiers":[],"name":"approveAndCallRelaxed","nameLocation":"6930:21:26","nodeType":"FunctionDefinition","parameters":{"id":5057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5050,"mutability":"mutable","name":"token","nameLocation":"6961:5:26","nodeType":"VariableDeclaration","scope":5089,"src":"6952:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"},"typeName":{"id":5049,"nodeType":"UserDefinedTypeName","pathNode":{"id":5048,"name":"IERC1363","nameLocations":["6952:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":3226,"src":"6952:8:26"},"referencedDeclaration":3226,"src":"6952:8:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1363_$3226","typeString":"contract IERC1363"}},"visibility":"internal"},{"constant":false,"id":5052,"mutability":"mutable","name":"to","nameLocation":"6976:2:26","nodeType":"VariableDeclaration","scope":5089,"src":"6968:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5051,"name":"address","nodeType":"ElementaryTypeName","src":"6968:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5054,"mutability":"mutable","name":"value","nameLocation":"6988:5:26","nodeType":"VariableDeclaration","scope":5089,"src":"6980:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5053,"name":"uint256","nodeType":"ElementaryTypeName","src":"6980:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5056,"mutability":"mutable","name":"data","nameLocation":"7008:4:26","nodeType":"VariableDeclaration","scope":5089,"src":"6995:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5055,"name":"bytes","nodeType":"ElementaryTypeName","src":"6995:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6951:62:26"},"returnParameters":{"id":5058,"nodeType":"ParameterList","parameters":[],"src":"7023:0:26"},"scope":5172,"src":"6921:320:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5129,"nodeType":"Block","src":"7808:650:26","statements":[{"assignments":[5099],"declarations":[{"constant":false,"id":5099,"mutability":"mutable","name":"returnSize","nameLocation":"7826:10:26","nodeType":"VariableDeclaration","scope":5129,"src":"7818:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5098,"name":"uint256","nodeType":"ElementaryTypeName","src":"7818:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5100,"nodeType":"VariableDeclarationStatement","src":"7818:18:26"},{"assignments":[5102],"declarations":[{"constant":false,"id":5102,"mutability":"mutable","name":"returnValue","nameLocation":"7854:11:26","nodeType":"VariableDeclaration","scope":5129,"src":"7846:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5101,"name":"uint256","nodeType":"ElementaryTypeName","src":"7846:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5103,"nodeType":"VariableDeclarationStatement","src":"7846:19:26"},{"AST":{"nativeSrc":"7900:396:26","nodeType":"YulBlock","src":"7900:396:26","statements":[{"nativeSrc":"7914:75:26","nodeType":"YulVariableDeclaration","src":"7914:75:26","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"7934:3:26","nodeType":"YulIdentifier","src":"7934:3:26"},"nativeSrc":"7934:5:26","nodeType":"YulFunctionCall","src":"7934:5:26"},{"name":"token","nativeSrc":"7941:5:26","nodeType":"YulIdentifier","src":"7941:5:26"},{"kind":"number","nativeSrc":"7948:1:26","nodeType":"YulLiteral","src":"7948:1:26","type":"","value":"0"},{"arguments":[{"name":"data","nativeSrc":"7955:4:26","nodeType":"YulIdentifier","src":"7955:4:26"},{"kind":"number","nativeSrc":"7961:4:26","nodeType":"YulLiteral","src":"7961:4:26","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7951:3:26","nodeType":"YulIdentifier","src":"7951:3:26"},"nativeSrc":"7951:15:26","nodeType":"YulFunctionCall","src":"7951:15:26"},{"arguments":[{"name":"data","nativeSrc":"7974:4:26","nodeType":"YulIdentifier","src":"7974:4:26"}],"functionName":{"name":"mload","nativeSrc":"7968:5:26","nodeType":"YulIdentifier","src":"7968:5:26"},"nativeSrc":"7968:11:26","nodeType":"YulFunctionCall","src":"7968:11:26"},{"kind":"number","nativeSrc":"7981:1:26","nodeType":"YulLiteral","src":"7981:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"7984:4:26","nodeType":"YulLiteral","src":"7984:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"7929:4:26","nodeType":"YulIdentifier","src":"7929:4:26"},"nativeSrc":"7929:60:26","nodeType":"YulFunctionCall","src":"7929:60:26"},"variables":[{"name":"success","nativeSrc":"7918:7:26","nodeType":"YulTypedName","src":"7918:7:26","type":""}]},{"body":{"nativeSrc":"8050:157:26","nodeType":"YulBlock","src":"8050:157:26","statements":[{"nativeSrc":"8068:22:26","nodeType":"YulVariableDeclaration","src":"8068:22:26","value":{"arguments":[{"kind":"number","nativeSrc":"8085:4:26","nodeType":"YulLiteral","src":"8085:4:26","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"8079:5:26","nodeType":"YulIdentifier","src":"8079:5:26"},"nativeSrc":"8079:11:26","nodeType":"YulFunctionCall","src":"8079:11:26"},"variables":[{"name":"ptr","nativeSrc":"8072:3:26","nodeType":"YulTypedName","src":"8072:3:26","type":""}]},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"8122:3:26","nodeType":"YulIdentifier","src":"8122:3:26"},{"kind":"number","nativeSrc":"8127:1:26","nodeType":"YulLiteral","src":"8127:1:26","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"8130:14:26","nodeType":"YulIdentifier","src":"8130:14:26"},"nativeSrc":"8130:16:26","nodeType":"YulFunctionCall","src":"8130:16:26"}],"functionName":{"name":"returndatacopy","nativeSrc":"8107:14:26","nodeType":"YulIdentifier","src":"8107:14:26"},"nativeSrc":"8107:40:26","nodeType":"YulFunctionCall","src":"8107:40:26"},"nativeSrc":"8107:40:26","nodeType":"YulExpressionStatement","src":"8107:40:26"},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"8171:3:26","nodeType":"YulIdentifier","src":"8171:3:26"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"8176:14:26","nodeType":"YulIdentifier","src":"8176:14:26"},"nativeSrc":"8176:16:26","nodeType":"YulFunctionCall","src":"8176:16:26"}],"functionName":{"name":"revert","nativeSrc":"8164:6:26","nodeType":"YulIdentifier","src":"8164:6:26"},"nativeSrc":"8164:29:26","nodeType":"YulFunctionCall","src":"8164:29:26"},"nativeSrc":"8164:29:26","nodeType":"YulExpressionStatement","src":"8164:29:26"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"8041:7:26","nodeType":"YulIdentifier","src":"8041:7:26"}],"functionName":{"name":"iszero","nativeSrc":"8034:6:26","nodeType":"YulIdentifier","src":"8034:6:26"},"nativeSrc":"8034:15:26","nodeType":"YulFunctionCall","src":"8034:15:26"},"nativeSrc":"8031:176:26","nodeType":"YulIf","src":"8031:176:26"},{"nativeSrc":"8220:30:26","nodeType":"YulAssignment","src":"8220:30:26","value":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"8234:14:26","nodeType":"YulIdentifier","src":"8234:14:26"},"nativeSrc":"8234:16:26","nodeType":"YulFunctionCall","src":"8234:16:26"},"variableNames":[{"name":"returnSize","nativeSrc":"8220:10:26","nodeType":"YulIdentifier","src":"8220:10:26"}]},{"nativeSrc":"8263:23:26","nodeType":"YulAssignment","src":"8263:23:26","value":{"arguments":[{"kind":"number","nativeSrc":"8284:1:26","nodeType":"YulLiteral","src":"8284:1:26","type":"","value":"0"}],"functionName":{"name":"mload","nativeSrc":"8278:5:26","nodeType":"YulIdentifier","src":"8278:5:26"},"nativeSrc":"8278:8:26","nodeType":"YulFunctionCall","src":"8278:8:26"},"variableNames":[{"name":"returnValue","nativeSrc":"8263:11:26","nodeType":"YulIdentifier","src":"8263:11:26"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":5095,"isOffset":false,"isSlot":false,"src":"7955:4:26","valueSize":1},{"declaration":5095,"isOffset":false,"isSlot":false,"src":"7974:4:26","valueSize":1},{"declaration":5099,"isOffset":false,"isSlot":false,"src":"8220:10:26","valueSize":1},{"declaration":5102,"isOffset":false,"isSlot":false,"src":"8263:11:26","valueSize":1},{"declaration":5093,"isOffset":false,"isSlot":false,"src":"7941:5:26","valueSize":1}],"flags":["memory-safe"],"id":5104,"nodeType":"InlineAssembly","src":"7875:421:26"},{"condition":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5105,"name":"returnSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5099,"src":"8310:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8324:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8310:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5116,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"8362:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":5117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8377:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8362:16:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8310:68:26","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":5110,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5093,"src":"8336:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}],"id":5109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8328:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5108,"name":"address","nodeType":"ElementaryTypeName","src":"8328:7:26","typeDescriptions":{}}},"id":5111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8328:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8343:4:26","memberName":"code","nodeType":"MemberAccess","src":"8328:19:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8348:6:26","memberName":"length","nodeType":"MemberAccess","src":"8328:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8358:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8328:31:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5128,"nodeType":"IfStatement","src":"8306:146:26","trueBody":{"id":5127,"nodeType":"Block","src":"8380:72:26","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":5123,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5093,"src":"8434:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}],"id":5122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8426:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5121,"name":"address","nodeType":"ElementaryTypeName","src":"8426:7:26","typeDescriptions":{}}},"id":5124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8426:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5120,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4775,"src":"8401:24:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":5125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8401:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5126,"nodeType":"RevertStatement","src":"8394:47:26"}]}}]},"documentation":{"id":5090,"nodeType":"StructuredDocumentation","src":"7247:486:26","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturnBool} that reverts if call fails to meet the requirements."},"id":5130,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"7747:19:26","nodeType":"FunctionDefinition","parameters":{"id":5096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5093,"mutability":"mutable","name":"token","nameLocation":"7774:5:26","nodeType":"VariableDeclaration","scope":5130,"src":"7767:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},"typeName":{"id":5092,"nodeType":"UserDefinedTypeName","pathNode":{"id":5091,"name":"IERC20","nameLocations":["7767:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"7767:6:26"},"referencedDeclaration":4735,"src":"7767:6:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5095,"mutability":"mutable","name":"data","nameLocation":"7794:4:26","nodeType":"VariableDeclaration","scope":5130,"src":"7781:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5094,"name":"bytes","nodeType":"ElementaryTypeName","src":"7781:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7766:33:26"},"returnParameters":{"id":5097,"nodeType":"ParameterList","parameters":[],"src":"7808:0:26"},"scope":5172,"src":"7738:720:26","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":5170,"nodeType":"Block","src":"9049:391:26","statements":[{"assignments":[5142],"declarations":[{"constant":false,"id":5142,"mutability":"mutable","name":"success","nameLocation":"9064:7:26","nodeType":"VariableDeclaration","scope":5170,"src":"9059:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5141,"name":"bool","nodeType":"ElementaryTypeName","src":"9059:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5143,"nodeType":"VariableDeclarationStatement","src":"9059:12:26"},{"assignments":[5145],"declarations":[{"constant":false,"id":5145,"mutability":"mutable","name":"returnSize","nameLocation":"9089:10:26","nodeType":"VariableDeclaration","scope":5170,"src":"9081:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5144,"name":"uint256","nodeType":"ElementaryTypeName","src":"9081:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5146,"nodeType":"VariableDeclarationStatement","src":"9081:18:26"},{"assignments":[5148],"declarations":[{"constant":false,"id":5148,"mutability":"mutable","name":"returnValue","nameLocation":"9117:11:26","nodeType":"VariableDeclaration","scope":5170,"src":"9109:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5147,"name":"uint256","nodeType":"ElementaryTypeName","src":"9109:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5149,"nodeType":"VariableDeclarationStatement","src":"9109:19:26"},{"AST":{"nativeSrc":"9163:174:26","nodeType":"YulBlock","src":"9163:174:26","statements":[{"nativeSrc":"9177:71:26","nodeType":"YulAssignment","src":"9177:71:26","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"9193:3:26","nodeType":"YulIdentifier","src":"9193:3:26"},"nativeSrc":"9193:5:26","nodeType":"YulFunctionCall","src":"9193:5:26"},{"name":"token","nativeSrc":"9200:5:26","nodeType":"YulIdentifier","src":"9200:5:26"},{"kind":"number","nativeSrc":"9207:1:26","nodeType":"YulLiteral","src":"9207:1:26","type":"","value":"0"},{"arguments":[{"name":"data","nativeSrc":"9214:4:26","nodeType":"YulIdentifier","src":"9214:4:26"},{"kind":"number","nativeSrc":"9220:4:26","nodeType":"YulLiteral","src":"9220:4:26","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9210:3:26","nodeType":"YulIdentifier","src":"9210:3:26"},"nativeSrc":"9210:15:26","nodeType":"YulFunctionCall","src":"9210:15:26"},{"arguments":[{"name":"data","nativeSrc":"9233:4:26","nodeType":"YulIdentifier","src":"9233:4:26"}],"functionName":{"name":"mload","nativeSrc":"9227:5:26","nodeType":"YulIdentifier","src":"9227:5:26"},"nativeSrc":"9227:11:26","nodeType":"YulFunctionCall","src":"9227:11:26"},{"kind":"number","nativeSrc":"9240:1:26","nodeType":"YulLiteral","src":"9240:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"9243:4:26","nodeType":"YulLiteral","src":"9243:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"9188:4:26","nodeType":"YulIdentifier","src":"9188:4:26"},"nativeSrc":"9188:60:26","nodeType":"YulFunctionCall","src":"9188:60:26"},"variableNames":[{"name":"success","nativeSrc":"9177:7:26","nodeType":"YulIdentifier","src":"9177:7:26"}]},{"nativeSrc":"9261:30:26","nodeType":"YulAssignment","src":"9261:30:26","value":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"9275:14:26","nodeType":"YulIdentifier","src":"9275:14:26"},"nativeSrc":"9275:16:26","nodeType":"YulFunctionCall","src":"9275:16:26"},"variableNames":[{"name":"returnSize","nativeSrc":"9261:10:26","nodeType":"YulIdentifier","src":"9261:10:26"}]},{"nativeSrc":"9304:23:26","nodeType":"YulAssignment","src":"9304:23:26","value":{"arguments":[{"kind":"number","nativeSrc":"9325:1:26","nodeType":"YulLiteral","src":"9325:1:26","type":"","value":"0"}],"functionName":{"name":"mload","nativeSrc":"9319:5:26","nodeType":"YulIdentifier","src":"9319:5:26"},"nativeSrc":"9319:8:26","nodeType":"YulFunctionCall","src":"9319:8:26"},"variableNames":[{"name":"returnValue","nativeSrc":"9304:11:26","nodeType":"YulIdentifier","src":"9304:11:26"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":5136,"isOffset":false,"isSlot":false,"src":"9214:4:26","valueSize":1},{"declaration":5136,"isOffset":false,"isSlot":false,"src":"9233:4:26","valueSize":1},{"declaration":5145,"isOffset":false,"isSlot":false,"src":"9261:10:26","valueSize":1},{"declaration":5148,"isOffset":false,"isSlot":false,"src":"9304:11:26","valueSize":1},{"declaration":5142,"isOffset":false,"isSlot":false,"src":"9177:7:26","valueSize":1},{"declaration":5134,"isOffset":false,"isSlot":false,"src":"9200:5:26","valueSize":1}],"flags":["memory-safe"],"id":5150,"nodeType":"InlineAssembly","src":"9138:199:26"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5151,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5142,"src":"9353:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5152,"name":"returnSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"9365:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9379:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9365:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5163,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5148,"src":"9416:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":5164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9431:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9416:16:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9365:67:26","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":5157,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5134,"src":"9391:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}],"id":5156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9383:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5155,"name":"address","nodeType":"ElementaryTypeName","src":"9383:7:26","typeDescriptions":{}}},"id":5158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9383:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9398:4:26","memberName":"code","nodeType":"MemberAccess","src":"9383:19:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9403:6:26","memberName":"length","nodeType":"MemberAccess","src":"9383:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9412:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9383:30:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9364:69:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9353:80:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5140,"id":5169,"nodeType":"Return","src":"9346:87:26"}]},"documentation":{"id":5131,"nodeType":"StructuredDocumentation","src":"8464:491:26","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silently catches all reverts and returns a bool instead."},"id":5171,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"8969:23:26","nodeType":"FunctionDefinition","parameters":{"id":5137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5134,"mutability":"mutable","name":"token","nameLocation":"9000:5:26","nodeType":"VariableDeclaration","scope":5171,"src":"8993:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},"typeName":{"id":5133,"nodeType":"UserDefinedTypeName","pathNode":{"id":5132,"name":"IERC20","nameLocations":["8993:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"8993:6:26"},"referencedDeclaration":4735,"src":"8993:6:26","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5136,"mutability":"mutable","name":"data","nameLocation":"9020:4:26","nodeType":"VariableDeclaration","scope":5171,"src":"9007:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5135,"name":"bytes","nodeType":"ElementaryTypeName","src":"9007:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8992:33:26"},"returnParameters":{"id":5140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5171,"src":"9043:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5138,"name":"bool","nodeType":"ElementaryTypeName","src":"9043:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9042:6:26"},"scope":5172,"src":"8960:480:26","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":5173,"src":"750:8692:26","usedErrors":[4775,4784],"usedEvents":[]}],"src":"115:9328:26"},"id":26},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Context":[6658],"ERC165":[8481],"ERC721":[6129],"ERC721Utils":[6369],"IERC165":[8493],"IERC721":[6246],"IERC721Errors":[3355],"IERC721Metadata":[6292],"Strings":[7344]},"id":6130,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5174,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:27"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":5176,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6130,"sourceUnit":6247,"src":"133:38:27","symbolAliases":[{"foreign":{"id":5175,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"141:7:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":5178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6130,"sourceUnit":6293,"src":"172:65:27","symbolAliases":[{"foreign":{"id":5177,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6292,"src":"180:15:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol","file":"./utils/ERC721Utils.sol","id":5180,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6130,"sourceUnit":6370,"src":"238:52:27","symbolAliases":[{"foreign":{"id":5179,"name":"ERC721Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"246:11:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":5182,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6130,"sourceUnit":6659,"src":"291:48:27","symbolAliases":[{"foreign":{"id":5181,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6658,"src":"299:7:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":5184,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6130,"sourceUnit":7345,"src":"340:48:27","symbolAliases":[{"foreign":{"id":5183,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7344,"src":"348:7:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":5187,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6130,"sourceUnit":8482,"src":"389:69:27","symbolAliases":[{"foreign":{"id":5185,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"397:7:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5186,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"406:6:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":5189,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6130,"sourceUnit":3403,"src":"459:66:27","symbolAliases":[{"foreign":{"id":5188,"name":"IERC721Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3355,"src":"467:13:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5191,"name":"Context","nameLocations":["803:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":6658,"src":"803:7:27"},"id":5192,"nodeType":"InheritanceSpecifier","src":"803:7:27"},{"baseName":{"id":5193,"name":"ERC165","nameLocations":["812:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":8481,"src":"812:6:27"},"id":5194,"nodeType":"InheritanceSpecifier","src":"812:6:27"},{"baseName":{"id":5195,"name":"IERC721","nameLocations":["820:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":6246,"src":"820:7:27"},"id":5196,"nodeType":"InheritanceSpecifier","src":"820:7:27"},{"baseName":{"id":5197,"name":"IERC721Metadata","nameLocations":["829:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":6292,"src":"829:15:27"},"id":5198,"nodeType":"InheritanceSpecifier","src":"829:15:27"},{"baseName":{"id":5199,"name":"IERC721Errors","nameLocations":["846:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":3355,"src":"846:13:27"},"id":5200,"nodeType":"InheritanceSpecifier","src":"846:13:27"}],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":5190,"nodeType":"StructuredDocumentation","src":"527:247:27","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":6129,"linearizedBaseContracts":[6129,3355,6292,6246,8481,8493,6658],"name":"ERC721","nameLocation":"793:6:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5203,"libraryName":{"id":5201,"name":"Strings","nameLocations":["872:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":7344,"src":"872:7:27"},"nodeType":"UsingForDirective","src":"866:26:27","typeName":{"id":5202,"name":"uint256","nodeType":"ElementaryTypeName","src":"884:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":5205,"mutability":"mutable","name":"_name","nameLocation":"931:5:27","nodeType":"VariableDeclaration","scope":6129,"src":"916:20:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5204,"name":"string","nodeType":"ElementaryTypeName","src":"916:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":5207,"mutability":"mutable","name":"_symbol","nameLocation":"978:7:27","nodeType":"VariableDeclaration","scope":6129,"src":"963:22:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5206,"name":"string","nodeType":"ElementaryTypeName","src":"963:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":5211,"mutability":"mutable","name":"_owners","nameLocation":"1036:7:27","nodeType":"VariableDeclaration","scope":6129,"src":"992:51:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":5210,"keyName":"tokenId","keyNameLocation":"1008:7:27","keyType":{"id":5208,"name":"uint256","nodeType":"ElementaryTypeName","src":"1000:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"992:35:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5209,"name":"address","nodeType":"ElementaryTypeName","src":"1019:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":5215,"mutability":"mutable","name":"_balances","nameLocation":"1092:9:27","nodeType":"VariableDeclaration","scope":6129,"src":"1050:51:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5214,"keyName":"owner","keyNameLocation":"1066:5:27","keyType":{"id":5212,"name":"address","nodeType":"ElementaryTypeName","src":"1058:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1050:33:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1075:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":5219,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1152:15:27","nodeType":"VariableDeclaration","scope":6129,"src":"1108:59:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":5218,"keyName":"tokenId","keyNameLocation":"1124:7:27","keyType":{"id":5216,"name":"uint256","nodeType":"ElementaryTypeName","src":"1116:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1108:35:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5217,"name":"address","nodeType":"ElementaryTypeName","src":"1135:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":5225,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1242:18:27","nodeType":"VariableDeclaration","scope":6129,"src":"1174:86:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":5224,"keyName":"owner","keyNameLocation":"1190:5:27","keyType":{"id":5220,"name":"address","nodeType":"ElementaryTypeName","src":"1182:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1174:59:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5223,"keyName":"operator","keyNameLocation":"1215:8:27","keyType":{"id":5221,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:33:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5222,"name":"bool","nodeType":"ElementaryTypeName","src":"1227:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":5241,"nodeType":"Block","src":"1436:57:27","statements":[{"expression":{"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5233,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5205,"src":"1446:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5234,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"1454:5:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1446:13:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5236,"nodeType":"ExpressionStatement","src":"1446:13:27"},{"expression":{"id":5239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5237,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5207,"src":"1469:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5238,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5230,"src":"1479:7:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1469:17:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5240,"nodeType":"ExpressionStatement","src":"1469:17:27"}]},"documentation":{"id":5226,"nodeType":"StructuredDocumentation","src":"1267:108:27","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":5242,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5228,"mutability":"mutable","name":"name_","nameLocation":"1406:5:27","nodeType":"VariableDeclaration","scope":5242,"src":"1392:19:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5227,"name":"string","nodeType":"ElementaryTypeName","src":"1392:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5230,"mutability":"mutable","name":"symbol_","nameLocation":"1427:7:27","nodeType":"VariableDeclaration","scope":5242,"src":"1413:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5229,"name":"string","nodeType":"ElementaryTypeName","src":"1413:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1391:44:27"},"returnParameters":{"id":5232,"nodeType":"ParameterList","parameters":[],"src":"1436:0:27"},"scope":6129,"src":"1380:113:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[8480,8492],"body":{"id":5272,"nodeType":"Block","src":"1668:192:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5253,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5245,"src":"1697:11:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":5255,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"1717:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}],"id":5254,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1712:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1712:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$6246","typeString":"type(contract IERC721)"}},"id":5257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1726:11:27","memberName":"interfaceId","nodeType":"MemberAccess","src":"1712:25:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1697:40:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5259,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5245,"src":"1753:11:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":5261,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6292,"src":"1773:15:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$6292_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$6292_$","typeString":"type(contract IERC721Metadata)"}],"id":5260,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1768:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1768:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$6292","typeString":"type(contract IERC721Metadata)"}},"id":5263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1790:11:27","memberName":"interfaceId","nodeType":"MemberAccess","src":"1768:33:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1753:48:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1697:104:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5268,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5245,"src":"1841:11:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":5266,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1817:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$6129_$","typeString":"type(contract super ERC721)"}},"id":5267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1823:17:27","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":8480,"src":"1817:23:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":5269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1817:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1697:156:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5252,"id":5271,"nodeType":"Return","src":"1678:175:27"}]},"documentation":{"id":5243,"nodeType":"StructuredDocumentation","src":"1499:56:27","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":5273,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1569:17:27","nodeType":"FunctionDefinition","overrides":{"id":5249,"nodeType":"OverrideSpecifier","overrides":[{"id":5247,"name":"ERC165","nameLocations":["1636:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":8481,"src":"1636:6:27"},{"id":5248,"name":"IERC165","nameLocations":["1644:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":8493,"src":"1644:7:27"}],"src":"1627:25:27"},"parameters":{"id":5246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5245,"mutability":"mutable","name":"interfaceId","nameLocation":"1594:11:27","nodeType":"VariableDeclaration","scope":5273,"src":"1587:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5244,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1587:6:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1586:20:27"},"returnParameters":{"id":5252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5273,"src":"1662:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5250,"name":"bool","nodeType":"ElementaryTypeName","src":"1662:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1661:6:27"},"scope":6129,"src":"1560:300:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6171],"body":{"id":5300,"nodeType":"Block","src":"1991:136:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5281,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5276,"src":"2005:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2022:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2014:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5282,"name":"address","nodeType":"ElementaryTypeName","src":"2014:7:27","typeDescriptions":{}}},"id":5285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2005:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5295,"nodeType":"IfStatement","src":"2001:87:27","trueBody":{"id":5294,"nodeType":"Block","src":"2026:62:27","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2074:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2066:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5288,"name":"address","nodeType":"ElementaryTypeName","src":"2066:7:27","typeDescriptions":{}}},"id":5291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2066:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5287,"name":"ERC721InvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3313,"src":"2047:18:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2047:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5293,"nodeType":"RevertStatement","src":"2040:37:27"}]}},{"expression":{"baseExpression":{"id":5296,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"2104:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5298,"indexExpression":{"id":5297,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5276,"src":"2114:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2104:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5280,"id":5299,"nodeType":"Return","src":"2097:23:27"}]},"documentation":{"id":5274,"nodeType":"StructuredDocumentation","src":"1866:48:27","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":5301,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1928:9:27","nodeType":"FunctionDefinition","parameters":{"id":5277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5276,"mutability":"mutable","name":"owner","nameLocation":"1946:5:27","nodeType":"VariableDeclaration","scope":5301,"src":"1938:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5275,"name":"address","nodeType":"ElementaryTypeName","src":"1938:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1937:15:27"},"returnParameters":{"id":5280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5301,"src":"1982:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5278,"name":"uint256","nodeType":"ElementaryTypeName","src":"1982:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1981:9:27"},"scope":6129,"src":"1919:208:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6179],"body":{"id":5313,"nodeType":"Block","src":"2256:46:27","statements":[{"expression":{"arguments":[{"id":5310,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5304,"src":"2287:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5309,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"2273:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5308,"id":5312,"nodeType":"Return","src":"2266:29:27"}]},"documentation":{"id":5302,"nodeType":"StructuredDocumentation","src":"2133:46:27","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":5314,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2193:7:27","nodeType":"FunctionDefinition","parameters":{"id":5305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5304,"mutability":"mutable","name":"tokenId","nameLocation":"2209:7:27","nodeType":"VariableDeclaration","scope":5314,"src":"2201:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5303,"name":"uint256","nodeType":"ElementaryTypeName","src":"2201:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2200:17:27"},"returnParameters":{"id":5308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5314,"src":"2247:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5306,"name":"address","nodeType":"ElementaryTypeName","src":"2247:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2246:9:27"},"scope":6129,"src":"2184:118:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6277],"body":{"id":5322,"nodeType":"Block","src":"2424:29:27","statements":[{"expression":{"id":5320,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5205,"src":"2441:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5319,"id":5321,"nodeType":"Return","src":"2434:12:27"}]},"documentation":{"id":5315,"nodeType":"StructuredDocumentation","src":"2308:51:27","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":5323,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2373:4:27","nodeType":"FunctionDefinition","parameters":{"id":5316,"nodeType":"ParameterList","parameters":[],"src":"2377:2:27"},"returnParameters":{"id":5319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5323,"src":"2409:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5317,"name":"string","nodeType":"ElementaryTypeName","src":"2409:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2408:15:27"},"scope":6129,"src":"2364:89:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6283],"body":{"id":5331,"nodeType":"Block","src":"2579:31:27","statements":[{"expression":{"id":5329,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5207,"src":"2596:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5328,"id":5330,"nodeType":"Return","src":"2589:14:27"}]},"documentation":{"id":5324,"nodeType":"StructuredDocumentation","src":"2459:53:27","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":5332,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2526:6:27","nodeType":"FunctionDefinition","parameters":{"id":5325,"nodeType":"ParameterList","parameters":[],"src":"2532:2:27"},"returnParameters":{"id":5328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5332,"src":"2564:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5326,"name":"string","nodeType":"ElementaryTypeName","src":"2564:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2563:15:27"},"scope":6129,"src":"2517:93:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6291],"body":{"id":5367,"nodeType":"Block","src":"2755:176:27","statements":[{"expression":{"arguments":[{"id":5341,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"2779:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5340,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"2765:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5343,"nodeType":"ExpressionStatement","src":"2765:22:27"},{"assignments":[5345],"declarations":[{"constant":false,"id":5345,"mutability":"mutable","name":"baseURI","nameLocation":"2812:7:27","nodeType":"VariableDeclaration","scope":5367,"src":"2798:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5344,"name":"string","nodeType":"ElementaryTypeName","src":"2798:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":5348,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5346,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5377,"src":"2822:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":5347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2822:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2798:34:27"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":5351,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5345,"src":"2855:7:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2849:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5349,"name":"bytes","nodeType":"ElementaryTypeName","src":"2849:5:27","typeDescriptions":{}}},"id":5352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2849:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2864:6:27","memberName":"length","nodeType":"MemberAccess","src":"2849:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2873:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2849:25:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":5364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2922:2:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":5365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2849:75:27","trueExpression":{"arguments":[{"id":5359,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5345,"src":"2891:7:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5360,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"2900:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2908:8:27","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":7092,"src":"2900:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":5362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2900:18:27","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":5357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2877:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5356,"name":"string","nodeType":"ElementaryTypeName","src":"2877:6:27","typeDescriptions":{}}},"id":5358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2884:6:27","memberName":"concat","nodeType":"MemberAccess","src":"2877:13:27","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":5363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2877:42:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5339,"id":5366,"nodeType":"Return","src":"2842:82:27"}]},"documentation":{"id":5333,"nodeType":"StructuredDocumentation","src":"2616:55:27","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":5368,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2685:8:27","nodeType":"FunctionDefinition","parameters":{"id":5336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5335,"mutability":"mutable","name":"tokenId","nameLocation":"2702:7:27","nodeType":"VariableDeclaration","scope":5368,"src":"2694:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5334,"name":"uint256","nodeType":"ElementaryTypeName","src":"2694:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2693:17:27"},"returnParameters":{"id":5339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5368,"src":"2740:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5337,"name":"string","nodeType":"ElementaryTypeName","src":"2740:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2739:15:27"},"scope":6129,"src":"2676:255:27","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5376,"nodeType":"Block","src":"3239:26:27","statements":[{"expression":{"hexValue":"","id":5374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3256:2:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":5373,"id":5375,"nodeType":"Return","src":"3249:9:27"}]},"documentation":{"id":5369,"nodeType":"StructuredDocumentation","src":"2937:231:27","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":5377,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3182:8:27","nodeType":"FunctionDefinition","parameters":{"id":5370,"nodeType":"ParameterList","parameters":[],"src":"3190:2:27"},"returnParameters":{"id":5373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5377,"src":"3224:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5371,"name":"string","nodeType":"ElementaryTypeName","src":"3224:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3223:15:27"},"scope":6129,"src":"3173:92:27","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[6219],"body":{"id":5392,"nodeType":"Block","src":"3383:52:27","statements":[{"expression":{"arguments":[{"id":5386,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5380,"src":"3402:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5387,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5382,"src":"3406:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5388,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"3415:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3415:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5385,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[5996,6062],"referencedDeclaration":5996,"src":"3393:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3393:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5391,"nodeType":"ExpressionStatement","src":"3393:35:27"}]},"documentation":{"id":5378,"nodeType":"StructuredDocumentation","src":"3271:46:27","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":5393,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3331:7:27","nodeType":"FunctionDefinition","parameters":{"id":5383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5380,"mutability":"mutable","name":"to","nameLocation":"3347:2:27","nodeType":"VariableDeclaration","scope":5393,"src":"3339:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5379,"name":"address","nodeType":"ElementaryTypeName","src":"3339:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5382,"mutability":"mutable","name":"tokenId","nameLocation":"3359:7:27","nodeType":"VariableDeclaration","scope":5393,"src":"3351:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5381,"name":"uint256","nodeType":"ElementaryTypeName","src":"3351:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3338:29:27"},"returnParameters":{"id":5384,"nodeType":"ParameterList","parameters":[],"src":"3383:0:27"},"scope":6129,"src":"3322:113:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6235],"body":{"id":5409,"nodeType":"Block","src":"3572:78:27","statements":[{"expression":{"arguments":[{"id":5402,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"3596:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5401,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"3582:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3582:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5404,"nodeType":"ExpressionStatement","src":"3582:22:27"},{"expression":{"arguments":[{"id":5406,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"3635:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5405,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"3622:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3622:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5400,"id":5408,"nodeType":"Return","src":"3615:28:27"}]},"documentation":{"id":5394,"nodeType":"StructuredDocumentation","src":"3441:50:27","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":5410,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3505:11:27","nodeType":"FunctionDefinition","parameters":{"id":5397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5396,"mutability":"mutable","name":"tokenId","nameLocation":"3525:7:27","nodeType":"VariableDeclaration","scope":5410,"src":"3517:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5395,"name":"uint256","nodeType":"ElementaryTypeName","src":"3517:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3516:17:27"},"returnParameters":{"id":5400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5410,"src":"3563:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5398,"name":"address","nodeType":"ElementaryTypeName","src":"3563:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3562:9:27"},"scope":6129,"src":"3496:154:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6227],"body":{"id":5425,"nodeType":"Block","src":"3792:69:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5419,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"3821:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3821:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5421,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5413,"src":"3835:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5422,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5415,"src":"3845:8:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5418,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"3802:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":5423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3802:52:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5424,"nodeType":"ExpressionStatement","src":"3802:52:27"}]},"documentation":{"id":5411,"nodeType":"StructuredDocumentation","src":"3656:56:27","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":5426,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3726:17:27","nodeType":"FunctionDefinition","parameters":{"id":5416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5413,"mutability":"mutable","name":"operator","nameLocation":"3752:8:27","nodeType":"VariableDeclaration","scope":5426,"src":"3744:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5412,"name":"address","nodeType":"ElementaryTypeName","src":"3744:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5415,"mutability":"mutable","name":"approved","nameLocation":"3767:8:27","nodeType":"VariableDeclaration","scope":5426,"src":"3762:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5414,"name":"bool","nodeType":"ElementaryTypeName","src":"3762:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3743:33:27"},"returnParameters":{"id":5417,"nodeType":"ParameterList","parameters":[],"src":"3792:0:27"},"scope":6129,"src":"3717:144:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6245],"body":{"id":5442,"nodeType":"Block","src":"4021:59:27","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5436,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"4038:18:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":5438,"indexExpression":{"id":5437,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"4057:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4038:25:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5440,"indexExpression":{"id":5439,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5431,"src":"4064:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4038:35:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5435,"id":5441,"nodeType":"Return","src":"4031:42:27"}]},"documentation":{"id":5427,"nodeType":"StructuredDocumentation","src":"3867:55:27","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":5443,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"3936:16:27","nodeType":"FunctionDefinition","parameters":{"id":5432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5429,"mutability":"mutable","name":"owner","nameLocation":"3961:5:27","nodeType":"VariableDeclaration","scope":5443,"src":"3953:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5428,"name":"address","nodeType":"ElementaryTypeName","src":"3953:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5431,"mutability":"mutable","name":"operator","nameLocation":"3976:8:27","nodeType":"VariableDeclaration","scope":5443,"src":"3968:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5430,"name":"address","nodeType":"ElementaryTypeName","src":"3968:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3952:33:27"},"returnParameters":{"id":5435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5443,"src":"4015:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5433,"name":"bool","nodeType":"ElementaryTypeName","src":"4015:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4014:6:27"},"scope":6129,"src":"3927:153:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6211],"body":{"id":5488,"nodeType":"Block","src":"4222:498:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5453,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5448,"src":"4236:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4250:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4242:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5454,"name":"address","nodeType":"ElementaryTypeName","src":"4242:7:27","typeDescriptions":{}}},"id":5457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4242:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4236:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5467,"nodeType":"IfStatement","src":"4232:87:27","trueBody":{"id":5466,"nodeType":"Block","src":"4254:65:27","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4305:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4297:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5460,"name":"address","nodeType":"ElementaryTypeName","src":"4297:7:27","typeDescriptions":{}}},"id":5463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5459,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3337,"src":"4275:21:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":5464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4275:33:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5465,"nodeType":"RevertStatement","src":"4268:40:27"}]}},{"assignments":[5469],"declarations":[{"constant":false,"id":5469,"mutability":"mutable","name":"previousOwner","nameLocation":"4545:13:27","nodeType":"VariableDeclaration","scope":5488,"src":"4537:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5468,"name":"address","nodeType":"ElementaryTypeName","src":"4537:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5476,"initialValue":{"arguments":[{"id":5471,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5448,"src":"4569:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5472,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5450,"src":"4573:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5473,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"4582:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4582:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5470,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5742,"src":"4561:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":5475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4561:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4537:58:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5477,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5469,"src":"4609:13:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5478,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5446,"src":"4626:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4609:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5487,"nodeType":"IfStatement","src":"4605:109:27","trueBody":{"id":5486,"nodeType":"Block","src":"4632:82:27","statements":[{"errorCall":{"arguments":[{"id":5481,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5446,"src":"4674:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5482,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5450,"src":"4680:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5483,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5469,"src":"4689:13:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5480,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3327,"src":"4653:20:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$_t_error_$","typeString":"function (address,uint256,address) pure returns (error)"}},"id":5484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4653:50:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5485,"nodeType":"RevertStatement","src":"4646:57:27"}]}}]},"documentation":{"id":5444,"nodeType":"StructuredDocumentation","src":"4086:51:27","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":5489,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4151:12:27","nodeType":"FunctionDefinition","parameters":{"id":5451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5446,"mutability":"mutable","name":"from","nameLocation":"4172:4:27","nodeType":"VariableDeclaration","scope":5489,"src":"4164:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5445,"name":"address","nodeType":"ElementaryTypeName","src":"4164:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5448,"mutability":"mutable","name":"to","nameLocation":"4186:2:27","nodeType":"VariableDeclaration","scope":5489,"src":"4178:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5447,"name":"address","nodeType":"ElementaryTypeName","src":"4178:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5450,"mutability":"mutable","name":"tokenId","nameLocation":"4198:7:27","nodeType":"VariableDeclaration","scope":5489,"src":"4190:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5449,"name":"uint256","nodeType":"ElementaryTypeName","src":"4190:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4163:43:27"},"returnParameters":{"id":5452,"nodeType":"ParameterList","parameters":[],"src":"4222:0:27"},"scope":6129,"src":"4142:578:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6201],"body":{"id":5506,"nodeType":"Block","src":"4862:56:27","statements":[{"expression":{"arguments":[{"id":5500,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5492,"src":"4889:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5501,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5494,"src":"4895:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5502,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5496,"src":"4899:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":5503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4908:2:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":5499,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[5507,5537],"referencedDeclaration":5537,"src":"4872:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":5504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4872:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5505,"nodeType":"ExpressionStatement","src":"4872:39:27"}]},"documentation":{"id":5490,"nodeType":"StructuredDocumentation","src":"4726:55:27","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":5507,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4795:16:27","nodeType":"FunctionDefinition","parameters":{"id":5497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5492,"mutability":"mutable","name":"from","nameLocation":"4820:4:27","nodeType":"VariableDeclaration","scope":5507,"src":"4812:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5491,"name":"address","nodeType":"ElementaryTypeName","src":"4812:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5494,"mutability":"mutable","name":"to","nameLocation":"4834:2:27","nodeType":"VariableDeclaration","scope":5507,"src":"4826:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5493,"name":"address","nodeType":"ElementaryTypeName","src":"4826:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5496,"mutability":"mutable","name":"tokenId","nameLocation":"4846:7:27","nodeType":"VariableDeclaration","scope":5507,"src":"4838:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5495,"name":"uint256","nodeType":"ElementaryTypeName","src":"4838:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4811:43:27"},"returnParameters":{"id":5498,"nodeType":"ParameterList","parameters":[],"src":"4862:0:27"},"scope":6129,"src":"4786:132:27","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[6191],"body":{"id":5536,"nodeType":"Block","src":"5087:130:27","statements":[{"expression":{"arguments":[{"id":5520,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"5110:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5521,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"5116:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5522,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5514,"src":"5120:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5519,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5489,"src":"5097:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5097:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5524,"nodeType":"ExpressionStatement","src":"5097:31:27"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5528,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"5172:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5172:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5530,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"5186:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5531,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"5192:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5532,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5514,"src":"5196:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5533,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5516,"src":"5205:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5525,"name":"ERC721Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"5138:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Utils_$6369_$","typeString":"type(library ERC721Utils)"}},"id":5527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5150:21:27","memberName":"checkOnERC721Received","nodeType":"MemberAccess","referencedDeclaration":6368,"src":"5138:33:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,bytes memory)"}},"id":5534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5138:72:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5535,"nodeType":"ExpressionStatement","src":"5138:72:27"}]},"documentation":{"id":5508,"nodeType":"StructuredDocumentation","src":"4924:55:27","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":5537,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4993:16:27","nodeType":"FunctionDefinition","parameters":{"id":5517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5510,"mutability":"mutable","name":"from","nameLocation":"5018:4:27","nodeType":"VariableDeclaration","scope":5537,"src":"5010:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5509,"name":"address","nodeType":"ElementaryTypeName","src":"5010:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5512,"mutability":"mutable","name":"to","nameLocation":"5032:2:27","nodeType":"VariableDeclaration","scope":5537,"src":"5024:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5511,"name":"address","nodeType":"ElementaryTypeName","src":"5024:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5514,"mutability":"mutable","name":"tokenId","nameLocation":"5044:7:27","nodeType":"VariableDeclaration","scope":5537,"src":"5036:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5513,"name":"uint256","nodeType":"ElementaryTypeName","src":"5036:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5516,"mutability":"mutable","name":"data","nameLocation":"5066:4:27","nodeType":"VariableDeclaration","scope":5537,"src":"5053:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5515,"name":"bytes","nodeType":"ElementaryTypeName","src":"5053:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5009:62:27"},"returnParameters":{"id":5518,"nodeType":"ParameterList","parameters":[],"src":"5087:0:27"},"scope":6129,"src":"4984:233:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5549,"nodeType":"Block","src":"5807:40:27","statements":[{"expression":{"baseExpression":{"id":5545,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5211,"src":"5824:7:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":5547,"indexExpression":{"id":5546,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5540,"src":"5832:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5824:16:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5544,"id":5548,"nodeType":"Return","src":"5817:23:27"}]},"documentation":{"id":5538,"nodeType":"StructuredDocumentation","src":"5223:504:27","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC-721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`."},"id":5550,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"5741:8:27","nodeType":"FunctionDefinition","parameters":{"id":5541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5540,"mutability":"mutable","name":"tokenId","nameLocation":"5758:7:27","nodeType":"VariableDeclaration","scope":5550,"src":"5750:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5539,"name":"uint256","nodeType":"ElementaryTypeName","src":"5750:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5749:17:27"},"returnParameters":{"id":5544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5550,"src":"5798:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5542,"name":"address","nodeType":"ElementaryTypeName","src":"5798:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5797:9:27"},"scope":6129,"src":"5732:115:27","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5562,"nodeType":"Block","src":"6042:48:27","statements":[{"expression":{"baseExpression":{"id":5558,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5219,"src":"6059:15:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":5560,"indexExpression":{"id":5559,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"6075:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6059:24:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5557,"id":5561,"nodeType":"Return","src":"6052:31:27"}]},"documentation":{"id":5551,"nodeType":"StructuredDocumentation","src":"5853:105:27","text":" @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted."},"id":5563,"implemented":true,"kind":"function","modifiers":[],"name":"_getApproved","nameLocation":"5972:12:27","nodeType":"FunctionDefinition","parameters":{"id":5554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5553,"mutability":"mutable","name":"tokenId","nameLocation":"5993:7:27","nodeType":"VariableDeclaration","scope":5563,"src":"5985:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5552,"name":"uint256","nodeType":"ElementaryTypeName","src":"5985:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5984:17:27"},"returnParameters":{"id":5557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5563,"src":"6033:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5555,"name":"address","nodeType":"ElementaryTypeName","src":"6033:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6032:9:27"},"scope":6129,"src":"5963:127:27","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5598,"nodeType":"Block","src":"6510:163:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5575,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"6539:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6558:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6550:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5576,"name":"address","nodeType":"ElementaryTypeName","src":"6550:7:27","typeDescriptions":{}}},"id":5579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6550:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6539:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5581,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5566,"src":"6577:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5582,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"6586:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6577:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5585,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5566,"src":"6614:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5586,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"6621:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5584,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"6597:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":5587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6597:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6577:52:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5590,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5570,"src":"6646:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5589,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"6633:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6633:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5592,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"6658:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6633:32:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6577:88:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6576:90:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6539:127:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5574,"id":5597,"nodeType":"Return","src":"6520:146:27"}]},"documentation":{"id":5564,"nodeType":"StructuredDocumentation","src":"6096:300:27","text":" @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":5599,"implemented":true,"kind":"function","modifiers":[],"name":"_isAuthorized","nameLocation":"6410:13:27","nodeType":"FunctionDefinition","parameters":{"id":5571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5566,"mutability":"mutable","name":"owner","nameLocation":"6432:5:27","nodeType":"VariableDeclaration","scope":5599,"src":"6424:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5565,"name":"address","nodeType":"ElementaryTypeName","src":"6424:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5568,"mutability":"mutable","name":"spender","nameLocation":"6447:7:27","nodeType":"VariableDeclaration","scope":5599,"src":"6439:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5567,"name":"address","nodeType":"ElementaryTypeName","src":"6439:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5570,"mutability":"mutable","name":"tokenId","nameLocation":"6464:7:27","nodeType":"VariableDeclaration","scope":5599,"src":"6456:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5569,"name":"uint256","nodeType":"ElementaryTypeName","src":"6456:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6423:49:27"},"returnParameters":{"id":5574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5599,"src":"6504:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5572,"name":"bool","nodeType":"ElementaryTypeName","src":"6504:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6503:6:27"},"scope":6129,"src":"6401:272:27","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5635,"nodeType":"Block","src":"7202:271:27","statements":[{"condition":{"id":5614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7216:39:27","subExpression":{"arguments":[{"id":5610,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5602,"src":"7231:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5611,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5604,"src":"7238:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5612,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5606,"src":"7247:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5609,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5599,"src":"7217:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) view returns (bool)"}},"id":5613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7217:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5634,"nodeType":"IfStatement","src":"7212:255:27","trueBody":{"id":5633,"nodeType":"Block","src":"7257:210:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5615,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5602,"src":"7275:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7292:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7284:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5616,"name":"address","nodeType":"ElementaryTypeName","src":"7284:7:27","typeDescriptions":{}}},"id":5619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7284:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7275:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5631,"nodeType":"Block","src":"7373:84:27","statements":[{"errorCall":{"arguments":[{"id":5627,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5604,"src":"7425:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5628,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5606,"src":"7434:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5626,"name":"ERC721InsufficientApproval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"7398:26:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":5629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7398:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5630,"nodeType":"RevertStatement","src":"7391:51:27"}]},"id":5632,"nodeType":"IfStatement","src":"7271:186:27","trueBody":{"id":5625,"nodeType":"Block","src":"7296:71:27","statements":[{"errorCall":{"arguments":[{"id":5622,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5606,"src":"7344:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5621,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3318,"src":"7321:22:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":5623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7321:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5624,"nodeType":"RevertStatement","src":"7314:38:27"}]}}]}}]},"documentation":{"id":5600,"nodeType":"StructuredDocumentation","src":"6679:421:27","text":" @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if:\n - `spender` does not have approval from `owner` for `tokenId`.\n - `spender` does not have approval to manage all of `owner`'s assets.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":5636,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAuthorized","nameLocation":"7114:16:27","nodeType":"FunctionDefinition","parameters":{"id":5607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5602,"mutability":"mutable","name":"owner","nameLocation":"7139:5:27","nodeType":"VariableDeclaration","scope":5636,"src":"7131:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5601,"name":"address","nodeType":"ElementaryTypeName","src":"7131:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5604,"mutability":"mutable","name":"spender","nameLocation":"7154:7:27","nodeType":"VariableDeclaration","scope":5636,"src":"7146:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5603,"name":"address","nodeType":"ElementaryTypeName","src":"7146:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5606,"mutability":"mutable","name":"tokenId","nameLocation":"7171:7:27","nodeType":"VariableDeclaration","scope":5636,"src":"7163:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7130:49:27"},"returnParameters":{"id":5608,"nodeType":"ParameterList","parameters":[],"src":"7202:0:27"},"scope":6129,"src":"7105:368:27","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5651,"nodeType":"Block","src":"8190:78:27","statements":[{"id":5650,"nodeType":"UncheckedBlock","src":"8200:62:27","statements":[{"expression":{"id":5648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5644,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"8224:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5646,"indexExpression":{"id":5645,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5639,"src":"8234:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8224:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5647,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5641,"src":"8246:5:27","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"8224:27:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5649,"nodeType":"ExpressionStatement","src":"8224:27:27"}]}]},"documentation":{"id":5637,"nodeType":"StructuredDocumentation","src":"7479:631:27","text":" @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another."},"id":5652,"implemented":true,"kind":"function","modifiers":[],"name":"_increaseBalance","nameLocation":"8124:16:27","nodeType":"FunctionDefinition","parameters":{"id":5642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5639,"mutability":"mutable","name":"account","nameLocation":"8149:7:27","nodeType":"VariableDeclaration","scope":5652,"src":"8141:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5638,"name":"address","nodeType":"ElementaryTypeName","src":"8141:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5641,"mutability":"mutable","name":"value","nameLocation":"8166:5:27","nodeType":"VariableDeclaration","scope":5652,"src":"8158:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":5640,"name":"uint128","nodeType":"ElementaryTypeName","src":"8158:7:27","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"8140:32:27"},"returnParameters":{"id":5643,"nodeType":"ParameterList","parameters":[],"src":"8190:0:27"},"scope":6129,"src":"8115:153:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5741,"nodeType":"Block","src":"8956:700:27","statements":[{"assignments":[5665],"declarations":[{"constant":false,"id":5665,"mutability":"mutable","name":"from","nameLocation":"8974:4:27","nodeType":"VariableDeclaration","scope":5741,"src":"8966:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5664,"name":"address","nodeType":"ElementaryTypeName","src":"8966:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5669,"initialValue":{"arguments":[{"id":5667,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"8990:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5666,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5550,"src":"8981:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8981:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8966:32:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5670,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5659,"src":"9058:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9074:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9066:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5671,"name":"address","nodeType":"ElementaryTypeName","src":"9066:7:27","typeDescriptions":{}}},"id":5674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9066:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9058:18:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5683,"nodeType":"IfStatement","src":"9054:86:27","trueBody":{"id":5682,"nodeType":"Block","src":"9078:62:27","statements":[{"expression":{"arguments":[{"id":5677,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5665,"src":"9109:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5678,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5659,"src":"9115:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5679,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9121:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5676,"name":"_checkAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5636,"src":"9092:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) view"}},"id":5680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9092:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5681,"nodeType":"ExpressionStatement","src":"9092:37:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5684,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5665,"src":"9184:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9200:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9192:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5685,"name":"address","nodeType":"ElementaryTypeName","src":"9192:7:27","typeDescriptions":{}}},"id":5688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9192:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9184:18:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5711,"nodeType":"IfStatement","src":"9180:256:27","trueBody":{"id":5710,"nodeType":"Block","src":"9204:232:27","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9317:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9309:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5691,"name":"address","nodeType":"ElementaryTypeName","src":"9309:7:27","typeDescriptions":{}}},"id":5694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9309:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5695,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9321:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":5698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9338:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9330:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5696,"name":"address","nodeType":"ElementaryTypeName","src":"9330:7:27","typeDescriptions":{}}},"id":5699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9330:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":5700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9342:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5690,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[5996,6062],"referencedDeclaration":6062,"src":"9300:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":5701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9300:48:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5702,"nodeType":"ExpressionStatement","src":"9300:48:27"},{"id":5709,"nodeType":"UncheckedBlock","src":"9363:63:27","statements":[{"expression":{"id":5707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5703,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"9391:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5705,"indexExpression":{"id":5704,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5665,"src":"9401:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9391:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":5706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9410:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9391:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5708,"nodeType":"ExpressionStatement","src":"9391:20:27"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5712,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5655,"src":"9450:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9464:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9456:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5713,"name":"address","nodeType":"ElementaryTypeName","src":"9456:7:27","typeDescriptions":{}}},"id":5716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9456:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9450:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5726,"nodeType":"IfStatement","src":"9446:107:27","trueBody":{"id":5725,"nodeType":"Block","src":"9468:85:27","statements":[{"id":5724,"nodeType":"UncheckedBlock","src":"9482:61:27","statements":[{"expression":{"id":5722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5718,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"9510:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5720,"indexExpression":{"id":5719,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5655,"src":"9520:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9510:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":5721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9527:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9510:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5723,"nodeType":"ExpressionStatement","src":"9510:18:27"}]}]}},{"expression":{"id":5731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5727,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5211,"src":"9563:7:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":5729,"indexExpression":{"id":5728,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9571:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9563:16:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5730,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5655,"src":"9582:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9563:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5732,"nodeType":"ExpressionStatement","src":"9563:21:27"},{"eventCall":{"arguments":[{"id":5734,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5665,"src":"9609:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5735,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5655,"src":"9615:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5736,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9619:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5733,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"9600:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9600:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5738,"nodeType":"EmitStatement","src":"9595:32:27"},{"expression":{"id":5739,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5665,"src":"9645:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5663,"id":5740,"nodeType":"Return","src":"9638:11:27"}]},"documentation":{"id":5653,"nodeType":"StructuredDocumentation","src":"8274:582:27","text":" @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}."},"id":5742,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"8870:7:27","nodeType":"FunctionDefinition","parameters":{"id":5660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5655,"mutability":"mutable","name":"to","nameLocation":"8886:2:27","nodeType":"VariableDeclaration","scope":5742,"src":"8878:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5654,"name":"address","nodeType":"ElementaryTypeName","src":"8878:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5657,"mutability":"mutable","name":"tokenId","nameLocation":"8898:7:27","nodeType":"VariableDeclaration","scope":5742,"src":"8890:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5656,"name":"uint256","nodeType":"ElementaryTypeName","src":"8890:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5659,"mutability":"mutable","name":"auth","nameLocation":"8915:4:27","nodeType":"VariableDeclaration","scope":5742,"src":"8907:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5658,"name":"address","nodeType":"ElementaryTypeName","src":"8907:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8877:43:27"},"returnParameters":{"id":5663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5742,"src":"8947:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5661,"name":"address","nodeType":"ElementaryTypeName","src":"8947:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8946:9:27"},"scope":6129,"src":"8861:795:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5791,"nodeType":"Block","src":"10031:274:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5750,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5745,"src":"10045:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10059:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10051:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5751,"name":"address","nodeType":"ElementaryTypeName","src":"10051:7:27","typeDescriptions":{}}},"id":5754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10051:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10045:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5764,"nodeType":"IfStatement","src":"10041:87:27","trueBody":{"id":5763,"nodeType":"Block","src":"10063:65:27","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10114:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10106:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5757,"name":"address","nodeType":"ElementaryTypeName","src":"10106:7:27","typeDescriptions":{}}},"id":5760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10106:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5756,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3337,"src":"10084:21:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":5761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10084:33:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5762,"nodeType":"RevertStatement","src":"10077:40:27"}]}},{"assignments":[5766],"declarations":[{"constant":false,"id":5766,"mutability":"mutable","name":"previousOwner","nameLocation":"10145:13:27","nodeType":"VariableDeclaration","scope":5791,"src":"10137:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5765,"name":"address","nodeType":"ElementaryTypeName","src":"10137:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5775,"initialValue":{"arguments":[{"id":5768,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5745,"src":"10169:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5769,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5747,"src":"10173:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":5772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10190:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10182:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5770,"name":"address","nodeType":"ElementaryTypeName","src":"10182:7:27","typeDescriptions":{}}},"id":5773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10182:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5767,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5742,"src":"10161:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":5774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10161:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10137:56:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5776,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"10207:13:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10232:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10224:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5777,"name":"address","nodeType":"ElementaryTypeName","src":"10224:7:27","typeDescriptions":{}}},"id":5780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10224:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10207:27:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5790,"nodeType":"IfStatement","src":"10203:96:27","trueBody":{"id":5789,"nodeType":"Block","src":"10236:63:27","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10285:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10277:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5783,"name":"address","nodeType":"ElementaryTypeName","src":"10277:7:27","typeDescriptions":{}}},"id":5786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10277:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5782,"name":"ERC721InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"10257:19:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":5787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10257:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5788,"nodeType":"RevertStatement","src":"10250:38:27"}]}}]},"documentation":{"id":5743,"nodeType":"StructuredDocumentation","src":"9662:311:27","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":5792,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9987:5:27","nodeType":"FunctionDefinition","parameters":{"id":5748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5745,"mutability":"mutable","name":"to","nameLocation":"10001:2:27","nodeType":"VariableDeclaration","scope":5792,"src":"9993:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5744,"name":"address","nodeType":"ElementaryTypeName","src":"9993:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5747,"mutability":"mutable","name":"tokenId","nameLocation":"10013:7:27","nodeType":"VariableDeclaration","scope":5792,"src":"10005:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5746,"name":"uint256","nodeType":"ElementaryTypeName","src":"10005:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9992:29:27"},"returnParameters":{"id":5749,"nodeType":"ParameterList","parameters":[],"src":"10031:0:27"},"scope":6129,"src":"9978:327:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5806,"nodeType":"Block","src":"10713:43:27","statements":[{"expression":{"arguments":[{"id":5801,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5795,"src":"10733:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5802,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5797,"src":"10737:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":5803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10746:2:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":5800,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[5807,5837],"referencedDeclaration":5837,"src":"10723:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":5804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10723:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5805,"nodeType":"ExpressionStatement","src":"10723:26:27"}]},"documentation":{"id":5793,"nodeType":"StructuredDocumentation","src":"10311:340:27","text":" @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":5807,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"10665:9:27","nodeType":"FunctionDefinition","parameters":{"id":5798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5795,"mutability":"mutable","name":"to","nameLocation":"10683:2:27","nodeType":"VariableDeclaration","scope":5807,"src":"10675:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5794,"name":"address","nodeType":"ElementaryTypeName","src":"10675:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5797,"mutability":"mutable","name":"tokenId","nameLocation":"10695:7:27","nodeType":"VariableDeclaration","scope":5807,"src":"10687:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5796,"name":"uint256","nodeType":"ElementaryTypeName","src":"10687:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10674:29:27"},"returnParameters":{"id":5799,"nodeType":"ParameterList","parameters":[],"src":"10713:0:27"},"scope":6129,"src":"10656:100:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5836,"nodeType":"Block","src":"11061:123:27","statements":[{"expression":{"arguments":[{"id":5818,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5810,"src":"11077:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5819,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5812,"src":"11081:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5817,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5792,"src":"11071:5:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11071:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5821,"nodeType":"ExpressionStatement","src":"11071:18:27"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5825,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"11133:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11133:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11155:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11147:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5827,"name":"address","nodeType":"ElementaryTypeName","src":"11147:7:27","typeDescriptions":{}}},"id":5830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11147:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5831,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5810,"src":"11159:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5832,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5812,"src":"11163:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5833,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5814,"src":"11172:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5822,"name":"ERC721Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"11099:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Utils_$6369_$","typeString":"type(library ERC721Utils)"}},"id":5824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11111:21:27","memberName":"checkOnERC721Received","nodeType":"MemberAccess","referencedDeclaration":6368,"src":"11099:33:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,bytes memory)"}},"id":5834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11099:78:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5835,"nodeType":"ExpressionStatement","src":"11099:78:27"}]},"documentation":{"id":5808,"nodeType":"StructuredDocumentation","src":"10762:210:27","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":5837,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"10986:9:27","nodeType":"FunctionDefinition","parameters":{"id":5815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5810,"mutability":"mutable","name":"to","nameLocation":"11004:2:27","nodeType":"VariableDeclaration","scope":5837,"src":"10996:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5809,"name":"address","nodeType":"ElementaryTypeName","src":"10996:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5812,"mutability":"mutable","name":"tokenId","nameLocation":"11016:7:27","nodeType":"VariableDeclaration","scope":5837,"src":"11008:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5811,"name":"uint256","nodeType":"ElementaryTypeName","src":"11008:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5814,"mutability":"mutable","name":"data","nameLocation":"11038:4:27","nodeType":"VariableDeclaration","scope":5837,"src":"11025:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5813,"name":"bytes","nodeType":"ElementaryTypeName","src":"11025:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10995:48:27"},"returnParameters":{"id":5816,"nodeType":"ParameterList","parameters":[],"src":"11061:0:27"},"scope":6129,"src":"10977:207:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5869,"nodeType":"Block","src":"11551:186:27","statements":[{"assignments":[5844],"declarations":[{"constant":false,"id":5844,"mutability":"mutable","name":"previousOwner","nameLocation":"11569:13:27","nodeType":"VariableDeclaration","scope":5869,"src":"11561:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5843,"name":"address","nodeType":"ElementaryTypeName","src":"11561:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5856,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":5848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11601:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11593:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5846,"name":"address","nodeType":"ElementaryTypeName","src":"11593:7:27","typeDescriptions":{}}},"id":5849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11593:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5850,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5840,"src":"11605:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":5853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11622:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11614:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5851,"name":"address","nodeType":"ElementaryTypeName","src":"11614:7:27","typeDescriptions":{}}},"id":5854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11614:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5845,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5742,"src":"11585:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":5855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11585:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11561:64:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5857,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5844,"src":"11639:13:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11664:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11656:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5858,"name":"address","nodeType":"ElementaryTypeName","src":"11656:7:27","typeDescriptions":{}}},"id":5861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11656:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11639:27:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5868,"nodeType":"IfStatement","src":"11635:96:27","trueBody":{"id":5867,"nodeType":"Block","src":"11668:63:27","statements":[{"errorCall":{"arguments":[{"id":5864,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5840,"src":"11712:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5863,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3318,"src":"11689:22:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":5865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11689:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5866,"nodeType":"RevertStatement","src":"11682:38:27"}]}}]},"documentation":{"id":5838,"nodeType":"StructuredDocumentation","src":"11190:315:27","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":5870,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"11519:5:27","nodeType":"FunctionDefinition","parameters":{"id":5841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5840,"mutability":"mutable","name":"tokenId","nameLocation":"11533:7:27","nodeType":"VariableDeclaration","scope":5870,"src":"11525:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5839,"name":"uint256","nodeType":"ElementaryTypeName","src":"11525:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11524:17:27"},"returnParameters":{"id":5842,"nodeType":"ParameterList","parameters":[],"src":"11551:0:27"},"scope":6129,"src":"11510:227:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5929,"nodeType":"Block","src":"12132:389:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5880,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"12146:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12160:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12152:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5881,"name":"address","nodeType":"ElementaryTypeName","src":"12152:7:27","typeDescriptions":{}}},"id":5884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12152:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12146:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5894,"nodeType":"IfStatement","src":"12142:87:27","trueBody":{"id":5893,"nodeType":"Block","src":"12164:65:27","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12215:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12207:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5887,"name":"address","nodeType":"ElementaryTypeName","src":"12207:7:27","typeDescriptions":{}}},"id":5890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12207:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5886,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3337,"src":"12185:21:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":5891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12185:33:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5892,"nodeType":"RevertStatement","src":"12178:40:27"}]}},{"assignments":[5896],"declarations":[{"constant":false,"id":5896,"mutability":"mutable","name":"previousOwner","nameLocation":"12246:13:27","nodeType":"VariableDeclaration","scope":5929,"src":"12238:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5895,"name":"address","nodeType":"ElementaryTypeName","src":"12238:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5905,"initialValue":{"arguments":[{"id":5898,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"12270:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5899,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"12274:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":5902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12291:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12283:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5900,"name":"address","nodeType":"ElementaryTypeName","src":"12283:7:27","typeDescriptions":{}}},"id":5903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12283:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5897,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5742,"src":"12262:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":5904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12262:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12238:56:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5906,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5896,"src":"12308:13:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12333:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12325:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5907,"name":"address","nodeType":"ElementaryTypeName","src":"12325:7:27","typeDescriptions":{}}},"id":5910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12325:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12308:27:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5917,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5896,"src":"12410:13:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5918,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"12427:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12410:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5927,"nodeType":"IfStatement","src":"12406:109:27","trueBody":{"id":5926,"nodeType":"Block","src":"12433:82:27","statements":[{"errorCall":{"arguments":[{"id":5921,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"12475:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5922,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"12481:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5923,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5896,"src":"12490:13:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5920,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3327,"src":"12454:20:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$_t_error_$","typeString":"function (address,uint256,address) pure returns (error)"}},"id":5924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12454:50:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5925,"nodeType":"RevertStatement","src":"12447:57:27"}]}},"id":5928,"nodeType":"IfStatement","src":"12304:211:27","trueBody":{"id":5916,"nodeType":"Block","src":"12337:63:27","statements":[{"errorCall":{"arguments":[{"id":5913,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"12381:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5912,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3318,"src":"12358:22:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":5914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12358:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5915,"nodeType":"RevertStatement","src":"12351:38:27"}]}}]},"documentation":{"id":5871,"nodeType":"StructuredDocumentation","src":"11743:313:27","text":" @dev Transfers `tokenId` from `from` to `to`.\n  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":5930,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"12070:9:27","nodeType":"FunctionDefinition","parameters":{"id":5878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5873,"mutability":"mutable","name":"from","nameLocation":"12088:4:27","nodeType":"VariableDeclaration","scope":5930,"src":"12080:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5872,"name":"address","nodeType":"ElementaryTypeName","src":"12080:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5875,"mutability":"mutable","name":"to","nameLocation":"12102:2:27","nodeType":"VariableDeclaration","scope":5930,"src":"12094:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5874,"name":"address","nodeType":"ElementaryTypeName","src":"12094:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5877,"mutability":"mutable","name":"tokenId","nameLocation":"12114:7:27","nodeType":"VariableDeclaration","scope":5930,"src":"12106:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5876,"name":"uint256","nodeType":"ElementaryTypeName","src":"12106:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12079:43:27"},"returnParameters":{"id":5879,"nodeType":"ParameterList","parameters":[],"src":"12132:0:27"},"scope":6129,"src":"12061:460:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5947,"nodeType":"Block","src":"13530:53:27","statements":[{"expression":{"arguments":[{"id":5941,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5933,"src":"13554:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5942,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"13560:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5943,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"13564:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":5944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13573:2:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":5940,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[5948,5978],"referencedDeclaration":5978,"src":"13540:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":5945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13540:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5946,"nodeType":"ExpressionStatement","src":"13540:36:27"}]},"documentation":{"id":5931,"nodeType":"StructuredDocumentation","src":"12527:923:27","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC-721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":5948,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"13464:13:27","nodeType":"FunctionDefinition","parameters":{"id":5938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5933,"mutability":"mutable","name":"from","nameLocation":"13486:4:27","nodeType":"VariableDeclaration","scope":5948,"src":"13478:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5932,"name":"address","nodeType":"ElementaryTypeName","src":"13478:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5935,"mutability":"mutable","name":"to","nameLocation":"13500:2:27","nodeType":"VariableDeclaration","scope":5948,"src":"13492:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5934,"name":"address","nodeType":"ElementaryTypeName","src":"13492:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5937,"mutability":"mutable","name":"tokenId","nameLocation":"13512:7:27","nodeType":"VariableDeclaration","scope":5948,"src":"13504:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5936,"name":"uint256","nodeType":"ElementaryTypeName","src":"13504:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13477:43:27"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[],"src":"13530:0:27"},"scope":6129,"src":"13455:128:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5977,"nodeType":"Block","src":"13922:127:27","statements":[{"expression":{"arguments":[{"id":5961,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5951,"src":"13942:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5962,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"13948:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5963,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5955,"src":"13952:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5960,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5930,"src":"13932:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13932:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5965,"nodeType":"ExpressionStatement","src":"13932:28:27"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5969,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"14004:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14004:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5971,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5951,"src":"14018:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5972,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"14024:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5973,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5955,"src":"14028:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5974,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5957,"src":"14037:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5966,"name":"ERC721Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"13970:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Utils_$6369_$","typeString":"type(library ERC721Utils)"}},"id":5968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13982:21:27","memberName":"checkOnERC721Received","nodeType":"MemberAccess","referencedDeclaration":6368,"src":"13970:33:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,bytes memory)"}},"id":5975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13970:72:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5976,"nodeType":"ExpressionStatement","src":"13970:72:27"}]},"documentation":{"id":5949,"nodeType":"StructuredDocumentation","src":"13589:226:27","text":" @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":5978,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"13829:13:27","nodeType":"FunctionDefinition","parameters":{"id":5958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5951,"mutability":"mutable","name":"from","nameLocation":"13851:4:27","nodeType":"VariableDeclaration","scope":5978,"src":"13843:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5950,"name":"address","nodeType":"ElementaryTypeName","src":"13843:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5953,"mutability":"mutable","name":"to","nameLocation":"13865:2:27","nodeType":"VariableDeclaration","scope":5978,"src":"13857:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5952,"name":"address","nodeType":"ElementaryTypeName","src":"13857:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5955,"mutability":"mutable","name":"tokenId","nameLocation":"13877:7:27","nodeType":"VariableDeclaration","scope":5978,"src":"13869:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5954,"name":"uint256","nodeType":"ElementaryTypeName","src":"13869:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5957,"mutability":"mutable","name":"data","nameLocation":"13899:4:27","nodeType":"VariableDeclaration","scope":5978,"src":"13886:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5956,"name":"bytes","nodeType":"ElementaryTypeName","src":"13886:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13842:62:27"},"returnParameters":{"id":5959,"nodeType":"ParameterList","parameters":[],"src":"13922:0:27"},"scope":6129,"src":"13820:229:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5995,"nodeType":"Block","src":"14562:50:27","statements":[{"expression":{"arguments":[{"id":5989,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5981,"src":"14581:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5990,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5983,"src":"14585:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5991,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"14594:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":5992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14600:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5988,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[5996,6062],"referencedDeclaration":6062,"src":"14572:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":5993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14572:33:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5994,"nodeType":"ExpressionStatement","src":"14572:33:27"}]},"documentation":{"id":5979,"nodeType":"StructuredDocumentation","src":"14055:432:27","text":" @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":5996,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"14501:8:27","nodeType":"FunctionDefinition","parameters":{"id":5986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5981,"mutability":"mutable","name":"to","nameLocation":"14518:2:27","nodeType":"VariableDeclaration","scope":5996,"src":"14510:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5980,"name":"address","nodeType":"ElementaryTypeName","src":"14510:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5983,"mutability":"mutable","name":"tokenId","nameLocation":"14530:7:27","nodeType":"VariableDeclaration","scope":5996,"src":"14522:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5982,"name":"uint256","nodeType":"ElementaryTypeName","src":"14522:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5985,"mutability":"mutable","name":"auth","nameLocation":"14547:4:27","nodeType":"VariableDeclaration","scope":5996,"src":"14539:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5984,"name":"address","nodeType":"ElementaryTypeName","src":"14539:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14509:43:27"},"returnParameters":{"id":5987,"nodeType":"ParameterList","parameters":[],"src":"14562:0:27"},"scope":6129,"src":"14492:120:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6061,"nodeType":"Block","src":"14888:568:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6008,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"14954:9:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6009,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"14967:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14983:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14975:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6010,"name":"address","nodeType":"ElementaryTypeName","src":"14975:7:27","typeDescriptions":{}}},"id":6013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14975:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14967:18:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14954:31:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6054,"nodeType":"IfStatement","src":"14950:460:27","trueBody":{"id":6053,"nodeType":"Block","src":"14987:423:27","statements":[{"assignments":[6017],"declarations":[{"constant":false,"id":6017,"mutability":"mutable","name":"owner","nameLocation":"15009:5:27","nodeType":"VariableDeclaration","scope":6053,"src":"15001:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6016,"name":"address","nodeType":"ElementaryTypeName","src":"15001:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6021,"initialValue":{"arguments":[{"id":6019,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"15031:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6018,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"15017:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15017:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15001:38:27"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6022,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"15167:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15183:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15175:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6023,"name":"address","nodeType":"ElementaryTypeName","src":"15175:7:27","typeDescriptions":{}}},"id":6026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15175:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15167:18:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6028,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"15189:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6029,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"15198:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15189:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15167:35:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":6036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15206:30:27","subExpression":{"arguments":[{"id":6033,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"15224:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6034,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"15231:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6032,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"15207:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":6035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15207:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15167:69:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6043,"nodeType":"IfStatement","src":"15163:142:27","trueBody":{"id":6042,"nodeType":"Block","src":"15238:67:27","statements":[{"errorCall":{"arguments":[{"id":6039,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"15285:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6038,"name":"ERC721InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3349,"src":"15263:21:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15263:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6041,"nodeType":"RevertStatement","src":"15256:34:27"}]}},{"condition":{"id":6044,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"15323:9:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6052,"nodeType":"IfStatement","src":"15319:81:27","trueBody":{"id":6051,"nodeType":"Block","src":"15334:66:27","statements":[{"eventCall":{"arguments":[{"id":6046,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"15366:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6047,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"15373:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6048,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"15377:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6045,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"15357:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15357:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6050,"nodeType":"EmitStatement","src":"15352:33:27"}]}}]}},{"expression":{"id":6059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6055,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5219,"src":"15420:15:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6057,"indexExpression":{"id":6056,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"15436:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15420:24:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6058,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"15447:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15420:29:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6060,"nodeType":"ExpressionStatement","src":"15420:29:27"}]},"documentation":{"id":5997,"nodeType":"StructuredDocumentation","src":"14618:171:27","text":" @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers."},"id":6062,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"14803:8:27","nodeType":"FunctionDefinition","parameters":{"id":6006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5999,"mutability":"mutable","name":"to","nameLocation":"14820:2:27","nodeType":"VariableDeclaration","scope":6062,"src":"14812:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5998,"name":"address","nodeType":"ElementaryTypeName","src":"14812:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6001,"mutability":"mutable","name":"tokenId","nameLocation":"14832:7:27","nodeType":"VariableDeclaration","scope":6062,"src":"14824:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6000,"name":"uint256","nodeType":"ElementaryTypeName","src":"14824:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6003,"mutability":"mutable","name":"auth","nameLocation":"14849:4:27","nodeType":"VariableDeclaration","scope":6062,"src":"14841:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6002,"name":"address","nodeType":"ElementaryTypeName","src":"14841:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6005,"mutability":"mutable","name":"emitEvent","nameLocation":"14860:9:27","nodeType":"VariableDeclaration","scope":6062,"src":"14855:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6004,"name":"bool","nodeType":"ElementaryTypeName","src":"14855:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14811:59:27"},"returnParameters":{"id":6007,"nodeType":"ParameterList","parameters":[],"src":"14888:0:27"},"scope":6129,"src":"14794:662:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6098,"nodeType":"Block","src":"15758:219:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6072,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"15772:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15792:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15784:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6073,"name":"address","nodeType":"ElementaryTypeName","src":"15784:7:27","typeDescriptions":{}}},"id":6076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15784:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15772:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6083,"nodeType":"IfStatement","src":"15768:91:27","trueBody":{"id":6082,"nodeType":"Block","src":"15796:63:27","statements":[{"errorCall":{"arguments":[{"id":6079,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"15839:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6078,"name":"ERC721InvalidOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"15817:21:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15817:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6081,"nodeType":"RevertStatement","src":"15810:38:27"}]}},{"expression":{"id":6090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":6084,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"15868:18:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":6087,"indexExpression":{"id":6085,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6065,"src":"15887:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15868:25:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6088,"indexExpression":{"id":6086,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"15894:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15868:35:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6089,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6069,"src":"15906:8:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15868:46:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6091,"nodeType":"ExpressionStatement","src":"15868:46:27"},{"eventCall":{"arguments":[{"id":6093,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6065,"src":"15944:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6094,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"15951:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6095,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6069,"src":"15961:8:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6092,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"15929:14:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":6096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15929:41:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6097,"nodeType":"EmitStatement","src":"15924:46:27"}]},"documentation":{"id":6063,"nodeType":"StructuredDocumentation","src":"15462:198:27","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event."},"id":6099,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"15674:18:27","nodeType":"FunctionDefinition","parameters":{"id":6070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6065,"mutability":"mutable","name":"owner","nameLocation":"15701:5:27","nodeType":"VariableDeclaration","scope":6099,"src":"15693:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6064,"name":"address","nodeType":"ElementaryTypeName","src":"15693:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6067,"mutability":"mutable","name":"operator","nameLocation":"15716:8:27","nodeType":"VariableDeclaration","scope":6099,"src":"15708:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6066,"name":"address","nodeType":"ElementaryTypeName","src":"15708:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6069,"mutability":"mutable","name":"approved","nameLocation":"15731:8:27","nodeType":"VariableDeclaration","scope":6099,"src":"15726:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6068,"name":"bool","nodeType":"ElementaryTypeName","src":"15726:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15692:48:27"},"returnParameters":{"id":6071,"nodeType":"ParameterList","parameters":[],"src":"15758:0:27"},"scope":6129,"src":"15665:312:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6127,"nodeType":"Block","src":"16284:169:27","statements":[{"assignments":[6108],"declarations":[{"constant":false,"id":6108,"mutability":"mutable","name":"owner","nameLocation":"16302:5:27","nodeType":"VariableDeclaration","scope":6127,"src":"16294:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6107,"name":"address","nodeType":"ElementaryTypeName","src":"16294:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6112,"initialValue":{"arguments":[{"id":6110,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"16319:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6109,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5550,"src":"16310:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16310:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16294:33:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6113,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"16341:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16358:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16350:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6114,"name":"address","nodeType":"ElementaryTypeName","src":"16350:7:27","typeDescriptions":{}}},"id":6117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16350:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16341:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6124,"nodeType":"IfStatement","src":"16337:88:27","trueBody":{"id":6123,"nodeType":"Block","src":"16362:63:27","statements":[{"errorCall":{"arguments":[{"id":6120,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"16406:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6119,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3318,"src":"16383:22:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":6121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16383:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6122,"nodeType":"RevertStatement","src":"16376:38:27"}]}},{"expression":{"id":6125,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"16441:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6106,"id":6126,"nodeType":"Return","src":"16434:12:27"}]},"documentation":{"id":6100,"nodeType":"StructuredDocumentation","src":"15983:224:27","text":" @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}."},"id":6128,"implemented":true,"kind":"function","modifiers":[],"name":"_requireOwned","nameLocation":"16221:13:27","nodeType":"FunctionDefinition","parameters":{"id":6103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6102,"mutability":"mutable","name":"tokenId","nameLocation":"16243:7:27","nodeType":"VariableDeclaration","scope":6128,"src":"16235:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6101,"name":"uint256","nodeType":"ElementaryTypeName","src":"16235:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16234:17:27"},"returnParameters":{"id":6106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6128,"src":"16275:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6104,"name":"address","nodeType":"ElementaryTypeName","src":"16275:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16274:9:27"},"scope":6129,"src":"16212:241:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":6130,"src":"775:15680:27","usedErrors":[3313,3318,3327,3332,3337,3344,3349,3354],"usedEvents":[6145,6154,6163]}],"src":"107:16349:27"},"id":27},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[8493],"IERC721":[6246]},"id":6247,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6131,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:28"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":6133,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6247,"sourceUnit":8494,"src":"134:62:28","symbolAliases":[{"foreign":{"id":6132,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"142:7:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6135,"name":"IERC165","nameLocations":["288:7:28"],"nodeType":"IdentifierPath","referencedDeclaration":8493,"src":"288:7:28"},"id":6136,"nodeType":"InheritanceSpecifier","src":"288:7:28"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":6134,"nodeType":"StructuredDocumentation","src":"198:68:28","text":" @dev Required interface of an ERC-721 compliant contract."},"fullyImplemented":false,"id":6246,"linearizedBaseContracts":[6246,8493],"name":"IERC721","nameLocation":"277:7:28","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6137,"nodeType":"StructuredDocumentation","src":"302:88:28","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":6145,"name":"Transfer","nameLocation":"401:8:28","nodeType":"EventDefinition","parameters":{"id":6144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6139,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"426:4:28","nodeType":"VariableDeclaration","scope":6145,"src":"410:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6138,"name":"address","nodeType":"ElementaryTypeName","src":"410:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6141,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"448:2:28","nodeType":"VariableDeclaration","scope":6145,"src":"432:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6140,"name":"address","nodeType":"ElementaryTypeName","src":"432:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6143,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"468:7:28","nodeType":"VariableDeclaration","scope":6145,"src":"452:23:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6142,"name":"uint256","nodeType":"ElementaryTypeName","src":"452:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:67:28"},"src":"395:82:28"},{"anonymous":false,"documentation":{"id":6146,"nodeType":"StructuredDocumentation","src":"483:94:28","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":6154,"name":"Approval","nameLocation":"588:8:28","nodeType":"EventDefinition","parameters":{"id":6153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6148,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"613:5:28","nodeType":"VariableDeclaration","scope":6154,"src":"597:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6147,"name":"address","nodeType":"ElementaryTypeName","src":"597:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6150,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"636:8:28","nodeType":"VariableDeclaration","scope":6154,"src":"620:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6149,"name":"address","nodeType":"ElementaryTypeName","src":"620:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6152,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"662:7:28","nodeType":"VariableDeclaration","scope":6154,"src":"646:23:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6151,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"596:74:28"},"src":"582:89:28"},{"anonymous":false,"documentation":{"id":6155,"nodeType":"StructuredDocumentation","src":"677:117:28","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":6163,"name":"ApprovalForAll","nameLocation":"805:14:28","nodeType":"EventDefinition","parameters":{"id":6162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6157,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"836:5:28","nodeType":"VariableDeclaration","scope":6163,"src":"820:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6156,"name":"address","nodeType":"ElementaryTypeName","src":"820:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6159,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"859:8:28","nodeType":"VariableDeclaration","scope":6163,"src":"843:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6158,"name":"address","nodeType":"ElementaryTypeName","src":"843:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6161,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"874:8:28","nodeType":"VariableDeclaration","scope":6163,"src":"869:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6160,"name":"bool","nodeType":"ElementaryTypeName","src":"869:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"819:64:28"},"src":"799:85:28"},{"documentation":{"id":6164,"nodeType":"StructuredDocumentation","src":"890:76:28","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":6171,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"980:9:28","nodeType":"FunctionDefinition","parameters":{"id":6167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6166,"mutability":"mutable","name":"owner","nameLocation":"998:5:28","nodeType":"VariableDeclaration","scope":6171,"src":"990:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6165,"name":"address","nodeType":"ElementaryTypeName","src":"990:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"989:15:28"},"returnParameters":{"id":6170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6169,"mutability":"mutable","name":"balance","nameLocation":"1036:7:28","nodeType":"VariableDeclaration","scope":6171,"src":"1028:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1028:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1027:17:28"},"scope":6246,"src":"971:74:28","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6172,"nodeType":"StructuredDocumentation","src":"1051:131:28","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":6179,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1196:7:28","nodeType":"FunctionDefinition","parameters":{"id":6175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6174,"mutability":"mutable","name":"tokenId","nameLocation":"1212:7:28","nodeType":"VariableDeclaration","scope":6179,"src":"1204:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6173,"name":"uint256","nodeType":"ElementaryTypeName","src":"1204:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1203:17:28"},"returnParameters":{"id":6178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6177,"mutability":"mutable","name":"owner","nameLocation":"1252:5:28","nodeType":"VariableDeclaration","scope":6179,"src":"1244:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6176,"name":"address","nodeType":"ElementaryTypeName","src":"1244:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1243:15:28"},"scope":6246,"src":"1187:72:28","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6180,"nodeType":"StructuredDocumentation","src":"1265:565:28","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n   a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":6191,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1844:16:28","nodeType":"FunctionDefinition","parameters":{"id":6189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6182,"mutability":"mutable","name":"from","nameLocation":"1869:4:28","nodeType":"VariableDeclaration","scope":6191,"src":"1861:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6181,"name":"address","nodeType":"ElementaryTypeName","src":"1861:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6184,"mutability":"mutable","name":"to","nameLocation":"1883:2:28","nodeType":"VariableDeclaration","scope":6191,"src":"1875:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6183,"name":"address","nodeType":"ElementaryTypeName","src":"1875:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6186,"mutability":"mutable","name":"tokenId","nameLocation":"1895:7:28","nodeType":"VariableDeclaration","scope":6191,"src":"1887:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6185,"name":"uint256","nodeType":"ElementaryTypeName","src":"1887:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6188,"mutability":"mutable","name":"data","nameLocation":"1919:4:28","nodeType":"VariableDeclaration","scope":6191,"src":"1904:19:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6187,"name":"bytes","nodeType":"ElementaryTypeName","src":"1904:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1860:64:28"},"returnParameters":{"id":6190,"nodeType":"ParameterList","parameters":[],"src":"1933:0:28"},"scope":6246,"src":"1835:99:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6192,"nodeType":"StructuredDocumentation","src":"1940:706:28","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC-721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n   {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n   a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":6201,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2660:16:28","nodeType":"FunctionDefinition","parameters":{"id":6199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6194,"mutability":"mutable","name":"from","nameLocation":"2685:4:28","nodeType":"VariableDeclaration","scope":6201,"src":"2677:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6193,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6196,"mutability":"mutable","name":"to","nameLocation":"2699:2:28","nodeType":"VariableDeclaration","scope":6201,"src":"2691:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6195,"name":"address","nodeType":"ElementaryTypeName","src":"2691:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6198,"mutability":"mutable","name":"tokenId","nameLocation":"2711:7:28","nodeType":"VariableDeclaration","scope":6201,"src":"2703:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6197,"name":"uint256","nodeType":"ElementaryTypeName","src":"2703:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2676:43:28"},"returnParameters":{"id":6200,"nodeType":"ParameterList","parameters":[],"src":"2728:0:28"},"scope":6246,"src":"2651:78:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6202,"nodeType":"StructuredDocumentation","src":"2735:733:28","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":6211,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3482:12:28","nodeType":"FunctionDefinition","parameters":{"id":6209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6204,"mutability":"mutable","name":"from","nameLocation":"3503:4:28","nodeType":"VariableDeclaration","scope":6211,"src":"3495:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6203,"name":"address","nodeType":"ElementaryTypeName","src":"3495:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6206,"mutability":"mutable","name":"to","nameLocation":"3517:2:28","nodeType":"VariableDeclaration","scope":6211,"src":"3509:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6205,"name":"address","nodeType":"ElementaryTypeName","src":"3509:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6208,"mutability":"mutable","name":"tokenId","nameLocation":"3529:7:28","nodeType":"VariableDeclaration","scope":6211,"src":"3521:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6207,"name":"uint256","nodeType":"ElementaryTypeName","src":"3521:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3494:43:28"},"returnParameters":{"id":6210,"nodeType":"ParameterList","parameters":[],"src":"3546:0:28"},"scope":6246,"src":"3473:74:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6212,"nodeType":"StructuredDocumentation","src":"3553:452:28","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":6219,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4019:7:28","nodeType":"FunctionDefinition","parameters":{"id":6217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6214,"mutability":"mutable","name":"to","nameLocation":"4035:2:28","nodeType":"VariableDeclaration","scope":6219,"src":"4027:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6213,"name":"address","nodeType":"ElementaryTypeName","src":"4027:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6216,"mutability":"mutable","name":"tokenId","nameLocation":"4047:7:28","nodeType":"VariableDeclaration","scope":6219,"src":"4039:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6215,"name":"uint256","nodeType":"ElementaryTypeName","src":"4039:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4026:29:28"},"returnParameters":{"id":6218,"nodeType":"ParameterList","parameters":[],"src":"4064:0:28"},"scope":6246,"src":"4010:55:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6220,"nodeType":"StructuredDocumentation","src":"4071:315:28","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":6227,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4400:17:28","nodeType":"FunctionDefinition","parameters":{"id":6225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6222,"mutability":"mutable","name":"operator","nameLocation":"4426:8:28","nodeType":"VariableDeclaration","scope":6227,"src":"4418:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6221,"name":"address","nodeType":"ElementaryTypeName","src":"4418:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6224,"mutability":"mutable","name":"approved","nameLocation":"4441:8:28","nodeType":"VariableDeclaration","scope":6227,"src":"4436:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6223,"name":"bool","nodeType":"ElementaryTypeName","src":"4436:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4417:33:28"},"returnParameters":{"id":6226,"nodeType":"ParameterList","parameters":[],"src":"4459:0:28"},"scope":6246,"src":"4391:69:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6228,"nodeType":"StructuredDocumentation","src":"4466:139:28","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":6235,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4619:11:28","nodeType":"FunctionDefinition","parameters":{"id":6231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6230,"mutability":"mutable","name":"tokenId","nameLocation":"4639:7:28","nodeType":"VariableDeclaration","scope":6235,"src":"4631:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6229,"name":"uint256","nodeType":"ElementaryTypeName","src":"4631:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4630:17:28"},"returnParameters":{"id":6234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6233,"mutability":"mutable","name":"operator","nameLocation":"4679:8:28","nodeType":"VariableDeclaration","scope":6235,"src":"4671:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6232,"name":"address","nodeType":"ElementaryTypeName","src":"4671:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4670:18:28"},"scope":6246,"src":"4610:79:28","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6236,"nodeType":"StructuredDocumentation","src":"4695:138:28","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":6245,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4847:16:28","nodeType":"FunctionDefinition","parameters":{"id":6241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6238,"mutability":"mutable","name":"owner","nameLocation":"4872:5:28","nodeType":"VariableDeclaration","scope":6245,"src":"4864:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6237,"name":"address","nodeType":"ElementaryTypeName","src":"4864:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6240,"mutability":"mutable","name":"operator","nameLocation":"4887:8:28","nodeType":"VariableDeclaration","scope":6245,"src":"4879:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6239,"name":"address","nodeType":"ElementaryTypeName","src":"4879:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4863:33:28"},"returnParameters":{"id":6244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6245,"src":"4920:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6242,"name":"bool","nodeType":"ElementaryTypeName","src":"4920:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4919:6:28"},"scope":6246,"src":"4838:88:28","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6247,"src":"267:4661:28","usedErrors":[],"usedEvents":[6145,6154,6163]}],"src":"108:4821:28"},"id":28},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[6264]},"id":6265,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6248,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"116:24:29"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":6249,"nodeType":"StructuredDocumentation","src":"142:154:29","text":" @title ERC-721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC-721 asset contracts."},"fullyImplemented":false,"id":6264,"linearizedBaseContracts":[6264],"name":"IERC721Receiver","nameLocation":"307:15:29","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6250,"nodeType":"StructuredDocumentation","src":"329:500:29","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":6263,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"843:16:29","nodeType":"FunctionDefinition","parameters":{"id":6259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6252,"mutability":"mutable","name":"operator","nameLocation":"877:8:29","nodeType":"VariableDeclaration","scope":6263,"src":"869:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6251,"name":"address","nodeType":"ElementaryTypeName","src":"869:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6254,"mutability":"mutable","name":"from","nameLocation":"903:4:29","nodeType":"VariableDeclaration","scope":6263,"src":"895:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6253,"name":"address","nodeType":"ElementaryTypeName","src":"895:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6256,"mutability":"mutable","name":"tokenId","nameLocation":"925:7:29","nodeType":"VariableDeclaration","scope":6263,"src":"917:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6255,"name":"uint256","nodeType":"ElementaryTypeName","src":"917:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6258,"mutability":"mutable","name":"data","nameLocation":"957:4:29","nodeType":"VariableDeclaration","scope":6263,"src":"942:19:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6257,"name":"bytes","nodeType":"ElementaryTypeName","src":"942:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"859:108:29"},"returnParameters":{"id":6262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6263,"src":"986:6:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6260,"name":"bytes4","nodeType":"ElementaryTypeName","src":"986:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"985:8:29"},"scope":6264,"src":"834:160:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6265,"src":"297:699:29","usedErrors":[],"usedEvents":[]}],"src":"116:881:29"},"id":29},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC721":[6246],"IERC721Metadata":[6292]},"id":6293,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6266,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"127:24:30"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":6268,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6293,"sourceUnit":6247,"src":"153:39:30","symbolAliases":[{"foreign":{"id":6267,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"161:7:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6270,"name":"IERC721","nameLocations":["357:7:30"],"nodeType":"IdentifierPath","referencedDeclaration":6246,"src":"357:7:30"},"id":6271,"nodeType":"InheritanceSpecifier","src":"357:7:30"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":6269,"nodeType":"StructuredDocumentation","src":"194:133:30","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":6292,"linearizedBaseContracts":[6292,6246,8493],"name":"IERC721Metadata","nameLocation":"338:15:30","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6272,"nodeType":"StructuredDocumentation","src":"371:58:30","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":6277,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"443:4:30","nodeType":"FunctionDefinition","parameters":{"id":6273,"nodeType":"ParameterList","parameters":[],"src":"447:2:30"},"returnParameters":{"id":6276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6277,"src":"473:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6274,"name":"string","nodeType":"ElementaryTypeName","src":"473:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"472:15:30"},"scope":6292,"src":"434:54:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6278,"nodeType":"StructuredDocumentation","src":"494:60:30","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":6283,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"568:6:30","nodeType":"FunctionDefinition","parameters":{"id":6279,"nodeType":"ParameterList","parameters":[],"src":"574:2:30"},"returnParameters":{"id":6282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6283,"src":"600:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6280,"name":"string","nodeType":"ElementaryTypeName","src":"600:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"599:15:30"},"scope":6292,"src":"559:56:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6284,"nodeType":"StructuredDocumentation","src":"621:90:30","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":6291,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"725:8:30","nodeType":"FunctionDefinition","parameters":{"id":6287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6286,"mutability":"mutable","name":"tokenId","nameLocation":"742:7:30","nodeType":"VariableDeclaration","scope":6291,"src":"734:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6285,"name":"uint256","nodeType":"ElementaryTypeName","src":"734:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"733:17:30"},"returnParameters":{"id":6290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6291,"src":"774:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6288,"name":"string","nodeType":"ElementaryTypeName","src":"774:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"773:15:30"},"scope":6292,"src":"716:73:30","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6293,"src":"328:463:30","usedErrors":[],"usedEvents":[6145,6154,6163]}],"src":"127:665:30"},"id":30},"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol","exportedSymbols":{"ERC721Utils":[6369],"IERC721Errors":[3355],"IERC721Receiver":[6264]},"id":6370,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6294,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"118:24:31"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"../IERC721Receiver.sol","id":6296,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6370,"sourceUnit":6265,"src":"144:55:31","symbolAliases":[{"foreign":{"id":6295,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"152:15:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../../interfaces/draft-IERC6093.sol","id":6298,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6370,"sourceUnit":3403,"src":"200:69:31","symbolAliases":[{"foreign":{"id":6297,"name":"IERC721Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3355,"src":"208:13:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ERC721Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":6299,"nodeType":"StructuredDocumentation","src":"271:159:31","text":" @dev Library that provide common ERC-721 utility functions.\n See https://eips.ethereum.org/EIPS/eip-721[ERC-721].\n _Available since v5.1._"},"fullyImplemented":true,"id":6369,"linearizedBaseContracts":[6369],"name":"ERC721Utils","nameLocation":"439:11:31","nodeType":"ContractDefinition","nodes":[{"body":{"id":6367,"nodeType":"Block","src":"1151:758:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":6313,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6306,"src":"1165:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1168:4:31","memberName":"code","nodeType":"MemberAccess","src":"1165:7:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1173:6:31","memberName":"length","nodeType":"MemberAccess","src":"1165:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1182:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1165:18:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6366,"nodeType":"IfStatement","src":"1161:742:31","trueBody":{"id":6365,"nodeType":"Block","src":"1185:718:31","statements":[{"clauses":[{"block":{"id":6343,"nodeType":"Block","src":"1295:214:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6330,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6328,"src":"1317:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":6331,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"1327:15:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$6264_$","typeString":"type(contract IERC721Receiver)"}},"id":6332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1343:16:31","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":6263,"src":"1327:32:31","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":6333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1360:8:31","memberName":"selector","nodeType":"MemberAccess","src":"1327:41:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1317:51:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6342,"nodeType":"IfStatement","src":"1313:182:31","trueBody":{"id":6341,"nodeType":"Block","src":"1370:125:31","statements":[{"errorCall":{"arguments":[{"id":6338,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6306,"src":"1473:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6335,"name":"IERC721Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3355,"src":"1437:13:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Errors_$3355_$","typeString":"type(contract IERC721Errors)"}},"id":6337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1451:21:31","memberName":"ERC721InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":3337,"src":"1437:35:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1437:39:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6340,"nodeType":"RevertStatement","src":"1430:46:31"}]}}]},"errorName":"","id":6344,"nodeType":"TryCatchClause","parameters":{"id":6329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6328,"mutability":"mutable","name":"retval","nameLocation":"1287:6:31","nodeType":"VariableDeclaration","scope":6344,"src":"1280:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6327,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1280:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1279:15:31"},"src":"1271:238:31"},{"block":{"id":6362,"nodeType":"Block","src":"1538:355:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6348,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6346,"src":"1560:6:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1567:6:31","memberName":"length","nodeType":"MemberAccess","src":"1560:13:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1577:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1560:18:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6360,"nodeType":"Block","src":"1728:151:31","statements":[{"AST":{"nativeSrc":"1775:86:31","nodeType":"YulBlock","src":"1775:86:31","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1812:2:31","nodeType":"YulLiteral","src":"1812:2:31","type":"","value":"32"},{"name":"reason","nativeSrc":"1816:6:31","nodeType":"YulIdentifier","src":"1816:6:31"}],"functionName":{"name":"add","nativeSrc":"1808:3:31","nodeType":"YulIdentifier","src":"1808:3:31"},"nativeSrc":"1808:15:31","nodeType":"YulFunctionCall","src":"1808:15:31"},{"arguments":[{"name":"reason","nativeSrc":"1831:6:31","nodeType":"YulIdentifier","src":"1831:6:31"}],"functionName":{"name":"mload","nativeSrc":"1825:5:31","nodeType":"YulIdentifier","src":"1825:5:31"},"nativeSrc":"1825:13:31","nodeType":"YulFunctionCall","src":"1825:13:31"}],"functionName":{"name":"revert","nativeSrc":"1801:6:31","nodeType":"YulIdentifier","src":"1801:6:31"},"nativeSrc":"1801:38:31","nodeType":"YulFunctionCall","src":"1801:38:31"},"nativeSrc":"1801:38:31","nodeType":"YulExpressionStatement","src":"1801:38:31"}]},"evmVersion":"paris","externalReferences":[{"declaration":6346,"isOffset":false,"isSlot":false,"src":"1816:6:31","valueSize":1},{"declaration":6346,"isOffset":false,"isSlot":false,"src":"1831:6:31","valueSize":1}],"flags":["memory-safe"],"id":6359,"nodeType":"InlineAssembly","src":"1750:111:31"}]},"id":6361,"nodeType":"IfStatement","src":"1556:323:31","trueBody":{"id":6358,"nodeType":"Block","src":"1580:142:31","statements":[{"errorCall":{"arguments":[{"id":6355,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6306,"src":"1700:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6352,"name":"IERC721Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3355,"src":"1664:13:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Errors_$3355_$","typeString":"type(contract IERC721Errors)"}},"id":6354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1678:21:31","memberName":"ERC721InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":3337,"src":"1664:35:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1664:39:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6357,"nodeType":"RevertStatement","src":"1657:46:31"}]}}]},"errorName":"","id":6363,"nodeType":"TryCatchClause","parameters":{"id":6347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6346,"mutability":"mutable","name":"reason","nameLocation":"1530:6:31","nodeType":"VariableDeclaration","scope":6363,"src":"1517:19:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6345,"name":"bytes","nodeType":"ElementaryTypeName","src":"1517:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1516:21:31"},"src":"1510:383:31"}],"externalCall":{"arguments":[{"id":6322,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"1240:8:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6323,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6304,"src":"1250:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6324,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6308,"src":"1256:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6325,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6310,"src":"1265:4:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":6319,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6306,"src":"1219:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6318,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"1203:15:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$6264_$","typeString":"type(contract IERC721Receiver)"}},"id":6320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1203:19:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$6264","typeString":"contract IERC721Receiver"}},"id":6321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1223:16:31","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":6263,"src":"1203:36:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":6326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1203:67:31","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":6364,"nodeType":"TryStatement","src":"1199:694:31"}]}}]},"documentation":{"id":6300,"nodeType":"StructuredDocumentation","src":"457:523:31","text":" @dev Performs an acceptance check for the provided `operator` by calling {IERC721-onERC721Received}\n on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n The acceptance call is not executed and treated as a no-op if the target address doesn't contain code (i.e. an EOA).\n Otherwise, the recipient must implement {IERC721Receiver-onERC721Received} and return the acceptance magic value to accept\n the transfer."},"id":6368,"implemented":true,"kind":"function","modifiers":[],"name":"checkOnERC721Received","nameLocation":"994:21:31","nodeType":"FunctionDefinition","parameters":{"id":6311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6302,"mutability":"mutable","name":"operator","nameLocation":"1033:8:31","nodeType":"VariableDeclaration","scope":6368,"src":"1025:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6301,"name":"address","nodeType":"ElementaryTypeName","src":"1025:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6304,"mutability":"mutable","name":"from","nameLocation":"1059:4:31","nodeType":"VariableDeclaration","scope":6368,"src":"1051:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6303,"name":"address","nodeType":"ElementaryTypeName","src":"1051:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6306,"mutability":"mutable","name":"to","nameLocation":"1081:2:31","nodeType":"VariableDeclaration","scope":6368,"src":"1073:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6305,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6308,"mutability":"mutable","name":"tokenId","nameLocation":"1101:7:31","nodeType":"VariableDeclaration","scope":6368,"src":"1093:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6307,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6310,"mutability":"mutable","name":"data","nameLocation":"1131:4:31","nodeType":"VariableDeclaration","scope":6368,"src":"1118:17:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6309,"name":"bytes","nodeType":"ElementaryTypeName","src":"1118:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1015:126:31"},"returnParameters":{"id":6312,"nodeType":"ParameterList","parameters":[],"src":"1151:0:31"},"scope":6369,"src":"985:924:31","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":6370,"src":"431:1480:31","usedErrors":[],"usedEvents":[]}],"src":"118:1794:31"},"id":31},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[6628],"Errors":[6779]},"id":6629,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6371,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:32"},{"absolutePath":"@openzeppelin/contracts/utils/Errors.sol","file":"./Errors.sol","id":6373,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6629,"sourceUnit":6780,"src":"127:36:32","symbolAliases":[{"foreign":{"id":6372,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"135:6:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":6374,"nodeType":"StructuredDocumentation","src":"165:67:32","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":6628,"linearizedBaseContracts":[6628],"name":"Address","nameLocation":"241:7:32","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6375,"nodeType":"StructuredDocumentation","src":"255:75:32","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","id":6379,"name":"AddressEmptyCode","nameLocation":"341:16:32","nodeType":"ErrorDefinition","parameters":{"id":6378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6377,"mutability":"mutable","name":"target","nameLocation":"366:6:32","nodeType":"VariableDeclaration","scope":6379,"src":"358:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6376,"name":"address","nodeType":"ElementaryTypeName","src":"358:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"357:16:32"},"src":"335:39:32"},{"body":{"id":6425,"nodeType":"Block","src":"1361:278:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6389,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1383:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$6628","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$6628","typeString":"library Address"}],"id":6388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1375:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6387,"name":"address","nodeType":"ElementaryTypeName","src":"1375:7:32","typeDescriptions":{}}},"id":6390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1375:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1389:7:32","memberName":"balance","nodeType":"MemberAccess","src":"1375:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6392,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6384,"src":"1399:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1375:30:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6406,"nodeType":"IfStatement","src":"1371:125:32","trueBody":{"id":6405,"nodeType":"Block","src":"1407:89:32","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":6399,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1463:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$6628","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$6628","typeString":"library Address"}],"id":6398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1455:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6397,"name":"address","nodeType":"ElementaryTypeName","src":"1455:7:32","typeDescriptions":{}}},"id":6400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1469:7:32","memberName":"balance","nodeType":"MemberAccess","src":"1455:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6402,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6384,"src":"1478:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6394,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"1428:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$6779_$","typeString":"type(library Errors)"}},"id":6396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1435:19:32","memberName":"InsufficientBalance","nodeType":"MemberAccess","referencedDeclaration":6767,"src":"1428:26:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":6403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1428:57:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6404,"nodeType":"RevertStatement","src":"1421:64:32"}]}},{"assignments":[6408,null],"declarations":[{"constant":false,"id":6408,"mutability":"mutable","name":"success","nameLocation":"1512:7:32","nodeType":"VariableDeclaration","scope":6425,"src":"1507:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6407,"name":"bool","nodeType":"ElementaryTypeName","src":"1507:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6415,"initialValue":{"arguments":[{"hexValue":"","id":6413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1555:2:32","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":6409,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6382,"src":"1525:9:32","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1535:4:32","memberName":"call","nodeType":"MemberAccess","src":"1525:14:32","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":6412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6411,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6384,"src":"1547:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1525:29:32","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":6414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1525:33:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1506:52:32"},{"condition":{"id":6417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1572:8:32","subExpression":{"id":6416,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6408,"src":"1573:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6424,"nodeType":"IfStatement","src":"1568:65:32","trueBody":{"id":6423,"nodeType":"Block","src":"1582:51:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6418,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"1603:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$6779_$","typeString":"type(library Errors)"}},"id":6420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1610:10:32","memberName":"FailedCall","nodeType":"MemberAccess","referencedDeclaration":6770,"src":"1603:17:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:19:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6422,"nodeType":"RevertStatement","src":"1596:26:32"}]}}]},"documentation":{"id":6380,"nodeType":"StructuredDocumentation","src":"380:905:32","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":6426,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"1299:9:32","nodeType":"FunctionDefinition","parameters":{"id":6385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6382,"mutability":"mutable","name":"recipient","nameLocation":"1325:9:32","nodeType":"VariableDeclaration","scope":6426,"src":"1309:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":6381,"name":"address","nodeType":"ElementaryTypeName","src":"1309:15:32","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":6384,"mutability":"mutable","name":"amount","nameLocation":"1344:6:32","nodeType":"VariableDeclaration","scope":6426,"src":"1336:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6383,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1308:43:32"},"returnParameters":{"id":6386,"nodeType":"ParameterList","parameters":[],"src":"1361:0:32"},"scope":6628,"src":"1290:349:32","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6442,"nodeType":"Block","src":"2573:62:32","statements":[{"expression":{"arguments":[{"id":6437,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"2612:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6438,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6431,"src":"2620:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2626:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6436,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6493,"src":"2590:21:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":6440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2590:38:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6435,"id":6441,"nodeType":"Return","src":"2583:45:32"}]},"documentation":{"id":6427,"nodeType":"StructuredDocumentation","src":"1645:834:32","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason or custom error, it is bubbled\n up by this function (like regular Solidity function calls). However, if\n the call reverted with no returned reason, this function reverts with a\n {Errors.FailedCall} error.\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert."},"id":6443,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"2493:12:32","nodeType":"FunctionDefinition","parameters":{"id":6432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6429,"mutability":"mutable","name":"target","nameLocation":"2514:6:32","nodeType":"VariableDeclaration","scope":6443,"src":"2506:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6428,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6431,"mutability":"mutable","name":"data","nameLocation":"2535:4:32","nodeType":"VariableDeclaration","scope":6443,"src":"2522:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6430,"name":"bytes","nodeType":"ElementaryTypeName","src":"2522:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2505:35:32"},"returnParameters":{"id":6435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6443,"src":"2559:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6433,"name":"bytes","nodeType":"ElementaryTypeName","src":"2559:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2558:14:32"},"scope":6628,"src":"2484:151:32","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6492,"nodeType":"Block","src":"3072:294:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6457,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3094:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$6628","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$6628","typeString":"library Address"}],"id":6456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3086:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6455,"name":"address","nodeType":"ElementaryTypeName","src":"3086:7:32","typeDescriptions":{}}},"id":6458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3086:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3100:7:32","memberName":"balance","nodeType":"MemberAccess","src":"3086:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6460,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6450,"src":"3110:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3086:29:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6474,"nodeType":"IfStatement","src":"3082:123:32","trueBody":{"id":6473,"nodeType":"Block","src":"3117:88:32","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":6467,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3173:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$6628","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$6628","typeString":"library Address"}],"id":6466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3165:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6465,"name":"address","nodeType":"ElementaryTypeName","src":"3165:7:32","typeDescriptions":{}}},"id":6468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3165:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3179:7:32","memberName":"balance","nodeType":"MemberAccess","src":"3165:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6450,"src":"3188:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6462,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"3138:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$6779_$","typeString":"type(library Errors)"}},"id":6464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3145:19:32","memberName":"InsufficientBalance","nodeType":"MemberAccess","referencedDeclaration":6767,"src":"3138:26:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":6471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3138:56:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6472,"nodeType":"RevertStatement","src":"3131:63:32"}]}},{"assignments":[6476,6478],"declarations":[{"constant":false,"id":6476,"mutability":"mutable","name":"success","nameLocation":"3220:7:32","nodeType":"VariableDeclaration","scope":6492,"src":"3215:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6475,"name":"bool","nodeType":"ElementaryTypeName","src":"3215:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6478,"mutability":"mutable","name":"returndata","nameLocation":"3242:10:32","nodeType":"VariableDeclaration","scope":6492,"src":"3229:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6477,"name":"bytes","nodeType":"ElementaryTypeName","src":"3229:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6485,"initialValue":{"arguments":[{"id":6483,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6448,"src":"3282:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6479,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6446,"src":"3256:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3263:4:32","memberName":"call","nodeType":"MemberAccess","src":"3256:11:32","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":6482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6481,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6450,"src":"3275:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3256:25:32","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":6484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3256:31:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3214:73:32"},{"expression":{"arguments":[{"id":6487,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6446,"src":"3331:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6488,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6476,"src":"3339:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6489,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6478,"src":"3348:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6486,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6585,"src":"3304:26:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":6490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3304:55:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6454,"id":6491,"nodeType":"Return","src":"3297:62:32"}]},"documentation":{"id":6444,"nodeType":"StructuredDocumentation","src":"2641:313:32","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`."},"id":6493,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"2968:21:32","nodeType":"FunctionDefinition","parameters":{"id":6451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6446,"mutability":"mutable","name":"target","nameLocation":"2998:6:32","nodeType":"VariableDeclaration","scope":6493,"src":"2990:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6445,"name":"address","nodeType":"ElementaryTypeName","src":"2990:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6448,"mutability":"mutable","name":"data","nameLocation":"3019:4:32","nodeType":"VariableDeclaration","scope":6493,"src":"3006:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6447,"name":"bytes","nodeType":"ElementaryTypeName","src":"3006:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6450,"mutability":"mutable","name":"value","nameLocation":"3033:5:32","nodeType":"VariableDeclaration","scope":6493,"src":"3025:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3025:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2989:50:32"},"returnParameters":{"id":6454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6493,"src":"3058:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6452,"name":"bytes","nodeType":"ElementaryTypeName","src":"3058:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3057:14:32"},"scope":6628,"src":"2959:407:32","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6518,"nodeType":"Block","src":"3605:154:32","statements":[{"assignments":[6504,6506],"declarations":[{"constant":false,"id":6504,"mutability":"mutable","name":"success","nameLocation":"3621:7:32","nodeType":"VariableDeclaration","scope":6518,"src":"3616:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6503,"name":"bool","nodeType":"ElementaryTypeName","src":"3616:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6506,"mutability":"mutable","name":"returndata","nameLocation":"3643:10:32","nodeType":"VariableDeclaration","scope":6518,"src":"3630:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6505,"name":"bytes","nodeType":"ElementaryTypeName","src":"3630:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6511,"initialValue":{"arguments":[{"id":6509,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6498,"src":"3675:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6507,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6496,"src":"3657:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3664:10:32","memberName":"staticcall","nodeType":"MemberAccess","src":"3657:17:32","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":6510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3657:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3615:65:32"},{"expression":{"arguments":[{"id":6513,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6496,"src":"3724:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6514,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6504,"src":"3732:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6515,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6506,"src":"3741:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6512,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6585,"src":"3697:26:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":6516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3697:55:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6502,"id":6517,"nodeType":"Return","src":"3690:62:32"}]},"documentation":{"id":6494,"nodeType":"StructuredDocumentation","src":"3372:128:32","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call."},"id":6519,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"3514:18:32","nodeType":"FunctionDefinition","parameters":{"id":6499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6496,"mutability":"mutable","name":"target","nameLocation":"3541:6:32","nodeType":"VariableDeclaration","scope":6519,"src":"3533:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6495,"name":"address","nodeType":"ElementaryTypeName","src":"3533:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6498,"mutability":"mutable","name":"data","nameLocation":"3562:4:32","nodeType":"VariableDeclaration","scope":6519,"src":"3549:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6497,"name":"bytes","nodeType":"ElementaryTypeName","src":"3549:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3532:35:32"},"returnParameters":{"id":6502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6501,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6519,"src":"3591:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6500,"name":"bytes","nodeType":"ElementaryTypeName","src":"3591:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3590:14:32"},"scope":6628,"src":"3505:254:32","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6544,"nodeType":"Block","src":"3997:156:32","statements":[{"assignments":[6530,6532],"declarations":[{"constant":false,"id":6530,"mutability":"mutable","name":"success","nameLocation":"4013:7:32","nodeType":"VariableDeclaration","scope":6544,"src":"4008:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6529,"name":"bool","nodeType":"ElementaryTypeName","src":"4008:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6532,"mutability":"mutable","name":"returndata","nameLocation":"4035:10:32","nodeType":"VariableDeclaration","scope":6544,"src":"4022:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6531,"name":"bytes","nodeType":"ElementaryTypeName","src":"4022:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6537,"initialValue":{"arguments":[{"id":6535,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6524,"src":"4069:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6533,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6522,"src":"4049:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4056:12:32","memberName":"delegatecall","nodeType":"MemberAccess","src":"4049:19:32","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":6536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:25:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4007:67:32"},{"expression":{"arguments":[{"id":6539,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6522,"src":"4118:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6540,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6530,"src":"4126:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6541,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6532,"src":"4135:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6538,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6585,"src":"4091:26:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":6542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4091:55:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6528,"id":6543,"nodeType":"Return","src":"4084:62:32"}]},"documentation":{"id":6520,"nodeType":"StructuredDocumentation","src":"3765:130:32","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call."},"id":6545,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"3909:20:32","nodeType":"FunctionDefinition","parameters":{"id":6525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6522,"mutability":"mutable","name":"target","nameLocation":"3938:6:32","nodeType":"VariableDeclaration","scope":6545,"src":"3930:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6521,"name":"address","nodeType":"ElementaryTypeName","src":"3930:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6524,"mutability":"mutable","name":"data","nameLocation":"3959:4:32","nodeType":"VariableDeclaration","scope":6545,"src":"3946:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6523,"name":"bytes","nodeType":"ElementaryTypeName","src":"3946:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3929:35:32"},"returnParameters":{"id":6528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6527,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6545,"src":"3983:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6526,"name":"bytes","nodeType":"ElementaryTypeName","src":"3983:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3982:14:32"},"scope":6628,"src":"3900:253:32","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6584,"nodeType":"Block","src":"4579:424:32","statements":[{"condition":{"id":6558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4593:8:32","subExpression":{"id":6557,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6550,"src":"4594:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6582,"nodeType":"Block","src":"4653:344:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6564,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6552,"src":"4841:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4852:6:32","memberName":"length","nodeType":"MemberAccess","src":"4841:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4862:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4841:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":6568,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6548,"src":"4867:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4874:4:32","memberName":"code","nodeType":"MemberAccess","src":"4867:11:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4879:6:32","memberName":"length","nodeType":"MemberAccess","src":"4867:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4889:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4867:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4841:49:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6579,"nodeType":"IfStatement","src":"4837:119:32","trueBody":{"id":6578,"nodeType":"Block","src":"4892:64:32","statements":[{"errorCall":{"arguments":[{"id":6575,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6548,"src":"4934:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6574,"name":"AddressEmptyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6379,"src":"4917:16:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4917:24:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6577,"nodeType":"RevertStatement","src":"4910:31:32"}]}},{"expression":{"id":6580,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6552,"src":"4976:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6556,"id":6581,"nodeType":"Return","src":"4969:17:32"}]},"id":6583,"nodeType":"IfStatement","src":"4589:408:32","trueBody":{"id":6563,"nodeType":"Block","src":"4603:44:32","statements":[{"expression":{"arguments":[{"id":6560,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6552,"src":"4625:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6559,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6627,"src":"4617:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:19:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6562,"nodeType":"ExpressionStatement","src":"4617:19:32"}]}}]},"documentation":{"id":6546,"nodeType":"StructuredDocumentation","src":"4159:257:32","text":" @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n was not a contract or bubbling up the revert reason (falling back to {Errors.FailedCall}) in case\n of an unsuccessful call."},"id":6585,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"4430:26:32","nodeType":"FunctionDefinition","parameters":{"id":6553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6548,"mutability":"mutable","name":"target","nameLocation":"4474:6:32","nodeType":"VariableDeclaration","scope":6585,"src":"4466:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6547,"name":"address","nodeType":"ElementaryTypeName","src":"4466:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6550,"mutability":"mutable","name":"success","nameLocation":"4495:7:32","nodeType":"VariableDeclaration","scope":6585,"src":"4490:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6549,"name":"bool","nodeType":"ElementaryTypeName","src":"4490:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6552,"mutability":"mutable","name":"returndata","nameLocation":"4525:10:32","nodeType":"VariableDeclaration","scope":6585,"src":"4512:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6551,"name":"bytes","nodeType":"ElementaryTypeName","src":"4512:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4456:85:32"},"returnParameters":{"id":6556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6555,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6585,"src":"4565:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6554,"name":"bytes","nodeType":"ElementaryTypeName","src":"4565:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4564:14:32"},"scope":6628,"src":"4421:582:32","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6606,"nodeType":"Block","src":"5307:122:32","statements":[{"condition":{"id":6596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5321:8:32","subExpression":{"id":6595,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6588,"src":"5322:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6604,"nodeType":"Block","src":"5381:42:32","statements":[{"expression":{"id":6602,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"5402:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6594,"id":6603,"nodeType":"Return","src":"5395:17:32"}]},"id":6605,"nodeType":"IfStatement","src":"5317:106:32","trueBody":{"id":6601,"nodeType":"Block","src":"5331:44:32","statements":[{"expression":{"arguments":[{"id":6598,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"5353:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6597,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6627,"src":"5345:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:19:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6600,"nodeType":"ExpressionStatement","src":"5345:19:32"}]}}]},"documentation":{"id":6586,"nodeType":"StructuredDocumentation","src":"5009:191:32","text":" @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n revert reason or with a default {Errors.FailedCall} error."},"id":6607,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"5214:16:32","nodeType":"FunctionDefinition","parameters":{"id":6591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6588,"mutability":"mutable","name":"success","nameLocation":"5236:7:32","nodeType":"VariableDeclaration","scope":6607,"src":"5231:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6587,"name":"bool","nodeType":"ElementaryTypeName","src":"5231:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6590,"mutability":"mutable","name":"returndata","nameLocation":"5258:10:32","nodeType":"VariableDeclaration","scope":6607,"src":"5245:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6589,"name":"bytes","nodeType":"ElementaryTypeName","src":"5245:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5230:39:32"},"returnParameters":{"id":6594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6607,"src":"5293:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6592,"name":"bytes","nodeType":"ElementaryTypeName","src":"5293:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5292:14:32"},"scope":6628,"src":"5205:224:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6626,"nodeType":"Block","src":"5598:432:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6613,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6610,"src":"5674:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5685:6:32","memberName":"length","nodeType":"MemberAccess","src":"5674:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5694:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5674:21:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6624,"nodeType":"Block","src":"5973:51:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6619,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"5994:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$6779_$","typeString":"type(library Errors)"}},"id":6621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6001:10:32","memberName":"FailedCall","nodeType":"MemberAccess","referencedDeclaration":6770,"src":"5994:17:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5994:19:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6623,"nodeType":"RevertStatement","src":"5987:26:32"}]},"id":6625,"nodeType":"IfStatement","src":"5670:354:32","trueBody":{"id":6618,"nodeType":"Block","src":"5697:270:32","statements":[{"AST":{"nativeSrc":"5824:133:32","nodeType":"YulBlock","src":"5824:133:32","statements":[{"nativeSrc":"5842:40:32","nodeType":"YulVariableDeclaration","src":"5842:40:32","value":{"arguments":[{"name":"returndata","nativeSrc":"5871:10:32","nodeType":"YulIdentifier","src":"5871:10:32"}],"functionName":{"name":"mload","nativeSrc":"5865:5:32","nodeType":"YulIdentifier","src":"5865:5:32"},"nativeSrc":"5865:17:32","nodeType":"YulFunctionCall","src":"5865:17:32"},"variables":[{"name":"returndata_size","nativeSrc":"5846:15:32","nodeType":"YulTypedName","src":"5846:15:32","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5910:2:32","nodeType":"YulLiteral","src":"5910:2:32","type":"","value":"32"},{"name":"returndata","nativeSrc":"5914:10:32","nodeType":"YulIdentifier","src":"5914:10:32"}],"functionName":{"name":"add","nativeSrc":"5906:3:32","nodeType":"YulIdentifier","src":"5906:3:32"},"nativeSrc":"5906:19:32","nodeType":"YulFunctionCall","src":"5906:19:32"},{"name":"returndata_size","nativeSrc":"5927:15:32","nodeType":"YulIdentifier","src":"5927:15:32"}],"functionName":{"name":"revert","nativeSrc":"5899:6:32","nodeType":"YulIdentifier","src":"5899:6:32"},"nativeSrc":"5899:44:32","nodeType":"YulFunctionCall","src":"5899:44:32"},"nativeSrc":"5899:44:32","nodeType":"YulExpressionStatement","src":"5899:44:32"}]},"evmVersion":"paris","externalReferences":[{"declaration":6610,"isOffset":false,"isSlot":false,"src":"5871:10:32","valueSize":1},{"declaration":6610,"isOffset":false,"isSlot":false,"src":"5914:10:32","valueSize":1}],"flags":["memory-safe"],"id":6617,"nodeType":"InlineAssembly","src":"5799:158:32"}]}}]},"documentation":{"id":6608,"nodeType":"StructuredDocumentation","src":"5435:103:32","text":" @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}."},"id":6627,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"5552:7:32","nodeType":"FunctionDefinition","parameters":{"id":6611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6610,"mutability":"mutable","name":"returndata","nameLocation":"5573:10:32","nodeType":"VariableDeclaration","scope":6627,"src":"5560:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6609,"name":"bytes","nodeType":"ElementaryTypeName","src":"5560:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5559:25:32"},"returnParameters":{"id":6612,"nodeType":"ParameterList","parameters":[],"src":"5598:0:32"},"scope":6628,"src":"5543:487:32","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":6629,"src":"233:5799:32","usedErrors":[6379],"usedEvents":[]}],"src":"101:5932:32"},"id":32},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[6658]},"id":6659,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6630,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:33"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":6631,"nodeType":"StructuredDocumentation","src":"127:496:33","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":6658,"linearizedBaseContracts":[6658],"name":"Context","nameLocation":"642:7:33","nodeType":"ContractDefinition","nodes":[{"body":{"id":6639,"nodeType":"Block","src":"718:34:33","statements":[{"expression":{"expression":{"id":6636,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:33","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:33","memberName":"sender","nodeType":"MemberAccess","src":"735:10:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6635,"id":6638,"nodeType":"Return","src":"728:17:33"}]},"id":6640,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:33","nodeType":"FunctionDefinition","parameters":{"id":6632,"nodeType":"ParameterList","parameters":[],"src":"675:2:33"},"returnParameters":{"id":6635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6640,"src":"709:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6633,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:33"},"scope":6658,"src":"656:96:33","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6648,"nodeType":"Block","src":"825:32:33","statements":[{"expression":{"expression":{"id":6645,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:33","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:33","memberName":"data","nodeType":"MemberAccess","src":"842:8:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":6644,"id":6647,"nodeType":"Return","src":"835:15:33"}]},"id":6649,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:33","nodeType":"FunctionDefinition","parameters":{"id":6641,"nodeType":"ParameterList","parameters":[],"src":"775:2:33"},"returnParameters":{"id":6644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6649,"src":"809:14:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6642,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:33"},"scope":6658,"src":"758:99:33","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6656,"nodeType":"Block","src":"935:25:33","statements":[{"expression":{"hexValue":"30","id":6654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":6653,"id":6655,"nodeType":"Return","src":"945:8:33"}]},"id":6657,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:33","nodeType":"FunctionDefinition","parameters":{"id":6650,"nodeType":"ParameterList","parameters":[],"src":"892:2:33"},"returnParameters":{"id":6653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6657,"src":"926:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6651,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:33"},"scope":6658,"src":"863:97:33","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":6659,"src":"624:338:33","usedErrors":[],"usedEvents":[]}],"src":"101:862:33"},"id":33},"@openzeppelin/contracts/utils/Create2.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Create2.sol","exportedSymbols":{"Create2":[6757],"Errors":[6779]},"id":6758,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6660,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:34"},{"absolutePath":"@openzeppelin/contracts/utils/Errors.sol","file":"./Errors.sol","id":6662,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6758,"sourceUnit":6780,"src":"127:36:34","symbolAliases":[{"foreign":{"id":6661,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"135:6:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Create2","contractDependencies":[],"contractKind":"library","documentation":{"id":6663,"nodeType":"StructuredDocumentation","src":"165:367:34","text":" @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.\n `CREATE2` can be used to compute in advance the address where a smart\n contract will be deployed, which allows for interesting new mechanisms known\n as 'counterfactual interactions'.\n See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more\n information."},"fullyImplemented":true,"id":6757,"linearizedBaseContracts":[6757],"name":"Create2","nameLocation":"541:7:34","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6664,"nodeType":"StructuredDocumentation","src":"555:50:34","text":" @dev There's no code to deploy."},"errorSelector":"4ca249dc","id":6666,"name":"Create2EmptyBytecode","nameLocation":"616:20:34","nodeType":"ErrorDefinition","parameters":{"id":6665,"nodeType":"ParameterList","parameters":[],"src":"636:2:34"},"src":"610:29:34"},{"body":{"id":6721,"nodeType":"Block","src":"1311:746:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6680,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1333:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_Create2_$6757","typeString":"library Create2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Create2_$6757","typeString":"library Create2"}],"id":6679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1325:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6678,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:34","typeDescriptions":{}}},"id":6681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1325:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1339:7:34","memberName":"balance","nodeType":"MemberAccess","src":"1325:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6683,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6669,"src":"1349:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1325:30:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6697,"nodeType":"IfStatement","src":"1321:125:34","trueBody":{"id":6696,"nodeType":"Block","src":"1357:89:34","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":6690,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1413:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_Create2_$6757","typeString":"library Create2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Create2_$6757","typeString":"library Create2"}],"id":6689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1405:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6688,"name":"address","nodeType":"ElementaryTypeName","src":"1405:7:34","typeDescriptions":{}}},"id":6691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1405:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1419:7:34","memberName":"balance","nodeType":"MemberAccess","src":"1405:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6693,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6669,"src":"1428:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6685,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"1378:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$6779_$","typeString":"type(library Errors)"}},"id":6687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1385:19:34","memberName":"InsufficientBalance","nodeType":"MemberAccess","referencedDeclaration":6767,"src":"1378:26:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":6694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1378:57:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6695,"nodeType":"RevertStatement","src":"1371:64:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6698,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6673,"src":"1459:8:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1468:6:34","memberName":"length","nodeType":"MemberAccess","src":"1459:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1478:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1459:20:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6706,"nodeType":"IfStatement","src":"1455:80:34","trueBody":{"id":6705,"nodeType":"Block","src":"1481:54:34","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6702,"name":"Create2EmptyBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6666,"src":"1502:20:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1502:22:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6704,"nodeType":"RevertStatement","src":"1495:29:34"}]}},{"AST":{"nativeSrc":"1569:392:34","nodeType":"YulBlock","src":"1569:392:34","statements":[{"nativeSrc":"1583:67:34","nodeType":"YulAssignment","src":"1583:67:34","value":{"arguments":[{"name":"amount","nativeSrc":"1599:6:34","nodeType":"YulIdentifier","src":"1599:6:34"},{"arguments":[{"name":"bytecode","nativeSrc":"1611:8:34","nodeType":"YulIdentifier","src":"1611:8:34"},{"kind":"number","nativeSrc":"1621:4:34","nodeType":"YulLiteral","src":"1621:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1607:3:34","nodeType":"YulIdentifier","src":"1607:3:34"},"nativeSrc":"1607:19:34","nodeType":"YulFunctionCall","src":"1607:19:34"},{"arguments":[{"name":"bytecode","nativeSrc":"1634:8:34","nodeType":"YulIdentifier","src":"1634:8:34"}],"functionName":{"name":"mload","nativeSrc":"1628:5:34","nodeType":"YulIdentifier","src":"1628:5:34"},"nativeSrc":"1628:15:34","nodeType":"YulFunctionCall","src":"1628:15:34"},{"name":"salt","nativeSrc":"1645:4:34","nodeType":"YulIdentifier","src":"1645:4:34"}],"functionName":{"name":"create2","nativeSrc":"1591:7:34","nodeType":"YulIdentifier","src":"1591:7:34"},"nativeSrc":"1591:59:34","nodeType":"YulFunctionCall","src":"1591:59:34"},"variableNames":[{"name":"addr","nativeSrc":"1583:4:34","nodeType":"YulIdentifier","src":"1583:4:34"}]},{"body":{"nativeSrc":"1800:151:34","nodeType":"YulBlock","src":"1800:151:34","statements":[{"nativeSrc":"1818:20:34","nodeType":"YulVariableDeclaration","src":"1818:20:34","value":{"arguments":[{"kind":"number","nativeSrc":"1833:4:34","nodeType":"YulLiteral","src":"1833:4:34","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"1827:5:34","nodeType":"YulIdentifier","src":"1827:5:34"},"nativeSrc":"1827:11:34","nodeType":"YulFunctionCall","src":"1827:11:34"},"variables":[{"name":"p","nativeSrc":"1822:1:34","nodeType":"YulTypedName","src":"1822:1:34","type":""}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"1870:1:34","nodeType":"YulIdentifier","src":"1870:1:34"},{"kind":"number","nativeSrc":"1873:1:34","nodeType":"YulLiteral","src":"1873:1:34","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1876:14:34","nodeType":"YulIdentifier","src":"1876:14:34"},"nativeSrc":"1876:16:34","nodeType":"YulFunctionCall","src":"1876:16:34"}],"functionName":{"name":"returndatacopy","nativeSrc":"1855:14:34","nodeType":"YulIdentifier","src":"1855:14:34"},"nativeSrc":"1855:38:34","nodeType":"YulFunctionCall","src":"1855:38:34"},"nativeSrc":"1855:38:34","nodeType":"YulExpressionStatement","src":"1855:38:34"},{"expression":{"arguments":[{"name":"p","nativeSrc":"1917:1:34","nodeType":"YulIdentifier","src":"1917:1:34"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1920:14:34","nodeType":"YulIdentifier","src":"1920:14:34"},"nativeSrc":"1920:16:34","nodeType":"YulFunctionCall","src":"1920:16:34"}],"functionName":{"name":"revert","nativeSrc":"1910:6:34","nodeType":"YulIdentifier","src":"1910:6:34"},"nativeSrc":"1910:27:34","nodeType":"YulFunctionCall","src":"1910:27:34"},"nativeSrc":"1910:27:34","nodeType":"YulExpressionStatement","src":"1910:27:34"}]},"condition":{"arguments":[{"arguments":[{"name":"addr","nativeSrc":"1762:4:34","nodeType":"YulIdentifier","src":"1762:4:34"}],"functionName":{"name":"iszero","nativeSrc":"1755:6:34","nodeType":"YulIdentifier","src":"1755:6:34"},"nativeSrc":"1755:12:34","nodeType":"YulFunctionCall","src":"1755:12:34"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1780:14:34","nodeType":"YulIdentifier","src":"1780:14:34"},"nativeSrc":"1780:16:34","nodeType":"YulFunctionCall","src":"1780:16:34"}],"functionName":{"name":"iszero","nativeSrc":"1773:6:34","nodeType":"YulIdentifier","src":"1773:6:34"},"nativeSrc":"1773:24:34","nodeType":"YulFunctionCall","src":"1773:24:34"}],"functionName":{"name":"not","nativeSrc":"1769:3:34","nodeType":"YulIdentifier","src":"1769:3:34"},"nativeSrc":"1769:29:34","nodeType":"YulFunctionCall","src":"1769:29:34"}],"functionName":{"name":"and","nativeSrc":"1751:3:34","nodeType":"YulIdentifier","src":"1751:3:34"},"nativeSrc":"1751:48:34","nodeType":"YulFunctionCall","src":"1751:48:34"},"nativeSrc":"1748:203:34","nodeType":"YulIf","src":"1748:203:34"}]},"evmVersion":"paris","externalReferences":[{"declaration":6676,"isOffset":false,"isSlot":false,"src":"1583:4:34","valueSize":1},{"declaration":6676,"isOffset":false,"isSlot":false,"src":"1762:4:34","valueSize":1},{"declaration":6669,"isOffset":false,"isSlot":false,"src":"1599:6:34","valueSize":1},{"declaration":6673,"isOffset":false,"isSlot":false,"src":"1611:8:34","valueSize":1},{"declaration":6673,"isOffset":false,"isSlot":false,"src":"1634:8:34","valueSize":1},{"declaration":6671,"isOffset":false,"isSlot":false,"src":"1645:4:34","valueSize":1}],"flags":["memory-safe"],"id":6707,"nodeType":"InlineAssembly","src":"1544:417:34"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6708,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6676,"src":"1974:4:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1990:1:34","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":6710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1982:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6709,"name":"address","nodeType":"ElementaryTypeName","src":"1982:7:34","typeDescriptions":{}}},"id":6712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1982:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1974:18:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6720,"nodeType":"IfStatement","src":"1970:81:34","trueBody":{"id":6719,"nodeType":"Block","src":"1994:57:34","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6714,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"2015:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$6779_$","typeString":"type(library Errors)"}},"id":6716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2022:16:34","memberName":"FailedDeployment","nodeType":"MemberAccess","referencedDeclaration":6773,"src":"2015:23:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2015:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6718,"nodeType":"RevertStatement","src":"2008:32:34"}]}}]},"documentation":{"id":6667,"nodeType":"StructuredDocumentation","src":"645:560:34","text":" @dev Deploys a contract using `CREATE2`. The address where the contract\n will be deployed can be known in advance via {computeAddress}.\n The bytecode for a contract can be obtained from Solidity with\n `type(contractName).creationCode`.\n Requirements:\n - `bytecode` must not be empty.\n - `salt` must have not been used for `bytecode` already.\n - the factory must have a balance of at least `amount`.\n - if `amount` is non-zero, `bytecode` must have a `payable` constructor."},"id":6722,"implemented":true,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"1219:6:34","nodeType":"FunctionDefinition","parameters":{"id":6674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6669,"mutability":"mutable","name":"amount","nameLocation":"1234:6:34","nodeType":"VariableDeclaration","scope":6722,"src":"1226:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6668,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6671,"mutability":"mutable","name":"salt","nameLocation":"1250:4:34","nodeType":"VariableDeclaration","scope":6722,"src":"1242:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6670,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1242:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6673,"mutability":"mutable","name":"bytecode","nameLocation":"1269:8:34","nodeType":"VariableDeclaration","scope":6722,"src":"1256:21:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6672,"name":"bytes","nodeType":"ElementaryTypeName","src":"1256:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1225:53:34"},"returnParameters":{"id":6677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6676,"mutability":"mutable","name":"addr","nameLocation":"1305:4:34","nodeType":"VariableDeclaration","scope":6722,"src":"1297:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6675,"name":"address","nodeType":"ElementaryTypeName","src":"1297:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1296:14:34"},"scope":6757,"src":"1210:847:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6741,"nodeType":"Block","src":"2353:73:34","statements":[{"expression":{"arguments":[{"id":6733,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6725,"src":"2385:4:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6734,"name":"bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6727,"src":"2391:12:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":6737,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2413:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_Create2_$6757","typeString":"library Create2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Create2_$6757","typeString":"library Create2"}],"id":6736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2405:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6735,"name":"address","nodeType":"ElementaryTypeName","src":"2405:7:34","typeDescriptions":{}}},"id":6738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2405:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6732,"name":"computeAddress","nodeType":"Identifier","overloadedDeclarations":[6742,6756],"referencedDeclaration":6756,"src":"2370:14:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":6739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2370:49:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6731,"id":6740,"nodeType":"Return","src":"2363:56:34"}]},"documentation":{"id":6723,"nodeType":"StructuredDocumentation","src":"2063:193:34","text":" @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the\n `bytecodeHash` or `salt` will result in a new destination address."},"id":6742,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"2270:14:34","nodeType":"FunctionDefinition","parameters":{"id":6728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6725,"mutability":"mutable","name":"salt","nameLocation":"2293:4:34","nodeType":"VariableDeclaration","scope":6742,"src":"2285:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2285:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6727,"mutability":"mutable","name":"bytecodeHash","nameLocation":"2307:12:34","nodeType":"VariableDeclaration","scope":6742,"src":"2299:20:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2299:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2284:36:34"},"returnParameters":{"id":6731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6730,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6742,"src":"2344:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6729,"name":"address","nodeType":"ElementaryTypeName","src":"2344:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2343:9:34"},"scope":6757,"src":"2261:165:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6755,"nodeType":"Block","src":"2784:1679:34","statements":[{"AST":{"nativeSrc":"2819:1638:34","nodeType":"YulBlock","src":"2819:1638:34","statements":[{"nativeSrc":"2833:22:34","nodeType":"YulVariableDeclaration","src":"2833:22:34","value":{"arguments":[{"kind":"number","nativeSrc":"2850:4:34","nodeType":"YulLiteral","src":"2850:4:34","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2844:5:34","nodeType":"YulIdentifier","src":"2844:5:34"},"nativeSrc":"2844:11:34","nodeType":"YulFunctionCall","src":"2844:11:34"},"variables":[{"name":"ptr","nativeSrc":"2837:3:34","nodeType":"YulTypedName","src":"2837:3:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"4057:3:34","nodeType":"YulIdentifier","src":"4057:3:34"},{"kind":"number","nativeSrc":"4062:4:34","nodeType":"YulLiteral","src":"4062:4:34","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"4053:3:34","nodeType":"YulIdentifier","src":"4053:3:34"},"nativeSrc":"4053:14:34","nodeType":"YulFunctionCall","src":"4053:14:34"},{"name":"bytecodeHash","nativeSrc":"4069:12:34","nodeType":"YulIdentifier","src":"4069:12:34"}],"functionName":{"name":"mstore","nativeSrc":"4046:6:34","nodeType":"YulIdentifier","src":"4046:6:34"},"nativeSrc":"4046:36:34","nodeType":"YulFunctionCall","src":"4046:36:34"},"nativeSrc":"4046:36:34","nodeType":"YulExpressionStatement","src":"4046:36:34"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"4106:3:34","nodeType":"YulIdentifier","src":"4106:3:34"},{"kind":"number","nativeSrc":"4111:4:34","nodeType":"YulLiteral","src":"4111:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4102:3:34","nodeType":"YulIdentifier","src":"4102:3:34"},"nativeSrc":"4102:14:34","nodeType":"YulFunctionCall","src":"4102:14:34"},{"name":"salt","nativeSrc":"4118:4:34","nodeType":"YulIdentifier","src":"4118:4:34"}],"functionName":{"name":"mstore","nativeSrc":"4095:6:34","nodeType":"YulIdentifier","src":"4095:6:34"},"nativeSrc":"4095:28:34","nodeType":"YulFunctionCall","src":"4095:28:34"},"nativeSrc":"4095:28:34","nodeType":"YulExpressionStatement","src":"4095:28:34"},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"4143:3:34","nodeType":"YulIdentifier","src":"4143:3:34"},{"name":"deployer","nativeSrc":"4148:8:34","nodeType":"YulIdentifier","src":"4148:8:34"}],"functionName":{"name":"mstore","nativeSrc":"4136:6:34","nodeType":"YulIdentifier","src":"4136:6:34"},"nativeSrc":"4136:21:34","nodeType":"YulFunctionCall","src":"4136:21:34"},"nativeSrc":"4136:21:34","nodeType":"YulExpressionStatement","src":"4136:21:34"},{"nativeSrc":"4219:27:34","nodeType":"YulVariableDeclaration","src":"4219:27:34","value":{"arguments":[{"name":"ptr","nativeSrc":"4236:3:34","nodeType":"YulIdentifier","src":"4236:3:34"},{"kind":"number","nativeSrc":"4241:4:34","nodeType":"YulLiteral","src":"4241:4:34","type":"","value":"0x0b"}],"functionName":{"name":"add","nativeSrc":"4232:3:34","nodeType":"YulIdentifier","src":"4232:3:34"},"nativeSrc":"4232:14:34","nodeType":"YulFunctionCall","src":"4232:14:34"},"variables":[{"name":"start","nativeSrc":"4223:5:34","nodeType":"YulTypedName","src":"4223:5:34","type":""}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"4345:5:34","nodeType":"YulIdentifier","src":"4345:5:34"},{"kind":"number","nativeSrc":"4352:4:34","nodeType":"YulLiteral","src":"4352:4:34","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"4337:7:34","nodeType":"YulIdentifier","src":"4337:7:34"},"nativeSrc":"4337:20:34","nodeType":"YulFunctionCall","src":"4337:20:34"},"nativeSrc":"4337:20:34","nodeType":"YulExpressionStatement","src":"4337:20:34"},{"nativeSrc":"4370:77:34","nodeType":"YulAssignment","src":"4370:77:34","value":{"arguments":[{"arguments":[{"name":"start","nativeSrc":"4392:5:34","nodeType":"YulIdentifier","src":"4392:5:34"},{"kind":"number","nativeSrc":"4399:2:34","nodeType":"YulLiteral","src":"4399:2:34","type":"","value":"85"}],"functionName":{"name":"keccak256","nativeSrc":"4382:9:34","nodeType":"YulIdentifier","src":"4382:9:34"},"nativeSrc":"4382:20:34","nodeType":"YulFunctionCall","src":"4382:20:34"},{"kind":"number","nativeSrc":"4404:42:34","nodeType":"YulLiteral","src":"4404:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4378:3:34","nodeType":"YulIdentifier","src":"4378:3:34"},"nativeSrc":"4378:69:34","nodeType":"YulFunctionCall","src":"4378:69:34"},"variableNames":[{"name":"addr","nativeSrc":"4370:4:34","nodeType":"YulIdentifier","src":"4370:4:34"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6752,"isOffset":false,"isSlot":false,"src":"4370:4:34","valueSize":1},{"declaration":6747,"isOffset":false,"isSlot":false,"src":"4069:12:34","valueSize":1},{"declaration":6749,"isOffset":false,"isSlot":false,"src":"4148:8:34","valueSize":1},{"declaration":6745,"isOffset":false,"isSlot":false,"src":"4118:4:34","valueSize":1}],"flags":["memory-safe"],"id":6754,"nodeType":"InlineAssembly","src":"2794:1663:34"}]},"documentation":{"id":6743,"nodeType":"StructuredDocumentation","src":"2432:232:34","text":" @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at\n `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}."},"id":6756,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"2678:14:34","nodeType":"FunctionDefinition","parameters":{"id":6750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6745,"mutability":"mutable","name":"salt","nameLocation":"2701:4:34","nodeType":"VariableDeclaration","scope":6756,"src":"2693:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2693:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6747,"mutability":"mutable","name":"bytecodeHash","nameLocation":"2715:12:34","nodeType":"VariableDeclaration","scope":6756,"src":"2707:20:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2707:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6749,"mutability":"mutable","name":"deployer","nameLocation":"2737:8:34","nodeType":"VariableDeclaration","scope":6756,"src":"2729:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6748,"name":"address","nodeType":"ElementaryTypeName","src":"2729:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2692:54:34"},"returnParameters":{"id":6753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6752,"mutability":"mutable","name":"addr","nameLocation":"2778:4:34","nodeType":"VariableDeclaration","scope":6756,"src":"2770:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6751,"name":"address","nodeType":"ElementaryTypeName","src":"2770:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2769:14:34"},"scope":6757,"src":"2669:1794:34","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":6758,"src":"533:3932:34","usedErrors":[6666],"usedEvents":[]}],"src":"101:4365:34"},"id":34},"@openzeppelin/contracts/utils/Errors.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Errors.sol","exportedSymbols":{"Errors":[6779]},"id":6780,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6759,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"100:24:35"},{"abstract":false,"baseContracts":[],"canonicalName":"Errors","contractDependencies":[],"contractKind":"library","documentation":{"id":6760,"nodeType":"StructuredDocumentation","src":"126:284:35","text":" @dev Collection of common custom errors used in multiple contracts\n IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n It is recommended to avoid relying on the error API for critical functionality.\n _Available since v5.1._"},"fullyImplemented":true,"id":6779,"linearizedBaseContracts":[6779],"name":"Errors","nameLocation":"419:6:35","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6761,"nodeType":"StructuredDocumentation","src":"432:94:35","text":" @dev The ETH balance of the account is not enough to perform the operation."},"errorSelector":"cf479181","id":6767,"name":"InsufficientBalance","nameLocation":"537:19:35","nodeType":"ErrorDefinition","parameters":{"id":6766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6763,"mutability":"mutable","name":"balance","nameLocation":"565:7:35","nodeType":"VariableDeclaration","scope":6767,"src":"557:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6762,"name":"uint256","nodeType":"ElementaryTypeName","src":"557:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6765,"mutability":"mutable","name":"needed","nameLocation":"582:6:35","nodeType":"VariableDeclaration","scope":6767,"src":"574:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6764,"name":"uint256","nodeType":"ElementaryTypeName","src":"574:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"556:33:35"},"src":"531:59:35"},{"documentation":{"id":6768,"nodeType":"StructuredDocumentation","src":"596:89:35","text":" @dev A call to an address target failed. The target may have reverted."},"errorSelector":"d6bda275","id":6770,"name":"FailedCall","nameLocation":"696:10:35","nodeType":"ErrorDefinition","parameters":{"id":6769,"nodeType":"ParameterList","parameters":[],"src":"706:2:35"},"src":"690:19:35"},{"documentation":{"id":6771,"nodeType":"StructuredDocumentation","src":"715:46:35","text":" @dev The deployment failed."},"errorSelector":"b06ebf3d","id":6773,"name":"FailedDeployment","nameLocation":"772:16:35","nodeType":"ErrorDefinition","parameters":{"id":6772,"nodeType":"ParameterList","parameters":[],"src":"788:2:35"},"src":"766:25:35"},{"documentation":{"id":6774,"nodeType":"StructuredDocumentation","src":"797:58:35","text":" @dev A necessary precompile is missing."},"errorSelector":"42b01bce","id":6778,"name":"MissingPrecompile","nameLocation":"866:17:35","nodeType":"ErrorDefinition","parameters":{"id":6777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6778,"src":"884:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6775,"name":"address","nodeType":"ElementaryTypeName","src":"884:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"883:9:35"},"src":"860:33:35"}],"scope":6780,"src":"411:484:35","usedErrors":[6767,6770,6773,6778],"usedEvents":[]}],"src":"100:796:35"},"id":35},"@openzeppelin/contracts/utils/Panic.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","exportedSymbols":{"Panic":[6831]},"id":6832,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6781,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"99:24:36"},{"abstract":false,"baseContracts":[],"canonicalName":"Panic","contractDependencies":[],"contractKind":"library","documentation":{"id":6782,"nodeType":"StructuredDocumentation","src":"125:489:36","text":" @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n      using Panic for uint256;\n      // Use any of the declared internal constants\n      function foo() { Panic.GENERIC.panic(); }\n      // Alternatively\n      function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n _Available since v5.1._"},"fullyImplemented":true,"id":6831,"linearizedBaseContracts":[6831],"name":"Panic","nameLocation":"665:5:36","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":6783,"nodeType":"StructuredDocumentation","src":"677:36:36","text":"@dev generic / unspecified error"},"id":6786,"mutability":"constant","name":"GENERIC","nameLocation":"744:7:36","nodeType":"VariableDeclaration","scope":6831,"src":"718:40:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6784,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783030","id":6785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"754:4:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"internal"},{"constant":true,"documentation":{"id":6787,"nodeType":"StructuredDocumentation","src":"764:37:36","text":"@dev used by the assert() builtin"},"id":6790,"mutability":"constant","name":"ASSERT","nameLocation":"832:6:36","nodeType":"VariableDeclaration","scope":6831,"src":"806:39:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6788,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":6789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"841:4:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"constant":true,"documentation":{"id":6791,"nodeType":"StructuredDocumentation","src":"851:41:36","text":"@dev arithmetic underflow or overflow"},"id":6794,"mutability":"constant","name":"UNDER_OVERFLOW","nameLocation":"923:14:36","nodeType":"VariableDeclaration","scope":6831,"src":"897:47:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6792,"name":"uint256","nodeType":"ElementaryTypeName","src":"897:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783131","id":6793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"940:4:36","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"},"visibility":"internal"},{"constant":true,"documentation":{"id":6795,"nodeType":"StructuredDocumentation","src":"950:35:36","text":"@dev division or modulo by zero"},"id":6798,"mutability":"constant","name":"DIVISION_BY_ZERO","nameLocation":"1016:16:36","nodeType":"VariableDeclaration","scope":6831,"src":"990:49:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6796,"name":"uint256","nodeType":"ElementaryTypeName","src":"990:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783132","id":6797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1035:4:36","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"},"visibility":"internal"},{"constant":true,"documentation":{"id":6799,"nodeType":"StructuredDocumentation","src":"1045:30:36","text":"@dev enum conversion error"},"id":6802,"mutability":"constant","name":"ENUM_CONVERSION_ERROR","nameLocation":"1106:21:36","nodeType":"VariableDeclaration","scope":6831,"src":"1080:54:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6800,"name":"uint256","nodeType":"ElementaryTypeName","src":"1080:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783231","id":6801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1130:4:36","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"},"visibility":"internal"},{"constant":true,"documentation":{"id":6803,"nodeType":"StructuredDocumentation","src":"1140:36:36","text":"@dev invalid encoding in storage"},"id":6806,"mutability":"constant","name":"STORAGE_ENCODING_ERROR","nameLocation":"1207:22:36","nodeType":"VariableDeclaration","scope":6831,"src":"1181:55:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6804,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783232","id":6805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:4:36","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"},"visibility":"internal"},{"constant":true,"documentation":{"id":6807,"nodeType":"StructuredDocumentation","src":"1242:24:36","text":"@dev empty array pop"},"id":6810,"mutability":"constant","name":"EMPTY_ARRAY_POP","nameLocation":"1297:15:36","nodeType":"VariableDeclaration","scope":6831,"src":"1271:48:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6808,"name":"uint256","nodeType":"ElementaryTypeName","src":"1271:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783331","id":6809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1315:4:36","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"},"visibility":"internal"},{"constant":true,"documentation":{"id":6811,"nodeType":"StructuredDocumentation","src":"1325:35:36","text":"@dev array out of bounds access"},"id":6814,"mutability":"constant","name":"ARRAY_OUT_OF_BOUNDS","nameLocation":"1391:19:36","nodeType":"VariableDeclaration","scope":6831,"src":"1365:52:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6812,"name":"uint256","nodeType":"ElementaryTypeName","src":"1365:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783332","id":6813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1413:4:36","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"},"visibility":"internal"},{"constant":true,"documentation":{"id":6815,"nodeType":"StructuredDocumentation","src":"1423:65:36","text":"@dev resource error (too large allocation or too large array)"},"id":6818,"mutability":"constant","name":"RESOURCE_ERROR","nameLocation":"1519:14:36","nodeType":"VariableDeclaration","scope":6831,"src":"1493:47:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6816,"name":"uint256","nodeType":"ElementaryTypeName","src":"1493:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783431","id":6817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1536:4:36","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"},"visibility":"internal"},{"constant":true,"documentation":{"id":6819,"nodeType":"StructuredDocumentation","src":"1546:42:36","text":"@dev calling invalid internal function"},"id":6822,"mutability":"constant","name":"INVALID_INTERNAL_FUNCTION","nameLocation":"1619:25:36","nodeType":"VariableDeclaration","scope":6831,"src":"1593:58:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6820,"name":"uint256","nodeType":"ElementaryTypeName","src":"1593:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783531","id":6821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1647:4:36","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"},"visibility":"internal"},{"body":{"id":6829,"nodeType":"Block","src":"1819:151:36","statements":[{"AST":{"nativeSrc":"1854:110:36","nodeType":"YulBlock","src":"1854:110:36","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1875:4:36","nodeType":"YulLiteral","src":"1875:4:36","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1881:10:36","nodeType":"YulLiteral","src":"1881:10:36","type":"","value":"0x4e487b71"}],"functionName":{"name":"mstore","nativeSrc":"1868:6:36","nodeType":"YulIdentifier","src":"1868:6:36"},"nativeSrc":"1868:24:36","nodeType":"YulFunctionCall","src":"1868:24:36"},"nativeSrc":"1868:24:36","nodeType":"YulExpressionStatement","src":"1868:24:36"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:4:36","nodeType":"YulLiteral","src":"1912:4:36","type":"","value":"0x20"},{"name":"code","nativeSrc":"1918:4:36","nodeType":"YulIdentifier","src":"1918:4:36"}],"functionName":{"name":"mstore","nativeSrc":"1905:6:36","nodeType":"YulIdentifier","src":"1905:6:36"},"nativeSrc":"1905:18:36","nodeType":"YulFunctionCall","src":"1905:18:36"},"nativeSrc":"1905:18:36","nodeType":"YulExpressionStatement","src":"1905:18:36"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1943:4:36","nodeType":"YulLiteral","src":"1943:4:36","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"1949:4:36","nodeType":"YulLiteral","src":"1949:4:36","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1936:6:36","nodeType":"YulIdentifier","src":"1936:6:36"},"nativeSrc":"1936:18:36","nodeType":"YulFunctionCall","src":"1936:18:36"},"nativeSrc":"1936:18:36","nodeType":"YulExpressionStatement","src":"1936:18:36"}]},"evmVersion":"paris","externalReferences":[{"declaration":6825,"isOffset":false,"isSlot":false,"src":"1918:4:36","valueSize":1}],"flags":["memory-safe"],"id":6828,"nodeType":"InlineAssembly","src":"1829:135:36"}]},"documentation":{"id":6823,"nodeType":"StructuredDocumentation","src":"1658:113:36","text":"@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes."},"id":6830,"implemented":true,"kind":"function","modifiers":[],"name":"panic","nameLocation":"1785:5:36","nodeType":"FunctionDefinition","parameters":{"id":6826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6825,"mutability":"mutable","name":"code","nameLocation":"1799:4:36","nodeType":"VariableDeclaration","scope":6830,"src":"1791:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6824,"name":"uint256","nodeType":"ElementaryTypeName","src":"1791:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1790:14:36"},"returnParameters":{"id":6827,"nodeType":"ParameterList","parameters":[],"src":"1819:0:36"},"scope":6831,"src":"1776:194:36","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":6832,"src":"657:1315:36","usedErrors":[],"usedEvents":[]}],"src":"99:1874:36"},"id":36},"@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[6900]},"id":6901,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6833,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:37"},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":6834,"nodeType":"StructuredDocumentation","src":"135:894:37","text":" @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at,\n consider using {ReentrancyGuardTransient} instead.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"fullyImplemented":true,"id":6900,"linearizedBaseContracts":[6900],"name":"ReentrancyGuard","nameLocation":"1048:15:37","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":6837,"mutability":"constant","name":"NOT_ENTERED","nameLocation":"1843:11:37","nodeType":"VariableDeclaration","scope":6900,"src":"1818:40:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1818:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":6836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1857:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":6840,"mutability":"constant","name":"ENTERED","nameLocation":"1889:7:37","nodeType":"VariableDeclaration","scope":6900,"src":"1864:36:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6838,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":6839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1899:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":false,"id":6842,"mutability":"mutable","name":"_status","nameLocation":"1923:7:37","nodeType":"VariableDeclaration","scope":6900,"src":"1907:23:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6841,"name":"uint256","nodeType":"ElementaryTypeName","src":"1907:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"documentation":{"id":6843,"nodeType":"StructuredDocumentation","src":"1937:52:37","text":" @dev Unauthorized reentrant call."},"errorSelector":"3ee5aeb5","id":6845,"name":"ReentrancyGuardReentrantCall","nameLocation":"2000:28:37","nodeType":"ErrorDefinition","parameters":{"id":6844,"nodeType":"ParameterList","parameters":[],"src":"2028:2:37"},"src":"1994:37:37"},{"body":{"id":6852,"nodeType":"Block","src":"2051:38:37","statements":[{"expression":{"id":6850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6848,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6842,"src":"2061:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6849,"name":"NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6837,"src":"2071:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2061:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6851,"nodeType":"ExpressionStatement","src":"2061:21:37"}]},"id":6853,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6846,"nodeType":"ParameterList","parameters":[],"src":"2048:2:37"},"returnParameters":{"id":6847,"nodeType":"ParameterList","parameters":[],"src":"2051:0:37"},"scope":6900,"src":"2037:52:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6863,"nodeType":"Block","src":"2490:79:37","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6856,"name":"_nonReentrantBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"2500:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":6857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2500:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6858,"nodeType":"ExpressionStatement","src":"2500:21:37"},{"id":6859,"nodeType":"PlaceholderStatement","src":"2531:1:37"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6860,"name":"_nonReentrantAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6888,"src":"2542:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":6861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2542:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6862,"nodeType":"ExpressionStatement","src":"2542:20:37"}]},"documentation":{"id":6854,"nodeType":"StructuredDocumentation","src":"2095:366:37","text":" @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work."},"id":6864,"name":"nonReentrant","nameLocation":"2475:12:37","nodeType":"ModifierDefinition","parameters":{"id":6855,"nodeType":"ParameterList","parameters":[],"src":"2487:2:37"},"src":"2466:103:37","virtual":false,"visibility":"internal"},{"body":{"id":6879,"nodeType":"Block","src":"2614:268:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6867,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6842,"src":"2702:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6868,"name":"ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6840,"src":"2713:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2702:18:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6874,"nodeType":"IfStatement","src":"2698:86:37","trueBody":{"id":6873,"nodeType":"Block","src":"2722:62:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6870,"name":"ReentrancyGuardReentrantCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6845,"src":"2743:28:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2743:30:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6872,"nodeType":"RevertStatement","src":"2736:37:37"}]}},{"expression":{"id":6877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6875,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6842,"src":"2858:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6876,"name":"ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6840,"src":"2868:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2858:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6878,"nodeType":"ExpressionStatement","src":"2858:17:37"}]},"id":6880,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantBefore","nameLocation":"2584:19:37","nodeType":"FunctionDefinition","parameters":{"id":6865,"nodeType":"ParameterList","parameters":[],"src":"2603:2:37"},"returnParameters":{"id":6866,"nodeType":"ParameterList","parameters":[],"src":"2614:0:37"},"scope":6900,"src":"2575:307:37","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":6887,"nodeType":"Block","src":"2926:170:37","statements":[{"expression":{"id":6885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6883,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6842,"src":"3068:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6884,"name":"NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6837,"src":"3078:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3068:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6886,"nodeType":"ExpressionStatement","src":"3068:21:37"}]},"id":6888,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantAfter","nameLocation":"2897:18:37","nodeType":"FunctionDefinition","parameters":{"id":6881,"nodeType":"ParameterList","parameters":[],"src":"2915:2:37"},"returnParameters":{"id":6882,"nodeType":"ParameterList","parameters":[],"src":"2926:0:37"},"scope":6900,"src":"2888:208:37","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":6898,"nodeType":"Block","src":"3339:42:37","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6894,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6842,"src":"3356:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6895,"name":"ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6840,"src":"3367:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3356:18:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6893,"id":6897,"nodeType":"Return","src":"3349:25:37"}]},"documentation":{"id":6889,"nodeType":"StructuredDocumentation","src":"3102:168:37","text":" @dev Returns true if the reentrancy guard is currently set to \"entered\", which indicates there is a\n `nonReentrant` function in the call stack."},"id":6899,"implemented":true,"kind":"function","modifiers":[],"name":"_reentrancyGuardEntered","nameLocation":"3284:23:37","nodeType":"FunctionDefinition","parameters":{"id":6890,"nodeType":"ParameterList","parameters":[],"src":"3307:2:37"},"returnParameters":{"id":6893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6899,"src":"3333:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6891,"name":"bool","nodeType":"ElementaryTypeName","src":"3333:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3332:6:37"},"scope":6900,"src":"3275:106:37","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":6901,"src":"1030:2353:37","usedErrors":[6845],"usedEvents":[]}],"src":"109:3275:37"},"id":37},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[7024]},"id":7025,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6902,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"193:24:38"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":6903,"nodeType":"StructuredDocumentation","src":"219:1187:38","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 ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\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(newImplementation.code.length > 0);\n         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n     }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}."},"fullyImplemented":true,"id":7024,"linearizedBaseContracts":[7024],"name":"StorageSlot","nameLocation":"1415:11:38","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":6906,"members":[{"constant":false,"id":6905,"mutability":"mutable","name":"value","nameLocation":"1470:5:38","nodeType":"VariableDeclaration","scope":6906,"src":"1462:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6904,"name":"address","nodeType":"ElementaryTypeName","src":"1462:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1440:11:38","nodeType":"StructDefinition","scope":7024,"src":"1433:49:38","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":6909,"members":[{"constant":false,"id":6908,"mutability":"mutable","name":"value","nameLocation":"1522:5:38","nodeType":"VariableDeclaration","scope":6909,"src":"1517:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6907,"name":"bool","nodeType":"ElementaryTypeName","src":"1517:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1495:11:38","nodeType":"StructDefinition","scope":7024,"src":"1488:46:38","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":6912,"members":[{"constant":false,"id":6911,"mutability":"mutable","name":"value","nameLocation":"1577:5:38","nodeType":"VariableDeclaration","scope":6912,"src":"1569:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1569:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1547:11:38","nodeType":"StructDefinition","scope":7024,"src":"1540:49:38","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":6915,"members":[{"constant":false,"id":6914,"mutability":"mutable","name":"value","nameLocation":"1632:5:38","nodeType":"VariableDeclaration","scope":6915,"src":"1624:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6913,"name":"uint256","nodeType":"ElementaryTypeName","src":"1624:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1602:11:38","nodeType":"StructDefinition","scope":7024,"src":"1595:49:38","visibility":"public"},{"canonicalName":"StorageSlot.Int256Slot","id":6918,"members":[{"constant":false,"id":6917,"mutability":"mutable","name":"value","nameLocation":"1685:5:38","nodeType":"VariableDeclaration","scope":6918,"src":"1678:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6916,"name":"int256","nodeType":"ElementaryTypeName","src":"1678:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"Int256Slot","nameLocation":"1657:10:38","nodeType":"StructDefinition","scope":7024,"src":"1650:47:38","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":6921,"members":[{"constant":false,"id":6920,"mutability":"mutable","name":"value","nameLocation":"1738:5:38","nodeType":"VariableDeclaration","scope":6921,"src":"1731:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":6919,"name":"string","nodeType":"ElementaryTypeName","src":"1731:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"1710:10:38","nodeType":"StructDefinition","scope":7024,"src":"1703:47:38","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":6924,"members":[{"constant":false,"id":6923,"mutability":"mutable","name":"value","nameLocation":"1789:5:38","nodeType":"VariableDeclaration","scope":6924,"src":"1783:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":6922,"name":"bytes","nodeType":"ElementaryTypeName","src":"1783:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"1763:9:38","nodeType":"StructDefinition","scope":7024,"src":"1756:45:38","visibility":"public"},{"body":{"id":6934,"nodeType":"Block","src":"1983:79:38","statements":[{"AST":{"nativeSrc":"2018:38:38","nodeType":"YulBlock","src":"2018:38:38","statements":[{"nativeSrc":"2032:14:38","nodeType":"YulAssignment","src":"2032:14:38","value":{"name":"slot","nativeSrc":"2042:4:38","nodeType":"YulIdentifier","src":"2042:4:38"},"variableNames":[{"name":"r.slot","nativeSrc":"2032:6:38","nodeType":"YulIdentifier","src":"2032:6:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6931,"isOffset":false,"isSlot":true,"src":"2032:6:38","suffix":"slot","valueSize":1},{"declaration":6927,"isOffset":false,"isSlot":false,"src":"2042:4:38","valueSize":1}],"flags":["memory-safe"],"id":6933,"nodeType":"InlineAssembly","src":"1993:63:38"}]},"documentation":{"id":6925,"nodeType":"StructuredDocumentation","src":"1807:87:38","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":6935,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1908:14:38","nodeType":"FunctionDefinition","parameters":{"id":6928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6927,"mutability":"mutable","name":"slot","nameLocation":"1931:4:38","nodeType":"VariableDeclaration","scope":6935,"src":"1923:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1923:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1922:14:38"},"returnParameters":{"id":6932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6931,"mutability":"mutable","name":"r","nameLocation":"1980:1:38","nodeType":"VariableDeclaration","scope":6935,"src":"1960:21:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6906_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":6930,"nodeType":"UserDefinedTypeName","pathNode":{"id":6929,"name":"AddressSlot","nameLocations":["1960:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":6906,"src":"1960:11:38"},"referencedDeclaration":6906,"src":"1960:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6906_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1959:23:38"},"scope":7024,"src":"1899:163:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6945,"nodeType":"Block","src":"2243:79:38","statements":[{"AST":{"nativeSrc":"2278:38:38","nodeType":"YulBlock","src":"2278:38:38","statements":[{"nativeSrc":"2292:14:38","nodeType":"YulAssignment","src":"2292:14:38","value":{"name":"slot","nativeSrc":"2302:4:38","nodeType":"YulIdentifier","src":"2302:4:38"},"variableNames":[{"name":"r.slot","nativeSrc":"2292:6:38","nodeType":"YulIdentifier","src":"2292:6:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6942,"isOffset":false,"isSlot":true,"src":"2292:6:38","suffix":"slot","valueSize":1},{"declaration":6938,"isOffset":false,"isSlot":false,"src":"2302:4:38","valueSize":1}],"flags":["memory-safe"],"id":6944,"nodeType":"InlineAssembly","src":"2253:63:38"}]},"documentation":{"id":6936,"nodeType":"StructuredDocumentation","src":"2068:86:38","text":" @dev Returns a `BooleanSlot` with member `value` located at `slot`."},"id":6946,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2168:14:38","nodeType":"FunctionDefinition","parameters":{"id":6939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6938,"mutability":"mutable","name":"slot","nameLocation":"2191:4:38","nodeType":"VariableDeclaration","scope":6946,"src":"2183:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6937,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2183:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2182:14:38"},"returnParameters":{"id":6943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6942,"mutability":"mutable","name":"r","nameLocation":"2240:1:38","nodeType":"VariableDeclaration","scope":6946,"src":"2220:21:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$6909_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":6941,"nodeType":"UserDefinedTypeName","pathNode":{"id":6940,"name":"BooleanSlot","nameLocations":["2220:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":6909,"src":"2220:11:38"},"referencedDeclaration":6909,"src":"2220:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$6909_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2219:23:38"},"scope":7024,"src":"2159:163:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6956,"nodeType":"Block","src":"2503:79:38","statements":[{"AST":{"nativeSrc":"2538:38:38","nodeType":"YulBlock","src":"2538:38:38","statements":[{"nativeSrc":"2552:14:38","nodeType":"YulAssignment","src":"2552:14:38","value":{"name":"slot","nativeSrc":"2562:4:38","nodeType":"YulIdentifier","src":"2562:4:38"},"variableNames":[{"name":"r.slot","nativeSrc":"2552:6:38","nodeType":"YulIdentifier","src":"2552:6:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6953,"isOffset":false,"isSlot":true,"src":"2552:6:38","suffix":"slot","valueSize":1},{"declaration":6949,"isOffset":false,"isSlot":false,"src":"2562:4:38","valueSize":1}],"flags":["memory-safe"],"id":6955,"nodeType":"InlineAssembly","src":"2513:63:38"}]},"documentation":{"id":6947,"nodeType":"StructuredDocumentation","src":"2328:86:38","text":" @dev Returns a `Bytes32Slot` with member `value` located at `slot`."},"id":6957,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2428:14:38","nodeType":"FunctionDefinition","parameters":{"id":6950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6949,"mutability":"mutable","name":"slot","nameLocation":"2451:4:38","nodeType":"VariableDeclaration","scope":6957,"src":"2443:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2443:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2442:14:38"},"returnParameters":{"id":6954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6953,"mutability":"mutable","name":"r","nameLocation":"2500:1:38","nodeType":"VariableDeclaration","scope":6957,"src":"2480:21:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6912_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":6952,"nodeType":"UserDefinedTypeName","pathNode":{"id":6951,"name":"Bytes32Slot","nameLocations":["2480:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":6912,"src":"2480:11:38"},"referencedDeclaration":6912,"src":"2480:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6912_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2479:23:38"},"scope":7024,"src":"2419:163:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6967,"nodeType":"Block","src":"2763:79:38","statements":[{"AST":{"nativeSrc":"2798:38:38","nodeType":"YulBlock","src":"2798:38:38","statements":[{"nativeSrc":"2812:14:38","nodeType":"YulAssignment","src":"2812:14:38","value":{"name":"slot","nativeSrc":"2822:4:38","nodeType":"YulIdentifier","src":"2822:4:38"},"variableNames":[{"name":"r.slot","nativeSrc":"2812:6:38","nodeType":"YulIdentifier","src":"2812:6:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6964,"isOffset":false,"isSlot":true,"src":"2812:6:38","suffix":"slot","valueSize":1},{"declaration":6960,"isOffset":false,"isSlot":false,"src":"2822:4:38","valueSize":1}],"flags":["memory-safe"],"id":6966,"nodeType":"InlineAssembly","src":"2773:63:38"}]},"documentation":{"id":6958,"nodeType":"StructuredDocumentation","src":"2588:86:38","text":" @dev Returns a `Uint256Slot` with member `value` located at `slot`."},"id":6968,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2688:14:38","nodeType":"FunctionDefinition","parameters":{"id":6961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6960,"mutability":"mutable","name":"slot","nameLocation":"2711:4:38","nodeType":"VariableDeclaration","scope":6968,"src":"2703:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2703:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2702:14:38"},"returnParameters":{"id":6965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6964,"mutability":"mutable","name":"r","nameLocation":"2760:1:38","nodeType":"VariableDeclaration","scope":6968,"src":"2740:21:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$6915_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":6963,"nodeType":"UserDefinedTypeName","pathNode":{"id":6962,"name":"Uint256Slot","nameLocations":["2740:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":6915,"src":"2740:11:38"},"referencedDeclaration":6915,"src":"2740:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$6915_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2739:23:38"},"scope":7024,"src":"2679:163:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6978,"nodeType":"Block","src":"3020:79:38","statements":[{"AST":{"nativeSrc":"3055:38:38","nodeType":"YulBlock","src":"3055:38:38","statements":[{"nativeSrc":"3069:14:38","nodeType":"YulAssignment","src":"3069:14:38","value":{"name":"slot","nativeSrc":"3079:4:38","nodeType":"YulIdentifier","src":"3079:4:38"},"variableNames":[{"name":"r.slot","nativeSrc":"3069:6:38","nodeType":"YulIdentifier","src":"3069:6:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6975,"isOffset":false,"isSlot":true,"src":"3069:6:38","suffix":"slot","valueSize":1},{"declaration":6971,"isOffset":false,"isSlot":false,"src":"3079:4:38","valueSize":1}],"flags":["memory-safe"],"id":6977,"nodeType":"InlineAssembly","src":"3030:63:38"}]},"documentation":{"id":6969,"nodeType":"StructuredDocumentation","src":"2848:85:38","text":" @dev Returns a `Int256Slot` with member `value` located at `slot`."},"id":6979,"implemented":true,"kind":"function","modifiers":[],"name":"getInt256Slot","nameLocation":"2947:13:38","nodeType":"FunctionDefinition","parameters":{"id":6972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6971,"mutability":"mutable","name":"slot","nameLocation":"2969:4:38","nodeType":"VariableDeclaration","scope":6979,"src":"2961:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2961:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2960:14:38"},"returnParameters":{"id":6976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6975,"mutability":"mutable","name":"r","nameLocation":"3017:1:38","nodeType":"VariableDeclaration","scope":6979,"src":"2998:20:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$6918_storage_ptr","typeString":"struct StorageSlot.Int256Slot"},"typeName":{"id":6974,"nodeType":"UserDefinedTypeName","pathNode":{"id":6973,"name":"Int256Slot","nameLocations":["2998:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":6918,"src":"2998:10:38"},"referencedDeclaration":6918,"src":"2998:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$6918_storage_ptr","typeString":"struct StorageSlot.Int256Slot"}},"visibility":"internal"}],"src":"2997:22:38"},"scope":7024,"src":"2938:161:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6989,"nodeType":"Block","src":"3277:79:38","statements":[{"AST":{"nativeSrc":"3312:38:38","nodeType":"YulBlock","src":"3312:38:38","statements":[{"nativeSrc":"3326:14:38","nodeType":"YulAssignment","src":"3326:14:38","value":{"name":"slot","nativeSrc":"3336:4:38","nodeType":"YulIdentifier","src":"3336:4:38"},"variableNames":[{"name":"r.slot","nativeSrc":"3326:6:38","nodeType":"YulIdentifier","src":"3326:6:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6986,"isOffset":false,"isSlot":true,"src":"3326:6:38","suffix":"slot","valueSize":1},{"declaration":6982,"isOffset":false,"isSlot":false,"src":"3336:4:38","valueSize":1}],"flags":["memory-safe"],"id":6988,"nodeType":"InlineAssembly","src":"3287:63:38"}]},"documentation":{"id":6980,"nodeType":"StructuredDocumentation","src":"3105:85:38","text":" @dev Returns a `StringSlot` with member `value` located at `slot`."},"id":6990,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3204:13:38","nodeType":"FunctionDefinition","parameters":{"id":6983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6982,"mutability":"mutable","name":"slot","nameLocation":"3226:4:38","nodeType":"VariableDeclaration","scope":6990,"src":"3218:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3218:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3217:14:38"},"returnParameters":{"id":6987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6986,"mutability":"mutable","name":"r","nameLocation":"3274:1:38","nodeType":"VariableDeclaration","scope":6990,"src":"3255:20:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$6921_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":6985,"nodeType":"UserDefinedTypeName","pathNode":{"id":6984,"name":"StringSlot","nameLocations":["3255:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":6921,"src":"3255:10:38"},"referencedDeclaration":6921,"src":"3255:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$6921_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3254:22:38"},"scope":7024,"src":"3195:161:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7000,"nodeType":"Block","src":"3558:85:38","statements":[{"AST":{"nativeSrc":"3593:44:38","nodeType":"YulBlock","src":"3593:44:38","statements":[{"nativeSrc":"3607:20:38","nodeType":"YulAssignment","src":"3607:20:38","value":{"name":"store.slot","nativeSrc":"3617:10:38","nodeType":"YulIdentifier","src":"3617:10:38"},"variableNames":[{"name":"r.slot","nativeSrc":"3607:6:38","nodeType":"YulIdentifier","src":"3607:6:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6997,"isOffset":false,"isSlot":true,"src":"3607:6:38","suffix":"slot","valueSize":1},{"declaration":6993,"isOffset":false,"isSlot":true,"src":"3617:10:38","suffix":"slot","valueSize":1}],"flags":["memory-safe"],"id":6999,"nodeType":"InlineAssembly","src":"3568:69:38"}]},"documentation":{"id":6991,"nodeType":"StructuredDocumentation","src":"3362:101:38","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":7001,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3477:13:38","nodeType":"FunctionDefinition","parameters":{"id":6994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6993,"mutability":"mutable","name":"store","nameLocation":"3506:5:38","nodeType":"VariableDeclaration","scope":7001,"src":"3491:20:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":6992,"name":"string","nodeType":"ElementaryTypeName","src":"3491:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3490:22:38"},"returnParameters":{"id":6998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6997,"mutability":"mutable","name":"r","nameLocation":"3555:1:38","nodeType":"VariableDeclaration","scope":7001,"src":"3536:20:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$6921_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":6996,"nodeType":"UserDefinedTypeName","pathNode":{"id":6995,"name":"StringSlot","nameLocations":["3536:10:38"],"nodeType":"IdentifierPath","referencedDeclaration":6921,"src":"3536:10:38"},"referencedDeclaration":6921,"src":"3536:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$6921_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3535:22:38"},"scope":7024,"src":"3468:175:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7011,"nodeType":"Block","src":"3818:79:38","statements":[{"AST":{"nativeSrc":"3853:38:38","nodeType":"YulBlock","src":"3853:38:38","statements":[{"nativeSrc":"3867:14:38","nodeType":"YulAssignment","src":"3867:14:38","value":{"name":"slot","nativeSrc":"3877:4:38","nodeType":"YulIdentifier","src":"3877:4:38"},"variableNames":[{"name":"r.slot","nativeSrc":"3867:6:38","nodeType":"YulIdentifier","src":"3867:6:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7008,"isOffset":false,"isSlot":true,"src":"3867:6:38","suffix":"slot","valueSize":1},{"declaration":7004,"isOffset":false,"isSlot":false,"src":"3877:4:38","valueSize":1}],"flags":["memory-safe"],"id":7010,"nodeType":"InlineAssembly","src":"3828:63:38"}]},"documentation":{"id":7002,"nodeType":"StructuredDocumentation","src":"3649:84:38","text":" @dev Returns a `BytesSlot` with member `value` located at `slot`."},"id":7012,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3747:12:38","nodeType":"FunctionDefinition","parameters":{"id":7005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7004,"mutability":"mutable","name":"slot","nameLocation":"3768:4:38","nodeType":"VariableDeclaration","scope":7012,"src":"3760:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3760:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3759:14:38"},"returnParameters":{"id":7009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7008,"mutability":"mutable","name":"r","nameLocation":"3815:1:38","nodeType":"VariableDeclaration","scope":7012,"src":"3797:19:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$6924_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":7007,"nodeType":"UserDefinedTypeName","pathNode":{"id":7006,"name":"BytesSlot","nameLocations":["3797:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":6924,"src":"3797:9:38"},"referencedDeclaration":6924,"src":"3797:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$6924_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3796:21:38"},"scope":7024,"src":"3738:159:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7022,"nodeType":"Block","src":"4094:85:38","statements":[{"AST":{"nativeSrc":"4129:44:38","nodeType":"YulBlock","src":"4129:44:38","statements":[{"nativeSrc":"4143:20:38","nodeType":"YulAssignment","src":"4143:20:38","value":{"name":"store.slot","nativeSrc":"4153:10:38","nodeType":"YulIdentifier","src":"4153:10:38"},"variableNames":[{"name":"r.slot","nativeSrc":"4143:6:38","nodeType":"YulIdentifier","src":"4143:6:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7019,"isOffset":false,"isSlot":true,"src":"4143:6:38","suffix":"slot","valueSize":1},{"declaration":7015,"isOffset":false,"isSlot":true,"src":"4153:10:38","suffix":"slot","valueSize":1}],"flags":["memory-safe"],"id":7021,"nodeType":"InlineAssembly","src":"4104:69:38"}]},"documentation":{"id":7013,"nodeType":"StructuredDocumentation","src":"3903:99:38","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":7023,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"4016:12:38","nodeType":"FunctionDefinition","parameters":{"id":7016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7015,"mutability":"mutable","name":"store","nameLocation":"4043:5:38","nodeType":"VariableDeclaration","scope":7023,"src":"4029:19:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":7014,"name":"bytes","nodeType":"ElementaryTypeName","src":"4029:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4028:21:38"},"returnParameters":{"id":7020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7019,"mutability":"mutable","name":"r","nameLocation":"4091:1:38","nodeType":"VariableDeclaration","scope":7023,"src":"4073:19:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$6924_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":7018,"nodeType":"UserDefinedTypeName","pathNode":{"id":7017,"name":"BytesSlot","nameLocations":["4073:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":6924,"src":"4073:9:38"},"referencedDeclaration":6924,"src":"4073:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$6924_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"4072:21:38"},"scope":7024,"src":"4007:172:38","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7025,"src":"1407:2774:38","usedErrors":[],"usedEvents":[]}],"src":"193:3989:38"},"id":38},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[10099],"SignedMath":[12008],"Strings":[7344]},"id":7345,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7026,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:39"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":7028,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7345,"sourceUnit":10100,"src":"127:37:39","symbolAliases":[{"foreign":{"id":7027,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"135:4:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":7030,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7345,"sourceUnit":12009,"src":"165:49:39","symbolAliases":[{"foreign":{"id":7029,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12008,"src":"173:10:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":7031,"nodeType":"StructuredDocumentation","src":"216:34:39","text":" @dev String operations."},"fullyImplemented":true,"id":7344,"linearizedBaseContracts":[7344],"name":"Strings","nameLocation":"259:7:39","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":7034,"mutability":"constant","name":"HEX_DIGITS","nameLocation":"298:10:39","nodeType":"VariableDeclaration","scope":7344,"src":"273:56:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":7032,"name":"bytes16","nodeType":"ElementaryTypeName","src":"273:7:39","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":7033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"311:18:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":7037,"mutability":"constant","name":"ADDRESS_LENGTH","nameLocation":"358:14:39","nodeType":"VariableDeclaration","scope":7344,"src":"335:42:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7035,"name":"uint8","nodeType":"ElementaryTypeName","src":"335:5:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":7036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"375:2:39","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"documentation":{"id":7038,"nodeType":"StructuredDocumentation","src":"384:81:39","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","id":7044,"name":"StringsInsufficientHexLength","nameLocation":"476:28:39","nodeType":"ErrorDefinition","parameters":{"id":7043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7040,"mutability":"mutable","name":"value","nameLocation":"513:5:39","nodeType":"VariableDeclaration","scope":7044,"src":"505:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7039,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7042,"mutability":"mutable","name":"length","nameLocation":"528:6:39","nodeType":"VariableDeclaration","scope":7044,"src":"520:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7041,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"504:31:39"},"src":"470:66:39"},{"body":{"id":7091,"nodeType":"Block","src":"708:561:39","statements":[{"id":7090,"nodeType":"UncheckedBlock","src":"718:545:39","statements":[{"assignments":[7053],"declarations":[{"constant":false,"id":7053,"mutability":"mutable","name":"length","nameLocation":"750:6:39","nodeType":"VariableDeclaration","scope":7090,"src":"742:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7052,"name":"uint256","nodeType":"ElementaryTypeName","src":"742:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7060,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7056,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7047,"src":"770:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7054,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"759:4:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10099_$","typeString":"type(library Math)"}},"id":7055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"764:5:39","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":9871,"src":"759:10:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"759:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"742:38:39"},{"assignments":[7062],"declarations":[{"constant":false,"id":7062,"mutability":"mutable","name":"buffer","nameLocation":"808:6:39","nodeType":"VariableDeclaration","scope":7090,"src":"794:20:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7061,"name":"string","nodeType":"ElementaryTypeName","src":"794:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7067,"initialValue":{"arguments":[{"id":7065,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7053,"src":"828:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"817:10:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":7063,"name":"string","nodeType":"ElementaryTypeName","src":"821:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":7066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"794:41:39"},{"assignments":[7069],"declarations":[{"constant":false,"id":7069,"mutability":"mutable","name":"ptr","nameLocation":"857:3:39","nodeType":"VariableDeclaration","scope":7090,"src":"849:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7068,"name":"uint256","nodeType":"ElementaryTypeName","src":"849:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7070,"nodeType":"VariableDeclarationStatement","src":"849:11:39"},{"AST":{"nativeSrc":"899:67:39","nodeType":"YulBlock","src":"899:67:39","statements":[{"nativeSrc":"917:35:39","nodeType":"YulAssignment","src":"917:35:39","value":{"arguments":[{"name":"buffer","nativeSrc":"928:6:39","nodeType":"YulIdentifier","src":"928:6:39"},{"arguments":[{"kind":"number","nativeSrc":"940:2:39","nodeType":"YulLiteral","src":"940:2:39","type":"","value":"32"},{"name":"length","nativeSrc":"944:6:39","nodeType":"YulIdentifier","src":"944:6:39"}],"functionName":{"name":"add","nativeSrc":"936:3:39","nodeType":"YulIdentifier","src":"936:3:39"},"nativeSrc":"936:15:39","nodeType":"YulFunctionCall","src":"936:15:39"}],"functionName":{"name":"add","nativeSrc":"924:3:39","nodeType":"YulIdentifier","src":"924:3:39"},"nativeSrc":"924:28:39","nodeType":"YulFunctionCall","src":"924:28:39"},"variableNames":[{"name":"ptr","nativeSrc":"917:3:39","nodeType":"YulIdentifier","src":"917:3:39"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7062,"isOffset":false,"isSlot":false,"src":"928:6:39","valueSize":1},{"declaration":7053,"isOffset":false,"isSlot":false,"src":"944:6:39","valueSize":1},{"declaration":7069,"isOffset":false,"isSlot":false,"src":"917:3:39","valueSize":1}],"flags":["memory-safe"],"id":7071,"nodeType":"InlineAssembly","src":"874:92:39"},{"body":{"id":7086,"nodeType":"Block","src":"992:234:39","statements":[{"expression":{"id":7074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1010:5:39","subExpression":{"id":7073,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"1010:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7075,"nodeType":"ExpressionStatement","src":"1010:5:39"},{"AST":{"nativeSrc":"1058:86:39","nodeType":"YulBlock","src":"1058:86:39","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"1088:3:39","nodeType":"YulIdentifier","src":"1088:3:39"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1102:5:39","nodeType":"YulIdentifier","src":"1102:5:39"},{"kind":"number","nativeSrc":"1109:2:39","nodeType":"YulLiteral","src":"1109:2:39","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"1098:3:39","nodeType":"YulIdentifier","src":"1098:3:39"},"nativeSrc":"1098:14:39","nodeType":"YulFunctionCall","src":"1098:14:39"},{"name":"HEX_DIGITS","nativeSrc":"1114:10:39","nodeType":"YulIdentifier","src":"1114:10:39"}],"functionName":{"name":"byte","nativeSrc":"1093:4:39","nodeType":"YulIdentifier","src":"1093:4:39"},"nativeSrc":"1093:32:39","nodeType":"YulFunctionCall","src":"1093:32:39"}],"functionName":{"name":"mstore8","nativeSrc":"1080:7:39","nodeType":"YulIdentifier","src":"1080:7:39"},"nativeSrc":"1080:46:39","nodeType":"YulFunctionCall","src":"1080:46:39"},"nativeSrc":"1080:46:39","nodeType":"YulExpressionStatement","src":"1080:46:39"}]},"evmVersion":"paris","externalReferences":[{"declaration":7034,"isOffset":false,"isSlot":false,"src":"1114:10:39","valueSize":1},{"declaration":7069,"isOffset":false,"isSlot":false,"src":"1088:3:39","valueSize":1},{"declaration":7047,"isOffset":false,"isSlot":false,"src":"1102:5:39","valueSize":1}],"flags":["memory-safe"],"id":7076,"nodeType":"InlineAssembly","src":"1033:111:39"},{"expression":{"id":7079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7047,"src":"1161:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":7078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1170:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1161:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7080,"nodeType":"ExpressionStatement","src":"1161:11:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7081,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7047,"src":"1194:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1203:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1194:10:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7085,"nodeType":"IfStatement","src":"1190:21:39","trueBody":{"id":7084,"nodeType":"Break","src":"1206:5:39"}}]},"condition":{"hexValue":"74727565","id":7072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"986:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":7087,"nodeType":"WhileStatement","src":"979:247:39"},{"expression":{"id":7088,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"1246:6:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7051,"id":7089,"nodeType":"Return","src":"1239:13:39"}]}]},"documentation":{"id":7045,"nodeType":"StructuredDocumentation","src":"542:90:39","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":7092,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"646:8:39","nodeType":"FunctionDefinition","parameters":{"id":7048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7047,"mutability":"mutable","name":"value","nameLocation":"663:5:39","nodeType":"VariableDeclaration","scope":7092,"src":"655:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7046,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"654:15:39"},"returnParameters":{"id":7051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7050,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7092,"src":"693:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7049,"name":"string","nodeType":"ElementaryTypeName","src":"693:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"692:15:39"},"scope":7344,"src":"637:632:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7117,"nodeType":"Block","src":"1445:92:39","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7103,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7095,"src":"1476:5:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":7104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1484:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1476:9:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":7107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1494:2:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":7108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1476:20:39","trueExpression":{"hexValue":"2d","id":7106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1488:3:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":7112,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7095,"src":"1522:5:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":7110,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12008,"src":"1507:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$12008_$","typeString":"type(library SignedMath)"}},"id":7111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1518:3:39","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":12007,"src":"1507:14:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1507:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7109,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7092,"src":"1498:8:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":7114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:31:39","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":7101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1462:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7100,"name":"string","nodeType":"ElementaryTypeName","src":"1462:6:39","typeDescriptions":{}}},"id":7102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1469:6:39","memberName":"concat","nodeType":"MemberAccess","src":"1462:13:39","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":7115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1462:68:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7099,"id":7116,"nodeType":"Return","src":"1455:75:39"}]},"documentation":{"id":7093,"nodeType":"StructuredDocumentation","src":"1275:89:39","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":7118,"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"1378:14:39","nodeType":"FunctionDefinition","parameters":{"id":7096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7095,"mutability":"mutable","name":"value","nameLocation":"1400:5:39","nodeType":"VariableDeclaration","scope":7118,"src":"1393:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7094,"name":"int256","nodeType":"ElementaryTypeName","src":"1393:6:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1392:14:39"},"returnParameters":{"id":7099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7118,"src":"1430:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7097,"name":"string","nodeType":"ElementaryTypeName","src":"1430:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1429:15:39"},"scope":7344,"src":"1369:168:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7137,"nodeType":"Block","src":"1716:100:39","statements":[{"id":7136,"nodeType":"UncheckedBlock","src":"1726:84:39","statements":[{"expression":{"arguments":[{"id":7127,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"1769:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"1788:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7128,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"1776:4:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10099_$","typeString":"type(library Math)"}},"id":7129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1781:6:39","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":10042,"src":"1776:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1776:22:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7126,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[7138,7221,7241],"referencedDeclaration":7221,"src":"1757:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":7134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:42:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7125,"id":7135,"nodeType":"Return","src":"1750:49:39"}]}]},"documentation":{"id":7119,"nodeType":"StructuredDocumentation","src":"1543:94:39","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":7138,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1651:11:39","nodeType":"FunctionDefinition","parameters":{"id":7122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7121,"mutability":"mutable","name":"value","nameLocation":"1671:5:39","nodeType":"VariableDeclaration","scope":7138,"src":"1663:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7120,"name":"uint256","nodeType":"ElementaryTypeName","src":"1663:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1662:15:39"},"returnParameters":{"id":7125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7138,"src":"1701:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7123,"name":"string","nodeType":"ElementaryTypeName","src":"1701:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1700:15:39"},"scope":7344,"src":"1642:174:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7220,"nodeType":"Block","src":"2029:435:39","statements":[{"assignments":[7149],"declarations":[{"constant":false,"id":7149,"mutability":"mutable","name":"localValue","nameLocation":"2047:10:39","nodeType":"VariableDeclaration","scope":7220,"src":"2039:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7148,"name":"uint256","nodeType":"ElementaryTypeName","src":"2039:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7151,"initialValue":{"id":7150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7141,"src":"2060:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2039:26:39"},{"assignments":[7153],"declarations":[{"constant":false,"id":7153,"mutability":"mutable","name":"buffer","nameLocation":"2088:6:39","nodeType":"VariableDeclaration","scope":7220,"src":"2075:19:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7152,"name":"bytes","nodeType":"ElementaryTypeName","src":"2075:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7162,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2107:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7157,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"2111:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2107:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":7159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2120:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2107:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2097:9:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":7154,"name":"bytes","nodeType":"ElementaryTypeName","src":"2101:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":7161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2097:25:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2075:47:39"},{"expression":{"id":7167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7163,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7153,"src":"2132:6:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7165,"indexExpression":{"hexValue":"30","id":7164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2139:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2132:9:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":7166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2144:3:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2132:15:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7168,"nodeType":"ExpressionStatement","src":"2132:15:39"},{"expression":{"id":7173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7169,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7153,"src":"2157:6:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7171,"indexExpression":{"hexValue":"31","id":7170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2164:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2157:9:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":7172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2169:3:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2157:15:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7174,"nodeType":"ExpressionStatement","src":"2157:15:39"},{"body":{"id":7203,"nodeType":"Block","src":"2227:95:39","statements":[{"expression":{"id":7197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7189,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7153,"src":"2241:6:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7191,"indexExpression":{"id":7190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7176,"src":"2248:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2241:9:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7192,"name":"HEX_DIGITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7034,"src":"2253:10:39","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":7196,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7193,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7149,"src":"2264:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":7194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2277:3:39","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2264:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2253:28:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2241:40:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7198,"nodeType":"ExpressionStatement","src":"2241:40:39"},{"expression":{"id":7201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7199,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7149,"src":"2295:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":7200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2310:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2295:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7202,"nodeType":"ExpressionStatement","src":"2295:16:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7183,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7176,"src":"2215:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":7184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2219:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2215:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7204,"initializationExpression":{"assignments":[7176],"declarations":[{"constant":false,"id":7176,"mutability":"mutable","name":"i","nameLocation":"2195:1:39","nodeType":"VariableDeclaration","scope":7204,"src":"2187:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7175,"name":"uint256","nodeType":"ElementaryTypeName","src":"2187:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7182,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2199:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7178,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"2203:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2199:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2212:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2199:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2187:26:39"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":7187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2222:3:39","subExpression":{"id":7186,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7176,"src":"2224:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7188,"nodeType":"ExpressionStatement","src":"2222:3:39"},"nodeType":"ForStatement","src":"2182:140:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7205,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7149,"src":"2335:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2349:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2335:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7214,"nodeType":"IfStatement","src":"2331:96:39","trueBody":{"id":7213,"nodeType":"Block","src":"2352:75:39","statements":[{"errorCall":{"arguments":[{"id":7209,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7141,"src":"2402:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7210,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"2409:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7208,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7044,"src":"2373:28:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":7211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2373:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7212,"nodeType":"RevertStatement","src":"2366:50:39"}]}},{"expression":{"arguments":[{"id":7217,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7153,"src":"2450:6:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2443:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7215,"name":"string","nodeType":"ElementaryTypeName","src":"2443:6:39","typeDescriptions":{}}},"id":7218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:14:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7147,"id":7219,"nodeType":"Return","src":"2436:21:39"}]},"documentation":{"id":7139,"nodeType":"StructuredDocumentation","src":"1822:112:39","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":7221,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1948:11:39","nodeType":"FunctionDefinition","parameters":{"id":7144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7141,"mutability":"mutable","name":"value","nameLocation":"1968:5:39","nodeType":"VariableDeclaration","scope":7221,"src":"1960:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7140,"name":"uint256","nodeType":"ElementaryTypeName","src":"1960:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7143,"mutability":"mutable","name":"length","nameLocation":"1983:6:39","nodeType":"VariableDeclaration","scope":7221,"src":"1975:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7142,"name":"uint256","nodeType":"ElementaryTypeName","src":"1975:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1959:31:39"},"returnParameters":{"id":7147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7221,"src":"2014:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7145,"name":"string","nodeType":"ElementaryTypeName","src":"2014:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2013:15:39"},"scope":7344,"src":"1939:525:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7240,"nodeType":"Block","src":"2696:75:39","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":7234,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"2741:4:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2733:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7232,"name":"uint160","nodeType":"ElementaryTypeName","src":"2733:7:39","typeDescriptions":{}}},"id":7235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2733:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2725:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7230,"name":"uint256","nodeType":"ElementaryTypeName","src":"2725:7:39","typeDescriptions":{}}},"id":7236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2725:22:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7237,"name":"ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7037,"src":"2749:14:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7229,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[7138,7221,7241],"referencedDeclaration":7221,"src":"2713:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":7238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2713:51:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7228,"id":7239,"nodeType":"Return","src":"2706:58:39"}]},"documentation":{"id":7222,"nodeType":"StructuredDocumentation","src":"2470:148:39","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation."},"id":7241,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2632:11:39","nodeType":"FunctionDefinition","parameters":{"id":7225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7224,"mutability":"mutable","name":"addr","nameLocation":"2652:4:39","nodeType":"VariableDeclaration","scope":7241,"src":"2644:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7223,"name":"address","nodeType":"ElementaryTypeName","src":"2644:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2643:14:39"},"returnParameters":{"id":7228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7241,"src":"2681:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7226,"name":"string","nodeType":"ElementaryTypeName","src":"2681:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2680:15:39"},"scope":7344,"src":"2623:148:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7305,"nodeType":"Block","src":"3028:642:39","statements":[{"assignments":[7250],"declarations":[{"constant":false,"id":7250,"mutability":"mutable","name":"buffer","nameLocation":"3051:6:39","nodeType":"VariableDeclaration","scope":7305,"src":"3038:19:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7249,"name":"bytes","nodeType":"ElementaryTypeName","src":"3038:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7257,"initialValue":{"arguments":[{"arguments":[{"id":7254,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7244,"src":"3078:4:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7253,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[7138,7221,7241],"referencedDeclaration":7241,"src":"3066:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":7255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3066:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3060:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7251,"name":"bytes","nodeType":"ElementaryTypeName","src":"3060:5:39","typeDescriptions":{}}},"id":7256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3060:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3038:46:39"},{"assignments":[7259],"declarations":[{"constant":false,"id":7259,"mutability":"mutable","name":"hashValue","nameLocation":"3177:9:39","nodeType":"VariableDeclaration","scope":7305,"src":"3169:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7258,"name":"uint256","nodeType":"ElementaryTypeName","src":"3169:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7260,"nodeType":"VariableDeclarationStatement","src":"3169:17:39"},{"AST":{"nativeSrc":"3221:78:39","nodeType":"YulBlock","src":"3221:78:39","statements":[{"nativeSrc":"3235:54:39","nodeType":"YulAssignment","src":"3235:54:39","value":{"arguments":[{"kind":"number","nativeSrc":"3252:2:39","nodeType":"YulLiteral","src":"3252:2:39","type":"","value":"96"},{"arguments":[{"arguments":[{"name":"buffer","nativeSrc":"3270:6:39","nodeType":"YulIdentifier","src":"3270:6:39"},{"kind":"number","nativeSrc":"3278:4:39","nodeType":"YulLiteral","src":"3278:4:39","type":"","value":"0x22"}],"functionName":{"name":"add","nativeSrc":"3266:3:39","nodeType":"YulIdentifier","src":"3266:3:39"},"nativeSrc":"3266:17:39","nodeType":"YulFunctionCall","src":"3266:17:39"},{"kind":"number","nativeSrc":"3285:2:39","nodeType":"YulLiteral","src":"3285:2:39","type":"","value":"40"}],"functionName":{"name":"keccak256","nativeSrc":"3256:9:39","nodeType":"YulIdentifier","src":"3256:9:39"},"nativeSrc":"3256:32:39","nodeType":"YulFunctionCall","src":"3256:32:39"}],"functionName":{"name":"shr","nativeSrc":"3248:3:39","nodeType":"YulIdentifier","src":"3248:3:39"},"nativeSrc":"3248:41:39","nodeType":"YulFunctionCall","src":"3248:41:39"},"variableNames":[{"name":"hashValue","nativeSrc":"3235:9:39","nodeType":"YulIdentifier","src":"3235:9:39"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7250,"isOffset":false,"isSlot":false,"src":"3270:6:39","valueSize":1},{"declaration":7259,"isOffset":false,"isSlot":false,"src":"3235:9:39","valueSize":1}],"flags":["memory-safe"],"id":7261,"nodeType":"InlineAssembly","src":"3196:103:39"},{"body":{"id":7298,"nodeType":"Block","src":"3342:291:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7272,"name":"hashValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7259,"src":"3448:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":7273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3460:3:39","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"3448:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"37","id":7275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3466:1:39","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"3448:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":7279,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"3477:6:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7281,"indexExpression":{"id":7280,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3484:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3477:9:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":7278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3471:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7277,"name":"uint8","nodeType":"ElementaryTypeName","src":"3471:5:39","typeDescriptions":{}}},"id":7282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3471:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3936","id":7283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3490:2:39","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"3471:21:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3448:44:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7293,"nodeType":"IfStatement","src":"3444:150:39","trueBody":{"id":7292,"nodeType":"Block","src":"3494:100:39","statements":[{"expression":{"id":7290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7286,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"3562:6:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7288,"indexExpression":{"id":7287,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3569:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3562:9:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"^=","rightHandSide":{"hexValue":"30783230","id":7289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3575:4:39","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"3562:17:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7291,"nodeType":"ExpressionStatement","src":"3562:17:39"}]}},{"expression":{"id":7296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7294,"name":"hashValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7259,"src":"3607:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":7295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3621:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3607:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7297,"nodeType":"ExpressionStatement","src":"3607:15:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7266,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3330:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":7267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3334:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3330:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7299,"initializationExpression":{"assignments":[7263],"declarations":[{"constant":false,"id":7263,"mutability":"mutable","name":"i","nameLocation":"3322:1:39","nodeType":"VariableDeclaration","scope":7299,"src":"3314:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7262,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7265,"initialValue":{"hexValue":"3431","id":7264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3326:2:39","typeDescriptions":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"value":"41"},"nodeType":"VariableDeclarationStatement","src":"3314:14:39"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":7270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"3337:3:39","subExpression":{"id":7269,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3339:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7271,"nodeType":"ExpressionStatement","src":"3337:3:39"},"nodeType":"ForStatement","src":"3309:324:39"},{"expression":{"arguments":[{"id":7302,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"3656:6:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3649:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7300,"name":"string","nodeType":"ElementaryTypeName","src":"3649:6:39","typeDescriptions":{}}},"id":7303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3649:14:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7248,"id":7304,"nodeType":"Return","src":"3642:21:39"}]},"documentation":{"id":7242,"nodeType":"StructuredDocumentation","src":"2777:165:39","text":" @dev Converts an `address` with fixed length of 20 bytes to its checksummed ASCII `string` hexadecimal\n representation, according to EIP-55."},"id":7306,"implemented":true,"kind":"function","modifiers":[],"name":"toChecksumHexString","nameLocation":"2956:19:39","nodeType":"FunctionDefinition","parameters":{"id":7245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7244,"mutability":"mutable","name":"addr","nameLocation":"2984:4:39","nodeType":"VariableDeclaration","scope":7306,"src":"2976:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7243,"name":"address","nodeType":"ElementaryTypeName","src":"2976:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2975:14:39"},"returnParameters":{"id":7248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7306,"src":"3013:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7246,"name":"string","nodeType":"ElementaryTypeName","src":"3013:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3012:15:39"},"scope":7344,"src":"2947:723:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7342,"nodeType":"Block","src":"3825:104:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7318,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7309,"src":"3848:1:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3842:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7316,"name":"bytes","nodeType":"ElementaryTypeName","src":"3842:5:39","typeDescriptions":{}}},"id":7319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:8:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3851:6:39","memberName":"length","nodeType":"MemberAccess","src":"3842:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":7323,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7311,"src":"3867:1:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3861:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7321,"name":"bytes","nodeType":"ElementaryTypeName","src":"3861:5:39","typeDescriptions":{}}},"id":7324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3861:8:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3870:6:39","memberName":"length","nodeType":"MemberAccess","src":"3861:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3842:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":7330,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7309,"src":"3896:1:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3890:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7328,"name":"bytes","nodeType":"ElementaryTypeName","src":"3890:5:39","typeDescriptions":{}}},"id":7331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3890:8:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7327,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3880:9:39","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3880:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":7336,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7311,"src":"3919:1:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3913:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7334,"name":"bytes","nodeType":"ElementaryTypeName","src":"3913:5:39","typeDescriptions":{}}},"id":7337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3913:8:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7333,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3903:9:39","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3903:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3880:42:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3842:80:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7315,"id":7341,"nodeType":"Return","src":"3835:87:39"}]},"documentation":{"id":7307,"nodeType":"StructuredDocumentation","src":"3676:66:39","text":" @dev Returns true if the two strings are equal."},"id":7343,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"3756:5:39","nodeType":"FunctionDefinition","parameters":{"id":7312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7309,"mutability":"mutable","name":"a","nameLocation":"3776:1:39","nodeType":"VariableDeclaration","scope":7343,"src":"3762:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7308,"name":"string","nodeType":"ElementaryTypeName","src":"3762:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7311,"mutability":"mutable","name":"b","nameLocation":"3793:1:39","nodeType":"VariableDeclaration","scope":7343,"src":"3779:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7310,"name":"string","nodeType":"ElementaryTypeName","src":"3779:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3761:34:39"},"returnParameters":{"id":7315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7343,"src":"3819:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7313,"name":"bool","nodeType":"ElementaryTypeName","src":"3819:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3818:6:39"},"scope":7344,"src":"3747:182:39","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7345,"src":"251:3680:39","usedErrors":[7044],"usedEvents":[]}],"src":"101:3831:39"},"id":39},"@openzeppelin/contracts/utils/cryptography/Hashes.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/Hashes.sol","exportedSymbols":{"Hashes":[7384]},"id":7385,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7346,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"113:24:40"},{"abstract":false,"baseContracts":[],"canonicalName":"Hashes","contractDependencies":[],"contractKind":"library","documentation":{"id":7347,"nodeType":"StructuredDocumentation","src":"139:81:40","text":" @dev Library of standard hash functions.\n _Available since v5.1._"},"fullyImplemented":true,"id":7384,"linearizedBaseContracts":[7384],"name":"Hashes","nameLocation":"229:6:40","nodeType":"ContractDefinition","nodes":[{"body":{"id":7370,"nodeType":"Block","src":"588:85:40","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7357,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7350,"src":"605:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7358,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7352,"src":"609:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"605:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":7365,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7352,"src":"661:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7366,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7350,"src":"664:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7364,"name":"_efficientKeccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7383,"src":"641:19:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":7367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"641:25:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"605:61:40","trueExpression":{"arguments":[{"id":7361,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7350,"src":"633:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7362,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7352,"src":"636:1:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7360,"name":"_efficientKeccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7383,"src":"613:19:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":7363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"613:25:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7356,"id":7369,"nodeType":"Return","src":"598:68:40"}]},"documentation":{"id":7348,"nodeType":"StructuredDocumentation","src":"242:257:40","text":" @dev Commutative Keccak256 hash of a sorted pair of bytes32. Frequently used when working with merkle proofs.\n NOTE: Equivalent to the `standardNodeHash` in our https://github.com/OpenZeppelin/merkle-tree[JavaScript library]."},"id":7371,"implemented":true,"kind":"function","modifiers":[],"name":"commutativeKeccak256","nameLocation":"513:20:40","nodeType":"FunctionDefinition","parameters":{"id":7353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7350,"mutability":"mutable","name":"a","nameLocation":"542:1:40","nodeType":"VariableDeclaration","scope":7371,"src":"534:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"534:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7352,"mutability":"mutable","name":"b","nameLocation":"553:1:40","nodeType":"VariableDeclaration","scope":7371,"src":"545:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"545:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"533:22:40"},"returnParameters":{"id":7356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7371,"src":"579:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7354,"name":"bytes32","nodeType":"ElementaryTypeName","src":"579:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"578:9:40"},"scope":7384,"src":"504:169:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7382,"nodeType":"Block","src":"881:151:40","statements":[{"AST":{"nativeSrc":"916:110:40","nodeType":"YulBlock","src":"916:110:40","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"937:4:40","nodeType":"YulLiteral","src":"937:4:40","type":"","value":"0x00"},{"name":"a","nativeSrc":"943:1:40","nodeType":"YulIdentifier","src":"943:1:40"}],"functionName":{"name":"mstore","nativeSrc":"930:6:40","nodeType":"YulIdentifier","src":"930:6:40"},"nativeSrc":"930:15:40","nodeType":"YulFunctionCall","src":"930:15:40"},"nativeSrc":"930:15:40","nodeType":"YulExpressionStatement","src":"930:15:40"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"965:4:40","nodeType":"YulLiteral","src":"965:4:40","type":"","value":"0x20"},{"name":"b","nativeSrc":"971:1:40","nodeType":"YulIdentifier","src":"971:1:40"}],"functionName":{"name":"mstore","nativeSrc":"958:6:40","nodeType":"YulIdentifier","src":"958:6:40"},"nativeSrc":"958:15:40","nodeType":"YulFunctionCall","src":"958:15:40"},"nativeSrc":"958:15:40","nodeType":"YulExpressionStatement","src":"958:15:40"},{"nativeSrc":"986:30:40","nodeType":"YulAssignment","src":"986:30:40","value":{"arguments":[{"kind":"number","nativeSrc":"1005:4:40","nodeType":"YulLiteral","src":"1005:4:40","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1011:4:40","nodeType":"YulLiteral","src":"1011:4:40","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"995:9:40","nodeType":"YulIdentifier","src":"995:9:40"},"nativeSrc":"995:21:40","nodeType":"YulFunctionCall","src":"995:21:40"},"variableNames":[{"name":"value","nativeSrc":"986:5:40","nodeType":"YulIdentifier","src":"986:5:40"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7374,"isOffset":false,"isSlot":false,"src":"943:1:40","valueSize":1},{"declaration":7376,"isOffset":false,"isSlot":false,"src":"971:1:40","valueSize":1},{"declaration":7379,"isOffset":false,"isSlot":false,"src":"986:5:40","valueSize":1}],"flags":["memory-safe"],"id":7381,"nodeType":"InlineAssembly","src":"891:135:40"}]},"documentation":{"id":7372,"nodeType":"StructuredDocumentation","src":"679:109:40","text":" @dev Implementation of keccak256(abi.encode(a, b)) that doesn't allocate or expand memory."},"id":7383,"implemented":true,"kind":"function","modifiers":[],"name":"_efficientKeccak256","nameLocation":"802:19:40","nodeType":"FunctionDefinition","parameters":{"id":7377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7374,"mutability":"mutable","name":"a","nameLocation":"830:1:40","nodeType":"VariableDeclaration","scope":7383,"src":"822:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7376,"mutability":"mutable","name":"b","nameLocation":"841:1:40","nodeType":"VariableDeclaration","scope":7383,"src":"833:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"833:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"821:22:40"},"returnParameters":{"id":7380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7379,"mutability":"mutable","name":"value","nameLocation":"874:5:40","nodeType":"VariableDeclaration","scope":7383,"src":"866:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"866:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"865:15:40"},"scope":7384,"src":"793:239:40","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":7385,"src":"221:813:40","usedErrors":[],"usedEvents":[]}],"src":"113:922:40"},"id":40},"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","exportedSymbols":{"Hashes":[7384],"MerkleProof":[8457]},"id":8458,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7386,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"206:24:41"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/Hashes.sol","file":"./Hashes.sol","id":7388,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8458,"sourceUnit":7385,"src":"232:36:41","symbolAliases":[{"foreign":{"id":7387,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7384,"src":"240:6:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"MerkleProof","contractDependencies":[],"contractKind":"library","documentation":{"id":7389,"nodeType":"StructuredDocumentation","src":"270:1082:41","text":" @dev These functions deal with verification of Merkle Tree proofs.\n The tree and the proofs can be generated using our\n https://github.com/OpenZeppelin/merkle-tree[JavaScript library].\n You will find a quickstart guide in the readme.\n WARNING: You should avoid using leaf values that are 64 bytes long prior to\n hashing, or use a hash function other than keccak256 for hashing leaves.\n This is because the concatenation of a sorted pair of internal nodes in\n the Merkle tree could be reinterpreted as a leaf value.\n OpenZeppelin's JavaScript library generates Merkle trees that are safe\n against this attack out of the box.\n IMPORTANT: Consider memory side-effects when using custom hashing functions\n that access memory in an unsafe way.\n NOTE: This library supports proof verification for merkle trees built using\n custom _commutative_ hashing functions (i.e. `H(a, b) == H(b, a)`). Proving\n leaf inclusion in trees built using non-commutative hashing functions requires\n additional logic that is not supported by this library."},"fullyImplemented":true,"id":8457,"linearizedBaseContracts":[8457],"name":"MerkleProof","nameLocation":"1361:11:41","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7390,"nodeType":"StructuredDocumentation","src":"1379:60:41","text":"@dev The multiproof provided is not valid."},"errorSelector":"35140492","id":7392,"name":"MerkleProofInvalidMultiproof","nameLocation":"1450:28:41","nodeType":"ErrorDefinition","parameters":{"id":7391,"nodeType":"ParameterList","parameters":[],"src":"1478:2:41"},"src":"1444:37:41"},{"body":{"id":7412,"nodeType":"Block","src":"1999:57:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7406,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7396,"src":"2029:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":7407,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7400,"src":"2036:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7405,"name":"processProof","nodeType":"Identifier","overloadedDeclarations":[7454,7536],"referencedDeclaration":7454,"src":"2016:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bytes32) pure returns (bytes32)"}},"id":7408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2016:25:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7409,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7398,"src":"2045:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2016:33:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7404,"id":7411,"nodeType":"Return","src":"2009:40:41"}]},"documentation":{"id":7393,"nodeType":"StructuredDocumentation","src":"1487:410:41","text":" @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted.\n This version handles proofs in memory with the default hashing function."},"id":7413,"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1911:6:41","nodeType":"FunctionDefinition","parameters":{"id":7401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7396,"mutability":"mutable","name":"proof","nameLocation":"1935:5:41","nodeType":"VariableDeclaration","scope":7413,"src":"1918:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1918:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7395,"nodeType":"ArrayTypeName","src":"1918:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7398,"mutability":"mutable","name":"root","nameLocation":"1950:4:41","nodeType":"VariableDeclaration","scope":7413,"src":"1942:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1942:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7400,"mutability":"mutable","name":"leaf","nameLocation":"1964:4:41","nodeType":"VariableDeclaration","scope":7413,"src":"1956:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1956:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1917:52:41"},"returnParameters":{"id":7404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7413,"src":"1993:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7402,"name":"bool","nodeType":"ElementaryTypeName","src":"1993:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1992:6:41"},"scope":8457,"src":"1902:154:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7453,"nodeType":"Block","src":"2549:216:41","statements":[{"assignments":[7425],"declarations":[{"constant":false,"id":7425,"mutability":"mutable","name":"computedHash","nameLocation":"2567:12:41","nodeType":"VariableDeclaration","scope":7453,"src":"2559:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2559:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7427,"initialValue":{"id":7426,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"2582:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2559:27:41"},{"body":{"id":7449,"nodeType":"Block","src":"2639:91:41","statements":[{"expression":{"id":7447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7439,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7425,"src":"2653:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7442,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7425,"src":"2696:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":7443,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"2710:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7445,"indexExpression":{"id":7444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7429,"src":"2716:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2710:8:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7440,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7384,"src":"2668:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$7384_$","typeString":"type(library Hashes)"}},"id":7441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2675:20:41","memberName":"commutativeKeccak256","nodeType":"MemberAccess","referencedDeclaration":7371,"src":"2668:27:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":7446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2668:51:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2653:66:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7448,"nodeType":"ExpressionStatement","src":"2653:66:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7432,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7429,"src":"2616:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7433,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"2620:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2626:6:41","memberName":"length","nodeType":"MemberAccess","src":"2620:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2616:16:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7450,"initializationExpression":{"assignments":[7429],"declarations":[{"constant":false,"id":7429,"mutability":"mutable","name":"i","nameLocation":"2609:1:41","nodeType":"VariableDeclaration","scope":7450,"src":"2601:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7428,"name":"uint256","nodeType":"ElementaryTypeName","src":"2601:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7431,"initialValue":{"hexValue":"30","id":7430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2613:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2601:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2634:3:41","subExpression":{"id":7436,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7429,"src":"2634:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7438,"nodeType":"ExpressionStatement","src":"2634:3:41"},"nodeType":"ForStatement","src":"2596:134:41"},{"expression":{"id":7451,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7425,"src":"2746:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7423,"id":7452,"nodeType":"Return","src":"2739:19:41"}]},"documentation":{"id":7414,"nodeType":"StructuredDocumentation","src":"2062:390:41","text":" @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n hash matches the root of the tree. When processing the proof, the pairs\n of leaves & pre-images are assumed to be sorted.\n This version handles proofs in memory with the default hashing function."},"id":7454,"implemented":true,"kind":"function","modifiers":[],"name":"processProof","nameLocation":"2466:12:41","nodeType":"FunctionDefinition","parameters":{"id":7420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7417,"mutability":"mutable","name":"proof","nameLocation":"2496:5:41","nodeType":"VariableDeclaration","scope":7454,"src":"2479:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2479:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7416,"nodeType":"ArrayTypeName","src":"2479:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7419,"mutability":"mutable","name":"leaf","nameLocation":"2511:4:41","nodeType":"VariableDeclaration","scope":7454,"src":"2503:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2503:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2478:38:41"},"returnParameters":{"id":7423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7454,"src":"2540:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2540:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2539:9:41"},"scope":8457,"src":"2457:308:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7485,"nodeType":"Block","src":"3376:65:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7478,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7458,"src":"3406:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":7479,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7462,"src":"3413:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7480,"name":"hasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7472,"src":"3419:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}],"id":7477,"name":"processProof","nodeType":"Identifier","overloadedDeclarations":[7454,7536],"referencedDeclaration":7536,"src":"3393:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bytes32,function (bytes32,bytes32) view returns (bytes32)) view returns (bytes32)"}},"id":7481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3393:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7482,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"3430:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3393:41:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7476,"id":7484,"nodeType":"Return","src":"3386:48:41"}]},"documentation":{"id":7455,"nodeType":"StructuredDocumentation","src":"2771:407:41","text":" @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted.\n This version handles proofs in memory with a custom hashing function."},"id":7486,"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"3192:6:41","nodeType":"FunctionDefinition","parameters":{"id":7473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7458,"mutability":"mutable","name":"proof","nameLocation":"3225:5:41","nodeType":"VariableDeclaration","scope":7486,"src":"3208:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3208:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7457,"nodeType":"ArrayTypeName","src":"3208:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7460,"mutability":"mutable","name":"root","nameLocation":"3248:4:41","nodeType":"VariableDeclaration","scope":7486,"src":"3240:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3240:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7462,"mutability":"mutable","name":"leaf","nameLocation":"3270:4:41","nodeType":"VariableDeclaration","scope":7486,"src":"3262:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7461,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3262:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7472,"mutability":"mutable","name":"hasher","nameLocation":"3334:6:41","nodeType":"VariableDeclaration","scope":7486,"src":"3284:56:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"typeName":{"id":7471,"nodeType":"FunctionTypeName","parameterTypes":{"id":7467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7471,"src":"3293:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3293:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7466,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7471,"src":"3302:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3302:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3292:18:41"},"returnParameterTypes":{"id":7470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7471,"src":"3325:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3325:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3324:9:41"},"src":"3284:56:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"visibility":"internal"},"visibility":"internal"}],"src":"3198:148:41"},"returnParameters":{"id":7476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7486,"src":"3370:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7474,"name":"bool","nodeType":"ElementaryTypeName","src":"3370:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3369:6:41"},"scope":8457,"src":"3183:258:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7535,"nodeType":"Block","src":"4019:195:41","statements":[{"assignments":[7508],"declarations":[{"constant":false,"id":7508,"mutability":"mutable","name":"computedHash","nameLocation":"4037:12:41","nodeType":"VariableDeclaration","scope":7535,"src":"4029:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4029:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7510,"initialValue":{"id":7509,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7492,"src":"4052:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4029:27:41"},{"body":{"id":7531,"nodeType":"Block","src":"4109:70:41","statements":[{"expression":{"id":7529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7522,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7508,"src":"4123:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7524,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7508,"src":"4145:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":7525,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7490,"src":"4159:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7527,"indexExpression":{"id":7526,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7512,"src":"4165:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4159:8:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7523,"name":"hasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7502,"src":"4138:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}},"id":7528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4138:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4123:45:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7530,"nodeType":"ExpressionStatement","src":"4123:45:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7515,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7512,"src":"4086:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7516,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7490,"src":"4090:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4096:6:41","memberName":"length","nodeType":"MemberAccess","src":"4090:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4086:16:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7532,"initializationExpression":{"assignments":[7512],"declarations":[{"constant":false,"id":7512,"mutability":"mutable","name":"i","nameLocation":"4079:1:41","nodeType":"VariableDeclaration","scope":7532,"src":"4071:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7511,"name":"uint256","nodeType":"ElementaryTypeName","src":"4071:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7514,"initialValue":{"hexValue":"30","id":7513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4083:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4071:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4104:3:41","subExpression":{"id":7519,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7512,"src":"4104:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7521,"nodeType":"ExpressionStatement","src":"4104:3:41"},"nodeType":"ForStatement","src":"4066:113:41"},{"expression":{"id":7533,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7508,"src":"4195:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7506,"id":7534,"nodeType":"Return","src":"4188:19:41"}]},"documentation":{"id":7487,"nodeType":"StructuredDocumentation","src":"3447:387:41","text":" @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n hash matches the root of the tree. When processing the proof, the pairs\n of leaves & pre-images are assumed to be sorted.\n This version handles proofs in memory with a custom hashing function."},"id":7536,"implemented":true,"kind":"function","modifiers":[],"name":"processProof","nameLocation":"3848:12:41","nodeType":"FunctionDefinition","parameters":{"id":7503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7490,"mutability":"mutable","name":"proof","nameLocation":"3887:5:41","nodeType":"VariableDeclaration","scope":7536,"src":"3870:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3870:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7489,"nodeType":"ArrayTypeName","src":"3870:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7492,"mutability":"mutable","name":"leaf","nameLocation":"3910:4:41","nodeType":"VariableDeclaration","scope":7536,"src":"3902:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3902:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7502,"mutability":"mutable","name":"hasher","nameLocation":"3974:6:41","nodeType":"VariableDeclaration","scope":7536,"src":"3924:56:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"typeName":{"id":7501,"nodeType":"FunctionTypeName","parameterTypes":{"id":7497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7501,"src":"3933:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3933:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7501,"src":"3942:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3942:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3932:18:41"},"returnParameterTypes":{"id":7500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7501,"src":"3965:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3965:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3964:9:41"},"src":"3924:56:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"visibility":"internal"},"visibility":"internal"}],"src":"3860:126:41"},"returnParameters":{"id":7506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7536,"src":"4010:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4010:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4009:9:41"},"scope":8457,"src":"3839:375:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7556,"nodeType":"Block","src":"4744:65:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7550,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7540,"src":"4782:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":7551,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7544,"src":"4789:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7549,"name":"processProofCalldata","nodeType":"Identifier","overloadedDeclarations":[7598,7680],"referencedDeclaration":7598,"src":"4761:20:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bytes32) pure returns (bytes32)"}},"id":7552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4761:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7553,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"4798:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4761:41:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7548,"id":7555,"nodeType":"Return","src":"4754:48:41"}]},"documentation":{"id":7537,"nodeType":"StructuredDocumentation","src":"4220:412:41","text":" @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted.\n This version handles proofs in calldata with the default hashing function."},"id":7557,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCalldata","nameLocation":"4646:14:41","nodeType":"FunctionDefinition","parameters":{"id":7545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7540,"mutability":"mutable","name":"proof","nameLocation":"4680:5:41","nodeType":"VariableDeclaration","scope":7557,"src":"4661:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4661:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7539,"nodeType":"ArrayTypeName","src":"4661:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7542,"mutability":"mutable","name":"root","nameLocation":"4695:4:41","nodeType":"VariableDeclaration","scope":7557,"src":"4687:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4687:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7544,"mutability":"mutable","name":"leaf","nameLocation":"4709:4:41","nodeType":"VariableDeclaration","scope":7557,"src":"4701:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4701:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4660:54:41"},"returnParameters":{"id":7548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7557,"src":"4738:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7546,"name":"bool","nodeType":"ElementaryTypeName","src":"4738:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4737:6:41"},"scope":8457,"src":"4637:172:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7597,"nodeType":"Block","src":"5314:216:41","statements":[{"assignments":[7569],"declarations":[{"constant":false,"id":7569,"mutability":"mutable","name":"computedHash","nameLocation":"5332:12:41","nodeType":"VariableDeclaration","scope":7597,"src":"5324:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7568,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5324:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7571,"initialValue":{"id":7570,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7563,"src":"5347:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5324:27:41"},{"body":{"id":7593,"nodeType":"Block","src":"5404:91:41","statements":[{"expression":{"id":7591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7583,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7569,"src":"5418:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7586,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7569,"src":"5461:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":7587,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"5475:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":7589,"indexExpression":{"id":7588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7573,"src":"5481:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5475:8:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7584,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7384,"src":"5433:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$7384_$","typeString":"type(library Hashes)"}},"id":7585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5440:20:41","memberName":"commutativeKeccak256","nodeType":"MemberAccess","referencedDeclaration":7371,"src":"5433:27:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":7590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5433:51:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5418:66:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7592,"nodeType":"ExpressionStatement","src":"5418:66:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7576,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7573,"src":"5381:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7577,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"5385:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":7578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5391:6:41","memberName":"length","nodeType":"MemberAccess","src":"5385:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5381:16:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7594,"initializationExpression":{"assignments":[7573],"declarations":[{"constant":false,"id":7573,"mutability":"mutable","name":"i","nameLocation":"5374:1:41","nodeType":"VariableDeclaration","scope":7594,"src":"5366:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7572,"name":"uint256","nodeType":"ElementaryTypeName","src":"5366:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7575,"initialValue":{"hexValue":"30","id":7574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5378:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5366:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5399:3:41","subExpression":{"id":7580,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7573,"src":"5399:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7582,"nodeType":"ExpressionStatement","src":"5399:3:41"},"nodeType":"ForStatement","src":"5361:134:41"},{"expression":{"id":7595,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7569,"src":"5511:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7567,"id":7596,"nodeType":"Return","src":"5504:19:41"}]},"documentation":{"id":7558,"nodeType":"StructuredDocumentation","src":"4815:392:41","text":" @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n hash matches the root of the tree. When processing the proof, the pairs\n of leaves & pre-images are assumed to be sorted.\n This version handles proofs in calldata with the default hashing function."},"id":7598,"implemented":true,"kind":"function","modifiers":[],"name":"processProofCalldata","nameLocation":"5221:20:41","nodeType":"FunctionDefinition","parameters":{"id":7564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7561,"mutability":"mutable","name":"proof","nameLocation":"5261:5:41","nodeType":"VariableDeclaration","scope":7598,"src":"5242:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5242:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7560,"nodeType":"ArrayTypeName","src":"5242:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7563,"mutability":"mutable","name":"leaf","nameLocation":"5276:4:41","nodeType":"VariableDeclaration","scope":7598,"src":"5268:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5268:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5241:40:41"},"returnParameters":{"id":7567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7598,"src":"5305:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5305:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5304:9:41"},"scope":8457,"src":"5212:318:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7629,"nodeType":"Block","src":"6153:73:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7622,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"6191:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":7623,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"6198:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7624,"name":"hasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7616,"src":"6204:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}],"id":7621,"name":"processProofCalldata","nodeType":"Identifier","overloadedDeclarations":[7598,7680],"referencedDeclaration":7680,"src":"6170:20:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes32_$_t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bytes32,function (bytes32,bytes32) view returns (bytes32)) view returns (bytes32)"}},"id":7625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6170:41:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7626,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7604,"src":"6215:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6170:49:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7620,"id":7628,"nodeType":"Return","src":"6163:56:41"}]},"documentation":{"id":7599,"nodeType":"StructuredDocumentation","src":"5536:409:41","text":" @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted.\n This version handles proofs in calldata with a custom hashing function."},"id":7630,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCalldata","nameLocation":"5959:14:41","nodeType":"FunctionDefinition","parameters":{"id":7617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7602,"mutability":"mutable","name":"proof","nameLocation":"6002:5:41","nodeType":"VariableDeclaration","scope":7630,"src":"5983:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5983:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7601,"nodeType":"ArrayTypeName","src":"5983:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7604,"mutability":"mutable","name":"root","nameLocation":"6025:4:41","nodeType":"VariableDeclaration","scope":7630,"src":"6017:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6017:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7606,"mutability":"mutable","name":"leaf","nameLocation":"6047:4:41","nodeType":"VariableDeclaration","scope":7630,"src":"6039:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7605,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6039:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7616,"mutability":"mutable","name":"hasher","nameLocation":"6111:6:41","nodeType":"VariableDeclaration","scope":7630,"src":"6061:56:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"typeName":{"id":7615,"nodeType":"FunctionTypeName","parameterTypes":{"id":7611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7615,"src":"6070:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7607,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6070:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7610,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7615,"src":"6079:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6079:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6069:18:41"},"returnParameterTypes":{"id":7614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7615,"src":"6102:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6102:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6101:9:41"},"src":"6061:56:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"visibility":"internal"},"visibility":"internal"}],"src":"5973:150:41"},"returnParameters":{"id":7620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7630,"src":"6147:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7618,"name":"bool","nodeType":"ElementaryTypeName","src":"6147:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6146:6:41"},"scope":8457,"src":"5950:276:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7679,"nodeType":"Block","src":"6816:195:41","statements":[{"assignments":[7652],"declarations":[{"constant":false,"id":7652,"mutability":"mutable","name":"computedHash","nameLocation":"6834:12:41","nodeType":"VariableDeclaration","scope":7679,"src":"6826:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6826:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7654,"initialValue":{"id":7653,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7636,"src":"6849:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6826:27:41"},{"body":{"id":7675,"nodeType":"Block","src":"6906:70:41","statements":[{"expression":{"id":7673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7666,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7652,"src":"6920:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7668,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7652,"src":"6942:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":7669,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7634,"src":"6956:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":7671,"indexExpression":{"id":7670,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7656,"src":"6962:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6956:8:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7667,"name":"hasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7646,"src":"6935:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}},"id":7672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6935:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6920:45:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7674,"nodeType":"ExpressionStatement","src":"6920:45:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7659,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7656,"src":"6883:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7660,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7634,"src":"6887:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":7661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6893:6:41","memberName":"length","nodeType":"MemberAccess","src":"6887:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6883:16:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7676,"initializationExpression":{"assignments":[7656],"declarations":[{"constant":false,"id":7656,"mutability":"mutable","name":"i","nameLocation":"6876:1:41","nodeType":"VariableDeclaration","scope":7676,"src":"6868:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7655,"name":"uint256","nodeType":"ElementaryTypeName","src":"6868:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7658,"initialValue":{"hexValue":"30","id":7657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6880:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6868:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6901:3:41","subExpression":{"id":7663,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7656,"src":"6901:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7665,"nodeType":"ExpressionStatement","src":"6901:3:41"},"nodeType":"ForStatement","src":"6863:113:41"},{"expression":{"id":7677,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7652,"src":"6992:12:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7650,"id":7678,"nodeType":"Return","src":"6985:19:41"}]},"documentation":{"id":7631,"nodeType":"StructuredDocumentation","src":"6232:389:41","text":" @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n hash matches the root of the tree. When processing the proof, the pairs\n of leaves & pre-images are assumed to be sorted.\n This version handles proofs in calldata with a custom hashing function."},"id":7680,"implemented":true,"kind":"function","modifiers":[],"name":"processProofCalldata","nameLocation":"6635:20:41","nodeType":"FunctionDefinition","parameters":{"id":7647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7634,"mutability":"mutable","name":"proof","nameLocation":"6684:5:41","nodeType":"VariableDeclaration","scope":7680,"src":"6665:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6665:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7633,"nodeType":"ArrayTypeName","src":"6665:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7636,"mutability":"mutable","name":"leaf","nameLocation":"6707:4:41","nodeType":"VariableDeclaration","scope":7680,"src":"6699:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6699:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7646,"mutability":"mutable","name":"hasher","nameLocation":"6771:6:41","nodeType":"VariableDeclaration","scope":7680,"src":"6721:56:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"typeName":{"id":7645,"nodeType":"FunctionTypeName","parameterTypes":{"id":7641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7645,"src":"6730:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6730:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7645,"src":"6739:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6739:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6729:18:41"},"returnParameterTypes":{"id":7644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7645,"src":"6762:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6762:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6761:9:41"},"src":"6721:56:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"visibility":"internal"},"visibility":"internal"}],"src":"6655:128:41"},"returnParameters":{"id":7650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7680,"src":"6807:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6807:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6806:9:41"},"scope":8457,"src":"6626:385:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7705,"nodeType":"Block","src":"7797:76:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7698,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7684,"src":"7832:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":7699,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7687,"src":"7839:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":7700,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7692,"src":"7851:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":7697,"name":"processMultiProof","nodeType":"Identifier","overloadedDeclarations":[7864,8068],"referencedDeclaration":7864,"src":"7814:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bool[] memory,bytes32[] memory) pure returns (bytes32)"}},"id":7701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7814:44:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7702,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7689,"src":"7862:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7814:52:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7696,"id":7704,"nodeType":"Return","src":"7807:59:41"}]},"documentation":{"id":7681,"nodeType":"StructuredDocumentation","src":"7017:593:41","text":" @dev Returns true if the `leaves` can be simultaneously proven to be a part of a Merkle tree defined by\n `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n This version handles multiproofs in memory with the default hashing function.\n CAUTION: Not all Merkle trees admit multiproofs. See {processMultiProof} for details.\n NOTE: Consider the case where `root == proof[0] && leaves.length == 0` as it will return `true`.\n The `leaves` must be validated independently. See {processMultiProof}."},"id":7706,"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerify","nameLocation":"7624:16:41","nodeType":"FunctionDefinition","parameters":{"id":7693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7684,"mutability":"mutable","name":"proof","nameLocation":"7667:5:41","nodeType":"VariableDeclaration","scope":7706,"src":"7650:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7682,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7650:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7683,"nodeType":"ArrayTypeName","src":"7650:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7687,"mutability":"mutable","name":"proofFlags","nameLocation":"7696:10:41","nodeType":"VariableDeclaration","scope":7706,"src":"7682:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":7685,"name":"bool","nodeType":"ElementaryTypeName","src":"7682:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7686,"nodeType":"ArrayTypeName","src":"7682:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":7689,"mutability":"mutable","name":"root","nameLocation":"7724:4:41","nodeType":"VariableDeclaration","scope":7706,"src":"7716:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7716:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7692,"mutability":"mutable","name":"leaves","nameLocation":"7755:6:41","nodeType":"VariableDeclaration","scope":7706,"src":"7738:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7738:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7691,"nodeType":"ArrayTypeName","src":"7738:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7640:127:41"},"returnParameters":{"id":7696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7706,"src":"7791:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7694,"name":"bool","nodeType":"ElementaryTypeName","src":"7791:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7790:6:41"},"scope":8457,"src":"7615:258:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7863,"nodeType":"Block","src":"9159:2104:41","statements":[{"assignments":[7722],"declarations":[{"constant":false,"id":7722,"mutability":"mutable","name":"leavesLen","nameLocation":"9551:9:41","nodeType":"VariableDeclaration","scope":7863,"src":"9543:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7721,"name":"uint256","nodeType":"ElementaryTypeName","src":"9543:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7725,"initialValue":{"expression":{"id":7723,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7716,"src":"9563:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9570:6:41","memberName":"length","nodeType":"MemberAccess","src":"9563:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9543:33:41"},{"assignments":[7727],"declarations":[{"constant":false,"id":7727,"mutability":"mutable","name":"proofFlagsLen","nameLocation":"9594:13:41","nodeType":"VariableDeclaration","scope":7863,"src":"9586:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7726,"name":"uint256","nodeType":"ElementaryTypeName","src":"9586:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7730,"initialValue":{"expression":{"id":7728,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"9610:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":7729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9621:6:41","memberName":"length","nodeType":"MemberAccess","src":"9610:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9586:41:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7731,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7722,"src":"9675:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":7732,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"9687:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9693:6:41","memberName":"length","nodeType":"MemberAccess","src":"9687:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9675:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7735,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"9703:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9719:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9703:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9675:45:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7743,"nodeType":"IfStatement","src":"9671:113:41","trueBody":{"id":7742,"nodeType":"Block","src":"9722:62:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7739,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7392,"src":"9743:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":7740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9743:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7741,"nodeType":"RevertStatement","src":"9736:37:41"}]}},{"assignments":[7748],"declarations":[{"constant":false,"id":7748,"mutability":"mutable","name":"hashes","nameLocation":"10045:6:41","nodeType":"VariableDeclaration","scope":7863,"src":"10028:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10028:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7747,"nodeType":"ArrayTypeName","src":"10028:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":7754,"initialValue":{"arguments":[{"id":7752,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"10068:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10054:13:41","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":7749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10058:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7750,"nodeType":"ArrayTypeName","src":"10058:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":7753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10054:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10028:54:41"},{"assignments":[7756],"declarations":[{"constant":false,"id":7756,"mutability":"mutable","name":"leafPos","nameLocation":"10100:7:41","nodeType":"VariableDeclaration","scope":7863,"src":"10092:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7755,"name":"uint256","nodeType":"ElementaryTypeName","src":"10092:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7758,"initialValue":{"hexValue":"30","id":7757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10110:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10092:19:41"},{"assignments":[7760],"declarations":[{"constant":false,"id":7760,"mutability":"mutable","name":"hashPos","nameLocation":"10129:7:41","nodeType":"VariableDeclaration","scope":7863,"src":"10121:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7759,"name":"uint256","nodeType":"ElementaryTypeName","src":"10121:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7762,"initialValue":{"hexValue":"30","id":7761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10139:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10121:19:41"},{"assignments":[7764],"declarations":[{"constant":false,"id":7764,"mutability":"mutable","name":"proofPos","nameLocation":"10158:8:41","nodeType":"VariableDeclaration","scope":7863,"src":"10150:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7763,"name":"uint256","nodeType":"ElementaryTypeName","src":"10150:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7766,"initialValue":{"hexValue":"30","id":7765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10169:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10150:20:41"},{"body":{"id":7826,"nodeType":"Block","src":"10590:310:41","statements":[{"assignments":[7778],"declarations":[{"constant":false,"id":7778,"mutability":"mutable","name":"a","nameLocation":"10612:1:41","nodeType":"VariableDeclaration","scope":7826,"src":"10604:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10604:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7791,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7779,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7756,"src":"10616:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7780,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7722,"src":"10626:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10616:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":7786,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7748,"src":"10658:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7789,"indexExpression":{"id":7788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10665:9:41","subExpression":{"id":7787,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7760,"src":"10665:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10658:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10616:59:41","trueExpression":{"baseExpression":{"id":7782,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7716,"src":"10638:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7785,"indexExpression":{"id":7784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10645:9:41","subExpression":{"id":7783,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7756,"src":"10645:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10638:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10604:71:41"},{"assignments":[7793],"declarations":[{"constant":false,"id":7793,"mutability":"mutable","name":"b","nameLocation":"10697:1:41","nodeType":"VariableDeclaration","scope":7826,"src":"10689:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10689:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7815,"initialValue":{"condition":{"baseExpression":{"id":7794,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"10701:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":7796,"indexExpression":{"id":7795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7768,"src":"10712:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10701:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":7810,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"10813:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7813,"indexExpression":{"id":7812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10819:10:41","subExpression":{"id":7811,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7764,"src":"10819:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10813:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10701:129:41","trueExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7797,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7756,"src":"10734:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7798,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7722,"src":"10744:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10734:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":7804,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7748,"src":"10776:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7807,"indexExpression":{"id":7806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10783:9:41","subExpression":{"id":7805,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7760,"src":"10783:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10776:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10734:59:41","trueExpression":{"baseExpression":{"id":7800,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7716,"src":"10756:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7803,"indexExpression":{"id":7802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10763:9:41","subExpression":{"id":7801,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7756,"src":"10763:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10756:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7809,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10733:61:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10689:141:41"},{"expression":{"id":7824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7816,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7748,"src":"10844:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7818,"indexExpression":{"id":7817,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7768,"src":"10851:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10844:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7821,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"10884:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7822,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"10887:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7819,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7384,"src":"10856:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$7384_$","typeString":"type(library Hashes)"}},"id":7820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10863:20:41","memberName":"commutativeKeccak256","nodeType":"MemberAccess","referencedDeclaration":7371,"src":"10856:27:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":7823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10856:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10844:45:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7825,"nodeType":"ExpressionStatement","src":"10844:45:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7771,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7768,"src":"10566:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7772,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"10570:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10566:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7827,"initializationExpression":{"assignments":[7768],"declarations":[{"constant":false,"id":7768,"mutability":"mutable","name":"i","nameLocation":"10559:1:41","nodeType":"VariableDeclaration","scope":7827,"src":"10551:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7767,"name":"uint256","nodeType":"ElementaryTypeName","src":"10551:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7770,"initialValue":{"hexValue":"30","id":7769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10563:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10551:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10585:3:41","subExpression":{"id":7774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7768,"src":"10585:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7776,"nodeType":"ExpressionStatement","src":"10585:3:41"},"nodeType":"ForStatement","src":"10546:354:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7828,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"10914:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10930:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10914:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7848,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7722,"src":"11155:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11167:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11155:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7860,"nodeType":"Block","src":"11217:40:41","statements":[{"expression":{"baseExpression":{"id":7856,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"11238:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7858,"indexExpression":{"hexValue":"30","id":7857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11244:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11238:8:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7720,"id":7859,"nodeType":"Return","src":"11231:15:41"}]},"id":7861,"nodeType":"IfStatement","src":"11151:106:41","trueBody":{"id":7855,"nodeType":"Block","src":"11170:41:41","statements":[{"expression":{"baseExpression":{"id":7851,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7716,"src":"11191:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7853,"indexExpression":{"hexValue":"30","id":7852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11198:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11191:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7720,"id":7854,"nodeType":"Return","src":"11184:16:41"}]}},"id":7862,"nodeType":"IfStatement","src":"10910:347:41","trueBody":{"id":7847,"nodeType":"Block","src":"10933:212:41","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7831,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7764,"src":"10951:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7832,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"10963:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10969:6:41","memberName":"length","nodeType":"MemberAccess","src":"10963:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10951:24:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7839,"nodeType":"IfStatement","src":"10947:100:41","trueBody":{"id":7838,"nodeType":"Block","src":"10977:70:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7835,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7392,"src":"11002:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":7836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11002:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7837,"nodeType":"RevertStatement","src":"10995:37:41"}]}},{"id":7846,"nodeType":"UncheckedBlock","src":"11060:75:41","statements":[{"expression":{"baseExpression":{"id":7840,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7748,"src":"11095:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7844,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7841,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"11102:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11118:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11102:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11095:25:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7720,"id":7845,"nodeType":"Return","src":"11088:32:41"}]}]}}]},"documentation":{"id":7707,"nodeType":"StructuredDocumentation","src":"7879:1100:41","text":" @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n respectively.\n This version handles multiproofs in memory with the default hashing function.\n CAUTION: Not all Merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n NOTE: The _empty set_ (i.e. the case where `proof.length == 1 && leaves.length == 0`) is considered a no-op,\n and therefore a valid multiproof (i.e. it returns `proof[0]`). Consider disallowing this case if you're not\n validating the leaves elsewhere."},"id":7864,"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProof","nameLocation":"8993:17:41","nodeType":"FunctionDefinition","parameters":{"id":7717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7710,"mutability":"mutable","name":"proof","nameLocation":"9037:5:41","nodeType":"VariableDeclaration","scope":7864,"src":"9020:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7708,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9020:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7709,"nodeType":"ArrayTypeName","src":"9020:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7713,"mutability":"mutable","name":"proofFlags","nameLocation":"9066:10:41","nodeType":"VariableDeclaration","scope":7864,"src":"9052:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":7711,"name":"bool","nodeType":"ElementaryTypeName","src":"9052:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7712,"nodeType":"ArrayTypeName","src":"9052:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":7716,"mutability":"mutable","name":"leaves","nameLocation":"9103:6:41","nodeType":"VariableDeclaration","scope":7864,"src":"9086:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9086:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7715,"nodeType":"ArrayTypeName","src":"9086:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"9010:105:41"},"returnParameters":{"id":7720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7719,"mutability":"mutable","name":"merkleRoot","nameLocation":"9147:10:41","nodeType":"VariableDeclaration","scope":7864,"src":"9139:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9139:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9138:20:41"},"scope":8457,"src":"8984:2279:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7900,"nodeType":"Block","src":"12112:84:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7892,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7868,"src":"12147:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":7893,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7871,"src":"12154:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":7894,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"12166:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":7895,"name":"hasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7886,"src":"12174:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}],"id":7891,"name":"processMultiProof","nodeType":"Identifier","overloadedDeclarations":[7864,8068],"referencedDeclaration":8068,"src":"12129:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bool[] memory,bytes32[] memory,function (bytes32,bytes32) view returns (bytes32)) view returns (bytes32)"}},"id":7896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12129:52:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7897,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7873,"src":"12185:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12129:60:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7890,"id":7899,"nodeType":"Return","src":"12122:67:41"}]},"documentation":{"id":7865,"nodeType":"StructuredDocumentation","src":"11269:590:41","text":" @dev Returns true if the `leaves` can be simultaneously proven to be a part of a Merkle tree defined by\n `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n This version handles multiproofs in memory with a custom hashing function.\n CAUTION: Not all Merkle trees admit multiproofs. See {processMultiProof} for details.\n NOTE: Consider the case where `root == proof[0] && leaves.length == 0` as it will return `true`.\n The `leaves` must be validated independently. See {processMultiProof}."},"id":7901,"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerify","nameLocation":"11873:16:41","nodeType":"FunctionDefinition","parameters":{"id":7887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7868,"mutability":"mutable","name":"proof","nameLocation":"11916:5:41","nodeType":"VariableDeclaration","scope":7901,"src":"11899:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11899:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7867,"nodeType":"ArrayTypeName","src":"11899:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7871,"mutability":"mutable","name":"proofFlags","nameLocation":"11945:10:41","nodeType":"VariableDeclaration","scope":7901,"src":"11931:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":7869,"name":"bool","nodeType":"ElementaryTypeName","src":"11931:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7870,"nodeType":"ArrayTypeName","src":"11931:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":7873,"mutability":"mutable","name":"root","nameLocation":"11973:4:41","nodeType":"VariableDeclaration","scope":7901,"src":"11965:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11965:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7876,"mutability":"mutable","name":"leaves","nameLocation":"12004:6:41","nodeType":"VariableDeclaration","scope":7901,"src":"11987:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7874,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11987:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7875,"nodeType":"ArrayTypeName","src":"11987:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7886,"mutability":"mutable","name":"hasher","nameLocation":"12070:6:41","nodeType":"VariableDeclaration","scope":7901,"src":"12020:56:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"typeName":{"id":7885,"nodeType":"FunctionTypeName","parameterTypes":{"id":7881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7885,"src":"12029:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12029:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7885,"src":"12038:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12038:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12028:18:41"},"returnParameterTypes":{"id":7884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7885,"src":"12061:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7882,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12061:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12060:9:41"},"src":"12020:56:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"visibility":"internal"},"visibility":"internal"}],"src":"11889:193:41"},"returnParameters":{"id":7890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7901,"src":"12106:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7888,"name":"bool","nodeType":"ElementaryTypeName","src":"12106:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12105:6:41"},"scope":8457,"src":"11864:332:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8067,"nodeType":"Block","src":"13545:2083:41","statements":[{"assignments":[7927],"declarations":[{"constant":false,"id":7927,"mutability":"mutable","name":"leavesLen","nameLocation":"13937:9:41","nodeType":"VariableDeclaration","scope":8067,"src":"13929:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7926,"name":"uint256","nodeType":"ElementaryTypeName","src":"13929:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7930,"initialValue":{"expression":{"id":7928,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7911,"src":"13949:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13956:6:41","memberName":"length","nodeType":"MemberAccess","src":"13949:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13929:33:41"},{"assignments":[7932],"declarations":[{"constant":false,"id":7932,"mutability":"mutable","name":"proofFlagsLen","nameLocation":"13980:13:41","nodeType":"VariableDeclaration","scope":8067,"src":"13972:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7931,"name":"uint256","nodeType":"ElementaryTypeName","src":"13972:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7935,"initialValue":{"expression":{"id":7933,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7908,"src":"13996:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":7934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14007:6:41","memberName":"length","nodeType":"MemberAccess","src":"13996:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13972:41:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7936,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"14061:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":7937,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7905,"src":"14073:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14079:6:41","memberName":"length","nodeType":"MemberAccess","src":"14073:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14061:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7940,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7932,"src":"14089:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14105:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14089:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14061:45:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7948,"nodeType":"IfStatement","src":"14057:113:41","trueBody":{"id":7947,"nodeType":"Block","src":"14108:62:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7944,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7392,"src":"14129:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":7945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14129:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7946,"nodeType":"RevertStatement","src":"14122:37:41"}]}},{"assignments":[7953],"declarations":[{"constant":false,"id":7953,"mutability":"mutable","name":"hashes","nameLocation":"14431:6:41","nodeType":"VariableDeclaration","scope":8067,"src":"14414:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14414:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7952,"nodeType":"ArrayTypeName","src":"14414:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":7959,"initialValue":{"arguments":[{"id":7957,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7932,"src":"14454:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14440:13:41","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":7954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14444:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7955,"nodeType":"ArrayTypeName","src":"14444:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":7958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14440:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14414:54:41"},{"assignments":[7961],"declarations":[{"constant":false,"id":7961,"mutability":"mutable","name":"leafPos","nameLocation":"14486:7:41","nodeType":"VariableDeclaration","scope":8067,"src":"14478:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7960,"name":"uint256","nodeType":"ElementaryTypeName","src":"14478:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7963,"initialValue":{"hexValue":"30","id":7962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14496:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14478:19:41"},{"assignments":[7965],"declarations":[{"constant":false,"id":7965,"mutability":"mutable","name":"hashPos","nameLocation":"14515:7:41","nodeType":"VariableDeclaration","scope":8067,"src":"14507:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7964,"name":"uint256","nodeType":"ElementaryTypeName","src":"14507:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7967,"initialValue":{"hexValue":"30","id":7966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14525:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14507:19:41"},{"assignments":[7969],"declarations":[{"constant":false,"id":7969,"mutability":"mutable","name":"proofPos","nameLocation":"14544:8:41","nodeType":"VariableDeclaration","scope":8067,"src":"14536:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7968,"name":"uint256","nodeType":"ElementaryTypeName","src":"14536:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7971,"initialValue":{"hexValue":"30","id":7970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14555:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14536:20:41"},{"body":{"id":8030,"nodeType":"Block","src":"14976:289:41","statements":[{"assignments":[7983],"declarations":[{"constant":false,"id":7983,"mutability":"mutable","name":"a","nameLocation":"14998:1:41","nodeType":"VariableDeclaration","scope":8030,"src":"14990:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14990:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7996,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7984,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7961,"src":"15002:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7985,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"15012:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15002:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":7991,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7953,"src":"15044:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7994,"indexExpression":{"id":7993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15051:9:41","subExpression":{"id":7992,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7965,"src":"15051:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15044:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"15002:59:41","trueExpression":{"baseExpression":{"id":7987,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7911,"src":"15024:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7990,"indexExpression":{"id":7989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15031:9:41","subExpression":{"id":7988,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7961,"src":"15031:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15024:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14990:71:41"},{"assignments":[7998],"declarations":[{"constant":false,"id":7998,"mutability":"mutable","name":"b","nameLocation":"15083:1:41","nodeType":"VariableDeclaration","scope":8030,"src":"15075:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15075:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8020,"initialValue":{"condition":{"baseExpression":{"id":7999,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7908,"src":"15087:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":8001,"indexExpression":{"id":8000,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7973,"src":"15098:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15087:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":8015,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7905,"src":"15199:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8018,"indexExpression":{"id":8017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15205:10:41","subExpression":{"id":8016,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7969,"src":"15205:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15199:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"15087:129:41","trueExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8002,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7961,"src":"15120:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8003,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"15130:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15120:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":8009,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7953,"src":"15162:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8012,"indexExpression":{"id":8011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15169:9:41","subExpression":{"id":8010,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7965,"src":"15169:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15162:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"15120:59:41","trueExpression":{"baseExpression":{"id":8005,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7911,"src":"15142:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8008,"indexExpression":{"id":8007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15149:9:41","subExpression":{"id":8006,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7961,"src":"15149:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15142:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8014,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15119:61:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15075:141:41"},{"expression":{"id":8028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8021,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7953,"src":"15230:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8023,"indexExpression":{"id":8022,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7973,"src":"15237:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15230:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8025,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7983,"src":"15249:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8026,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7998,"src":"15252:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8024,"name":"hasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7921,"src":"15242:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}},"id":8027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15242:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15230:24:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8029,"nodeType":"ExpressionStatement","src":"15230:24:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7976,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7973,"src":"14952:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7977,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7932,"src":"14956:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14952:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8031,"initializationExpression":{"assignments":[7973],"declarations":[{"constant":false,"id":7973,"mutability":"mutable","name":"i","nameLocation":"14945:1:41","nodeType":"VariableDeclaration","scope":8031,"src":"14937:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7972,"name":"uint256","nodeType":"ElementaryTypeName","src":"14937:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7975,"initialValue":{"hexValue":"30","id":7974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14949:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14937:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14971:3:41","subExpression":{"id":7979,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7973,"src":"14971:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7981,"nodeType":"ExpressionStatement","src":"14971:3:41"},"nodeType":"ForStatement","src":"14932:333:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8032,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7932,"src":"15279:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15295:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15279:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8052,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"15520:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15532:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15520:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8064,"nodeType":"Block","src":"15582:40:41","statements":[{"expression":{"baseExpression":{"id":8060,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7905,"src":"15603:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8062,"indexExpression":{"hexValue":"30","id":8061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15609:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15603:8:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7925,"id":8063,"nodeType":"Return","src":"15596:15:41"}]},"id":8065,"nodeType":"IfStatement","src":"15516:106:41","trueBody":{"id":8059,"nodeType":"Block","src":"15535:41:41","statements":[{"expression":{"baseExpression":{"id":8055,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7911,"src":"15556:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8057,"indexExpression":{"hexValue":"30","id":8056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15563:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15556:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7925,"id":8058,"nodeType":"Return","src":"15549:16:41"}]}},"id":8066,"nodeType":"IfStatement","src":"15275:347:41","trueBody":{"id":8051,"nodeType":"Block","src":"15298:212:41","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8035,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7969,"src":"15316:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8036,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7905,"src":"15328:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15334:6:41","memberName":"length","nodeType":"MemberAccess","src":"15328:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15316:24:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8043,"nodeType":"IfStatement","src":"15312:100:41","trueBody":{"id":8042,"nodeType":"Block","src":"15342:70:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8039,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7392,"src":"15367:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":8040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15367:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8041,"nodeType":"RevertStatement","src":"15360:37:41"}]}},{"id":8050,"nodeType":"UncheckedBlock","src":"15425:75:41","statements":[{"expression":{"baseExpression":{"id":8044,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7953,"src":"15460:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8048,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8045,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7932,"src":"15467:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15483:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15467:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15460:25:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7925,"id":8049,"nodeType":"Return","src":"15453:32:41"}]}]}}]},"documentation":{"id":7902,"nodeType":"StructuredDocumentation","src":"12202:1097:41","text":" @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n respectively.\n This version handles multiproofs in memory with a custom hashing function.\n CAUTION: Not all Merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n NOTE: The _empty set_ (i.e. the case where `proof.length == 1 && leaves.length == 0`) is considered a no-op,\n and therefore a valid multiproof (i.e. it returns `proof[0]`). Consider disallowing this case if you're not\n validating the leaves elsewhere."},"id":8068,"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProof","nameLocation":"13313:17:41","nodeType":"FunctionDefinition","parameters":{"id":7922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7905,"mutability":"mutable","name":"proof","nameLocation":"13357:5:41","nodeType":"VariableDeclaration","scope":8068,"src":"13340:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13340:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7904,"nodeType":"ArrayTypeName","src":"13340:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7908,"mutability":"mutable","name":"proofFlags","nameLocation":"13386:10:41","nodeType":"VariableDeclaration","scope":8068,"src":"13372:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":7906,"name":"bool","nodeType":"ElementaryTypeName","src":"13372:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7907,"nodeType":"ArrayTypeName","src":"13372:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":7911,"mutability":"mutable","name":"leaves","nameLocation":"13423:6:41","nodeType":"VariableDeclaration","scope":8068,"src":"13406:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13406:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7910,"nodeType":"ArrayTypeName","src":"13406:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7921,"mutability":"mutable","name":"hasher","nameLocation":"13489:6:41","nodeType":"VariableDeclaration","scope":8068,"src":"13439:56:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"typeName":{"id":7920,"nodeType":"FunctionTypeName","parameterTypes":{"id":7916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7920,"src":"13448:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13448:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7920,"src":"13457:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7914,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13457:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13447:18:41"},"returnParameterTypes":{"id":7919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7920,"src":"13480:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13480:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13479:9:41"},"src":"13439:56:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"visibility":"internal"},"visibility":"internal"}],"src":"13330:171:41"},"returnParameters":{"id":7925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7924,"mutability":"mutable","name":"merkleRoot","nameLocation":"13533:10:41","nodeType":"VariableDeclaration","scope":8068,"src":"13525:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13525:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13524:20:41"},"scope":8457,"src":"13304:2324:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8093,"nodeType":"Block","src":"16436:84:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8086,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8072,"src":"16479:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":8087,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8075,"src":"16486:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},{"id":8088,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8080,"src":"16498:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":8085,"name":"processMultiProofCalldata","nodeType":"Identifier","overloadedDeclarations":[8252,8456],"referencedDeclaration":8252,"src":"16453:25:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_array$_t_bool_$dyn_calldata_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bool[] calldata,bytes32[] memory) pure returns (bytes32)"}},"id":8089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:52:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8090,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"16509:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16453:60:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8084,"id":8092,"nodeType":"Return","src":"16446:67:41"}]},"documentation":{"id":8069,"nodeType":"StructuredDocumentation","src":"15634:603:41","text":" @dev Returns true if the `leaves` can be simultaneously proven to be a part of a Merkle tree defined by\n `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n This version handles multiproofs in calldata with the default hashing function.\n CAUTION: Not all Merkle trees admit multiproofs. See {processMultiProof} for details.\n NOTE: Consider the case where `root == proof[0] && leaves.length == 0` as it will return `true`.\n The `leaves` must be validated independently. See {processMultiProofCalldata}."},"id":8094,"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerifyCalldata","nameLocation":"16251:24:41","nodeType":"FunctionDefinition","parameters":{"id":8081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8072,"mutability":"mutable","name":"proof","nameLocation":"16304:5:41","nodeType":"VariableDeclaration","scope":8094,"src":"16285:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16285:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8071,"nodeType":"ArrayTypeName","src":"16285:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8075,"mutability":"mutable","name":"proofFlags","nameLocation":"16335:10:41","nodeType":"VariableDeclaration","scope":8094,"src":"16319:26:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8073,"name":"bool","nodeType":"ElementaryTypeName","src":"16319:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8074,"nodeType":"ArrayTypeName","src":"16319:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":8077,"mutability":"mutable","name":"root","nameLocation":"16363:4:41","nodeType":"VariableDeclaration","scope":8094,"src":"16355:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16355:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8080,"mutability":"mutable","name":"leaves","nameLocation":"16394:6:41","nodeType":"VariableDeclaration","scope":8094,"src":"16377:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16377:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8079,"nodeType":"ArrayTypeName","src":"16377:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"16275:131:41"},"returnParameters":{"id":8084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8094,"src":"16430:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8082,"name":"bool","nodeType":"ElementaryTypeName","src":"16430:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16429:6:41"},"scope":8457,"src":"16242:278:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8251,"nodeType":"Block","src":"17820:2104:41","statements":[{"assignments":[8110],"declarations":[{"constant":false,"id":8110,"mutability":"mutable","name":"leavesLen","nameLocation":"18212:9:41","nodeType":"VariableDeclaration","scope":8251,"src":"18204:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8109,"name":"uint256","nodeType":"ElementaryTypeName","src":"18204:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8113,"initialValue":{"expression":{"id":8111,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8104,"src":"18224:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18231:6:41","memberName":"length","nodeType":"MemberAccess","src":"18224:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18204:33:41"},{"assignments":[8115],"declarations":[{"constant":false,"id":8115,"mutability":"mutable","name":"proofFlagsLen","nameLocation":"18255:13:41","nodeType":"VariableDeclaration","scope":8251,"src":"18247:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8114,"name":"uint256","nodeType":"ElementaryTypeName","src":"18247:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8118,"initialValue":{"expression":{"id":8116,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8101,"src":"18271:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":8117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18282:6:41","memberName":"length","nodeType":"MemberAccess","src":"18271:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18247:41:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8119,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8110,"src":"18336:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":8120,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8098,"src":"18348:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":8121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18354:6:41","memberName":"length","nodeType":"MemberAccess","src":"18348:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18336:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8123,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"18364:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18380:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18364:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18336:45:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8131,"nodeType":"IfStatement","src":"18332:113:41","trueBody":{"id":8130,"nodeType":"Block","src":"18383:62:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8127,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7392,"src":"18404:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":8128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18404:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8129,"nodeType":"RevertStatement","src":"18397:37:41"}]}},{"assignments":[8136],"declarations":[{"constant":false,"id":8136,"mutability":"mutable","name":"hashes","nameLocation":"18706:6:41","nodeType":"VariableDeclaration","scope":8251,"src":"18689:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8134,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18689:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8135,"nodeType":"ArrayTypeName","src":"18689:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8142,"initialValue":{"arguments":[{"id":8140,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"18729:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18715:13:41","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":8137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18719:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8138,"nodeType":"ArrayTypeName","src":"18719:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":8141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18715:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18689:54:41"},{"assignments":[8144],"declarations":[{"constant":false,"id":8144,"mutability":"mutable","name":"leafPos","nameLocation":"18761:7:41","nodeType":"VariableDeclaration","scope":8251,"src":"18753:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8143,"name":"uint256","nodeType":"ElementaryTypeName","src":"18753:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8146,"initialValue":{"hexValue":"30","id":8145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18771:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18753:19:41"},{"assignments":[8148],"declarations":[{"constant":false,"id":8148,"mutability":"mutable","name":"hashPos","nameLocation":"18790:7:41","nodeType":"VariableDeclaration","scope":8251,"src":"18782:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8147,"name":"uint256","nodeType":"ElementaryTypeName","src":"18782:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8150,"initialValue":{"hexValue":"30","id":8149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18800:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18782:19:41"},{"assignments":[8152],"declarations":[{"constant":false,"id":8152,"mutability":"mutable","name":"proofPos","nameLocation":"18819:8:41","nodeType":"VariableDeclaration","scope":8251,"src":"18811:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8151,"name":"uint256","nodeType":"ElementaryTypeName","src":"18811:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8154,"initialValue":{"hexValue":"30","id":8153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18830:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18811:20:41"},{"body":{"id":8214,"nodeType":"Block","src":"19251:310:41","statements":[{"assignments":[8166],"declarations":[{"constant":false,"id":8166,"mutability":"mutable","name":"a","nameLocation":"19273:1:41","nodeType":"VariableDeclaration","scope":8214,"src":"19265:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19265:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8179,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8167,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"19277:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8168,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8110,"src":"19287:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19277:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":8174,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8136,"src":"19319:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8177,"indexExpression":{"id":8176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19326:9:41","subExpression":{"id":8175,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8148,"src":"19326:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19319:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"19277:59:41","trueExpression":{"baseExpression":{"id":8170,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8104,"src":"19299:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8173,"indexExpression":{"id":8172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19306:9:41","subExpression":{"id":8171,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"19306:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19299:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19265:71:41"},{"assignments":[8181],"declarations":[{"constant":false,"id":8181,"mutability":"mutable","name":"b","nameLocation":"19358:1:41","nodeType":"VariableDeclaration","scope":8214,"src":"19350:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19350:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8203,"initialValue":{"condition":{"baseExpression":{"id":8182,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8101,"src":"19362:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":8184,"indexExpression":{"id":8183,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"19373:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19362:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":8198,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8098,"src":"19474:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":8201,"indexExpression":{"id":8200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19480:10:41","subExpression":{"id":8199,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"19480:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19474:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"19362:129:41","trueExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8185,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"19395:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8186,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8110,"src":"19405:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19395:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":8192,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8136,"src":"19437:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8195,"indexExpression":{"id":8194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19444:9:41","subExpression":{"id":8193,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8148,"src":"19444:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19437:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"19395:59:41","trueExpression":{"baseExpression":{"id":8188,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8104,"src":"19417:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8191,"indexExpression":{"id":8190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19424:9:41","subExpression":{"id":8189,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"19424:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19417:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8197,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19394:61:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19350:141:41"},{"expression":{"id":8212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8204,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8136,"src":"19505:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8206,"indexExpression":{"id":8205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"19512:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19505:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8209,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8166,"src":"19545:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8210,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8181,"src":"19548:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8207,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7384,"src":"19517:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$7384_$","typeString":"type(library Hashes)"}},"id":8208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19524:20:41","memberName":"commutativeKeccak256","nodeType":"MemberAccess","referencedDeclaration":7371,"src":"19517:27:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":8211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19517:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"19505:45:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8213,"nodeType":"ExpressionStatement","src":"19505:45:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8159,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"19227:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8160,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"19231:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19227:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8215,"initializationExpression":{"assignments":[8156],"declarations":[{"constant":false,"id":8156,"mutability":"mutable","name":"i","nameLocation":"19220:1:41","nodeType":"VariableDeclaration","scope":8215,"src":"19212:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8155,"name":"uint256","nodeType":"ElementaryTypeName","src":"19212:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8158,"initialValue":{"hexValue":"30","id":8157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19224:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19212:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":8163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19246:3:41","subExpression":{"id":8162,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"19246:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8164,"nodeType":"ExpressionStatement","src":"19246:3:41"},"nodeType":"ForStatement","src":"19207:354:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8216,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"19575:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19591:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19575:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8236,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8110,"src":"19816:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19828:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19816:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8248,"nodeType":"Block","src":"19878:40:41","statements":[{"expression":{"baseExpression":{"id":8244,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8098,"src":"19899:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":8246,"indexExpression":{"hexValue":"30","id":8245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19905:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19899:8:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8108,"id":8247,"nodeType":"Return","src":"19892:15:41"}]},"id":8249,"nodeType":"IfStatement","src":"19812:106:41","trueBody":{"id":8243,"nodeType":"Block","src":"19831:41:41","statements":[{"expression":{"baseExpression":{"id":8239,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8104,"src":"19852:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8241,"indexExpression":{"hexValue":"30","id":8240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19859:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19852:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8108,"id":8242,"nodeType":"Return","src":"19845:16:41"}]}},"id":8250,"nodeType":"IfStatement","src":"19571:347:41","trueBody":{"id":8235,"nodeType":"Block","src":"19594:212:41","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8219,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"19612:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8220,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8098,"src":"19624:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":8221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19630:6:41","memberName":"length","nodeType":"MemberAccess","src":"19624:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19612:24:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8227,"nodeType":"IfStatement","src":"19608:100:41","trueBody":{"id":8226,"nodeType":"Block","src":"19638:70:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8223,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7392,"src":"19663:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":8224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19663:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8225,"nodeType":"RevertStatement","src":"19656:37:41"}]}},{"id":8234,"nodeType":"UncheckedBlock","src":"19721:75:41","statements":[{"expression":{"baseExpression":{"id":8228,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8136,"src":"19756:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8232,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8229,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"19763:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19779:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19763:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19756:25:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8108,"id":8233,"nodeType":"Return","src":"19749:32:41"}]}]}}]},"documentation":{"id":8095,"nodeType":"StructuredDocumentation","src":"16526:1102:41","text":" @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n respectively.\n This version handles multiproofs in calldata with the default hashing function.\n CAUTION: Not all Merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n NOTE: The _empty set_ (i.e. the case where `proof.length == 1 && leaves.length == 0`) is considered a no-op,\n and therefore a valid multiproof (i.e. it returns `proof[0]`). Consider disallowing this case if you're not\n validating the leaves elsewhere."},"id":8252,"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProofCalldata","nameLocation":"17642:25:41","nodeType":"FunctionDefinition","parameters":{"id":8105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8098,"mutability":"mutable","name":"proof","nameLocation":"17696:5:41","nodeType":"VariableDeclaration","scope":8252,"src":"17677:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17677:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8097,"nodeType":"ArrayTypeName","src":"17677:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8101,"mutability":"mutable","name":"proofFlags","nameLocation":"17727:10:41","nodeType":"VariableDeclaration","scope":8252,"src":"17711:26:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8099,"name":"bool","nodeType":"ElementaryTypeName","src":"17711:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8100,"nodeType":"ArrayTypeName","src":"17711:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":8104,"mutability":"mutable","name":"leaves","nameLocation":"17764:6:41","nodeType":"VariableDeclaration","scope":8252,"src":"17747:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17747:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8103,"nodeType":"ArrayTypeName","src":"17747:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"17667:109:41"},"returnParameters":{"id":8108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8107,"mutability":"mutable","name":"merkleRoot","nameLocation":"17808:10:41","nodeType":"VariableDeclaration","scope":8252,"src":"17800:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8106,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17800:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17799:20:41"},"scope":8457,"src":"17633:2291:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8288,"nodeType":"Block","src":"20795:92:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8280,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"20838:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":8281,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"20845:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},{"id":8282,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8264,"src":"20857:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":8283,"name":"hasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8274,"src":"20865:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}],"id":8279,"name":"processMultiProofCalldata","nodeType":"Identifier","overloadedDeclarations":[8252,8456],"referencedDeclaration":8456,"src":"20812:25:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_array$_t_bool_$dyn_calldata_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bool[] calldata,bytes32[] memory,function (bytes32,bytes32) view returns (bytes32)) view returns (bytes32)"}},"id":8284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:60:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8285,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8261,"src":"20876:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"20812:68:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8278,"id":8287,"nodeType":"Return","src":"20805:75:41"}]},"documentation":{"id":8253,"nodeType":"StructuredDocumentation","src":"19930:600:41","text":" @dev Returns true if the `leaves` can be simultaneously proven to be a part of a Merkle tree defined by\n `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n This version handles multiproofs in calldata with a custom hashing function.\n CAUTION: Not all Merkle trees admit multiproofs. See {processMultiProof} for details.\n NOTE: Consider the case where `root == proof[0] && leaves.length == 0` as it will return `true`.\n The `leaves` must be validated independently. See {processMultiProofCalldata}."},"id":8289,"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerifyCalldata","nameLocation":"20544:24:41","nodeType":"FunctionDefinition","parameters":{"id":8275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8256,"mutability":"mutable","name":"proof","nameLocation":"20597:5:41","nodeType":"VariableDeclaration","scope":8289,"src":"20578:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20578:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8255,"nodeType":"ArrayTypeName","src":"20578:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8259,"mutability":"mutable","name":"proofFlags","nameLocation":"20628:10:41","nodeType":"VariableDeclaration","scope":8289,"src":"20612:26:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8257,"name":"bool","nodeType":"ElementaryTypeName","src":"20612:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8258,"nodeType":"ArrayTypeName","src":"20612:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":8261,"mutability":"mutable","name":"root","nameLocation":"20656:4:41","nodeType":"VariableDeclaration","scope":8289,"src":"20648:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20648:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8264,"mutability":"mutable","name":"leaves","nameLocation":"20687:6:41","nodeType":"VariableDeclaration","scope":8289,"src":"20670:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20670:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8263,"nodeType":"ArrayTypeName","src":"20670:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8274,"mutability":"mutable","name":"hasher","nameLocation":"20753:6:41","nodeType":"VariableDeclaration","scope":8289,"src":"20703:56:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"typeName":{"id":8273,"nodeType":"FunctionTypeName","parameterTypes":{"id":8269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8273,"src":"20712:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20712:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8268,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8273,"src":"20721:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20721:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20711:18:41"},"returnParameterTypes":{"id":8272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8273,"src":"20744:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20744:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20743:9:41"},"src":"20703:56:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"visibility":"internal"},"visibility":"internal"}],"src":"20568:197:41"},"returnParameters":{"id":8278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8289,"src":"20789:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8276,"name":"bool","nodeType":"ElementaryTypeName","src":"20789:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20788:6:41"},"scope":8457,"src":"20535:352:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8455,"nodeType":"Block","src":"22250:2083:41","statements":[{"assignments":[8315],"declarations":[{"constant":false,"id":8315,"mutability":"mutable","name":"leavesLen","nameLocation":"22642:9:41","nodeType":"VariableDeclaration","scope":8455,"src":"22634:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8314,"name":"uint256","nodeType":"ElementaryTypeName","src":"22634:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8318,"initialValue":{"expression":{"id":8316,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8299,"src":"22654:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22661:6:41","memberName":"length","nodeType":"MemberAccess","src":"22654:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22634:33:41"},{"assignments":[8320],"declarations":[{"constant":false,"id":8320,"mutability":"mutable","name":"proofFlagsLen","nameLocation":"22685:13:41","nodeType":"VariableDeclaration","scope":8455,"src":"22677:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8319,"name":"uint256","nodeType":"ElementaryTypeName","src":"22677:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8323,"initialValue":{"expression":{"id":8321,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8296,"src":"22701:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":8322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22712:6:41","memberName":"length","nodeType":"MemberAccess","src":"22701:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22677:41:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8324,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"22766:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":8325,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8293,"src":"22778:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":8326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22784:6:41","memberName":"length","nodeType":"MemberAccess","src":"22778:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22766:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8328,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8320,"src":"22794:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22810:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22794:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22766:45:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8336,"nodeType":"IfStatement","src":"22762:113:41","trueBody":{"id":8335,"nodeType":"Block","src":"22813:62:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8332,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7392,"src":"22834:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":8333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22834:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8334,"nodeType":"RevertStatement","src":"22827:37:41"}]}},{"assignments":[8341],"declarations":[{"constant":false,"id":8341,"mutability":"mutable","name":"hashes","nameLocation":"23136:6:41","nodeType":"VariableDeclaration","scope":8455,"src":"23119:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23119:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8340,"nodeType":"ArrayTypeName","src":"23119:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8347,"initialValue":{"arguments":[{"id":8345,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8320,"src":"23159:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23145:13:41","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":8342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23149:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8343,"nodeType":"ArrayTypeName","src":"23149:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":8346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23145:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"23119:54:41"},{"assignments":[8349],"declarations":[{"constant":false,"id":8349,"mutability":"mutable","name":"leafPos","nameLocation":"23191:7:41","nodeType":"VariableDeclaration","scope":8455,"src":"23183:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8348,"name":"uint256","nodeType":"ElementaryTypeName","src":"23183:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8351,"initialValue":{"hexValue":"30","id":8350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23201:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23183:19:41"},{"assignments":[8353],"declarations":[{"constant":false,"id":8353,"mutability":"mutable","name":"hashPos","nameLocation":"23220:7:41","nodeType":"VariableDeclaration","scope":8455,"src":"23212:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8352,"name":"uint256","nodeType":"ElementaryTypeName","src":"23212:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8355,"initialValue":{"hexValue":"30","id":8354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23230:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23212:19:41"},{"assignments":[8357],"declarations":[{"constant":false,"id":8357,"mutability":"mutable","name":"proofPos","nameLocation":"23249:8:41","nodeType":"VariableDeclaration","scope":8455,"src":"23241:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8356,"name":"uint256","nodeType":"ElementaryTypeName","src":"23241:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8359,"initialValue":{"hexValue":"30","id":8358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23260:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23241:20:41"},{"body":{"id":8418,"nodeType":"Block","src":"23681:289:41","statements":[{"assignments":[8371],"declarations":[{"constant":false,"id":8371,"mutability":"mutable","name":"a","nameLocation":"23703:1:41","nodeType":"VariableDeclaration","scope":8418,"src":"23695:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23695:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8384,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8372,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8349,"src":"23707:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8373,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"23717:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23707:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":8379,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"23749:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8382,"indexExpression":{"id":8381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23756:9:41","subExpression":{"id":8380,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8353,"src":"23756:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23749:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23707:59:41","trueExpression":{"baseExpression":{"id":8375,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8299,"src":"23729:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8378,"indexExpression":{"id":8377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23736:9:41","subExpression":{"id":8376,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8349,"src":"23736:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23729:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23695:71:41"},{"assignments":[8386],"declarations":[{"constant":false,"id":8386,"mutability":"mutable","name":"b","nameLocation":"23788:1:41","nodeType":"VariableDeclaration","scope":8418,"src":"23780:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23780:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8408,"initialValue":{"condition":{"baseExpression":{"id":8387,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8296,"src":"23792:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":8389,"indexExpression":{"id":8388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8361,"src":"23803:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23792:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":8403,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8293,"src":"23904:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":8406,"indexExpression":{"id":8405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23910:10:41","subExpression":{"id":8404,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"23910:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23904:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23792:129:41","trueExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8390,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8349,"src":"23825:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8391,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"23835:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23825:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":8397,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"23867:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8400,"indexExpression":{"id":8399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23874:9:41","subExpression":{"id":8398,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8353,"src":"23874:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23867:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23825:59:41","trueExpression":{"baseExpression":{"id":8393,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8299,"src":"23847:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8396,"indexExpression":{"id":8395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23854:9:41","subExpression":{"id":8394,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8349,"src":"23854:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23847:17:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8402,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23824:61:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23780:141:41"},{"expression":{"id":8416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8409,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"23935:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8411,"indexExpression":{"id":8410,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8361,"src":"23942:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23935:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8413,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8371,"src":"23954:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8414,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8386,"src":"23957:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8412,"name":"hasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"23947:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}},"id":8415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23947:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23935:24:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8417,"nodeType":"ExpressionStatement","src":"23935:24:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8364,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8361,"src":"23657:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8365,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8320,"src":"23661:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23657:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8419,"initializationExpression":{"assignments":[8361],"declarations":[{"constant":false,"id":8361,"mutability":"mutable","name":"i","nameLocation":"23650:1:41","nodeType":"VariableDeclaration","scope":8419,"src":"23642:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8360,"name":"uint256","nodeType":"ElementaryTypeName","src":"23642:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8363,"initialValue":{"hexValue":"30","id":8362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23654:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23642:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":8368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23676:3:41","subExpression":{"id":8367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8361,"src":"23676:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8369,"nodeType":"ExpressionStatement","src":"23676:3:41"},"nodeType":"ForStatement","src":"23637:333:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8420,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8320,"src":"23984:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24000:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23984:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8440,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"24225:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24237:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24225:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8452,"nodeType":"Block","src":"24287:40:41","statements":[{"expression":{"baseExpression":{"id":8448,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8293,"src":"24308:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":8450,"indexExpression":{"hexValue":"30","id":8449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24314:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24308:8:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8313,"id":8451,"nodeType":"Return","src":"24301:15:41"}]},"id":8453,"nodeType":"IfStatement","src":"24221:106:41","trueBody":{"id":8447,"nodeType":"Block","src":"24240:41:41","statements":[{"expression":{"baseExpression":{"id":8443,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8299,"src":"24261:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8445,"indexExpression":{"hexValue":"30","id":8444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24268:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24261:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8313,"id":8446,"nodeType":"Return","src":"24254:16:41"}]}},"id":8454,"nodeType":"IfStatement","src":"23980:347:41","trueBody":{"id":8439,"nodeType":"Block","src":"24003:212:41","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8423,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"24021:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8424,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8293,"src":"24033:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":8425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24039:6:41","memberName":"length","nodeType":"MemberAccess","src":"24033:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24021:24:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8431,"nodeType":"IfStatement","src":"24017:100:41","trueBody":{"id":8430,"nodeType":"Block","src":"24047:70:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8427,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7392,"src":"24072:28:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":8428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24072:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8429,"nodeType":"RevertStatement","src":"24065:37:41"}]}},{"id":8438,"nodeType":"UncheckedBlock","src":"24130:75:41","statements":[{"expression":{"baseExpression":{"id":8432,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"24165:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8436,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8433,"name":"proofFlagsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8320,"src":"24172:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24188:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24172:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24165:25:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8313,"id":8437,"nodeType":"Return","src":"24158:32:41"}]}]}}]},"documentation":{"id":8290,"nodeType":"StructuredDocumentation","src":"20893:1099:41","text":" @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n respectively.\n This version handles multiproofs in calldata with a custom hashing function.\n CAUTION: Not all Merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n NOTE: The _empty set_ (i.e. the case where `proof.length == 1 && leaves.length == 0`) is considered a no-op,\n and therefore a valid multiproof (i.e. it returns `proof[0]`). Consider disallowing this case if you're not\n validating the leaves elsewhere."},"id":8456,"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProofCalldata","nameLocation":"22006:25:41","nodeType":"FunctionDefinition","parameters":{"id":8310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8293,"mutability":"mutable","name":"proof","nameLocation":"22060:5:41","nodeType":"VariableDeclaration","scope":8456,"src":"22041:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22041:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8292,"nodeType":"ArrayTypeName","src":"22041:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8296,"mutability":"mutable","name":"proofFlags","nameLocation":"22091:10:41","nodeType":"VariableDeclaration","scope":8456,"src":"22075:26:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8294,"name":"bool","nodeType":"ElementaryTypeName","src":"22075:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8295,"nodeType":"ArrayTypeName","src":"22075:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":8299,"mutability":"mutable","name":"leaves","nameLocation":"22128:6:41","nodeType":"VariableDeclaration","scope":8456,"src":"22111:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22111:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8298,"nodeType":"ArrayTypeName","src":"22111:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8309,"mutability":"mutable","name":"hasher","nameLocation":"22194:6:41","nodeType":"VariableDeclaration","scope":8456,"src":"22144:56:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"typeName":{"id":8308,"nodeType":"FunctionTypeName","parameterTypes":{"id":8304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8308,"src":"22153:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22153:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8308,"src":"22162:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22162:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22152:18:41"},"returnParameterTypes":{"id":8307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8308,"src":"22185:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22185:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22184:9:41"},"src":"22144:56:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"},"visibility":"internal"},"visibility":"internal"}],"src":"22031:175:41"},"returnParameters":{"id":8313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8312,"mutability":"mutable","name":"merkleRoot","nameLocation":"22238:10:41","nodeType":"VariableDeclaration","scope":8456,"src":"22230:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22230:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22229:20:41"},"scope":8457,"src":"21997:2336:41","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":8458,"src":"1353:22982:41","usedErrors":[7392],"usedEvents":[]}],"src":"206:24130:41"},"id":41},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[8481],"IERC165":[8493]},"id":8482,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8459,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:42"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":8461,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8482,"sourceUnit":8494,"src":"140:38:42","symbolAliases":[{"foreign":{"id":8460,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"148:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8463,"name":"IERC165","nameLocations":["688:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":8493,"src":"688:7:42"},"id":8464,"nodeType":"InheritanceSpecifier","src":"688:7:42"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":8462,"nodeType":"StructuredDocumentation","src":"180:479:42","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":8481,"linearizedBaseContracts":[8481,8493],"name":"ERC165","nameLocation":"678:6:42","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[8492],"body":{"id":8479,"nodeType":"Block","src":"845:64:42","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":8477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8472,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8467,"src":"862:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":8474,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"882:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8493_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$8493_$","typeString":"type(contract IERC165)"}],"id":8473,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"877:4:42","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"877:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$8493","typeString":"type(contract IERC165)"}},"id":8476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"891:11:42","memberName":"interfaceId","nodeType":"MemberAccess","src":"877:25:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"862:40:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8471,"id":8478,"nodeType":"Return","src":"855:47:42"}]},"documentation":{"id":8465,"nodeType":"StructuredDocumentation","src":"702:56:42","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":8480,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"772:17:42","nodeType":"FunctionDefinition","parameters":{"id":8468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8467,"mutability":"mutable","name":"interfaceId","nameLocation":"797:11:42","nodeType":"VariableDeclaration","scope":8480,"src":"790:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8466,"name":"bytes4","nodeType":"ElementaryTypeName","src":"790:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"789:20:42"},"returnParameters":{"id":8471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8470,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8480,"src":"839:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8469,"name":"bool","nodeType":"ElementaryTypeName","src":"839:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"838:6:42"},"scope":8481,"src":"763:146:42","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":8482,"src":"660:251:42","usedErrors":[],"usedEvents":[]}],"src":"114:798:42"},"id":42},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[8493]},"id":8494,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8483,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:43"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":8484,"nodeType":"StructuredDocumentation","src":"141:280:43","text":" @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":8493,"linearizedBaseContracts":[8493],"name":"IERC165","nameLocation":"432:7:43","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8485,"nodeType":"StructuredDocumentation","src":"446:340:43","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":8492,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"800:17:43","nodeType":"FunctionDefinition","parameters":{"id":8488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8487,"mutability":"mutable","name":"interfaceId","nameLocation":"825:11:43","nodeType":"VariableDeclaration","scope":8492,"src":"818:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8486,"name":"bytes4","nodeType":"ElementaryTypeName","src":"818:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"817:20:43"},"returnParameters":{"id":8491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8492,"src":"861:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8489,"name":"bool","nodeType":"ElementaryTypeName","src":"861:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"860:6:43"},"scope":8493,"src":"791:76:43","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8494,"src":"422:447:43","usedErrors":[],"usedEvents":[]}],"src":"115:755:43"},"id":43},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[10099],"Panic":[6831],"SafeCast":[11864]},"id":10100,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8495,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:44"},{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","file":"../Panic.sol","id":8497,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10100,"sourceUnit":6832,"src":"129:35:44","symbolAliases":[{"foreign":{"id":8496,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"137:5:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"./SafeCast.sol","id":8499,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10100,"sourceUnit":11865,"src":"165:40:44","symbolAliases":[{"foreign":{"id":8498,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"173:8:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":8500,"nodeType":"StructuredDocumentation","src":"207:73:44","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":10099,"linearizedBaseContracts":[10099],"name":"Math","nameLocation":"289:4:44","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":8505,"members":[{"id":8501,"name":"Floor","nameLocation":"324:5:44","nodeType":"EnumValue","src":"324:5:44"},{"id":8502,"name":"Ceil","nameLocation":"367:4:44","nodeType":"EnumValue","src":"367:4:44"},{"id":8503,"name":"Trunc","nameLocation":"409:5:44","nodeType":"EnumValue","src":"409:5:44"},{"id":8504,"name":"Expand","nameLocation":"439:6:44","nodeType":"EnumValue","src":"439:6:44"}],"name":"Rounding","nameLocation":"305:8:44","nodeType":"EnumDefinition","src":"300:169:44"},{"body":{"id":8536,"nodeType":"Block","src":"677:140:44","statements":[{"id":8535,"nodeType":"UncheckedBlock","src":"687:124:44","statements":[{"assignments":[8518],"declarations":[{"constant":false,"id":8518,"mutability":"mutable","name":"c","nameLocation":"719:1:44","nodeType":"VariableDeclaration","scope":8535,"src":"711:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8517,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8522,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8519,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8508,"src":"723:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8520,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8510,"src":"727:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"723:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"711:17:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8523,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8518,"src":"746:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8524,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8508,"src":"750:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"746:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8530,"nodeType":"IfStatement","src":"742:28:44","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":8526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"761:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":8527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"768:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":8528,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"760:10:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":8516,"id":8529,"nodeType":"Return","src":"753:17:44"}},{"expression":{"components":[{"hexValue":"74727565","id":8531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"792:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":8532,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8518,"src":"798:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8533,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"791:9:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":8516,"id":8534,"nodeType":"Return","src":"784:16:44"}]}]},"documentation":{"id":8506,"nodeType":"StructuredDocumentation","src":"475:106:44","text":" @dev Returns the addition of two unsigned integers, with an success flag (no overflow)."},"id":8537,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"595:6:44","nodeType":"FunctionDefinition","parameters":{"id":8511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8508,"mutability":"mutable","name":"a","nameLocation":"610:1:44","nodeType":"VariableDeclaration","scope":8537,"src":"602:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8507,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8510,"mutability":"mutable","name":"b","nameLocation":"621:1:44","nodeType":"VariableDeclaration","scope":8537,"src":"613:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8509,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"601:22:44"},"returnParameters":{"id":8516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8513,"mutability":"mutable","name":"success","nameLocation":"652:7:44","nodeType":"VariableDeclaration","scope":8537,"src":"647:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8512,"name":"bool","nodeType":"ElementaryTypeName","src":"647:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8515,"mutability":"mutable","name":"result","nameLocation":"669:6:44","nodeType":"VariableDeclaration","scope":8537,"src":"661:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8514,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"646:30:44"},"scope":10099,"src":"586:231:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8564,"nodeType":"Block","src":"1028:113:44","statements":[{"id":8563,"nodeType":"UncheckedBlock","src":"1038:97:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8549,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8542,"src":"1066:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8550,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8540,"src":"1070:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1066:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8556,"nodeType":"IfStatement","src":"1062:28:44","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":8552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1081:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":8553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":8554,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1080:10:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":8548,"id":8555,"nodeType":"Return","src":"1073:17:44"}},{"expression":{"components":[{"hexValue":"74727565","id":8557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1112:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8558,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8540,"src":"1118:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8559,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8542,"src":"1122:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1118:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8561,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1111:13:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":8548,"id":8562,"nodeType":"Return","src":"1104:20:44"}]}]},"documentation":{"id":8538,"nodeType":"StructuredDocumentation","src":"823:109:44","text":" @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow)."},"id":8565,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"946:6:44","nodeType":"FunctionDefinition","parameters":{"id":8543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8540,"mutability":"mutable","name":"a","nameLocation":"961:1:44","nodeType":"VariableDeclaration","scope":8565,"src":"953:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8539,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8542,"mutability":"mutable","name":"b","nameLocation":"972:1:44","nodeType":"VariableDeclaration","scope":8565,"src":"964:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8541,"name":"uint256","nodeType":"ElementaryTypeName","src":"964:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:22:44"},"returnParameters":{"id":8548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8545,"mutability":"mutable","name":"success","nameLocation":"1003:7:44","nodeType":"VariableDeclaration","scope":8565,"src":"998:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8544,"name":"bool","nodeType":"ElementaryTypeName","src":"998:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8547,"mutability":"mutable","name":"result","nameLocation":"1020:6:44","nodeType":"VariableDeclaration","scope":8565,"src":"1012:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8546,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:30:44"},"scope":10099,"src":"937:204:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8606,"nodeType":"Block","src":"1355:417:44","statements":[{"id":8605,"nodeType":"UncheckedBlock","src":"1365:401:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8577,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8568,"src":"1623:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1623:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8584,"nodeType":"IfStatement","src":"1619:28:44","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":8580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1639:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":8581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":8582,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1638:9:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":8576,"id":8583,"nodeType":"Return","src":"1631:16:44"}},{"assignments":[8586],"declarations":[{"constant":false,"id":8586,"mutability":"mutable","name":"c","nameLocation":"1669:1:44","nodeType":"VariableDeclaration","scope":8605,"src":"1661:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8585,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8590,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8587,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8568,"src":"1673:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8588,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"1677:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1673:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1661:17:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8591,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8586,"src":"1696:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8592,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8568,"src":"1700:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8594,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"1705:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:10:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8600,"nodeType":"IfStatement","src":"1692:33:44","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":8596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1716:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":8597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1723:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":8598,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1715:10:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":8576,"id":8599,"nodeType":"Return","src":"1708:17:44"}},{"expression":{"components":[{"hexValue":"74727565","id":8601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1747:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":8602,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8586,"src":"1753:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8603,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1746:9:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":8576,"id":8604,"nodeType":"Return","src":"1739:16:44"}]}]},"documentation":{"id":8566,"nodeType":"StructuredDocumentation","src":"1147:112:44","text":" @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow)."},"id":8607,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1273:6:44","nodeType":"FunctionDefinition","parameters":{"id":8571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8568,"mutability":"mutable","name":"a","nameLocation":"1288:1:44","nodeType":"VariableDeclaration","scope":8607,"src":"1280:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8567,"name":"uint256","nodeType":"ElementaryTypeName","src":"1280:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8570,"mutability":"mutable","name":"b","nameLocation":"1299:1:44","nodeType":"VariableDeclaration","scope":8607,"src":"1291:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8569,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1279:22:44"},"returnParameters":{"id":8576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8573,"mutability":"mutable","name":"success","nameLocation":"1330:7:44","nodeType":"VariableDeclaration","scope":8607,"src":"1325:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8572,"name":"bool","nodeType":"ElementaryTypeName","src":"1325:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8575,"mutability":"mutable","name":"result","nameLocation":"1347:6:44","nodeType":"VariableDeclaration","scope":8607,"src":"1339:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8574,"name":"uint256","nodeType":"ElementaryTypeName","src":"1339:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1324:30:44"},"scope":10099,"src":"1264:508:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8634,"nodeType":"Block","src":"1987:114:44","statements":[{"id":8633,"nodeType":"UncheckedBlock","src":"1997:98:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8619,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8612,"src":"2025:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2030:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2025:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8626,"nodeType":"IfStatement","src":"2021:29:44","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":8622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2041:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":8623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2048:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":8624,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2040:10:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":8618,"id":8625,"nodeType":"Return","src":"2033:17:44"}},{"expression":{"components":[{"hexValue":"74727565","id":8627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2072:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8628,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8610,"src":"2078:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8629,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8612,"src":"2082:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2078:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2071:13:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":8618,"id":8632,"nodeType":"Return","src":"2064:20:44"}]}]},"documentation":{"id":8608,"nodeType":"StructuredDocumentation","src":"1778:113:44","text":" @dev Returns the division of two unsigned integers, with a success flag (no division by zero)."},"id":8635,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1905:6:44","nodeType":"FunctionDefinition","parameters":{"id":8613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8610,"mutability":"mutable","name":"a","nameLocation":"1920:1:44","nodeType":"VariableDeclaration","scope":8635,"src":"1912:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8609,"name":"uint256","nodeType":"ElementaryTypeName","src":"1912:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8612,"mutability":"mutable","name":"b","nameLocation":"1931:1:44","nodeType":"VariableDeclaration","scope":8635,"src":"1923:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1923:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1911:22:44"},"returnParameters":{"id":8618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8615,"mutability":"mutable","name":"success","nameLocation":"1962:7:44","nodeType":"VariableDeclaration","scope":8635,"src":"1957:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8614,"name":"bool","nodeType":"ElementaryTypeName","src":"1957:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8617,"mutability":"mutable","name":"result","nameLocation":"1979:6:44","nodeType":"VariableDeclaration","scope":8635,"src":"1971:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8616,"name":"uint256","nodeType":"ElementaryTypeName","src":"1971:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1956:30:44"},"scope":10099,"src":"1896:205:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8662,"nodeType":"Block","src":"2326:114:44","statements":[{"id":8661,"nodeType":"UncheckedBlock","src":"2336:98:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8647,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8640,"src":"2364:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2369:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2364:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8654,"nodeType":"IfStatement","src":"2360:29:44","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":8650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2380:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":8651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2387:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":8652,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2379:10:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":8646,"id":8653,"nodeType":"Return","src":"2372:17:44"}},{"expression":{"components":[{"hexValue":"74727565","id":8655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2411:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8656,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"2417:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":8657,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8640,"src":"2421:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2417:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8659,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2410:13:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":8646,"id":8660,"nodeType":"Return","src":"2403:20:44"}]}]},"documentation":{"id":8636,"nodeType":"StructuredDocumentation","src":"2107:123:44","text":" @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)."},"id":8663,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2244:6:44","nodeType":"FunctionDefinition","parameters":{"id":8641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8638,"mutability":"mutable","name":"a","nameLocation":"2259:1:44","nodeType":"VariableDeclaration","scope":8663,"src":"2251:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8637,"name":"uint256","nodeType":"ElementaryTypeName","src":"2251:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8640,"mutability":"mutable","name":"b","nameLocation":"2270:1:44","nodeType":"VariableDeclaration","scope":8663,"src":"2262:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8639,"name":"uint256","nodeType":"ElementaryTypeName","src":"2262:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2250:22:44"},"returnParameters":{"id":8646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8643,"mutability":"mutable","name":"success","nameLocation":"2301:7:44","nodeType":"VariableDeclaration","scope":8663,"src":"2296:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8642,"name":"bool","nodeType":"ElementaryTypeName","src":"2296:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8645,"mutability":"mutable","name":"result","nameLocation":"2318:6:44","nodeType":"VariableDeclaration","scope":8663,"src":"2310:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8644,"name":"uint256","nodeType":"ElementaryTypeName","src":"2310:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2295:30:44"},"scope":10099,"src":"2235:205:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8689,"nodeType":"Block","src":"2912:207:44","statements":[{"id":8688,"nodeType":"UncheckedBlock","src":"2922:191:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8675,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8670,"src":"3060:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8676,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8668,"src":"3066:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":8677,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8670,"src":"3070:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3066:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8679,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3065:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":8682,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8666,"src":"3091:9:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8680,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"3075:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":8681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3084:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"3075:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":8683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3075:26:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3065:36:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3064:38:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3060:42:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8674,"id":8687,"nodeType":"Return","src":"3053:49:44"}]}]},"documentation":{"id":8664,"nodeType":"StructuredDocumentation","src":"2446:374:44","text":" @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive."},"id":8690,"implemented":true,"kind":"function","modifiers":[],"name":"ternary","nameLocation":"2834:7:44","nodeType":"FunctionDefinition","parameters":{"id":8671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8666,"mutability":"mutable","name":"condition","nameLocation":"2847:9:44","nodeType":"VariableDeclaration","scope":8690,"src":"2842:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8665,"name":"bool","nodeType":"ElementaryTypeName","src":"2842:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8668,"mutability":"mutable","name":"a","nameLocation":"2866:1:44","nodeType":"VariableDeclaration","scope":8690,"src":"2858:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8667,"name":"uint256","nodeType":"ElementaryTypeName","src":"2858:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8670,"mutability":"mutable","name":"b","nameLocation":"2877:1:44","nodeType":"VariableDeclaration","scope":8690,"src":"2869:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8669,"name":"uint256","nodeType":"ElementaryTypeName","src":"2869:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:38:44"},"returnParameters":{"id":8674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8690,"src":"2903:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8672,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2902:9:44"},"scope":10099,"src":"2825:294:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8708,"nodeType":"Block","src":"3256:44:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8701,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8693,"src":"3281:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8702,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8695,"src":"3285:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3281:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8704,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8693,"src":"3288:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8705,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8695,"src":"3291:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8700,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8690,"src":"3273:7:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":8706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3273:20:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8699,"id":8707,"nodeType":"Return","src":"3266:27:44"}]},"documentation":{"id":8691,"nodeType":"StructuredDocumentation","src":"3125:59:44","text":" @dev Returns the largest of two numbers."},"id":8709,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"3198:3:44","nodeType":"FunctionDefinition","parameters":{"id":8696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8693,"mutability":"mutable","name":"a","nameLocation":"3210:1:44","nodeType":"VariableDeclaration","scope":8709,"src":"3202:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8692,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8695,"mutability":"mutable","name":"b","nameLocation":"3221:1:44","nodeType":"VariableDeclaration","scope":8709,"src":"3213:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8694,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3201:22:44"},"returnParameters":{"id":8699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8709,"src":"3247:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8697,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3246:9:44"},"scope":10099,"src":"3189:111:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8727,"nodeType":"Block","src":"3438:44:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8720,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8712,"src":"3463:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8721,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8714,"src":"3467:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3463:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8723,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8712,"src":"3470:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8724,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8714,"src":"3473:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8719,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8690,"src":"3455:7:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":8725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:20:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8718,"id":8726,"nodeType":"Return","src":"3448:27:44"}]},"documentation":{"id":8710,"nodeType":"StructuredDocumentation","src":"3306:60:44","text":" @dev Returns the smallest of two numbers."},"id":8728,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3380:3:44","nodeType":"FunctionDefinition","parameters":{"id":8715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"mutability":"mutable","name":"a","nameLocation":"3392:1:44","nodeType":"VariableDeclaration","scope":8728,"src":"3384:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8711,"name":"uint256","nodeType":"ElementaryTypeName","src":"3384:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8714,"mutability":"mutable","name":"b","nameLocation":"3403:1:44","nodeType":"VariableDeclaration","scope":8728,"src":"3395:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8713,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3383:22:44"},"returnParameters":{"id":8718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8728,"src":"3429:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8716,"name":"uint256","nodeType":"ElementaryTypeName","src":"3429:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3428:9:44"},"scope":10099,"src":"3371:111:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8750,"nodeType":"Block","src":"3666:82:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8738,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8731,"src":"3721:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":8739,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8733,"src":"3725:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3721:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8741,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3720:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8742,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8731,"src":"3731:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":8743,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8733,"src":"3735:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3731:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8745,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3730:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":8746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3740:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3730:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3720:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8737,"id":8749,"nodeType":"Return","src":"3713:28:44"}]},"documentation":{"id":8729,"nodeType":"StructuredDocumentation","src":"3488:102:44","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":8751,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"3604:7:44","nodeType":"FunctionDefinition","parameters":{"id":8734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8731,"mutability":"mutable","name":"a","nameLocation":"3620:1:44","nodeType":"VariableDeclaration","scope":8751,"src":"3612:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8730,"name":"uint256","nodeType":"ElementaryTypeName","src":"3612:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8733,"mutability":"mutable","name":"b","nameLocation":"3631:1:44","nodeType":"VariableDeclaration","scope":8751,"src":"3623:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8732,"name":"uint256","nodeType":"ElementaryTypeName","src":"3623:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3611:22:44"},"returnParameters":{"id":8737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8751,"src":"3657:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8735,"name":"uint256","nodeType":"ElementaryTypeName","src":"3657:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3656:9:44"},"scope":10099,"src":"3595:153:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8791,"nodeType":"Block","src":"4040:633:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8761,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"4054:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4059:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4054:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8772,"nodeType":"IfStatement","src":"4050:150:44","trueBody":{"id":8771,"nodeType":"Block","src":"4062:138:44","statements":[{"expression":{"arguments":[{"expression":{"id":8767,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"4166:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$6831_$","typeString":"type(library Panic)"}},"id":8768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4172:16:44","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":6798,"src":"4166:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8764,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"4154:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$6831_$","typeString":"type(library Panic)"}},"id":8766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4160:5:44","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":6830,"src":"4154:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4154:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8770,"nodeType":"ExpressionStatement","src":"4154:35:44"}]}},{"id":8790,"nodeType":"UncheckedBlock","src":"4583:84:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8775,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8754,"src":"4630:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4634:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4630:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8773,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"4614:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":8774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"4614:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":8778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4614:22:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8779,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8754,"src":"4641:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4645:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4641:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8782,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4640:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8783,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"4650:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4640:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4654:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4640:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8787,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4639:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4614:42:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8760,"id":8789,"nodeType":"Return","src":"4607:49:44"}]}]},"documentation":{"id":8752,"nodeType":"StructuredDocumentation","src":"3754:210:44","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero."},"id":8792,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3978:7:44","nodeType":"FunctionDefinition","parameters":{"id":8757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8754,"mutability":"mutable","name":"a","nameLocation":"3994:1:44","nodeType":"VariableDeclaration","scope":8792,"src":"3986:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8753,"name":"uint256","nodeType":"ElementaryTypeName","src":"3986:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8756,"mutability":"mutable","name":"b","nameLocation":"4005:1:44","nodeType":"VariableDeclaration","scope":8792,"src":"3997:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8755,"name":"uint256","nodeType":"ElementaryTypeName","src":"3997:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3985:22:44"},"returnParameters":{"id":8760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8759,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8792,"src":"4031:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8758,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4030:9:44"},"scope":10099,"src":"3969:704:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8928,"nodeType":"Block","src":"5094:4128:44","statements":[{"id":8927,"nodeType":"UncheckedBlock","src":"5104:4112:44","statements":[{"assignments":[8805],"declarations":[{"constant":false,"id":8805,"mutability":"mutable","name":"prod0","nameLocation":"5441:5:44","nodeType":"VariableDeclaration","scope":8927,"src":"5433:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8804,"name":"uint256","nodeType":"ElementaryTypeName","src":"5433:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8809,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8806,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8795,"src":"5449:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8807,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8797,"src":"5453:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5449:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5433:21:44"},{"assignments":[8811],"declarations":[{"constant":false,"id":8811,"mutability":"mutable","name":"prod1","nameLocation":"5521:5:44","nodeType":"VariableDeclaration","scope":8927,"src":"5513:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8810,"name":"uint256","nodeType":"ElementaryTypeName","src":"5513:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8812,"nodeType":"VariableDeclarationStatement","src":"5513:13:44"},{"AST":{"nativeSrc":"5593:122:44","nodeType":"YulBlock","src":"5593:122:44","statements":[{"nativeSrc":"5611:30:44","nodeType":"YulVariableDeclaration","src":"5611:30:44","value":{"arguments":[{"name":"x","nativeSrc":"5628:1:44","nodeType":"YulIdentifier","src":"5628:1:44"},{"name":"y","nativeSrc":"5631:1:44","nodeType":"YulIdentifier","src":"5631:1:44"},{"arguments":[{"kind":"number","nativeSrc":"5638:1:44","nodeType":"YulLiteral","src":"5638:1:44","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"5634:3:44","nodeType":"YulIdentifier","src":"5634:3:44"},"nativeSrc":"5634:6:44","nodeType":"YulFunctionCall","src":"5634:6:44"}],"functionName":{"name":"mulmod","nativeSrc":"5621:6:44","nodeType":"YulIdentifier","src":"5621:6:44"},"nativeSrc":"5621:20:44","nodeType":"YulFunctionCall","src":"5621:20:44"},"variables":[{"name":"mm","nativeSrc":"5615:2:44","nodeType":"YulTypedName","src":"5615:2:44","type":""}]},{"nativeSrc":"5658:43:44","nodeType":"YulAssignment","src":"5658:43:44","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"5675:2:44","nodeType":"YulIdentifier","src":"5675:2:44"},{"name":"prod0","nativeSrc":"5679:5:44","nodeType":"YulIdentifier","src":"5679:5:44"}],"functionName":{"name":"sub","nativeSrc":"5671:3:44","nodeType":"YulIdentifier","src":"5671:3:44"},"nativeSrc":"5671:14:44","nodeType":"YulFunctionCall","src":"5671:14:44"},{"arguments":[{"name":"mm","nativeSrc":"5690:2:44","nodeType":"YulIdentifier","src":"5690:2:44"},{"name":"prod0","nativeSrc":"5694:5:44","nodeType":"YulIdentifier","src":"5694:5:44"}],"functionName":{"name":"lt","nativeSrc":"5687:2:44","nodeType":"YulIdentifier","src":"5687:2:44"},"nativeSrc":"5687:13:44","nodeType":"YulFunctionCall","src":"5687:13:44"}],"functionName":{"name":"sub","nativeSrc":"5667:3:44","nodeType":"YulIdentifier","src":"5667:3:44"},"nativeSrc":"5667:34:44","nodeType":"YulFunctionCall","src":"5667:34:44"},"variableNames":[{"name":"prod1","nativeSrc":"5658:5:44","nodeType":"YulIdentifier","src":"5658:5:44"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":8805,"isOffset":false,"isSlot":false,"src":"5679:5:44","valueSize":1},{"declaration":8805,"isOffset":false,"isSlot":false,"src":"5694:5:44","valueSize":1},{"declaration":8811,"isOffset":false,"isSlot":false,"src":"5658:5:44","valueSize":1},{"declaration":8795,"isOffset":false,"isSlot":false,"src":"5628:1:44","valueSize":1},{"declaration":8797,"isOffset":false,"isSlot":false,"src":"5631:1:44","valueSize":1}],"id":8813,"nodeType":"InlineAssembly","src":"5584:131:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8814,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8811,"src":"5796:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5805:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5796:10:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8822,"nodeType":"IfStatement","src":"5792:368:44","trueBody":{"id":8821,"nodeType":"Block","src":"5808:352:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8817,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8805,"src":"6126:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8818,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"6134:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6126:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8803,"id":8820,"nodeType":"Return","src":"6119:26:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8823,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"6270:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":8824,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8811,"src":"6285:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6270:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8841,"nodeType":"IfStatement","src":"6266:143:44","trueBody":{"id":8840,"nodeType":"Block","src":"6292:117:44","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8830,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"6330:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6345:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6330:16:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":8833,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"6348:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$6831_$","typeString":"type(library Panic)"}},"id":8834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6354:16:44","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":6798,"src":"6348:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8835,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"6372:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$6831_$","typeString":"type(library Panic)"}},"id":8836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6378:14:44","memberName":"UNDER_OVERFLOW","nodeType":"MemberAccess","referencedDeclaration":6794,"src":"6372:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8829,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8690,"src":"6322:7:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":8837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6322:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8826,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"6310:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$6831_$","typeString":"type(library Panic)"}},"id":8828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6316:5:44","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":6830,"src":"6310:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":8838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6310:84:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8839,"nodeType":"ExpressionStatement","src":"6310:84:44"}]}},{"assignments":[8843],"declarations":[{"constant":false,"id":8843,"mutability":"mutable","name":"remainder","nameLocation":"6672:9:44","nodeType":"VariableDeclaration","scope":8927,"src":"6664:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8842,"name":"uint256","nodeType":"ElementaryTypeName","src":"6664:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8844,"nodeType":"VariableDeclarationStatement","src":"6664:17:44"},{"AST":{"nativeSrc":"6704:291:44","nodeType":"YulBlock","src":"6704:291:44","statements":[{"nativeSrc":"6773:38:44","nodeType":"YulAssignment","src":"6773:38:44","value":{"arguments":[{"name":"x","nativeSrc":"6793:1:44","nodeType":"YulIdentifier","src":"6793:1:44"},{"name":"y","nativeSrc":"6796:1:44","nodeType":"YulIdentifier","src":"6796:1:44"},{"name":"denominator","nativeSrc":"6799:11:44","nodeType":"YulIdentifier","src":"6799:11:44"}],"functionName":{"name":"mulmod","nativeSrc":"6786:6:44","nodeType":"YulIdentifier","src":"6786:6:44"},"nativeSrc":"6786:25:44","nodeType":"YulFunctionCall","src":"6786:25:44"},"variableNames":[{"name":"remainder","nativeSrc":"6773:9:44","nodeType":"YulIdentifier","src":"6773:9:44"}]},{"nativeSrc":"6893:41:44","nodeType":"YulAssignment","src":"6893:41:44","value":{"arguments":[{"name":"prod1","nativeSrc":"6906:5:44","nodeType":"YulIdentifier","src":"6906:5:44"},{"arguments":[{"name":"remainder","nativeSrc":"6916:9:44","nodeType":"YulIdentifier","src":"6916:9:44"},{"name":"prod0","nativeSrc":"6927:5:44","nodeType":"YulIdentifier","src":"6927:5:44"}],"functionName":{"name":"gt","nativeSrc":"6913:2:44","nodeType":"YulIdentifier","src":"6913:2:44"},"nativeSrc":"6913:20:44","nodeType":"YulFunctionCall","src":"6913:20:44"}],"functionName":{"name":"sub","nativeSrc":"6902:3:44","nodeType":"YulIdentifier","src":"6902:3:44"},"nativeSrc":"6902:32:44","nodeType":"YulFunctionCall","src":"6902:32:44"},"variableNames":[{"name":"prod1","nativeSrc":"6893:5:44","nodeType":"YulIdentifier","src":"6893:5:44"}]},{"nativeSrc":"6951:30:44","nodeType":"YulAssignment","src":"6951:30:44","value":{"arguments":[{"name":"prod0","nativeSrc":"6964:5:44","nodeType":"YulIdentifier","src":"6964:5:44"},{"name":"remainder","nativeSrc":"6971:9:44","nodeType":"YulIdentifier","src":"6971:9:44"}],"functionName":{"name":"sub","nativeSrc":"6960:3:44","nodeType":"YulIdentifier","src":"6960:3:44"},"nativeSrc":"6960:21:44","nodeType":"YulFunctionCall","src":"6960:21:44"},"variableNames":[{"name":"prod0","nativeSrc":"6951:5:44","nodeType":"YulIdentifier","src":"6951:5:44"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":8799,"isOffset":false,"isSlot":false,"src":"6799:11:44","valueSize":1},{"declaration":8805,"isOffset":false,"isSlot":false,"src":"6927:5:44","valueSize":1},{"declaration":8805,"isOffset":false,"isSlot":false,"src":"6951:5:44","valueSize":1},{"declaration":8805,"isOffset":false,"isSlot":false,"src":"6964:5:44","valueSize":1},{"declaration":8811,"isOffset":false,"isSlot":false,"src":"6893:5:44","valueSize":1},{"declaration":8811,"isOffset":false,"isSlot":false,"src":"6906:5:44","valueSize":1},{"declaration":8843,"isOffset":false,"isSlot":false,"src":"6773:9:44","valueSize":1},{"declaration":8843,"isOffset":false,"isSlot":false,"src":"6916:9:44","valueSize":1},{"declaration":8843,"isOffset":false,"isSlot":false,"src":"6971:9:44","valueSize":1},{"declaration":8795,"isOffset":false,"isSlot":false,"src":"6793:1:44","valueSize":1},{"declaration":8797,"isOffset":false,"isSlot":false,"src":"6796:1:44","valueSize":1}],"id":8845,"nodeType":"InlineAssembly","src":"6695:300:44"},{"assignments":[8847],"declarations":[{"constant":false,"id":8847,"mutability":"mutable","name":"twos","nameLocation":"7207:4:44","nodeType":"VariableDeclaration","scope":8927,"src":"7199:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8846,"name":"uint256","nodeType":"ElementaryTypeName","src":"7199:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8854,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8848,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"7214:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":8849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7229:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8850,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"7233:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7229:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8852,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7228:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7214:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7199:46:44"},{"AST":{"nativeSrc":"7268:366:44","nodeType":"YulBlock","src":"7268:366:44","statements":[{"nativeSrc":"7333:37:44","nodeType":"YulAssignment","src":"7333:37:44","value":{"arguments":[{"name":"denominator","nativeSrc":"7352:11:44","nodeType":"YulIdentifier","src":"7352:11:44"},{"name":"twos","nativeSrc":"7365:4:44","nodeType":"YulIdentifier","src":"7365:4:44"}],"functionName":{"name":"div","nativeSrc":"7348:3:44","nodeType":"YulIdentifier","src":"7348:3:44"},"nativeSrc":"7348:22:44","nodeType":"YulFunctionCall","src":"7348:22:44"},"variableNames":[{"name":"denominator","nativeSrc":"7333:11:44","nodeType":"YulIdentifier","src":"7333:11:44"}]},{"nativeSrc":"7437:25:44","nodeType":"YulAssignment","src":"7437:25:44","value":{"arguments":[{"name":"prod0","nativeSrc":"7450:5:44","nodeType":"YulIdentifier","src":"7450:5:44"},{"name":"twos","nativeSrc":"7457:4:44","nodeType":"YulIdentifier","src":"7457:4:44"}],"functionName":{"name":"div","nativeSrc":"7446:3:44","nodeType":"YulIdentifier","src":"7446:3:44"},"nativeSrc":"7446:16:44","nodeType":"YulFunctionCall","src":"7446:16:44"},"variableNames":[{"name":"prod0","nativeSrc":"7437:5:44","nodeType":"YulIdentifier","src":"7437:5:44"}]},{"nativeSrc":"7581:39:44","nodeType":"YulAssignment","src":"7581:39:44","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7601:1:44","nodeType":"YulLiteral","src":"7601:1:44","type":"","value":"0"},{"name":"twos","nativeSrc":"7604:4:44","nodeType":"YulIdentifier","src":"7604:4:44"}],"functionName":{"name":"sub","nativeSrc":"7597:3:44","nodeType":"YulIdentifier","src":"7597:3:44"},"nativeSrc":"7597:12:44","nodeType":"YulFunctionCall","src":"7597:12:44"},{"name":"twos","nativeSrc":"7611:4:44","nodeType":"YulIdentifier","src":"7611:4:44"}],"functionName":{"name":"div","nativeSrc":"7593:3:44","nodeType":"YulIdentifier","src":"7593:3:44"},"nativeSrc":"7593:23:44","nodeType":"YulFunctionCall","src":"7593:23:44"},{"kind":"number","nativeSrc":"7618:1:44","nodeType":"YulLiteral","src":"7618:1:44","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7589:3:44","nodeType":"YulIdentifier","src":"7589:3:44"},"nativeSrc":"7589:31:44","nodeType":"YulFunctionCall","src":"7589:31:44"},"variableNames":[{"name":"twos","nativeSrc":"7581:4:44","nodeType":"YulIdentifier","src":"7581:4:44"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":8799,"isOffset":false,"isSlot":false,"src":"7333:11:44","valueSize":1},{"declaration":8799,"isOffset":false,"isSlot":false,"src":"7352:11:44","valueSize":1},{"declaration":8805,"isOffset":false,"isSlot":false,"src":"7437:5:44","valueSize":1},{"declaration":8805,"isOffset":false,"isSlot":false,"src":"7450:5:44","valueSize":1},{"declaration":8847,"isOffset":false,"isSlot":false,"src":"7365:4:44","valueSize":1},{"declaration":8847,"isOffset":false,"isSlot":false,"src":"7457:4:44","valueSize":1},{"declaration":8847,"isOffset":false,"isSlot":false,"src":"7581:4:44","valueSize":1},{"declaration":8847,"isOffset":false,"isSlot":false,"src":"7604:4:44","valueSize":1},{"declaration":8847,"isOffset":false,"isSlot":false,"src":"7611:4:44","valueSize":1}],"id":8855,"nodeType":"InlineAssembly","src":"7259:375:44"},{"expression":{"id":8860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8856,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8805,"src":"7700:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8857,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8811,"src":"7709:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8858,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8847,"src":"7717:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7709:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7700:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8861,"nodeType":"ExpressionStatement","src":"7700:21:44"},{"assignments":[8863],"declarations":[{"constant":false,"id":8863,"mutability":"mutable","name":"inverse","nameLocation":"8064:7:44","nodeType":"VariableDeclaration","scope":8927,"src":"8056:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8862,"name":"uint256","nodeType":"ElementaryTypeName","src":"8056:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8870,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":8864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8075:1:44","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8865,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"8079:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8075:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8867,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8074:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":8868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8094:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"8074:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8056:39:44"},{"expression":{"id":8877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8871,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8312:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8323:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8873,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"8327:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8874,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8341:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8327:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8323:25:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8312:36:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8878,"nodeType":"ExpressionStatement","src":"8312:36:44"},{"expression":{"id":8885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8879,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8382:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8393:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8881,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"8397:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8882,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8411:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8397:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8393:25:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8382:36:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8886,"nodeType":"ExpressionStatement","src":"8382:36:44"},{"expression":{"id":8893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8887,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8454:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8465:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8889,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"8469:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8890,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8483:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8469:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8465:25:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8454:36:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8894,"nodeType":"ExpressionStatement","src":"8454:36:44"},{"expression":{"id":8901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8895,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8525:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8536:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8897,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"8540:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8898,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8554:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8540:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8536:25:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8525:36:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8902,"nodeType":"ExpressionStatement","src":"8525:36:44"},{"expression":{"id":8909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8903,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8598:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8609:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8905,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"8613:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8906,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8627:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8613:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8609:25:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8598:36:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8910,"nodeType":"ExpressionStatement","src":"8598:36:44"},{"expression":{"id":8917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8911,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8672:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8683:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8913,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"8687:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8914,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"8701:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8687:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8683:25:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8672:36:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8918,"nodeType":"ExpressionStatement","src":"8672:36:44"},{"expression":{"id":8923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8919,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8802,"src":"9154:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8920,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8805,"src":"9163:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8921,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"9171:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9163:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9154:24:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8924,"nodeType":"ExpressionStatement","src":"9154:24:44"},{"expression":{"id":8925,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8802,"src":"9199:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8803,"id":8926,"nodeType":"Return","src":"9192:13:44"}]}]},"documentation":{"id":8793,"nodeType":"StructuredDocumentation","src":"4679:312:44","text":" @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."},"id":8929,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5005:6:44","nodeType":"FunctionDefinition","parameters":{"id":8800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8795,"mutability":"mutable","name":"x","nameLocation":"5020:1:44","nodeType":"VariableDeclaration","scope":8929,"src":"5012:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8794,"name":"uint256","nodeType":"ElementaryTypeName","src":"5012:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8797,"mutability":"mutable","name":"y","nameLocation":"5031:1:44","nodeType":"VariableDeclaration","scope":8929,"src":"5023:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8796,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8799,"mutability":"mutable","name":"denominator","nameLocation":"5042:11:44","nodeType":"VariableDeclaration","scope":8929,"src":"5034:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8798,"name":"uint256","nodeType":"ElementaryTypeName","src":"5034:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:43:44"},"returnParameters":{"id":8803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8802,"mutability":"mutable","name":"result","nameLocation":"5086:6:44","nodeType":"VariableDeclaration","scope":8929,"src":"5078:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8801,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5077:16:44"},"scope":10099,"src":"4996:4226:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8965,"nodeType":"Block","src":"9461:128:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8945,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8932,"src":"9485:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8946,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8934,"src":"9488:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8947,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"9491:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8944,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[8929,8966],"referencedDeclaration":8929,"src":"9478:6:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":8948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9478:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8952,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8939,"src":"9539:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}],"id":8951,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10098,"src":"9522:16:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$8505_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":8953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9522:26:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8955,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8932,"src":"9559:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8956,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8934,"src":"9562:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8957,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"9565:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8954,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"9552:6:44","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":8958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9552:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9580:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9552:29:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9522:59:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8949,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"9506:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":8950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9515:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"9506:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":8962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9506:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9478:104:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8943,"id":8964,"nodeType":"Return","src":"9471:111:44"}]},"documentation":{"id":8930,"nodeType":"StructuredDocumentation","src":"9228:118:44","text":" @dev Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":8966,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"9360:6:44","nodeType":"FunctionDefinition","parameters":{"id":8940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8932,"mutability":"mutable","name":"x","nameLocation":"9375:1:44","nodeType":"VariableDeclaration","scope":8966,"src":"9367:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8931,"name":"uint256","nodeType":"ElementaryTypeName","src":"9367:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8934,"mutability":"mutable","name":"y","nameLocation":"9386:1:44","nodeType":"VariableDeclaration","scope":8966,"src":"9378:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8933,"name":"uint256","nodeType":"ElementaryTypeName","src":"9378:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8936,"mutability":"mutable","name":"denominator","nameLocation":"9397:11:44","nodeType":"VariableDeclaration","scope":8966,"src":"9389:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8935,"name":"uint256","nodeType":"ElementaryTypeName","src":"9389:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8939,"mutability":"mutable","name":"rounding","nameLocation":"9419:8:44","nodeType":"VariableDeclaration","scope":8966,"src":"9410:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"},"typeName":{"id":8938,"nodeType":"UserDefinedTypeName","pathNode":{"id":8937,"name":"Rounding","nameLocations":["9410:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"9410:8:44"},"referencedDeclaration":8505,"src":"9410:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9366:62:44"},"returnParameters":{"id":8943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8966,"src":"9452:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8941,"name":"uint256","nodeType":"ElementaryTypeName","src":"9452:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9451:9:44"},"scope":10099,"src":"9351:238:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9062,"nodeType":"Block","src":"10223:1849:44","statements":[{"id":9061,"nodeType":"UncheckedBlock","src":"10233:1833:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8976,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8971,"src":"10261:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10266:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10261:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8981,"nodeType":"IfStatement","src":"10257:20:44","trueBody":{"expression":{"hexValue":"30","id":8979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":8975,"id":8980,"nodeType":"Return","src":"10269:8:44"}},{"assignments":[8983],"declarations":[{"constant":false,"id":8983,"mutability":"mutable","name":"remainder","nameLocation":"10756:9:44","nodeType":"VariableDeclaration","scope":9061,"src":"10748:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8982,"name":"uint256","nodeType":"ElementaryTypeName","src":"10748:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8987,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8984,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8969,"src":"10768:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":8985,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8971,"src":"10772:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10768:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10748:25:44"},{"assignments":[8989],"declarations":[{"constant":false,"id":8989,"mutability":"mutable","name":"gcd","nameLocation":"10795:3:44","nodeType":"VariableDeclaration","scope":9061,"src":"10787:11:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8988,"name":"uint256","nodeType":"ElementaryTypeName","src":"10787:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8991,"initialValue":{"id":8990,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8971,"src":"10801:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10787:15:44"},{"assignments":[8993],"declarations":[{"constant":false,"id":8993,"mutability":"mutable","name":"x","nameLocation":"10945:1:44","nodeType":"VariableDeclaration","scope":9061,"src":"10938:8:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8992,"name":"int256","nodeType":"ElementaryTypeName","src":"10938:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":8995,"initialValue":{"hexValue":"30","id":8994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10949:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10938:12:44"},{"assignments":[8997],"declarations":[{"constant":false,"id":8997,"mutability":"mutable","name":"y","nameLocation":"10971:1:44","nodeType":"VariableDeclaration","scope":9061,"src":"10964:8:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8996,"name":"int256","nodeType":"ElementaryTypeName","src":"10964:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":8999,"initialValue":{"hexValue":"31","id":8998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10975:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"10964:12:44"},{"body":{"id":9036,"nodeType":"Block","src":"11014:882:44","statements":[{"assignments":[9004],"declarations":[{"constant":false,"id":9004,"mutability":"mutable","name":"quotient","nameLocation":"11040:8:44","nodeType":"VariableDeclaration","scope":9036,"src":"11032:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9003,"name":"uint256","nodeType":"ElementaryTypeName","src":"11032:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9008,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9005,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8989,"src":"11051:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9006,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"11057:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11051:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11032:34:44"},{"expression":{"id":9019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":9009,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8989,"src":"11086:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9010,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"11091:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9011,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11085:16:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":9012,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"11191:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9013,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8989,"src":"11436:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9014,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"11442:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":9015,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"11454:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11442:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11436:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9018,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11104:376:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11085:395:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9020,"nodeType":"ExpressionStatement","src":"11085:395:44"},{"expression":{"id":9034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":9021,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8993,"src":"11500:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":9022,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"11503:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":9023,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11499:6:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":9024,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"11585:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9025,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8993,"src":"11839:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9026,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"11843:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":9029,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"11854:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11847:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":9027,"name":"int256","nodeType":"ElementaryTypeName","src":"11847:6:44","typeDescriptions":{}}},"id":9030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11847:16:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11843:20:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11839:24:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":9033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11508:373:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"src":"11499:382:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9035,"nodeType":"ExpressionStatement","src":"11499:382:44"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9000,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"10998:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11011:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10998:14:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9037,"nodeType":"WhileStatement","src":"10991:905:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9038,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8989,"src":"11914:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":9039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11921:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11914:8:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9043,"nodeType":"IfStatement","src":"11910:22:44","trueBody":{"expression":{"hexValue":"30","id":9041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11931:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":8975,"id":9042,"nodeType":"Return","src":"11924:8:44"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9045,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8993,"src":"11983:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":9046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11987:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11983:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9048,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8971,"src":"11990:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":9052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"12002:2:44","subExpression":{"id":9051,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8993,"src":"12003:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11994:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9049,"name":"uint256","nodeType":"ElementaryTypeName","src":"11994:7:44","typeDescriptions":{}}},"id":9053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11994:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11990:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":9057,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8993,"src":"12015:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12007:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9055,"name":"uint256","nodeType":"ElementaryTypeName","src":"12007:7:44","typeDescriptions":{}}},"id":9058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12007:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9044,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8690,"src":"11975:7:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":9059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11975:43:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8975,"id":9060,"nodeType":"Return","src":"11968:50:44"}]}]},"documentation":{"id":8967,"nodeType":"StructuredDocumentation","src":"9595:553:44","text":" @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}."},"id":9063,"implemented":true,"kind":"function","modifiers":[],"name":"invMod","nameLocation":"10162:6:44","nodeType":"FunctionDefinition","parameters":{"id":8972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8969,"mutability":"mutable","name":"a","nameLocation":"10177:1:44","nodeType":"VariableDeclaration","scope":9063,"src":"10169:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8968,"name":"uint256","nodeType":"ElementaryTypeName","src":"10169:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8971,"mutability":"mutable","name":"n","nameLocation":"10188:1:44","nodeType":"VariableDeclaration","scope":9063,"src":"10180:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8970,"name":"uint256","nodeType":"ElementaryTypeName","src":"10180:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10168:22:44"},"returnParameters":{"id":8975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8974,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9063,"src":"10214:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8973,"name":"uint256","nodeType":"ElementaryTypeName","src":"10214:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10213:9:44"},"scope":10099,"src":"10153:1919:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9083,"nodeType":"Block","src":"12672:82:44","statements":[{"id":9082,"nodeType":"UncheckedBlock","src":"12682:66:44","statements":[{"expression":{"arguments":[{"id":9075,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9066,"src":"12725:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9076,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9068,"src":"12728:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":9077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12732:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12728:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9079,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9068,"src":"12735:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9073,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"12713:4:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$10099_$","typeString":"type(library Math)"}},"id":9074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12718:6:44","memberName":"modExp","nodeType":"MemberAccess","referencedDeclaration":9120,"src":"12713:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":9080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12713:24:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9072,"id":9081,"nodeType":"Return","src":"12706:31:44"}]}]},"documentation":{"id":9064,"nodeType":"StructuredDocumentation","src":"12078:514:44","text":" @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n NOTE: this function does NOT check that `p` is a prime greater than `2`."},"id":9084,"implemented":true,"kind":"function","modifiers":[],"name":"invModPrime","nameLocation":"12606:11:44","nodeType":"FunctionDefinition","parameters":{"id":9069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9066,"mutability":"mutable","name":"a","nameLocation":"12626:1:44","nodeType":"VariableDeclaration","scope":9084,"src":"12618:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9065,"name":"uint256","nodeType":"ElementaryTypeName","src":"12618:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9068,"mutability":"mutable","name":"p","nameLocation":"12637:1:44","nodeType":"VariableDeclaration","scope":9084,"src":"12629:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9067,"name":"uint256","nodeType":"ElementaryTypeName","src":"12629:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12617:22:44"},"returnParameters":{"id":9072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9084,"src":"12663:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9070,"name":"uint256","nodeType":"ElementaryTypeName","src":"12663:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12662:9:44"},"scope":10099,"src":"12597:157:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9119,"nodeType":"Block","src":"13524:174:44","statements":[{"assignments":[9097,9099],"declarations":[{"constant":false,"id":9097,"mutability":"mutable","name":"success","nameLocation":"13540:7:44","nodeType":"VariableDeclaration","scope":9119,"src":"13535:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9096,"name":"bool","nodeType":"ElementaryTypeName","src":"13535:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9099,"mutability":"mutable","name":"result","nameLocation":"13557:6:44","nodeType":"VariableDeclaration","scope":9119,"src":"13549:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9098,"name":"uint256","nodeType":"ElementaryTypeName","src":"13549:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9105,"initialValue":{"arguments":[{"id":9101,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9087,"src":"13577:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9102,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9089,"src":"13580:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9103,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9091,"src":"13583:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9100,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[9144,9226],"referencedDeclaration":9144,"src":"13567:9:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (bool,uint256)"}},"id":9104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13567:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13534:51:44"},{"condition":{"id":9107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13599:8:44","subExpression":{"id":9106,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9097,"src":"13600:7:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9116,"nodeType":"IfStatement","src":"13595:74:44","trueBody":{"id":9115,"nodeType":"Block","src":"13609:60:44","statements":[{"expression":{"arguments":[{"expression":{"id":9111,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"13635:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$6831_$","typeString":"type(library Panic)"}},"id":9112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13641:16:44","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":6798,"src":"13635:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9108,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"13623:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$6831_$","typeString":"type(library Panic)"}},"id":9110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13629:5:44","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":6830,"src":"13623:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":9113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13623:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9114,"nodeType":"ExpressionStatement","src":"13623:35:44"}]}},{"expression":{"id":9117,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9099,"src":"13685:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9095,"id":9118,"nodeType":"Return","src":"13678:13:44"}]},"documentation":{"id":9085,"nodeType":"StructuredDocumentation","src":"12760:678:44","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0."},"id":9120,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"13452:6:44","nodeType":"FunctionDefinition","parameters":{"id":9092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9087,"mutability":"mutable","name":"b","nameLocation":"13467:1:44","nodeType":"VariableDeclaration","scope":9120,"src":"13459:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9086,"name":"uint256","nodeType":"ElementaryTypeName","src":"13459:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9089,"mutability":"mutable","name":"e","nameLocation":"13478:1:44","nodeType":"VariableDeclaration","scope":9120,"src":"13470:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13470:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9091,"mutability":"mutable","name":"m","nameLocation":"13489:1:44","nodeType":"VariableDeclaration","scope":9120,"src":"13481:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9090,"name":"uint256","nodeType":"ElementaryTypeName","src":"13481:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13458:33:44"},"returnParameters":{"id":9095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9120,"src":"13515:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9093,"name":"uint256","nodeType":"ElementaryTypeName","src":"13515:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13514:9:44"},"scope":10099,"src":"13443:255:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9143,"nodeType":"Block","src":"14552:1493:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9134,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9127,"src":"14566:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14571:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14566:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9141,"nodeType":"IfStatement","src":"14562:29:44","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":9137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14582:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":9138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14589:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":9139,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14581:10:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":9133,"id":9140,"nodeType":"Return","src":"14574:17:44"}},{"AST":{"nativeSrc":"14626:1413:44","nodeType":"YulBlock","src":"14626:1413:44","statements":[{"nativeSrc":"14640:22:44","nodeType":"YulVariableDeclaration","src":"14640:22:44","value":{"arguments":[{"kind":"number","nativeSrc":"14657:4:44","nodeType":"YulLiteral","src":"14657:4:44","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"14651:5:44","nodeType":"YulIdentifier","src":"14651:5:44"},"nativeSrc":"14651:11:44","nodeType":"YulFunctionCall","src":"14651:11:44"},"variables":[{"name":"ptr","nativeSrc":"14644:3:44","nodeType":"YulTypedName","src":"14644:3:44","type":""}]},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"15570:3:44","nodeType":"YulIdentifier","src":"15570:3:44"},{"kind":"number","nativeSrc":"15575:4:44","nodeType":"YulLiteral","src":"15575:4:44","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"15563:6:44","nodeType":"YulIdentifier","src":"15563:6:44"},"nativeSrc":"15563:17:44","nodeType":"YulFunctionCall","src":"15563:17:44"},"nativeSrc":"15563:17:44","nodeType":"YulExpressionStatement","src":"15563:17:44"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15604:3:44","nodeType":"YulIdentifier","src":"15604:3:44"},{"kind":"number","nativeSrc":"15609:4:44","nodeType":"YulLiteral","src":"15609:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15600:3:44","nodeType":"YulIdentifier","src":"15600:3:44"},"nativeSrc":"15600:14:44","nodeType":"YulFunctionCall","src":"15600:14:44"},{"kind":"number","nativeSrc":"15616:4:44","nodeType":"YulLiteral","src":"15616:4:44","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"15593:6:44","nodeType":"YulIdentifier","src":"15593:6:44"},"nativeSrc":"15593:28:44","nodeType":"YulFunctionCall","src":"15593:28:44"},"nativeSrc":"15593:28:44","nodeType":"YulExpressionStatement","src":"15593:28:44"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15645:3:44","nodeType":"YulIdentifier","src":"15645:3:44"},{"kind":"number","nativeSrc":"15650:4:44","nodeType":"YulLiteral","src":"15650:4:44","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15641:3:44","nodeType":"YulIdentifier","src":"15641:3:44"},"nativeSrc":"15641:14:44","nodeType":"YulFunctionCall","src":"15641:14:44"},{"kind":"number","nativeSrc":"15657:4:44","nodeType":"YulLiteral","src":"15657:4:44","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"15634:6:44","nodeType":"YulIdentifier","src":"15634:6:44"},"nativeSrc":"15634:28:44","nodeType":"YulFunctionCall","src":"15634:28:44"},"nativeSrc":"15634:28:44","nodeType":"YulExpressionStatement","src":"15634:28:44"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15686:3:44","nodeType":"YulIdentifier","src":"15686:3:44"},{"kind":"number","nativeSrc":"15691:4:44","nodeType":"YulLiteral","src":"15691:4:44","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15682:3:44","nodeType":"YulIdentifier","src":"15682:3:44"},"nativeSrc":"15682:14:44","nodeType":"YulFunctionCall","src":"15682:14:44"},{"name":"b","nativeSrc":"15698:1:44","nodeType":"YulIdentifier","src":"15698:1:44"}],"functionName":{"name":"mstore","nativeSrc":"15675:6:44","nodeType":"YulIdentifier","src":"15675:6:44"},"nativeSrc":"15675:25:44","nodeType":"YulFunctionCall","src":"15675:25:44"},"nativeSrc":"15675:25:44","nodeType":"YulExpressionStatement","src":"15675:25:44"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15724:3:44","nodeType":"YulIdentifier","src":"15724:3:44"},{"kind":"number","nativeSrc":"15729:4:44","nodeType":"YulLiteral","src":"15729:4:44","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15720:3:44","nodeType":"YulIdentifier","src":"15720:3:44"},"nativeSrc":"15720:14:44","nodeType":"YulFunctionCall","src":"15720:14:44"},{"name":"e","nativeSrc":"15736:1:44","nodeType":"YulIdentifier","src":"15736:1:44"}],"functionName":{"name":"mstore","nativeSrc":"15713:6:44","nodeType":"YulIdentifier","src":"15713:6:44"},"nativeSrc":"15713:25:44","nodeType":"YulFunctionCall","src":"15713:25:44"},"nativeSrc":"15713:25:44","nodeType":"YulExpressionStatement","src":"15713:25:44"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15762:3:44","nodeType":"YulIdentifier","src":"15762:3:44"},{"kind":"number","nativeSrc":"15767:4:44","nodeType":"YulLiteral","src":"15767:4:44","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"15758:3:44","nodeType":"YulIdentifier","src":"15758:3:44"},"nativeSrc":"15758:14:44","nodeType":"YulFunctionCall","src":"15758:14:44"},{"name":"m","nativeSrc":"15774:1:44","nodeType":"YulIdentifier","src":"15774:1:44"}],"functionName":{"name":"mstore","nativeSrc":"15751:6:44","nodeType":"YulIdentifier","src":"15751:6:44"},"nativeSrc":"15751:25:44","nodeType":"YulFunctionCall","src":"15751:25:44"},"nativeSrc":"15751:25:44","nodeType":"YulExpressionStatement","src":"15751:25:44"},{"nativeSrc":"15938:57:44","nodeType":"YulAssignment","src":"15938:57:44","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15960:3:44","nodeType":"YulIdentifier","src":"15960:3:44"},"nativeSrc":"15960:5:44","nodeType":"YulFunctionCall","src":"15960:5:44"},{"kind":"number","nativeSrc":"15967:4:44","nodeType":"YulLiteral","src":"15967:4:44","type":"","value":"0x05"},{"name":"ptr","nativeSrc":"15973:3:44","nodeType":"YulIdentifier","src":"15973:3:44"},{"kind":"number","nativeSrc":"15978:4:44","nodeType":"YulLiteral","src":"15978:4:44","type":"","value":"0xc0"},{"kind":"number","nativeSrc":"15984:4:44","nodeType":"YulLiteral","src":"15984:4:44","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15990:4:44","nodeType":"YulLiteral","src":"15990:4:44","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15949:10:44","nodeType":"YulIdentifier","src":"15949:10:44"},"nativeSrc":"15949:46:44","nodeType":"YulFunctionCall","src":"15949:46:44"},"variableNames":[{"name":"success","nativeSrc":"15938:7:44","nodeType":"YulIdentifier","src":"15938:7:44"}]},{"nativeSrc":"16008:21:44","nodeType":"YulAssignment","src":"16008:21:44","value":{"arguments":[{"kind":"number","nativeSrc":"16024:4:44","nodeType":"YulLiteral","src":"16024:4:44","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"16018:5:44","nodeType":"YulIdentifier","src":"16018:5:44"},"nativeSrc":"16018:11:44","nodeType":"YulFunctionCall","src":"16018:11:44"},"variableNames":[{"name":"result","nativeSrc":"16008:6:44","nodeType":"YulIdentifier","src":"16008:6:44"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":9123,"isOffset":false,"isSlot":false,"src":"15698:1:44","valueSize":1},{"declaration":9125,"isOffset":false,"isSlot":false,"src":"15736:1:44","valueSize":1},{"declaration":9127,"isOffset":false,"isSlot":false,"src":"15774:1:44","valueSize":1},{"declaration":9132,"isOffset":false,"isSlot":false,"src":"16008:6:44","valueSize":1},{"declaration":9130,"isOffset":false,"isSlot":false,"src":"15938:7:44","valueSize":1}],"flags":["memory-safe"],"id":9142,"nodeType":"InlineAssembly","src":"14601:1438:44"}]},"documentation":{"id":9121,"nodeType":"StructuredDocumentation","src":"13704:738:44","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0."},"id":9144,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"14456:9:44","nodeType":"FunctionDefinition","parameters":{"id":9128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"mutability":"mutable","name":"b","nameLocation":"14474:1:44","nodeType":"VariableDeclaration","scope":9144,"src":"14466:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9122,"name":"uint256","nodeType":"ElementaryTypeName","src":"14466:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9125,"mutability":"mutable","name":"e","nameLocation":"14485:1:44","nodeType":"VariableDeclaration","scope":9144,"src":"14477:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9124,"name":"uint256","nodeType":"ElementaryTypeName","src":"14477:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9127,"mutability":"mutable","name":"m","nameLocation":"14496:1:44","nodeType":"VariableDeclaration","scope":9144,"src":"14488:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9126,"name":"uint256","nodeType":"ElementaryTypeName","src":"14488:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14465:33:44"},"returnParameters":{"id":9133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9130,"mutability":"mutable","name":"success","nameLocation":"14527:7:44","nodeType":"VariableDeclaration","scope":9144,"src":"14522:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9129,"name":"bool","nodeType":"ElementaryTypeName","src":"14522:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9132,"mutability":"mutable","name":"result","nameLocation":"14544:6:44","nodeType":"VariableDeclaration","scope":9144,"src":"14536:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9131,"name":"uint256","nodeType":"ElementaryTypeName","src":"14536:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14521:30:44"},"scope":10099,"src":"14447:1598:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9179,"nodeType":"Block","src":"16242:179:44","statements":[{"assignments":[9157,9159],"declarations":[{"constant":false,"id":9157,"mutability":"mutable","name":"success","nameLocation":"16258:7:44","nodeType":"VariableDeclaration","scope":9179,"src":"16253:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9156,"name":"bool","nodeType":"ElementaryTypeName","src":"16253:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9159,"mutability":"mutable","name":"result","nameLocation":"16280:6:44","nodeType":"VariableDeclaration","scope":9179,"src":"16267:19:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9158,"name":"bytes","nodeType":"ElementaryTypeName","src":"16267:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9165,"initialValue":{"arguments":[{"id":9161,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9147,"src":"16300:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9162,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9149,"src":"16303:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9163,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9151,"src":"16306:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9160,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[9144,9226],"referencedDeclaration":9226,"src":"16290:9:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)"}},"id":9164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16290:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"16252:56:44"},{"condition":{"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16322:8:44","subExpression":{"id":9166,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"16323:7:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9176,"nodeType":"IfStatement","src":"16318:74:44","trueBody":{"id":9175,"nodeType":"Block","src":"16332:60:44","statements":[{"expression":{"arguments":[{"expression":{"id":9171,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"16358:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$6831_$","typeString":"type(library Panic)"}},"id":9172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16364:16:44","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":6798,"src":"16358:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9168,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"16346:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$6831_$","typeString":"type(library Panic)"}},"id":9170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16352:5:44","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":6830,"src":"16346:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":9173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16346:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9174,"nodeType":"ExpressionStatement","src":"16346:35:44"}]}},{"expression":{"id":9177,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9159,"src":"16408:6:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9155,"id":9178,"nodeType":"Return","src":"16401:13:44"}]},"documentation":{"id":9145,"nodeType":"StructuredDocumentation","src":"16051:85:44","text":" @dev Variant of {modExp} that supports inputs of arbitrary length."},"id":9180,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"16150:6:44","nodeType":"FunctionDefinition","parameters":{"id":9152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9147,"mutability":"mutable","name":"b","nameLocation":"16170:1:44","nodeType":"VariableDeclaration","scope":9180,"src":"16157:14:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9146,"name":"bytes","nodeType":"ElementaryTypeName","src":"16157:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9149,"mutability":"mutable","name":"e","nameLocation":"16186:1:44","nodeType":"VariableDeclaration","scope":9180,"src":"16173:14:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9148,"name":"bytes","nodeType":"ElementaryTypeName","src":"16173:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9151,"mutability":"mutable","name":"m","nameLocation":"16202:1:44","nodeType":"VariableDeclaration","scope":9180,"src":"16189:14:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9150,"name":"bytes","nodeType":"ElementaryTypeName","src":"16189:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16156:48:44"},"returnParameters":{"id":9155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9180,"src":"16228:12:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9153,"name":"bytes","nodeType":"ElementaryTypeName","src":"16228:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16227:14:44"},"scope":10099,"src":"16141:280:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9225,"nodeType":"Block","src":"16675:771:44","statements":[{"condition":{"arguments":[{"id":9195,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9187,"src":"16700:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9194,"name":"_zeroBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9259,"src":"16689:10:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) pure returns (bool)"}},"id":9196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16689:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9204,"nodeType":"IfStatement","src":"16685:47:44","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":9197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16712:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"hexValue":"30","id":9200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16729:1:44","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":9199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16719:9:44","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":9198,"name":"bytes","nodeType":"ElementaryTypeName","src":"16723:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":9201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16719:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":9202,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16711:21:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":9193,"id":9203,"nodeType":"Return","src":"16704:28:44"}},{"assignments":[9206],"declarations":[{"constant":false,"id":9206,"mutability":"mutable","name":"mLen","nameLocation":"16751:4:44","nodeType":"VariableDeclaration","scope":9225,"src":"16743:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9205,"name":"uint256","nodeType":"ElementaryTypeName","src":"16743:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9209,"initialValue":{"expression":{"id":9207,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9187,"src":"16758:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16760:6:44","memberName":"length","nodeType":"MemberAccess","src":"16758:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16743:23:44"},{"expression":{"id":9222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9210,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9192,"src":"16848:6:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":9213,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9183,"src":"16874:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16876:6:44","memberName":"length","nodeType":"MemberAccess","src":"16874:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9215,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9185,"src":"16884:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16886:6:44","memberName":"length","nodeType":"MemberAccess","src":"16884:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9217,"name":"mLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9206,"src":"16894:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9218,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9183,"src":"16900:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9219,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9185,"src":"16903:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9220,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9187,"src":"16906:1:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9211,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16857:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16861:12:44","memberName":"encodePacked","nodeType":"MemberAccess","src":"16857:16:44","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16857:51:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"16848:60:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9223,"nodeType":"ExpressionStatement","src":"16848:60:44"},{"AST":{"nativeSrc":"16944:496:44","nodeType":"YulBlock","src":"16944:496:44","statements":[{"nativeSrc":"16958:32:44","nodeType":"YulVariableDeclaration","src":"16958:32:44","value":{"arguments":[{"name":"result","nativeSrc":"16977:6:44","nodeType":"YulIdentifier","src":"16977:6:44"},{"kind":"number","nativeSrc":"16985:4:44","nodeType":"YulLiteral","src":"16985:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16973:3:44","nodeType":"YulIdentifier","src":"16973:3:44"},"nativeSrc":"16973:17:44","nodeType":"YulFunctionCall","src":"16973:17:44"},"variables":[{"name":"dataPtr","nativeSrc":"16962:7:44","nodeType":"YulTypedName","src":"16962:7:44","type":""}]},{"nativeSrc":"17080:73:44","nodeType":"YulAssignment","src":"17080:73:44","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17102:3:44","nodeType":"YulIdentifier","src":"17102:3:44"},"nativeSrc":"17102:5:44","nodeType":"YulFunctionCall","src":"17102:5:44"},{"kind":"number","nativeSrc":"17109:4:44","nodeType":"YulLiteral","src":"17109:4:44","type":"","value":"0x05"},{"name":"dataPtr","nativeSrc":"17115:7:44","nodeType":"YulIdentifier","src":"17115:7:44"},{"arguments":[{"name":"result","nativeSrc":"17130:6:44","nodeType":"YulIdentifier","src":"17130:6:44"}],"functionName":{"name":"mload","nativeSrc":"17124:5:44","nodeType":"YulIdentifier","src":"17124:5:44"},"nativeSrc":"17124:13:44","nodeType":"YulFunctionCall","src":"17124:13:44"},{"name":"dataPtr","nativeSrc":"17139:7:44","nodeType":"YulIdentifier","src":"17139:7:44"},{"name":"mLen","nativeSrc":"17148:4:44","nodeType":"YulIdentifier","src":"17148:4:44"}],"functionName":{"name":"staticcall","nativeSrc":"17091:10:44","nodeType":"YulIdentifier","src":"17091:10:44"},"nativeSrc":"17091:62:44","nodeType":"YulFunctionCall","src":"17091:62:44"},"variableNames":[{"name":"success","nativeSrc":"17080:7:44","nodeType":"YulIdentifier","src":"17080:7:44"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"17309:6:44","nodeType":"YulIdentifier","src":"17309:6:44"},{"name":"mLen","nativeSrc":"17317:4:44","nodeType":"YulIdentifier","src":"17317:4:44"}],"functionName":{"name":"mstore","nativeSrc":"17302:6:44","nodeType":"YulIdentifier","src":"17302:6:44"},"nativeSrc":"17302:20:44","nodeType":"YulFunctionCall","src":"17302:20:44"},"nativeSrc":"17302:20:44","nodeType":"YulExpressionStatement","src":"17302:20:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17405:4:44","nodeType":"YulLiteral","src":"17405:4:44","type":"","value":"0x40"},{"arguments":[{"name":"dataPtr","nativeSrc":"17415:7:44","nodeType":"YulIdentifier","src":"17415:7:44"},{"name":"mLen","nativeSrc":"17424:4:44","nodeType":"YulIdentifier","src":"17424:4:44"}],"functionName":{"name":"add","nativeSrc":"17411:3:44","nodeType":"YulIdentifier","src":"17411:3:44"},"nativeSrc":"17411:18:44","nodeType":"YulFunctionCall","src":"17411:18:44"}],"functionName":{"name":"mstore","nativeSrc":"17398:6:44","nodeType":"YulIdentifier","src":"17398:6:44"},"nativeSrc":"17398:32:44","nodeType":"YulFunctionCall","src":"17398:32:44"},"nativeSrc":"17398:32:44","nodeType":"YulExpressionStatement","src":"17398:32:44"}]},"evmVersion":"paris","externalReferences":[{"declaration":9206,"isOffset":false,"isSlot":false,"src":"17148:4:44","valueSize":1},{"declaration":9206,"isOffset":false,"isSlot":false,"src":"17317:4:44","valueSize":1},{"declaration":9206,"isOffset":false,"isSlot":false,"src":"17424:4:44","valueSize":1},{"declaration":9192,"isOffset":false,"isSlot":false,"src":"16977:6:44","valueSize":1},{"declaration":9192,"isOffset":false,"isSlot":false,"src":"17130:6:44","valueSize":1},{"declaration":9192,"isOffset":false,"isSlot":false,"src":"17309:6:44","valueSize":1},{"declaration":9190,"isOffset":false,"isSlot":false,"src":"17080:7:44","valueSize":1}],"flags":["memory-safe"],"id":9224,"nodeType":"InlineAssembly","src":"16919:521:44"}]},"documentation":{"id":9181,"nodeType":"StructuredDocumentation","src":"16427:88:44","text":" @dev Variant of {tryModExp} that supports inputs of arbitrary length."},"id":9226,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"16529:9:44","nodeType":"FunctionDefinition","parameters":{"id":9188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9183,"mutability":"mutable","name":"b","nameLocation":"16561:1:44","nodeType":"VariableDeclaration","scope":9226,"src":"16548:14:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9182,"name":"bytes","nodeType":"ElementaryTypeName","src":"16548:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9185,"mutability":"mutable","name":"e","nameLocation":"16585:1:44","nodeType":"VariableDeclaration","scope":9226,"src":"16572:14:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9184,"name":"bytes","nodeType":"ElementaryTypeName","src":"16572:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9187,"mutability":"mutable","name":"m","nameLocation":"16609:1:44","nodeType":"VariableDeclaration","scope":9226,"src":"16596:14:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9186,"name":"bytes","nodeType":"ElementaryTypeName","src":"16596:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16538:78:44"},"returnParameters":{"id":9193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9190,"mutability":"mutable","name":"success","nameLocation":"16645:7:44","nodeType":"VariableDeclaration","scope":9226,"src":"16640:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9189,"name":"bool","nodeType":"ElementaryTypeName","src":"16640:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9192,"mutability":"mutable","name":"result","nameLocation":"16667:6:44","nodeType":"VariableDeclaration","scope":9226,"src":"16654:19:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9191,"name":"bytes","nodeType":"ElementaryTypeName","src":"16654:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16639:35:44"},"scope":10099,"src":"16520:926:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9258,"nodeType":"Block","src":"17601:176:44","statements":[{"body":{"id":9254,"nodeType":"Block","src":"17658:92:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":9249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":9245,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9229,"src":"17676:9:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9247,"indexExpression":{"id":9246,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9235,"src":"17686:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17676:12:44","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17692:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17676:17:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9253,"nodeType":"IfStatement","src":"17672:68:44","trueBody":{"id":9252,"nodeType":"Block","src":"17695:45:44","statements":[{"expression":{"hexValue":"66616c7365","id":9250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17720:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":9233,"id":9251,"nodeType":"Return","src":"17713:12:44"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9238,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9235,"src":"17631:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":9239,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9229,"src":"17635:9:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17645:6:44","memberName":"length","nodeType":"MemberAccess","src":"17635:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17631:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9255,"initializationExpression":{"assignments":[9235],"declarations":[{"constant":false,"id":9235,"mutability":"mutable","name":"i","nameLocation":"17624:1:44","nodeType":"VariableDeclaration","scope":9255,"src":"17616:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9234,"name":"uint256","nodeType":"ElementaryTypeName","src":"17616:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9237,"initialValue":{"hexValue":"30","id":9236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17628:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17616:13:44"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":9243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17653:3:44","subExpression":{"id":9242,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9235,"src":"17655:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9244,"nodeType":"ExpressionStatement","src":"17653:3:44"},"nodeType":"ForStatement","src":"17611:139:44"},{"expression":{"hexValue":"74727565","id":9256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17766:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9233,"id":9257,"nodeType":"Return","src":"17759:11:44"}]},"documentation":{"id":9227,"nodeType":"StructuredDocumentation","src":"17452:72:44","text":" @dev Returns whether the provided byte array is zero."},"id":9259,"implemented":true,"kind":"function","modifiers":[],"name":"_zeroBytes","nameLocation":"17538:10:44","nodeType":"FunctionDefinition","parameters":{"id":9230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9229,"mutability":"mutable","name":"byteArray","nameLocation":"17562:9:44","nodeType":"VariableDeclaration","scope":9259,"src":"17549:22:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9228,"name":"bytes","nodeType":"ElementaryTypeName","src":"17549:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17548:24:44"},"returnParameters":{"id":9233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9259,"src":"17595:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9231,"name":"bool","nodeType":"ElementaryTypeName","src":"17595:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17594:6:44"},"scope":10099,"src":"17529:248:44","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":9477,"nodeType":"Block","src":"18137:5124:44","statements":[{"id":9476,"nodeType":"UncheckedBlock","src":"18147:5108:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9267,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"18241:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":9268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18246:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18241:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9273,"nodeType":"IfStatement","src":"18237:53:44","trueBody":{"id":9272,"nodeType":"Block","src":"18249:41:44","statements":[{"expression":{"id":9270,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"18274:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9266,"id":9271,"nodeType":"Return","src":"18267:8:44"}]}},{"assignments":[9275],"declarations":[{"constant":false,"id":9275,"mutability":"mutable","name":"aa","nameLocation":"19225:2:44","nodeType":"VariableDeclaration","scope":9476,"src":"19217:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9274,"name":"uint256","nodeType":"ElementaryTypeName","src":"19217:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9277,"initialValue":{"id":9276,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"19230:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19217:14:44"},{"assignments":[9279],"declarations":[{"constant":false,"id":9279,"mutability":"mutable","name":"xn","nameLocation":"19253:2:44","nodeType":"VariableDeclaration","scope":9476,"src":"19245:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9278,"name":"uint256","nodeType":"ElementaryTypeName","src":"19245:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9281,"initialValue":{"hexValue":"31","id":9280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19258:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"19245:14:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9282,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19278:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":9285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19285:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":9284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19290:3:44","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"19285:8:44","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":9286,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19284:10:44","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"src":"19278:16:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9297,"nodeType":"IfStatement","src":"19274:92:44","trueBody":{"id":9296,"nodeType":"Block","src":"19296:70:44","statements":[{"expression":{"id":9290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9288,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19314:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":9289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19321:3:44","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"19314:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9291,"nodeType":"ExpressionStatement","src":"19314:10:44"},{"expression":{"id":9294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9292,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"19342:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3634","id":9293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19349:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"19342:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9295,"nodeType":"ExpressionStatement","src":"19342:9:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9298,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19383:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":9301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19390:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":9300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19395:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"19390:7:44","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":9302,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19389:9:44","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"19383:15:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9313,"nodeType":"IfStatement","src":"19379:90:44","trueBody":{"id":9312,"nodeType":"Block","src":"19400:69:44","statements":[{"expression":{"id":9306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9304,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19418:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":9305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19425:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"19418:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9307,"nodeType":"ExpressionStatement","src":"19418:9:44"},{"expression":{"id":9310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9308,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"19445:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3332","id":9309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19452:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19445:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9311,"nodeType":"ExpressionStatement","src":"19445:9:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9314,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19486:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":9317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19493:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":9316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19498:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19493:7:44","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":9318,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19492:9:44","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"19486:15:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9329,"nodeType":"IfStatement","src":"19482:90:44","trueBody":{"id":9328,"nodeType":"Block","src":"19503:69:44","statements":[{"expression":{"id":9322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9320,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19521:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":9321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19528:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19521:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9323,"nodeType":"ExpressionStatement","src":"19521:9:44"},{"expression":{"id":9326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9324,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"19548:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3136","id":9325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19555:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"19548:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9327,"nodeType":"ExpressionStatement","src":"19548:9:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9330,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19589:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":9333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19596:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":9332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19601:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"19596:7:44","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":9334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19595:9:44","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"src":"19589:15:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9345,"nodeType":"IfStatement","src":"19585:89:44","trueBody":{"id":9344,"nodeType":"Block","src":"19606:68:44","statements":[{"expression":{"id":9338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9336,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19624:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":9337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19631:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"19624:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9339,"nodeType":"ExpressionStatement","src":"19624:9:44"},{"expression":{"id":9342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9340,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"19651:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"38","id":9341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19658:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19651:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9343,"nodeType":"ExpressionStatement","src":"19651:8:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9346,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19691:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":9349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19698:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":9348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19703:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19698:6:44","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":9350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19697:8:44","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"src":"19691:14:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9361,"nodeType":"IfStatement","src":"19687:87:44","trueBody":{"id":9360,"nodeType":"Block","src":"19707:67:44","statements":[{"expression":{"id":9354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9352,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19725:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":9353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19732:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19725:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9355,"nodeType":"ExpressionStatement","src":"19725:8:44"},{"expression":{"id":9358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9356,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"19751:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"34","id":9357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19758:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19751:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9359,"nodeType":"ExpressionStatement","src":"19751:8:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9362,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19791:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":9365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19798:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":9364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19803:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19798:6:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":9366,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19797:8:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"src":"19791:14:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9377,"nodeType":"IfStatement","src":"19787:87:44","trueBody":{"id":9376,"nodeType":"Block","src":"19807:67:44","statements":[{"expression":{"id":9370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9368,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19825:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":9369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19832:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19825:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9371,"nodeType":"ExpressionStatement","src":"19825:8:44"},{"expression":{"id":9374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9372,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"19851:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"32","id":9373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19858:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19851:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9375,"nodeType":"ExpressionStatement","src":"19851:8:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9378,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"19891:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":9381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19898:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":9380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19903:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19898:6:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":9382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19897:8:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"src":"19891:14:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9389,"nodeType":"IfStatement","src":"19887:61:44","trueBody":{"id":9388,"nodeType":"Block","src":"19907:41:44","statements":[{"expression":{"id":9386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9384,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"19925:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"31","id":9385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19932:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19925:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9387,"nodeType":"ExpressionStatement","src":"19925:8:44"}]}},{"expression":{"id":9397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9390,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"20368:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":9391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20374:1:44","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":9392,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"20378:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20374:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9394,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20373:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":9395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20385:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20373:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20368:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9398,"nodeType":"ExpressionStatement","src":"20368:18:44"},{"expression":{"id":9408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9399,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22273:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9400,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22279:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9401,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"22284:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9402,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22288:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22284:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22279:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22278:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":9406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22295:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22278:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22273:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9409,"nodeType":"ExpressionStatement","src":"22273:23:44"},{"expression":{"id":9419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9410,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22382:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9411,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22388:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9412,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"22393:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9413,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22397:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22393:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22388:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9416,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22387:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":9417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22404:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22387:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22382:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9420,"nodeType":"ExpressionStatement","src":"22382:23:44"},{"expression":{"id":9430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9421,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22493:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9422,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22499:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9423,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"22504:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9424,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22508:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22504:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22499:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9427,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22498:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":9428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22515:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22498:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22493:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9431,"nodeType":"ExpressionStatement","src":"22493:23:44"},{"expression":{"id":9441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9432,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22602:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9433,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22608:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9434,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"22613:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9435,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22617:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22613:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22608:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9438,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22607:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":9439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22624:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22607:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22602:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9442,"nodeType":"ExpressionStatement","src":"22602:23:44"},{"expression":{"id":9452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9443,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22712:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9444,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22718:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9445,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"22723:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9446,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22727:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22723:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22718:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9449,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22717:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":9450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22734:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22717:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22712:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9453,"nodeType":"ExpressionStatement","src":"22712:23:44"},{"expression":{"id":9463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9454,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22822:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9455,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22828:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9456,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"22833:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9457,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"22837:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22833:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22828:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22827:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":9461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22844:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22827:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22822:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9464,"nodeType":"ExpressionStatement","src":"22822:23:44"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9465,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"23211:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9468,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"23232:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9469,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"23237:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9470,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"23241:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23237:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23232:11:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9466,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"23216:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23225:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"23216:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23216:28:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23211:33:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9266,"id":9475,"nodeType":"Return","src":"23204:40:44"}]}]},"documentation":{"id":9260,"nodeType":"StructuredDocumentation","src":"17783:292:44","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations."},"id":9478,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"18089:4:44","nodeType":"FunctionDefinition","parameters":{"id":9263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9262,"mutability":"mutable","name":"a","nameLocation":"18102:1:44","nodeType":"VariableDeclaration","scope":9478,"src":"18094:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9261,"name":"uint256","nodeType":"ElementaryTypeName","src":"18094:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18093:11:44"},"returnParameters":{"id":9266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9478,"src":"18128:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9264,"name":"uint256","nodeType":"ElementaryTypeName","src":"18128:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18127:9:44"},"scope":10099,"src":"18080:5181:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9511,"nodeType":"Block","src":"23434:171:44","statements":[{"id":9510,"nodeType":"UncheckedBlock","src":"23444:155:44","statements":[{"assignments":[9490],"declarations":[{"constant":false,"id":9490,"mutability":"mutable","name":"result","nameLocation":"23476:6:44","nodeType":"VariableDeclaration","scope":9510,"src":"23468:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9489,"name":"uint256","nodeType":"ElementaryTypeName","src":"23468:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9494,"initialValue":{"arguments":[{"id":9492,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9481,"src":"23490:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9491,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[9478,9512],"referencedDeclaration":9478,"src":"23485:4:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":9493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23485:7:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23468:24:44"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9495,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"23513:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9499,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9484,"src":"23555:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}],"id":9498,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10098,"src":"23538:16:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$8505_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":9500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23538:26:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9501,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"23568:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":9502,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"23577:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23568:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9504,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9481,"src":"23586:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23568:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"23538:49:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9496,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"23522:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23531:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"23522:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23522:66:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23513:75:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9488,"id":9509,"nodeType":"Return","src":"23506:82:44"}]}]},"documentation":{"id":9479,"nodeType":"StructuredDocumentation","src":"23267:86:44","text":" @dev Calculates sqrt(a), following the selected rounding direction."},"id":9512,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"23367:4:44","nodeType":"FunctionDefinition","parameters":{"id":9485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9481,"mutability":"mutable","name":"a","nameLocation":"23380:1:44","nodeType":"VariableDeclaration","scope":9512,"src":"23372:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9480,"name":"uint256","nodeType":"ElementaryTypeName","src":"23372:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9484,"mutability":"mutable","name":"rounding","nameLocation":"23392:8:44","nodeType":"VariableDeclaration","scope":9512,"src":"23383:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"},"typeName":{"id":9483,"nodeType":"UserDefinedTypeName","pathNode":{"id":9482,"name":"Rounding","nameLocations":["23383:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"23383:8:44"},"referencedDeclaration":8505,"src":"23383:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"23371:30:44"},"returnParameters":{"id":9488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9512,"src":"23425:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9486,"name":"uint256","nodeType":"ElementaryTypeName","src":"23425:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23424:9:44"},"scope":10099,"src":"23358:247:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9707,"nodeType":"Block","src":"23796:981:44","statements":[{"assignments":[9521],"declarations":[{"constant":false,"id":9521,"mutability":"mutable","name":"result","nameLocation":"23814:6:44","nodeType":"VariableDeclaration","scope":9707,"src":"23806:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9520,"name":"uint256","nodeType":"ElementaryTypeName","src":"23806:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9523,"initialValue":{"hexValue":"30","id":9522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23823:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23806:18:44"},{"assignments":[9525],"declarations":[{"constant":false,"id":9525,"mutability":"mutable","name":"exp","nameLocation":"23842:3:44","nodeType":"VariableDeclaration","scope":9707,"src":"23834:11:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9524,"name":"uint256","nodeType":"ElementaryTypeName","src":"23834:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9526,"nodeType":"VariableDeclarationStatement","src":"23834:11:44"},{"id":9704,"nodeType":"UncheckedBlock","src":"23855:893:44","statements":[{"expression":{"id":9541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9527,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"23879:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313238","id":9528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23885:3:44","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9531,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"23907:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":9537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":9534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23916:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":9533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23921:3:44","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"23916:8:44","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":9535,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23915:10:44","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23928:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23915:14:44","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"23907:22:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9529,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"23891:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23900:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"23891:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23891:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23885:45:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23879:51:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9542,"nodeType":"ExpressionStatement","src":"23879:51:44"},{"expression":{"id":9545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9543,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"23944:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":9544,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"23954:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23944:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9546,"nodeType":"ExpressionStatement","src":"23944:13:44"},{"expression":{"id":9549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9547,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"23971:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9548,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"23981:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23971:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9550,"nodeType":"ExpressionStatement","src":"23971:13:44"},{"expression":{"id":9565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9551,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"23999:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3634","id":9552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24005:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9555,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24026:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":9561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":9558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24035:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":9557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24040:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24035:7:44","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":9559,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24034:9:44","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24046:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24034:13:44","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"24026:21:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9553,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"24010:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24019:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"24010:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24010:38:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24005:43:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23999:49:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9566,"nodeType":"ExpressionStatement","src":"23999:49:44"},{"expression":{"id":9569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9567,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24062:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":9568,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24072:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24062:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9570,"nodeType":"ExpressionStatement","src":"24062:13:44"},{"expression":{"id":9573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9571,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"24089:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9572,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24099:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24089:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9574,"nodeType":"ExpressionStatement","src":"24089:13:44"},{"expression":{"id":9589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9575,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24117:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":9576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24123:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9579,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24144:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":9585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":9582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24153:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":9581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24158:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24153:7:44","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":9583,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24152:9:44","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24164:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24152:13:44","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"24144:21:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9577,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"24128:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24137:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"24128:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24128:38:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24123:43:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24117:49:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9590,"nodeType":"ExpressionStatement","src":"24117:49:44"},{"expression":{"id":9593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9591,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24180:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":9592,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24190:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24180:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9594,"nodeType":"ExpressionStatement","src":"24180:13:44"},{"expression":{"id":9597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9595,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"24207:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9596,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24217:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24207:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9598,"nodeType":"ExpressionStatement","src":"24207:13:44"},{"expression":{"id":9613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9599,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24235:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3136","id":9600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24241:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9603,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24262:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":9609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":9606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24271:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":9605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24276:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"24271:7:44","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":9607,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24270:9:44","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24282:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24270:13:44","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"24262:21:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9601,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"24246:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24255:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"24246:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24246:38:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24241:43:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24235:49:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9614,"nodeType":"ExpressionStatement","src":"24235:49:44"},{"expression":{"id":9617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24298:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":9616,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24308:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24298:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9618,"nodeType":"ExpressionStatement","src":"24298:13:44"},{"expression":{"id":9621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9619,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"24325:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9620,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24335:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24325:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9622,"nodeType":"ExpressionStatement","src":"24325:13:44"},{"expression":{"id":9637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9623,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24353:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":9624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24359:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9627,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24379:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":9633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":9630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24388:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":9629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24393:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"24388:6:44","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":9631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24387:8:44","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24398:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24387:12:44","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"24379:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9625,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"24363:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24372:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"24363:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24363:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24359:41:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24353:47:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9638,"nodeType":"ExpressionStatement","src":"24353:47:44"},{"expression":{"id":9641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9639,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24414:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":9640,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24424:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24414:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9642,"nodeType":"ExpressionStatement","src":"24414:13:44"},{"expression":{"id":9645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9643,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"24441:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9644,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24451:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24441:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9646,"nodeType":"ExpressionStatement","src":"24441:13:44"},{"expression":{"id":9661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9647,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24469:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":9648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24475:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9651,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24495:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"id":9657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":9654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24504:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":9653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24509:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"24504:6:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":9655,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24503:8:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24514:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24503:12:44","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"}},"src":"24495:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9649,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"24479:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24488:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"24479:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24479:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24475:41:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24469:47:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9662,"nodeType":"ExpressionStatement","src":"24469:47:44"},{"expression":{"id":9665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9663,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24530:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":9664,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24540:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24530:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9666,"nodeType":"ExpressionStatement","src":"24530:13:44"},{"expression":{"id":9669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9667,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"24557:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9668,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24567:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24557:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9670,"nodeType":"ExpressionStatement","src":"24557:13:44"},{"expression":{"id":9685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9671,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24585:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":9672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24591:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9675,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24611:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"id":9681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":9678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24620:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":9677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24625:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"24620:6:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":9679,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24619:8:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24630:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24619:12:44","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}},"src":"24611:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9673,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"24595:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24604:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"24595:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24595:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24591:41:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24585:47:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9686,"nodeType":"ExpressionStatement","src":"24585:47:44"},{"expression":{"id":9689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9687,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24646:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":9688,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24656:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24646:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9690,"nodeType":"ExpressionStatement","src":"24646:13:44"},{"expression":{"id":9693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9691,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"24673:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9692,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9525,"src":"24683:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24673:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9694,"nodeType":"ExpressionStatement","src":"24673:13:44"},{"expression":{"id":9702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9695,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"24701:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9698,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"24727:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":9699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24735:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24727:9:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9696,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"24711:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24720:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"24711:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24711:26:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24701:36:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9703,"nodeType":"ExpressionStatement","src":"24701:36:44"}]},{"expression":{"id":9705,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9521,"src":"24764:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9519,"id":9706,"nodeType":"Return","src":"24757:13:44"}]},"documentation":{"id":9513,"nodeType":"StructuredDocumentation","src":"23611:119:44","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":9708,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"23744:4:44","nodeType":"FunctionDefinition","parameters":{"id":9516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9515,"mutability":"mutable","name":"value","nameLocation":"23757:5:44","nodeType":"VariableDeclaration","scope":9708,"src":"23749:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9514,"name":"uint256","nodeType":"ElementaryTypeName","src":"23749:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23748:15:44"},"returnParameters":{"id":9519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9708,"src":"23787:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9517,"name":"uint256","nodeType":"ElementaryTypeName","src":"23787:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23786:9:44"},"scope":10099,"src":"23735:1042:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9741,"nodeType":"Block","src":"25010:175:44","statements":[{"id":9740,"nodeType":"UncheckedBlock","src":"25020:159:44","statements":[{"assignments":[9720],"declarations":[{"constant":false,"id":9720,"mutability":"mutable","name":"result","nameLocation":"25052:6:44","nodeType":"VariableDeclaration","scope":9740,"src":"25044:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9719,"name":"uint256","nodeType":"ElementaryTypeName","src":"25044:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9724,"initialValue":{"arguments":[{"id":9722,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"25066:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9721,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[9708,9742],"referencedDeclaration":9708,"src":"25061:4:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":9723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25061:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25044:28:44"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9725,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9720,"src":"25093:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9729,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9714,"src":"25135:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}],"id":9728,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10098,"src":"25118:16:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$8505_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":9730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25118:26:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25148:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":9732,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9720,"src":"25153:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25148:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9734,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"25162:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25148:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25118:49:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9726,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"25102:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25111:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"25102:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25102:66:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25093:75:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9718,"id":9739,"nodeType":"Return","src":"25086:82:44"}]}]},"documentation":{"id":9709,"nodeType":"StructuredDocumentation","src":"24783:142:44","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":9742,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"24939:4:44","nodeType":"FunctionDefinition","parameters":{"id":9715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9711,"mutability":"mutable","name":"value","nameLocation":"24952:5:44","nodeType":"VariableDeclaration","scope":9742,"src":"24944:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9710,"name":"uint256","nodeType":"ElementaryTypeName","src":"24944:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9714,"mutability":"mutable","name":"rounding","nameLocation":"24968:8:44","nodeType":"VariableDeclaration","scope":9742,"src":"24959:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"},"typeName":{"id":9713,"nodeType":"UserDefinedTypeName","pathNode":{"id":9712,"name":"Rounding","nameLocations":["24959:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"24959:8:44"},"referencedDeclaration":8505,"src":"24959:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"24943:34:44"},"returnParameters":{"id":9718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9742,"src":"25001:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9716,"name":"uint256","nodeType":"ElementaryTypeName","src":"25001:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25000:9:44"},"scope":10099,"src":"24930:255:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9870,"nodeType":"Block","src":"25378:854:44","statements":[{"assignments":[9751],"declarations":[{"constant":false,"id":9751,"mutability":"mutable","name":"result","nameLocation":"25396:6:44","nodeType":"VariableDeclaration","scope":9870,"src":"25388:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9750,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9753,"initialValue":{"hexValue":"30","id":9752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25405:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25388:18:44"},{"id":9867,"nodeType":"UncheckedBlock","src":"25416:787:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9754,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25444:5:44","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":9757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25453:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":9756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25459:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"25453:8:44","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"25444:17:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9770,"nodeType":"IfStatement","src":"25440:103:44","trueBody":{"id":9769,"nodeType":"Block","src":"25463:80:44","statements":[{"expression":{"id":9763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9759,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25481:5:44","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":9762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25490:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":9761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25496:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"25490:8:44","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"25481:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9764,"nodeType":"ExpressionStatement","src":"25481:17:44"},{"expression":{"id":9767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9765,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"25516:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":9766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25526:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"25516:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9768,"nodeType":"ExpressionStatement","src":"25516:12:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25560:5:44","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":9774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25569:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":9773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25575:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"25569:8:44","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"25560:17:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9787,"nodeType":"IfStatement","src":"25556:103:44","trueBody":{"id":9786,"nodeType":"Block","src":"25579:80:44","statements":[{"expression":{"id":9780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9776,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25597:5:44","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":9779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25606:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":9778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25612:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"25606:8:44","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"25597:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9781,"nodeType":"ExpressionStatement","src":"25597:17:44"},{"expression":{"id":9784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9782,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"25632:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":9783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25642:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"25632:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9785,"nodeType":"ExpressionStatement","src":"25632:12:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9788,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25676:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":9791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25685:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":9790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25691:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25685:8:44","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25676:17:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9804,"nodeType":"IfStatement","src":"25672:103:44","trueBody":{"id":9803,"nodeType":"Block","src":"25695:80:44","statements":[{"expression":{"id":9797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9793,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25713:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":9796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25722:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":9795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25728:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25722:8:44","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25713:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9798,"nodeType":"ExpressionStatement","src":"25713:17:44"},{"expression":{"id":9801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9799,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"25748:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":9800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25758:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25748:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9802,"nodeType":"ExpressionStatement","src":"25748:12:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9805,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25792:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":9808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25801:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":9807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25807:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25801:7:44","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25792:16:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9821,"nodeType":"IfStatement","src":"25788:100:44","trueBody":{"id":9820,"nodeType":"Block","src":"25810:78:44","statements":[{"expression":{"id":9814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9810,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25828:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":9813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25837:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":9812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25843:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25837:7:44","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25828:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9815,"nodeType":"ExpressionStatement","src":"25828:16:44"},{"expression":{"id":9818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9816,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"25862:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":9817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25872:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25862:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9819,"nodeType":"ExpressionStatement","src":"25862:11:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9822,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25905:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":9825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25914:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":9824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25920:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25914:7:44","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25905:16:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9838,"nodeType":"IfStatement","src":"25901:100:44","trueBody":{"id":9837,"nodeType":"Block","src":"25923:78:44","statements":[{"expression":{"id":9831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"25941:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":9830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25950:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":9829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25956:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25950:7:44","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25941:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9832,"nodeType":"ExpressionStatement","src":"25941:16:44"},{"expression":{"id":9835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9833,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"25975:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":9834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25985:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25975:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9836,"nodeType":"ExpressionStatement","src":"25975:11:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"26018:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":9842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26027:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":9841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26033:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26027:7:44","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"26018:16:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9855,"nodeType":"IfStatement","src":"26014:100:44","trueBody":{"id":9854,"nodeType":"Block","src":"26036:78:44","statements":[{"expression":{"id":9848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9844,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"26054:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":9847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26063:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":9846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26069:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26063:7:44","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"26054:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9849,"nodeType":"ExpressionStatement","src":"26054:16:44"},{"expression":{"id":9852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9850,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"26088:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":9851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26098:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26088:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9853,"nodeType":"ExpressionStatement","src":"26088:11:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9856,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"26131:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":9859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26140:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":9858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26146:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26140:7:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"26131:16:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9866,"nodeType":"IfStatement","src":"26127:66:44","trueBody":{"id":9865,"nodeType":"Block","src":"26149:44:44","statements":[{"expression":{"id":9863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9861,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"26167:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":9862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26177:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26167:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9864,"nodeType":"ExpressionStatement","src":"26167:11:44"}]}}]},{"expression":{"id":9868,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"26219:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9749,"id":9869,"nodeType":"Return","src":"26212:13:44"}]},"documentation":{"id":9743,"nodeType":"StructuredDocumentation","src":"25191:120:44","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":9871,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"25325:5:44","nodeType":"FunctionDefinition","parameters":{"id":9746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9745,"mutability":"mutable","name":"value","nameLocation":"25339:5:44","nodeType":"VariableDeclaration","scope":9871,"src":"25331:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9744,"name":"uint256","nodeType":"ElementaryTypeName","src":"25331:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25330:15:44"},"returnParameters":{"id":9749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9871,"src":"25369:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9747,"name":"uint256","nodeType":"ElementaryTypeName","src":"25369:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25368:9:44"},"scope":10099,"src":"25316:916:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9904,"nodeType":"Block","src":"26467:177:44","statements":[{"id":9903,"nodeType":"UncheckedBlock","src":"26477:161:44","statements":[{"assignments":[9883],"declarations":[{"constant":false,"id":9883,"mutability":"mutable","name":"result","nameLocation":"26509:6:44","nodeType":"VariableDeclaration","scope":9903,"src":"26501:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9882,"name":"uint256","nodeType":"ElementaryTypeName","src":"26501:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9887,"initialValue":{"arguments":[{"id":9885,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9874,"src":"26524:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9884,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[9871,9905],"referencedDeclaration":9871,"src":"26518:5:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":9886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26518:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26501:29:44"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9888,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9883,"src":"26551:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9892,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"26593:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}],"id":9891,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10098,"src":"26576:16:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$8505_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":9893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26576:26:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26606:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":9895,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9883,"src":"26612:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26606:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9897,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9874,"src":"26621:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26606:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26576:50:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9889,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"26560:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26569:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"26560:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26560:67:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26551:76:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9881,"id":9902,"nodeType":"Return","src":"26544:83:44"}]}]},"documentation":{"id":9872,"nodeType":"StructuredDocumentation","src":"26238:143:44","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":9905,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"26395:5:44","nodeType":"FunctionDefinition","parameters":{"id":9878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9874,"mutability":"mutable","name":"value","nameLocation":"26409:5:44","nodeType":"VariableDeclaration","scope":9905,"src":"26401:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9873,"name":"uint256","nodeType":"ElementaryTypeName","src":"26401:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9877,"mutability":"mutable","name":"rounding","nameLocation":"26425:8:44","nodeType":"VariableDeclaration","scope":9905,"src":"26416:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"},"typeName":{"id":9876,"nodeType":"UserDefinedTypeName","pathNode":{"id":9875,"name":"Rounding","nameLocations":["26416:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"26416:8:44"},"referencedDeclaration":8505,"src":"26416:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"26400:34:44"},"returnParameters":{"id":9881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9905,"src":"26458:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9879,"name":"uint256","nodeType":"ElementaryTypeName","src":"26458:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26457:9:44"},"scope":10099,"src":"26386:258:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10041,"nodeType":"Block","src":"26964:674:44","statements":[{"assignments":[9914],"declarations":[{"constant":false,"id":9914,"mutability":"mutable","name":"result","nameLocation":"26982:6:44","nodeType":"VariableDeclaration","scope":10041,"src":"26974:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9913,"name":"uint256","nodeType":"ElementaryTypeName","src":"26974:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9916,"initialValue":{"hexValue":"30","id":9915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26991:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26974:18:44"},{"assignments":[9918],"declarations":[{"constant":false,"id":9918,"mutability":"mutable","name":"isGt","nameLocation":"27010:4:44","nodeType":"VariableDeclaration","scope":10041,"src":"27002:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9917,"name":"uint256","nodeType":"ElementaryTypeName","src":"27002:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9919,"nodeType":"VariableDeclarationStatement","src":"27002:12:44"},{"id":10038,"nodeType":"UncheckedBlock","src":"27024:585:44","statements":[{"expression":{"id":9932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9920,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27048:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9923,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"27071:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":9929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":9926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27080:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":9925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27085:3:44","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"27080:8:44","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":9927,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27079:10:44","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27092:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27079:14:44","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"27071:22:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9921,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"27055:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27064:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"27055:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27055:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27048:46:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9933,"nodeType":"ExpressionStatement","src":"27048:46:44"},{"expression":{"id":9938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"27108:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9935,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27118:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"313238","id":9936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27125:3:44","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"27118:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27108:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9939,"nodeType":"ExpressionStatement","src":"27108:20:44"},{"expression":{"id":9944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9940,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"27142:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9941,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27152:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":9942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27159:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"27152:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27142:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9945,"nodeType":"ExpressionStatement","src":"27142:19:44"},{"expression":{"id":9958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9946,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27176:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9949,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"27199:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":9955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":9952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27208:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":9951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27213:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"27208:7:44","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":9953,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27207:9:44","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27219:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27207:13:44","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"27199:21:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9947,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"27183:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27192:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"27183:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27183:38:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27176:45:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9959,"nodeType":"ExpressionStatement","src":"27176:45:44"},{"expression":{"id":9964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9960,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"27235:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9961,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27245:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3634","id":9962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27252:2:44","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"27245:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27235:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9965,"nodeType":"ExpressionStatement","src":"27235:19:44"},{"expression":{"id":9970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9966,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"27268:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9967,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27278:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":9968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27285:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"27278:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27268:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9971,"nodeType":"ExpressionStatement","src":"27268:18:44"},{"expression":{"id":9984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9972,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27301:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9975,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"27324:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":9981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":9978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27333:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":9977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27338:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"27333:7:44","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":9979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27332:9:44","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27344:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27332:13:44","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"27324:21:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9973,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"27308:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":9974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27317:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"27308:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":9983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27308:38:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27301:45:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9985,"nodeType":"ExpressionStatement","src":"27301:45:44"},{"expression":{"id":9990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9986,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"27360:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9987,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27370:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":9988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27377:2:44","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"27370:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27360:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9991,"nodeType":"ExpressionStatement","src":"27360:19:44"},{"expression":{"id":9996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9992,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"27393:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9993,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27403:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"34","id":9994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27410:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"27403:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27393:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9997,"nodeType":"ExpressionStatement","src":"27393:18:44"},{"expression":{"id":10010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9998,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27426:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10001,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"27449:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":10007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":10004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":10002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27458:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":10003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"27458:7:44","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":10005,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27457:9:44","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27469:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27457:13:44","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"27449:21:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9999,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"27433:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":10000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27442:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"27433:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":10009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27433:38:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27426:45:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10011,"nodeType":"ExpressionStatement","src":"27426:45:44"},{"expression":{"id":10016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10012,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"27485:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10013,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27495:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":10014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27502:2:44","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"27495:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27485:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10017,"nodeType":"ExpressionStatement","src":"27485:19:44"},{"expression":{"id":10022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10018,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"27518:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10019,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"27528:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":10020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27535:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"27528:8:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27518:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10023,"nodeType":"ExpressionStatement","src":"27518:18:44"},{"expression":{"id":10036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10024,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"27551:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9908,"src":"27577:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":10033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":10030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":10028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27586:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":10029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27591:1:44","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"27586:6:44","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":10031,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27585:8:44","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27596:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27585:12:44","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"27577:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10025,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"27561:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27570:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"27561:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":10035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27561:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27551:47:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10037,"nodeType":"ExpressionStatement","src":"27551:47:44"}]},{"expression":{"id":10039,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"27625:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9912,"id":10040,"nodeType":"Return","src":"27618:13:44"}]},"documentation":{"id":9906,"nodeType":"StructuredDocumentation","src":"26650:246:44","text":" @dev Return the log in base 256 of a positive value rounded towards zero.\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":10042,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"26910:6:44","nodeType":"FunctionDefinition","parameters":{"id":9909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9908,"mutability":"mutable","name":"value","nameLocation":"26925:5:44","nodeType":"VariableDeclaration","scope":10042,"src":"26917:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9907,"name":"uint256","nodeType":"ElementaryTypeName","src":"26917:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26916:15:44"},"returnParameters":{"id":9912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10042,"src":"26955:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9910,"name":"uint256","nodeType":"ElementaryTypeName","src":"26955:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26954:9:44"},"scope":10099,"src":"26901:737:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10078,"nodeType":"Block","src":"27875:184:44","statements":[{"id":10077,"nodeType":"UncheckedBlock","src":"27885:168:44","statements":[{"assignments":[10054],"declarations":[{"constant":false,"id":10054,"mutability":"mutable","name":"result","nameLocation":"27917:6:44","nodeType":"VariableDeclaration","scope":10077,"src":"27909:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10053,"name":"uint256","nodeType":"ElementaryTypeName","src":"27909:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10058,"initialValue":{"arguments":[{"id":10056,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10045,"src":"27933:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10055,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[10042,10079],"referencedDeclaration":10042,"src":"27926:6:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":10057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27926:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27909:30:44"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10059,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"27960:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10063,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10048,"src":"28002:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}],"id":10062,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10098,"src":"27985:16:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$8505_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":10064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27985:26:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":10065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28015:1:44","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":10068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10066,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"28021:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":10067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28031:1:44","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"28021:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10069,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28020:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28015:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10071,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10045,"src":"28036:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28015:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27985:56:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10060,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"27969:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":10061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27978:6:44","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"27969:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":10074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27969:73:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27960:82:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10052,"id":10076,"nodeType":"Return","src":"27953:89:44"}]}]},"documentation":{"id":10043,"nodeType":"StructuredDocumentation","src":"27644:144:44","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":10079,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"27802:6:44","nodeType":"FunctionDefinition","parameters":{"id":10049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10045,"mutability":"mutable","name":"value","nameLocation":"27817:5:44","nodeType":"VariableDeclaration","scope":10079,"src":"27809:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10044,"name":"uint256","nodeType":"ElementaryTypeName","src":"27809:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10048,"mutability":"mutable","name":"rounding","nameLocation":"27833:8:44","nodeType":"VariableDeclaration","scope":10079,"src":"27824:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"},"typeName":{"id":10047,"nodeType":"UserDefinedTypeName","pathNode":{"id":10046,"name":"Rounding","nameLocations":["27824:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"27824:8:44"},"referencedDeclaration":8505,"src":"27824:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"27808:34:44"},"returnParameters":{"id":10052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10079,"src":"27866:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10050,"name":"uint256","nodeType":"ElementaryTypeName","src":"27866:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27865:9:44"},"scope":10099,"src":"27793:266:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10097,"nodeType":"Block","src":"28257:48:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":10095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":10093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10090,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10083,"src":"28280:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}],"id":10089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28274:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":10088,"name":"uint8","nodeType":"ElementaryTypeName","src":"28274:5:44","typeDescriptions":{}}},"id":10091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28274:15:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":10092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28292:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"28274:19:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":10094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28297:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28274:24:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10087,"id":10096,"nodeType":"Return","src":"28267:31:44"}]},"documentation":{"id":10080,"nodeType":"StructuredDocumentation","src":"28065:113:44","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":10098,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"28192:16:44","nodeType":"FunctionDefinition","parameters":{"id":10084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10083,"mutability":"mutable","name":"rounding","nameLocation":"28218:8:44","nodeType":"VariableDeclaration","scope":10098,"src":"28209:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"},"typeName":{"id":10082,"nodeType":"UserDefinedTypeName","pathNode":{"id":10081,"name":"Rounding","nameLocations":["28209:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":8505,"src":"28209:8:44"},"referencedDeclaration":8505,"src":"28209:8:44","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8505","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"28208:19:44"},"returnParameters":{"id":10087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10098,"src":"28251:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10085,"name":"bool","nodeType":"ElementaryTypeName","src":"28251:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28250:6:44"},"scope":10099,"src":"28183:122:44","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10100,"src":"281:28026:44","usedErrors":[],"usedEvents":[]}],"src":"103:28205:44"},"id":44},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[11864]},"id":11865,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10101,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"192:24:45"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":10102,"nodeType":"StructuredDocumentation","src":"218:550:45","text":" @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."},"fullyImplemented":true,"id":11864,"linearizedBaseContracts":[11864],"name":"SafeCast","nameLocation":"777:8:45","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10103,"nodeType":"StructuredDocumentation","src":"792:68:45","text":" @dev Value doesn't fit in an uint of `bits` size."},"errorSelector":"6dfcc650","id":10109,"name":"SafeCastOverflowedUintDowncast","nameLocation":"871:30:45","nodeType":"ErrorDefinition","parameters":{"id":10108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10105,"mutability":"mutable","name":"bits","nameLocation":"908:4:45","nodeType":"VariableDeclaration","scope":10109,"src":"902:10:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10104,"name":"uint8","nodeType":"ElementaryTypeName","src":"902:5:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":10107,"mutability":"mutable","name":"value","nameLocation":"922:5:45","nodeType":"VariableDeclaration","scope":10109,"src":"914:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10106,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"901:27:45"},"src":"865:64:45"},{"documentation":{"id":10110,"nodeType":"StructuredDocumentation","src":"935:75:45","text":" @dev An int value doesn't fit in an uint of `bits` size."},"errorSelector":"a8ce4432","id":10114,"name":"SafeCastOverflowedIntToUint","nameLocation":"1021:27:45","nodeType":"ErrorDefinition","parameters":{"id":10113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10112,"mutability":"mutable","name":"value","nameLocation":"1056:5:45","nodeType":"VariableDeclaration","scope":10114,"src":"1049:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10111,"name":"int256","nodeType":"ElementaryTypeName","src":"1049:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1048:14:45"},"src":"1015:48:45"},{"documentation":{"id":10115,"nodeType":"StructuredDocumentation","src":"1069:67:45","text":" @dev Value doesn't fit in an int of `bits` size."},"errorSelector":"327269a7","id":10121,"name":"SafeCastOverflowedIntDowncast","nameLocation":"1147:29:45","nodeType":"ErrorDefinition","parameters":{"id":10120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10117,"mutability":"mutable","name":"bits","nameLocation":"1183:4:45","nodeType":"VariableDeclaration","scope":10121,"src":"1177:10:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10116,"name":"uint8","nodeType":"ElementaryTypeName","src":"1177:5:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":10119,"mutability":"mutable","name":"value","nameLocation":"1196:5:45","nodeType":"VariableDeclaration","scope":10121,"src":"1189:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10118,"name":"int256","nodeType":"ElementaryTypeName","src":"1189:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1176:26:45"},"src":"1141:62:45"},{"documentation":{"id":10122,"nodeType":"StructuredDocumentation","src":"1209:75:45","text":" @dev An uint value doesn't fit in an int of `bits` size."},"errorSelector":"24775e06","id":10126,"name":"SafeCastOverflowedUintToInt","nameLocation":"1295:27:45","nodeType":"ErrorDefinition","parameters":{"id":10125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10124,"mutability":"mutable","name":"value","nameLocation":"1331:5:45","nodeType":"VariableDeclaration","scope":10126,"src":"1323:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1322:15:45"},"src":"1289:49:45"},{"body":{"id":10153,"nodeType":"Block","src":"1695:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10129,"src":"1709:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1722:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":10136,"name":"uint248","nodeType":"ElementaryTypeName","src":"1722:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":10135,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1717:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1717:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":10139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1731:3:45","memberName":"max","nodeType":"MemberAccess","src":"1717:17:45","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1709:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10147,"nodeType":"IfStatement","src":"1705:105:45","trueBody":{"id":10146,"nodeType":"Block","src":"1736:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":10142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1788:3:45","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":10143,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10129,"src":"1793:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10141,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"1757:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10145,"nodeType":"RevertStatement","src":"1750:49:45"}]}},{"expression":{"arguments":[{"id":10150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10129,"src":"1834:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1826:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":10148,"name":"uint248","nodeType":"ElementaryTypeName","src":"1826:7:45","typeDescriptions":{}}},"id":10151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":10133,"id":10152,"nodeType":"Return","src":"1819:21:45"}]},"documentation":{"id":10127,"nodeType":"StructuredDocumentation","src":"1344:280:45","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":10154,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1638:9:45","nodeType":"FunctionDefinition","parameters":{"id":10130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10129,"mutability":"mutable","name":"value","nameLocation":"1656:5:45","nodeType":"VariableDeclaration","scope":10154,"src":"1648:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1647:15:45"},"returnParameters":{"id":10133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10154,"src":"1686:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":10131,"name":"uint248","nodeType":"ElementaryTypeName","src":"1686:7:45","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1685:9:45"},"scope":11864,"src":"1629:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10181,"nodeType":"Block","src":"2204:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10162,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"2218:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2231:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":10164,"name":"uint240","nodeType":"ElementaryTypeName","src":"2231:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":10163,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2226:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2226:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":10167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2240:3:45","memberName":"max","nodeType":"MemberAccess","src":"2226:17:45","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"2218:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10175,"nodeType":"IfStatement","src":"2214:105:45","trueBody":{"id":10174,"nodeType":"Block","src":"2245:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":10170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2297:3:45","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":10171,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"2302:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10169,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"2266:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2266:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10173,"nodeType":"RevertStatement","src":"2259:49:45"}]}},{"expression":{"arguments":[{"id":10178,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"2343:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2335:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":10176,"name":"uint240","nodeType":"ElementaryTypeName","src":"2335:7:45","typeDescriptions":{}}},"id":10179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":10161,"id":10180,"nodeType":"Return","src":"2328:21:45"}]},"documentation":{"id":10155,"nodeType":"StructuredDocumentation","src":"1853:280:45","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":10182,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"2147:9:45","nodeType":"FunctionDefinition","parameters":{"id":10158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10157,"mutability":"mutable","name":"value","nameLocation":"2165:5:45","nodeType":"VariableDeclaration","scope":10182,"src":"2157:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2157:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2156:15:45"},"returnParameters":{"id":10161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10182,"src":"2195:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":10159,"name":"uint240","nodeType":"ElementaryTypeName","src":"2195:7:45","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"2194:9:45"},"scope":11864,"src":"2138:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10209,"nodeType":"Block","src":"2713:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10190,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10185,"src":"2727:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2740:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":10192,"name":"uint232","nodeType":"ElementaryTypeName","src":"2740:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":10191,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2735:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":10195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2749:3:45","memberName":"max","nodeType":"MemberAccess","src":"2735:17:45","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2727:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10203,"nodeType":"IfStatement","src":"2723:105:45","trueBody":{"id":10202,"nodeType":"Block","src":"2754:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":10198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:3:45","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":10199,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10185,"src":"2811:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10197,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"2775:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10201,"nodeType":"RevertStatement","src":"2768:49:45"}]}},{"expression":{"arguments":[{"id":10206,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10185,"src":"2852:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2844:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":10204,"name":"uint232","nodeType":"ElementaryTypeName","src":"2844:7:45","typeDescriptions":{}}},"id":10207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2844:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":10189,"id":10208,"nodeType":"Return","src":"2837:21:45"}]},"documentation":{"id":10183,"nodeType":"StructuredDocumentation","src":"2362:280:45","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":10210,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2656:9:45","nodeType":"FunctionDefinition","parameters":{"id":10186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10185,"mutability":"mutable","name":"value","nameLocation":"2674:5:45","nodeType":"VariableDeclaration","scope":10210,"src":"2666:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10184,"name":"uint256","nodeType":"ElementaryTypeName","src":"2666:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:15:45"},"returnParameters":{"id":10189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10188,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10210,"src":"2704:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":10187,"name":"uint232","nodeType":"ElementaryTypeName","src":"2704:7:45","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2703:9:45"},"scope":11864,"src":"2647:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10237,"nodeType":"Block","src":"3222:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10218,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10213,"src":"3236:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3249:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":10220,"name":"uint224","nodeType":"ElementaryTypeName","src":"3249:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":10219,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3244:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3244:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":10223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3258:3:45","memberName":"max","nodeType":"MemberAccess","src":"3244:17:45","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3236:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10231,"nodeType":"IfStatement","src":"3232:105:45","trueBody":{"id":10230,"nodeType":"Block","src":"3263:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":10226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3315:3:45","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":10227,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10213,"src":"3320:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10225,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"3284:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3284:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10229,"nodeType":"RevertStatement","src":"3277:49:45"}]}},{"expression":{"arguments":[{"id":10234,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10213,"src":"3361:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3353:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":10232,"name":"uint224","nodeType":"ElementaryTypeName","src":"3353:7:45","typeDescriptions":{}}},"id":10235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3353:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":10217,"id":10236,"nodeType":"Return","src":"3346:21:45"}]},"documentation":{"id":10211,"nodeType":"StructuredDocumentation","src":"2871:280:45","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":10238,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"3165:9:45","nodeType":"FunctionDefinition","parameters":{"id":10214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10213,"mutability":"mutable","name":"value","nameLocation":"3183:5:45","nodeType":"VariableDeclaration","scope":10238,"src":"3175:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10212,"name":"uint256","nodeType":"ElementaryTypeName","src":"3175:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3174:15:45"},"returnParameters":{"id":10217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10238,"src":"3213:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":10215,"name":"uint224","nodeType":"ElementaryTypeName","src":"3213:7:45","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"3212:9:45"},"scope":11864,"src":"3156:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10265,"nodeType":"Block","src":"3731:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10246,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10241,"src":"3745:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3758:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":10248,"name":"uint216","nodeType":"ElementaryTypeName","src":"3758:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":10247,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3753:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3753:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":10251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3767:3:45","memberName":"max","nodeType":"MemberAccess","src":"3753:17:45","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3745:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10259,"nodeType":"IfStatement","src":"3741:105:45","trueBody":{"id":10258,"nodeType":"Block","src":"3772:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":10254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3824:3:45","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":10255,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10241,"src":"3829:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10253,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"3793:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10257,"nodeType":"RevertStatement","src":"3786:49:45"}]}},{"expression":{"arguments":[{"id":10262,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10241,"src":"3870:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3862:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":10260,"name":"uint216","nodeType":"ElementaryTypeName","src":"3862:7:45","typeDescriptions":{}}},"id":10263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":10245,"id":10264,"nodeType":"Return","src":"3855:21:45"}]},"documentation":{"id":10239,"nodeType":"StructuredDocumentation","src":"3380:280:45","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":10266,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3674:9:45","nodeType":"FunctionDefinition","parameters":{"id":10242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10241,"mutability":"mutable","name":"value","nameLocation":"3692:5:45","nodeType":"VariableDeclaration","scope":10266,"src":"3684:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10240,"name":"uint256","nodeType":"ElementaryTypeName","src":"3684:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3683:15:45"},"returnParameters":{"id":10245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10266,"src":"3722:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":10243,"name":"uint216","nodeType":"ElementaryTypeName","src":"3722:7:45","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3721:9:45"},"scope":11864,"src":"3665:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10293,"nodeType":"Block","src":"4240:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10274,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10269,"src":"4254:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4267:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":10276,"name":"uint208","nodeType":"ElementaryTypeName","src":"4267:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":10275,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4262:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4262:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":10279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4276:3:45","memberName":"max","nodeType":"MemberAccess","src":"4262:17:45","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"4254:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10287,"nodeType":"IfStatement","src":"4250:105:45","trueBody":{"id":10286,"nodeType":"Block","src":"4281:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":10282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4333:3:45","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":10283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10269,"src":"4338:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10281,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"4302:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4302:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10285,"nodeType":"RevertStatement","src":"4295:49:45"}]}},{"expression":{"arguments":[{"id":10290,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10269,"src":"4379:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4371:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":10288,"name":"uint208","nodeType":"ElementaryTypeName","src":"4371:7:45","typeDescriptions":{}}},"id":10291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4371:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":10273,"id":10292,"nodeType":"Return","src":"4364:21:45"}]},"documentation":{"id":10267,"nodeType":"StructuredDocumentation","src":"3889:280:45","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":10294,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"4183:9:45","nodeType":"FunctionDefinition","parameters":{"id":10270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10269,"mutability":"mutable","name":"value","nameLocation":"4201:5:45","nodeType":"VariableDeclaration","scope":10294,"src":"4193:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10268,"name":"uint256","nodeType":"ElementaryTypeName","src":"4193:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4192:15:45"},"returnParameters":{"id":10273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10294,"src":"4231:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":10271,"name":"uint208","nodeType":"ElementaryTypeName","src":"4231:7:45","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"4230:9:45"},"scope":11864,"src":"4174:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10321,"nodeType":"Block","src":"4749:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"4763:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4776:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":10304,"name":"uint200","nodeType":"ElementaryTypeName","src":"4776:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":10303,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4771:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":10307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4785:3:45","memberName":"max","nodeType":"MemberAccess","src":"4771:17:45","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4763:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10315,"nodeType":"IfStatement","src":"4759:105:45","trueBody":{"id":10314,"nodeType":"Block","src":"4790:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":10310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4842:3:45","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":10311,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"4847:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10309,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"4811:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10313,"nodeType":"RevertStatement","src":"4804:49:45"}]}},{"expression":{"arguments":[{"id":10318,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"4888:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4880:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":10316,"name":"uint200","nodeType":"ElementaryTypeName","src":"4880:7:45","typeDescriptions":{}}},"id":10319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":10301,"id":10320,"nodeType":"Return","src":"4873:21:45"}]},"documentation":{"id":10295,"nodeType":"StructuredDocumentation","src":"4398:280:45","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":10322,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4692:9:45","nodeType":"FunctionDefinition","parameters":{"id":10298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10297,"mutability":"mutable","name":"value","nameLocation":"4710:5:45","nodeType":"VariableDeclaration","scope":10322,"src":"4702:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10296,"name":"uint256","nodeType":"ElementaryTypeName","src":"4702:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4701:15:45"},"returnParameters":{"id":10301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10322,"src":"4740:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":10299,"name":"uint200","nodeType":"ElementaryTypeName","src":"4740:7:45","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4739:9:45"},"scope":11864,"src":"4683:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10349,"nodeType":"Block","src":"5258:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10325,"src":"5272:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5285:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":10332,"name":"uint192","nodeType":"ElementaryTypeName","src":"5285:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":10331,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5280:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5280:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":10335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5294:3:45","memberName":"max","nodeType":"MemberAccess","src":"5280:17:45","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5272:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10343,"nodeType":"IfStatement","src":"5268:105:45","trueBody":{"id":10342,"nodeType":"Block","src":"5299:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":10338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5351:3:45","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":10339,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10325,"src":"5356:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10337,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"5320:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10341,"nodeType":"RevertStatement","src":"5313:49:45"}]}},{"expression":{"arguments":[{"id":10346,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10325,"src":"5397:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":10344,"name":"uint192","nodeType":"ElementaryTypeName","src":"5389:7:45","typeDescriptions":{}}},"id":10347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":10329,"id":10348,"nodeType":"Return","src":"5382:21:45"}]},"documentation":{"id":10323,"nodeType":"StructuredDocumentation","src":"4907:280:45","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":10350,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"5201:9:45","nodeType":"FunctionDefinition","parameters":{"id":10326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10325,"mutability":"mutable","name":"value","nameLocation":"5219:5:45","nodeType":"VariableDeclaration","scope":10350,"src":"5211:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10324,"name":"uint256","nodeType":"ElementaryTypeName","src":"5211:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5210:15:45"},"returnParameters":{"id":10329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10350,"src":"5249:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":10327,"name":"uint192","nodeType":"ElementaryTypeName","src":"5249:7:45","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"5248:9:45"},"scope":11864,"src":"5192:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10377,"nodeType":"Block","src":"5767:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"5781:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5794:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":10360,"name":"uint184","nodeType":"ElementaryTypeName","src":"5794:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":10359,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5789:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5789:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":10363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5803:3:45","memberName":"max","nodeType":"MemberAccess","src":"5789:17:45","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5781:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10371,"nodeType":"IfStatement","src":"5777:105:45","trueBody":{"id":10370,"nodeType":"Block","src":"5808:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":10366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5860:3:45","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":10367,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"5865:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10365,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"5829:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10369,"nodeType":"RevertStatement","src":"5822:49:45"}]}},{"expression":{"arguments":[{"id":10374,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"5906:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5898:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":10372,"name":"uint184","nodeType":"ElementaryTypeName","src":"5898:7:45","typeDescriptions":{}}},"id":10375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5898:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":10357,"id":10376,"nodeType":"Return","src":"5891:21:45"}]},"documentation":{"id":10351,"nodeType":"StructuredDocumentation","src":"5416:280:45","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":10378,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5710:9:45","nodeType":"FunctionDefinition","parameters":{"id":10354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10353,"mutability":"mutable","name":"value","nameLocation":"5728:5:45","nodeType":"VariableDeclaration","scope":10378,"src":"5720:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10352,"name":"uint256","nodeType":"ElementaryTypeName","src":"5720:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5719:15:45"},"returnParameters":{"id":10357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10378,"src":"5758:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":10355,"name":"uint184","nodeType":"ElementaryTypeName","src":"5758:7:45","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5757:9:45"},"scope":11864,"src":"5701:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10405,"nodeType":"Block","src":"6276:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10386,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"6290:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6303:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":10388,"name":"uint176","nodeType":"ElementaryTypeName","src":"6303:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":10387,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6298:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":10391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6312:3:45","memberName":"max","nodeType":"MemberAccess","src":"6298:17:45","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6290:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10399,"nodeType":"IfStatement","src":"6286:105:45","trueBody":{"id":10398,"nodeType":"Block","src":"6317:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":10394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:3:45","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":10395,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"6374:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10393,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"6338:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10397,"nodeType":"RevertStatement","src":"6331:49:45"}]}},{"expression":{"arguments":[{"id":10402,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"6415:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6407:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":10400,"name":"uint176","nodeType":"ElementaryTypeName","src":"6407:7:45","typeDescriptions":{}}},"id":10403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6407:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":10385,"id":10404,"nodeType":"Return","src":"6400:21:45"}]},"documentation":{"id":10379,"nodeType":"StructuredDocumentation","src":"5925:280:45","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":10406,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"6219:9:45","nodeType":"FunctionDefinition","parameters":{"id":10382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10381,"mutability":"mutable","name":"value","nameLocation":"6237:5:45","nodeType":"VariableDeclaration","scope":10406,"src":"6229:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10380,"name":"uint256","nodeType":"ElementaryTypeName","src":"6229:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6228:15:45"},"returnParameters":{"id":10385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10406,"src":"6267:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":10383,"name":"uint176","nodeType":"ElementaryTypeName","src":"6267:7:45","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6266:9:45"},"scope":11864,"src":"6210:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10433,"nodeType":"Block","src":"6785:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10414,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10409,"src":"6799:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6812:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":10416,"name":"uint168","nodeType":"ElementaryTypeName","src":"6812:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":10415,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6807:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6807:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":10419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6821:3:45","memberName":"max","nodeType":"MemberAccess","src":"6807:17:45","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6799:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10427,"nodeType":"IfStatement","src":"6795:105:45","trueBody":{"id":10426,"nodeType":"Block","src":"6826:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":10422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6878:3:45","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":10423,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10409,"src":"6883:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10421,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"6847:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6847:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10425,"nodeType":"RevertStatement","src":"6840:49:45"}]}},{"expression":{"arguments":[{"id":10430,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10409,"src":"6924:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6916:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":10428,"name":"uint168","nodeType":"ElementaryTypeName","src":"6916:7:45","typeDescriptions":{}}},"id":10431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6916:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":10413,"id":10432,"nodeType":"Return","src":"6909:21:45"}]},"documentation":{"id":10407,"nodeType":"StructuredDocumentation","src":"6434:280:45","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":10434,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6728:9:45","nodeType":"FunctionDefinition","parameters":{"id":10410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10409,"mutability":"mutable","name":"value","nameLocation":"6746:5:45","nodeType":"VariableDeclaration","scope":10434,"src":"6738:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10408,"name":"uint256","nodeType":"ElementaryTypeName","src":"6738:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6737:15:45"},"returnParameters":{"id":10413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10434,"src":"6776:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":10411,"name":"uint168","nodeType":"ElementaryTypeName","src":"6776:7:45","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6775:9:45"},"scope":11864,"src":"6719:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10461,"nodeType":"Block","src":"7294:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10442,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10437,"src":"7308:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7321:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10444,"name":"uint160","nodeType":"ElementaryTypeName","src":"7321:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":10443,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7316:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7316:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":10447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7330:3:45","memberName":"max","nodeType":"MemberAccess","src":"7316:17:45","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7308:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10455,"nodeType":"IfStatement","src":"7304:105:45","trueBody":{"id":10454,"nodeType":"Block","src":"7335:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":10450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7387:3:45","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":10451,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10437,"src":"7392:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10449,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"7356:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10453,"nodeType":"RevertStatement","src":"7349:49:45"}]}},{"expression":{"arguments":[{"id":10458,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10437,"src":"7433:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7425:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10456,"name":"uint160","nodeType":"ElementaryTypeName","src":"7425:7:45","typeDescriptions":{}}},"id":10459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7425:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":10441,"id":10460,"nodeType":"Return","src":"7418:21:45"}]},"documentation":{"id":10435,"nodeType":"StructuredDocumentation","src":"6943:280:45","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":10462,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7237:9:45","nodeType":"FunctionDefinition","parameters":{"id":10438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10437,"mutability":"mutable","name":"value","nameLocation":"7255:5:45","nodeType":"VariableDeclaration","scope":10462,"src":"7247:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10436,"name":"uint256","nodeType":"ElementaryTypeName","src":"7247:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7246:15:45"},"returnParameters":{"id":10441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10462,"src":"7285:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":10439,"name":"uint160","nodeType":"ElementaryTypeName","src":"7285:7:45","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7284:9:45"},"scope":11864,"src":"7228:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10489,"nodeType":"Block","src":"7803:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10465,"src":"7817:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7830:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":10472,"name":"uint152","nodeType":"ElementaryTypeName","src":"7830:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":10471,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7825:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":10475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7839:3:45","memberName":"max","nodeType":"MemberAccess","src":"7825:17:45","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7817:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10483,"nodeType":"IfStatement","src":"7813:105:45","trueBody":{"id":10482,"nodeType":"Block","src":"7844:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":10478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:3:45","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":10479,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10465,"src":"7901:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10477,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"7865:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7865:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10481,"nodeType":"RevertStatement","src":"7858:49:45"}]}},{"expression":{"arguments":[{"id":10486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10465,"src":"7942:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7934:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":10484,"name":"uint152","nodeType":"ElementaryTypeName","src":"7934:7:45","typeDescriptions":{}}},"id":10487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7934:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":10469,"id":10488,"nodeType":"Return","src":"7927:21:45"}]},"documentation":{"id":10463,"nodeType":"StructuredDocumentation","src":"7452:280:45","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":10490,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7746:9:45","nodeType":"FunctionDefinition","parameters":{"id":10466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10465,"mutability":"mutable","name":"value","nameLocation":"7764:5:45","nodeType":"VariableDeclaration","scope":10490,"src":"7756:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10464,"name":"uint256","nodeType":"ElementaryTypeName","src":"7756:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7755:15:45"},"returnParameters":{"id":10469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10490,"src":"7794:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":10467,"name":"uint152","nodeType":"ElementaryTypeName","src":"7794:7:45","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7793:9:45"},"scope":11864,"src":"7737:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10517,"nodeType":"Block","src":"8312:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10498,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10493,"src":"8326:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8339:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":10500,"name":"uint144","nodeType":"ElementaryTypeName","src":"8339:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":10499,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8334:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8334:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":10503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8348:3:45","memberName":"max","nodeType":"MemberAccess","src":"8334:17:45","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8326:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10511,"nodeType":"IfStatement","src":"8322:105:45","trueBody":{"id":10510,"nodeType":"Block","src":"8353:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":10506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8405:3:45","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":10507,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10493,"src":"8410:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10505,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8374:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8374:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10509,"nodeType":"RevertStatement","src":"8367:49:45"}]}},{"expression":{"arguments":[{"id":10514,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10493,"src":"8451:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8443:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":10512,"name":"uint144","nodeType":"ElementaryTypeName","src":"8443:7:45","typeDescriptions":{}}},"id":10515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8443:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":10497,"id":10516,"nodeType":"Return","src":"8436:21:45"}]},"documentation":{"id":10491,"nodeType":"StructuredDocumentation","src":"7961:280:45","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":10518,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8255:9:45","nodeType":"FunctionDefinition","parameters":{"id":10494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10493,"mutability":"mutable","name":"value","nameLocation":"8273:5:45","nodeType":"VariableDeclaration","scope":10518,"src":"8265:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10492,"name":"uint256","nodeType":"ElementaryTypeName","src":"8265:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8264:15:45"},"returnParameters":{"id":10497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10518,"src":"8303:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":10495,"name":"uint144","nodeType":"ElementaryTypeName","src":"8303:7:45","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8302:9:45"},"scope":11864,"src":"8246:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10545,"nodeType":"Block","src":"8821:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10526,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10521,"src":"8835:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8848:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":10528,"name":"uint136","nodeType":"ElementaryTypeName","src":"8848:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":10527,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8843:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8843:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":10531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8857:3:45","memberName":"max","nodeType":"MemberAccess","src":"8843:17:45","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8835:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10539,"nodeType":"IfStatement","src":"8831:105:45","trueBody":{"id":10538,"nodeType":"Block","src":"8862:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":10534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8914:3:45","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":10535,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10521,"src":"8919:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10533,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"8883:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10537,"nodeType":"RevertStatement","src":"8876:49:45"}]}},{"expression":{"arguments":[{"id":10542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10521,"src":"8960:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8952:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":10540,"name":"uint136","nodeType":"ElementaryTypeName","src":"8952:7:45","typeDescriptions":{}}},"id":10543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":10525,"id":10544,"nodeType":"Return","src":"8945:21:45"}]},"documentation":{"id":10519,"nodeType":"StructuredDocumentation","src":"8470:280:45","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":10546,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8764:9:45","nodeType":"FunctionDefinition","parameters":{"id":10522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10521,"mutability":"mutable","name":"value","nameLocation":"8782:5:45","nodeType":"VariableDeclaration","scope":10546,"src":"8774:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10520,"name":"uint256","nodeType":"ElementaryTypeName","src":"8774:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8773:15:45"},"returnParameters":{"id":10525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10546,"src":"8812:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":10523,"name":"uint136","nodeType":"ElementaryTypeName","src":"8812:7:45","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8811:9:45"},"scope":11864,"src":"8755:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10573,"nodeType":"Block","src":"9330:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10554,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10549,"src":"9344:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9357:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":10556,"name":"uint128","nodeType":"ElementaryTypeName","src":"9357:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":10555,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9352:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9352:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":10559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9366:3:45","memberName":"max","nodeType":"MemberAccess","src":"9352:17:45","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9344:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10567,"nodeType":"IfStatement","src":"9340:105:45","trueBody":{"id":10566,"nodeType":"Block","src":"9371:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":10562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9423:3:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":10563,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10549,"src":"9428:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10561,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"9392:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9392:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10565,"nodeType":"RevertStatement","src":"9385:49:45"}]}},{"expression":{"arguments":[{"id":10570,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10549,"src":"9469:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9461:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":10568,"name":"uint128","nodeType":"ElementaryTypeName","src":"9461:7:45","typeDescriptions":{}}},"id":10571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9461:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":10553,"id":10572,"nodeType":"Return","src":"9454:21:45"}]},"documentation":{"id":10547,"nodeType":"StructuredDocumentation","src":"8979:280:45","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":10574,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9273:9:45","nodeType":"FunctionDefinition","parameters":{"id":10550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10549,"mutability":"mutable","name":"value","nameLocation":"9291:5:45","nodeType":"VariableDeclaration","scope":10574,"src":"9283:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10548,"name":"uint256","nodeType":"ElementaryTypeName","src":"9283:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9282:15:45"},"returnParameters":{"id":10553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10574,"src":"9321:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":10551,"name":"uint128","nodeType":"ElementaryTypeName","src":"9321:7:45","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9320:9:45"},"scope":11864,"src":"9264:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10601,"nodeType":"Block","src":"9839:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10582,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10577,"src":"9853:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9866:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":10584,"name":"uint120","nodeType":"ElementaryTypeName","src":"9866:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":10583,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9861:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":10587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9875:3:45","memberName":"max","nodeType":"MemberAccess","src":"9861:17:45","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9853:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10595,"nodeType":"IfStatement","src":"9849:105:45","trueBody":{"id":10594,"nodeType":"Block","src":"9880:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":10590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9932:3:45","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":10591,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10577,"src":"9937:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10589,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"9901:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9901:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10593,"nodeType":"RevertStatement","src":"9894:49:45"}]}},{"expression":{"arguments":[{"id":10598,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10577,"src":"9978:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9970:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":10596,"name":"uint120","nodeType":"ElementaryTypeName","src":"9970:7:45","typeDescriptions":{}}},"id":10599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9970:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":10581,"id":10600,"nodeType":"Return","src":"9963:21:45"}]},"documentation":{"id":10575,"nodeType":"StructuredDocumentation","src":"9488:280:45","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":10602,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9782:9:45","nodeType":"FunctionDefinition","parameters":{"id":10578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10577,"mutability":"mutable","name":"value","nameLocation":"9800:5:45","nodeType":"VariableDeclaration","scope":10602,"src":"9792:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10576,"name":"uint256","nodeType":"ElementaryTypeName","src":"9792:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9791:15:45"},"returnParameters":{"id":10581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10602,"src":"9830:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":10579,"name":"uint120","nodeType":"ElementaryTypeName","src":"9830:7:45","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9829:9:45"},"scope":11864,"src":"9773:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10629,"nodeType":"Block","src":"10348:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10610,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10605,"src":"10362:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10375:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":10612,"name":"uint112","nodeType":"ElementaryTypeName","src":"10375:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":10611,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10370:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10370:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":10615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10384:3:45","memberName":"max","nodeType":"MemberAccess","src":"10370:17:45","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10362:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10623,"nodeType":"IfStatement","src":"10358:105:45","trueBody":{"id":10622,"nodeType":"Block","src":"10389:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":10618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10441:3:45","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":10619,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10605,"src":"10446:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10617,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"10410:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10621,"nodeType":"RevertStatement","src":"10403:49:45"}]}},{"expression":{"arguments":[{"id":10626,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10605,"src":"10487:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10479:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":10624,"name":"uint112","nodeType":"ElementaryTypeName","src":"10479:7:45","typeDescriptions":{}}},"id":10627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10479:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":10609,"id":10628,"nodeType":"Return","src":"10472:21:45"}]},"documentation":{"id":10603,"nodeType":"StructuredDocumentation","src":"9997:280:45","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":10630,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10291:9:45","nodeType":"FunctionDefinition","parameters":{"id":10606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10605,"mutability":"mutable","name":"value","nameLocation":"10309:5:45","nodeType":"VariableDeclaration","scope":10630,"src":"10301:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10604,"name":"uint256","nodeType":"ElementaryTypeName","src":"10301:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10300:15:45"},"returnParameters":{"id":10609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10630,"src":"10339:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":10607,"name":"uint112","nodeType":"ElementaryTypeName","src":"10339:7:45","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10338:9:45"},"scope":11864,"src":"10282:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10657,"nodeType":"Block","src":"10857:152:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10638,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10633,"src":"10871:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10884:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":10640,"name":"uint104","nodeType":"ElementaryTypeName","src":"10884:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":10639,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10879:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10879:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":10643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10893:3:45","memberName":"max","nodeType":"MemberAccess","src":"10879:17:45","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10871:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10651,"nodeType":"IfStatement","src":"10867:105:45","trueBody":{"id":10650,"nodeType":"Block","src":"10898:74:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":10646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10950:3:45","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":10647,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10633,"src":"10955:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10645,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"10919:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10919:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10649,"nodeType":"RevertStatement","src":"10912:49:45"}]}},{"expression":{"arguments":[{"id":10654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10633,"src":"10996:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10988:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":10652,"name":"uint104","nodeType":"ElementaryTypeName","src":"10988:7:45","typeDescriptions":{}}},"id":10655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10988:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":10637,"id":10656,"nodeType":"Return","src":"10981:21:45"}]},"documentation":{"id":10631,"nodeType":"StructuredDocumentation","src":"10506:280:45","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":10658,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10800:9:45","nodeType":"FunctionDefinition","parameters":{"id":10634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10633,"mutability":"mutable","name":"value","nameLocation":"10818:5:45","nodeType":"VariableDeclaration","scope":10658,"src":"10810:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10632,"name":"uint256","nodeType":"ElementaryTypeName","src":"10810:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10809:15:45"},"returnParameters":{"id":10637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10658,"src":"10848:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":10635,"name":"uint104","nodeType":"ElementaryTypeName","src":"10848:7:45","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10847:9:45"},"scope":11864,"src":"10791:218:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10685,"nodeType":"Block","src":"11360:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10666,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"11374:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11387:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":10668,"name":"uint96","nodeType":"ElementaryTypeName","src":"11387:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":10667,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11382:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11382:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":10671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11395:3:45","memberName":"max","nodeType":"MemberAccess","src":"11382:16:45","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11374:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10679,"nodeType":"IfStatement","src":"11370:103:45","trueBody":{"id":10678,"nodeType":"Block","src":"11400:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":10674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11452:2:45","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":10675,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"11456:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10673,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"11421:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11421:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10677,"nodeType":"RevertStatement","src":"11414:48:45"}]}},{"expression":{"arguments":[{"id":10682,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"11496:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11489:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":10680,"name":"uint96","nodeType":"ElementaryTypeName","src":"11489:6:45","typeDescriptions":{}}},"id":10683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11489:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":10665,"id":10684,"nodeType":"Return","src":"11482:20:45"}]},"documentation":{"id":10659,"nodeType":"StructuredDocumentation","src":"11015:276:45","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":10686,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11305:8:45","nodeType":"FunctionDefinition","parameters":{"id":10662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10661,"mutability":"mutable","name":"value","nameLocation":"11322:5:45","nodeType":"VariableDeclaration","scope":10686,"src":"11314:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10660,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11313:15:45"},"returnParameters":{"id":10665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10686,"src":"11352:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10663,"name":"uint96","nodeType":"ElementaryTypeName","src":"11352:6:45","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11351:8:45"},"scope":11864,"src":"11296:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10713,"nodeType":"Block","src":"11860:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10694,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10689,"src":"11874:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11887:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":10696,"name":"uint88","nodeType":"ElementaryTypeName","src":"11887:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":10695,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11882:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11882:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":10699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11895:3:45","memberName":"max","nodeType":"MemberAccess","src":"11882:16:45","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11874:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10707,"nodeType":"IfStatement","src":"11870:103:45","trueBody":{"id":10706,"nodeType":"Block","src":"11900:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":10702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11952:2:45","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":10703,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10689,"src":"11956:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10701,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"11921:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11921:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10705,"nodeType":"RevertStatement","src":"11914:48:45"}]}},{"expression":{"arguments":[{"id":10710,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10689,"src":"11996:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11989:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":10708,"name":"uint88","nodeType":"ElementaryTypeName","src":"11989:6:45","typeDescriptions":{}}},"id":10711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11989:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":10693,"id":10712,"nodeType":"Return","src":"11982:20:45"}]},"documentation":{"id":10687,"nodeType":"StructuredDocumentation","src":"11515:276:45","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":10714,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11805:8:45","nodeType":"FunctionDefinition","parameters":{"id":10690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10689,"mutability":"mutable","name":"value","nameLocation":"11822:5:45","nodeType":"VariableDeclaration","scope":10714,"src":"11814:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10688,"name":"uint256","nodeType":"ElementaryTypeName","src":"11814:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11813:15:45"},"returnParameters":{"id":10693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10714,"src":"11852:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":10691,"name":"uint88","nodeType":"ElementaryTypeName","src":"11852:6:45","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11851:8:45"},"scope":11864,"src":"11796:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10741,"nodeType":"Block","src":"12360:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10722,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10717,"src":"12374:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12387:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":10724,"name":"uint80","nodeType":"ElementaryTypeName","src":"12387:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":10723,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12382:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12382:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":10727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12395:3:45","memberName":"max","nodeType":"MemberAccess","src":"12382:16:45","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12374:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10735,"nodeType":"IfStatement","src":"12370:103:45","trueBody":{"id":10734,"nodeType":"Block","src":"12400:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":10730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12452:2:45","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":10731,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10717,"src":"12456:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10729,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"12421:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12421:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10733,"nodeType":"RevertStatement","src":"12414:48:45"}]}},{"expression":{"arguments":[{"id":10738,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10717,"src":"12496:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12489:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":10736,"name":"uint80","nodeType":"ElementaryTypeName","src":"12489:6:45","typeDescriptions":{}}},"id":10739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12489:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":10721,"id":10740,"nodeType":"Return","src":"12482:20:45"}]},"documentation":{"id":10715,"nodeType":"StructuredDocumentation","src":"12015:276:45","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":10742,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12305:8:45","nodeType":"FunctionDefinition","parameters":{"id":10718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10717,"mutability":"mutable","name":"value","nameLocation":"12322:5:45","nodeType":"VariableDeclaration","scope":10742,"src":"12314:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10716,"name":"uint256","nodeType":"ElementaryTypeName","src":"12314:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12313:15:45"},"returnParameters":{"id":10721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10742,"src":"12352:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":10719,"name":"uint80","nodeType":"ElementaryTypeName","src":"12352:6:45","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12351:8:45"},"scope":11864,"src":"12296:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10769,"nodeType":"Block","src":"12860:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10750,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"12874:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12887:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":10752,"name":"uint72","nodeType":"ElementaryTypeName","src":"12887:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":10751,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12882:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12882:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":10755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12895:3:45","memberName":"max","nodeType":"MemberAccess","src":"12882:16:45","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12874:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10763,"nodeType":"IfStatement","src":"12870:103:45","trueBody":{"id":10762,"nodeType":"Block","src":"12900:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":10758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12952:2:45","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":10759,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"12956:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10757,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"12921:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12921:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10761,"nodeType":"RevertStatement","src":"12914:48:45"}]}},{"expression":{"arguments":[{"id":10766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"12996:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12989:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":10764,"name":"uint72","nodeType":"ElementaryTypeName","src":"12989:6:45","typeDescriptions":{}}},"id":10767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":10749,"id":10768,"nodeType":"Return","src":"12982:20:45"}]},"documentation":{"id":10743,"nodeType":"StructuredDocumentation","src":"12515:276:45","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":10770,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12805:8:45","nodeType":"FunctionDefinition","parameters":{"id":10746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10745,"mutability":"mutable","name":"value","nameLocation":"12822:5:45","nodeType":"VariableDeclaration","scope":10770,"src":"12814:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10744,"name":"uint256","nodeType":"ElementaryTypeName","src":"12814:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12813:15:45"},"returnParameters":{"id":10749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10770,"src":"12852:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":10747,"name":"uint72","nodeType":"ElementaryTypeName","src":"12852:6:45","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12851:8:45"},"scope":11864,"src":"12796:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10797,"nodeType":"Block","src":"13360:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"13374:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13387:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":10780,"name":"uint64","nodeType":"ElementaryTypeName","src":"13387:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":10779,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13382:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13382:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":10783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13395:3:45","memberName":"max","nodeType":"MemberAccess","src":"13382:16:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13374:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10791,"nodeType":"IfStatement","src":"13370:103:45","trueBody":{"id":10790,"nodeType":"Block","src":"13400:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":10786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13452:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":10787,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"13456:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10785,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"13421:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13421:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10789,"nodeType":"RevertStatement","src":"13414:48:45"}]}},{"expression":{"arguments":[{"id":10794,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"13496:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13489:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":10792,"name":"uint64","nodeType":"ElementaryTypeName","src":"13489:6:45","typeDescriptions":{}}},"id":10795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13489:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":10777,"id":10796,"nodeType":"Return","src":"13482:20:45"}]},"documentation":{"id":10771,"nodeType":"StructuredDocumentation","src":"13015:276:45","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":10798,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13305:8:45","nodeType":"FunctionDefinition","parameters":{"id":10774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10773,"mutability":"mutable","name":"value","nameLocation":"13322:5:45","nodeType":"VariableDeclaration","scope":10798,"src":"13314:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10772,"name":"uint256","nodeType":"ElementaryTypeName","src":"13314:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13313:15:45"},"returnParameters":{"id":10777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10798,"src":"13352:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10775,"name":"uint64","nodeType":"ElementaryTypeName","src":"13352:6:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13351:8:45"},"scope":11864,"src":"13296:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10825,"nodeType":"Block","src":"13860:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10806,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10801,"src":"13874:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13887:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":10808,"name":"uint56","nodeType":"ElementaryTypeName","src":"13887:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":10807,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13882:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13882:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":10811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13895:3:45","memberName":"max","nodeType":"MemberAccess","src":"13882:16:45","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13874:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10819,"nodeType":"IfStatement","src":"13870:103:45","trueBody":{"id":10818,"nodeType":"Block","src":"13900:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":10814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13952:2:45","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":10815,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10801,"src":"13956:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10813,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"13921:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13921:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10817,"nodeType":"RevertStatement","src":"13914:48:45"}]}},{"expression":{"arguments":[{"id":10822,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10801,"src":"13996:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13989:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":10820,"name":"uint56","nodeType":"ElementaryTypeName","src":"13989:6:45","typeDescriptions":{}}},"id":10823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13989:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":10805,"id":10824,"nodeType":"Return","src":"13982:20:45"}]},"documentation":{"id":10799,"nodeType":"StructuredDocumentation","src":"13515:276:45","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":10826,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13805:8:45","nodeType":"FunctionDefinition","parameters":{"id":10802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10801,"mutability":"mutable","name":"value","nameLocation":"13822:5:45","nodeType":"VariableDeclaration","scope":10826,"src":"13814:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10800,"name":"uint256","nodeType":"ElementaryTypeName","src":"13814:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13813:15:45"},"returnParameters":{"id":10805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10826,"src":"13852:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":10803,"name":"uint56","nodeType":"ElementaryTypeName","src":"13852:6:45","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13851:8:45"},"scope":11864,"src":"13796:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10853,"nodeType":"Block","src":"14360:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10834,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10829,"src":"14374:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14387:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":10836,"name":"uint48","nodeType":"ElementaryTypeName","src":"14387:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":10835,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14382:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14382:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":10839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14395:3:45","memberName":"max","nodeType":"MemberAccess","src":"14382:16:45","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14374:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10847,"nodeType":"IfStatement","src":"14370:103:45","trueBody":{"id":10846,"nodeType":"Block","src":"14400:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":10842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14452:2:45","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":10843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10829,"src":"14456:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10841,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"14421:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14421:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10845,"nodeType":"RevertStatement","src":"14414:48:45"}]}},{"expression":{"arguments":[{"id":10850,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10829,"src":"14496:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14489:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":10848,"name":"uint48","nodeType":"ElementaryTypeName","src":"14489:6:45","typeDescriptions":{}}},"id":10851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14489:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":10833,"id":10852,"nodeType":"Return","src":"14482:20:45"}]},"documentation":{"id":10827,"nodeType":"StructuredDocumentation","src":"14015:276:45","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":10854,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14305:8:45","nodeType":"FunctionDefinition","parameters":{"id":10830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10829,"mutability":"mutable","name":"value","nameLocation":"14322:5:45","nodeType":"VariableDeclaration","scope":10854,"src":"14314:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10828,"name":"uint256","nodeType":"ElementaryTypeName","src":"14314:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14313:15:45"},"returnParameters":{"id":10833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10854,"src":"14352:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":10831,"name":"uint48","nodeType":"ElementaryTypeName","src":"14352:6:45","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14351:8:45"},"scope":11864,"src":"14296:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10881,"nodeType":"Block","src":"14860:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10862,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"14874:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14887:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":10864,"name":"uint40","nodeType":"ElementaryTypeName","src":"14887:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":10863,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14882:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14882:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":10867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14895:3:45","memberName":"max","nodeType":"MemberAccess","src":"14882:16:45","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14874:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10875,"nodeType":"IfStatement","src":"14870:103:45","trueBody":{"id":10874,"nodeType":"Block","src":"14900:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":10870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14952:2:45","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":10871,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"14956:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10869,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"14921:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14921:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10873,"nodeType":"RevertStatement","src":"14914:48:45"}]}},{"expression":{"arguments":[{"id":10878,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"14996:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14989:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":10876,"name":"uint40","nodeType":"ElementaryTypeName","src":"14989:6:45","typeDescriptions":{}}},"id":10879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14989:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":10861,"id":10880,"nodeType":"Return","src":"14982:20:45"}]},"documentation":{"id":10855,"nodeType":"StructuredDocumentation","src":"14515:276:45","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":10882,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14805:8:45","nodeType":"FunctionDefinition","parameters":{"id":10858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10857,"mutability":"mutable","name":"value","nameLocation":"14822:5:45","nodeType":"VariableDeclaration","scope":10882,"src":"14814:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10856,"name":"uint256","nodeType":"ElementaryTypeName","src":"14814:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14813:15:45"},"returnParameters":{"id":10861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10882,"src":"14852:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":10859,"name":"uint40","nodeType":"ElementaryTypeName","src":"14852:6:45","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14851:8:45"},"scope":11864,"src":"14796:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10909,"nodeType":"Block","src":"15360:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10885,"src":"15374:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15387:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":10892,"name":"uint32","nodeType":"ElementaryTypeName","src":"15387:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":10891,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15382:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15382:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":10895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15395:3:45","memberName":"max","nodeType":"MemberAccess","src":"15382:16:45","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15374:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10903,"nodeType":"IfStatement","src":"15370:103:45","trueBody":{"id":10902,"nodeType":"Block","src":"15400:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":10898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15452:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":10899,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10885,"src":"15456:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10897,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"15421:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15421:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10901,"nodeType":"RevertStatement","src":"15414:48:45"}]}},{"expression":{"arguments":[{"id":10906,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10885,"src":"15496:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15489:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":10904,"name":"uint32","nodeType":"ElementaryTypeName","src":"15489:6:45","typeDescriptions":{}}},"id":10907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15489:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":10889,"id":10908,"nodeType":"Return","src":"15482:20:45"}]},"documentation":{"id":10883,"nodeType":"StructuredDocumentation","src":"15015:276:45","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":10910,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15305:8:45","nodeType":"FunctionDefinition","parameters":{"id":10886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10885,"mutability":"mutable","name":"value","nameLocation":"15322:5:45","nodeType":"VariableDeclaration","scope":10910,"src":"15314:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10884,"name":"uint256","nodeType":"ElementaryTypeName","src":"15314:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15313:15:45"},"returnParameters":{"id":10889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10910,"src":"15352:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":10887,"name":"uint32","nodeType":"ElementaryTypeName","src":"15352:6:45","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15351:8:45"},"scope":11864,"src":"15296:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10937,"nodeType":"Block","src":"15860:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10918,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10913,"src":"15874:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15887:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":10920,"name":"uint24","nodeType":"ElementaryTypeName","src":"15887:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":10919,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15882:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15882:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":10923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15895:3:45","memberName":"max","nodeType":"MemberAccess","src":"15882:16:45","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15874:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10931,"nodeType":"IfStatement","src":"15870:103:45","trueBody":{"id":10930,"nodeType":"Block","src":"15900:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":10926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15952:2:45","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":10927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10913,"src":"15956:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10925,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"15921:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15921:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10929,"nodeType":"RevertStatement","src":"15914:48:45"}]}},{"expression":{"arguments":[{"id":10934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10913,"src":"15996:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15989:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":10932,"name":"uint24","nodeType":"ElementaryTypeName","src":"15989:6:45","typeDescriptions":{}}},"id":10935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15989:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":10917,"id":10936,"nodeType":"Return","src":"15982:20:45"}]},"documentation":{"id":10911,"nodeType":"StructuredDocumentation","src":"15515:276:45","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":10938,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15805:8:45","nodeType":"FunctionDefinition","parameters":{"id":10914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10913,"mutability":"mutable","name":"value","nameLocation":"15822:5:45","nodeType":"VariableDeclaration","scope":10938,"src":"15814:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10912,"name":"uint256","nodeType":"ElementaryTypeName","src":"15814:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15813:15:45"},"returnParameters":{"id":10917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10938,"src":"15852:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":10915,"name":"uint24","nodeType":"ElementaryTypeName","src":"15852:6:45","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15851:8:45"},"scope":11864,"src":"15796:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10965,"nodeType":"Block","src":"16360:149:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10946,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10941,"src":"16374:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16387:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":10948,"name":"uint16","nodeType":"ElementaryTypeName","src":"16387:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":10947,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16382:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":10951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16395:3:45","memberName":"max","nodeType":"MemberAccess","src":"16382:16:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16374:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10959,"nodeType":"IfStatement","src":"16370:103:45","trueBody":{"id":10958,"nodeType":"Block","src":"16400:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":10954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16452:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":10955,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10941,"src":"16456:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10953,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"16421:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16421:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10957,"nodeType":"RevertStatement","src":"16414:48:45"}]}},{"expression":{"arguments":[{"id":10962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10941,"src":"16496:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16489:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":10960,"name":"uint16","nodeType":"ElementaryTypeName","src":"16489:6:45","typeDescriptions":{}}},"id":10963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16489:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":10945,"id":10964,"nodeType":"Return","src":"16482:20:45"}]},"documentation":{"id":10939,"nodeType":"StructuredDocumentation","src":"16015:276:45","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":10966,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16305:8:45","nodeType":"FunctionDefinition","parameters":{"id":10942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10941,"mutability":"mutable","name":"value","nameLocation":"16322:5:45","nodeType":"VariableDeclaration","scope":10966,"src":"16314:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10940,"name":"uint256","nodeType":"ElementaryTypeName","src":"16314:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16313:15:45"},"returnParameters":{"id":10945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10966,"src":"16352:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10943,"name":"uint16","nodeType":"ElementaryTypeName","src":"16352:6:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16351:8:45"},"scope":11864,"src":"16296:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10993,"nodeType":"Block","src":"16854:146:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10974,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10969,"src":"16868:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":10977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16881:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":10976,"name":"uint8","nodeType":"ElementaryTypeName","src":"16881:5:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":10975,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16876:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16876:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":10979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16888:3:45","memberName":"max","nodeType":"MemberAccess","src":"16876:15:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16868:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10987,"nodeType":"IfStatement","src":"16864:101:45","trueBody":{"id":10986,"nodeType":"Block","src":"16893:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":10982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16945:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":10983,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10969,"src":"16948:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10981,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10109,"src":"16914:30:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":10984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16914:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10985,"nodeType":"RevertStatement","src":"16907:47:45"}]}},{"expression":{"arguments":[{"id":10990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10969,"src":"16987:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16981:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":10988,"name":"uint8","nodeType":"ElementaryTypeName","src":"16981:5:45","typeDescriptions":{}}},"id":10991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16981:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":10973,"id":10992,"nodeType":"Return","src":"16974:19:45"}]},"documentation":{"id":10967,"nodeType":"StructuredDocumentation","src":"16515:272:45","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":10994,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16801:7:45","nodeType":"FunctionDefinition","parameters":{"id":10970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10969,"mutability":"mutable","name":"value","nameLocation":"16817:5:45","nodeType":"VariableDeclaration","scope":10994,"src":"16809:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10968,"name":"uint256","nodeType":"ElementaryTypeName","src":"16809:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16808:15:45"},"returnParameters":{"id":10973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10972,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10994,"src":"16847:5:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10971,"name":"uint8","nodeType":"ElementaryTypeName","src":"16847:5:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16846:7:45"},"scope":11864,"src":"16792:208:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11016,"nodeType":"Block","src":"17236:128:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10997,"src":"17250:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17258:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17250:9:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11010,"nodeType":"IfStatement","src":"17246:81:45","trueBody":{"id":11009,"nodeType":"Block","src":"17261:66:45","statements":[{"errorCall":{"arguments":[{"id":11006,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10997,"src":"17310:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11005,"name":"SafeCastOverflowedIntToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10114,"src":"17282:27:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_int256_$returns$_t_error_$","typeString":"function (int256) pure returns (error)"}},"id":11007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17282:34:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11008,"nodeType":"RevertStatement","src":"17275:41:45"}]}},{"expression":{"arguments":[{"id":11013,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10997,"src":"17351:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17343:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11011,"name":"uint256","nodeType":"ElementaryTypeName","src":"17343:7:45","typeDescriptions":{}}},"id":11014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17343:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11001,"id":11015,"nodeType":"Return","src":"17336:21:45"}]},"documentation":{"id":10995,"nodeType":"StructuredDocumentation","src":"17006:160:45","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0."},"id":11017,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17180:9:45","nodeType":"FunctionDefinition","parameters":{"id":10998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10997,"mutability":"mutable","name":"value","nameLocation":"17197:5:45","nodeType":"VariableDeclaration","scope":11017,"src":"17190:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10996,"name":"int256","nodeType":"ElementaryTypeName","src":"17190:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17189:14:45"},"returnParameters":{"id":11001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11017,"src":"17227:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10999,"name":"uint256","nodeType":"ElementaryTypeName","src":"17227:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17226:9:45"},"scope":11864,"src":"17171:193:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11042,"nodeType":"Block","src":"17761:150:45","statements":[{"expression":{"id":11030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11025,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"17771:10:45","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11028,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"17791:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17784:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":11026,"name":"int248","nodeType":"ElementaryTypeName","src":"17784:6:45","typeDescriptions":{}}},"id":11029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17771:26:45","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":11031,"nodeType":"ExpressionStatement","src":"17771:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11032,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"17811:10:45","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11033,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"17825:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17811:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11041,"nodeType":"IfStatement","src":"17807:98:45","trueBody":{"id":11040,"nodeType":"Block","src":"17832:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":11036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17883:3:45","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":11037,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"17888:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11035,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"17853:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17853:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11039,"nodeType":"RevertStatement","src":"17846:48:45"}]}}]},"documentation":{"id":11018,"nodeType":"StructuredDocumentation","src":"17370:312:45","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":11043,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17696:8:45","nodeType":"FunctionDefinition","parameters":{"id":11021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11020,"mutability":"mutable","name":"value","nameLocation":"17712:5:45","nodeType":"VariableDeclaration","scope":11043,"src":"17705:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11019,"name":"int256","nodeType":"ElementaryTypeName","src":"17705:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17704:14:45"},"returnParameters":{"id":11024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11023,"mutability":"mutable","name":"downcasted","nameLocation":"17749:10:45","nodeType":"VariableDeclaration","scope":11043,"src":"17742:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":11022,"name":"int248","nodeType":"ElementaryTypeName","src":"17742:6:45","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17741:19:45"},"scope":11864,"src":"17687:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11068,"nodeType":"Block","src":"18308:150:45","statements":[{"expression":{"id":11056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11051,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11049,"src":"18318:10:45","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11054,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11046,"src":"18338:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18331:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":11052,"name":"int240","nodeType":"ElementaryTypeName","src":"18331:6:45","typeDescriptions":{}}},"id":11055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18318:26:45","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":11057,"nodeType":"ExpressionStatement","src":"18318:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11058,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11049,"src":"18358:10:45","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11046,"src":"18372:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18358:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11067,"nodeType":"IfStatement","src":"18354:98:45","trueBody":{"id":11066,"nodeType":"Block","src":"18379:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":11062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18430:3:45","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":11063,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11046,"src":"18435:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11061,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"18400:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18400:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11065,"nodeType":"RevertStatement","src":"18393:48:45"}]}}]},"documentation":{"id":11044,"nodeType":"StructuredDocumentation","src":"17917:312:45","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":11069,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18243:8:45","nodeType":"FunctionDefinition","parameters":{"id":11047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11046,"mutability":"mutable","name":"value","nameLocation":"18259:5:45","nodeType":"VariableDeclaration","scope":11069,"src":"18252:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11045,"name":"int256","nodeType":"ElementaryTypeName","src":"18252:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18251:14:45"},"returnParameters":{"id":11050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11049,"mutability":"mutable","name":"downcasted","nameLocation":"18296:10:45","nodeType":"VariableDeclaration","scope":11069,"src":"18289:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":11048,"name":"int240","nodeType":"ElementaryTypeName","src":"18289:6:45","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18288:19:45"},"scope":11864,"src":"18234:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11094,"nodeType":"Block","src":"18855:150:45","statements":[{"expression":{"id":11082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11077,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11075,"src":"18865:10:45","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11080,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11072,"src":"18885:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18878:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":11078,"name":"int232","nodeType":"ElementaryTypeName","src":"18878:6:45","typeDescriptions":{}}},"id":11081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18878:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18865:26:45","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":11083,"nodeType":"ExpressionStatement","src":"18865:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11084,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11075,"src":"18905:10:45","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11085,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11072,"src":"18919:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18905:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11093,"nodeType":"IfStatement","src":"18901:98:45","trueBody":{"id":11092,"nodeType":"Block","src":"18926:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":11088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18977:3:45","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":11089,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11072,"src":"18982:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11087,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"18947:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18947:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11091,"nodeType":"RevertStatement","src":"18940:48:45"}]}}]},"documentation":{"id":11070,"nodeType":"StructuredDocumentation","src":"18464:312:45","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":11095,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18790:8:45","nodeType":"FunctionDefinition","parameters":{"id":11073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11072,"mutability":"mutable","name":"value","nameLocation":"18806:5:45","nodeType":"VariableDeclaration","scope":11095,"src":"18799:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11071,"name":"int256","nodeType":"ElementaryTypeName","src":"18799:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18798:14:45"},"returnParameters":{"id":11076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11075,"mutability":"mutable","name":"downcasted","nameLocation":"18843:10:45","nodeType":"VariableDeclaration","scope":11095,"src":"18836:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":11074,"name":"int232","nodeType":"ElementaryTypeName","src":"18836:6:45","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18835:19:45"},"scope":11864,"src":"18781:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11120,"nodeType":"Block","src":"19402:150:45","statements":[{"expression":{"id":11108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11103,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11101,"src":"19412:10:45","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11106,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11098,"src":"19432:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19425:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":11104,"name":"int224","nodeType":"ElementaryTypeName","src":"19425:6:45","typeDescriptions":{}}},"id":11107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19425:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19412:26:45","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":11109,"nodeType":"ExpressionStatement","src":"19412:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11110,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11101,"src":"19452:10:45","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11098,"src":"19466:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19452:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11119,"nodeType":"IfStatement","src":"19448:98:45","trueBody":{"id":11118,"nodeType":"Block","src":"19473:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":11114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19524:3:45","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":11115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11098,"src":"19529:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11113,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"19494:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19494:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11117,"nodeType":"RevertStatement","src":"19487:48:45"}]}}]},"documentation":{"id":11096,"nodeType":"StructuredDocumentation","src":"19011:312:45","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":11121,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19337:8:45","nodeType":"FunctionDefinition","parameters":{"id":11099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11098,"mutability":"mutable","name":"value","nameLocation":"19353:5:45","nodeType":"VariableDeclaration","scope":11121,"src":"19346:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11097,"name":"int256","nodeType":"ElementaryTypeName","src":"19346:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19345:14:45"},"returnParameters":{"id":11102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11101,"mutability":"mutable","name":"downcasted","nameLocation":"19390:10:45","nodeType":"VariableDeclaration","scope":11121,"src":"19383:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":11100,"name":"int224","nodeType":"ElementaryTypeName","src":"19383:6:45","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19382:19:45"},"scope":11864,"src":"19328:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11146,"nodeType":"Block","src":"19949:150:45","statements":[{"expression":{"id":11134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11129,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11127,"src":"19959:10:45","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11132,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11124,"src":"19979:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19972:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":11130,"name":"int216","nodeType":"ElementaryTypeName","src":"19972:6:45","typeDescriptions":{}}},"id":11133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19972:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"19959:26:45","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":11135,"nodeType":"ExpressionStatement","src":"19959:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11136,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11127,"src":"19999:10:45","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11137,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11124,"src":"20013:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19999:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11145,"nodeType":"IfStatement","src":"19995:98:45","trueBody":{"id":11144,"nodeType":"Block","src":"20020:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":11140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20071:3:45","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":11141,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11124,"src":"20076:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11139,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"20041:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20041:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11143,"nodeType":"RevertStatement","src":"20034:48:45"}]}}]},"documentation":{"id":11122,"nodeType":"StructuredDocumentation","src":"19558:312:45","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":11147,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19884:8:45","nodeType":"FunctionDefinition","parameters":{"id":11125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11124,"mutability":"mutable","name":"value","nameLocation":"19900:5:45","nodeType":"VariableDeclaration","scope":11147,"src":"19893:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11123,"name":"int256","nodeType":"ElementaryTypeName","src":"19893:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19892:14:45"},"returnParameters":{"id":11128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11127,"mutability":"mutable","name":"downcasted","nameLocation":"19937:10:45","nodeType":"VariableDeclaration","scope":11147,"src":"19930:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":11126,"name":"int216","nodeType":"ElementaryTypeName","src":"19930:6:45","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"19929:19:45"},"scope":11864,"src":"19875:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11172,"nodeType":"Block","src":"20496:150:45","statements":[{"expression":{"id":11160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11155,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11153,"src":"20506:10:45","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11158,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"20526:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20519:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":11156,"name":"int208","nodeType":"ElementaryTypeName","src":"20519:6:45","typeDescriptions":{}}},"id":11159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20519:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20506:26:45","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":11161,"nodeType":"ExpressionStatement","src":"20506:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11162,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11153,"src":"20546:10:45","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11163,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"20560:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20546:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11171,"nodeType":"IfStatement","src":"20542:98:45","trueBody":{"id":11170,"nodeType":"Block","src":"20567:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":11166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20618:3:45","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":11167,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"20623:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11165,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"20588:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20588:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11169,"nodeType":"RevertStatement","src":"20581:48:45"}]}}]},"documentation":{"id":11148,"nodeType":"StructuredDocumentation","src":"20105:312:45","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":11173,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20431:8:45","nodeType":"FunctionDefinition","parameters":{"id":11151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11150,"mutability":"mutable","name":"value","nameLocation":"20447:5:45","nodeType":"VariableDeclaration","scope":11173,"src":"20440:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11149,"name":"int256","nodeType":"ElementaryTypeName","src":"20440:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20439:14:45"},"returnParameters":{"id":11154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11153,"mutability":"mutable","name":"downcasted","nameLocation":"20484:10:45","nodeType":"VariableDeclaration","scope":11173,"src":"20477:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":11152,"name":"int208","nodeType":"ElementaryTypeName","src":"20477:6:45","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20476:19:45"},"scope":11864,"src":"20422:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11198,"nodeType":"Block","src":"21043:150:45","statements":[{"expression":{"id":11186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11181,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11179,"src":"21053:10:45","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11184,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11176,"src":"21073:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21066:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":11182,"name":"int200","nodeType":"ElementaryTypeName","src":"21066:6:45","typeDescriptions":{}}},"id":11185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21066:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21053:26:45","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":11187,"nodeType":"ExpressionStatement","src":"21053:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11188,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11179,"src":"21093:10:45","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11189,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11176,"src":"21107:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21093:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11197,"nodeType":"IfStatement","src":"21089:98:45","trueBody":{"id":11196,"nodeType":"Block","src":"21114:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":11192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21165:3:45","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":11193,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11176,"src":"21170:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11191,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"21135:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21135:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11195,"nodeType":"RevertStatement","src":"21128:48:45"}]}}]},"documentation":{"id":11174,"nodeType":"StructuredDocumentation","src":"20652:312:45","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":11199,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"20978:8:45","nodeType":"FunctionDefinition","parameters":{"id":11177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11176,"mutability":"mutable","name":"value","nameLocation":"20994:5:45","nodeType":"VariableDeclaration","scope":11199,"src":"20987:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11175,"name":"int256","nodeType":"ElementaryTypeName","src":"20987:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20986:14:45"},"returnParameters":{"id":11180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11179,"mutability":"mutable","name":"downcasted","nameLocation":"21031:10:45","nodeType":"VariableDeclaration","scope":11199,"src":"21024:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":11178,"name":"int200","nodeType":"ElementaryTypeName","src":"21024:6:45","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21023:19:45"},"scope":11864,"src":"20969:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11224,"nodeType":"Block","src":"21590:150:45","statements":[{"expression":{"id":11212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11207,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11205,"src":"21600:10:45","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11210,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"21620:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21613:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":11208,"name":"int192","nodeType":"ElementaryTypeName","src":"21613:6:45","typeDescriptions":{}}},"id":11211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21613:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21600:26:45","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":11213,"nodeType":"ExpressionStatement","src":"21600:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11214,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11205,"src":"21640:10:45","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"21654:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21640:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11223,"nodeType":"IfStatement","src":"21636:98:45","trueBody":{"id":11222,"nodeType":"Block","src":"21661:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":11218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21712:3:45","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":11219,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"21717:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11217,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"21682:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21682:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11221,"nodeType":"RevertStatement","src":"21675:48:45"}]}}]},"documentation":{"id":11200,"nodeType":"StructuredDocumentation","src":"21199:312:45","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":11225,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21525:8:45","nodeType":"FunctionDefinition","parameters":{"id":11203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11202,"mutability":"mutable","name":"value","nameLocation":"21541:5:45","nodeType":"VariableDeclaration","scope":11225,"src":"21534:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11201,"name":"int256","nodeType":"ElementaryTypeName","src":"21534:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21533:14:45"},"returnParameters":{"id":11206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11205,"mutability":"mutable","name":"downcasted","nameLocation":"21578:10:45","nodeType":"VariableDeclaration","scope":11225,"src":"21571:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":11204,"name":"int192","nodeType":"ElementaryTypeName","src":"21571:6:45","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21570:19:45"},"scope":11864,"src":"21516:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11250,"nodeType":"Block","src":"22137:150:45","statements":[{"expression":{"id":11238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11233,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11231,"src":"22147:10:45","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11236,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"22167:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22160:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":11234,"name":"int184","nodeType":"ElementaryTypeName","src":"22160:6:45","typeDescriptions":{}}},"id":11237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22160:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22147:26:45","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":11239,"nodeType":"ExpressionStatement","src":"22147:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11240,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11231,"src":"22187:10:45","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11241,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"22201:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22187:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11249,"nodeType":"IfStatement","src":"22183:98:45","trueBody":{"id":11248,"nodeType":"Block","src":"22208:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":11244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22259:3:45","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":11245,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"22264:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11243,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"22229:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11247,"nodeType":"RevertStatement","src":"22222:48:45"}]}}]},"documentation":{"id":11226,"nodeType":"StructuredDocumentation","src":"21746:312:45","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":11251,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22072:8:45","nodeType":"FunctionDefinition","parameters":{"id":11229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11228,"mutability":"mutable","name":"value","nameLocation":"22088:5:45","nodeType":"VariableDeclaration","scope":11251,"src":"22081:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11227,"name":"int256","nodeType":"ElementaryTypeName","src":"22081:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22080:14:45"},"returnParameters":{"id":11232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11231,"mutability":"mutable","name":"downcasted","nameLocation":"22125:10:45","nodeType":"VariableDeclaration","scope":11251,"src":"22118:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":11230,"name":"int184","nodeType":"ElementaryTypeName","src":"22118:6:45","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22117:19:45"},"scope":11864,"src":"22063:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11276,"nodeType":"Block","src":"22684:150:45","statements":[{"expression":{"id":11264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11259,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11257,"src":"22694:10:45","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11262,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11254,"src":"22714:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22707:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":11260,"name":"int176","nodeType":"ElementaryTypeName","src":"22707:6:45","typeDescriptions":{}}},"id":11263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22707:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22694:26:45","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":11265,"nodeType":"ExpressionStatement","src":"22694:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11266,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11257,"src":"22734:10:45","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11267,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11254,"src":"22748:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22734:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11275,"nodeType":"IfStatement","src":"22730:98:45","trueBody":{"id":11274,"nodeType":"Block","src":"22755:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":11270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22806:3:45","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":11271,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11254,"src":"22811:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11269,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"22776:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22776:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11273,"nodeType":"RevertStatement","src":"22769:48:45"}]}}]},"documentation":{"id":11252,"nodeType":"StructuredDocumentation","src":"22293:312:45","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":11277,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22619:8:45","nodeType":"FunctionDefinition","parameters":{"id":11255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11254,"mutability":"mutable","name":"value","nameLocation":"22635:5:45","nodeType":"VariableDeclaration","scope":11277,"src":"22628:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11253,"name":"int256","nodeType":"ElementaryTypeName","src":"22628:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22627:14:45"},"returnParameters":{"id":11258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11257,"mutability":"mutable","name":"downcasted","nameLocation":"22672:10:45","nodeType":"VariableDeclaration","scope":11277,"src":"22665:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":11256,"name":"int176","nodeType":"ElementaryTypeName","src":"22665:6:45","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22664:19:45"},"scope":11864,"src":"22610:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11302,"nodeType":"Block","src":"23231:150:45","statements":[{"expression":{"id":11290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11285,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"23241:10:45","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11288,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"23261:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23254:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":11286,"name":"int168","nodeType":"ElementaryTypeName","src":"23254:6:45","typeDescriptions":{}}},"id":11289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23254:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23241:26:45","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":11291,"nodeType":"ExpressionStatement","src":"23241:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11292,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"23281:10:45","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11293,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"23295:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23281:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11301,"nodeType":"IfStatement","src":"23277:98:45","trueBody":{"id":11300,"nodeType":"Block","src":"23302:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":11296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23353:3:45","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":11297,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"23358:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11295,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"23323:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23323:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11299,"nodeType":"RevertStatement","src":"23316:48:45"}]}}]},"documentation":{"id":11278,"nodeType":"StructuredDocumentation","src":"22840:312:45","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":11303,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23166:8:45","nodeType":"FunctionDefinition","parameters":{"id":11281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11280,"mutability":"mutable","name":"value","nameLocation":"23182:5:45","nodeType":"VariableDeclaration","scope":11303,"src":"23175:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11279,"name":"int256","nodeType":"ElementaryTypeName","src":"23175:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23174:14:45"},"returnParameters":{"id":11284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11283,"mutability":"mutable","name":"downcasted","nameLocation":"23219:10:45","nodeType":"VariableDeclaration","scope":11303,"src":"23212:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":11282,"name":"int168","nodeType":"ElementaryTypeName","src":"23212:6:45","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23211:19:45"},"scope":11864,"src":"23157:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11328,"nodeType":"Block","src":"23778:150:45","statements":[{"expression":{"id":11316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11311,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"23788:10:45","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11314,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"23808:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23801:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":11312,"name":"int160","nodeType":"ElementaryTypeName","src":"23801:6:45","typeDescriptions":{}}},"id":11315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23801:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23788:26:45","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":11317,"nodeType":"ExpressionStatement","src":"23788:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11318,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"23828:10:45","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11319,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"23842:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23828:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11327,"nodeType":"IfStatement","src":"23824:98:45","trueBody":{"id":11326,"nodeType":"Block","src":"23849:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":11322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23900:3:45","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":11323,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"23905:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11321,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"23870:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23870:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11325,"nodeType":"RevertStatement","src":"23863:48:45"}]}}]},"documentation":{"id":11304,"nodeType":"StructuredDocumentation","src":"23387:312:45","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":11329,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23713:8:45","nodeType":"FunctionDefinition","parameters":{"id":11307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11306,"mutability":"mutable","name":"value","nameLocation":"23729:5:45","nodeType":"VariableDeclaration","scope":11329,"src":"23722:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11305,"name":"int256","nodeType":"ElementaryTypeName","src":"23722:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23721:14:45"},"returnParameters":{"id":11310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11309,"mutability":"mutable","name":"downcasted","nameLocation":"23766:10:45","nodeType":"VariableDeclaration","scope":11329,"src":"23759:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":11308,"name":"int160","nodeType":"ElementaryTypeName","src":"23759:6:45","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23758:19:45"},"scope":11864,"src":"23704:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11354,"nodeType":"Block","src":"24325:150:45","statements":[{"expression":{"id":11342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11337,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11335,"src":"24335:10:45","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11340,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11332,"src":"24355:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24348:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":11338,"name":"int152","nodeType":"ElementaryTypeName","src":"24348:6:45","typeDescriptions":{}}},"id":11341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24335:26:45","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":11343,"nodeType":"ExpressionStatement","src":"24335:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11344,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11335,"src":"24375:10:45","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11345,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11332,"src":"24389:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24375:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11353,"nodeType":"IfStatement","src":"24371:98:45","trueBody":{"id":11352,"nodeType":"Block","src":"24396:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":11348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24447:3:45","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":11349,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11332,"src":"24452:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11347,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"24417:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24417:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11351,"nodeType":"RevertStatement","src":"24410:48:45"}]}}]},"documentation":{"id":11330,"nodeType":"StructuredDocumentation","src":"23934:312:45","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":11355,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24260:8:45","nodeType":"FunctionDefinition","parameters":{"id":11333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11332,"mutability":"mutable","name":"value","nameLocation":"24276:5:45","nodeType":"VariableDeclaration","scope":11355,"src":"24269:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11331,"name":"int256","nodeType":"ElementaryTypeName","src":"24269:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24268:14:45"},"returnParameters":{"id":11336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11335,"mutability":"mutable","name":"downcasted","nameLocation":"24313:10:45","nodeType":"VariableDeclaration","scope":11355,"src":"24306:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":11334,"name":"int152","nodeType":"ElementaryTypeName","src":"24306:6:45","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24305:19:45"},"scope":11864,"src":"24251:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11380,"nodeType":"Block","src":"24872:150:45","statements":[{"expression":{"id":11368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11363,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11361,"src":"24882:10:45","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11366,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"24902:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24895:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":11364,"name":"int144","nodeType":"ElementaryTypeName","src":"24895:6:45","typeDescriptions":{}}},"id":11367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24895:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"24882:26:45","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":11369,"nodeType":"ExpressionStatement","src":"24882:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11370,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11361,"src":"24922:10:45","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11371,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"24936:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24922:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11379,"nodeType":"IfStatement","src":"24918:98:45","trueBody":{"id":11378,"nodeType":"Block","src":"24943:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":11374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24994:3:45","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":11375,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"24999:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11373,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"24964:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24964:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11377,"nodeType":"RevertStatement","src":"24957:48:45"}]}}]},"documentation":{"id":11356,"nodeType":"StructuredDocumentation","src":"24481:312:45","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":11381,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24807:8:45","nodeType":"FunctionDefinition","parameters":{"id":11359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11358,"mutability":"mutable","name":"value","nameLocation":"24823:5:45","nodeType":"VariableDeclaration","scope":11381,"src":"24816:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11357,"name":"int256","nodeType":"ElementaryTypeName","src":"24816:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24815:14:45"},"returnParameters":{"id":11362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11361,"mutability":"mutable","name":"downcasted","nameLocation":"24860:10:45","nodeType":"VariableDeclaration","scope":11381,"src":"24853:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":11360,"name":"int144","nodeType":"ElementaryTypeName","src":"24853:6:45","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"24852:19:45"},"scope":11864,"src":"24798:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11406,"nodeType":"Block","src":"25419:150:45","statements":[{"expression":{"id":11394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11389,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11387,"src":"25429:10:45","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11392,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"25449:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25442:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":11390,"name":"int136","nodeType":"ElementaryTypeName","src":"25442:6:45","typeDescriptions":{}}},"id":11393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25442:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25429:26:45","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":11395,"nodeType":"ExpressionStatement","src":"25429:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11396,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11387,"src":"25469:10:45","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11397,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"25483:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25469:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11405,"nodeType":"IfStatement","src":"25465:98:45","trueBody":{"id":11404,"nodeType":"Block","src":"25490:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":11400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25541:3:45","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":11401,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"25546:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11399,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"25511:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25511:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11403,"nodeType":"RevertStatement","src":"25504:48:45"}]}}]},"documentation":{"id":11382,"nodeType":"StructuredDocumentation","src":"25028:312:45","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":11407,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25354:8:45","nodeType":"FunctionDefinition","parameters":{"id":11385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11384,"mutability":"mutable","name":"value","nameLocation":"25370:5:45","nodeType":"VariableDeclaration","scope":11407,"src":"25363:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11383,"name":"int256","nodeType":"ElementaryTypeName","src":"25363:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25362:14:45"},"returnParameters":{"id":11388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11387,"mutability":"mutable","name":"downcasted","nameLocation":"25407:10:45","nodeType":"VariableDeclaration","scope":11407,"src":"25400:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":11386,"name":"int136","nodeType":"ElementaryTypeName","src":"25400:6:45","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25399:19:45"},"scope":11864,"src":"25345:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11432,"nodeType":"Block","src":"25966:150:45","statements":[{"expression":{"id":11420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11415,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11413,"src":"25976:10:45","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11418,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11410,"src":"25996:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25989:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":11416,"name":"int128","nodeType":"ElementaryTypeName","src":"25989:6:45","typeDescriptions":{}}},"id":11419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25989:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"25976:26:45","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":11421,"nodeType":"ExpressionStatement","src":"25976:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11422,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11413,"src":"26016:10:45","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11423,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11410,"src":"26030:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26016:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11431,"nodeType":"IfStatement","src":"26012:98:45","trueBody":{"id":11430,"nodeType":"Block","src":"26037:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":11426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26088:3:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":11427,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11410,"src":"26093:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11425,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"26058:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26058:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11429,"nodeType":"RevertStatement","src":"26051:48:45"}]}}]},"documentation":{"id":11408,"nodeType":"StructuredDocumentation","src":"25575:312:45","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":11433,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"25901:8:45","nodeType":"FunctionDefinition","parameters":{"id":11411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11410,"mutability":"mutable","name":"value","nameLocation":"25917:5:45","nodeType":"VariableDeclaration","scope":11433,"src":"25910:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11409,"name":"int256","nodeType":"ElementaryTypeName","src":"25910:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25909:14:45"},"returnParameters":{"id":11414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11413,"mutability":"mutable","name":"downcasted","nameLocation":"25954:10:45","nodeType":"VariableDeclaration","scope":11433,"src":"25947:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":11412,"name":"int128","nodeType":"ElementaryTypeName","src":"25947:6:45","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"25946:19:45"},"scope":11864,"src":"25892:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11458,"nodeType":"Block","src":"26513:150:45","statements":[{"expression":{"id":11446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11441,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"26523:10:45","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"26543:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26536:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":11442,"name":"int120","nodeType":"ElementaryTypeName","src":"26536:6:45","typeDescriptions":{}}},"id":11445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26536:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26523:26:45","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":11447,"nodeType":"ExpressionStatement","src":"26523:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11448,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"26563:10:45","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11449,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"26577:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26563:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11457,"nodeType":"IfStatement","src":"26559:98:45","trueBody":{"id":11456,"nodeType":"Block","src":"26584:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":11452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26635:3:45","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":11453,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"26640:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11451,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"26605:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26605:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11455,"nodeType":"RevertStatement","src":"26598:48:45"}]}}]},"documentation":{"id":11434,"nodeType":"StructuredDocumentation","src":"26122:312:45","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":11459,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26448:8:45","nodeType":"FunctionDefinition","parameters":{"id":11437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11436,"mutability":"mutable","name":"value","nameLocation":"26464:5:45","nodeType":"VariableDeclaration","scope":11459,"src":"26457:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11435,"name":"int256","nodeType":"ElementaryTypeName","src":"26457:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26456:14:45"},"returnParameters":{"id":11440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11439,"mutability":"mutable","name":"downcasted","nameLocation":"26501:10:45","nodeType":"VariableDeclaration","scope":11459,"src":"26494:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":11438,"name":"int120","nodeType":"ElementaryTypeName","src":"26494:6:45","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26493:19:45"},"scope":11864,"src":"26439:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11484,"nodeType":"Block","src":"27060:150:45","statements":[{"expression":{"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11467,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11465,"src":"27070:10:45","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11462,"src":"27090:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27083:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":11468,"name":"int112","nodeType":"ElementaryTypeName","src":"27083:6:45","typeDescriptions":{}}},"id":11471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27083:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27070:26:45","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":11473,"nodeType":"ExpressionStatement","src":"27070:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11474,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11465,"src":"27110:10:45","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11475,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11462,"src":"27124:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27110:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11483,"nodeType":"IfStatement","src":"27106:98:45","trueBody":{"id":11482,"nodeType":"Block","src":"27131:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":11478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27182:3:45","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":11479,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11462,"src":"27187:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11477,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"27152:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27152:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11481,"nodeType":"RevertStatement","src":"27145:48:45"}]}}]},"documentation":{"id":11460,"nodeType":"StructuredDocumentation","src":"26669:312:45","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":11485,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"26995:8:45","nodeType":"FunctionDefinition","parameters":{"id":11463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11462,"mutability":"mutable","name":"value","nameLocation":"27011:5:45","nodeType":"VariableDeclaration","scope":11485,"src":"27004:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11461,"name":"int256","nodeType":"ElementaryTypeName","src":"27004:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27003:14:45"},"returnParameters":{"id":11466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11465,"mutability":"mutable","name":"downcasted","nameLocation":"27048:10:45","nodeType":"VariableDeclaration","scope":11485,"src":"27041:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":11464,"name":"int112","nodeType":"ElementaryTypeName","src":"27041:6:45","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27040:19:45"},"scope":11864,"src":"26986:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11510,"nodeType":"Block","src":"27607:150:45","statements":[{"expression":{"id":11498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11493,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11491,"src":"27617:10:45","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11496,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11488,"src":"27637:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27630:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":11494,"name":"int104","nodeType":"ElementaryTypeName","src":"27630:6:45","typeDescriptions":{}}},"id":11497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27630:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27617:26:45","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":11499,"nodeType":"ExpressionStatement","src":"27617:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11500,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11491,"src":"27657:10:45","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11501,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11488,"src":"27671:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27657:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11509,"nodeType":"IfStatement","src":"27653:98:45","trueBody":{"id":11508,"nodeType":"Block","src":"27678:73:45","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":11504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27729:3:45","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":11505,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11488,"src":"27734:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11503,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"27699:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27699:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11507,"nodeType":"RevertStatement","src":"27692:48:45"}]}}]},"documentation":{"id":11486,"nodeType":"StructuredDocumentation","src":"27216:312:45","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":11511,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27542:8:45","nodeType":"FunctionDefinition","parameters":{"id":11489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11488,"mutability":"mutable","name":"value","nameLocation":"27558:5:45","nodeType":"VariableDeclaration","scope":11511,"src":"27551:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11487,"name":"int256","nodeType":"ElementaryTypeName","src":"27551:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27550:14:45"},"returnParameters":{"id":11492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11491,"mutability":"mutable","name":"downcasted","nameLocation":"27595:10:45","nodeType":"VariableDeclaration","scope":11511,"src":"27588:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":11490,"name":"int104","nodeType":"ElementaryTypeName","src":"27588:6:45","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27587:19:45"},"scope":11864,"src":"27533:224:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11536,"nodeType":"Block","src":"28147:148:45","statements":[{"expression":{"id":11524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11519,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"28157:10:45","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11522,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"28176:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28170:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":11520,"name":"int96","nodeType":"ElementaryTypeName","src":"28170:5:45","typeDescriptions":{}}},"id":11523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28170:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28157:25:45","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":11525,"nodeType":"ExpressionStatement","src":"28157:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11526,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"28196:10:45","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"28210:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28196:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11535,"nodeType":"IfStatement","src":"28192:97:45","trueBody":{"id":11534,"nodeType":"Block","src":"28217:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":11530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28268:2:45","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":11531,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"28272:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11529,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"28238:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28238:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11533,"nodeType":"RevertStatement","src":"28231:47:45"}]}}]},"documentation":{"id":11512,"nodeType":"StructuredDocumentation","src":"27763:307:45","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":11537,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28084:7:45","nodeType":"FunctionDefinition","parameters":{"id":11515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11514,"mutability":"mutable","name":"value","nameLocation":"28099:5:45","nodeType":"VariableDeclaration","scope":11537,"src":"28092:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11513,"name":"int256","nodeType":"ElementaryTypeName","src":"28092:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28091:14:45"},"returnParameters":{"id":11518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11517,"mutability":"mutable","name":"downcasted","nameLocation":"28135:10:45","nodeType":"VariableDeclaration","scope":11537,"src":"28129:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":11516,"name":"int96","nodeType":"ElementaryTypeName","src":"28129:5:45","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28128:18:45"},"scope":11864,"src":"28075:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11562,"nodeType":"Block","src":"28685:148:45","statements":[{"expression":{"id":11550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11545,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11543,"src":"28695:10:45","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11548,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"28714:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28708:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":11546,"name":"int88","nodeType":"ElementaryTypeName","src":"28708:5:45","typeDescriptions":{}}},"id":11549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28708:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28695:25:45","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":11551,"nodeType":"ExpressionStatement","src":"28695:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11552,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11543,"src":"28734:10:45","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"28748:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28734:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11561,"nodeType":"IfStatement","src":"28730:97:45","trueBody":{"id":11560,"nodeType":"Block","src":"28755:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":11556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28806:2:45","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":11557,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"28810:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11555,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"28776:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28776:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11559,"nodeType":"RevertStatement","src":"28769:47:45"}]}}]},"documentation":{"id":11538,"nodeType":"StructuredDocumentation","src":"28301:307:45","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":11563,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28622:7:45","nodeType":"FunctionDefinition","parameters":{"id":11541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11540,"mutability":"mutable","name":"value","nameLocation":"28637:5:45","nodeType":"VariableDeclaration","scope":11563,"src":"28630:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11539,"name":"int256","nodeType":"ElementaryTypeName","src":"28630:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28629:14:45"},"returnParameters":{"id":11544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11543,"mutability":"mutable","name":"downcasted","nameLocation":"28673:10:45","nodeType":"VariableDeclaration","scope":11563,"src":"28667:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":11542,"name":"int88","nodeType":"ElementaryTypeName","src":"28667:5:45","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28666:18:45"},"scope":11864,"src":"28613:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11588,"nodeType":"Block","src":"29223:148:45","statements":[{"expression":{"id":11576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11571,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11569,"src":"29233:10:45","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11574,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"29252:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29246:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":11572,"name":"int80","nodeType":"ElementaryTypeName","src":"29246:5:45","typeDescriptions":{}}},"id":11575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29246:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29233:25:45","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":11577,"nodeType":"ExpressionStatement","src":"29233:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11578,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11569,"src":"29272:10:45","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11579,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"29286:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29272:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11587,"nodeType":"IfStatement","src":"29268:97:45","trueBody":{"id":11586,"nodeType":"Block","src":"29293:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":11582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29344:2:45","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":11583,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11566,"src":"29348:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11581,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"29314:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29314:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11585,"nodeType":"RevertStatement","src":"29307:47:45"}]}}]},"documentation":{"id":11564,"nodeType":"StructuredDocumentation","src":"28839:307:45","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":11589,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29160:7:45","nodeType":"FunctionDefinition","parameters":{"id":11567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11566,"mutability":"mutable","name":"value","nameLocation":"29175:5:45","nodeType":"VariableDeclaration","scope":11589,"src":"29168:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11565,"name":"int256","nodeType":"ElementaryTypeName","src":"29168:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29167:14:45"},"returnParameters":{"id":11570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11569,"mutability":"mutable","name":"downcasted","nameLocation":"29211:10:45","nodeType":"VariableDeclaration","scope":11589,"src":"29205:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":11568,"name":"int80","nodeType":"ElementaryTypeName","src":"29205:5:45","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29204:18:45"},"scope":11864,"src":"29151:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11614,"nodeType":"Block","src":"29761:148:45","statements":[{"expression":{"id":11602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11597,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11595,"src":"29771:10:45","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11600,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11592,"src":"29790:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29784:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":11598,"name":"int72","nodeType":"ElementaryTypeName","src":"29784:5:45","typeDescriptions":{}}},"id":11601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29784:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"29771:25:45","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":11603,"nodeType":"ExpressionStatement","src":"29771:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11604,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11595,"src":"29810:10:45","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11605,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11592,"src":"29824:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29810:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11613,"nodeType":"IfStatement","src":"29806:97:45","trueBody":{"id":11612,"nodeType":"Block","src":"29831:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":11608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29882:2:45","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":11609,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11592,"src":"29886:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11607,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"29852:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29852:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11611,"nodeType":"RevertStatement","src":"29845:47:45"}]}}]},"documentation":{"id":11590,"nodeType":"StructuredDocumentation","src":"29377:307:45","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":11615,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29698:7:45","nodeType":"FunctionDefinition","parameters":{"id":11593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11592,"mutability":"mutable","name":"value","nameLocation":"29713:5:45","nodeType":"VariableDeclaration","scope":11615,"src":"29706:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11591,"name":"int256","nodeType":"ElementaryTypeName","src":"29706:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29705:14:45"},"returnParameters":{"id":11596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11595,"mutability":"mutable","name":"downcasted","nameLocation":"29749:10:45","nodeType":"VariableDeclaration","scope":11615,"src":"29743:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":11594,"name":"int72","nodeType":"ElementaryTypeName","src":"29743:5:45","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"29742:18:45"},"scope":11864,"src":"29689:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11640,"nodeType":"Block","src":"30299:148:45","statements":[{"expression":{"id":11628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11623,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11621,"src":"30309:10:45","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11626,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"30328:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30322:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":11624,"name":"int64","nodeType":"ElementaryTypeName","src":"30322:5:45","typeDescriptions":{}}},"id":11627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30322:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30309:25:45","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":11629,"nodeType":"ExpressionStatement","src":"30309:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11630,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11621,"src":"30348:10:45","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"30362:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30348:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11639,"nodeType":"IfStatement","src":"30344:97:45","trueBody":{"id":11638,"nodeType":"Block","src":"30369:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":11634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30420:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":11635,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"30424:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11633,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"30390:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30390:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11637,"nodeType":"RevertStatement","src":"30383:47:45"}]}}]},"documentation":{"id":11616,"nodeType":"StructuredDocumentation","src":"29915:307:45","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":11641,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30236:7:45","nodeType":"FunctionDefinition","parameters":{"id":11619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11618,"mutability":"mutable","name":"value","nameLocation":"30251:5:45","nodeType":"VariableDeclaration","scope":11641,"src":"30244:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11617,"name":"int256","nodeType":"ElementaryTypeName","src":"30244:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30243:14:45"},"returnParameters":{"id":11622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11621,"mutability":"mutable","name":"downcasted","nameLocation":"30287:10:45","nodeType":"VariableDeclaration","scope":11641,"src":"30281:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":11620,"name":"int64","nodeType":"ElementaryTypeName","src":"30281:5:45","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30280:18:45"},"scope":11864,"src":"30227:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11666,"nodeType":"Block","src":"30837:148:45","statements":[{"expression":{"id":11654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11649,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11647,"src":"30847:10:45","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11652,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"30866:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30860:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":11650,"name":"int56","nodeType":"ElementaryTypeName","src":"30860:5:45","typeDescriptions":{}}},"id":11653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30860:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"30847:25:45","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":11655,"nodeType":"ExpressionStatement","src":"30847:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11656,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11647,"src":"30886:10:45","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11657,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"30900:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30886:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11665,"nodeType":"IfStatement","src":"30882:97:45","trueBody":{"id":11664,"nodeType":"Block","src":"30907:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":11660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30958:2:45","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":11661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"30962:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11659,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"30928:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11663,"nodeType":"RevertStatement","src":"30921:47:45"}]}}]},"documentation":{"id":11642,"nodeType":"StructuredDocumentation","src":"30453:307:45","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":11667,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"30774:7:45","nodeType":"FunctionDefinition","parameters":{"id":11645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11644,"mutability":"mutable","name":"value","nameLocation":"30789:5:45","nodeType":"VariableDeclaration","scope":11667,"src":"30782:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11643,"name":"int256","nodeType":"ElementaryTypeName","src":"30782:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30781:14:45"},"returnParameters":{"id":11648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11647,"mutability":"mutable","name":"downcasted","nameLocation":"30825:10:45","nodeType":"VariableDeclaration","scope":11667,"src":"30819:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":11646,"name":"int56","nodeType":"ElementaryTypeName","src":"30819:5:45","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"30818:18:45"},"scope":11864,"src":"30765:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11692,"nodeType":"Block","src":"31375:148:45","statements":[{"expression":{"id":11680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11675,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11673,"src":"31385:10:45","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11678,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"31404:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":11676,"name":"int48","nodeType":"ElementaryTypeName","src":"31398:5:45","typeDescriptions":{}}},"id":11679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31385:25:45","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":11681,"nodeType":"ExpressionStatement","src":"31385:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11682,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11673,"src":"31424:10:45","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11683,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"31438:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31424:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11691,"nodeType":"IfStatement","src":"31420:97:45","trueBody":{"id":11690,"nodeType":"Block","src":"31445:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":11686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31496:2:45","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":11687,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"31500:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11685,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"31466:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31466:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11689,"nodeType":"RevertStatement","src":"31459:47:45"}]}}]},"documentation":{"id":11668,"nodeType":"StructuredDocumentation","src":"30991:307:45","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":11693,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31312:7:45","nodeType":"FunctionDefinition","parameters":{"id":11671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11670,"mutability":"mutable","name":"value","nameLocation":"31327:5:45","nodeType":"VariableDeclaration","scope":11693,"src":"31320:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11669,"name":"int256","nodeType":"ElementaryTypeName","src":"31320:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31319:14:45"},"returnParameters":{"id":11674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11673,"mutability":"mutable","name":"downcasted","nameLocation":"31363:10:45","nodeType":"VariableDeclaration","scope":11693,"src":"31357:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":11672,"name":"int48","nodeType":"ElementaryTypeName","src":"31357:5:45","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31356:18:45"},"scope":11864,"src":"31303:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11718,"nodeType":"Block","src":"31913:148:45","statements":[{"expression":{"id":11706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11701,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11699,"src":"31923:10:45","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"31942:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31936:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":11702,"name":"int40","nodeType":"ElementaryTypeName","src":"31936:5:45","typeDescriptions":{}}},"id":11705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31936:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"31923:25:45","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":11707,"nodeType":"ExpressionStatement","src":"31923:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11708,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11699,"src":"31962:10:45","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11709,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"31976:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31962:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11717,"nodeType":"IfStatement","src":"31958:97:45","trueBody":{"id":11716,"nodeType":"Block","src":"31983:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":11712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32034:2:45","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":11713,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"32038:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11711,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"32004:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32004:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11715,"nodeType":"RevertStatement","src":"31997:47:45"}]}}]},"documentation":{"id":11694,"nodeType":"StructuredDocumentation","src":"31529:307:45","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":11719,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"31850:7:45","nodeType":"FunctionDefinition","parameters":{"id":11697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11696,"mutability":"mutable","name":"value","nameLocation":"31865:5:45","nodeType":"VariableDeclaration","scope":11719,"src":"31858:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11695,"name":"int256","nodeType":"ElementaryTypeName","src":"31858:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31857:14:45"},"returnParameters":{"id":11700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11699,"mutability":"mutable","name":"downcasted","nameLocation":"31901:10:45","nodeType":"VariableDeclaration","scope":11719,"src":"31895:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":11698,"name":"int40","nodeType":"ElementaryTypeName","src":"31895:5:45","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"31894:18:45"},"scope":11864,"src":"31841:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11744,"nodeType":"Block","src":"32451:148:45","statements":[{"expression":{"id":11732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11727,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11725,"src":"32461:10:45","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11730,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11722,"src":"32480:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32474:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":11728,"name":"int32","nodeType":"ElementaryTypeName","src":"32474:5:45","typeDescriptions":{}}},"id":11731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32474:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32461:25:45","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":11733,"nodeType":"ExpressionStatement","src":"32461:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11734,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11725,"src":"32500:10:45","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11735,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11722,"src":"32514:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32500:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11743,"nodeType":"IfStatement","src":"32496:97:45","trueBody":{"id":11742,"nodeType":"Block","src":"32521:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":11738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32572:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":11739,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11722,"src":"32576:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11737,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"32542:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32542:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11741,"nodeType":"RevertStatement","src":"32535:47:45"}]}}]},"documentation":{"id":11720,"nodeType":"StructuredDocumentation","src":"32067:307:45","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":11745,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32388:7:45","nodeType":"FunctionDefinition","parameters":{"id":11723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11722,"mutability":"mutable","name":"value","nameLocation":"32403:5:45","nodeType":"VariableDeclaration","scope":11745,"src":"32396:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11721,"name":"int256","nodeType":"ElementaryTypeName","src":"32396:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32395:14:45"},"returnParameters":{"id":11726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11725,"mutability":"mutable","name":"downcasted","nameLocation":"32439:10:45","nodeType":"VariableDeclaration","scope":11745,"src":"32433:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":11724,"name":"int32","nodeType":"ElementaryTypeName","src":"32433:5:45","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32432:18:45"},"scope":11864,"src":"32379:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11770,"nodeType":"Block","src":"32989:148:45","statements":[{"expression":{"id":11758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11753,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"32999:10:45","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11756,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11748,"src":"33018:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33012:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":11754,"name":"int24","nodeType":"ElementaryTypeName","src":"33012:5:45","typeDescriptions":{}}},"id":11757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33012:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"32999:25:45","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":11759,"nodeType":"ExpressionStatement","src":"32999:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11760,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"33038:10:45","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11748,"src":"33052:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33038:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11769,"nodeType":"IfStatement","src":"33034:97:45","trueBody":{"id":11768,"nodeType":"Block","src":"33059:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":11764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33110:2:45","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":11765,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11748,"src":"33114:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11763,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"33080:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33080:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11767,"nodeType":"RevertStatement","src":"33073:47:45"}]}}]},"documentation":{"id":11746,"nodeType":"StructuredDocumentation","src":"32605:307:45","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":11771,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"32926:7:45","nodeType":"FunctionDefinition","parameters":{"id":11749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11748,"mutability":"mutable","name":"value","nameLocation":"32941:5:45","nodeType":"VariableDeclaration","scope":11771,"src":"32934:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11747,"name":"int256","nodeType":"ElementaryTypeName","src":"32934:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32933:14:45"},"returnParameters":{"id":11752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11751,"mutability":"mutable","name":"downcasted","nameLocation":"32977:10:45","nodeType":"VariableDeclaration","scope":11771,"src":"32971:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":11750,"name":"int24","nodeType":"ElementaryTypeName","src":"32971:5:45","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"32970:18:45"},"scope":11864,"src":"32917:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11796,"nodeType":"Block","src":"33527:148:45","statements":[{"expression":{"id":11784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11779,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11777,"src":"33537:10:45","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11782,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11774,"src":"33556:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33550:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":11780,"name":"int16","nodeType":"ElementaryTypeName","src":"33550:5:45","typeDescriptions":{}}},"id":11783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33550:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33537:25:45","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":11785,"nodeType":"ExpressionStatement","src":"33537:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11786,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11777,"src":"33576:10:45","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11787,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11774,"src":"33590:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33576:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11795,"nodeType":"IfStatement","src":"33572:97:45","trueBody":{"id":11794,"nodeType":"Block","src":"33597:72:45","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":11790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33648:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":11791,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11774,"src":"33652:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11789,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"33618:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33618:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11793,"nodeType":"RevertStatement","src":"33611:47:45"}]}}]},"documentation":{"id":11772,"nodeType":"StructuredDocumentation","src":"33143:307:45","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":11797,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33464:7:45","nodeType":"FunctionDefinition","parameters":{"id":11775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11774,"mutability":"mutable","name":"value","nameLocation":"33479:5:45","nodeType":"VariableDeclaration","scope":11797,"src":"33472:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11773,"name":"int256","nodeType":"ElementaryTypeName","src":"33472:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33471:14:45"},"returnParameters":{"id":11778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11777,"mutability":"mutable","name":"downcasted","nameLocation":"33515:10:45","nodeType":"VariableDeclaration","scope":11797,"src":"33509:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":11776,"name":"int16","nodeType":"ElementaryTypeName","src":"33509:5:45","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33508:18:45"},"scope":11864,"src":"33455:220:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11822,"nodeType":"Block","src":"34058:146:45","statements":[{"expression":{"id":11810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11805,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11803,"src":"34068:10:45","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11800,"src":"34086:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34081:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":11806,"name":"int8","nodeType":"ElementaryTypeName","src":"34081:4:45","typeDescriptions":{}}},"id":11809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34068:24:45","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":11811,"nodeType":"ExpressionStatement","src":"34068:24:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11812,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11803,"src":"34106:10:45","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11813,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11800,"src":"34120:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34106:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11821,"nodeType":"IfStatement","src":"34102:96:45","trueBody":{"id":11820,"nodeType":"Block","src":"34127:71:45","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":11816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34178:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":11817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11800,"src":"34181:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11815,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"34148:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":11818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34148:39:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11819,"nodeType":"RevertStatement","src":"34141:46:45"}]}}]},"documentation":{"id":11798,"nodeType":"StructuredDocumentation","src":"33681:302:45","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":11823,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"33997:6:45","nodeType":"FunctionDefinition","parameters":{"id":11801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11800,"mutability":"mutable","name":"value","nameLocation":"34011:5:45","nodeType":"VariableDeclaration","scope":11823,"src":"34004:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11799,"name":"int256","nodeType":"ElementaryTypeName","src":"34004:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34003:14:45"},"returnParameters":{"id":11804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11803,"mutability":"mutable","name":"downcasted","nameLocation":"34046:10:45","nodeType":"VariableDeclaration","scope":11823,"src":"34041:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":11802,"name":"int8","nodeType":"ElementaryTypeName","src":"34041:4:45","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34040:17:45"},"scope":11864,"src":"33988:216:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11852,"nodeType":"Block","src":"34444:250:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11831,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11826,"src":"34557:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":11836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34578:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11835,"name":"int256","nodeType":"ElementaryTypeName","src":"34578:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":11834,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34573:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34573:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":11838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34586:3:45","memberName":"max","nodeType":"MemberAccess","src":"34573:16:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34565:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11832,"name":"uint256","nodeType":"ElementaryTypeName","src":"34565:7:45","typeDescriptions":{}}},"id":11839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34565:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34557:33:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11846,"nodeType":"IfStatement","src":"34553:105:45","trueBody":{"id":11845,"nodeType":"Block","src":"34592:66:45","statements":[{"errorCall":{"arguments":[{"id":11842,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11826,"src":"34641:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11841,"name":"SafeCastOverflowedUintToInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"34613:27:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":11843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34613:34:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11844,"nodeType":"RevertStatement","src":"34606:41:45"}]}},{"expression":{"arguments":[{"id":11849,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11826,"src":"34681:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34674:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11847,"name":"int256","nodeType":"ElementaryTypeName","src":"34674:6:45","typeDescriptions":{}}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34674:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":11830,"id":11851,"nodeType":"Return","src":"34667:20:45"}]},"documentation":{"id":11824,"nodeType":"StructuredDocumentation","src":"34210:165:45","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256."},"id":11853,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34389:8:45","nodeType":"FunctionDefinition","parameters":{"id":11827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11826,"mutability":"mutable","name":"value","nameLocation":"34406:5:45","nodeType":"VariableDeclaration","scope":11853,"src":"34398:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11825,"name":"uint256","nodeType":"ElementaryTypeName","src":"34398:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34397:15:45"},"returnParameters":{"id":11830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11853,"src":"34436:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11828,"name":"int256","nodeType":"ElementaryTypeName","src":"34436:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34435:8:45"},"scope":11864,"src":"34380:314:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11862,"nodeType":"Block","src":"34853:87:45","statements":[{"AST":{"nativeSrc":"34888:46:45","nodeType":"YulBlock","src":"34888:46:45","statements":[{"nativeSrc":"34902:22:45","nodeType":"YulAssignment","src":"34902:22:45","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"34921:1:45","nodeType":"YulIdentifier","src":"34921:1:45"}],"functionName":{"name":"iszero","nativeSrc":"34914:6:45","nodeType":"YulIdentifier","src":"34914:6:45"},"nativeSrc":"34914:9:45","nodeType":"YulFunctionCall","src":"34914:9:45"}],"functionName":{"name":"iszero","nativeSrc":"34907:6:45","nodeType":"YulIdentifier","src":"34907:6:45"},"nativeSrc":"34907:17:45","nodeType":"YulFunctionCall","src":"34907:17:45"},"variableNames":[{"name":"u","nativeSrc":"34902:1:45","nodeType":"YulIdentifier","src":"34902:1:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":11856,"isOffset":false,"isSlot":false,"src":"34921:1:45","valueSize":1},{"declaration":11859,"isOffset":false,"isSlot":false,"src":"34902:1:45","valueSize":1}],"flags":["memory-safe"],"id":11861,"nodeType":"InlineAssembly","src":"34863:71:45"}]},"documentation":{"id":11854,"nodeType":"StructuredDocumentation","src":"34700:90:45","text":" @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump."},"id":11863,"implemented":true,"kind":"function","modifiers":[],"name":"toUint","nameLocation":"34804:6:45","nodeType":"FunctionDefinition","parameters":{"id":11857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11856,"mutability":"mutable","name":"b","nameLocation":"34816:1:45","nodeType":"VariableDeclaration","scope":11863,"src":"34811:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11855,"name":"bool","nodeType":"ElementaryTypeName","src":"34811:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34810:8:45"},"returnParameters":{"id":11860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11859,"mutability":"mutable","name":"u","nameLocation":"34850:1:45","nodeType":"VariableDeclaration","scope":11863,"src":"34842:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11858,"name":"uint256","nodeType":"ElementaryTypeName","src":"34842:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34841:11:45"},"scope":11864,"src":"34795:145:45","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":11865,"src":"769:34173:45","usedErrors":[10109,10114,10121,10126],"usedEvents":[]}],"src":"192:34751:45"},"id":45},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SafeCast":[11864],"SignedMath":[12008]},"id":12009,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11866,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:46"},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"./SafeCast.sol","id":11868,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12009,"sourceUnit":11865,"src":"135:40:46","symbolAliases":[{"foreign":{"id":11867,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"143:8:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":11869,"nodeType":"StructuredDocumentation","src":"177:80:46","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":12008,"linearizedBaseContracts":[12008],"name":"SignedMath","nameLocation":"266:10:46","nodeType":"ContractDefinition","nodes":[{"body":{"id":11898,"nodeType":"Block","src":"746:215:46","statements":[{"id":11897,"nodeType":"UncheckedBlock","src":"756:199:46","statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11881,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"894:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11882,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11874,"src":"900:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":11883,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"904:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"900:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":11885,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"899:7:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":11890,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11872,"src":"932:9:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11888,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"916:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$11864_$","typeString":"type(library SafeCast)"}},"id":11889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"925:6:46","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":11863,"src":"916:15:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":11891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:26:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"909:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11886,"name":"int256","nodeType":"ElementaryTypeName","src":"909:6:46","typeDescriptions":{}}},"id":11892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"909:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"899:44:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":11894,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"898:46:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"894:50:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":11880,"id":11896,"nodeType":"Return","src":"887:57:46"}]}]},"documentation":{"id":11870,"nodeType":"StructuredDocumentation","src":"283:374:46","text":" @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive."},"id":11899,"implemented":true,"kind":"function","modifiers":[],"name":"ternary","nameLocation":"671:7:46","nodeType":"FunctionDefinition","parameters":{"id":11877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11872,"mutability":"mutable","name":"condition","nameLocation":"684:9:46","nodeType":"VariableDeclaration","scope":11899,"src":"679:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11871,"name":"bool","nodeType":"ElementaryTypeName","src":"679:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11874,"mutability":"mutable","name":"a","nameLocation":"702:1:46","nodeType":"VariableDeclaration","scope":11899,"src":"695:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11873,"name":"int256","nodeType":"ElementaryTypeName","src":"695:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11876,"mutability":"mutable","name":"b","nameLocation":"712:1:46","nodeType":"VariableDeclaration","scope":11899,"src":"705:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11875,"name":"int256","nodeType":"ElementaryTypeName","src":"705:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"678:36:46"},"returnParameters":{"id":11880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11899,"src":"738:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11878,"name":"int256","nodeType":"ElementaryTypeName","src":"738:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"737:8:46"},"scope":12008,"src":"662:299:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11917,"nodeType":"Block","src":"1102:44:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11910,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11902,"src":"1127:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11911,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11904,"src":"1131:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1127:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11913,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11902,"src":"1134:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":11914,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11904,"src":"1137:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11909,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11899,"src":"1119:7:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (bool,int256,int256) pure returns (int256)"}},"id":11915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1119:20:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":11908,"id":11916,"nodeType":"Return","src":"1112:27:46"}]},"documentation":{"id":11900,"nodeType":"StructuredDocumentation","src":"967:66:46","text":" @dev Returns the largest of two signed numbers."},"id":11918,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"1047:3:46","nodeType":"FunctionDefinition","parameters":{"id":11905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11902,"mutability":"mutable","name":"a","nameLocation":"1058:1:46","nodeType":"VariableDeclaration","scope":11918,"src":"1051:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11901,"name":"int256","nodeType":"ElementaryTypeName","src":"1051:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11904,"mutability":"mutable","name":"b","nameLocation":"1068:1:46","nodeType":"VariableDeclaration","scope":11918,"src":"1061:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11903,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1050:20:46"},"returnParameters":{"id":11908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11918,"src":"1094:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11906,"name":"int256","nodeType":"ElementaryTypeName","src":"1094:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1093:8:46"},"scope":12008,"src":"1038:108:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11936,"nodeType":"Block","src":"1288:44:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11929,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11921,"src":"1313:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11930,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11923,"src":"1317:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1313:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11932,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11921,"src":"1320:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":11933,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11923,"src":"1323:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11928,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11899,"src":"1305:7:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (bool,int256,int256) pure returns (int256)"}},"id":11934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1305:20:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":11927,"id":11935,"nodeType":"Return","src":"1298:27:46"}]},"documentation":{"id":11919,"nodeType":"StructuredDocumentation","src":"1152:67:46","text":" @dev Returns the smallest of two signed numbers."},"id":11937,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"1233:3:46","nodeType":"FunctionDefinition","parameters":{"id":11924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11921,"mutability":"mutable","name":"a","nameLocation":"1244:1:46","nodeType":"VariableDeclaration","scope":11937,"src":"1237:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11920,"name":"int256","nodeType":"ElementaryTypeName","src":"1237:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11923,"mutability":"mutable","name":"b","nameLocation":"1254:1:46","nodeType":"VariableDeclaration","scope":11937,"src":"1247:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11922,"name":"int256","nodeType":"ElementaryTypeName","src":"1247:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1236:20:46"},"returnParameters":{"id":11927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11926,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11937,"src":"1280:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11925,"name":"int256","nodeType":"ElementaryTypeName","src":"1280:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1279:8:46"},"scope":12008,"src":"1224:108:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11980,"nodeType":"Block","src":"1537:162:46","statements":[{"assignments":[11948],"declarations":[{"constant":false,"id":11948,"mutability":"mutable","name":"x","nameLocation":"1606:1:46","nodeType":"VariableDeclaration","scope":11980,"src":"1599:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11947,"name":"int256","nodeType":"ElementaryTypeName","src":"1599:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":11961,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11949,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"1611:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":11950,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11942,"src":"1615:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1611:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":11952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1610:7:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11953,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"1622:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":11954,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11942,"src":"1626:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1622:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":11956,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1621:7:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":11957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1632:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1621:12:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":11959,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1620:14:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1610:24:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1599:35:46"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11962,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11948,"src":"1651:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11967,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11948,"src":"1671:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1663:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11965,"name":"uint256","nodeType":"ElementaryTypeName","src":"1663:7:46","typeDescriptions":{}}},"id":11968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1663:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":11969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1677:3:46","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"1663:17:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1656:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11963,"name":"int256","nodeType":"ElementaryTypeName","src":"1656:6:46","typeDescriptions":{}}},"id":11971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:25:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11972,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11940,"src":"1685:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":11973,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11942,"src":"1689:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1685:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":11975,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1684:7:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1656:35:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":11977,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1655:37:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1651:41:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":11946,"id":11979,"nodeType":"Return","src":"1644:48:46"}]},"documentation":{"id":11938,"nodeType":"StructuredDocumentation","src":"1338:126:46","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":11981,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"1478:7:46","nodeType":"FunctionDefinition","parameters":{"id":11943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11940,"mutability":"mutable","name":"a","nameLocation":"1493:1:46","nodeType":"VariableDeclaration","scope":11981,"src":"1486:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11939,"name":"int256","nodeType":"ElementaryTypeName","src":"1486:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11942,"mutability":"mutable","name":"b","nameLocation":"1503:1:46","nodeType":"VariableDeclaration","scope":11981,"src":"1496:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11941,"name":"int256","nodeType":"ElementaryTypeName","src":"1496:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1485:20:46"},"returnParameters":{"id":11946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11981,"src":"1529:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11944,"name":"int256","nodeType":"ElementaryTypeName","src":"1529:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1528:8:46"},"scope":12008,"src":"1469:230:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12006,"nodeType":"Block","src":"1843:767:46","statements":[{"id":12005,"nodeType":"UncheckedBlock","src":"1853:751:46","statements":[{"assignments":[11990],"declarations":[{"constant":false,"id":11990,"mutability":"mutable","name":"mask","nameLocation":"2424:4:46","nodeType":"VariableDeclaration","scope":12005,"src":"2417:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11989,"name":"int256","nodeType":"ElementaryTypeName","src":"2417:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":11994,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11991,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11984,"src":"2431:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":11992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2436:3:46","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"2431:8:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2417:22:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11997,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11984,"src":"2576:1:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11998,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11990,"src":"2580:4:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2576:8:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":12000,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2575:10:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":12001,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11990,"src":"2588:4:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2575:17:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2567:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11995,"name":"uint256","nodeType":"ElementaryTypeName","src":"2567:7:46","typeDescriptions":{}}},"id":12003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2567:26:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11988,"id":12004,"nodeType":"Return","src":"2560:33:46"}]}]},"documentation":{"id":11982,"nodeType":"StructuredDocumentation","src":"1705:78:46","text":" @dev Returns the absolute unsigned value of a signed value."},"id":12007,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1797:3:46","nodeType":"FunctionDefinition","parameters":{"id":11985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11984,"mutability":"mutable","name":"n","nameLocation":"1808:1:46","nodeType":"VariableDeclaration","scope":12007,"src":"1801:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11983,"name":"int256","nodeType":"ElementaryTypeName","src":"1801:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1800:10:46"},"returnParameters":{"id":11988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12007,"src":"1834:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11986,"name":"uint256","nodeType":"ElementaryTypeName","src":"1834:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1833:9:46"},"scope":12008,"src":"1788:822:46","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12009,"src":"258:2354:46","usedErrors":[],"usedEvents":[]}],"src":"109:2504:46"},"id":46},"@uniswap/lib/contracts/libraries/TransferHelper.sol":{"ast":{"absolutePath":"@uniswap/lib/contracts/libraries/TransferHelper.sol","exportedSymbols":{"TransferHelper":[12168]},"id":12169,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":12010,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"46:24:47"},{"abstract":false,"baseContracts":[],"canonicalName":"TransferHelper","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":12168,"linearizedBaseContracts":[12168],"name":"TransferHelper","nameLocation":"191:14:47","nodeType":"ContractDefinition","nodes":[{"body":{"id":12052,"nodeType":"Block","src":"314:332:47","statements":[{"assignments":[12020,12022],"declarations":[{"constant":false,"id":12020,"mutability":"mutable","name":"success","nameLocation":"395:7:47","nodeType":"VariableDeclaration","scope":12052,"src":"390:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12019,"name":"bool","nodeType":"ElementaryTypeName","src":"390:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12022,"mutability":"mutable","name":"data","nameLocation":"417:4:47","nodeType":"VariableDeclaration","scope":12052,"src":"404:17:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12021,"name":"bytes","nodeType":"ElementaryTypeName","src":"404:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12032,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783039356561376233","id":12027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"459:10:47","typeDescriptions":{"typeIdentifier":"t_rational_157198259_by_1","typeString":"int_const 157198259"},"value":"0x095ea7b3"},{"id":12028,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12014,"src":"471:2:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12029,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12016,"src":"475:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_157198259_by_1","typeString":"int_const 157198259"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12025,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"436:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"440:18:47","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"436:22:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":12030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"436:45:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12023,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12012,"src":"425:5:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"431:4:47","memberName":"call","nodeType":"MemberAccess","src":"425:10:47","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":12031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"425:57:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"389:93:47"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12034,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"513:7:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12035,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"525:4:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"530:6:47","memberName":"length","nodeType":"MemberAccess","src":"525:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"540:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"525:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12041,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"556:4:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":12043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"563:4:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":12042,"name":"bool","nodeType":"ElementaryTypeName","src":"563:4:47","typeDescriptions":{}}}],"id":12044,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"562:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":12039,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"545:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"549:6:47","memberName":"decode","nodeType":"MemberAccess","src":"545:10:47","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"545:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"525:44:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":12047,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"524:46:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"513:57:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c6564","id":12049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"584:45:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123","typeString":"literal_string \"TransferHelper::safeApprove: approve failed\""},"value":"TransferHelper::safeApprove: approve failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123","typeString":"literal_string \"TransferHelper::safeApprove: approve failed\""}],"id":12033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"492:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"492:147:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12051,"nodeType":"ExpressionStatement","src":"492:147:47"}]},"id":12053,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"221:11:47","nodeType":"FunctionDefinition","parameters":{"id":12017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12012,"mutability":"mutable","name":"token","nameLocation":"250:5:47","nodeType":"VariableDeclaration","scope":12053,"src":"242:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12011,"name":"address","nodeType":"ElementaryTypeName","src":"242:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12014,"mutability":"mutable","name":"to","nameLocation":"273:2:47","nodeType":"VariableDeclaration","scope":12053,"src":"265:10:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12013,"name":"address","nodeType":"ElementaryTypeName","src":"265:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12016,"mutability":"mutable","name":"value","nameLocation":"293:5:47","nodeType":"VariableDeclaration","scope":12053,"src":"285:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12015,"name":"uint256","nodeType":"ElementaryTypeName","src":"285:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"232:72:47"},"returnParameters":{"id":12018,"nodeType":"ParameterList","parameters":[],"src":"314:0:47"},"scope":12168,"src":"212:434:47","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12095,"nodeType":"Block","src":"755:335:47","statements":[{"assignments":[12063,12065],"declarations":[{"constant":false,"id":12063,"mutability":"mutable","name":"success","nameLocation":"837:7:47","nodeType":"VariableDeclaration","scope":12095,"src":"832:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12062,"name":"bool","nodeType":"ElementaryTypeName","src":"832:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12065,"mutability":"mutable","name":"data","nameLocation":"859:4:47","nodeType":"VariableDeclaration","scope":12095,"src":"846:17:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12064,"name":"bytes","nodeType":"ElementaryTypeName","src":"846:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12075,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30786139303539636262","id":12070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"901:10:47","typeDescriptions":{"typeIdentifier":"t_rational_2835717307_by_1","typeString":"int_const 2835717307"},"value":"0xa9059cbb"},{"id":12071,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12057,"src":"913:2:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12072,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12059,"src":"917:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2835717307_by_1","typeString":"int_const 2835717307"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"878:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"882:18:47","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"878:22:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":12073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"878:45:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12066,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12055,"src":"867:5:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"873:4:47","memberName":"call","nodeType":"MemberAccess","src":"867:10:47","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":12074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"867:57:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"831:93:47"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12077,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12063,"src":"955:7:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12078,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12065,"src":"967:4:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"972:6:47","memberName":"length","nodeType":"MemberAccess","src":"967:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"982:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"967:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12084,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12065,"src":"998:4:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":12086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1005:4:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":12085,"name":"bool","nodeType":"ElementaryTypeName","src":"1005:4:47","typeDescriptions":{}}}],"id":12087,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1004:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":12082,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"987:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"991:6:47","memberName":"decode","nodeType":"MemberAccess","src":"987:10:47","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"987:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"967:44:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":12090,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"966:46:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"955:57:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564","id":12092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1026:47:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611","typeString":"literal_string \"TransferHelper::safeTransfer: transfer failed\""},"value":"TransferHelper::safeTransfer: transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611","typeString":"literal_string \"TransferHelper::safeTransfer: transfer failed\""}],"id":12076,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"934:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"934:149:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12094,"nodeType":"ExpressionStatement","src":"934:149:47"}]},"id":12096,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"661:12:47","nodeType":"FunctionDefinition","parameters":{"id":12060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12055,"mutability":"mutable","name":"token","nameLocation":"691:5:47","nodeType":"VariableDeclaration","scope":12096,"src":"683:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12054,"name":"address","nodeType":"ElementaryTypeName","src":"683:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12057,"mutability":"mutable","name":"to","nameLocation":"714:2:47","nodeType":"VariableDeclaration","scope":12096,"src":"706:10:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12056,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12059,"mutability":"mutable","name":"value","nameLocation":"734:5:47","nodeType":"VariableDeclaration","scope":12096,"src":"726:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12058,"name":"uint256","nodeType":"ElementaryTypeName","src":"726:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"673:72:47"},"returnParameters":{"id":12061,"nodeType":"ParameterList","parameters":[],"src":"755:0:47"},"scope":12168,"src":"652:438:47","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12141,"nodeType":"Block","src":"1225:357:47","statements":[{"assignments":[12108,12110],"declarations":[{"constant":false,"id":12108,"mutability":"mutable","name":"success","nameLocation":"1319:7:47","nodeType":"VariableDeclaration","scope":12141,"src":"1314:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12107,"name":"bool","nodeType":"ElementaryTypeName","src":"1314:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12110,"mutability":"mutable","name":"data","nameLocation":"1341:4:47","nodeType":"VariableDeclaration","scope":12141,"src":"1328:17:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12109,"name":"bytes","nodeType":"ElementaryTypeName","src":"1328:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12121,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783233623837326464","id":12115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1383:10:47","typeDescriptions":{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},"value":"0x23b872dd"},{"id":12116,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12100,"src":"1395:4:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12117,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12102,"src":"1401:2:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12118,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12104,"src":"1405:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1360:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1364:18:47","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1360:22:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":12119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1360:51:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12111,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12098,"src":"1349:5:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1355:4:47","memberName":"call","nodeType":"MemberAccess","src":"1349:10:47","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":12120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1349:63:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1313:99:47"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12123,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12108,"src":"1443:7:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12124,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12110,"src":"1455:4:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1460:6:47","memberName":"length","nodeType":"MemberAccess","src":"1455:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1470:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1455:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12130,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12110,"src":"1486:4:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":12132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1493:4:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":12131,"name":"bool","nodeType":"ElementaryTypeName","src":"1493:4:47","typeDescriptions":{}}}],"id":12133,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1492:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":12128,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1475:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1479:6:47","memberName":"decode","nodeType":"MemberAccess","src":"1475:10:47","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1475:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1455:44:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":12136,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1454:46:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1443:57:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c6564","id":12138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1514:51:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c","typeString":"literal_string \"TransferHelper::transferFrom: transferFrom failed\""},"value":"TransferHelper::transferFrom: transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c","typeString":"literal_string \"TransferHelper::transferFrom: transferFrom failed\""}],"id":12122,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1422:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:153:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12140,"nodeType":"ExpressionStatement","src":"1422:153:47"}]},"id":12142,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1105:16:47","nodeType":"FunctionDefinition","parameters":{"id":12105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12098,"mutability":"mutable","name":"token","nameLocation":"1139:5:47","nodeType":"VariableDeclaration","scope":12142,"src":"1131:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12097,"name":"address","nodeType":"ElementaryTypeName","src":"1131:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12100,"mutability":"mutable","name":"from","nameLocation":"1162:4:47","nodeType":"VariableDeclaration","scope":12142,"src":"1154:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12099,"name":"address","nodeType":"ElementaryTypeName","src":"1154:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12102,"mutability":"mutable","name":"to","nameLocation":"1184:2:47","nodeType":"VariableDeclaration","scope":12142,"src":"1176:10:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12101,"name":"address","nodeType":"ElementaryTypeName","src":"1176:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12104,"mutability":"mutable","name":"value","nameLocation":"1204:5:47","nodeType":"VariableDeclaration","scope":12142,"src":"1196:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12103,"name":"uint256","nodeType":"ElementaryTypeName","src":"1196:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1121:94:47"},"returnParameters":{"id":12106,"nodeType":"ParameterList","parameters":[],"src":"1225:0:47"},"scope":12168,"src":"1096:486:47","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12166,"nodeType":"Block","src":"1649:153:47","statements":[{"assignments":[12150,null],"declarations":[{"constant":false,"id":12150,"mutability":"mutable","name":"success","nameLocation":"1665:7:47","nodeType":"VariableDeclaration","scope":12166,"src":"1660:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12149,"name":"bool","nodeType":"ElementaryTypeName","src":"1660:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":12160,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":12157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1710:1:47","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":12156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1700:9:47","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":12155,"name":"bytes","nodeType":"ElementaryTypeName","src":"1704:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":12158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1700:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12151,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12144,"src":"1678:2:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1681:4:47","memberName":"call","nodeType":"MemberAccess","src":"1678:7:47","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":12154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12153,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12146,"src":"1693:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1678:21:47","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":12159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1678:35:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1659:54:47"},{"expression":{"arguments":[{"id":12162,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12150,"src":"1731:7:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564","id":12163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1740:54:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350","typeString":"literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\""},"value":"TransferHelper::safeTransferETH: ETH transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350","typeString":"literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\""}],"id":12161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1723:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1723:72:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12165,"nodeType":"ExpressionStatement","src":"1723:72:47"}]},"id":12167,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferETH","nameLocation":"1597:15:47","nodeType":"FunctionDefinition","parameters":{"id":12147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12144,"mutability":"mutable","name":"to","nameLocation":"1621:2:47","nodeType":"VariableDeclaration","scope":12167,"src":"1613:10:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12143,"name":"address","nodeType":"ElementaryTypeName","src":"1613:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12146,"mutability":"mutable","name":"value","nameLocation":"1633:5:47","nodeType":"VariableDeclaration","scope":12167,"src":"1625:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12145,"name":"uint256","nodeType":"ElementaryTypeName","src":"1625:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1612:27:47"},"returnParameters":{"id":12148,"nodeType":"ParameterList","parameters":[],"src":"1649:0:47"},"scope":12168,"src":"1588:214:47","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":12169,"src":"183:1621:47","usedErrors":[],"usedEvents":[]}],"src":"46:1759:47"},"id":47},"contracts/WTAC.sol":{"ast":{"absolutePath":"contracts/WTAC.sol","exportedSymbols":{"ERC20":[4657],"IWTAC":[17653],"ReentrancyGuard":[6900],"WTAC":[12275]},"id":12276,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12170,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:48"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":12172,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12276,"sourceUnit":4658,"src":"58:70:48","symbolAliases":[{"foreign":{"id":12171,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4657,"src":"67:5:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuard.sol","id":12174,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12276,"sourceUnit":6901,"src":"129:84:48","symbolAliases":[{"foreign":{"id":12173,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6900,"src":"138:15:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IWTAC.sol","file":"./interfaces/IWTAC.sol","id":12176,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12276,"sourceUnit":17654,"src":"214:47:48","symbolAliases":[{"foreign":{"id":12175,"name":"IWTAC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17653,"src":"223:5:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12178,"name":"ERC20","nameLocations":["378:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":4657,"src":"378:5:48"},"id":12179,"nodeType":"InheritanceSpecifier","src":"378:5:48"},{"baseName":{"id":12180,"name":"ReentrancyGuard","nameLocations":["385:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":6900,"src":"385:15:48"},"id":12181,"nodeType":"InheritanceSpecifier","src":"385:15:48"},{"baseName":{"id":12182,"name":"IWTAC","nameLocations":["402:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":17653,"src":"402:5:48"},"id":12183,"nodeType":"InheritanceSpecifier","src":"402:5:48"}],"canonicalName":"WTAC","contractDependencies":[],"contractKind":"contract","documentation":{"id":12177,"nodeType":"StructuredDocumentation","src":"263:98:48","text":"@title Wrapped TAC contract\n @author TAC\n @notice Wrapped TAC token contract over ERC20"},"fullyImplemented":true,"id":12275,"linearizedBaseContracts":[12275,17653,6900,4657,3307,4761,4735,6658],"name":"WTAC","nameLocation":"370:4:48","nodeType":"ContractDefinition","nodes":[{"body":{"id":12190,"nodeType":"Block","src":"458:2:48","statements":[]},"id":12191,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"5772617070656420544143","id":12186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"435:13:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5094ee36491a88f959d9770d32672e1120921a7d6a52c3d32d0f63887617e7c","typeString":"literal_string \"Wrapped TAC\""},"value":"Wrapped TAC"},{"hexValue":"57544143","id":12187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"450:6:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_11698a9d6cf25a2b914665f891ff9c94939f793fda858880e5e80160cfa5f717","typeString":"literal_string \"WTAC\""},"value":"WTAC"}],"id":12188,"kind":"baseConstructorSpecifier","modifierName":{"id":12185,"name":"ERC20","nameLocations":["429:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":4657,"src":"429:5:48"},"nodeType":"ModifierInvocation","src":"429:28:48"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12184,"nodeType":"ParameterList","parameters":[],"src":"426:2:48"},"returnParameters":{"id":12189,"nodeType":"ParameterList","parameters":[],"src":"458:0:48"},"scope":12275,"src":"415:45:48","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":12197,"nodeType":"Block","src":"493:26:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12194,"name":"deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12226,"src":"503:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"503:9:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12196,"nodeType":"ExpressionStatement","src":"503:9:48"}]},"id":12198,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12192,"nodeType":"ParameterList","parameters":[],"src":"473:2:48"},"returnParameters":{"id":12193,"nodeType":"ParameterList","parameters":[],"src":"493:0:48"},"scope":12275,"src":"466:53:48","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[17647],"body":{"id":12225,"nodeType":"Block","src":"572:162:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12204,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"590:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"594:5:48","memberName":"value","nodeType":"MemberAccess","src":"590:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"602:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"590:13:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4465706f7369742076616c7565206d7573742062652067726561746572207468616e2030","id":12208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"605:38:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ff2399ac8a8231a1fc50157a81c9b2e0c210821dea894a0fa2fae78bba239fc","typeString":"literal_string \"Deposit value must be greater than 0\""},"value":"Deposit value must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ff2399ac8a8231a1fc50157a81c9b2e0c210821dea894a0fa2fae78bba239fc","typeString":"literal_string \"Deposit value must be greater than 0\""}],"id":12203,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"582:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"582:62:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12210,"nodeType":"ExpressionStatement","src":"582:62:48"},{"expression":{"arguments":[{"expression":{"id":12212,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"660:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"664:6:48","memberName":"sender","nodeType":"MemberAccess","src":"660:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12214,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"672:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"676:5:48","memberName":"value","nodeType":"MemberAccess","src":"672:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12211,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"654:5:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12217,"nodeType":"ExpressionStatement","src":"654:28:48"},{"eventCall":{"arguments":[{"expression":{"id":12219,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"705:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"709:6:48","memberName":"sender","nodeType":"MemberAccess","src":"705:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12221,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"717:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"721:5:48","memberName":"value","nodeType":"MemberAccess","src":"717:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12218,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17638,"src":"697:7:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:30:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12224,"nodeType":"EmitStatement","src":"692:35:48"}]},"functionSelector":"d0e30db0","id":12226,"implemented":true,"kind":"function","modifiers":[{"id":12201,"kind":"modifierInvocation","modifierName":{"id":12200,"name":"nonReentrant","nameLocations":["559:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"559:12:48"},"nodeType":"ModifierInvocation","src":"559:12:48"}],"name":"deposit","nameLocation":"534:7:48","nodeType":"FunctionDefinition","parameters":{"id":12199,"nodeType":"ParameterList","parameters":[],"src":"541:2:48"},"returnParameters":{"id":12202,"nodeType":"ParameterList","parameters":[],"src":"572:0:48"},"scope":12275,"src":"525:209:48","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[17652],"body":{"id":12273,"nodeType":"Block","src":"788:267:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12235,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"816:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"820:6:48","memberName":"sender","nodeType":"MemberAccess","src":"816:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12234,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"806:9:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":12237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"806:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":12238,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"831:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"806:28:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e73756666696369656e742062616c616e6365","id":12240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"836:22:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \"Insufficient balance\""},"value":"Insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \"Insufficient balance\""}],"id":12233,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"798:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"798:61:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12242,"nodeType":"ExpressionStatement","src":"798:61:48"},{"expression":{"arguments":[{"expression":{"id":12244,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"875:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"879:6:48","memberName":"sender","nodeType":"MemberAccess","src":"875:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12246,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"887:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12243,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4530,"src":"869:5:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"869:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12248,"nodeType":"ExpressionStatement","src":"869:22:48"},{"assignments":[12250,null],"declarations":[{"constant":false,"id":12250,"mutability":"mutable","name":"success","nameLocation":"907:7:48","nodeType":"VariableDeclaration","scope":12273,"src":"902:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12249,"name":"bool","nodeType":"ElementaryTypeName","src":"902:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":12261,"initialValue":{"arguments":[{"hexValue":"","id":12259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"956:2:48","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":{"arguments":[{"expression":{"id":12253,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"927:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"931:6:48","memberName":"sender","nodeType":"MemberAccess","src":"927:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"919:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12251,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:48","typeDescriptions":{}}},"id":12255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"919:19:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"939:4:48","memberName":"call","nodeType":"MemberAccess","src":"919:24:48","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":12258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12257,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"951:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"919:36:48","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":12260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"919:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"901:58:48"},{"expression":{"arguments":[{"id":12263,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12250,"src":"977:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5769746864726177616c206661696c6564","id":12264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"986:19:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88","typeString":"literal_string \"Withdrawal failed\""},"value":"Withdrawal failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88","typeString":"literal_string \"Withdrawal failed\""}],"id":12262,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"969:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"969:37:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12266,"nodeType":"ExpressionStatement","src":"969:37:48"},{"eventCall":{"arguments":[{"expression":{"id":12268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1032:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1036:6:48","memberName":"sender","nodeType":"MemberAccess","src":"1032:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12270,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"1044:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12267,"name":"Withdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17644,"src":"1021:10:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1021:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12272,"nodeType":"EmitStatement","src":"1016:32:48"}]},"functionSelector":"2e1a7d4d","id":12274,"implemented":true,"kind":"function","modifiers":[{"id":12231,"kind":"modifierInvocation","modifierName":{"id":12230,"name":"nonReentrant","nameLocations":["775:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"775:12:48"},"nodeType":"ModifierInvocation","src":"775:12:48"}],"name":"withdraw","nameLocation":"749:8:48","nodeType":"FunctionDefinition","parameters":{"id":12229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12228,"mutability":"mutable","name":"wad","nameLocation":"763:3:48","nodeType":"VariableDeclaration","scope":12274,"src":"758:8:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12227,"name":"uint","nodeType":"ElementaryTypeName","src":"758:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"757:10:48"},"returnParameters":{"id":12232,"nodeType":"ParameterList","parameters":[],"src":"788:0:48"},"scope":12275,"src":"740:315:48","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":12276,"src":"361:696:48","usedErrors":[3277,3282,3287,3296,3301,3306,6845],"usedEvents":[4669,4678,17638,17644]}],"src":"32:1025:48"},"id":48},"contracts/core/Consensus.sol":{"ast":{"absolutePath":"contracts/core/Consensus.sol","exportedSymbols":{"AccessControlUpgradeable":[362],"Consensus":[13413],"EpochInfo":[16098],"IConsensus":[17376],"ISettings":[17536],"Initializable":[948],"SettingsConstants":[17796],"TacInitializable":[16247],"UUPSUpgradeable":[1130]},"id":13414,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12277,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:49"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","id":12279,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13414,"sourceUnit":363,"src":"58:115:49","symbolAliases":[{"foreign":{"id":12278,"name":"AccessControlUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"67:24:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":12281,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13414,"sourceUnit":949,"src":"174:98:49","symbolAliases":[{"foreign":{"id":12280,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"183:13:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":12283,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13414,"sourceUnit":1131,"src":"273:102:49","symbolAliases":[{"foreign":{"id":12282,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1130,"src":"282:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ISettings.sol","file":"../interfaces/ISettings.sol","id":12285,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13414,"sourceUnit":17537,"src":"377:56:49","symbolAliases":[{"foreign":{"id":12284,"name":"ISettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17536,"src":"386:9:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"./Structs.sol","id":12287,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13414,"sourceUnit":16218,"src":"434:42:49","symbolAliases":[{"foreign":{"id":12286,"name":"EpochInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"443:9:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IConsensus.sol","file":"../interfaces/IConsensus.sol","id":12289,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13414,"sourceUnit":17377,"src":"477:58:49","symbolAliases":[{"foreign":{"id":12288,"name":"IConsensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17376,"src":"486:10:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/libs/SettingsConstants.sol","file":"../libs/SettingsConstants.sol","id":12291,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13414,"sourceUnit":17797,"src":"537:66:49","symbolAliases":[{"foreign":{"id":12290,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"546:17:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/TacInitializable.sol","file":"./TacInitializable.sol","id":12293,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13414,"sourceUnit":16248,"src":"604:58:49","symbolAliases":[{"foreign":{"id":12292,"name":"TacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16247,"src":"613:16:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12294,"name":"TacInitializable","nameLocations":["686:16:49"],"nodeType":"IdentifierPath","referencedDeclaration":16247,"src":"686:16:49"},"id":12295,"nodeType":"InheritanceSpecifier","src":"686:16:49"},{"baseName":{"id":12296,"name":"UUPSUpgradeable","nameLocations":["704:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":1130,"src":"704:15:49"},"id":12297,"nodeType":"InheritanceSpecifier","src":"704:15:49"},{"baseName":{"id":12298,"name":"AccessControlUpgradeable","nameLocations":["721:24:49"],"nodeType":"IdentifierPath","referencedDeclaration":362,"src":"721:24:49"},"id":12299,"nodeType":"InheritanceSpecifier","src":"721:24:49"},{"baseName":{"id":12300,"name":"IConsensus","nameLocations":["747:10:49"],"nodeType":"IdentifierPath","referencedDeclaration":17376,"src":"747:10:49"},"id":12301,"nodeType":"InheritanceSpecifier","src":"747:10:49"}],"canonicalName":"Consensus","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":13413,"linearizedBaseContracts":[13413,17376,362,2913,8493,2996,2873,1130,3265,16247,17543,948],"name":"Consensus","nameLocation":"673:9:49","nodeType":"ContractDefinition","nodes":[{"errorSelector":"e0515209","id":12305,"name":"OnlyVoter","nameLocation":"785:9:49","nodeType":"ErrorDefinition","parameters":{"id":12304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12303,"mutability":"mutable","name":"voter","nameLocation":"803:5:49","nodeType":"VariableDeclaration","scope":12305,"src":"795:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12302,"name":"address","nodeType":"ElementaryTypeName","src":"795:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"794:15:49"},"src":"779:31:49"},{"errorSelector":"798042a5","id":12309,"name":"OnlyGroupAdmin","nameLocation":"821:14:49","nodeType":"ErrorDefinition","parameters":{"id":12308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12307,"mutability":"mutable","name":"admin","nameLocation":"844:5:49","nodeType":"VariableDeclaration","scope":12309,"src":"836:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12306,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"835:15:49"},"src":"815:36:49"},{"errorSelector":"d92e233d","id":12311,"name":"ZeroAddress","nameLocation":"862:11:49","nodeType":"ErrorDefinition","parameters":{"id":12310,"nodeType":"ParameterList","parameters":[],"src":"873:2:49"},"src":"856:20:49"},{"errorSelector":"368e710a","id":12313,"name":"InvalidGroupId","nameLocation":"887:14:49","nodeType":"ErrorDefinition","parameters":{"id":12312,"nodeType":"ParameterList","parameters":[],"src":"901:2:49"},"src":"881:23:49"},{"errorSelector":"dfdfbc2d","id":12317,"name":"GroupAlreadyAdded","nameLocation":"915:17:49","nodeType":"ErrorDefinition","parameters":{"id":12316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12315,"mutability":"mutable","name":"groupId","nameLocation":"941:7:49","nodeType":"VariableDeclaration","scope":12317,"src":"933:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"933:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"932:17:49"},"src":"909:41:49"},{"errorSelector":"93f4ac62","id":12321,"name":"GroupDoesntExist","nameLocation":"961:16:49","nodeType":"ErrorDefinition","parameters":{"id":12320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12319,"mutability":"mutable","name":"groupId","nameLocation":"986:7:49","nodeType":"VariableDeclaration","scope":12321,"src":"978:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"978:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"977:17:49"},"src":"955:40:49"},{"errorSelector":"5a02775c","id":12325,"name":"GroupIsNotEmpty","nameLocation":"1006:15:49","nodeType":"ErrorDefinition","parameters":{"id":12324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12323,"mutability":"mutable","name":"groupId","nameLocation":"1030:7:49","nodeType":"VariableDeclaration","scope":12325,"src":"1022:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1022:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1021:17:49"},"src":"1000:39:49"},{"errorSelector":"a6839cdc","id":12331,"name":"VoterAlreadyAdded","nameLocation":"1050:17:49","nodeType":"ErrorDefinition","parameters":{"id":12330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12327,"mutability":"mutable","name":"groupId","nameLocation":"1076:7:49","nodeType":"VariableDeclaration","scope":12331,"src":"1068:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1068:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12329,"mutability":"mutable","name":"voter","nameLocation":"1093:5:49","nodeType":"VariableDeclaration","scope":12331,"src":"1085:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12328,"name":"address","nodeType":"ElementaryTypeName","src":"1085:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1067:32:49"},"src":"1044:56:49"},{"errorSelector":"f9a5ac4b","id":12335,"name":"VoterAlreadyRemoved","nameLocation":"1111:19:49","nodeType":"ErrorDefinition","parameters":{"id":12334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12333,"mutability":"mutable","name":"voter","nameLocation":"1139:5:49","nodeType":"VariableDeclaration","scope":12335,"src":"1131:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12332,"name":"address","nodeType":"ElementaryTypeName","src":"1131:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1130:15:49"},"src":"1105:41:49"},{"errorSelector":"5e79c2bc","id":12337,"name":"VotingIsNotActive","nameLocation":"1157:17:49","nodeType":"ErrorDefinition","parameters":{"id":12336,"nodeType":"ParameterList","parameters":[],"src":"1174:2:49"},"src":"1151:26:49"},{"errorSelector":"27ead06f","id":12341,"name":"VoterAlreadyVoted","nameLocation":"1188:17:49","nodeType":"ErrorDefinition","parameters":{"id":12340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12339,"mutability":"mutable","name":"voter","nameLocation":"1214:5:49","nodeType":"VariableDeclaration","scope":12341,"src":"1206:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12338,"name":"address","nodeType":"ElementaryTypeName","src":"1206:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1205:15:49"},"src":"1182:39:49"},{"anonymous":false,"eventSelector":"ccdf41482c7267f877a85c0080dfcb5b0312bb8e08facbdf733b545447b0f9cc","id":12347,"name":"ConsensusReached","nameLocation":"1247:16:49","nodeType":"EventDefinition","parameters":{"id":12346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12343,"indexed":false,"mutability":"mutable","name":"currEpochStartTime","nameLocation":"1271:18:49","nodeType":"VariableDeclaration","scope":12347,"src":"1264:25:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12342,"name":"uint64","nodeType":"ElementaryTypeName","src":"1264:6:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12345,"indexed":false,"mutability":"mutable","name":"merkleRoot","nameLocation":"1299:10:49","nodeType":"VariableDeclaration","scope":12347,"src":"1291:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1291:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1263:47:49"},"src":"1241:70:49"},{"anonymous":false,"eventSelector":"8972e12e089a1ae976976f71bea607670287871127b417136bf394b144082d34","id":12352,"name":"ConsensusEpochStarted","nameLocation":"1322:21:49","nodeType":"EventDefinition","parameters":{"id":12351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12350,"indexed":false,"mutability":"mutable","name":"epochInfo","nameLocation":"1354:9:49","nodeType":"VariableDeclaration","scope":12352,"src":"1344:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo"},"typeName":{"id":12349,"nodeType":"UserDefinedTypeName","pathNode":{"id":12348,"name":"EpochInfo","nameLocations":["1344:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":16098,"src":"1344:9:49"},"referencedDeclaration":16098,"src":"1344:9:49","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_storage_ptr","typeString":"struct EpochInfo"}},"visibility":"internal"}],"src":"1343:21:49"},"src":"1316:49:49"},{"anonymous":false,"eventSelector":"300e3533b6d3e4f301056ec7a50e58b4306efb09a2d299251f641e1da425ebe8","id":12356,"name":"GroupAdded","nameLocation":"1376:10:49","nodeType":"EventDefinition","parameters":{"id":12355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12354,"indexed":false,"mutability":"mutable","name":"groupId","nameLocation":"1395:7:49","nodeType":"VariableDeclaration","scope":12356,"src":"1387:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1387:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1386:17:49"},"src":"1370:34:49"},{"anonymous":false,"eventSelector":"f2c5d250e7f5e3d0a00af1ab95adfe8fa8da11ad3c6bd195b6cd09688ba317bb","id":12362,"name":"VoterAdded","nameLocation":"1415:10:49","nodeType":"EventDefinition","parameters":{"id":12361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12358,"indexed":false,"mutability":"mutable","name":"groupId","nameLocation":"1434:7:49","nodeType":"VariableDeclaration","scope":12362,"src":"1426:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1426:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12360,"indexed":false,"mutability":"mutable","name":"voterAddress","nameLocation":"1451:12:49","nodeType":"VariableDeclaration","scope":12362,"src":"1443:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12359,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1425:39:49"},"src":"1409:56:49"},{"anonymous":false,"eventSelector":"a14a79af012d1756818f9bd59ccfc9ad185a71df86b9392d9059d9e6faf6d644","id":12366,"name":"VoterRemoved","nameLocation":"1476:12:49","nodeType":"EventDefinition","parameters":{"id":12365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12364,"indexed":false,"mutability":"mutable","name":"voterAddress","nameLocation":"1497:12:49","nodeType":"VariableDeclaration","scope":12366,"src":"1489:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12363,"name":"address","nodeType":"ElementaryTypeName","src":"1489:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1488:22:49"},"src":"1470:41:49"},{"constant":true,"functionSelector":"2a0acc6a","id":12371,"mutability":"constant","name":"ADMIN","nameLocation":"1559:5:49","nodeType":"VariableDeclaration","scope":13413,"src":"1535:50:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1535:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"41444d494e","id":12369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1577:7:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42","typeString":"literal_string \"ADMIN\""},"value":"ADMIN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42","typeString":"literal_string \"ADMIN\""}],"id":12368,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1567:9:49","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1567:18:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"304895f1","id":12376,"mutability":"constant","name":"EPOCH_MANAGER","nameLocation":"1615:13:49","nodeType":"VariableDeclaration","scope":13413,"src":"1591:66:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1591:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"45504f43485f4d414e41474552","id":12374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1641:15:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb98d3582351a85c7e45e5d913a683b101fd521ef4e097faf6539a7475de6f4d","typeString":"literal_string \"EPOCH_MANAGER\""},"value":"EPOCH_MANAGER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bb98d3582351a85c7e45e5d913a683b101fd521ef4e097faf6539a7475de6f4d","typeString":"literal_string \"EPOCH_MANAGER\""}],"id":12373,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1631:9:49","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1631:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"documentation":{"id":12377,"nodeType":"StructuredDocumentation","src":"1664:55:49","text":" @dev contract with protocol settings"},"id":12380,"mutability":"mutable","name":"_settings","nameLocation":"1743:9:49","nodeType":"VariableDeclaration","scope":13413,"src":"1724:28:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"},"typeName":{"id":12379,"nodeType":"UserDefinedTypeName","pathNode":{"id":12378,"name":"ISettings","nameLocations":["1724:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":17536,"src":"1724:9:49"},"referencedDeclaration":17536,"src":"1724:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"}},"visibility":"internal"},{"canonicalName":"Consensus.GroupInfo","id":12385,"members":[{"constant":false,"id":12382,"mutability":"mutable","name":"groupId","nameLocation":"1813:7:49","nodeType":"VariableDeclaration","scope":12385,"src":"1805:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1805:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12384,"mutability":"mutable","name":"admin","nameLocation":"1838:5:49","nodeType":"VariableDeclaration","scope":12385,"src":"1830:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12383,"name":"address","nodeType":"ElementaryTypeName","src":"1830:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"GroupInfo","nameLocation":"1785:9:49","nodeType":"StructDefinition","scope":13413,"src":"1778:72:49","visibility":"public"},{"constant":false,"id":12389,"mutability":"mutable","name":"groupsToAdd","nameLocation":"1867:11:49","nodeType":"VariableDeclaration","scope":13413,"src":"1855:23:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage","typeString":"struct Consensus.GroupInfo[]"},"typeName":{"baseType":{"id":12387,"nodeType":"UserDefinedTypeName","pathNode":{"id":12386,"name":"GroupInfo","nameLocations":["1855:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":12385,"src":"1855:9:49"},"referencedDeclaration":12385,"src":"1855:9:49","typeDescriptions":{"typeIdentifier":"t_struct$_GroupInfo_$12385_storage_ptr","typeString":"struct Consensus.GroupInfo"}},"id":12388,"nodeType":"ArrayTypeName","src":"1855:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage_ptr","typeString":"struct Consensus.GroupInfo[]"}},"visibility":"internal"},{"constant":false,"documentation":{"id":12390,"nodeType":"StructuredDocumentation","src":"1884:56:49","text":" @dev map with group's admin addresses"},"functionSelector":"9e031bec","id":12394,"mutability":"mutable","name":"groupsAdmins","nameLocation":"1994:12:49","nodeType":"VariableDeclaration","scope":13413,"src":"1945:61:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":12393,"keyName":"groupId","keyNameLocation":"1961:7:49","keyType":{"id":12391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1953:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1945:41:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueName":"admin","valueNameLocation":"1980:5:49","valueType":{"id":12392,"name":"address","nodeType":"ElementaryTypeName","src":"1972:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"documentation":{"id":12395,"nodeType":"StructuredDocumentation","src":"2012:53:49","text":" @dev array, contains each group id"},"id":12398,"mutability":"mutable","name":"groupIds","nameLocation":"2080:8:49","nodeType":"VariableDeclaration","scope":13413,"src":"2070:18:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2070:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12397,"nodeType":"ArrayTypeName","src":"2070:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"canonicalName":"Consensus.VoterInfo","id":12403,"members":[{"constant":false,"id":12400,"mutability":"mutable","name":"groupId","nameLocation":"2147:7:49","nodeType":"VariableDeclaration","scope":12403,"src":"2139:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2139:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12402,"mutability":"mutable","name":"voterAddress","nameLocation":"2172:12:49","nodeType":"VariableDeclaration","scope":12403,"src":"2164:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12401,"name":"address","nodeType":"ElementaryTypeName","src":"2164:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"VoterInfo","nameLocation":"2120:9:49","nodeType":"StructDefinition","scope":13413,"src":"2113:78:49","visibility":"public"},{"constant":false,"id":12407,"mutability":"mutable","name":"votersToAdd","nameLocation":"2208:11:49","nodeType":"VariableDeclaration","scope":13413,"src":"2196:23:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage","typeString":"struct Consensus.VoterInfo[]"},"typeName":{"baseType":{"id":12405,"nodeType":"UserDefinedTypeName","pathNode":{"id":12404,"name":"VoterInfo","nameLocations":["2196:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":12403,"src":"2196:9:49"},"referencedDeclaration":12403,"src":"2196:9:49","typeDescriptions":{"typeIdentifier":"t_struct$_VoterInfo_$12403_storage_ptr","typeString":"struct Consensus.VoterInfo"}},"id":12406,"nodeType":"ArrayTypeName","src":"2196:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage_ptr","typeString":"struct Consensus.VoterInfo[]"}},"visibility":"internal"},{"constant":false,"id":12410,"mutability":"mutable","name":"votersToRemove","nameLocation":"2235:14:49","nodeType":"VariableDeclaration","scope":13413,"src":"2225:24:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":12408,"name":"address","nodeType":"ElementaryTypeName","src":"2225:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12409,"nodeType":"ArrayTypeName","src":"2225:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"documentation":{"id":12411,"nodeType":"StructuredDocumentation","src":"2255:51:49","text":" @dev mapping of voter's group id"},"functionSelector":"0a514cf2","id":12415,"mutability":"mutable","name":"voterToGroupId","nameLocation":"2360:14:49","nodeType":"VariableDeclaration","scope":13413,"src":"2311:63:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":12414,"keyName":"voter","keyNameLocation":"2327:5:49","keyType":{"id":12412,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2311:41:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"groupId","valueNameLocation":"2344:7:49","valueType":{"id":12413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2336:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"constant":false,"documentation":{"id":12416,"nodeType":"StructuredDocumentation","src":"2380:71:49","text":" @dev mapping of total number of voters on each group"},"functionSelector":"14770466","id":12420,"mutability":"mutable","name":"inGroupVotersNum","nameLocation":"2503:16:49","nodeType":"VariableDeclaration","scope":13413,"src":"2456:63:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":12419,"keyName":"groupId","keyNameLocation":"2472:7:49","keyType":{"id":12417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2464:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2456:39:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"num","valueNameLocation":"2491:3:49","valueType":{"id":12418,"name":"uint256","nodeType":"ElementaryTypeName","src":"2483:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":12421,"nodeType":"StructuredDocumentation","src":"2526:129:49","text":" @dev EVM consensus votes number for each group\n @dev value = abi.encodePacked(evmEpochNum,evmMerkleRoot);"},"functionSelector":"9af37ad3","id":12427,"mutability":"mutable","name":"consensusVotesNumber","nameLocation":"2732:20:49","nodeType":"VariableDeclaration","scope":13413,"src":"2660:92:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes => mapping(bytes32 => uint256))"},"typeName":{"id":12426,"keyName":"value","keyNameLocation":"2674:5:49","keyType":{"id":12422,"name":"bytes","nodeType":"ElementaryTypeName","src":"2668:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"2660:64:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes => mapping(bytes32 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12425,"keyName":"groupId","keyNameLocation":"2700:7:49","keyType":{"id":12423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2692:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2683:40:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"num","valueNameLocation":"2719:3:49","valueType":{"id":12424,"name":"uint256","nodeType":"ElementaryTypeName","src":"2711:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":12428,"nodeType":"StructuredDocumentation","src":"2759:94:49","text":" @dev EVM and TVM consensus voters wich has already voted for specified value"},"functionSelector":"a278881c","id":12434,"mutability":"mutable","name":"hasVoted","nameLocation":"2915:8:49","nodeType":"VariableDeclaration","scope":13413,"src":"2858:65:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(bytes => mapping(address => bool))"},"typeName":{"id":12433,"keyName":"value","keyNameLocation":"2872:5:49","keyType":{"id":12429,"name":"bytes","nodeType":"ElementaryTypeName","src":"2866:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"2858:49:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(bytes => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12432,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12430,"name":"address","nodeType":"ElementaryTypeName","src":"2890:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2881:25:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12431,"name":"bool","nodeType":"ElementaryTypeName","src":"2901:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"constant":false,"functionSelector":"26678e5d","id":12438,"mutability":"mutable","name":"_roots","nameLocation":"3025:6:49","nodeType":"VariableDeclaration","scope":13413,"src":"2974:57:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":12437,"keyName":"root","keyNameLocation":"2990:4:49","keyType":{"id":12435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2982:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2974:43:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"validUntil","valueNameLocation":"3006:10:49","valueType":{"id":12436,"name":"uint256","nodeType":"ElementaryTypeName","src":"2998:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":12440,"mutability":"mutable","name":"_currentRoot","nameLocation":"3073:12:49","nodeType":"VariableDeclaration","scope":13413,"src":"3065:20:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12439,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3065:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12442,"mutability":"mutable","name":"_prevMessageCollectEndTime","nameLocation":"3120:26:49","nodeType":"VariableDeclaration","scope":13413,"src":"3105:41:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12441,"name":"uint64","nodeType":"ElementaryTypeName","src":"3105:6:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"private"},{"constant":false,"id":12444,"mutability":"mutable","name":"_messageCollectEndTime","nameLocation":"3167:22:49","nodeType":"VariableDeclaration","scope":13413,"src":"3152:37:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12443,"name":"uint64","nodeType":"ElementaryTypeName","src":"3152:6:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"private"},{"constant":false,"id":12446,"mutability":"mutable","name":"_prevEpochStartTime","nameLocation":"3210:19:49","nodeType":"VariableDeclaration","scope":13413,"src":"3195:34:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12445,"name":"uint64","nodeType":"ElementaryTypeName","src":"3195:6:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"private"},{"constant":false,"id":12448,"mutability":"mutable","name":"_currEpochStartTime","nameLocation":"3250:19:49","nodeType":"VariableDeclaration","scope":13413,"src":"3235:34:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12447,"name":"uint64","nodeType":"ElementaryTypeName","src":"3235:6:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"private"},{"constant":false,"id":12450,"mutability":"mutable","name":"_nextVotingTime","nameLocation":"3290:15:49","nodeType":"VariableDeclaration","scope":13413,"src":"3275:30:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12449,"name":"uint64","nodeType":"ElementaryTypeName","src":"3275:6:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"private"},{"body":{"id":12495,"nodeType":"Block","src":"3593:318:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12460,"name":"__AccessControl_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"3603:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3603:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12462,"nodeType":"ExpressionStatement","src":"3603:22:49"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12463,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"3635:22:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12465,"nodeType":"ExpressionStatement","src":"3635:24:49"},{"expression":{"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12466,"name":"_settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"3669:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12468,"name":"settingsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12455,"src":"3691:15:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12467,"name":"ISettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17536,"src":"3681:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISettings_$17536_$","typeString":"type(contract ISettings)"}},"id":12469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"}},"src":"3669:38:49","typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"}},"id":12471,"nodeType":"ExpressionStatement","src":"3669:38:49"},{"expression":{"arguments":[{"id":12473,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"3732:5:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12474,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"3739:5:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12472,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"3718:13:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":12475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3718:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12476,"nodeType":"ExpressionStatement","src":"3718:27:49"},{"expression":{"arguments":[{"id":12478,"name":"EPOCH_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"3769:13:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12479,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"3784:5:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12477,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"3755:13:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":12480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3755:35:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12481,"nodeType":"ExpressionStatement","src":"3755:35:49"},{"expression":{"arguments":[{"id":12483,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"3811:5:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12484,"name":"adminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12453,"src":"3818:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12482,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"3800:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":12485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:31:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12486,"nodeType":"ExpressionStatement","src":"3800:31:49"},{"expression":{"arguments":[{"id":12488,"name":"EPOCH_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"3852:13:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12489,"name":"adminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12453,"src":"3867:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12487,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"3841:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":12490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3841:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12491,"nodeType":"ExpressionStatement","src":"3841:39:49"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12492,"name":"_startEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"3891:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3891:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12494,"nodeType":"ExpressionStatement","src":"3891:13:49"}]},"documentation":{"id":12451,"nodeType":"StructuredDocumentation","src":"3312:190:49","text":" @dev Initializer function to initialize the contract with initial state.\n @param adminAddress Admin address.\n @param settingsAddress Settings contract address."},"functionSelector":"485cc955","id":12496,"implemented":true,"kind":"function","modifiers":[{"id":12458,"kind":"modifierInvocation","modifierName":{"id":12457,"name":"initializer","nameLocations":["3581:11:49"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"3581:11:49"},"nodeType":"ModifierInvocation","src":"3581:11:49"}],"name":"initialize","nameLocation":"3516:10:49","nodeType":"FunctionDefinition","parameters":{"id":12456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12453,"mutability":"mutable","name":"adminAddress","nameLocation":"3535:12:49","nodeType":"VariableDeclaration","scope":12496,"src":"3527:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12452,"name":"address","nodeType":"ElementaryTypeName","src":"3527:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12455,"mutability":"mutable","name":"settingsAddress","nameLocation":"3557:15:49","nodeType":"VariableDeclaration","scope":12496,"src":"3549:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12454,"name":"address","nodeType":"ElementaryTypeName","src":"3549:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3526:47:49"},"returnParameters":{"id":12459,"nodeType":"ParameterList","parameters":[],"src":"3593:0:49"},"scope":13413,"src":"3507:404:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1084],"body":{"id":12505,"nodeType":"Block","src":"3987:2:49","statements":[]},"id":12506,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12502,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"3980:5:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12503,"kind":"modifierInvocation","modifierName":{"id":12501,"name":"onlyRole","nameLocations":["3971:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"3971:8:49"},"nodeType":"ModifierInvocation","src":"3971:15:49"}],"name":"_authorizeUpgrade","nameLocation":"3926:17:49","nodeType":"FunctionDefinition","overrides":{"id":12500,"nodeType":"OverrideSpecifier","overrides":[],"src":"3962:8:49"},"parameters":{"id":12499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12506,"src":"3944:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12497,"name":"address","nodeType":"ElementaryTypeName","src":"3944:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3943:9:49"},"returnParameters":{"id":12504,"nodeType":"ParameterList","parameters":[],"src":"3987:0:49"},"scope":13413,"src":"3917:72:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12525,"nodeType":"Block","src":"4080:102:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12509,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"4094:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":12512,"indexExpression":{"expression":{"id":12510,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4109:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4113:6:49","memberName":"sender","nodeType":"MemberAccess","src":"4109:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4094:26:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4132:1:49","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":12514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4124:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4124:7:49","typeDescriptions":{}}},"id":12516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4124:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4094:40:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12523,"nodeType":"IfStatement","src":"4090:74:49","trueBody":{"errorCall":{"arguments":[{"expression":{"id":12519,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4153:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4157:6:49","memberName":"sender","nodeType":"MemberAccess","src":"4153:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12518,"name":"OnlyVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12305,"src":"4143:9:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4143:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12522,"nodeType":"RevertStatement","src":"4136:28:49"}},{"id":12524,"nodeType":"PlaceholderStatement","src":"4174:1:49"}]},"documentation":{"id":12507,"nodeType":"StructuredDocumentation","src":"3995:59:49","text":" @dev Modifier to restrict access to vote"},"id":12526,"name":"onlyVoter","nameLocation":"4068:9:49","nodeType":"ModifierDefinition","parameters":{"id":12508,"nodeType":"ParameterList","parameters":[],"src":"4077:2:49"},"src":"4059:123:49","virtual":false,"visibility":"internal"},{"body":{"id":12544,"nodeType":"Block","src":"4301:102:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12531,"name":"groupsAdmins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"4315:12:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":12533,"indexExpression":{"id":12532,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12529,"src":"4328:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4315:21:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":12534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4340:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4344:6:49","memberName":"sender","nodeType":"MemberAccess","src":"4340:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4315:35:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12542,"nodeType":"IfStatement","src":"4311:74:49","trueBody":{"errorCall":{"arguments":[{"expression":{"id":12538,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4374:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4378:6:49","memberName":"sender","nodeType":"MemberAccess","src":"4374:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12537,"name":"OnlyGroupAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12309,"src":"4359:14:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4359:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12541,"nodeType":"RevertStatement","src":"4352:33:49"}},{"id":12543,"nodeType":"PlaceholderStatement","src":"4395:1:49"}]},"documentation":{"id":12527,"nodeType":"StructuredDocumentation","src":"4188:67:49","text":" @dev Modifier to restrict access to group admins"},"id":12545,"name":"onlyGroupAdmin","nameLocation":"4269:14:49","nodeType":"ModifierDefinition","parameters":{"id":12530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12529,"mutability":"mutable","name":"groupId","nameLocation":"4292:7:49","nodeType":"VariableDeclaration","scope":12545,"src":"4284:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4284:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4283:17:49"},"src":"4260:143:49","virtual":false,"visibility":"internal"},{"baseFunctions":[17326],"body":{"id":12622,"nodeType":"Block","src":"4619:450:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12556,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12548,"src":"4633:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4652:1:49","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":12558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4644:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4644:7:49","typeDescriptions":{}}},"id":12560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4644:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4633:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12565,"nodeType":"IfStatement","src":"4629:50:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12562,"name":"InvalidGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12313,"src":"4663:14:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4663:16:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12564,"nodeType":"RevertStatement","src":"4656:23:49"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12566,"name":"adminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12550,"src":"4693:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4717:1:49","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":12568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4709:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12567,"name":"address","nodeType":"ElementaryTypeName","src":"4709:7:49","typeDescriptions":{}}},"id":12570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4709:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4693:26:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12575,"nodeType":"IfStatement","src":"4689:52:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12572,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"4728:11:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4728:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12574,"nodeType":"RevertStatement","src":"4721:20:49"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12576,"name":"groupsAdmins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"4755:12:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":12578,"indexExpression":{"id":12577,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12548,"src":"4768:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4755:21:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4788:1:49","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":12580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4780:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12579,"name":"address","nodeType":"ElementaryTypeName","src":"4780:7:49","typeDescriptions":{}}},"id":12582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4780:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4755:35:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12588,"nodeType":"IfStatement","src":"4751:74:49","trueBody":{"errorCall":{"arguments":[{"id":12585,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12548,"src":"4817:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12584,"name":"GroupAlreadyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12317,"src":"4799:17:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":12586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4799:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12587,"nodeType":"RevertStatement","src":"4792:33:49"}},{"body":{"id":12611,"nodeType":"Block","src":"4874:128:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":12596,"name":"groupsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"4892:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage","typeString":"struct Consensus.GroupInfo storage ref[] storage ref"}},"id":12598,"indexExpression":{"id":12597,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12590,"src":"4904:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4892:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_GroupInfo_$12385_storage","typeString":"struct Consensus.GroupInfo storage ref"}},"id":12599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4907:7:49","memberName":"groupId","nodeType":"MemberAccess","referencedDeclaration":12382,"src":"4892:22:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12600,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12548,"src":"4918:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4892:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12606,"nodeType":"IfStatement","src":"4888:72:49","trueBody":{"errorCall":{"arguments":[{"id":12603,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12548,"src":"4952:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12602,"name":"GroupAlreadyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12317,"src":"4934:17:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":12604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4934:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12605,"nodeType":"RevertStatement","src":"4927:33:49"}},{"id":12610,"nodeType":"UncheckedBlock","src":"4974:18:49","statements":[{"expression":{"id":12608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4986:3:49","subExpression":{"id":12607,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12590,"src":"4986:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12609,"nodeType":"ExpressionStatement","src":"4986:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12592,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12590,"src":"4849:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12593,"name":"groupsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"4853:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage","typeString":"struct Consensus.GroupInfo storage ref[] storage ref"}},"id":12594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4865:6:49","memberName":"length","nodeType":"MemberAccess","src":"4853:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4849:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12612,"initializationExpression":{"assignments":[12590],"declarations":[{"constant":false,"id":12590,"mutability":"mutable","name":"i","nameLocation":"4846:1:49","nodeType":"VariableDeclaration","scope":12612,"src":"4841:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12589,"name":"uint","nodeType":"ElementaryTypeName","src":"4841:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12591,"nodeType":"VariableDeclarationStatement","src":"4841:6:49"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"4836:166:49"},{"expression":{"arguments":[{"arguments":[{"id":12617,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12548,"src":"5039:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12618,"name":"adminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12550,"src":"5048:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12616,"name":"GroupInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12385,"src":"5029:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GroupInfo_$12385_storage_ptr_$","typeString":"type(struct Consensus.GroupInfo storage pointer)"}},"id":12619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5029:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GroupInfo_$12385_memory_ptr","typeString":"struct Consensus.GroupInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GroupInfo_$12385_memory_ptr","typeString":"struct Consensus.GroupInfo memory"}],"expression":{"id":12613,"name":"groupsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"5012:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage","typeString":"struct Consensus.GroupInfo storage ref[] storage ref"}},"id":12615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5024:4:49","memberName":"push","nodeType":"MemberAccess","src":"5012:16:49","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage_ptr_$_t_struct$_GroupInfo_$12385_storage_$returns$__$attached_to$_t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage_ptr_$","typeString":"function (struct Consensus.GroupInfo storage ref[] storage pointer,struct Consensus.GroupInfo storage ref)"}},"id":12620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5012:50:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12621,"nodeType":"ExpressionStatement","src":"5012:50:49"}]},"documentation":{"id":12546,"nodeType":"StructuredDocumentation","src":"4409:123:49","text":" @dev Add new voter's group\n @param groupId group id\n @param adminAddress group admin address"},"functionSelector":"65d8dd34","id":12623,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12553,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"4612:5:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12554,"kind":"modifierInvocation","modifierName":{"id":12552,"name":"onlyRole","nameLocations":["4603:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"4603:8:49"},"nodeType":"ModifierInvocation","src":"4603:15:49"}],"name":"addGroup","nameLocation":"4546:8:49","nodeType":"FunctionDefinition","parameters":{"id":12551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12548,"mutability":"mutable","name":"groupId","nameLocation":"4563:7:49","nodeType":"VariableDeclaration","scope":12623,"src":"4555:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4555:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12550,"mutability":"mutable","name":"adminAddress","nameLocation":"4580:12:49","nodeType":"VariableDeclaration","scope":12623,"src":"4572:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12549,"name":"address","nodeType":"ElementaryTypeName","src":"4572:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4554:39:49"},"returnParameters":{"id":12555,"nodeType":"ParameterList","parameters":[],"src":"4619:0:49"},"scope":13413,"src":"4537:532:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12652,"nodeType":"Block","src":"5142:142:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12630,"name":"groupsAdmins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"5156:12:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":12632,"indexExpression":{"id":12631,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"5169:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5156:21:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5189:1:49","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":12634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5181:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12633,"name":"address","nodeType":"ElementaryTypeName","src":"5181:7:49","typeDescriptions":{}}},"id":12636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5181:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5156:35:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12639,"nodeType":"IfStatement","src":"5152:48:49","trueBody":{"functionReturnParameters":12629,"id":12638,"nodeType":"Return","src":"5193:7:49"}},{"expression":{"id":12644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12640,"name":"groupsAdmins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"5209:12:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":12642,"indexExpression":{"id":12641,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"5222:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5209:21:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12643,"name":"adminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12627,"src":"5233:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5209:36:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12645,"nodeType":"ExpressionStatement","src":"5209:36:49"},{"expression":{"arguments":[{"id":12649,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"5269:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12646,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"5255:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5264:4:49","memberName":"push","nodeType":"MemberAccess","src":"5255:13:49","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":12650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5255:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12651,"nodeType":"ExpressionStatement","src":"5255:22:49"}]},"id":12653,"implemented":true,"kind":"function","modifiers":[],"name":"_addGroup","nameLocation":"5084:9:49","nodeType":"FunctionDefinition","parameters":{"id":12628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12625,"mutability":"mutable","name":"groupId","nameLocation":"5102:7:49","nodeType":"VariableDeclaration","scope":12653,"src":"5094:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5094:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12627,"mutability":"mutable","name":"adminAddress","nameLocation":"5119:12:49","nodeType":"VariableDeclaration","scope":12653,"src":"5111:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12626,"name":"address","nodeType":"ElementaryTypeName","src":"5111:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5093:39:49"},"returnParameters":{"id":12629,"nodeType":"ParameterList","parameters":[],"src":"5142:0:49"},"scope":13413,"src":"5075:209:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12753,"nodeType":"Block","src":"5507:647:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12662,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"5521:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5540:1:49","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":12664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5532:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5532:7:49","typeDescriptions":{}}},"id":12666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5532:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5521:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12671,"nodeType":"IfStatement","src":"5517:50:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12668,"name":"InvalidGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12313,"src":"5551:14:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5551:16:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12670,"nodeType":"RevertStatement","src":"5544:23:49"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12672,"name":"groupsAdmins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"5581:12:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":12674,"indexExpression":{"id":12673,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"5594:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5581:21:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5614:1:49","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":12676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5606:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12675,"name":"address","nodeType":"ElementaryTypeName","src":"5606:7:49","typeDescriptions":{}}},"id":12678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5606:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5581:35:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12684,"nodeType":"IfStatement","src":"5577:73:49","trueBody":{"errorCall":{"arguments":[{"id":12681,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"5642:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12680,"name":"GroupDoesntExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12321,"src":"5625:16:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":12682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5625:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12683,"nodeType":"RevertStatement","src":"5618:32:49"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12685,"name":"inGroupVotersNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12420,"src":"5664:16:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":12687,"indexExpression":{"id":12686,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"5681:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5664:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5693:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5664:30:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12694,"nodeType":"IfStatement","src":"5660:67:49","trueBody":{"errorCall":{"arguments":[{"id":12691,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"5719:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12690,"name":"GroupIsNotEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12325,"src":"5703:15:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":12692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5703:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12693,"nodeType":"RevertStatement","src":"5696:31:49"}},{"expression":{"id":12702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12695,"name":"groupsAdmins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"5738:12:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":12697,"indexExpression":{"id":12696,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"5751:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5738:21:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":12700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5770:1:49","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":12699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5762:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12698,"name":"address","nodeType":"ElementaryTypeName","src":"5762:7:49","typeDescriptions":{}}},"id":12701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5738:34:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12703,"nodeType":"ExpressionStatement","src":"5738:34:49"},{"assignments":[12708],"declarations":[{"constant":false,"id":12708,"mutability":"mutable","name":"newGroups","nameLocation":"5800:9:49","nodeType":"VariableDeclaration","scope":12753,"src":"5783:26:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5783:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12707,"nodeType":"ArrayTypeName","src":"5783:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":12715,"initialValue":{"arguments":[{"expression":{"id":12712,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"5826:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5835:6:49","memberName":"length","nodeType":"MemberAccess","src":"5826:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5812:13:49","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":12709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5816:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12710,"nodeType":"ArrayTypeName","src":"5816:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":12714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5812:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5783:59:49"},{"assignments":[12717],"declarations":[{"constant":false,"id":12717,"mutability":"mutable","name":"n","nameLocation":"5857:1:49","nodeType":"VariableDeclaration","scope":12753,"src":"5852:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12716,"name":"uint","nodeType":"ElementaryTypeName","src":"5852:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12718,"nodeType":"VariableDeclarationStatement","src":"5852:6:49"},{"assignments":[12720],"declarations":[{"constant":false,"id":12720,"mutability":"mutable","name":"i","nameLocation":"5873:1:49","nodeType":"VariableDeclaration","scope":12753,"src":"5868:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12719,"name":"uint","nodeType":"ElementaryTypeName","src":"5868:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12721,"nodeType":"VariableDeclarationStatement","src":"5868:6:49"},{"body":{"id":12746,"nodeType":"Block","src":"5912:144:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12726,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"5930:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12728,"indexExpression":{"id":12727,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12720,"src":"5939:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5930:11:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":12729,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"5945:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5930:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12741,"nodeType":"IfStatement","src":"5926:89:49","trueBody":{"id":12740,"nodeType":"Block","src":"5954:61:49","statements":[{"expression":{"id":12738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12731,"name":"newGroups","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12708,"src":"5972:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":12734,"indexExpression":{"id":12733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5982:3:49","subExpression":{"id":12732,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12717,"src":"5982:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5972:14:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":12735,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"5989:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12737,"indexExpression":{"id":12736,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12720,"src":"5998:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5989:11:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5972:28:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12739,"nodeType":"ExpressionStatement","src":"5972:28:49"}]}},{"id":12745,"nodeType":"UncheckedBlock","src":"6028:18:49","statements":[{"expression":{"id":12743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6040:3:49","subExpression":{"id":12742,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12720,"src":"6040:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12744,"nodeType":"ExpressionStatement","src":"6040:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12722,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12720,"src":"5891:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12723,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"5895:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5904:6:49","memberName":"length","nodeType":"MemberAccess","src":"5895:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5891:19:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12747,"nodeType":"WhileStatement","src":"5884:172:49"},{"AST":{"nativeSrc":"6074:44:49","nodeType":"YulBlock","src":"6074:44:49","statements":[{"expression":{"arguments":[{"name":"newGroups","nativeSrc":"6095:9:49","nodeType":"YulIdentifier","src":"6095:9:49"},{"name":"n","nativeSrc":"6106:1:49","nodeType":"YulIdentifier","src":"6106:1:49"}],"functionName":{"name":"mstore","nativeSrc":"6088:6:49","nodeType":"YulIdentifier","src":"6088:6:49"},"nativeSrc":"6088:20:49","nodeType":"YulFunctionCall","src":"6088:20:49"},"nativeSrc":"6088:20:49","nodeType":"YulExpressionStatement","src":"6088:20:49"}]},"evmVersion":"paris","externalReferences":[{"declaration":12717,"isOffset":false,"isSlot":false,"src":"6106:1:49","valueSize":1},{"declaration":12708,"isOffset":false,"isSlot":false,"src":"6095:9:49","valueSize":1}],"id":12748,"nodeType":"InlineAssembly","src":"6065:53:49"},{"expression":{"id":12751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12749,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"6127:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12750,"name":"newGroups","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12708,"src":"6138:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"6127:20:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12752,"nodeType":"ExpressionStatement","src":"6127:20:49"}]},"documentation":{"id":12654,"nodeType":"StructuredDocumentation","src":"5290:149:49","text":" @dev removing of existing group\n remove only if group is empty (no voters in group)\n @param groupId group id to remove"},"functionSelector":"43273213","id":12754,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12659,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"5500:5:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12660,"kind":"modifierInvocation","modifierName":{"id":12658,"name":"onlyRole","nameLocations":["5491:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"5491:8:49"},"nodeType":"ModifierInvocation","src":"5491:15:49"}],"name":"removeGroup","nameLocation":"5453:11:49","nodeType":"FunctionDefinition","parameters":{"id":12657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12656,"mutability":"mutable","name":"groupId","nameLocation":"5473:7:49","nodeType":"VariableDeclaration","scope":12754,"src":"5465:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5465:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5464:17:49"},"returnParameters":{"id":12661,"nodeType":"ParameterList","parameters":[],"src":"5507:0:49"},"scope":13413,"src":"5444:710:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12781,"nodeType":"Block","src":"6388:121:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12765,"name":"newAdminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12759,"src":"6402:15:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6429:1:49","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":12767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6421:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12766,"name":"address","nodeType":"ElementaryTypeName","src":"6421:7:49","typeDescriptions":{}}},"id":12769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6421:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6402:29:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12774,"nodeType":"IfStatement","src":"6398:55:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12771,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"6440:11:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6440:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12773,"nodeType":"RevertStatement","src":"6433:20:49"}},{"expression":{"id":12779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12775,"name":"groupsAdmins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"6463:12:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":12777,"indexExpression":{"id":12776,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12757,"src":"6476:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6463:21:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12778,"name":"newAdminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12759,"src":"6487:15:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6463:39:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12780,"nodeType":"ExpressionStatement","src":"6463:39:49"}]},"documentation":{"id":12755,"nodeType":"StructuredDocumentation","src":"6160:125:49","text":" Set new group admin address\n @param groupId group id\n @param newAdminAddress new admin address"},"functionSelector":"04fab6e1","id":12782,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12762,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12757,"src":"6379:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12763,"kind":"modifierInvocation","modifierName":{"id":12761,"name":"onlyGroupAdmin","nameLocations":["6364:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":12545,"src":"6364:14:49"},"nodeType":"ModifierInvocation","src":"6364:23:49"}],"name":"setGroupAdmin","nameLocation":"6299:13:49","nodeType":"FunctionDefinition","parameters":{"id":12760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12757,"mutability":"mutable","name":"groupId","nameLocation":"6321:7:49","nodeType":"VariableDeclaration","scope":12782,"src":"6313:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6313:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12759,"mutability":"mutable","name":"newAdminAddress","nameLocation":"6338:15:49","nodeType":"VariableDeclaration","scope":12782,"src":"6330:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12758,"name":"address","nodeType":"ElementaryTypeName","src":"6330:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6312:42:49"},"returnParameters":{"id":12764,"nodeType":"ParameterList","parameters":[],"src":"6388:0:49"},"scope":13413,"src":"6290:219:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17334],"body":{"id":12861,"nodeType":"Block","src":"6733:520:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12793,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"6747:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6771:1:49","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":12795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6763:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12794,"name":"address","nodeType":"ElementaryTypeName","src":"6763:7:49","typeDescriptions":{}}},"id":12797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6763:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6747:26:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12802,"nodeType":"IfStatement","src":"6743:52:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12799,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"6782:11:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6782:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12801,"nodeType":"RevertStatement","src":"6775:20:49"}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12803,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"6809:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":12805,"indexExpression":{"id":12804,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"6824:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6809:28:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6849:1:49","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":12807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6841:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6841:7:49","typeDescriptions":{}}},"id":12809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6841:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6809:42:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12818,"nodeType":"IfStatement","src":"6805:116:49","trueBody":{"errorCall":{"arguments":[{"baseExpression":{"id":12812,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"6878:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":12814,"indexExpression":{"id":12813,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"6893:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6878:28:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12815,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"6908:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12811,"name":"VoterAlreadyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12331,"src":"6860:17:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$_t_address_$returns$_t_error_$","typeString":"function (bytes32,address) pure returns (error)"}},"id":12816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6860:61:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12817,"nodeType":"RevertStatement","src":"6853:68:49"}},{"body":{"id":12845,"nodeType":"Block","src":"6970:167:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":12826,"name":"votersToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"6988:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage","typeString":"struct Consensus.VoterInfo storage ref[] storage ref"}},"id":12828,"indexExpression":{"id":12827,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12820,"src":"7000:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6988:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_VoterInfo_$12403_storage","typeString":"struct Consensus.VoterInfo storage ref"}},"id":12829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7003:12:49","memberName":"voterAddress","nodeType":"MemberAccess","referencedDeclaration":12402,"src":"6988:27:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12830,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"7019:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6988:43:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12840,"nodeType":"IfStatement","src":"6984:111:49","trueBody":{"errorCall":{"arguments":[{"expression":{"baseExpression":{"id":12833,"name":"votersToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"7058:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage","typeString":"struct Consensus.VoterInfo storage ref[] storage ref"}},"id":12835,"indexExpression":{"id":12834,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12820,"src":"7070:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7058:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_VoterInfo_$12403_storage","typeString":"struct Consensus.VoterInfo storage ref"}},"id":12836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7073:7:49","memberName":"groupId","nodeType":"MemberAccess","referencedDeclaration":12400,"src":"7058:22:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12837,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"7082:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12832,"name":"VoterAlreadyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12331,"src":"7040:17:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$_t_address_$returns$_t_error_$","typeString":"function (bytes32,address) pure returns (error)"}},"id":12838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7040:55:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12839,"nodeType":"RevertStatement","src":"7033:62:49"}},{"id":12844,"nodeType":"UncheckedBlock","src":"7109:18:49","statements":[{"expression":{"id":12842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7121:3:49","subExpression":{"id":12841,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12820,"src":"7121:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12843,"nodeType":"ExpressionStatement","src":"7121:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12822,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12820,"src":"6945:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12823,"name":"votersToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"6949:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage","typeString":"struct Consensus.VoterInfo storage ref[] storage ref"}},"id":12824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6961:6:49","memberName":"length","nodeType":"MemberAccess","src":"6949:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6945:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12846,"initializationExpression":{"assignments":[12820],"declarations":[{"constant":false,"id":12820,"mutability":"mutable","name":"i","nameLocation":"6942:1:49","nodeType":"VariableDeclaration","scope":12846,"src":"6937:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12819,"name":"uint","nodeType":"ElementaryTypeName","src":"6937:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12821,"nodeType":"VariableDeclarationStatement","src":"6937:6:49"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"6932:205:49"},{"expression":{"arguments":[{"arguments":[{"id":12851,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12785,"src":"7174:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12852,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"7183:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12850,"name":"VoterInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"7164:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_VoterInfo_$12403_storage_ptr_$","typeString":"type(struct Consensus.VoterInfo storage pointer)"}},"id":12853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7164:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_VoterInfo_$12403_memory_ptr","typeString":"struct Consensus.VoterInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_VoterInfo_$12403_memory_ptr","typeString":"struct Consensus.VoterInfo memory"}],"expression":{"id":12847,"name":"votersToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"7147:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage","typeString":"struct Consensus.VoterInfo storage ref[] storage ref"}},"id":12849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7159:4:49","memberName":"push","nodeType":"MemberAccess","src":"7147:16:49","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage_ptr_$_t_struct$_VoterInfo_$12403_storage_$returns$__$attached_to$_t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage_ptr_$","typeString":"function (struct Consensus.VoterInfo storage ref[] storage pointer,struct Consensus.VoterInfo storage ref)"}},"id":12854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7147:50:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12855,"nodeType":"ExpressionStatement","src":"7147:50:49"},{"eventCall":{"arguments":[{"id":12857,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12785,"src":"7224:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12858,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"7233:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12856,"name":"VoterAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12362,"src":"7213:10:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":12859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7213:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12860,"nodeType":"EmitStatement","src":"7208:38:49"}]},"documentation":{"id":12783,"nodeType":"StructuredDocumentation","src":"6515:123:49","text":" @dev Adds a new voter.\n @param groupId voter group id\n @param voterAddress voter evm address"},"functionSelector":"ef65792d","id":12862,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12790,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12785,"src":"6724:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12791,"kind":"modifierInvocation","modifierName":{"id":12789,"name":"onlyGroupAdmin","nameLocations":["6709:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":12545,"src":"6709:14:49"},"nodeType":"ModifierInvocation","src":"6709:23:49"}],"name":"addVoter","nameLocation":"6652:8:49","nodeType":"FunctionDefinition","parameters":{"id":12788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12785,"mutability":"mutable","name":"groupId","nameLocation":"6669:7:49","nodeType":"VariableDeclaration","scope":12862,"src":"6661:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6661:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12787,"mutability":"mutable","name":"voterAddress","nameLocation":"6686:12:49","nodeType":"VariableDeclaration","scope":12862,"src":"6678:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12786,"name":"address","nodeType":"ElementaryTypeName","src":"6678:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6660:39:49"},"returnParameters":{"id":12792,"nodeType":"ParameterList","parameters":[],"src":"6733:0:49"},"scope":13413,"src":"6643:610:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12890,"nodeType":"Block","src":"7326:156:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12869,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"7340:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":12871,"indexExpression":{"id":12870,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12866,"src":"7355:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7340:28:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7380:1:49","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":12873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7372:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7372:7:49","typeDescriptions":{}}},"id":12875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7372:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7340:42:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12878,"nodeType":"IfStatement","src":"7336:55:49","trueBody":{"functionReturnParameters":12868,"id":12877,"nodeType":"Return","src":"7384:7:49"}},{"expression":{"id":12883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12879,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"7400:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":12881,"indexExpression":{"id":12880,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12866,"src":"7415:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7400:28:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12882,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12864,"src":"7431:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7400:38:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12884,"nodeType":"ExpressionStatement","src":"7400:38:49"},{"expression":{"id":12888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7448:27:49","subExpression":{"baseExpression":{"id":12885,"name":"inGroupVotersNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12420,"src":"7448:16:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":12887,"indexExpression":{"id":12886,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12864,"src":"7465:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7448:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12889,"nodeType":"ExpressionStatement","src":"7448:27:49"}]},"id":12891,"implemented":true,"kind":"function","modifiers":[],"name":"_addVoter","nameLocation":"7268:9:49","nodeType":"FunctionDefinition","parameters":{"id":12867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12864,"mutability":"mutable","name":"groupId","nameLocation":"7286:7:49","nodeType":"VariableDeclaration","scope":12891,"src":"7278:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7278:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12866,"mutability":"mutable","name":"voterAddress","nameLocation":"7303:12:49","nodeType":"VariableDeclaration","scope":12891,"src":"7295:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12865,"name":"address","nodeType":"ElementaryTypeName","src":"7295:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7277:39:49"},"returnParameters":{"id":12868,"nodeType":"ParameterList","parameters":[],"src":"7326:0:49"},"scope":13413,"src":"7259:223:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[17340],"body":{"id":12935,"nodeType":"Block","src":"7686:278:49","statements":[{"body":{"id":12923,"nodeType":"Block","src":"7737:135:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12909,"name":"votersToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"7755:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12911,"indexExpression":{"id":12910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12903,"src":"7770:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7755:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12912,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"7776:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7755:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12918,"nodeType":"IfStatement","src":"7751:79:49","trueBody":{"errorCall":{"arguments":[{"id":12915,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"7817:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12914,"name":"VoterAlreadyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12335,"src":"7797:19:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7797:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12917,"nodeType":"RevertStatement","src":"7790:40:49"}},{"id":12922,"nodeType":"UncheckedBlock","src":"7844:18:49","statements":[{"expression":{"id":12920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7856:3:49","subExpression":{"id":12919,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12903,"src":"7856:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12921,"nodeType":"ExpressionStatement","src":"7856:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12905,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12903,"src":"7709:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12906,"name":"votersToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"7713:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7728:6:49","memberName":"length","nodeType":"MemberAccess","src":"7713:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7709:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12924,"initializationExpression":{"assignments":[12903],"declarations":[{"constant":false,"id":12903,"mutability":"mutable","name":"i","nameLocation":"7706:1:49","nodeType":"VariableDeclaration","scope":12924,"src":"7701:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12902,"name":"uint","nodeType":"ElementaryTypeName","src":"7701:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12904,"nodeType":"VariableDeclarationStatement","src":"7701:6:49"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"7696:176:49"},{"expression":{"arguments":[{"id":12928,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"7902:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12925,"name":"votersToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"7882:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7897:4:49","memberName":"push","nodeType":"MemberAccess","src":"7882:19:49","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":12929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7882:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12930,"nodeType":"ExpressionStatement","src":"7882:33:49"},{"eventCall":{"arguments":[{"id":12932,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"7944:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12931,"name":"VoterRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"7931:12:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7931:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12934,"nodeType":"EmitStatement","src":"7926:31:49"}]},"documentation":{"id":12892,"nodeType":"StructuredDocumentation","src":"7488:96:49","text":" @dev Remove voter.\n @param voterAddress Address of the voter to remove."},"functionSelector":"86c1ff68","id":12936,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"baseExpression":{"id":12897,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"7656:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":12899,"indexExpression":{"id":12898,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"7671:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7656:28:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12900,"kind":"modifierInvocation","modifierName":{"id":12896,"name":"onlyGroupAdmin","nameLocations":["7641:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":12545,"src":"7641:14:49"},"nodeType":"ModifierInvocation","src":"7641:44:49"}],"name":"removeVoter","nameLocation":"7598:11:49","nodeType":"FunctionDefinition","parameters":{"id":12895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12894,"mutability":"mutable","name":"voterAddress","nameLocation":"7618:12:49","nodeType":"VariableDeclaration","scope":12936,"src":"7610:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12893,"name":"address","nodeType":"ElementaryTypeName","src":"7610:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7609:22:49"},"returnParameters":{"id":12901,"nodeType":"ParameterList","parameters":[],"src":"7686:0:49"},"scope":13413,"src":"7589:375:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12971,"nodeType":"Block","src":"8023:216:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12941,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"8037:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":12943,"indexExpression":{"id":12942,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12938,"src":"8052:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8037:28:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8077:1:49","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":12945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8069:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12944,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8069:7:49","typeDescriptions":{}}},"id":12947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8037:42:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12950,"nodeType":"IfStatement","src":"8033:55:49","trueBody":{"functionReturnParameters":12940,"id":12949,"nodeType":"Return","src":"8081:7:49"}},{"assignments":[12952],"declarations":[{"constant":false,"id":12952,"mutability":"mutable","name":"groupId","nameLocation":"8106:7:49","nodeType":"VariableDeclaration","scope":12971,"src":"8098:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8098:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12956,"initialValue":{"baseExpression":{"id":12953,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"8116:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":12955,"indexExpression":{"id":12954,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12938,"src":"8131:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8116:28:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8098:46:49"},{"expression":{"id":12964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12957,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"8154:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":12959,"indexExpression":{"id":12958,"name":"voterAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12938,"src":"8169:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8154:28:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":12962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8193:1:49","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":12961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8185:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8185:7:49","typeDescriptions":{}}},"id":12963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8185:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8154:41:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12965,"nodeType":"ExpressionStatement","src":"8154:41:49"},{"expression":{"id":12969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"8205:27:49","subExpression":{"baseExpression":{"id":12966,"name":"inGroupVotersNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12420,"src":"8205:16:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":12968,"indexExpression":{"id":12967,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12952,"src":"8222:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8205:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12970,"nodeType":"ExpressionStatement","src":"8205:27:49"}]},"id":12972,"implemented":true,"kind":"function","modifiers":[],"name":"_removeVoter","nameLocation":"7979:12:49","nodeType":"FunctionDefinition","parameters":{"id":12939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12938,"mutability":"mutable","name":"voterAddress","nameLocation":"8000:12:49","nodeType":"VariableDeclaration","scope":12972,"src":"7992:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12937,"name":"address","nodeType":"ElementaryTypeName","src":"7992:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7991:22:49"},"returnParameters":{"id":12940,"nodeType":"ParameterList","parameters":[],"src":"8023:0:49"},"scope":13413,"src":"7970:269:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13018,"nodeType":"Block","src":"8343:392:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":12981,"name":"inGroupVotersNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12420,"src":"8357:16:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":12983,"indexExpression":{"id":12982,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12976,"src":"8374:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8357:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8386:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8357:30:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12988,"nodeType":"IfStatement","src":"8353:48:49","trueBody":{"expression":{"hexValue":"66616c7365","id":12986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8396:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":12980,"id":12987,"nodeType":"Return","src":"8389:12:49"}},{"assignments":[12990],"declarations":[{"constant":false,"id":12990,"mutability":"mutable","name":"requiredQuorum","nameLocation":"8417:14:49","nodeType":"VariableDeclaration","scope":13018,"src":"8412:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12989,"name":"uint","nodeType":"ElementaryTypeName","src":"8412:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13000,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12993,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"8459:17:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":12994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8477:32:49","memberName":"CONSENSUS_THRESHOLD_IN_GROUP_KEY","nodeType":"MemberAccess","referencedDeclaration":17745,"src":"8459:50:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12991,"name":"_settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"8434:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"}},"id":12992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8444:14:49","memberName":"getUintSetting","nodeType":"MemberAccess","referencedDeclaration":17475,"src":"8434:24:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint64_$","typeString":"function (bytes32) view external returns (uint64)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8434:76:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":12996,"name":"inGroupVotersNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12420,"src":"8513:16:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":12998,"indexExpression":{"id":12997,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12976,"src":"8530:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8513:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8434:104:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8412:126:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":13001,"name":"consensusVotesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12427,"src":"8552:20:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes memory => mapping(bytes32 => uint256))"}},"id":13003,"indexExpression":{"id":13002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12974,"src":"8573:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8552:27:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":13005,"indexExpression":{"id":13004,"name":"groupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12976,"src":"8580:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8552:36:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":13006,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"8591:17:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":13007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8609:13:49","memberName":"RATE_DECIMALS","nodeType":"MemberAccess","referencedDeclaration":17735,"src":"8591:31:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8552:70:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":13009,"name":"requiredQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12990,"src":"8626:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8552:88:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13016,"nodeType":"Block","src":"8692:37:49","statements":[{"expression":{"hexValue":"66616c7365","id":13014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8713:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":12980,"id":13015,"nodeType":"Return","src":"8706:12:49"}]},"id":13017,"nodeType":"IfStatement","src":"8548:181:49","trueBody":{"id":13013,"nodeType":"Block","src":"8642:36:49","statements":[{"expression":{"hexValue":"74727565","id":13011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8663:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12980,"id":13012,"nodeType":"Return","src":"8656:11:49"}]}}]},"id":13019,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInGroupConsensus","nameLocation":"8254:22:49","nodeType":"FunctionDefinition","parameters":{"id":12977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12974,"mutability":"mutable","name":"value","nameLocation":"8290:5:49","nodeType":"VariableDeclaration","scope":13019,"src":"8277:18:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12973,"name":"bytes","nodeType":"ElementaryTypeName","src":"8277:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12976,"mutability":"mutable","name":"groupId","nameLocation":"8305:7:49","nodeType":"VariableDeclaration","scope":13019,"src":"8297:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8297:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8276:37:49"},"returnParameters":{"id":12980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13019,"src":"8337:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12978,"name":"bool","nodeType":"ElementaryTypeName","src":"8337:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8336:6:49"},"scope":13413,"src":"8245:490:49","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13077,"nodeType":"Block","src":"8815:551:49","statements":[{"assignments":[13027],"declarations":[{"constant":false,"id":13027,"mutability":"mutable","name":"inGroupConsensusReached","nameLocation":"8830:23:49","nodeType":"VariableDeclaration","scope":13077,"src":"8825:28:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13026,"name":"uint","nodeType":"ElementaryTypeName","src":"8825:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13028,"nodeType":"VariableDeclarationStatement","src":"8825:28:49"},{"assignments":[13030],"declarations":[{"constant":false,"id":13030,"mutability":"mutable","name":"requiredQuorum","nameLocation":"8868:14:49","nodeType":"VariableDeclaration","scope":13077,"src":"8863:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13029,"name":"uint","nodeType":"ElementaryTypeName","src":"8863:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13039,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":13033,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"8910:17:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":13034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8928:30:49","memberName":"CONSENSUS_THRESHOLD_GROUPS_KEY","nodeType":"MemberAccess","referencedDeclaration":17740,"src":"8910:48:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13031,"name":"_settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"8885:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"}},"id":13032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8895:14:49","memberName":"getUintSetting","nodeType":"MemberAccess","referencedDeclaration":17475,"src":"8885:24:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint64_$","typeString":"function (bytes32) view external returns (uint64)"}},"id":13035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8885:74:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":13036,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"8962:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8971:6:49","memberName":"length","nodeType":"MemberAccess","src":"8962:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8885:92:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8863:114:49"},{"body":{"id":13073,"nodeType":"Block","src":"9023:315:49","statements":[{"expression":{"id":13057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13047,"name":"inGroupConsensusReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13027,"src":"9081:23:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"condition":{"arguments":[{"id":13049,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13021,"src":"9131:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"baseExpression":{"id":13050,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"9138:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13052,"indexExpression":{"id":13051,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13041,"src":"9147:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9138:11:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13048,"name":"_checkInGroupConsensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"9108:22:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes memory,bytes32) view returns (bool)"}},"id":13053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9108:42:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":13055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9157:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":13056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9108:50:49","trueExpression":{"hexValue":"31","id":13054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9153:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9081:77:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13058,"nodeType":"ExpressionStatement","src":"9081:77:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13059,"name":"inGroupConsensusReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13027,"src":"9176:23:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":13060,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"9202:17:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":13061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9220:13:49","memberName":"RATE_DECIMALS","nodeType":"MemberAccess","referencedDeclaration":17735,"src":"9202:31:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9176:57:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":13063,"name":"requiredQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13030,"src":"9237:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9176:75:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13068,"nodeType":"IfStatement","src":"9172:125:49","trueBody":{"id":13067,"nodeType":"Block","src":"9253:44:49","statements":[{"expression":{"hexValue":"74727565","id":13065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9278:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13025,"id":13066,"nodeType":"Return","src":"9271:11:49"}]}},{"id":13072,"nodeType":"UncheckedBlock","src":"9310:18:49","statements":[{"expression":{"id":13070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9322:3:49","subExpression":{"id":13069,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13041,"src":"9322:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13071,"nodeType":"ExpressionStatement","src":"9322:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13043,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13041,"src":"9001:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13044,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"9005:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9014:6:49","memberName":"length","nodeType":"MemberAccess","src":"9005:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9001:19:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13074,"initializationExpression":{"assignments":[13041],"declarations":[{"constant":false,"id":13041,"mutability":"mutable","name":"i","nameLocation":"8998:1:49","nodeType":"VariableDeclaration","scope":13074,"src":"8993:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13040,"name":"uint","nodeType":"ElementaryTypeName","src":"8993:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13042,"nodeType":"VariableDeclarationStatement","src":"8993:6:49"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"8988:350:49"},{"expression":{"hexValue":"66616c7365","id":13075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9354:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13025,"id":13076,"nodeType":"Return","src":"9347:12:49"}]},"id":13078,"implemented":true,"kind":"function","modifiers":[],"name":"_checkConsensus","nameLocation":"8750:15:49","nodeType":"FunctionDefinition","parameters":{"id":13022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13021,"mutability":"mutable","name":"value","nameLocation":"8779:5:49","nodeType":"VariableDeclaration","scope":13078,"src":"8766:18:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13020,"name":"bytes","nodeType":"ElementaryTypeName","src":"8766:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8765:20:49"},"returnParameters":{"id":13025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13078,"src":"8809:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13023,"name":"bool","nodeType":"ElementaryTypeName","src":"8809:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8808:6:49"},"scope":13413,"src":"8741:625:49","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[17348],"body":{"id":13187,"nodeType":"Block","src":"9630:1091:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13088,"name":"messageCollectEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13081,"src":"9689:21:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13089,"name":"_nextVotingTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12450,"src":"9713:15:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9689:39:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13092,"nodeType":"IfStatement","src":"9685:52:49","trueBody":{"functionReturnParameters":13087,"id":13091,"nodeType":"Return","src":"9730:7:49"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13093,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9790:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9796:9:49","memberName":"timestamp","nodeType":"MemberAccess","src":"9790:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13095,"name":"_nextVotingTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12450,"src":"9808:15:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9790:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13100,"nodeType":"IfStatement","src":"9786:65:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13097,"name":"VotingIsNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"9832:17:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9832:19:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13099,"nodeType":"RevertStatement","src":"9825:26:49"}},{"assignments":[13102],"declarations":[{"constant":false,"id":13102,"mutability":"mutable","name":"value","nameLocation":"9875:5:49","nodeType":"VariableDeclaration","scope":13187,"src":"9862:18:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13101,"name":"bytes","nodeType":"ElementaryTypeName","src":"9862:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13108,"initialValue":{"arguments":[{"id":13105,"name":"messageCollectEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13081,"src":"9900:21:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":13106,"name":"newRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13083,"src":"9923:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13103,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9883:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9887:12:49","memberName":"encodePacked","nodeType":"MemberAccess","src":"9883:16:49","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9883:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9862:69:49"},{"assignments":[13110],"declarations":[{"constant":false,"id":13110,"mutability":"mutable","name":"voter","nameLocation":"9949:5:49","nodeType":"VariableDeclaration","scope":13187,"src":"9941:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13109,"name":"address","nodeType":"ElementaryTypeName","src":"9941:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13113,"initialValue":{"expression":{"id":13111,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9957:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9961:6:49","memberName":"sender","nodeType":"MemberAccess","src":"9957:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9941:26:49"},{"condition":{"baseExpression":{"baseExpression":{"id":13114,"name":"hasVoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12434,"src":"10027:8:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(bytes memory => mapping(address => bool))"}},"id":13116,"indexExpression":{"id":13115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13102,"src":"10036:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10027:15:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13118,"indexExpression":{"id":13117,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13110,"src":"10043:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10027:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13123,"nodeType":"IfStatement","src":"10023:59:49","trueBody":{"errorCall":{"arguments":[{"id":13120,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13110,"src":"10076:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13119,"name":"VoterAlreadyVoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12341,"src":"10058:17:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":13121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10058:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13122,"nodeType":"RevertStatement","src":"10051:31:49"}},{"condition":{"arguments":[{"id":13125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13102,"src":"10158:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"baseExpression":{"id":13126,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"10165:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":13128,"indexExpression":{"id":13127,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13110,"src":"10180:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10165:21:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13124,"name":"_checkInGroupConsensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"10135:22:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes memory,bytes32) view returns (bool)"}},"id":13129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10135:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13131,"nodeType":"IfStatement","src":"10131:65:49","trueBody":{"functionReturnParameters":13087,"id":13130,"nodeType":"Return","src":"10189:7:49"}},{"expression":{"id":13139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10206:52:49","subExpression":{"baseExpression":{"baseExpression":{"id":13132,"name":"consensusVotesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12427,"src":"10206:20:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes memory => mapping(bytes32 => uint256))"}},"id":13137,"indexExpression":{"id":13133,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13102,"src":"10227:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10206:27:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":13138,"indexExpression":{"baseExpression":{"id":13134,"name":"voterToGroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12415,"src":"10234:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":13136,"indexExpression":{"id":13135,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13110,"src":"10249:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10234:21:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10206:50:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13140,"nodeType":"ExpressionStatement","src":"10206:52:49"},{"expression":{"id":13147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":13141,"name":"hasVoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12434,"src":"10268:8:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(bytes memory => mapping(address => bool))"}},"id":13144,"indexExpression":{"id":13142,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13102,"src":"10277:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10268:15:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13145,"indexExpression":{"id":13143,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13110,"src":"10284:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10268:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10293:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10268:29:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13148,"nodeType":"ExpressionStatement","src":"10268:29:49"},{"condition":{"arguments":[{"id":13150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13102,"src":"10328:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13149,"name":"_checkConsensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13078,"src":"10312:15:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) view returns (bool)"}},"id":13151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10312:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13186,"nodeType":"IfStatement","src":"10308:407:49","trueBody":{"id":13185,"nodeType":"Block","src":"10336:379:49","statements":[{"expression":{"id":13154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13152,"name":"_currentRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12440,"src":"10350:12:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13153,"name":"newRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13083,"src":"10365:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10350:22:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13155,"nodeType":"ExpressionStatement","src":"10350:22:49"},{"expression":{"id":13158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13156,"name":"_prevMessageCollectEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12442,"src":"10386:26:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13157,"name":"_messageCollectEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12444,"src":"10415:22:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10386:51:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13159,"nodeType":"ExpressionStatement","src":"10386:51:49"},{"expression":{"id":13162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13160,"name":"_messageCollectEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12444,"src":"10451:22:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13161,"name":"messageCollectEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13081,"src":"10476:21:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10451:46:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13163,"nodeType":"ExpressionStatement","src":"10451:46:49"},{"expression":{"id":13175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13164,"name":"_roots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12438,"src":"10511:6:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":13166,"indexExpression":{"id":13165,"name":"newRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13083,"src":"10518:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10511:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13167,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10529:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10535:9:49","memberName":"timestamp","nodeType":"MemberAccess","src":"10529:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"expression":{"id":13171,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"10572:17:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":13172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10590:21:49","memberName":"VALIDITY_DURATION_KEY","nodeType":"MemberAccess","referencedDeclaration":17760,"src":"10572:39:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13169,"name":"_settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"10547:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"}},"id":13170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10557:14:49","memberName":"getUintSetting","nodeType":"MemberAccess","referencedDeclaration":17475,"src":"10547:24:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint64_$","typeString":"function (bytes32) view external returns (uint64)"}},"id":13173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10547:65:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10529:83:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10511:101:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13176,"nodeType":"ExpressionStatement","src":"10511:101:49"},{"eventCall":{"arguments":[{"id":13178,"name":"_currEpochStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"10648:19:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":13179,"name":"newRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13083,"src":"10669:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13177,"name":"ConsensusReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12347,"src":"10631:16:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$_t_bytes32_$returns$__$","typeString":"function (uint64,bytes32)"}},"id":13180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10631:46:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13181,"nodeType":"EmitStatement","src":"10626:51:49"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13182,"name":"_startEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"10691:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10691:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13184,"nodeType":"ExpressionStatement","src":"10691:13:49"}]}}]},"documentation":{"id":13079,"nodeType":"StructuredDocumentation","src":"9372:173:49","text":" @dev Vote for a new root value.\n @param messageCollectEndTime Message collect end time for current vote.\n @param newRoot New root to vote for."},"functionSelector":"c6116345","id":13188,"implemented":true,"kind":"function","modifiers":[{"id":13086,"kind":"modifierInvocation","modifierName":{"id":13085,"name":"onlyVoter","nameLocations":["9620:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":12526,"src":"9620:9:49"},"nodeType":"ModifierInvocation","src":"9620:9:49"}],"name":"vote","nameLocation":"9559:4:49","nodeType":"FunctionDefinition","parameters":{"id":13084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13081,"mutability":"mutable","name":"messageCollectEndTime","nameLocation":"9571:21:49","nodeType":"VariableDeclaration","scope":13188,"src":"9564:28:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13080,"name":"uint64","nodeType":"ElementaryTypeName","src":"9564:6:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13083,"mutability":"mutable","name":"newRoot","nameLocation":"9602:7:49","nodeType":"VariableDeclaration","scope":13188,"src":"9594:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9594:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9563:47:49"},"returnParameters":{"id":13087,"nodeType":"ParameterList","parameters":[],"src":"9630:0:49"},"scope":13413,"src":"9550:1171:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13209,"nodeType":"Block","src":"10782:167:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13194,"name":"_currEpochStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"10796:19:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"expression":{"id":13197,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"10843:17:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":13198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10861:22:49","memberName":"MAX_EPOCH_DURATION_KEY","nodeType":"MemberAccess","referencedDeclaration":17765,"src":"10843:40:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13195,"name":"_settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"10818:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"}},"id":13196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10828:14:49","memberName":"getUintSetting","nodeType":"MemberAccess","referencedDeclaration":17475,"src":"10818:24:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint64_$","typeString":"function (bytes32) view external returns (uint64)"}},"id":13199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10818:66:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10796:88:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":13201,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10888:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10894:9:49","memberName":"timestamp","nodeType":"MemberAccess","src":"10888:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10796:107:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13208,"nodeType":"IfStatement","src":"10792:151:49","trueBody":{"id":13207,"nodeType":"Block","src":"10905:38:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13204,"name":"_startEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"10919:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10919:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13206,"nodeType":"ExpressionStatement","src":"10919:13:49"}]}}]},"functionSelector":"1cc4ca7b","id":13210,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13191,"name":"EPOCH_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"10767:13:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13192,"kind":"modifierInvocation","modifierName":{"id":13190,"name":"onlyRole","nameLocations":["10758:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"10758:8:49"},"nodeType":"ModifierInvocation","src":"10758:23:49"}],"name":"forceEpoch","nameLocation":"10736:10:49","nodeType":"FunctionDefinition","parameters":{"id":13189,"nodeType":"ParameterList","parameters":[],"src":"10746:2:49"},"returnParameters":{"id":13193,"nodeType":"ParameterList","parameters":[],"src":"10782:0:49"},"scope":13413,"src":"10727:222:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13324,"nodeType":"Block","src":"11101:926:49","statements":[{"assignments":[13215],"declarations":[{"constant":false,"id":13215,"mutability":"mutable","name":"i","nameLocation":"11117:1:49","nodeType":"VariableDeclaration","scope":13324,"src":"11112:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13214,"name":"uint","nodeType":"ElementaryTypeName","src":"11112:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13216,"nodeType":"VariableDeclarationStatement","src":"11112:6:49"},{"body":{"id":13236,"nodeType":"Block","src":"11161:111:49","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":13222,"name":"groupsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"11185:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage","typeString":"struct Consensus.GroupInfo storage ref[] storage ref"}},"id":13224,"indexExpression":{"id":13223,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11197:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11185:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_GroupInfo_$12385_storage","typeString":"struct Consensus.GroupInfo storage ref"}},"id":13225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11200:7:49","memberName":"groupId","nodeType":"MemberAccess","referencedDeclaration":12382,"src":"11185:22:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"baseExpression":{"id":13226,"name":"groupsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"11209:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage","typeString":"struct Consensus.GroupInfo storage ref[] storage ref"}},"id":13228,"indexExpression":{"id":13227,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11221:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11209:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_GroupInfo_$12385_storage","typeString":"struct Consensus.GroupInfo storage ref"}},"id":13229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11224:5:49","memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":12384,"src":"11209:20:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13221,"name":"_addGroup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12653,"src":"11175:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":13230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11175:55:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13231,"nodeType":"ExpressionStatement","src":"11175:55:49"},{"id":13235,"nodeType":"UncheckedBlock","src":"11244:18:49","statements":[{"expression":{"id":13233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11256:3:49","subExpression":{"id":13232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11256:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13234,"nodeType":"ExpressionStatement","src":"11256:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13217,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11136:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13218,"name":"groupsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"11140:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage","typeString":"struct Consensus.GroupInfo storage ref[] storage ref"}},"id":13219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11152:6:49","memberName":"length","nodeType":"MemberAccess","src":"11140:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11136:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13237,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"11129:143:49"},{"expression":{"id":13239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11281:18:49","subExpression":{"id":13238,"name":"groupsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"11288:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GroupInfo_$12385_storage_$dyn_storage","typeString":"struct Consensus.GroupInfo storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13240,"nodeType":"ExpressionStatement","src":"11281:18:49"},{"expression":{"id":13242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11309:8:49","subExpression":{"id":13241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11316:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13243,"nodeType":"ExpressionStatement","src":"11309:8:49"},{"body":{"id":13263,"nodeType":"Block","src":"11360:117:49","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":13249,"name":"votersToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"11384:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage","typeString":"struct Consensus.VoterInfo storage ref[] storage ref"}},"id":13251,"indexExpression":{"id":13250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11396:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11384:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_VoterInfo_$12403_storage","typeString":"struct Consensus.VoterInfo storage ref"}},"id":13252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11399:7:49","memberName":"groupId","nodeType":"MemberAccess","referencedDeclaration":12400,"src":"11384:22:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"baseExpression":{"id":13253,"name":"votersToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"11408:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage","typeString":"struct Consensus.VoterInfo storage ref[] storage ref"}},"id":13255,"indexExpression":{"id":13254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11420:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11408:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_VoterInfo_$12403_storage","typeString":"struct Consensus.VoterInfo storage ref"}},"id":13256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11423:12:49","memberName":"voterAddress","nodeType":"MemberAccess","referencedDeclaration":12402,"src":"11408:27:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13248,"name":"_addVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12891,"src":"11374:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":13257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:62:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13258,"nodeType":"ExpressionStatement","src":"11374:62:49"},{"id":13262,"nodeType":"UncheckedBlock","src":"11450:17:49","statements":[{"expression":{"id":13260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11461:3:49","subExpression":{"id":13259,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11461:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13261,"nodeType":"ExpressionStatement","src":"11461:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11335:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13245,"name":"votersToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"11339:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage","typeString":"struct Consensus.VoterInfo storage ref[] storage ref"}},"id":13246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11351:6:49","memberName":"length","nodeType":"MemberAccess","src":"11339:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11335:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13264,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"11328:149:49"},{"expression":{"id":13266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11486:18:49","subExpression":{"id":13265,"name":"votersToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"11493:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VoterInfo_$12403_storage_$dyn_storage","typeString":"struct Consensus.VoterInfo storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13267,"nodeType":"ExpressionStatement","src":"11486:18:49"},{"expression":{"id":13269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11514:8:49","subExpression":{"id":13268,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11521:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13270,"nodeType":"ExpressionStatement","src":"11514:8:49"},{"body":{"id":13285,"nodeType":"Block","src":"11568:87:49","statements":[{"expression":{"arguments":[{"baseExpression":{"id":13276,"name":"votersToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"11595:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13278,"indexExpression":{"id":13277,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11610:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11595:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13275,"name":"_removeVoter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12972,"src":"11582:12:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11582:31:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13280,"nodeType":"ExpressionStatement","src":"11582:31:49"},{"id":13284,"nodeType":"UncheckedBlock","src":"11627:18:49","statements":[{"expression":{"id":13282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11639:3:49","subExpression":{"id":13281,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11639:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13283,"nodeType":"ExpressionStatement","src":"11639:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13271,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11540:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13272,"name":"votersToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"11544:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11559:6:49","memberName":"length","nodeType":"MemberAccess","src":"11544:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11540:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13286,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"11533:122:49"},{"expression":{"id":13288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11664:21:49","subExpression":{"id":13287,"name":"votersToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"11671:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13289,"nodeType":"ExpressionStatement","src":"11664:21:49"},{"expression":{"id":13291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11695:8:49","subExpression":{"id":13290,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"11702:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13292,"nodeType":"ExpressionStatement","src":"11695:8:49"},{"expression":{"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13293,"name":"_prevEpochStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12446,"src":"11714:19:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13294,"name":"_currEpochStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"11736:19:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11714:41:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13296,"nodeType":"ExpressionStatement","src":"11714:41:49"},{"expression":{"id":13303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13297,"name":"_currEpochStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"11765:19:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":13300,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11794:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11800:9:49","memberName":"timestamp","nodeType":"MemberAccess","src":"11794:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11787:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":13298,"name":"uint64","nodeType":"ElementaryTypeName","src":"11787:6:49","typeDescriptions":{}}},"id":13302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11787:23:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11765:45:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13304,"nodeType":"ExpressionStatement","src":"11765:45:49"},{"assignments":[13306],"declarations":[{"constant":false,"id":13306,"mutability":"mutable","name":"epochDelay","nameLocation":"11828:10:49","nodeType":"VariableDeclaration","scope":13324,"src":"11821:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13305,"name":"uint64","nodeType":"ElementaryTypeName","src":"11821:6:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":13312,"initialValue":{"arguments":[{"expression":{"id":13309,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"11866:17:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":13310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11884:15:49","memberName":"EPOCH_DELAY_KEY","nodeType":"MemberAccess","referencedDeclaration":17750,"src":"11866:33:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13307,"name":"_settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"11841:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_ISettings_$17536","typeString":"contract ISettings"}},"id":13308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11851:14:49","memberName":"getUintSetting","nodeType":"MemberAccess","referencedDeclaration":17475,"src":"11841:24:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint64_$","typeString":"function (bytes32) view external returns (uint64)"}},"id":13311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11841:59:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"11821:79:49"},{"expression":{"id":13317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13313,"name":"_nextVotingTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12450,"src":"11910:15:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":13316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13314,"name":"_currEpochStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"11928:19:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":13315,"name":"epochDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13306,"src":"11950:10:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11928:32:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11910:50:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":13318,"nodeType":"ExpressionStatement","src":"11910:50:49"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":13320,"name":"getCurrentEpochInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13342,"src":"11998:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_EpochInfo_$16098_memory_ptr_$","typeString":"function () view returns (struct EpochInfo memory)"}},"id":13321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11998:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo memory"}],"id":13319,"name":"ConsensusEpochStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12352,"src":"11976:21:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_EpochInfo_$16098_memory_ptr_$returns$__$","typeString":"function (struct EpochInfo memory)"}},"id":13322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11976:44:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13323,"nodeType":"EmitStatement","src":"11971:49:49"}]},"documentation":{"id":13211,"nodeType":"StructuredDocumentation","src":"10955:109:49","text":" @dev Starts a new epoch if needed, performs delayed adding and removing groups and voters."},"id":13325,"implemented":true,"kind":"function","modifiers":[],"name":"_startEpoch","nameLocation":"11078:11:49","nodeType":"FunctionDefinition","parameters":{"id":13212,"nodeType":"ParameterList","parameters":[],"src":"11089:2:49"},"returnParameters":{"id":13213,"nodeType":"ParameterList","parameters":[],"src":"11101:0:49"},"scope":13413,"src":"11069:958:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[17355],"body":{"id":13341,"nodeType":"Block","src":"12186:360:49","statements":[{"expression":{"arguments":[{"id":13333,"name":"_currentRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12440,"src":"12239:12:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13334,"name":"_prevMessageCollectEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12442,"src":"12292:26:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":13335,"name":"_messageCollectEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12444,"src":"12355:22:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":13336,"name":"_prevEpochStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12446,"src":"12411:19:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":13337,"name":"_currEpochStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"12464:19:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":13338,"name":"_nextVotingTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12450,"src":"12513:15:49","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":13332,"name":"EpochInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"12203:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_EpochInfo_$16098_storage_ptr_$","typeString":"type(struct EpochInfo storage pointer)"}},"id":13339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12227:10:49","12265:25:49","12332:21:49","12391:18:49","12444:18:49","12497:14:49"],"names":["merkleRoot","prevMessageCollectEndTime","messageCollectEndTime","prevEpochStartTime","currEpochStartTime","nextVotingTime"],"nodeType":"FunctionCall","src":"12203:336:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo memory"}},"functionReturnParameters":13331,"id":13340,"nodeType":"Return","src":"12196:343:49"}]},"documentation":{"id":13326,"nodeType":"StructuredDocumentation","src":"12033:78:49","text":" @dev Returns current epoch info.\n @return Epoch info."},"functionSelector":"babc394f","id":13342,"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentEpochInfo","nameLocation":"12125:19:49","nodeType":"FunctionDefinition","parameters":{"id":13327,"nodeType":"ParameterList","parameters":[],"src":"12144:2:49"},"returnParameters":{"id":13331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13330,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13342,"src":"12168:16:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo"},"typeName":{"id":13329,"nodeType":"UserDefinedTypeName","pathNode":{"id":13328,"name":"EpochInfo","nameLocations":["12168:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":16098,"src":"12168:9:49"},"referencedDeclaration":16098,"src":"12168:9:49","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_storage_ptr","typeString":"struct EpochInfo"}},"visibility":"internal"}],"src":"12167:18:49"},"scope":13413,"src":"12116:430:49","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":13351,"nodeType":"Block","src":"12717:39:49","statements":[{"expression":{"expression":{"id":13348,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"12734:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12743:6:49","memberName":"length","nodeType":"MemberAccess","src":"12734:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13347,"id":13350,"nodeType":"Return","src":"12727:22:49"}]},"documentation":{"id":13343,"nodeType":"StructuredDocumentation","src":"12552:110:49","text":" @dev Gets total number of active gropus.\n @return uint Total number of active groups."},"functionSelector":"c75f2893","id":13352,"implemented":true,"kind":"function","modifiers":[],"name":"totalGroups","nameLocation":"12676:11:49","nodeType":"FunctionDefinition","parameters":{"id":13344,"nodeType":"ParameterList","parameters":[],"src":"12687:2:49"},"returnParameters":{"id":13347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13352,"src":"12711:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13345,"name":"uint","nodeType":"ElementaryTypeName","src":"12711:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12710:6:49"},"scope":13413,"src":"12667:89:49","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":13360,"nodeType":"Block","src":"12822:32:49","statements":[{"expression":{"id":13358,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"12839:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":13357,"id":13359,"nodeType":"Return","src":"12832:15:49"}]},"functionSelector":"c72b5176","id":13361,"implemented":true,"kind":"function","modifiers":[],"name":"getGroups","nameLocation":"12771:9:49","nodeType":"FunctionDefinition","parameters":{"id":13353,"nodeType":"ParameterList","parameters":[],"src":"12780:2:49"},"returnParameters":{"id":13357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13361,"src":"12804:16:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13354,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12804:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13355,"nodeType":"ArrayTypeName","src":"12804:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"12803:18:49"},"scope":13413,"src":"12762:92:49","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[17361],"body":{"id":13388,"nodeType":"Block","src":"13031:141:49","statements":[{"body":{"id":13386,"nodeType":"Block","src":"13074:92:49","statements":[{"expression":{"id":13380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13374,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13365,"src":"13088:3:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":13375,"name":"inGroupVotersNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12420,"src":"13095:16:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":13379,"indexExpression":{"baseExpression":{"id":13376,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"13112:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13378,"indexExpression":{"id":13377,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"13121:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13112:11:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13095:29:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13088:36:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13381,"nodeType":"ExpressionStatement","src":"13088:36:49"},{"id":13385,"nodeType":"UncheckedBlock","src":"13138:18:49","statements":[{"expression":{"id":13383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13150:3:49","subExpression":{"id":13382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"13150:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13384,"nodeType":"ExpressionStatement","src":"13150:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13370,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"13053:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13371,"name":"groupIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"13057:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13066:6:49","memberName":"length","nodeType":"MemberAccess","src":"13057:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13053:19:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13387,"initializationExpression":{"assignments":[13368],"declarations":[{"constant":false,"id":13368,"mutability":"mutable","name":"i","nameLocation":"13050:1:49","nodeType":"VariableDeclaration","scope":13387,"src":"13045:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13367,"name":"uint","nodeType":"ElementaryTypeName","src":"13045:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13369,"nodeType":"VariableDeclarationStatement","src":"13045:6:49"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"13041:125:49"}]},"documentation":{"id":13362,"nodeType":"StructuredDocumentation","src":"12860:109:49","text":" @dev Gets total number of active voters.\n @return num Total number of active voters."},"functionSelector":"5f5300ff","id":13389,"implemented":true,"kind":"function","modifiers":[],"name":"totalVoters","nameLocation":"12983:11:49","nodeType":"FunctionDefinition","parameters":{"id":13363,"nodeType":"ParameterList","parameters":[],"src":"12994:2:49"},"returnParameters":{"id":13366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13365,"mutability":"mutable","name":"num","nameLocation":"13026:3:49","nodeType":"VariableDeclaration","scope":13389,"src":"13018:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13364,"name":"uint256","nodeType":"ElementaryTypeName","src":"13018:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13017:13:49"},"scope":13413,"src":"12974:198:49","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[17367],"body":{"id":13396,"nodeType":"Block","src":"13228:36:49","statements":[{"expression":{"id":13394,"name":"_currentRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12440,"src":"13245:12:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13393,"id":13395,"nodeType":"Return","src":"13238:19:49"}]},"functionSelector":"20965255","id":13397,"implemented":true,"kind":"function","modifiers":[],"name":"getValue","nameLocation":"13187:8:49","nodeType":"FunctionDefinition","parameters":{"id":13390,"nodeType":"ParameterList","parameters":[],"src":"13195:2:49"},"returnParameters":{"id":13393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13397,"src":"13219:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13219:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13218:9:49"},"scope":13413,"src":"13178:86:49","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[17375],"body":{"id":13411,"nodeType":"Block","src":"13342:60:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":13404,"name":"_roots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12438,"src":"13359:6:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":13406,"indexExpression":{"id":13405,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13399,"src":"13366:10:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13359:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":13407,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13380:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13386:9:49","memberName":"timestamp","nodeType":"MemberAccess","src":"13380:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13359:36:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13403,"id":13410,"nodeType":"Return","src":"13352:43:49"}]},"functionSelector":"814964f0","id":13412,"implemented":true,"kind":"function","modifiers":[],"name":"checkMerkleRoot","nameLocation":"13279:15:49","nodeType":"FunctionDefinition","parameters":{"id":13400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13399,"mutability":"mutable","name":"merkleRoot","nameLocation":"13303:10:49","nodeType":"VariableDeclaration","scope":13412,"src":"13295:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13295:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13294:20:49"},"returnParameters":{"id":13403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13412,"src":"13336:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13401,"name":"bool","nodeType":"ElementaryTypeName","src":"13336:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13335:6:49"},"scope":13413,"src":"13270:132:49","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":13414,"src":"664:12740:49","usedErrors":[711,714,975,980,2923,2926,3422,3435,6379,6770,12305,12309,12311,12313,12317,12321,12325,12331,12335,12337,12341,16230],"usedEvents":[719,2935,2944,2953,3238,12347,12352,12356,12362,12366]}],"src":"32:13372:49"},"id":49},"contracts/core/CrossChainLayer.sol":{"ast":{"absolutePath":"contracts/core/CrossChainLayer.sol","exportedSymbols":{"CrossChainLayer":[15421],"EpochInfo":[16098],"IConsensus":[17376],"ICrossChainLayer":[17421],"ITokenUtils":[17625],"InMessageV1":[16055],"MerkleProof":[8457],"NFTAmount":[16007],"NFTInfo":[15993],"Ownable2StepUpgradeable":[499],"SimulationParams":[16125],"TVMFeeInfo":[16061],"TacInitializable":[16247],"TacProxy":[18430],"TokenAmount":[15999],"TokenHelperLib":[18118],"TokenInfo":[15983],"UUPSUpgradeable":[1130],"VersionLib":[18419]},"id":15422,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":13415,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:50"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":13417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":500,"src":"58:113:50","symbolAliases":[{"foreign":{"id":13416,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":499,"src":"67:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":13419,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":1131,"src":"172:102:50","symbolAliases":[{"foreign":{"id":13418,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1130,"src":"181:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","file":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","id":13421,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":8458,"src":"275:89:50","symbolAliases":[{"foreign":{"id":13420,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8457,"src":"284:11:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/libs/VersionLib.sol","file":"../libs/VersionLib.sol","id":13423,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":18420,"src":"366:52:50","symbolAliases":[{"foreign":{"id":13422,"name":"VersionLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18419,"src":"375:10:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"./Structs.sol","id":13432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":16218,"src":"420:129:50","symbolAliases":[{"foreign":{"id":13424,"name":"TVMFeeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16061,"src":"429:10:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13425,"name":"InMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16055,"src":"441:11:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13426,"name":"TokenInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"454:9:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13427,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"465:11:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13428,"name":"EpochInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"478:9:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13429,"name":"SimulationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16125,"src":"489:16:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13430,"name":"NFTInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15993,"src":"507:7:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":13431,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"516:9:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/libs/TokenHelperLib.sol","file":"../libs/TokenHelperLib.sol","id":13434,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":18119,"src":"550:60:50","symbolAliases":[{"foreign":{"id":13433,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"559:14:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IConsensus.sol","file":"../interfaces/IConsensus.sol","id":13436,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":17377,"src":"611:58:50","symbolAliases":[{"foreign":{"id":13435,"name":"IConsensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17376,"src":"620:10:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICrossChainLayer.sol","file":"../interfaces/ICrossChainLayer.sol","id":13438,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":17422,"src":"670:70:50","symbolAliases":[{"foreign":{"id":13437,"name":"ICrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17421,"src":"679:16:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ITokenUtils.sol","file":"../interfaces/ITokenUtils.sol","id":13440,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":17626,"src":"741:60:50","symbolAliases":[{"foreign":{"id":13439,"name":"ITokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17625,"src":"750:11:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/proxies/TacProxy.sol","file":"../proxies/TacProxy.sol","id":13442,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":18431,"src":"802:51:50","symbolAliases":[{"foreign":{"id":13441,"name":"TacProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18430,"src":"811:8:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/TacInitializable.sol","file":"./TacInitializable.sol","id":13444,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15422,"sourceUnit":16248,"src":"854:58:50","symbolAliases":[{"foreign":{"id":13443,"name":"TacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16247,"src":"863:16:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13446,"name":"TacInitializable","nameLocations":["1042:16:50"],"nodeType":"IdentifierPath","referencedDeclaration":16247,"src":"1042:16:50"},"id":13447,"nodeType":"InheritanceSpecifier","src":"1042:16:50"},{"baseName":{"id":13448,"name":"UUPSUpgradeable","nameLocations":["1060:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":1130,"src":"1060:15:50"},"id":13449,"nodeType":"InheritanceSpecifier","src":"1060:15:50"},{"baseName":{"id":13450,"name":"Ownable2StepUpgradeable","nameLocations":["1077:23:50"],"nodeType":"IdentifierPath","referencedDeclaration":499,"src":"1077:23:50"},"id":13451,"nodeType":"InheritanceSpecifier","src":"1077:23:50"},{"baseName":{"id":13452,"name":"ICrossChainLayer","nameLocations":["1102:16:50"],"nodeType":"IdentifierPath","referencedDeclaration":17421,"src":"1102:16:50"},"id":13453,"nodeType":"InheritanceSpecifier","src":"1102:16:50"}],"canonicalName":"CrossChainLayer","contractDependencies":[],"contractKind":"contract","documentation":{"id":13445,"nodeType":"StructuredDocumentation","src":"915:98:50","text":" @title CrossChainLayer\n @dev A contract for managing cross-chain messages and tokens."},"fullyImplemented":true,"id":15421,"linearizedBaseContracts":[15421,17421,499,694,2873,1130,3265,16247,17543,948],"name":"CrossChainLayer","nameLocation":"1023:15:50","nodeType":"ContractDefinition","nodes":[{"errorSelector":"f33436af","id":13457,"name":"TokenNotExist","nameLocation":"1170:13:50","nodeType":"ErrorDefinition","parameters":{"id":13456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13455,"mutability":"mutable","name":"token","nameLocation":"1192:5:50","nodeType":"VariableDeclaration","scope":13457,"src":"1184:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13454,"name":"address","nodeType":"ElementaryTypeName","src":"1184:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1183:15:50"},"src":"1164:35:50"},{"errorSelector":"4bc182c7","id":13461,"name":"ProxyCallError","nameLocation":"1210:14:50","nodeType":"ErrorDefinition","parameters":{"id":13460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13459,"mutability":"mutable","name":"reason","nameLocation":"1231:6:50","nodeType":"VariableDeclaration","scope":13461,"src":"1225:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13458,"name":"bytes","nodeType":"ElementaryTypeName","src":"1225:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1224:14:50"},"src":"1204:35:50"},{"errorSelector":"cc526696","id":13465,"name":"NativeTrasferError","nameLocation":"1250:18:50","nodeType":"ErrorDefinition","parameters":{"id":13464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13463,"mutability":"mutable","name":"reason","nameLocation":"1275:6:50","nodeType":"VariableDeclaration","scope":13465,"src":"1269:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13462,"name":"bytes","nodeType":"ElementaryTypeName","src":"1269:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1268:14:50"},"src":"1244:39:50"},{"errorSelector":"2a9f5068","id":13469,"name":"TargetIsNotTacProxy","nameLocation":"1294:19:50","nodeType":"ErrorDefinition","parameters":{"id":13468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13467,"mutability":"mutable","name":"target","nameLocation":"1322:6:50","nodeType":"VariableDeclaration","scope":13469,"src":"1314:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13466,"name":"address","nodeType":"ElementaryTypeName","src":"1314:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1313:16:50"},"src":"1288:42:50"},{"errorSelector":"5dddf463","id":13475,"name":"InvalidProxyVersion","nameLocation":"1341:19:50","nodeType":"ErrorDefinition","parameters":{"id":13474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13471,"mutability":"mutable","name":"target","nameLocation":"1369:6:50","nodeType":"VariableDeclaration","scope":13475,"src":"1361:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13470,"name":"address","nodeType":"ElementaryTypeName","src":"1361:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13473,"mutability":"mutable","name":"version","nameLocation":"1382:7:50","nodeType":"VariableDeclaration","scope":13475,"src":"1377:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13472,"name":"uint","nodeType":"ElementaryTypeName","src":"1377:4:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1360:30:50"},"src":"1335:56:50"},{"errorSelector":"e0ecfe25","id":13477,"name":"RecursiveMessageProcessing","nameLocation":"1402:26:50","nodeType":"ErrorDefinition","parameters":{"id":13476,"nodeType":"ParameterList","parameters":[],"src":"1428:2:50"},"src":"1396:35:50"},{"errorSelector":"ff54bf4b","id":13479,"name":"OnlySelfCall","nameLocation":"1442:12:50","nodeType":"ErrorDefinition","parameters":{"id":13478,"nodeType":"ParameterList","parameters":[],"src":"1454:2:50"},"src":"1436:21:50"},{"errorSelector":"730ac1e2","id":13483,"name":"MessageAlreadyProcessed","nameLocation":"1468:23:50","nodeType":"ErrorDefinition","parameters":{"id":13482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13481,"mutability":"mutable","name":"messageHash","nameLocation":"1500:11:50","nodeType":"VariableDeclaration","scope":13483,"src":"1492:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1492:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1491:21:50"},"src":"1462:51:50"},{"errorSelector":"b05e92fa","id":13485,"name":"InvalidMerkleProof","nameLocation":"1524:18:50","nodeType":"ErrorDefinition","parameters":{"id":13484,"nodeType":"ParameterList","parameters":[],"src":"1542:2:50"},"src":"1518:27:50"},{"errorSelector":"d901207e","id":13487,"name":"AppLayerUnexpectedError","nameLocation":"1556:23:50","nodeType":"ErrorDefinition","parameters":{"id":13486,"nodeType":"ParameterList","parameters":[],"src":"1579:2:50"},"src":"1550:32:50"},{"errorSelector":"56b08a38","id":13493,"name":"AppLayerCallError","nameLocation":"1593:17:50","nodeType":"ErrorDefinition","parameters":{"id":13492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13489,"mutability":"mutable","name":"operationId","nameLocation":"1619:11:50","nodeType":"VariableDeclaration","scope":13493,"src":"1611:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1611:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13491,"mutability":"mutable","name":"reason","nameLocation":"1638:6:50","nodeType":"VariableDeclaration","scope":13493,"src":"1632:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13490,"name":"bytes","nodeType":"ElementaryTypeName","src":"1632:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1610:35:50"},"src":"1587:59:50"},{"errorSelector":"bde1a955","id":13499,"name":"BridgeAmountToBig","nameLocation":"1657:17:50","nodeType":"ErrorDefinition","parameters":{"id":13498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13495,"mutability":"mutable","name":"token","nameLocation":"1683:5:50","nodeType":"VariableDeclaration","scope":13499,"src":"1675:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13494,"name":"address","nodeType":"ElementaryTypeName","src":"1675:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13497,"mutability":"mutable","name":"amount","nameLocation":"1698:6:50","nodeType":"VariableDeclaration","scope":13499,"src":"1690:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13496,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1674:31:50"},"src":"1651:55:50"},{"errorSelector":"50f7a04a","id":13507,"name":"ExecutorIsNotValid","nameLocation":"1717:18:50","nodeType":"ErrorDefinition","parameters":{"id":13506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13501,"mutability":"mutable","name":"operationId","nameLocation":"1744:11:50","nodeType":"VariableDeclaration","scope":13507,"src":"1736:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1736:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13503,"mutability":"mutable","name":"sender","nameLocation":"1765:6:50","nodeType":"VariableDeclaration","scope":13507,"src":"1757:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13502,"name":"address","nodeType":"ElementaryTypeName","src":"1757:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13505,"mutability":"mutable","name":"origin","nameLocation":"1781:6:50","nodeType":"VariableDeclaration","scope":13507,"src":"1773:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13504,"name":"address","nodeType":"ElementaryTypeName","src":"1773:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1735:53:50"},"src":"1711:78:50"},{"errorSelector":"b631df3e","id":13513,"name":"NativeFeeTransferError","nameLocation":"1800:22:50","nodeType":"ErrorDefinition","parameters":{"id":13512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13509,"mutability":"mutable","name":"operationId","nameLocation":"1831:11:50","nodeType":"VariableDeclaration","scope":13513,"src":"1823:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1823:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13511,"mutability":"mutable","name":"reason","nameLocation":"1850:6:50","nodeType":"VariableDeclaration","scope":13513,"src":"1844:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13510,"name":"bytes","nodeType":"ElementaryTypeName","src":"1844:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1822:35:50"},"src":"1794:64:50"},{"errorSelector":"9865620a","id":13519,"name":"NotEnoughGas","nameLocation":"1869:12:50","nodeType":"ErrorDefinition","parameters":{"id":13518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13515,"mutability":"mutable","name":"gasLimit","nameLocation":"1889:8:50","nodeType":"VariableDeclaration","scope":13519,"src":"1882:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13514,"name":"uint64","nodeType":"ElementaryTypeName","src":"1882:6:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13517,"mutability":"mutable","name":"gasLeft","nameLocation":"1907:7:50","nodeType":"VariableDeclaration","scope":13519,"src":"1899:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1899:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1881:34:50"},"src":"1863:53:50"},{"errorSelector":"35b9bf5b","id":13525,"name":"CantUnlockNative","nameLocation":"1927:16:50","nodeType":"ErrorDefinition","parameters":{"id":13524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13521,"mutability":"mutable","name":"locked","nameLocation":"1952:6:50","nodeType":"VariableDeclaration","scope":13525,"src":"1944:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1944:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13523,"mutability":"mutable","name":"toUnlock","nameLocation":"1968:8:50","nodeType":"VariableDeclaration","scope":13525,"src":"1960:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13522,"name":"uint256","nodeType":"ElementaryTypeName","src":"1960:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1943:34:50"},"src":"1921:57:50"},{"errorSelector":"11921c1b","id":13527,"name":"ExtraDataIsNotSupported","nameLocation":"1989:23:50","nodeType":"ErrorDefinition","parameters":{"id":13526,"nodeType":"ParameterList","parameters":[],"src":"2012:2:50"},"src":"1983:32:50"},{"errorSelector":"7ade8cab","id":13529,"name":"ZeroFeeSetting","nameLocation":"2045:14:50","nodeType":"ErrorDefinition","parameters":{"id":13528,"nodeType":"ParameterList","parameters":[],"src":"2059:2:50"},"src":"2039:23:50"},{"errorSelector":"048d275e","id":13535,"name":"InsufficientProtocolFeeBalance","nameLocation":"2073:30:50","nodeType":"ErrorDefinition","parameters":{"id":13534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13531,"mutability":"mutable","name":"needed","nameLocation":"2112:6:50","nodeType":"VariableDeclaration","scope":13535,"src":"2104:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13530,"name":"uint256","nodeType":"ElementaryTypeName","src":"2104:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13533,"mutability":"mutable","name":"available","nameLocation":"2128:9:50","nodeType":"VariableDeclaration","scope":13535,"src":"2120:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2120:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2103:35:50"},"src":"2067:72:50"},{"errorSelector":"961b65b0","id":13541,"name":"InsufficientFeeAmount","nameLocation":"2150:21:50","nodeType":"ErrorDefinition","parameters":{"id":13540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13537,"mutability":"mutable","name":"needed","nameLocation":"2180:6:50","nodeType":"VariableDeclaration","scope":13541,"src":"2172:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13536,"name":"uint256","nodeType":"ElementaryTypeName","src":"2172:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13539,"mutability":"mutable","name":"attached","nameLocation":"2196:8:50","nodeType":"VariableDeclaration","scope":13541,"src":"2188:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13538,"name":"uint256","nodeType":"ElementaryTypeName","src":"2188:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2171:34:50"},"src":"2144:62:50"},{"errorSelector":"0d74c9e0","id":13547,"name":"InsufficientNativeAttached","nameLocation":"2217:26:50","nodeType":"ErrorDefinition","parameters":{"id":13546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13543,"mutability":"mutable","name":"needed","nameLocation":"2252:6:50","nodeType":"VariableDeclaration","scope":13547,"src":"2244:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13542,"name":"uint256","nodeType":"ElementaryTypeName","src":"2244:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13545,"mutability":"mutable","name":"attached","nameLocation":"2268:8:50","nodeType":"VariableDeclaration","scope":13547,"src":"2260:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13544,"name":"uint256","nodeType":"ElementaryTypeName","src":"2260:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2243:34:50"},"src":"2211:67:50"},{"errorSelector":"47aedd58","id":13549,"name":"SimulationRecursiveCall","nameLocation":"2315:23:50","nodeType":"ErrorDefinition","parameters":{"id":13548,"nodeType":"ParameterList","parameters":[],"src":"2338:2:50"},"src":"2309:32:50"},{"errorSelector":"b14bf6ee","id":13551,"name":"SimulationUnexpectedSuccess","nameLocation":"2352:27:50","nodeType":"ErrorDefinition","parameters":{"id":13550,"nodeType":"ParameterList","parameters":[],"src":"2379:2:50"},"src":"2346:36:50"},{"errorSelector":"888fcb7e","id":13553,"name":"SimulationUnexpectedError","nameLocation":"2393:25:50","nodeType":"ErrorDefinition","parameters":{"id":13552,"nodeType":"ParameterList","parameters":[],"src":"2418:2:50"},"src":"2387:34:50"},{"errorSelector":"7a6c7420","id":13555,"name":"SimulationIsNotInProgress","nameLocation":"2432:25:50","nodeType":"ErrorDefinition","parameters":{"id":13554,"nodeType":"ParameterList","parameters":[],"src":"2457:2:50"},"src":"2426:34:50"},{"errorSelector":"018ba8e9","id":13561,"name":"SimulationFinished","nameLocation":"2471:18:50","nodeType":"ErrorDefinition","parameters":{"id":13560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13557,"mutability":"mutable","name":"success","nameLocation":"2495:7:50","nodeType":"VariableDeclaration","scope":13561,"src":"2490:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13556,"name":"bool","nodeType":"ElementaryTypeName","src":"2490:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13559,"mutability":"mutable","name":"result","nameLocation":"2510:6:50","nodeType":"VariableDeclaration","scope":13561,"src":"2504:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13558,"name":"bytes","nodeType":"ElementaryTypeName","src":"2504:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2489:28:50"},"src":"2465:53:50"},{"errorSelector":"6e511a85","id":13565,"name":"SimulationFailedError","nameLocation":"2529:21:50","nodeType":"ErrorDefinition","parameters":{"id":13564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13563,"mutability":"mutable","name":"reason","nameLocation":"2557:6:50","nodeType":"VariableDeclaration","scope":13565,"src":"2551:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13562,"name":"bytes","nodeType":"ElementaryTypeName","src":"2551:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2550:14:50"},"src":"2523:42:50"},{"anonymous":false,"documentation":{"id":13566,"nodeType":"StructuredDocumentation","src":"2586:78:50","text":" @dev Error event for calling the application layer context."},"eventSelector":"d5af3a2c6eb49b701b4449e8e15dcaadba325f81791fea3dad1aaedd2b8322a9","id":13572,"name":"AppLayerCallErrorEvent","nameLocation":"2675:22:50","nodeType":"EventDefinition","parameters":{"id":13571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13568,"indexed":false,"mutability":"mutable","name":"operationId","nameLocation":"2706:11:50","nodeType":"VariableDeclaration","scope":13572,"src":"2698:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2698:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13570,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"2725:6:50","nodeType":"VariableDeclaration","scope":13572,"src":"2719:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13569,"name":"bytes","nodeType":"ElementaryTypeName","src":"2719:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2697:35:50"},"src":"2669:64:50"},{"anonymous":false,"eventSelector":"063f8c5c03902eb1e7a093a110bf896f2032e999efb1328f8248bd9c5286668a","id":13578,"name":"SimulationSuccess","nameLocation":"2745:17:50","nodeType":"EventDefinition","parameters":{"id":13577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13576,"indexed":false,"mutability":"mutable","name":"outMessages","nameLocation":"2796:11:50","nodeType":"VariableDeclaration","scope":13578,"src":"2763:44:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct[]"},"typeName":{"baseType":{"id":13574,"nodeType":"UserDefinedTypeName","pathNode":{"id":13573,"name":"OutMessageProcessedEventStruct","nameLocations":["2763:30:50"],"nodeType":"IdentifierPath","referencedDeclaration":13691,"src":"2763:30:50"},"referencedDeclaration":13691,"src":"2763:30:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct"}},"id":13575,"nodeType":"ArrayTypeName","src":"2763:32:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct[]"}},"visibility":"internal"}],"src":"2762:46:50"},"src":"2739:70:50"},{"anonymous":false,"documentation":{"id":13579,"nodeType":"StructuredDocumentation","src":"2815:118:50","text":" @dev Input (receive) message executed event\n @param operationId Operation Id to track message"},"eventSelector":"456b8aa9be4f9cf3aca41804e224f98be7be2e03613745106623cfe38ba35380","id":13583,"name":"InMessageProcessed","nameLocation":"2944:18:50","nodeType":"EventDefinition","parameters":{"id":13582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13581,"indexed":false,"mutability":"mutable","name":"operationId","nameLocation":"2971:11:50","nodeType":"VariableDeclaration","scope":13583,"src":"2963:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2963:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2962:21:50"},"src":"2938:46:50"},{"anonymous":false,"documentation":{"id":13584,"nodeType":"StructuredDocumentation","src":"2990:771:50","text":" @dev Output (send) message executed event\n @param shardsKey Key to track message\n @param operationId Operation Id to track message\n @param callerAddress Caller address (EVM message initiator)\n @param targetAddress Recipient address (TVM recipient address))\n @param payload Message payload\n @param protocolFee Protocol fee for the message\n @param executorFee Executor fee for the message\n @param tvmValidExecutors TVM valid executors for the message\n @param tokensBurned Token burned during message processing\n @param tokensLocked Token locked during message processing\n @param nftsBurned NFT burned during message processing\n @param nftsLocked NFT locked during message processing"},"eventSelector":"0a97a8e7dbc39c9d683a5009b6f74ad8cc9eff62dbe7c695d6317b727dd32dd5","id":13619,"name":"OutMessageProcessed","nameLocation":"3772:19:50","nodeType":"EventDefinition","parameters":{"id":13618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13586,"indexed":false,"mutability":"mutable","name":"shardsKey","nameLocation":"3808:9:50","nodeType":"VariableDeclaration","scope":13619,"src":"3801:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13585,"name":"uint64","nodeType":"ElementaryTypeName","src":"3801:6:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13588,"indexed":false,"mutability":"mutable","name":"operationId","nameLocation":"3835:11:50","nodeType":"VariableDeclaration","scope":13619,"src":"3827:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3827:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13590,"indexed":false,"mutability":"mutable","name":"callerAddress","nameLocation":"3864:13:50","nodeType":"VariableDeclaration","scope":13619,"src":"3856:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13589,"name":"address","nodeType":"ElementaryTypeName","src":"3856:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13592,"indexed":false,"mutability":"mutable","name":"targetAddress","nameLocation":"3894:13:50","nodeType":"VariableDeclaration","scope":13619,"src":"3887:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13591,"name":"string","nodeType":"ElementaryTypeName","src":"3887:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13594,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"3924:7:50","nodeType":"VariableDeclaration","scope":13619,"src":"3917:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13593,"name":"string","nodeType":"ElementaryTypeName","src":"3917:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13596,"indexed":false,"mutability":"mutable","name":"protocolFee","nameLocation":"3949:11:50","nodeType":"VariableDeclaration","scope":13619,"src":"3941:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13595,"name":"uint256","nodeType":"ElementaryTypeName","src":"3941:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13598,"indexed":false,"mutability":"mutable","name":"executorFee","nameLocation":"3978:11:50","nodeType":"VariableDeclaration","scope":13619,"src":"3970:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13597,"name":"uint256","nodeType":"ElementaryTypeName","src":"3970:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13601,"indexed":false,"mutability":"mutable","name":"tvmValidExecutors","nameLocation":"4008:17:50","nodeType":"VariableDeclaration","scope":13619,"src":"3999:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13599,"name":"string","nodeType":"ElementaryTypeName","src":"3999:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13600,"nodeType":"ArrayTypeName","src":"3999:8:50","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13605,"indexed":false,"mutability":"mutable","name":"tokensBurned","nameLocation":"4049:12:50","nodeType":"VariableDeclaration","scope":13619,"src":"4035:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":13603,"nodeType":"UserDefinedTypeName","pathNode":{"id":13602,"name":"TokenAmount","nameLocations":["4035:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"4035:11:50"},"referencedDeclaration":15999,"src":"4035:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":13604,"nodeType":"ArrayTypeName","src":"4035:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":13609,"indexed":false,"mutability":"mutable","name":"tokensLocked","nameLocation":"4085:12:50","nodeType":"VariableDeclaration","scope":13619,"src":"4071:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":13607,"nodeType":"UserDefinedTypeName","pathNode":{"id":13606,"name":"TokenAmount","nameLocations":["4071:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"4071:11:50"},"referencedDeclaration":15999,"src":"4071:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":13608,"nodeType":"ArrayTypeName","src":"4071:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":13613,"indexed":false,"mutability":"mutable","name":"nftsBurned","nameLocation":"4119:10:50","nodeType":"VariableDeclaration","scope":13619,"src":"4107:22:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":13611,"nodeType":"UserDefinedTypeName","pathNode":{"id":13610,"name":"NFTAmount","nameLocations":["4107:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"4107:9:50"},"referencedDeclaration":16007,"src":"4107:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":13612,"nodeType":"ArrayTypeName","src":"4107:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"},{"constant":false,"id":13617,"indexed":false,"mutability":"mutable","name":"nftsLocked","nameLocation":"4151:10:50","nodeType":"VariableDeclaration","scope":13619,"src":"4139:22:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":13615,"nodeType":"UserDefinedTypeName","pathNode":{"id":13614,"name":"NFTAmount","nameLocations":["4139:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"4139:9:50"},"referencedDeclaration":16007,"src":"4139:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":13616,"nodeType":"ArrayTypeName","src":"4139:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"}],"src":"3791:376:50"},"src":"3766:402:50"},{"constant":true,"functionSelector":"df2ebdbb","id":13625,"mutability":"constant","name":"NATIVE_TOKEN_ADDRESS","nameLocation":"4216:20:50","nodeType":"VariableDeclaration","scope":15421,"src":"4192:98:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13620,"name":"address","nodeType":"ElementaryTypeName","src":"4192:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":13623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4247:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4239:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13621,"name":"address","nodeType":"ElementaryTypeName","src":"4239:7:50","typeDescriptions":{}}},"id":13624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4239:51:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"id":13633,"mutability":"constant","name":"MAX_BRIDGE_AMOUNT","nameLocation":"4322:17:50","nodeType":"VariableDeclaration","scope":15421,"src":"4297:62:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13626,"name":"uint256","nodeType":"ElementaryTypeName","src":"4297:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":13631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":13629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4350:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":13630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4355:3:50","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"4350:8:50","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"id":13628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4342:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13627,"name":"uint256","nodeType":"ElementaryTypeName","src":"4342:7:50","typeDescriptions":{}}},"id":13632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4342:17:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":13636,"mutability":"mutable","name":"_tokenUtils","nameLocation":"4410:11:50","nodeType":"VariableDeclaration","scope":15421,"src":"4390:31:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"},"typeName":{"id":13635,"nodeType":"UserDefinedTypeName","pathNode":{"id":13634,"name":"ITokenUtils","nameLocations":["4390:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":17625,"src":"4390:11:50"},"referencedDeclaration":17625,"src":"4390:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"visibility":"private"},{"constant":false,"id":13639,"mutability":"mutable","name":"_consensus","nameLocation":"4446:10:50","nodeType":"VariableDeclaration","scope":15421,"src":"4427:29:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IConsensus_$17376","typeString":"contract IConsensus"},"typeName":{"id":13638,"nodeType":"UserDefinedTypeName","pathNode":{"id":13637,"name":"IConsensus","nameLocations":["4427:10:50"],"nodeType":"IdentifierPath","referencedDeclaration":17376,"src":"4427:10:50"},"referencedDeclaration":17376,"src":"4427:10:50","typeDescriptions":{"typeIdentifier":"t_contract$_IConsensus_$17376","typeString":"contract IConsensus"}},"visibility":"private"},{"constant":false,"id":13641,"mutability":"mutable","name":"_currentInMessageOperationId","nameLocation":"4479:28:50","nodeType":"VariableDeclaration","scope":15421,"src":"4463:44:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4463:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":13643,"mutability":"mutable","name":"_receiveInProgress","nameLocation":"4526:18:50","nodeType":"VariableDeclaration","scope":15421,"src":"4513:31:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13642,"name":"bool","nodeType":"ElementaryTypeName","src":"4513:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"constant":false,"id":13647,"mutability":"mutable","name":"_processedInMessages","nameLocation":"4584:20:50","nodeType":"VariableDeclaration","scope":15421,"src":"4551:53:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":13646,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4559:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4551:24:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13645,"name":"bool","nodeType":"ElementaryTypeName","src":"4570:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"canonicalName":"CrossChainLayer.SimulationMode","id":13651,"members":[{"id":13648,"name":"None","nameLocation":"4665:4:50","nodeType":"EnumValue","src":"4665:4:50"},{"id":13649,"name":"JustGas","nameLocation":"4679:7:50","nodeType":"EnumValue","src":"4679:7:50"},{"id":13650,"name":"WithMessages","nameLocation":"4696:12:50","nodeType":"EnumValue","src":"4696:12:50"}],"name":"SimulationMode","nameLocation":"4640:14:50","nodeType":"EnumDefinition","src":"4635:79:50"},{"constant":false,"id":13654,"mutability":"mutable","name":"_simulationMode","nameLocation":"4742:15:50","nodeType":"VariableDeclaration","scope":15421,"src":"4719:38:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"typeName":{"id":13653,"nodeType":"UserDefinedTypeName","pathNode":{"id":13652,"name":"SimulationMode","nameLocations":["4719:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":13651,"src":"4719:14:50"},"referencedDeclaration":13651,"src":"4719:14:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"visibility":"private"},{"constant":false,"id":13656,"mutability":"mutable","name":"_simulationRoot","nameLocation":"4779:15:50","nodeType":"VariableDeclaration","scope":15421,"src":"4763:31:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4763:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"canonicalName":"CrossChainLayer.OutMessageProcessedEventStruct","documentation":{"id":13657,"nodeType":"StructuredDocumentation","src":"4801:781:50","text":" @dev Output (send) message executed event structure\n @param shardsKey Key to track message\n @param operationId Operation Id to track message\n @param callerAddress Caller address (EVM message initiator)\n @param targetAddress Recipient address (TVM recipient address))\n @param payload Message payload\n @param protocolFee Protocol fee for the message\n @param executorFee Executor fee for the message\n @param tvmValidExecutors TVM valid executors for the message\n @param tokensBurned Token burned during message processing\n @param tokensLocked Token locked during message processing\n @param nftsBurned NFT burned during message processing\n @param nftsLocked NFT locked during message processing"},"id":13691,"members":[{"constant":false,"id":13659,"mutability":"mutable","name":"shardsKey","nameLocation":"5642:9:50","nodeType":"VariableDeclaration","scope":13691,"src":"5635:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":13658,"name":"uint64","nodeType":"ElementaryTypeName","src":"5635:6:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":13661,"mutability":"mutable","name":"operationId","nameLocation":"5669:11:50","nodeType":"VariableDeclaration","scope":13691,"src":"5661:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5661:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13663,"mutability":"mutable","name":"callerAddress","nameLocation":"5698:13:50","nodeType":"VariableDeclaration","scope":13691,"src":"5690:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13662,"name":"address","nodeType":"ElementaryTypeName","src":"5690:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13665,"mutability":"mutable","name":"targetAddress","nameLocation":"5728:13:50","nodeType":"VariableDeclaration","scope":13691,"src":"5721:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":13664,"name":"string","nodeType":"ElementaryTypeName","src":"5721:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13667,"mutability":"mutable","name":"payload","nameLocation":"5758:7:50","nodeType":"VariableDeclaration","scope":13691,"src":"5751:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":13666,"name":"string","nodeType":"ElementaryTypeName","src":"5751:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13669,"mutability":"mutable","name":"protocolFee","nameLocation":"5783:11:50","nodeType":"VariableDeclaration","scope":13691,"src":"5775:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13668,"name":"uint256","nodeType":"ElementaryTypeName","src":"5775:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13671,"mutability":"mutable","name":"executorFee","nameLocation":"5812:11:50","nodeType":"VariableDeclaration","scope":13691,"src":"5804:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13670,"name":"uint256","nodeType":"ElementaryTypeName","src":"5804:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13674,"mutability":"mutable","name":"tvmValidExecutors","nameLocation":"5842:17:50","nodeType":"VariableDeclaration","scope":13691,"src":"5833:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13672,"name":"string","nodeType":"ElementaryTypeName","src":"5833:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13673,"nodeType":"ArrayTypeName","src":"5833:8:50","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13678,"mutability":"mutable","name":"tokensBurned","nameLocation":"5883:12:50","nodeType":"VariableDeclaration","scope":13691,"src":"5869:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":13676,"nodeType":"UserDefinedTypeName","pathNode":{"id":13675,"name":"TokenAmount","nameLocations":["5869:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"5869:11:50"},"referencedDeclaration":15999,"src":"5869:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":13677,"nodeType":"ArrayTypeName","src":"5869:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":13682,"mutability":"mutable","name":"tokensLocked","nameLocation":"5919:12:50","nodeType":"VariableDeclaration","scope":13691,"src":"5905:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":13680,"nodeType":"UserDefinedTypeName","pathNode":{"id":13679,"name":"TokenAmount","nameLocations":["5905:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"5905:11:50"},"referencedDeclaration":15999,"src":"5905:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":13681,"nodeType":"ArrayTypeName","src":"5905:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":13686,"mutability":"mutable","name":"nftsBurned","nameLocation":"5953:10:50","nodeType":"VariableDeclaration","scope":13691,"src":"5941:22:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":13684,"nodeType":"UserDefinedTypeName","pathNode":{"id":13683,"name":"NFTAmount","nameLocations":["5941:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"5941:9:50"},"referencedDeclaration":16007,"src":"5941:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":13685,"nodeType":"ArrayTypeName","src":"5941:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"},{"constant":false,"id":13690,"mutability":"mutable","name":"nftsLocked","nameLocation":"5985:10:50","nodeType":"VariableDeclaration","scope":13691,"src":"5973:22:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":13688,"nodeType":"UserDefinedTypeName","pathNode":{"id":13687,"name":"NFTAmount","nameLocations":["5973:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"5973:9:50"},"referencedDeclaration":16007,"src":"5973:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":13689,"nodeType":"ArrayTypeName","src":"5973:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"}],"name":"OutMessageProcessedEventStruct","nameLocation":"5594:30:50","nodeType":"StructDefinition","scope":15421,"src":"5587:415:50","visibility":"public"},{"constant":false,"documentation":{"id":13692,"nodeType":"StructuredDocumentation","src":"6007:190:50","text":" @dev This array is always empty, because all changes are reverted inside simulateAppLayerContext\n So the OutMessageProcessedEventStruct struct can be upgraded safely"},"id":13696,"mutability":"mutable","name":"_simulationOutMessagesProcessedEvents","nameLocation":"6243:37:50","nodeType":"VariableDeclaration","scope":15421,"src":"6202:78:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct[]"},"typeName":{"baseType":{"id":13694,"nodeType":"UserDefinedTypeName","pathNode":{"id":13693,"name":"OutMessageProcessedEventStruct","nameLocations":["6202:30:50"],"nodeType":"IdentifierPath","referencedDeclaration":13691,"src":"6202:30:50"},"referencedDeclaration":13691,"src":"6202:30:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct"}},"id":13695,"nodeType":"ArrayTypeName","src":"6202:32:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct[]"}},"visibility":"private"},{"constant":false,"id":13698,"mutability":"mutable","name":"_protocolFee","nameLocation":"6303:12:50","nodeType":"VariableDeclaration","scope":15421,"src":"6287:28:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13697,"name":"uint256","nodeType":"ElementaryTypeName","src":"6287:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":13700,"mutability":"mutable","name":"_collectedProtocolFee","nameLocation":"6337:21:50","nodeType":"VariableDeclaration","scope":15421,"src":"6321:37:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13699,"name":"uint256","nodeType":"ElementaryTypeName","src":"6321:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":13723,"nodeType":"Block","src":"6703:131:50","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13710,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"6713:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6713:24:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13712,"nodeType":"ExpressionStatement","src":"6713:24:50"},{"expression":{"arguments":[{"id":13714,"name":"adminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13703,"src":"6762:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13713,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"6747:14:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6747:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13716,"nodeType":"ExpressionStatement","src":"6747:28:50"},{"expression":{"id":13721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13717,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13639,"src":"6786:10:50","typeDescriptions":{"typeIdentifier":"t_contract$_IConsensus_$17376","typeString":"contract IConsensus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13719,"name":"consensusAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13705,"src":"6810:16:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13718,"name":"IConsensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17376,"src":"6799:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IConsensus_$17376_$","typeString":"type(contract IConsensus)"}},"id":13720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6799:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IConsensus_$17376","typeString":"contract IConsensus"}},"src":"6786:41:50","typeDescriptions":{"typeIdentifier":"t_contract$_IConsensus_$17376","typeString":"contract IConsensus"}},"id":13722,"nodeType":"ExpressionStatement","src":"6786:41:50"}]},"documentation":{"id":13701,"nodeType":"StructuredDocumentation","src":"6397:192:50","text":" @dev Initializer function to initialize the contract with initial state.\n @param adminAddress admin address.\n @param consensusAddress Consensus contract address."},"functionSelector":"485cc955","id":13724,"implemented":true,"kind":"function","modifiers":[{"id":13708,"kind":"modifierInvocation","modifierName":{"id":13707,"name":"initializer","nameLocations":["6691:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"6691:11:50"},"nodeType":"ModifierInvocation","src":"6691:11:50"}],"name":"initialize","nameLocation":"6603:10:50","nodeType":"FunctionDefinition","parameters":{"id":13706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13703,"mutability":"mutable","name":"adminAddress","nameLocation":"6631:12:50","nodeType":"VariableDeclaration","scope":13724,"src":"6623:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13702,"name":"address","nodeType":"ElementaryTypeName","src":"6623:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13705,"mutability":"mutable","name":"consensusAddress","nameLocation":"6661:16:50","nodeType":"VariableDeclaration","scope":13724,"src":"6653:24:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13704,"name":"address","nodeType":"ElementaryTypeName","src":"6653:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6613:70:50"},"returnParameters":{"id":13709,"nodeType":"ParameterList","parameters":[],"src":"6703:0:50"},"scope":15421,"src":"6594:240:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1084],"body":{"id":13732,"nodeType":"Block","src":"6904:2:50","statements":[]},"id":13733,"implemented":true,"kind":"function","modifiers":[{"id":13730,"kind":"modifierInvocation","modifierName":{"id":13729,"name":"onlyOwner","nameLocations":["6894:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"6894:9:50"},"nodeType":"ModifierInvocation","src":"6894:9:50"}],"name":"_authorizeUpgrade","nameLocation":"6849:17:50","nodeType":"FunctionDefinition","overrides":{"id":13728,"nodeType":"OverrideSpecifier","overrides":[],"src":"6885:8:50"},"parameters":{"id":13727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13733,"src":"6867:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13725,"name":"address","nodeType":"ElementaryTypeName","src":"6867:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6866:9:50"},"returnParameters":{"id":13731,"nodeType":"ParameterList","parameters":[],"src":"6904:0:50"},"scope":15421,"src":"6840:66:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13760,"nodeType":"Block","src":"7118:112:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13743,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"7140:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}],"id":13742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7132:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13741,"name":"address","nodeType":"ElementaryTypeName","src":"7132:7:50","typeDescriptions":{}}},"id":13744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7132:20:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7164:1:50","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":13746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7156:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13745,"name":"address","nodeType":"ElementaryTypeName","src":"7156:7:50","typeDescriptions":{}}},"id":13748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7156:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7132:34:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13753,"nodeType":"IfStatement","src":"7128:48:50","trueBody":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13750,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"7168:6:50","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":13751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7168:8:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13752,"nodeType":"ExpressionStatement","src":"7168:8:50"}},{"expression":{"id":13758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13754,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"7186:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13756,"name":"tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13736,"src":"7212:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13755,"name":"ITokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17625,"src":"7200:11:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITokenUtils_$17625_$","typeString":"type(contract ITokenUtils)"}},"id":13757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7200:23:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"src":"7186:37:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"id":13759,"nodeType":"ExpressionStatement","src":"7186:37:50"}]},"documentation":{"id":13734,"nodeType":"StructuredDocumentation","src":"6934:117:50","text":" @dev Sets the token utils contract address.\n @param tokenUtils Token utils contract address."},"functionSelector":"9856869d","id":13761,"implemented":true,"kind":"function","modifiers":[{"id":13739,"kind":"modifierInvocation","modifierName":{"id":13738,"name":"onlyOwner","nameLocations":["7108:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"7108:9:50"},"nodeType":"ModifierInvocation","src":"7108:9:50"}],"name":"setTokenUtils","nameLocation":"7065:13:50","nodeType":"FunctionDefinition","parameters":{"id":13737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13736,"mutability":"mutable","name":"tokenUtils","nameLocation":"7087:10:50","nodeType":"VariableDeclaration","scope":13761,"src":"7079:18:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13735,"name":"address","nodeType":"ElementaryTypeName","src":"7079:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7078:20:50"},"returnParameters":{"id":13740,"nodeType":"ParameterList","parameters":[],"src":"7118:0:50"},"scope":15421,"src":"7056:174:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13780,"nodeType":"Block","src":"7292:106:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13768,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13763,"src":"7306:3:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7313:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7306:8:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13775,"nodeType":"IfStatement","src":"7302:62:50","trueBody":{"id":13774,"nodeType":"Block","src":"7316:48:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13771,"name":"ZeroFeeSetting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13529,"src":"7337:14:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7337:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13773,"nodeType":"RevertStatement","src":"7330:23:50"}]}},{"expression":{"id":13778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13776,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13698,"src":"7373:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13777,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13763,"src":"7388:3:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7373:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13779,"nodeType":"ExpressionStatement","src":"7373:18:50"}]},"functionSelector":"787dce3d","id":13781,"implemented":true,"kind":"function","modifiers":[{"id":13766,"kind":"modifierInvocation","modifierName":{"id":13765,"name":"onlyOwner","nameLocations":["7282:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"7282:9:50"},"nodeType":"ModifierInvocation","src":"7282:9:50"}],"name":"setProtocolFee","nameLocation":"7245:14:50","nodeType":"FunctionDefinition","parameters":{"id":13764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13763,"mutability":"mutable","name":"fee","nameLocation":"7268:3:50","nodeType":"VariableDeclaration","scope":13781,"src":"7260:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13762,"name":"uint256","nodeType":"ElementaryTypeName","src":"7260:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7259:13:50"},"returnParameters":{"id":13767,"nodeType":"ParameterList","parameters":[],"src":"7292:0:50"},"scope":15421,"src":"7236:162:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13838,"nodeType":"Block","src":"7488:427:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13790,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13783,"src":"7502:2:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":13793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7516:1:50","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":13792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7508:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13791,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:50","typeDescriptions":{}}},"id":13794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7508:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7502:16:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13796,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"7522:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7532:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7522:11:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7502:31:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13804,"nodeType":"IfStatement","src":"7498:70:50","trueBody":{"id":13803,"nodeType":"Block","src":"7535:33:50","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13800,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"7549:6:50","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":13801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7549:8:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13802,"nodeType":"ExpressionStatement","src":"7549:8:50"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13805,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"7582:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":13806,"name":"_collectedProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"7591:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7582:30:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13814,"nodeType":"IfStatement","src":"7578:129:50","trueBody":{"id":13813,"nodeType":"Block","src":"7614:93:50","statements":[{"errorCall":{"arguments":[{"id":13809,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"7666:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13810,"name":"_collectedProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"7674:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13808,"name":"InsufficientProtocolFeeBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13535,"src":"7635:30:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":13811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7635:61:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13812,"nodeType":"RevertStatement","src":"7628:68:50"}]}},{"assignments":[13816,13818],"declarations":[{"constant":false,"id":13816,"mutability":"mutable","name":"success","nameLocation":"7723:7:50","nodeType":"VariableDeclaration","scope":13838,"src":"7718:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13815,"name":"bool","nodeType":"ElementaryTypeName","src":"7718:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13818,"mutability":"mutable","name":"response","nameLocation":"7745:8:50","nodeType":"VariableDeclaration","scope":13838,"src":"7732:21:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13817,"name":"bytes","nodeType":"ElementaryTypeName","src":"7732:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13825,"initialValue":{"arguments":[{"hexValue":"","id":13823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7780:2:50","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":13819,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13783,"src":"7757:2:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":13820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7760:4:50","memberName":"call","nodeType":"MemberAccess","src":"7757:7:50","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":13822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"7772:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"7757:22:50","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":13824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:26:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7717:66:50"},{"condition":{"id":13827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7797:8:50","subExpression":{"id":13826,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13816,"src":"7798:7:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13833,"nodeType":"IfStatement","src":"7793:74:50","trueBody":{"id":13832,"nodeType":"Block","src":"7807:60:50","statements":[{"errorCall":{"arguments":[{"id":13829,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13818,"src":"7847:8:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13828,"name":"NativeTrasferError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13465,"src":"7828:18:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (bytes memory) pure returns (error)"}},"id":13830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7828:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13831,"nodeType":"RevertStatement","src":"7821:35:50"}]}},{"expression":{"id":13836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13834,"name":"_collectedProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"7877:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":13835,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"7902:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7877:31:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13837,"nodeType":"ExpressionStatement","src":"7877:31:50"}]},"functionSelector":"4d3a2a8c","id":13839,"implemented":true,"kind":"function","modifiers":[{"id":13788,"kind":"modifierInvocation","modifierName":{"id":13787,"name":"onlyOwner","nameLocations":["7478:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"7478:9:50"},"nodeType":"ModifierInvocation","src":"7478:9:50"}],"name":"withdrawProtocolFee","nameLocation":"7413:19:50","nodeType":"FunctionDefinition","parameters":{"id":13786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13783,"mutability":"mutable","name":"to","nameLocation":"7449:2:50","nodeType":"VariableDeclaration","scope":13839,"src":"7433:18:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":13782,"name":"address","nodeType":"ElementaryTypeName","src":"7433:15:50","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":13785,"mutability":"mutable","name":"amount","nameLocation":"7461:6:50","nodeType":"VariableDeclaration","scope":13839,"src":"7453:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13784,"name":"uint256","nodeType":"ElementaryTypeName","src":"7453:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7432:36:50"},"returnParameters":{"id":13789,"nodeType":"ParameterList","parameters":[],"src":"7488:0:50"},"scope":15421,"src":"7404:511:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13849,"nodeType":"Block","src":"8064:1407:50","statements":[{"AST":{"nativeSrc":"8099:1366:50","nodeType":"YulBlock","src":"8099:1366:50","statements":[{"nativeSrc":"8159:46:50","nodeType":"YulAssignment","src":"8159:46:50","value":{"arguments":[{"arguments":[{"name":"customErrorBytes","nativeSrc":"8181:16:50","nodeType":"YulIdentifier","src":"8181:16:50"},{"kind":"number","nativeSrc":"8199:4:50","nodeType":"YulLiteral","src":"8199:4:50","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8177:3:50","nodeType":"YulIdentifier","src":"8177:3:50"},"nativeSrc":"8177:27:50","nodeType":"YulFunctionCall","src":"8177:27:50"}],"functionName":{"name":"mload","nativeSrc":"8171:5:50","nodeType":"YulIdentifier","src":"8171:5:50"},"nativeSrc":"8171:34:50","nodeType":"YulFunctionCall","src":"8171:34:50"},"variableNames":[{"name":"selector","nativeSrc":"8159:8:50","nodeType":"YulIdentifier","src":"8159:8:50"}]},{"nativeSrc":"8297:49:50","nodeType":"YulVariableDeclaration","src":"8297:49:50","value":{"arguments":[{"arguments":[{"name":"customErrorBytes","nativeSrc":"8325:16:50","nodeType":"YulIdentifier","src":"8325:16:50"}],"functionName":{"name":"mload","nativeSrc":"8319:5:50","nodeType":"YulIdentifier","src":"8319:5:50"},"nativeSrc":"8319:23:50","nodeType":"YulFunctionCall","src":"8319:23:50"},{"kind":"number","nativeSrc":"8344:1:50","nodeType":"YulLiteral","src":"8344:1:50","type":"","value":"4"}],"functionName":{"name":"sub","nativeSrc":"8315:3:50","nodeType":"YulIdentifier","src":"8315:3:50"},"nativeSrc":"8315:31:50","nodeType":"YulFunctionCall","src":"8315:31:50"},"variables":[{"name":"dataLength","nativeSrc":"8301:10:50","nodeType":"YulTypedName","src":"8301:10:50","type":""}]},{"nativeSrc":"8402:19:50","nodeType":"YulAssignment","src":"8402:19:50","value":{"arguments":[{"kind":"number","nativeSrc":"8416:4:50","nodeType":"YulLiteral","src":"8416:4:50","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"8410:5:50","nodeType":"YulIdentifier","src":"8410:5:50"},"nativeSrc":"8410:11:50","nodeType":"YulFunctionCall","src":"8410:11:50"},"variableNames":[{"name":"data","nativeSrc":"8402:4:50","nodeType":"YulIdentifier","src":"8402:4:50"}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"8480:4:50","nodeType":"YulIdentifier","src":"8480:4:50"},{"name":"dataLength","nativeSrc":"8486:10:50","nodeType":"YulIdentifier","src":"8486:10:50"}],"functionName":{"name":"mstore","nativeSrc":"8473:6:50","nodeType":"YulIdentifier","src":"8473:6:50"},"nativeSrc":"8473:24:50","nodeType":"YulFunctionCall","src":"8473:24:50"},"nativeSrc":"8473:24:50","nodeType":"YulExpressionStatement","src":"8473:24:50"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8547:4:50","nodeType":"YulLiteral","src":"8547:4:50","type":"","value":"0x40"},{"arguments":[{"name":"data","nativeSrc":"8557:4:50","nodeType":"YulIdentifier","src":"8557:4:50"},{"arguments":[{"name":"dataLength","nativeSrc":"8567:10:50","nodeType":"YulIdentifier","src":"8567:10:50"},{"kind":"number","nativeSrc":"8579:4:50","nodeType":"YulLiteral","src":"8579:4:50","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8563:3:50","nodeType":"YulIdentifier","src":"8563:3:50"},"nativeSrc":"8563:21:50","nodeType":"YulFunctionCall","src":"8563:21:50"}],"functionName":{"name":"add","nativeSrc":"8553:3:50","nodeType":"YulIdentifier","src":"8553:3:50"},"nativeSrc":"8553:32:50","nodeType":"YulFunctionCall","src":"8553:32:50"}],"functionName":{"name":"mstore","nativeSrc":"8540:6:50","nodeType":"YulIdentifier","src":"8540:6:50"},"nativeSrc":"8540:46:50","nodeType":"YulFunctionCall","src":"8540:46:50"},"nativeSrc":"8540:46:50","nodeType":"YulExpressionStatement","src":"8540:46:50"},{"nativeSrc":"8674:41:50","nodeType":"YulVariableDeclaration","src":"8674:41:50","value":{"arguments":[{"name":"customErrorBytes","nativeSrc":"8692:16:50","nodeType":"YulIdentifier","src":"8692:16:50"},{"kind":"number","nativeSrc":"8710:4:50","nodeType":"YulLiteral","src":"8710:4:50","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"8688:3:50","nodeType":"YulIdentifier","src":"8688:3:50"},"nativeSrc":"8688:27:50","nodeType":"YulFunctionCall","src":"8688:27:50"},"variables":[{"name":"source","nativeSrc":"8678:6:50","nodeType":"YulTypedName","src":"8678:6:50","type":""}]},{"nativeSrc":"8765:27:50","nodeType":"YulVariableDeclaration","src":"8765:27:50","value":{"arguments":[{"name":"data","nativeSrc":"8781:4:50","nodeType":"YulIdentifier","src":"8781:4:50"},{"kind":"number","nativeSrc":"8787:4:50","nodeType":"YulLiteral","src":"8787:4:50","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8777:3:50","nodeType":"YulIdentifier","src":"8777:3:50"},"nativeSrc":"8777:15:50","nodeType":"YulFunctionCall","src":"8777:15:50"},"variables":[{"name":"dest","nativeSrc":"8769:4:50","nodeType":"YulTypedName","src":"8769:4:50","type":""}]},{"body":{"nativeSrc":"8931:75:50","nodeType":"YulBlock","src":"8931:75:50","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dest","nativeSrc":"8960:4:50","nodeType":"YulIdentifier","src":"8960:4:50"},{"name":"i","nativeSrc":"8966:1:50","nodeType":"YulIdentifier","src":"8966:1:50"}],"functionName":{"name":"add","nativeSrc":"8956:3:50","nodeType":"YulIdentifier","src":"8956:3:50"},"nativeSrc":"8956:12:50","nodeType":"YulFunctionCall","src":"8956:12:50"},{"arguments":[{"arguments":[{"name":"source","nativeSrc":"8980:6:50","nodeType":"YulIdentifier","src":"8980:6:50"},{"name":"i","nativeSrc":"8988:1:50","nodeType":"YulIdentifier","src":"8988:1:50"}],"functionName":{"name":"add","nativeSrc":"8976:3:50","nodeType":"YulIdentifier","src":"8976:3:50"},"nativeSrc":"8976:14:50","nodeType":"YulFunctionCall","src":"8976:14:50"}],"functionName":{"name":"mload","nativeSrc":"8970:5:50","nodeType":"YulIdentifier","src":"8970:5:50"},"nativeSrc":"8970:21:50","nodeType":"YulFunctionCall","src":"8970:21:50"}],"functionName":{"name":"mstore","nativeSrc":"8949:6:50","nodeType":"YulIdentifier","src":"8949:6:50"},"nativeSrc":"8949:43:50","nodeType":"YulFunctionCall","src":"8949:43:50"},"nativeSrc":"8949:43:50","nodeType":"YulExpressionStatement","src":"8949:43:50"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8866:1:50","nodeType":"YulIdentifier","src":"8866:1:50"},{"arguments":[{"name":"dataLength","nativeSrc":"8873:10:50","nodeType":"YulIdentifier","src":"8873:10:50"},{"arguments":[{"name":"dataLength","nativeSrc":"8889:10:50","nodeType":"YulIdentifier","src":"8889:10:50"},{"kind":"number","nativeSrc":"8901:4:50","nodeType":"YulLiteral","src":"8901:4:50","type":"","value":"0x20"}],"functionName":{"name":"mod","nativeSrc":"8885:3:50","nodeType":"YulIdentifier","src":"8885:3:50"},"nativeSrc":"8885:21:50","nodeType":"YulFunctionCall","src":"8885:21:50"}],"functionName":{"name":"sub","nativeSrc":"8869:3:50","nodeType":"YulIdentifier","src":"8869:3:50"},"nativeSrc":"8869:38:50","nodeType":"YulFunctionCall","src":"8869:38:50"}],"functionName":{"name":"lt","nativeSrc":"8863:2:50","nodeType":"YulIdentifier","src":"8863:2:50"},"nativeSrc":"8863:45:50","nodeType":"YulFunctionCall","src":"8863:45:50"},"nativeSrc":"8844:162:50","nodeType":"YulForLoop","post":{"nativeSrc":"8909:21:50","nodeType":"YulBlock","src":"8909:21:50","statements":[{"nativeSrc":"8911:17:50","nodeType":"YulAssignment","src":"8911:17:50","value":{"arguments":[{"name":"i","nativeSrc":"8920:1:50","nodeType":"YulIdentifier","src":"8920:1:50"},{"kind":"number","nativeSrc":"8923:4:50","nodeType":"YulLiteral","src":"8923:4:50","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8916:3:50","nodeType":"YulIdentifier","src":"8916:3:50"},"nativeSrc":"8916:12:50","nodeType":"YulFunctionCall","src":"8916:12:50"},"variableNames":[{"name":"i","nativeSrc":"8911:1:50","nodeType":"YulIdentifier","src":"8911:1:50"}]}]},"pre":{"nativeSrc":"8848:14:50","nodeType":"YulBlock","src":"8848:14:50","statements":[{"nativeSrc":"8850:10:50","nodeType":"YulVariableDeclaration","src":"8850:10:50","value":{"kind":"number","nativeSrc":"8859:1:50","nodeType":"YulLiteral","src":"8859:1:50","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8854:1:50","nodeType":"YulTypedName","src":"8854:1:50","type":""}]}]},"src":"8844:162:50"},{"nativeSrc":"9065:43:50","nodeType":"YulVariableDeclaration","src":"9065:43:50","value":{"arguments":[{"name":"dataLength","nativeSrc":"9091:10:50","nodeType":"YulIdentifier","src":"9091:10:50"},{"kind":"number","nativeSrc":"9103:4:50","nodeType":"YulLiteral","src":"9103:4:50","type":"","value":"0x20"}],"functionName":{"name":"mod","nativeSrc":"9087:3:50","nodeType":"YulIdentifier","src":"9087:3:50"},"nativeSrc":"9087:21:50","nodeType":"YulFunctionCall","src":"9087:21:50"},"variables":[{"name":"remainingBytes","nativeSrc":"9069:14:50","nodeType":"YulTypedName","src":"9069:14:50","type":""}]},{"body":{"nativeSrc":"9146:309:50","nodeType":"YulBlock","src":"9146:309:50","statements":[{"nativeSrc":"9164:63:50","nodeType":"YulVariableDeclaration","src":"9164:63:50","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9189:5:50","nodeType":"YulLiteral","src":"9189:5:50","type":"","value":"0x100"},{"arguments":[{"kind":"number","nativeSrc":"9200:4:50","nodeType":"YulLiteral","src":"9200:4:50","type":"","value":"0x20"},{"name":"remainingBytes","nativeSrc":"9206:14:50","nodeType":"YulIdentifier","src":"9206:14:50"}],"functionName":{"name":"sub","nativeSrc":"9196:3:50","nodeType":"YulIdentifier","src":"9196:3:50"},"nativeSrc":"9196:25:50","nodeType":"YulFunctionCall","src":"9196:25:50"}],"functionName":{"name":"exp","nativeSrc":"9185:3:50","nodeType":"YulIdentifier","src":"9185:3:50"},"nativeSrc":"9185:37:50","nodeType":"YulFunctionCall","src":"9185:37:50"},{"kind":"number","nativeSrc":"9224:1:50","nodeType":"YulLiteral","src":"9224:1:50","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9181:3:50","nodeType":"YulIdentifier","src":"9181:3:50"},"nativeSrc":"9181:45:50","nodeType":"YulFunctionCall","src":"9181:45:50"}],"functionName":{"name":"not","nativeSrc":"9177:3:50","nodeType":"YulIdentifier","src":"9177:3:50"},"nativeSrc":"9177:50:50","nodeType":"YulFunctionCall","src":"9177:50:50"},"variables":[{"name":"mask","nativeSrc":"9168:4:50","nodeType":"YulTypedName","src":"9168:4:50","type":""}]},{"nativeSrc":"9272:62:50","nodeType":"YulVariableDeclaration","src":"9272:62:50","value":{"arguments":[{"arguments":[{"name":"source","nativeSrc":"9293:6:50","nodeType":"YulIdentifier","src":"9293:6:50"},{"arguments":[{"name":"dataLength","nativeSrc":"9305:10:50","nodeType":"YulIdentifier","src":"9305:10:50"},{"name":"remainingBytes","nativeSrc":"9317:14:50","nodeType":"YulIdentifier","src":"9317:14:50"}],"functionName":{"name":"sub","nativeSrc":"9301:3:50","nodeType":"YulIdentifier","src":"9301:3:50"},"nativeSrc":"9301:31:50","nodeType":"YulFunctionCall","src":"9301:31:50"}],"functionName":{"name":"add","nativeSrc":"9289:3:50","nodeType":"YulIdentifier","src":"9289:3:50"},"nativeSrc":"9289:44:50","nodeType":"YulFunctionCall","src":"9289:44:50"}],"functionName":{"name":"mload","nativeSrc":"9283:5:50","nodeType":"YulIdentifier","src":"9283:5:50"},"nativeSrc":"9283:51:50","nodeType":"YulFunctionCall","src":"9283:51:50"},"variables":[{"name":"src","nativeSrc":"9276:3:50","nodeType":"YulTypedName","src":"9276:3:50","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"dest","nativeSrc":"9362:4:50","nodeType":"YulIdentifier","src":"9362:4:50"},{"arguments":[{"name":"dataLength","nativeSrc":"9372:10:50","nodeType":"YulIdentifier","src":"9372:10:50"},{"name":"remainingBytes","nativeSrc":"9384:14:50","nodeType":"YulIdentifier","src":"9384:14:50"}],"functionName":{"name":"sub","nativeSrc":"9368:3:50","nodeType":"YulIdentifier","src":"9368:3:50"},"nativeSrc":"9368:31:50","nodeType":"YulFunctionCall","src":"9368:31:50"}],"functionName":{"name":"add","nativeSrc":"9358:3:50","nodeType":"YulIdentifier","src":"9358:3:50"},"nativeSrc":"9358:42:50","nodeType":"YulFunctionCall","src":"9358:42:50"},{"arguments":[{"name":"src","nativeSrc":"9406:3:50","nodeType":"YulIdentifier","src":"9406:3:50"},{"name":"mask","nativeSrc":"9410:4:50","nodeType":"YulIdentifier","src":"9410:4:50"}],"functionName":{"name":"and","nativeSrc":"9402:3:50","nodeType":"YulIdentifier","src":"9402:3:50"},"nativeSrc":"9402:13:50","nodeType":"YulFunctionCall","src":"9402:13:50"}],"functionName":{"name":"mstore","nativeSrc":"9351:6:50","nodeType":"YulIdentifier","src":"9351:6:50"},"nativeSrc":"9351:65:50","nodeType":"YulFunctionCall","src":"9351:65:50"},"nativeSrc":"9351:65:50","nodeType":"YulExpressionStatement","src":"9351:65:50"}]},"condition":{"arguments":[{"name":"remainingBytes","nativeSrc":"9127:14:50","nodeType":"YulIdentifier","src":"9127:14:50"},{"kind":"number","nativeSrc":"9143:1:50","nodeType":"YulLiteral","src":"9143:1:50","type":"","value":"0"}],"functionName":{"name":"gt","nativeSrc":"9124:2:50","nodeType":"YulIdentifier","src":"9124:2:50"},"nativeSrc":"9124:21:50","nodeType":"YulFunctionCall","src":"9124:21:50"},"nativeSrc":"9121:334:50","nodeType":"YulIf","src":"9121:334:50"}]},"evmVersion":"paris","externalReferences":[{"declaration":13841,"isOffset":false,"isSlot":false,"src":"8181:16:50","valueSize":1},{"declaration":13841,"isOffset":false,"isSlot":false,"src":"8325:16:50","valueSize":1},{"declaration":13841,"isOffset":false,"isSlot":false,"src":"8692:16:50","valueSize":1},{"declaration":13846,"isOffset":false,"isSlot":false,"src":"8402:4:50","valueSize":1},{"declaration":13846,"isOffset":false,"isSlot":false,"src":"8480:4:50","valueSize":1},{"declaration":13846,"isOffset":false,"isSlot":false,"src":"8557:4:50","valueSize":1},{"declaration":13846,"isOffset":false,"isSlot":false,"src":"8781:4:50","valueSize":1},{"declaration":13844,"isOffset":false,"isSlot":false,"src":"8159:8:50","valueSize":1}],"flags":["memory-safe"],"id":13848,"nodeType":"InlineAssembly","src":"8074:1391:50"}]},"id":13850,"implemented":true,"kind":"function","modifiers":[],"name":"_decodeCustomError","nameLocation":"7955:18:50","nodeType":"FunctionDefinition","parameters":{"id":13842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13841,"mutability":"mutable","name":"customErrorBytes","nameLocation":"7987:16:50","nodeType":"VariableDeclaration","scope":13850,"src":"7974:29:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13840,"name":"bytes","nodeType":"ElementaryTypeName","src":"7974:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7973:31:50"},"returnParameters":{"id":13847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13844,"mutability":"mutable","name":"selector","nameLocation":"8035:8:50","nodeType":"VariableDeclaration","scope":13850,"src":"8028:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13843,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8028:6:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13846,"mutability":"mutable","name":"data","nameLocation":"8058:4:50","nodeType":"VariableDeclaration","scope":13850,"src":"8045:17:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13845,"name":"bytes","nodeType":"ElementaryTypeName","src":"8045:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8027:36:50"},"scope":15421,"src":"7946:1525:50","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13873,"nodeType":"Block","src":"9546:185:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"id":13860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13857,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"9560:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13858,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"9579:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":13859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9594:4:50","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":13648,"src":"9579:19:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"9560:38:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13871,"nodeType":"Block","src":"9670:55:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":13869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13867,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13852,"src":"9691:4:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13868,"name":"_simulationRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13656,"src":"9699:15:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9691:23:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13856,"id":13870,"nodeType":"Return","src":"9684:30:50"}]},"id":13872,"nodeType":"IfStatement","src":"9556:169:50","trueBody":{"id":13866,"nodeType":"Block","src":"9600:64:50","statements":[{"expression":{"arguments":[{"id":13863,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13852,"src":"9648:4:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13861,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13639,"src":"9621:10:50","typeDescriptions":{"typeIdentifier":"t_contract$_IConsensus_$17376","typeString":"contract IConsensus"}},"id":13862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9632:15:50","memberName":"checkMerkleRoot","nodeType":"MemberAccess","referencedDeclaration":17375,"src":"9621:26:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":13864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9621:32:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13856,"id":13865,"nodeType":"Return","src":"9614:39:50"}]}}]},"id":13874,"implemented":true,"kind":"function","modifiers":[],"name":"_checkMerkleRoot","nameLocation":"9486:16:50","nodeType":"FunctionDefinition","parameters":{"id":13853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13852,"mutability":"mutable","name":"root","nameLocation":"9511:4:50","nodeType":"VariableDeclaration","scope":13874,"src":"9503:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9503:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9502:14:50"},"returnParameters":{"id":13856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13874,"src":"9540:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13854,"name":"bool","nodeType":"ElementaryTypeName","src":"9540:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9539:6:50"},"scope":15421,"src":"9477:254:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14026,"nodeType":"Block","src":"9951:1407:50","statements":[{"assignments":[13890],"declarations":[{"constant":false,"id":13890,"mutability":"mutable","name":"gasPassed","nameLocation":"9969:9:50","nodeType":"VariableDeclaration","scope":14026,"src":"9961:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13889,"name":"uint256","nodeType":"ElementaryTypeName","src":"9961:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13893,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13891,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"9981:7:50","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9981:9:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9961:29:50"},{"condition":{"id":13894,"name":"_receiveInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"10005:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13899,"nodeType":"IfStatement","src":"10001:84:50","trueBody":{"id":13898,"nodeType":"Block","src":"10025:60:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13895,"name":"RecursiveMessageProcessing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13477,"src":"10046:26:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10046:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13897,"nodeType":"RevertStatement","src":"10039:35:50"}]}},{"expression":{"id":13910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13900,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13884,"src":"10133:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":13906,"name":"encodedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13878,"src":"10180:14:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":13905,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10170:9:50","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10170:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10157:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":13902,"name":"bytes","nodeType":"ElementaryTypeName","src":"10157:5:50","typeDescriptions":{}}},"id":13904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10163:6:50","memberName":"concat","nodeType":"MemberAccess","src":"10157:12:50","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10157:39:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13901,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10147:9:50","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10147:50:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10133:64:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13911,"nodeType":"ExpressionStatement","src":"10133:64:50"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":13912,"name":"_processedInMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"10270:20:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":13914,"indexExpression":{"id":13913,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13884,"src":"10291:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10270:33:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"74727565","id":13915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10307:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10270:41:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13922,"nodeType":"IfStatement","src":"10267:114:50","trueBody":{"id":13921,"nodeType":"Block","src":"10313:68:50","statements":[{"errorCall":{"arguments":[{"id":13918,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13884,"src":"10358:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13917,"name":"MessageAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"10334:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":13919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10334:36:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13920,"nodeType":"RevertStatement","src":"10327:43:50"}]}},{"condition":{"id":13930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10395:71:50","subExpression":{"arguments":[{"arguments":[{"id":13926,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13881,"src":"10446:5:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":13927,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13884,"src":"10453:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13924,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8457,"src":"10413:11:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$8457_$","typeString":"type(library MerkleProof)"}},"id":13925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10425:20:50","memberName":"processProofCalldata","nodeType":"MemberAccess","referencedDeclaration":7598,"src":"10413:32:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bytes32) pure returns (bytes32)"}},"id":13928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10413:52:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13923,"name":"_checkMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13874,"src":"10396:16:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":13929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10396:70:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13935,"nodeType":"IfStatement","src":"10391:129:50","trueBody":{"id":13934,"nodeType":"Block","src":"10468:52:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13931,"name":"InvalidMerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13485,"src":"10489:18:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10489:20:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13933,"nodeType":"RevertStatement","src":"10482:27:50"}]}},{"expression":{"id":13942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13936,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13887,"src":"10530:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13939,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13876,"src":"10567:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13940,"name":"encodedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13878,"src":"10576:14:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":13937,"name":"VersionLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18419,"src":"10540:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VersionLib_$18419_$","typeString":"type(library VersionLib)"}},"id":13938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10551:15:50","memberName":"decodeInMessage","nodeType":"MemberAccess","referencedDeclaration":18286,"src":"10540:26:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_struct$_UnionInMessage_$18197_memory_ptr_$","typeString":"function (uint256,bytes calldata) pure returns (struct VersionLib.UnionInMessage memory)"}},"id":13941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10540:51:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"src":"10530:61:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":13943,"nodeType":"ExpressionStatement","src":"10530:61:50"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"id":13947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13944,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"10606:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13945,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"10625:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":13946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10640:4:50","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":13648,"src":"10625:19:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"10606:38:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13961,"nodeType":"IfStatement","src":"10602:183:50","trueBody":{"id":13960,"nodeType":"Block","src":"10646:139:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13948,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13887,"src":"10664:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":13949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10672:8:50","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":18154,"src":"10664:16:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":13950,"name":"gasPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13890,"src":"10683:9:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10664:28:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13959,"nodeType":"IfStatement","src":"10660:115:50","trueBody":{"id":13958,"nodeType":"Block","src":"10694:81:50","statements":[{"errorCall":{"arguments":[{"expression":{"id":13953,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13887,"src":"10732:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":13954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10740:8:50","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":18154,"src":"10732:16:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":13955,"name":"gasPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13890,"src":"10750:9:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13952,"name":"NotEnoughGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13519,"src":"10719:12:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint64_$_t_uint256_$returns$_t_error_$","typeString":"function (uint64,uint256) pure returns (error)"}},"id":13956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10719:41:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13957,"nodeType":"RevertStatement","src":"10712:48:50"}]}}]}},{"assignments":[13964],"declarations":[{"constant":false,"id":13964,"mutability":"mutable","name":"epochInfo","nameLocation":"10812:9:50","nodeType":"VariableDeclaration","scope":14026,"src":"10795:26:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo"},"typeName":{"id":13963,"nodeType":"UserDefinedTypeName","pathNode":{"id":13962,"name":"EpochInfo","nameLocations":["10795:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16098,"src":"10795:9:50"},"referencedDeclaration":16098,"src":"10795:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_storage_ptr","typeString":"struct EpochInfo"}},"visibility":"internal"}],"id":13968,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13965,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13639,"src":"10824:10:50","typeDescriptions":{"typeIdentifier":"t_contract$_IConsensus_$17376","typeString":"contract IConsensus"}},"id":13966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10835:19:50","memberName":"getCurrentEpochInfo","nodeType":"MemberAccess","referencedDeclaration":17355,"src":"10824:30:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_EpochInfo_$16098_memory_ptr_$","typeString":"function () view external returns (struct EpochInfo memory)"}},"id":13967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10824:32:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"10795:61:50"},{"assignments":[13970],"declarations":[{"constant":false,"id":13970,"mutability":"mutable","name":"seed","nameLocation":"10874:4:50","nodeType":"VariableDeclaration","scope":14026,"src":"10866:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10866:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13982,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":13974,"name":"epochInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13964,"src":"10908:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo memory"}},"id":13975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10918:10:50","memberName":"merkleRoot","nodeType":"MemberAccess","referencedDeclaration":16087,"src":"10908:20:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":13976,"name":"epochInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13964,"src":"10930:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo memory"}},"id":13977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10940:18:50","memberName":"currEpochStartTime","nodeType":"MemberAccess","referencedDeclaration":16095,"src":"10930:28:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":13978,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13887,"src":"10960:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":13979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10968:11:50","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"10960:19:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13972,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10891:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10895:12:50","memberName":"encodePacked","nodeType":"MemberAccess","src":"10891:16:50","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10891:89:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13971,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10881:9:50","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10881:100:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10866:115:50"},{"assignments":[13984],"declarations":[{"constant":false,"id":13984,"mutability":"mutable","name":"executorIndex","nameLocation":"10999:13:50","nodeType":"VariableDeclaration","scope":14026,"src":"10991:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13983,"name":"uint256","nodeType":"ElementaryTypeName","src":"10991:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13993,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13987,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13970,"src":"11023:4:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11015:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13985,"name":"uint256","nodeType":"ElementaryTypeName","src":"11015:7:50","typeDescriptions":{}}},"id":13988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11015:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"expression":{"id":13989,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13887,"src":"11031:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":13990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11039:17:50","memberName":"evmValidExecutors","nodeType":"MemberAccess","referencedDeclaration":18172,"src":"11031:25:50","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11057:6:50","memberName":"length","nodeType":"MemberAccess","src":"11031:32:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11015:48:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10991:72:50"},{"assignments":[13995],"declarations":[{"constant":false,"id":13995,"mutability":"mutable","name":"currentExecutor","nameLocation":"11081:15:50","nodeType":"VariableDeclaration","scope":14026,"src":"11073:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13994,"name":"address","nodeType":"ElementaryTypeName","src":"11073:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14000,"initialValue":{"baseExpression":{"expression":{"id":13996,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13887,"src":"11099:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":13997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11107:17:50","memberName":"evmValidExecutors","nodeType":"MemberAccess","referencedDeclaration":18172,"src":"11099:25:50","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13999,"indexExpression":{"id":13998,"name":"executorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13984,"src":"11125:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11099:40:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11073:66:50"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"id":14004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14001,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"11153:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14002,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"11172:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":14003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11187:4:50","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":13648,"src":"11172:19:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"11153:38:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14005,"name":"currentExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13995,"src":"11195:15:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14006,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11214:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11218:6:50","memberName":"sender","nodeType":"MemberAccess","src":"11214:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11195:29:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11153:71:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14010,"name":"currentExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13995,"src":"11228:15:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14011,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"11247:2:50","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":14012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11250:6:50","memberName":"origin","nodeType":"MemberAccess","src":"11247:9:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11228:28:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11153:103:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14025,"nodeType":"IfStatement","src":"11149:203:50","trueBody":{"id":14024,"nodeType":"Block","src":"11258:94:50","statements":[{"errorCall":{"arguments":[{"expression":{"id":14016,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13887,"src":"11298:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11306:11:50","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"11298:19:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":14018,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11319:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11323:6:50","memberName":"sender","nodeType":"MemberAccess","src":"11319:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14020,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"11331:2:50","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":14021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11334:6:50","memberName":"origin","nodeType":"MemberAccess","src":"11331:9:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14015,"name":"ExecutorIsNotValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13507,"src":"11279:18:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (bytes32,address,address) pure returns (error)"}},"id":14022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11279:62:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14023,"nodeType":"RevertStatement","src":"11272:69:50"}]}}]},"id":14027,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInMessage","nameLocation":"9746:15:50","nodeType":"FunctionDefinition","parameters":{"id":13882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13876,"mutability":"mutable","name":"version","nameLocation":"9779:7:50","nodeType":"VariableDeclaration","scope":14027,"src":"9771:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13875,"name":"uint256","nodeType":"ElementaryTypeName","src":"9771:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13878,"mutability":"mutable","name":"encodedMessage","nameLocation":"9811:14:50","nodeType":"VariableDeclaration","scope":14027,"src":"9796:29:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13877,"name":"bytes","nodeType":"ElementaryTypeName","src":"9796:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13881,"mutability":"mutable","name":"proof","nameLocation":"9854:5:50","nodeType":"VariableDeclaration","scope":14027,"src":"9835:24:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9835:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13880,"nodeType":"ArrayTypeName","src":"9835:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"9761:99:50"},"returnParameters":{"id":13888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13884,"mutability":"mutable","name":"messageHash","nameLocation":"9896:11:50","nodeType":"VariableDeclaration","scope":14027,"src":"9888:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9888:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13887,"mutability":"mutable","name":"message","nameLocation":"9942:7:50","nodeType":"VariableDeclaration","scope":14027,"src":"9909:40:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage"},"typeName":{"id":13886,"nodeType":"UserDefinedTypeName","pathNode":{"id":13885,"name":"VersionLib.UnionInMessage","nameLocations":["9909:10:50","9920:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":18197,"src":"9909:25:50"},"referencedDeclaration":18197,"src":"9909:25:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_storage_ptr","typeString":"struct VersionLib.UnionInMessage"}},"visibility":"internal"}],"src":"9887:63:50"},"scope":15421,"src":"9737:1621:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14115,"nodeType":"Block","src":"11466:757:50","statements":[{"assignments":[14036],"declarations":[{"constant":false,"id":14036,"mutability":"mutable","name":"i","nameLocation":"11481:1:50","nodeType":"VariableDeclaration","scope":14115,"src":"11476:6:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14035,"name":"uint","nodeType":"ElementaryTypeName","src":"11476:4:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14037,"nodeType":"VariableDeclarationStatement","src":"11476:6:50"},{"body":{"id":14069,"nodeType":"Block","src":"11562:235:50","statements":[{"assignments":[14045],"declarations":[{"constant":false,"id":14045,"mutability":"mutable","name":"info","nameLocation":"11593:4:50","nodeType":"VariableDeclaration","scope":14069,"src":"11576:21:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_memory_ptr","typeString":"struct TokenInfo"},"typeName":{"id":14044,"nodeType":"UserDefinedTypeName","pathNode":{"id":14043,"name":"TokenInfo","nameLocations":["11576:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":15983,"src":"11576:9:50"},"referencedDeclaration":15983,"src":"11576:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_storage_ptr","typeString":"struct TokenInfo"}},"visibility":"internal"}],"id":14050,"initialValue":{"baseExpression":{"expression":{"id":14046,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14030,"src":"11600:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11608:4:50","memberName":"meta","nodeType":"MemberAccess","referencedDeclaration":18184,"src":"11600:12:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenInfo_$15983_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenInfo memory[] memory"}},"id":14049,"indexExpression":{"id":14048,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14036,"src":"11613:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11600:15:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_memory_ptr","typeString":"struct TokenInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"11576:39:50"},{"condition":{"id":14056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11633:36:50","subExpression":{"arguments":[{"expression":{"id":14053,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14045,"src":"11653:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_memory_ptr","typeString":"struct TokenInfo memory"}},"id":14054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11658:10:50","memberName":"tvmAddress","nodeType":"MemberAccess","referencedDeclaration":15982,"src":"11653:15:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14051,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"11634:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"id":14052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11646:6:50","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":17608,"src":"11634:18:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) view external returns (bool)"}},"id":14055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11634:35:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14064,"nodeType":"IfStatement","src":"11629:99:50","trueBody":{"id":14063,"nodeType":"Block","src":"11671:57:50","statements":[{"expression":{"arguments":[{"id":14060,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14045,"src":"11708:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_memory_ptr","typeString":"struct TokenInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenInfo_$15983_memory_ptr","typeString":"struct TokenInfo memory"}],"expression":{"id":14057,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"11689:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"id":14059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11701:6:50","memberName":"create","nodeType":"MemberAccess","referencedDeclaration":17585,"src":"11689:18:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_TokenInfo_$15983_memory_ptr_$returns$__$","typeString":"function (struct TokenInfo memory) external"}},"id":14061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11689:24:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14062,"nodeType":"ExpressionStatement","src":"11689:24:50"}]}},{"id":14068,"nodeType":"UncheckedBlock","src":"11741:46:50","statements":[{"expression":{"id":14066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11769:3:50","subExpression":{"id":14065,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14036,"src":"11769:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14067,"nodeType":"ExpressionStatement","src":"11769:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14038,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14036,"src":"11536:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14039,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14030,"src":"11540:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:4:50","memberName":"meta","nodeType":"MemberAccess","referencedDeclaration":18184,"src":"11540:12:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenInfo_$15983_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenInfo memory[] memory"}},"id":14041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11553:6:50","memberName":"length","nodeType":"MemberAccess","src":"11540:19:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11536:23:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14070,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"11530:267:50"},{"expression":{"id":14072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11806:8:50","subExpression":{"id":14071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14036,"src":"11813:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14073,"nodeType":"ExpressionStatement","src":"11806:8:50"},{"body":{"id":14105,"nodeType":"Block","src":"11876:242:50","statements":[{"assignments":[14081],"declarations":[{"constant":false,"id":14081,"mutability":"mutable","name":"info","nameLocation":"11905:4:50","nodeType":"VariableDeclaration","scope":14105,"src":"11890:19:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_memory_ptr","typeString":"struct NFTInfo"},"typeName":{"id":14080,"nodeType":"UserDefinedTypeName","pathNode":{"id":14079,"name":"NFTInfo","nameLocations":["11890:7:50"],"nodeType":"IdentifierPath","referencedDeclaration":15993,"src":"11890:7:50"},"referencedDeclaration":15993,"src":"11890:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_storage_ptr","typeString":"struct NFTInfo"}},"visibility":"internal"}],"id":14086,"initialValue":{"baseExpression":{"expression":{"id":14082,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14030,"src":"11912:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11920:7:50","memberName":"metaNFT","nodeType":"MemberAccess","referencedDeclaration":18196,"src":"11912:15:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTInfo_$15993_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTInfo memory[] memory"}},"id":14085,"indexExpression":{"id":14084,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14036,"src":"11928:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11912:18:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_memory_ptr","typeString":"struct NFTInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"11890:40:50"},{"condition":{"id":14092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11948:36:50","subExpression":{"arguments":[{"expression":{"id":14089,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14081,"src":"11968:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_memory_ptr","typeString":"struct NFTInfo memory"}},"id":14090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11973:10:50","memberName":"tvmAddress","nodeType":"MemberAccess","referencedDeclaration":15992,"src":"11968:15:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14087,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"11949:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"id":14088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11961:6:50","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":17608,"src":"11949:18:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) view external returns (bool)"}},"id":14091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11949:35:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14100,"nodeType":"IfStatement","src":"11944:105:50","trueBody":{"id":14099,"nodeType":"Block","src":"11986:63:50","statements":[{"expression":{"arguments":[{"id":14096,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14081,"src":"12029:4:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_memory_ptr","typeString":"struct NFTInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_NFTInfo_$15993_memory_ptr","typeString":"struct NFTInfo memory"}],"expression":{"id":14093,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"12004:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"id":14095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12016:12:50","memberName":"createERC721","nodeType":"MemberAccess","referencedDeclaration":17592,"src":"12004:24:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_NFTInfo_$15993_memory_ptr_$returns$__$","typeString":"function (struct NFTInfo memory) external"}},"id":14097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12004:30:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14098,"nodeType":"ExpressionStatement","src":"12004:30:50"}]}},{"id":14104,"nodeType":"UncheckedBlock","src":"12062:46:50","statements":[{"expression":{"id":14102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12090:3:50","subExpression":{"id":14101,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14036,"src":"12090:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14103,"nodeType":"ExpressionStatement","src":"12090:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14074,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14036,"src":"11847:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14075,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14030,"src":"11851:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11859:7:50","memberName":"metaNFT","nodeType":"MemberAccess","referencedDeclaration":18196,"src":"11851:15:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTInfo_$15993_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTInfo memory[] memory"}},"id":14077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11867:6:50","memberName":"length","nodeType":"MemberAccess","src":"11851:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11847:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14106,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"11842:276:50"},{"expression":{"arguments":[{"expression":{"id":14110,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14030,"src":"12180:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12188:14:50","memberName":"evmExecutorFee","nodeType":"MemberAccess","referencedDeclaration":18169,"src":"12180:22:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},{"id":14112,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14032,"src":"12204:11:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14107,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"12160:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenHelperLib_$18118_$","typeString":"type(library TokenHelperLib)"}},"id":14109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12175:4:50","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":17848,"src":"12160:19:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_TokenAmount_$15999_memory_ptr_$_t_address_$returns$__$","typeString":"function (struct TokenAmount memory,address)"}},"id":14113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12160:56:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14114,"nodeType":"ExpressionStatement","src":"12160:56:50"}]},"id":14116,"implemented":true,"kind":"function","modifiers":[],"name":"_preprocessInMessage","nameLocation":"11373:20:50","nodeType":"FunctionDefinition","parameters":{"id":14033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14030,"mutability":"mutable","name":"message","nameLocation":"11427:7:50","nodeType":"VariableDeclaration","scope":14116,"src":"11394:40:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage"},"typeName":{"id":14029,"nodeType":"UserDefinedTypeName","pathNode":{"id":14028,"name":"VersionLib.UnionInMessage","nameLocations":["11394:10:50","11405:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":18197,"src":"11394:25:50"},"referencedDeclaration":18197,"src":"11394:25:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_storage_ptr","typeString":"struct VersionLib.UnionInMessage"}},"visibility":"internal"},{"constant":false,"id":14032,"mutability":"mutable","name":"feeReceiver","nameLocation":"11444:11:50","nodeType":"VariableDeclaration","scope":14116,"src":"11436:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14031,"name":"address","nodeType":"ElementaryTypeName","src":"11436:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11393:63:50"},"returnParameters":{"id":14034,"nodeType":"ParameterList","parameters":[],"src":"11466:0:50"},"scope":15421,"src":"11364:859:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14305,"nodeType":"Block","src":"12347:1734:50","statements":[{"assignments":[14125],"declarations":[{"constant":false,"id":14125,"mutability":"mutable","name":"i","nameLocation":"12362:1:50","nodeType":"VariableDeclaration","scope":14305,"src":"12357:6:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14124,"name":"uint","nodeType":"ElementaryTypeName","src":"12357:4:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14126,"nodeType":"VariableDeclarationStatement","src":"12357:6:50"},{"body":{"id":14165,"nodeType":"Block","src":"12429:311:50","statements":[{"assignments":[14134],"declarations":[{"constant":false,"id":14134,"mutability":"mutable","name":"token","nameLocation":"12464:5:50","nodeType":"VariableDeclaration","scope":14165,"src":"12443:26:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount"},"typeName":{"id":14133,"nodeType":"UserDefinedTypeName","pathNode":{"id":14132,"name":"TokenAmount","nameLocations":["12443:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"12443:11:50"},"referencedDeclaration":15999,"src":"12443:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"}],"id":14139,"initialValue":{"baseExpression":{"expression":{"id":14135,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"12472:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12480:4:50","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":18176,"src":"12472:12:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct TokenAmount calldata[] calldata"}},"id":14138,"indexExpression":{"id":14137,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"12485:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12472:15:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"nodeType":"VariableDeclarationStatement","src":"12443:44:50"},{"condition":{"id":14145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12505:37:50","subExpression":{"arguments":[{"expression":{"id":14142,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"12525:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"id":14143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12531:10:50","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"12525:16:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14140,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"12506:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"id":14141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12518:6:50","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":17600,"src":"12506:18:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":14144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12506:36:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14152,"nodeType":"IfStatement","src":"12501:114:50","trueBody":{"id":14151,"nodeType":"Block","src":"12544:71:50","statements":[{"errorCall":{"arguments":[{"expression":{"id":14147,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"12583:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"id":14148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12589:10:50","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"12583:16:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14146,"name":"TokenNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"12569:13:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":14149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12569:31:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14150,"nodeType":"RevertStatement","src":"12562:38:50"}]}},{"expression":{"arguments":[{"id":14156,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"12648:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},{"expression":{"id":14157,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"12655:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12663:6:50","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"12655:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14153,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"12628:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenHelperLib_$18118_$","typeString":"type(library TokenHelperLib)"}},"id":14155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12643:4:50","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":17848,"src":"12628:19:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_TokenAmount_$15999_memory_ptr_$_t_address_$returns$__$","typeString":"function (struct TokenAmount memory,address)"}},"id":14159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12628:42:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14160,"nodeType":"ExpressionStatement","src":"12628:42:50"},{"id":14164,"nodeType":"UncheckedBlock","src":"12684:46:50","statements":[{"expression":{"id":14162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12712:3:50","subExpression":{"id":14161,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"12712:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14163,"nodeType":"ExpressionStatement","src":"12712:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14127,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"12403:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14128,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"12407:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12415:4:50","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":18176,"src":"12407:12:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct TokenAmount calldata[] calldata"}},"id":14130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12420:6:50","memberName":"length","nodeType":"MemberAccess","src":"12407:19:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12403:23:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14166,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"12396:344:50"},{"expression":{"id":14168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"12775:8:50","subExpression":{"id":14167,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"12782:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14169,"nodeType":"ExpressionStatement","src":"12775:8:50"},{"body":{"id":14207,"nodeType":"Block","src":"12828:334:50","statements":[{"assignments":[14177],"declarations":[{"constant":false,"id":14177,"mutability":"mutable","name":"token","nameLocation":"12863:5:50","nodeType":"VariableDeclaration","scope":14207,"src":"12842:26:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount"},"typeName":{"id":14176,"nodeType":"UserDefinedTypeName","pathNode":{"id":14175,"name":"TokenAmount","nameLocations":["12842:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"12842:11:50"},"referencedDeclaration":15999,"src":"12842:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"}],"id":14182,"initialValue":{"baseExpression":{"expression":{"id":14178,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"12871:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12879:6:50","memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":18180,"src":"12871:14:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct TokenAmount calldata[] calldata"}},"id":14181,"indexExpression":{"id":14180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"12886:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12871:17:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"nodeType":"VariableDeclarationStatement","src":"12842:46:50"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14183,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14177,"src":"12906:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"id":14184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12912:10:50","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"12906:16:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14185,"name":"NATIVE_TOKEN_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13625,"src":"12926:20:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12906:40:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14201,"nodeType":"Block","src":"13016:77:50","statements":[{"expression":{"arguments":[{"id":14196,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14177,"src":"13056:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},{"expression":{"id":14197,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"13063:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13071:6:50","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"13063:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14193,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"13034:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenHelperLib_$18118_$","typeString":"type(library TokenHelperLib)"}},"id":14195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13049:6:50","memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":17874,"src":"13034:21:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_TokenAmount_$15999_memory_ptr_$_t_address_$returns$__$","typeString":"function (struct TokenAmount memory,address)"}},"id":14199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13034:44:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14200,"nodeType":"ExpressionStatement","src":"13034:44:50"}]},"id":14202,"nodeType":"IfStatement","src":"12902:191:50","trueBody":{"id":14192,"nodeType":"Block","src":"12948:62:50","statements":[{"expression":{"id":14190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14187,"name":"valueToUnlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14122,"src":"12966:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":14188,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14177,"src":"12983:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"id":14189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12989:6:50","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"12983:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12966:29:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14191,"nodeType":"ExpressionStatement","src":"12966:29:50"}]}},{"id":14206,"nodeType":"UncheckedBlock","src":"13106:46:50","statements":[{"expression":{"id":14204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13134:3:50","subExpression":{"id":14203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"13134:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14205,"nodeType":"ExpressionStatement","src":"13134:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14170,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"12800:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14171,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"12804:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12812:6:50","memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":18180,"src":"12804:14:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct TokenAmount calldata[] calldata"}},"id":14173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12819:6:50","memberName":"length","nodeType":"MemberAccess","src":"12804:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12800:25:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14208,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"12793:369:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14209,"name":"valueToUnlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14122,"src":"13176:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13192:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13176:17:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14231,"nodeType":"IfStatement","src":"13172:209:50","trueBody":{"id":14230,"nodeType":"Block","src":"13195:186:50","statements":[{"assignments":[14213],"declarations":[{"constant":false,"id":14213,"mutability":"mutable","name":"balance","nameLocation":"13217:7:50","nodeType":"VariableDeclaration","scope":14230,"src":"13209:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14212,"name":"uint256","nodeType":"ElementaryTypeName","src":"13209:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14219,"initialValue":{"expression":{"arguments":[{"id":14216,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13235:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}],"id":14215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13227:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14214,"name":"address","nodeType":"ElementaryTypeName","src":"13227:7:50","typeDescriptions":{}}},"id":14217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13227:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13241:7:50","memberName":"balance","nodeType":"MemberAccess","src":"13227:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13209:39:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14220,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14213,"src":"13266:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14221,"name":"valueToUnlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14122,"src":"13276:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13266:23:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14229,"nodeType":"IfStatement","src":"13262:109:50","trueBody":{"id":14228,"nodeType":"Block","src":"13291:80:50","statements":[{"errorCall":{"arguments":[{"id":14224,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14213,"src":"13333:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14225,"name":"valueToUnlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14122,"src":"13342:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14223,"name":"CantUnlockNative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13525,"src":"13316:16:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":14226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13316:40:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14227,"nodeType":"RevertStatement","src":"13309:47:50"}]}}]}},{"expression":{"id":14233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"13426:8:50","subExpression":{"id":14232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"13433:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14234,"nodeType":"ExpressionStatement","src":"13426:8:50"},{"body":{"id":14273,"nodeType":"Block","src":"13480:315:50","statements":[{"assignments":[14242],"declarations":[{"constant":false,"id":14242,"mutability":"mutable","name":"token","nameLocation":"13513:5:50","nodeType":"VariableDeclaration","scope":14273,"src":"13494:24:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount"},"typeName":{"id":14241,"nodeType":"UserDefinedTypeName","pathNode":{"id":14240,"name":"NFTAmount","nameLocations":["13494:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"13494:9:50"},"referencedDeclaration":16007,"src":"13494:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"visibility":"internal"}],"id":14247,"initialValue":{"baseExpression":{"expression":{"id":14243,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"13521:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13529:7:50","memberName":"mintNFT","nodeType":"MemberAccess","referencedDeclaration":18188,"src":"13521:15:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_calldata_ptr_$dyn_calldata_ptr","typeString":"struct NFTAmount calldata[] calldata"}},"id":14246,"indexExpression":{"id":14245,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"13537:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13521:18:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount calldata"}},"nodeType":"VariableDeclarationStatement","src":"13494:45:50"},{"condition":{"id":14253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13557:37:50","subExpression":{"arguments":[{"expression":{"id":14250,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14242,"src":"13577:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount calldata"}},"id":14251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13583:10:50","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"13577:16:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14248,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"13558:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"id":14249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13570:6:50","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":17600,"src":"13558:18:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":14252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13558:36:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14260,"nodeType":"IfStatement","src":"13553:114:50","trueBody":{"id":14259,"nodeType":"Block","src":"13596:71:50","statements":[{"errorCall":{"arguments":[{"expression":{"id":14255,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14242,"src":"13635:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount calldata"}},"id":14256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13641:10:50","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"13635:16:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14254,"name":"TokenNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"13621:13:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":14257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13621:31:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14258,"nodeType":"RevertStatement","src":"13614:38:50"}]}},{"expression":{"arguments":[{"id":14264,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14242,"src":"13703:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount calldata"}},{"expression":{"id":14265,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"13710:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13718:6:50","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"13710:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14261,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"13680:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenHelperLib_$18118_$","typeString":"type(library TokenHelperLib)"}},"id":14263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13695:7:50","memberName":"mintNFT","nodeType":"MemberAccess","referencedDeclaration":17984,"src":"13680:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_NFTAmount_$16007_memory_ptr_$_t_address_$returns$__$","typeString":"function (struct NFTAmount memory,address)"}},"id":14267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13680:45:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14268,"nodeType":"ExpressionStatement","src":"13680:45:50"},{"id":14272,"nodeType":"UncheckedBlock","src":"13739:46:50","statements":[{"expression":{"id":14270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13767:3:50","subExpression":{"id":14269,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"13767:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14271,"nodeType":"ExpressionStatement","src":"13767:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"13451:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14236,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"13455:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13463:7:50","memberName":"mintNFT","nodeType":"MemberAccess","referencedDeclaration":18188,"src":"13455:15:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_calldata_ptr_$dyn_calldata_ptr","typeString":"struct NFTAmount calldata[] calldata"}},"id":14238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13471:6:50","memberName":"length","nodeType":"MemberAccess","src":"13455:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13451:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14274,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"13444:351:50"},{"expression":{"id":14276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"13827:8:50","subExpression":{"id":14275,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"13834:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14277,"nodeType":"ExpressionStatement","src":"13827:8:50"},{"body":{"id":14303,"nodeType":"Block","src":"13883:192:50","statements":[{"assignments":[14285],"declarations":[{"constant":false,"id":14285,"mutability":"mutable","name":"token","nameLocation":"13916:5:50","nodeType":"VariableDeclaration","scope":14303,"src":"13897:24:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount"},"typeName":{"id":14284,"nodeType":"UserDefinedTypeName","pathNode":{"id":14283,"name":"NFTAmount","nameLocations":["13897:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"13897:9:50"},"referencedDeclaration":16007,"src":"13897:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"visibility":"internal"}],"id":14290,"initialValue":{"baseExpression":{"expression":{"id":14286,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"13924:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13932:9:50","memberName":"unlockNFT","nodeType":"MemberAccess","referencedDeclaration":18192,"src":"13924:17:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_calldata_ptr_$dyn_calldata_ptr","typeString":"struct NFTAmount calldata[] calldata"}},"id":14289,"indexExpression":{"id":14288,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"13942:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13924:20:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount calldata"}},"nodeType":"VariableDeclarationStatement","src":"13897:47:50"},{"expression":{"arguments":[{"id":14294,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14285,"src":"13983:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount calldata"}},{"expression":{"id":14295,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"13990:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13998:6:50","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"13990:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14291,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"13958:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenHelperLib_$18118_$","typeString":"type(library TokenHelperLib)"}},"id":14293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13973:9:50","memberName":"unlockNFT","nodeType":"MemberAccess","referencedDeclaration":18076,"src":"13958:24:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_NFTAmount_$16007_memory_ptr_$_t_address_$returns$__$","typeString":"function (struct NFTAmount memory,address)"}},"id":14297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13958:47:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14298,"nodeType":"ExpressionStatement","src":"13958:47:50"},{"id":14302,"nodeType":"UncheckedBlock","src":"14019:46:50","statements":[{"expression":{"id":14300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14047:3:50","subExpression":{"id":14299,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"14047:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14301,"nodeType":"ExpressionStatement","src":"14047:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14278,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"13852:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14279,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"13856:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13864:9:50","memberName":"unlockNFT","nodeType":"MemberAccess","referencedDeclaration":18192,"src":"13856:17:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_calldata_ptr_$dyn_calldata_ptr","typeString":"struct NFTAmount calldata[] calldata"}},"id":14281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13874:6:50","memberName":"length","nodeType":"MemberAccess","src":"13856:24:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13852:28:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14304,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"13845:230:50"}]},"id":14306,"implemented":true,"kind":"function","modifiers":[],"name":"_processInMessageTokens","nameLocation":"12238:23:50","nodeType":"FunctionDefinition","parameters":{"id":14120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14119,"mutability":"mutable","name":"message","nameLocation":"12297:7:50","nodeType":"VariableDeclaration","scope":14306,"src":"12262:42:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage"},"typeName":{"id":14118,"nodeType":"UserDefinedTypeName","pathNode":{"id":14117,"name":"VersionLib.UnionInMessage","nameLocations":["12262:10:50","12273:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":18197,"src":"12262:25:50"},"referencedDeclaration":18197,"src":"12262:25:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_storage_ptr","typeString":"struct VersionLib.UnionInMessage"}},"visibility":"internal"}],"src":"12261:44:50"},"returnParameters":{"id":14123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14122,"mutability":"mutable","name":"valueToUnlock","nameLocation":"12332:13:50","nodeType":"VariableDeclaration","scope":14306,"src":"12324:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14121,"name":"uint256","nodeType":"ElementaryTypeName","src":"12324:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12323:23:50"},"scope":15421,"src":"12229:1852:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14613,"nodeType":"Block","src":"14314:3080:50","statements":[{"expression":{"id":14337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14328,"name":"toBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"14325:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":14333,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"14352:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14360:8:50","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":18215,"src":"14352:16:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":14335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14369:6:50","memberName":"length","nodeType":"MemberAccess","src":"14352:23:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14334:17:50","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct TokenAmount memory[] memory)"},"typeName":{"baseType":{"id":14330,"nodeType":"UserDefinedTypeName","pathNode":{"id":14329,"name":"TokenAmount","nameLocations":["14338:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"14338:11:50"},"referencedDeclaration":15999,"src":"14338:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":14331,"nodeType":"ArrayTypeName","src":"14338:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}}},"id":14336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14334:42:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"src":"14325:51:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":14338,"nodeType":"ExpressionStatement","src":"14325:51:50"},{"expression":{"id":14350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14339,"name":"toLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14318,"src":"14386:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":14344,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"14413:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14421:8:50","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":18215,"src":"14413:16:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":14346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14430:6:50","memberName":"length","nodeType":"MemberAccess","src":"14413:23:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":14347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14439:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14413:27:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14395:17:50","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct TokenAmount memory[] memory)"},"typeName":{"baseType":{"id":14341,"nodeType":"UserDefinedTypeName","pathNode":{"id":14340,"name":"TokenAmount","nameLocations":["14399:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"14399:11:50"},"referencedDeclaration":15999,"src":"14399:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":14342,"nodeType":"ArrayTypeName","src":"14399:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}}},"id":14349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14395:46:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"src":"14386:55:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":14351,"nodeType":"ExpressionStatement","src":"14386:55:50"},{"assignments":[14353],"declarations":[{"constant":false,"id":14353,"mutability":"mutable","name":"i","nameLocation":"14459:1:50","nodeType":"VariableDeclaration","scope":14613,"src":"14451:9:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14352,"name":"uint256","nodeType":"ElementaryTypeName","src":"14451:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14354,"nodeType":"VariableDeclarationStatement","src":"14451:9:50"},{"assignments":[14356],"declarations":[{"constant":false,"id":14356,"mutability":"mutable","name":"l","nameLocation":"14478:1:50","nodeType":"VariableDeclaration","scope":14613,"src":"14470:9:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14355,"name":"uint256","nodeType":"ElementaryTypeName","src":"14470:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14357,"nodeType":"VariableDeclarationStatement","src":"14470:9:50"},{"assignments":[14359],"declarations":[{"constant":false,"id":14359,"mutability":"mutable","name":"b","nameLocation":"14497:1:50","nodeType":"VariableDeclaration","scope":14613,"src":"14489:9:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14358,"name":"uint256","nodeType":"ElementaryTypeName","src":"14489:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14360,"nodeType":"VariableDeclarationStatement","src":"14489:9:50"},{"body":{"id":14442,"nodeType":"Block","src":"14544:822:50","statements":[{"assignments":[14368],"declarations":[{"constant":false,"id":14368,"mutability":"mutable","name":"token","nameLocation":"14577:5:50","nodeType":"VariableDeclaration","scope":14442,"src":"14558:24:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount"},"typeName":{"id":14367,"nodeType":"UserDefinedTypeName","pathNode":{"id":14366,"name":"TokenAmount","nameLocations":["14558:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"14558:11:50"},"referencedDeclaration":15999,"src":"14558:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"}],"id":14373,"initialValue":{"baseExpression":{"expression":{"id":14369,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"14585:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14593:8:50","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":18215,"src":"14585:16:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":14372,"indexExpression":{"id":14371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14353,"src":"14602:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14585:19:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"nodeType":"VariableDeclarationStatement","src":"14558:46:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14374,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"14622:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":14375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14628:6:50","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"14622:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14638:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14622:17:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14384,"nodeType":"IfStatement","src":"14618:135:50","trueBody":{"id":14383,"nodeType":"Block","src":"14641:112:50","statements":[{"id":14381,"nodeType":"UncheckedBlock","src":"14659:54:50","statements":[{"expression":{"id":14379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14691:3:50","subExpression":{"id":14378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14353,"src":"14691:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14380,"nodeType":"ExpressionStatement","src":"14691:3:50"}]},{"id":14382,"nodeType":"Continue","src":"14730:8:50"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14385,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"14770:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":14386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14776:6:50","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"14770:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":14387,"name":"MAX_BRIDGE_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13633,"src":"14786:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14770:33:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14397,"nodeType":"IfStatement","src":"14766:128:50","trueBody":{"id":14396,"nodeType":"Block","src":"14805:89:50","statements":[{"errorCall":{"arguments":[{"expression":{"id":14390,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"14848:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":14391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14854:10:50","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"14848:16:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14392,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"14866:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":14393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14872:6:50","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"14866:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14389,"name":"BridgeAmountToBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13499,"src":"14830:17:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":14394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14830:49:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14395,"nodeType":"RevertStatement","src":"14823:56:50"}]}},{"condition":{"arguments":[{"expression":{"id":14400,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"14930:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":14401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14936:10:50","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"14930:16:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14398,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"14911:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"id":14399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14923:6:50","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":17600,"src":"14911:18:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":14402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14911:36:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14436,"nodeType":"Block","src":"15132:165:50","statements":[{"expression":{"arguments":[{"id":14423,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"15170:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}],"expression":{"id":14420,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"15150:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenHelperLib_$18118_$","typeString":"type(library TokenHelperLib)"}},"id":14422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15165:4:50","memberName":"lock","nodeType":"MemberAccess","referencedDeclaration":17945,"src":"15150:19:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_TokenAmount_$15999_memory_ptr_$returns$__$","typeString":"function (struct TokenAmount memory)"}},"id":14424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15150:26:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14425,"nodeType":"ExpressionStatement","src":"15150:26:50"},{"expression":{"id":14430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14426,"name":"toLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14318,"src":"15194:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":14428,"indexExpression":{"id":14427,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14356,"src":"15201:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15194:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14429,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"15206:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"src":"15194:17:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":14431,"nodeType":"ExpressionStatement","src":"15194:17:50"},{"id":14435,"nodeType":"UncheckedBlock","src":"15229:54:50","statements":[{"expression":{"id":14433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15261:3:50","subExpression":{"id":14432,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14356,"src":"15261:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14434,"nodeType":"ExpressionStatement","src":"15261:3:50"}]}]},"id":14437,"nodeType":"IfStatement","src":"14907:390:50","trueBody":{"id":14419,"nodeType":"Block","src":"14949:165:50","statements":[{"expression":{"arguments":[{"id":14406,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"14987:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}],"expression":{"id":14403,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"14967:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenHelperLib_$18118_$","typeString":"type(library TokenHelperLib)"}},"id":14405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14982:4:50","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":17916,"src":"14967:19:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_TokenAmount_$15999_memory_ptr_$returns$__$","typeString":"function (struct TokenAmount memory)"}},"id":14407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14967:26:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14408,"nodeType":"ExpressionStatement","src":"14967:26:50"},{"expression":{"id":14413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14409,"name":"toBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"15011:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":14411,"indexExpression":{"id":14410,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14359,"src":"15018:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15011:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14412,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"15023:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"src":"15011:17:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":14414,"nodeType":"ExpressionStatement","src":"15011:17:50"},{"id":14418,"nodeType":"UncheckedBlock","src":"15046:54:50","statements":[{"expression":{"id":14416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15078:3:50","subExpression":{"id":14415,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14359,"src":"15078:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14417,"nodeType":"ExpressionStatement","src":"15078:3:50"}]}]}},{"id":14441,"nodeType":"UncheckedBlock","src":"15310:46:50","statements":[{"expression":{"id":14439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15338:3:50","subExpression":{"id":14438,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14353,"src":"15338:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14440,"nodeType":"ExpressionStatement","src":"15338:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14353,"src":"14514:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14362,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"14518:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14526:8:50","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":18215,"src":"14518:16:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":14364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14535:6:50","memberName":"length","nodeType":"MemberAccess","src":"14518:23:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14514:27:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14443,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"14508:858:50"},{"assignments":[14445],"declarations":[{"constant":false,"id":14445,"mutability":"mutable","name":"valueToLock","nameLocation":"15384:11:50","nodeType":"VariableDeclaration","scope":14613,"src":"15376:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14444,"name":"uint256","nodeType":"ElementaryTypeName","src":"15376:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14448,"initialValue":{"expression":{"id":14446,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15398:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:5:50","memberName":"value","nodeType":"MemberAccess","src":"15398:9:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15376:31:50"},{"condition":{"id":14450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15456:19:50","subExpression":{"id":14449,"name":"_receiveInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"15457:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14492,"nodeType":"IfStatement","src":"15452:498:50","trueBody":{"id":14491,"nodeType":"Block","src":"15477:473:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14451,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"15495:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15503:14:50","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":18206,"src":"15495:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14453,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13698,"src":"15520:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15495:37:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14462,"nodeType":"IfStatement","src":"15491:142:50","trueBody":{"id":14461,"nodeType":"Block","src":"15534:99:50","statements":[{"errorCall":{"arguments":[{"id":14456,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13698,"src":"15581:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14457,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"15595:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15603:14:50","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":18206,"src":"15595:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14455,"name":"InsufficientFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13541,"src":"15559:21:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":14459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15559:59:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14460,"nodeType":"RevertStatement","src":"15552:66:50"}]}},{"assignments":[14464],"declarations":[{"constant":false,"id":14464,"mutability":"mutable","name":"totalFee","nameLocation":"15655:8:50","nodeType":"VariableDeclaration","scope":14491,"src":"15647:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14463,"name":"uint256","nodeType":"ElementaryTypeName","src":"15647:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14470,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14465,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"15666:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15674:14:50","memberName":"tvmExecutorFee","nodeType":"MemberAccess","referencedDeclaration":18208,"src":"15666:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":14467,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"15691:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15699:14:50","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":18206,"src":"15691:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15666:47:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15647:66:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14471,"name":"valueToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"15731:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14472,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"15745:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15731:22:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14481,"nodeType":"IfStatement","src":"15727:115:50","trueBody":{"id":14480,"nodeType":"Block","src":"15755:87:50","statements":[{"errorCall":{"arguments":[{"id":14475,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"15807:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14476,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15817:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15821:5:50","memberName":"value","nodeType":"MemberAccess","src":"15817:9:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14474,"name":"InsufficientNativeAttached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13547,"src":"15780:26:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":14478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15780:47:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14479,"nodeType":"RevertStatement","src":"15773:54:50"}]}},{"expression":{"id":14484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14482,"name":"valueToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"15855:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":14483,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"15870:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15855:23:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14485,"nodeType":"ExpressionStatement","src":"15855:23:50"},{"expression":{"id":14489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14486,"name":"_collectedProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"15892:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":14487,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"15917:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15925:14:50","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":18206,"src":"15917:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15892:47:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14490,"nodeType":"ExpressionStatement","src":"15892:47:50"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14493,"name":"valueToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"15996:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16010:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15996:15:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14520,"nodeType":"IfStatement","src":"15992:374:50","trueBody":{"id":14519,"nodeType":"Block","src":"16013:353:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14496,"name":"valueToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"16031:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":14497,"name":"MAX_BRIDGE_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13633,"src":"16046:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16031:32:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14505,"nodeType":"IfStatement","src":"16027:130:50","trueBody":{"id":14504,"nodeType":"Block","src":"16065:92:50","statements":[{"errorCall":{"arguments":[{"id":14500,"name":"NATIVE_TOKEN_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13625,"src":"16108:20:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14501,"name":"valueToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"16130:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14499,"name":"BridgeAmountToBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13499,"src":"16090:17:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":14502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16090:52:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14503,"nodeType":"RevertStatement","src":"16083:59:50"}]}},{"expression":{"id":14513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14506,"name":"toLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14318,"src":"16170:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":14508,"indexExpression":{"id":14507,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14356,"src":"16177:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16170:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14510,"name":"NATIVE_TOKEN_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13625,"src":"16224:20:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14511,"name":"valueToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"16270:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14509,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"16182:11:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TokenAmount_$15999_storage_ptr_$","typeString":"type(struct TokenAmount storage pointer)"}},"id":14512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16212:10:50","16262:6:50"],"names":["evmAddress","amount"],"nodeType":"FunctionCall","src":"16182:114:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"src":"16170:126:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":14514,"nodeType":"ExpressionStatement","src":"16170:126:50"},{"id":14518,"nodeType":"UncheckedBlock","src":"16310:46:50","statements":[{"expression":{"id":14516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16338:3:50","subExpression":{"id":14515,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14356,"src":"16338:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14517,"nodeType":"ExpressionStatement","src":"16338:3:50"}]}]}},{"AST":{"nativeSrc":"16414:71:50","nodeType":"YulBlock","src":"16414:71:50","statements":[{"expression":{"arguments":[{"name":"toBurn","nativeSrc":"16435:6:50","nodeType":"YulIdentifier","src":"16435:6:50"},{"name":"b","nativeSrc":"16443:1:50","nodeType":"YulIdentifier","src":"16443:1:50"}],"functionName":{"name":"mstore","nativeSrc":"16428:6:50","nodeType":"YulIdentifier","src":"16428:6:50"},"nativeSrc":"16428:17:50","nodeType":"YulFunctionCall","src":"16428:17:50"},"nativeSrc":"16428:17:50","nodeType":"YulExpressionStatement","src":"16428:17:50"},{"expression":{"arguments":[{"name":"toLock","nativeSrc":"16465:6:50","nodeType":"YulIdentifier","src":"16465:6:50"},{"name":"l","nativeSrc":"16473:1:50","nodeType":"YulIdentifier","src":"16473:1:50"}],"functionName":{"name":"mstore","nativeSrc":"16458:6:50","nodeType":"YulIdentifier","src":"16458:6:50"},"nativeSrc":"16458:17:50","nodeType":"YulFunctionCall","src":"16458:17:50"},"nativeSrc":"16458:17:50","nodeType":"YulExpressionStatement","src":"16458:17:50"}]},"evmVersion":"paris","externalReferences":[{"declaration":14359,"isOffset":false,"isSlot":false,"src":"16443:1:50","valueSize":1},{"declaration":14356,"isOffset":false,"isSlot":false,"src":"16473:1:50","valueSize":1},{"declaration":14314,"isOffset":false,"isSlot":false,"src":"16435:6:50","valueSize":1},{"declaration":14318,"isOffset":false,"isSlot":false,"src":"16465:6:50","valueSize":1}],"id":14521,"nodeType":"InlineAssembly","src":"16405:80:50"},{"expression":{"id":14523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"16495:8:50","subExpression":{"id":14522,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14353,"src":"16502:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14524,"nodeType":"ExpressionStatement","src":"16495:8:50"},{"expression":{"id":14526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"16513:8:50","subExpression":{"id":14525,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14356,"src":"16520:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14527,"nodeType":"ExpressionStatement","src":"16513:8:50"},{"expression":{"id":14529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"16531:8:50","subExpression":{"id":14528,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14359,"src":"16538:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14530,"nodeType":"ExpressionStatement","src":"16531:8:50"},{"expression":{"id":14540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14531,"name":"toBurnNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14322,"src":"16549:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":14536,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"16577:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16585:11:50","memberName":"toBridgeNFT","nodeType":"MemberAccess","referencedDeclaration":18219,"src":"16577:19:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":14538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16597:6:50","memberName":"length","nodeType":"MemberAccess","src":"16577:26:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16561:15:50","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct NFTAmount memory[] memory)"},"typeName":{"baseType":{"id":14533,"nodeType":"UserDefinedTypeName","pathNode":{"id":14532,"name":"NFTAmount","nameLocations":["16565:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"16565:9:50"},"referencedDeclaration":16007,"src":"16565:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":14534,"nodeType":"ArrayTypeName","src":"16565:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}}},"id":14539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16561:43:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"src":"16549:55:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":14541,"nodeType":"ExpressionStatement","src":"16549:55:50"},{"expression":{"id":14551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14542,"name":"toLockNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14326,"src":"16614:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":14547,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"16642:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16650:11:50","memberName":"toBridgeNFT","nodeType":"MemberAccess","referencedDeclaration":18219,"src":"16642:19:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":14549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16662:6:50","memberName":"length","nodeType":"MemberAccess","src":"16642:26:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16626:15:50","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct NFTAmount memory[] memory)"},"typeName":{"baseType":{"id":14544,"nodeType":"UserDefinedTypeName","pathNode":{"id":14543,"name":"NFTAmount","nameLocations":["16630:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"16630:9:50"},"referencedDeclaration":16007,"src":"16630:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":14545,"nodeType":"ArrayTypeName","src":"16630:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}}},"id":14550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16626:43:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"src":"16614:55:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":14552,"nodeType":"ExpressionStatement","src":"16614:55:50"},{"body":{"id":14610,"nodeType":"Block","src":"16717:546:50","statements":[{"assignments":[14560],"declarations":[{"constant":false,"id":14560,"mutability":"mutable","name":"token","nameLocation":"16748:5:50","nodeType":"VariableDeclaration","scope":14610,"src":"16731:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount"},"typeName":{"id":14559,"nodeType":"UserDefinedTypeName","pathNode":{"id":14558,"name":"NFTAmount","nameLocations":["16731:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"16731:9:50"},"referencedDeclaration":16007,"src":"16731:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"visibility":"internal"}],"id":14565,"initialValue":{"baseExpression":{"expression":{"id":14561,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"16756:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16764:11:50","memberName":"toBridgeNFT","nodeType":"MemberAccess","referencedDeclaration":18219,"src":"16756:19:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":14564,"indexExpression":{"id":14563,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14353,"src":"16776:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16756:22:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"nodeType":"VariableDeclarationStatement","src":"16731:47:50"},{"condition":{"arguments":[{"expression":{"id":14568,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14560,"src":"16815:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":14569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16821:10:50","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"16815:16:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14566,"name":"_tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"16796:11:50","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenUtils_$17625","typeString":"contract ITokenUtils"}},"id":14567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16808:6:50","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":17600,"src":"16796:18:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":14570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16796:36:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14604,"nodeType":"Block","src":"17023:171:50","statements":[{"expression":{"arguments":[{"id":14591,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14560,"src":"17064:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}],"expression":{"id":14588,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"17041:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenHelperLib_$18118_$","typeString":"type(library TokenHelperLib)"}},"id":14590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17056:7:50","memberName":"lockNFT","nodeType":"MemberAccess","referencedDeclaration":18117,"src":"17041:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_NFTAmount_$16007_memory_ptr_$returns$__$","typeString":"function (struct NFTAmount memory)"}},"id":14592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17041:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14593,"nodeType":"ExpressionStatement","src":"17041:29:50"},{"expression":{"id":14598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14594,"name":"toLockNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14326,"src":"17088:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":14596,"indexExpression":{"id":14595,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14359,"src":"17098:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17088:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14597,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14560,"src":"17103:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"src":"17088:20:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":14599,"nodeType":"ExpressionStatement","src":"17088:20:50"},{"id":14603,"nodeType":"UncheckedBlock","src":"17126:54:50","statements":[{"expression":{"id":14601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17158:3:50","subExpression":{"id":14600,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14359,"src":"17158:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14602,"nodeType":"ExpressionStatement","src":"17158:3:50"}]}]},"id":14605,"nodeType":"IfStatement","src":"16792:402:50","trueBody":{"id":14587,"nodeType":"Block","src":"16834:171:50","statements":[{"expression":{"arguments":[{"id":14574,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14560,"src":"16875:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}],"expression":{"id":14571,"name":"TokenHelperLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18118,"src":"16852:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenHelperLib_$18118_$","typeString":"type(library TokenHelperLib)"}},"id":14573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16867:7:50","memberName":"burnNFT","nodeType":"MemberAccess","referencedDeclaration":18034,"src":"16852:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_NFTAmount_$16007_memory_ptr_$returns$__$","typeString":"function (struct NFTAmount memory)"}},"id":14575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16852:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14576,"nodeType":"ExpressionStatement","src":"16852:29:50"},{"expression":{"id":14581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14577,"name":"toBurnNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14322,"src":"16899:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":14579,"indexExpression":{"id":14578,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14356,"src":"16909:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16899:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14580,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14560,"src":"16914:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"src":"16899:20:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":14582,"nodeType":"ExpressionStatement","src":"16899:20:50"},{"id":14586,"nodeType":"UncheckedBlock","src":"16937:54:50","statements":[{"expression":{"id":14584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16969:3:50","subExpression":{"id":14583,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14356,"src":"16969:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14585,"nodeType":"ExpressionStatement","src":"16969:3:50"}]}]}},{"id":14609,"nodeType":"UncheckedBlock","src":"17207:46:50","statements":[{"expression":{"id":14607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17235:3:50","subExpression":{"id":14606,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14353,"src":"17235:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14608,"nodeType":"ExpressionStatement","src":"17235:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14553,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14353,"src":"16684:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":14554,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"16688:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":14555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16696:11:50","memberName":"toBridgeNFT","nodeType":"MemberAccess","referencedDeclaration":18219,"src":"16688:19:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":14556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16708:6:50","memberName":"length","nodeType":"MemberAccess","src":"16688:26:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16684:30:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14611,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"16679:584:50"},{"AST":{"nativeSrc":"17311:77:50","nodeType":"YulBlock","src":"17311:77:50","statements":[{"expression":{"arguments":[{"name":"toBurnNFT","nativeSrc":"17332:9:50","nodeType":"YulIdentifier","src":"17332:9:50"},{"name":"l","nativeSrc":"17343:1:50","nodeType":"YulIdentifier","src":"17343:1:50"}],"functionName":{"name":"mstore","nativeSrc":"17325:6:50","nodeType":"YulIdentifier","src":"17325:6:50"},"nativeSrc":"17325:20:50","nodeType":"YulFunctionCall","src":"17325:20:50"},"nativeSrc":"17325:20:50","nodeType":"YulExpressionStatement","src":"17325:20:50"},{"expression":{"arguments":[{"name":"toLockNFT","nativeSrc":"17365:9:50","nodeType":"YulIdentifier","src":"17365:9:50"},{"name":"b","nativeSrc":"17376:1:50","nodeType":"YulIdentifier","src":"17376:1:50"}],"functionName":{"name":"mstore","nativeSrc":"17358:6:50","nodeType":"YulIdentifier","src":"17358:6:50"},"nativeSrc":"17358:20:50","nodeType":"YulFunctionCall","src":"17358:20:50"},"nativeSrc":"17358:20:50","nodeType":"YulExpressionStatement","src":"17358:20:50"}]},"evmVersion":"paris","externalReferences":[{"declaration":14359,"isOffset":false,"isSlot":false,"src":"17376:1:50","valueSize":1},{"declaration":14356,"isOffset":false,"isSlot":false,"src":"17343:1:50","valueSize":1},{"declaration":14322,"isOffset":false,"isSlot":false,"src":"17332:9:50","valueSize":1},{"declaration":14326,"isOffset":false,"isSlot":false,"src":"17365:9:50","valueSize":1}],"id":14612,"nodeType":"InlineAssembly","src":"17302:86:50"}]},"id":14614,"implemented":true,"kind":"function","modifiers":[],"name":"_processOutMessageTokens","nameLocation":"14096:24:50","nodeType":"FunctionDefinition","parameters":{"id":14310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14309,"mutability":"mutable","name":"message","nameLocation":"14164:7:50","nodeType":"VariableDeclaration","scope":14614,"src":"14130:41:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage"},"typeName":{"id":14308,"nodeType":"UserDefinedTypeName","pathNode":{"id":14307,"name":"VersionLib.UnionOutMessage","nameLocations":["14130:10:50","14141:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":18220,"src":"14130:26:50"},"referencedDeclaration":18220,"src":"14130:26:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_storage_ptr","typeString":"struct VersionLib.UnionOutMessage"}},"visibility":"internal"}],"src":"14120:57:50"},"returnParameters":{"id":14327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14314,"mutability":"mutable","name":"toBurn","nameLocation":"14217:6:50","nodeType":"VariableDeclaration","scope":14614,"src":"14196:27:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":14312,"nodeType":"UserDefinedTypeName","pathNode":{"id":14311,"name":"TokenAmount","nameLocations":["14196:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"14196:11:50"},"referencedDeclaration":15999,"src":"14196:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":14313,"nodeType":"ArrayTypeName","src":"14196:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":14318,"mutability":"mutable","name":"toLock","nameLocation":"14246:6:50","nodeType":"VariableDeclaration","scope":14614,"src":"14225:27:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":14316,"nodeType":"UserDefinedTypeName","pathNode":{"id":14315,"name":"TokenAmount","nameLocations":["14225:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"14225:11:50"},"referencedDeclaration":15999,"src":"14225:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":14317,"nodeType":"ArrayTypeName","src":"14225:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":14322,"mutability":"mutable","name":"toBurnNFT","nameLocation":"14273:9:50","nodeType":"VariableDeclaration","scope":14614,"src":"14254:28:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":14320,"nodeType":"UserDefinedTypeName","pathNode":{"id":14319,"name":"NFTAmount","nameLocations":["14254:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"14254:9:50"},"referencedDeclaration":16007,"src":"14254:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":14321,"nodeType":"ArrayTypeName","src":"14254:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"},{"constant":false,"id":14326,"mutability":"mutable","name":"toLockNFT","nameLocation":"14303:9:50","nodeType":"VariableDeclaration","scope":14614,"src":"14284:28:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":14324,"nodeType":"UserDefinedTypeName","pathNode":{"id":14323,"name":"NFTAmount","nameLocations":["14284:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"14284:9:50"},"referencedDeclaration":16007,"src":"14284:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":14325,"nodeType":"ArrayTypeName","src":"14284:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"}],"src":"14195:118:50"},"scope":15421,"src":"14087:3307:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14817,"nodeType":"Block","src":"18442:2031:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"id":14642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14639,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"18456:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14640,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"18475:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":14641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18490:4:50","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":13648,"src":"18475:19:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"18456:38:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14647,"nodeType":"IfStatement","src":"18452:101:50","trueBody":{"id":14646,"nodeType":"Block","src":"18496:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14643,"name":"SimulationRecursiveCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13549,"src":"18517:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18517:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14645,"nodeType":"RevertStatement","src":"18510:32:50"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14648,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14621,"src":"18567:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":14649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18577:6:50","memberName":"length","nodeType":"MemberAccess","src":"18567:16:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":14650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18587:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18567:21:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14656,"nodeType":"IfStatement","src":"18563:84:50","trueBody":{"id":14655,"nodeType":"Block","src":"18590:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14652,"name":"ExtraDataIsNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13527,"src":"18611:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18611:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14654,"nodeType":"RevertStatement","src":"18604:32:50"}]}},{"condition":{"id":14658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18661:13:50","subExpression":{"id":14657,"name":"withMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14628,"src":"18662:12:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14670,"nodeType":"Block","src":"18755:70:50","statements":[{"expression":{"id":14668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14665,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"18769:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14666,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"18787:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":14667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18802:12:50","memberName":"WithMessages","nodeType":"MemberAccess","referencedDeclaration":13650,"src":"18787:27:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"18769:45:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"id":14669,"nodeType":"ExpressionStatement","src":"18769:45:50"}]},"id":14671,"nodeType":"IfStatement","src":"18657:168:50","trueBody":{"id":14664,"nodeType":"Block","src":"18676:65:50","statements":[{"expression":{"id":14662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14659,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"18690:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14660,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"18708:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":14661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18723:7:50","memberName":"JustGas","nodeType":"MemberAccess","referencedDeclaration":13649,"src":"18708:22:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"18690:40:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"id":14663,"nodeType":"ExpressionStatement","src":"18690:40:50"}]}},{"expression":{"id":14674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14672,"name":"_simulationRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13656,"src":"18835:15:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14673,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14623,"src":"18853:10:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18835:28:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14675,"nodeType":"ExpressionStatement","src":"18835:28:50"},{"assignments":[null,14680],"declarations":[null,{"constant":false,"id":14680,"mutability":"mutable","name":"message","nameLocation":"18910:7:50","nodeType":"VariableDeclaration","scope":14817,"src":"18877:40:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage"},"typeName":{"id":14679,"nodeType":"UserDefinedTypeName","pathNode":{"id":14678,"name":"VersionLib.UnionInMessage","nameLocations":["18877:10:50","18888:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":18197,"src":"18877:25:50"},"referencedDeclaration":18197,"src":"18877:25:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_storage_ptr","typeString":"struct VersionLib.UnionInMessage"}},"visibility":"internal"}],"id":14686,"initialValue":{"arguments":[{"id":14682,"name":"messageVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14617,"src":"18937:14:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14683,"name":"encodedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14619,"src":"18953:14:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":14684,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14626,"src":"18969:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"id":14681,"name":"_checkInMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14027,"src":"18921:15:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_array$_t_bytes32_$dyn_calldata_ptr_$returns$_t_bytes32_$_t_struct$_UnionInMessage_$18197_memory_ptr_$","typeString":"function (uint256,bytes calldata,bytes32[] calldata) view returns (bytes32,struct VersionLib.UnionInMessage memory)"}},"id":14685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18921:60:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_struct$_UnionInMessage_$18197_memory_ptr_$","typeString":"tuple(bytes32,struct VersionLib.UnionInMessage memory)"}},"nodeType":"VariableDeclarationStatement","src":"18874:107:50"},{"expression":{"id":14690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14687,"name":"_currentInMessageOperationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13641,"src":"18992:28:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14688,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"19023:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19031:11:50","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"19023:19:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18992:50:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14691,"nodeType":"ExpressionStatement","src":"18992:50:50"},{"expression":{"id":14694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14692,"name":"_receiveInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"19052:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":14693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19073:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19052:25:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14695,"nodeType":"ExpressionStatement","src":"19052:25:50"},{"assignments":[14697,14699],"declarations":[{"constant":false,"id":14697,"mutability":"mutable","name":"success","nameLocation":"19093:7:50","nodeType":"VariableDeclaration","scope":14817,"src":"19088:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14696,"name":"bool","nodeType":"ElementaryTypeName","src":"19088:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14699,"mutability":"mutable","name":"result","nameLocation":"19115:6:50","nodeType":"VariableDeclaration","scope":14817,"src":"19102:19:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14698,"name":"bytes","nodeType":"ElementaryTypeName","src":"19102:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":14714,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":14707,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19197:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}},"id":14708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19202:23:50","memberName":"simulateAppLayerContext","nodeType":"MemberAccess","referencedDeclaration":14904,"src":"19197:28:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_UnionInMessage_$18197_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct VersionLib.UnionInMessage memory,bytes memory) external"}},"id":14709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19226:8:50","memberName":"selector","nodeType":"MemberAccess","src":"19197:37:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14710,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"19252:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},{"id":14711,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14621,"src":"19277:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14705,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19157:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19161:18:50","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"19157:22:50","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":14712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19157:143:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":14702,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19133:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}],"id":14701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19125:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14700,"name":"address","nodeType":"ElementaryTypeName","src":"19125:7:50","typeDescriptions":{}}},"id":14703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19125:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19139:4:50","memberName":"call","nodeType":"MemberAccess","src":"19125:18:50","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":14713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19125:185:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"19087:223:50"},{"condition":{"id":14715,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14697,"src":"19325:7:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14720,"nodeType":"IfStatement","src":"19321:74:50","trueBody":{"id":14719,"nodeType":"Block","src":"19334:61:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14716,"name":"SimulationUnexpectedSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13551,"src":"19355:27:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19355:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14718,"nodeType":"RevertStatement","src":"19348:36:50"}]}},{"assignments":[14722,14724],"declarations":[{"constant":false,"id":14722,"mutability":"mutable","name":"errorSelector","nameLocation":"19413:13:50","nodeType":"VariableDeclaration","scope":14817,"src":"19406:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14721,"name":"bytes4","nodeType":"ElementaryTypeName","src":"19406:6:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":14724,"mutability":"mutable","name":"errorData","nameLocation":"19441:9:50","nodeType":"VariableDeclaration","scope":14817,"src":"19428:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14723,"name":"bytes","nodeType":"ElementaryTypeName","src":"19428:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":14728,"initialValue":{"arguments":[{"id":14726,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14699,"src":"19473:6:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14725,"name":"_decodeCustomError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13850,"src":"19454:18:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes4,bytes memory)"}},"id":14727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19454:26:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes4_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes4,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"19405:75:50"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14729,"name":"errorSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14722,"src":"19495:13:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14730,"name":"SimulationFinished","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13561,"src":"19512:18:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (bool,bytes memory) pure returns (error)"}},"id":14731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19531:8:50","memberName":"selector","nodeType":"MemberAccess","src":"19512:27:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"19495:44:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14737,"nodeType":"IfStatement","src":"19491:109:50","trueBody":{"id":14736,"nodeType":"Block","src":"19541:59:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14733,"name":"SimulationUnexpectedError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13553,"src":"19562:25:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19562:27:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14735,"nodeType":"RevertStatement","src":"19555:34:50"}]}},{"assignments":[14739],"declarations":[{"constant":false,"id":14739,"mutability":"mutable","name":"simulationData","nameLocation":"19623:14:50","nodeType":"VariableDeclaration","scope":14817,"src":"19610:27:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14738,"name":"bytes","nodeType":"ElementaryTypeName","src":"19610:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":14740,"nodeType":"VariableDeclarationStatement","src":"19610:27:50"},{"expression":{"id":14753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":14741,"name":"simulationStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14631,"src":"19648:16:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14742,"name":"simulationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14739,"src":"19666:14:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":14743,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"19647:34:50","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14746,"name":"errorData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14724,"src":"19695:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19707:4:50","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":14747,"name":"bool","nodeType":"ElementaryTypeName","src":"19707:4:50","typeDescriptions":{}}},{"id":14750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19713:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":14749,"name":"bytes","nodeType":"ElementaryTypeName","src":"19713:5:50","typeDescriptions":{}}}],"id":14751,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19706:13:50","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bool_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(bool),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_bool_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(bool),type(bytes storage pointer))"}],"expression":{"id":14744,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19684:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19688:6:50","memberName":"decode","nodeType":"MemberAccess","src":"19684:10:50","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19684:36:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"19647:73:50","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14754,"nodeType":"ExpressionStatement","src":"19647:73:50"},{"condition":{"id":14755,"name":"simulationStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14631,"src":"19735:16:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14800,"nodeType":"Block","src":"20005:301:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14777,"name":"simulationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14739,"src":"20023:14:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20038:6:50","memberName":"length","nodeType":"MemberAccess","src":"20023:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20048:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20023:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14785,"nodeType":"IfStatement","src":"20019:99:50","trueBody":{"id":14784,"nodeType":"Block","src":"20051:67:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14781,"name":"SimulationUnexpectedError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13553,"src":"20076:25:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20076:27:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14783,"nodeType":"RevertStatement","src":"20069:34:50"}]}},{"expression":{"id":14788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14786,"name":"errorReason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14637,"src":"20132:11:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14787,"name":"simulationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14739,"src":"20146:14:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"20132:28:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14789,"nodeType":"ExpressionStatement","src":"20132:28:50"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"id":14793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14790,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"20179:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14791,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"20198:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":14792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20213:7:50","memberName":"JustGas","nodeType":"MemberAccess","referencedDeclaration":13649,"src":"20198:22:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"20179:41:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14799,"nodeType":"IfStatement","src":"20175:121:50","trueBody":{"id":14798,"nodeType":"Block","src":"20222:74:50","statements":[{"errorCall":{"arguments":[{"id":14795,"name":"errorReason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14637,"src":"20269:11:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14794,"name":"SimulationFailedError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13565,"src":"20247:21:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (bytes memory) pure returns (error)"}},"id":14796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20247:34:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14797,"nodeType":"RevertStatement","src":"20240:41:50"}]}}]},"id":14801,"nodeType":"IfStatement","src":"19731:575:50","trueBody":{"id":14776,"nodeType":"Block","src":"19753:238:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"id":14759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14756,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"19771:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14757,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"19790:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":14758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19805:12:50","memberName":"WithMessages","nodeType":"MemberAccess","referencedDeclaration":13650,"src":"19790:27:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"19771:46:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14775,"nodeType":"IfStatement","src":"19767:214:50","trueBody":{"id":14774,"nodeType":"Block","src":"19819:162:50","statements":[{"expression":{"id":14768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14760,"name":"outMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14635,"src":"19837:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14763,"name":"simulationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14739,"src":"19862:14:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":14764,"name":"OutMessageProcessedEventStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13691,"src":"19879:30:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr_$","typeString":"type(struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer)"}},"id":14765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"19879:32:50","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct CrossChainLayer.OutMessageProcessedEventStruct memory[] memory)"}}],"id":14766,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19878:34:50","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct CrossChainLayer.OutMessageProcessedEventStruct memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct CrossChainLayer.OutMessageProcessedEventStruct memory[] memory)"}],"expression":{"id":14761,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19851:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19855:6:50","memberName":"decode","nodeType":"MemberAccess","src":"19851:10:50","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19851:62:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct memory[] memory"}},"src":"19837:76:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct memory[] memory"}},"id":14769,"nodeType":"ExpressionStatement","src":"19837:76:50"},{"eventCall":{"arguments":[{"id":14771,"name":"outMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14635,"src":"19954:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct memory[] memory"}],"id":14770,"name":"SimulationSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13578,"src":"19936:17:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossChainLayer.OutMessageProcessedEventStruct memory[] memory)"}},"id":14772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19936:30:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14773,"nodeType":"EmitStatement","src":"19931:35:50"}]}}]}},{"expression":{"id":14805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14802,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"20316:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14803,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"20334:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":14804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20349:4:50","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":13648,"src":"20334:19:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"20316:37:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"id":14806,"nodeType":"ExpressionStatement","src":"20316:37:50"},{"expression":{"id":14808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"20363:22:50","subExpression":{"id":14807,"name":"_simulationRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13656,"src":"20370:15:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14809,"nodeType":"ExpressionStatement","src":"20363:22:50"},{"expression":{"id":14812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14810,"name":"_receiveInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"20395:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":14811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20416:5:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"20395:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14813,"nodeType":"ExpressionStatement","src":"20395:26:50"},{"expression":{"id":14815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"20431:35:50","subExpression":{"id":14814,"name":"_currentInMessageOperationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13641,"src":"20438:28:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14816,"nodeType":"ExpressionStatement","src":"20431:35:50"}]},"documentation":{"id":14615,"nodeType":"StructuredDocumentation","src":"17425:654:50","text":" @dev Simulates the processing of an TVM->EVM message.\n @param messageVersion Message version.\n @param encodedMessage Message to simulate.\n @param merkleRoot Merkle root for checking proofs simulation.\n @param merkleProof Merkle proof to check.\n @param withMessages True if the simulation should include out messages, false - just for gas calculation.\n @return simulationStatus True if the simulation was successful, false otherwise.\n @return outMessages Array of out messages if the simulation was successful.\n @return errorReason Encoded error reason if the simulation was unsuccessful."},"functionSelector":"0efbc181","id":14818,"implemented":true,"kind":"function","modifiers":[],"name":"simulateReceiveMessage","nameLocation":"18093:22:50","nodeType":"FunctionDefinition","parameters":{"id":14629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14617,"mutability":"mutable","name":"messageVersion","nameLocation":"18133:14:50","nodeType":"VariableDeclaration","scope":14818,"src":"18125:22:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14616,"name":"uint256","nodeType":"ElementaryTypeName","src":"18125:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14619,"mutability":"mutable","name":"encodedMessage","nameLocation":"18172:14:50","nodeType":"VariableDeclaration","scope":14818,"src":"18157:29:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14618,"name":"bytes","nodeType":"ElementaryTypeName","src":"18157:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14621,"mutability":"mutable","name":"extraData","nameLocation":"18211:9:50","nodeType":"VariableDeclaration","scope":14818,"src":"18196:24:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14620,"name":"bytes","nodeType":"ElementaryTypeName","src":"18196:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14623,"mutability":"mutable","name":"merkleRoot","nameLocation":"18238:10:50","nodeType":"VariableDeclaration","scope":14818,"src":"18230:18:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18230:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14626,"mutability":"mutable","name":"merkleProof","nameLocation":"18277:11:50","nodeType":"VariableDeclaration","scope":14818,"src":"18258:30:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18258:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14625,"nodeType":"ArrayTypeName","src":"18258:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14628,"mutability":"mutable","name":"withMessages","nameLocation":"18303:12:50","nodeType":"VariableDeclaration","scope":14818,"src":"18298:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14627,"name":"bool","nodeType":"ElementaryTypeName","src":"18298:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18115:206:50"},"returnParameters":{"id":14638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14631,"mutability":"mutable","name":"simulationStatus","nameLocation":"18345:16:50","nodeType":"VariableDeclaration","scope":14818,"src":"18340:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14630,"name":"bool","nodeType":"ElementaryTypeName","src":"18340:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14635,"mutability":"mutable","name":"outMessages","nameLocation":"18403:11:50","nodeType":"VariableDeclaration","scope":14818,"src":"18363:51:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct[]"},"typeName":{"baseType":{"id":14633,"nodeType":"UserDefinedTypeName","pathNode":{"id":14632,"name":"OutMessageProcessedEventStruct","nameLocations":["18363:30:50"],"nodeType":"IdentifierPath","referencedDeclaration":13691,"src":"18363:30:50"},"referencedDeclaration":13691,"src":"18363:30:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct"}},"id":14634,"nodeType":"ArrayTypeName","src":"18363:32:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct[]"}},"visibility":"internal"},{"constant":false,"id":14637,"mutability":"mutable","name":"errorReason","nameLocation":"18429:11:50","nodeType":"VariableDeclaration","scope":14818,"src":"18416:24:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14636,"name":"bytes","nodeType":"ElementaryTypeName","src":"18416:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18339:102:50"},"scope":15421,"src":"18084:2389:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14903,"nodeType":"Block","src":"20613:970:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14826,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20627:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20631:6:50","memberName":"sender","nodeType":"MemberAccess","src":"20627:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":14830,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20649:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}],"id":14829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20641:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14828,"name":"address","nodeType":"ElementaryTypeName","src":"20641:7:50","typeDescriptions":{}}},"id":14831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20641:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20627:27:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14837,"nodeType":"IfStatement","src":"20623:79:50","trueBody":{"id":14836,"nodeType":"Block","src":"20656:46:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14833,"name":"OnlySelfCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13479,"src":"20677:12:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:14:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14835,"nodeType":"RevertStatement","src":"20670:21:50"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"id":14841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14838,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"20716:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14839,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"20735:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":14840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20750:4:50","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":13648,"src":"20735:19:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"20716:38:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14846,"nodeType":"IfStatement","src":"20712:103:50","trueBody":{"id":14845,"nodeType":"Block","src":"20756:59:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14842,"name":"SimulationIsNotInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13555,"src":"20777:25:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20777:27:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14844,"nodeType":"RevertStatement","src":"20770:34:50"}]}},{"expression":{"arguments":[{"id":14848,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14821,"src":"20884:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},{"baseExpression":{"expression":{"id":14849,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14821,"src":"20893:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":14850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20901:17:50","memberName":"evmValidExecutors","nodeType":"MemberAccess","referencedDeclaration":18172,"src":"20893:25:50","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14852,"indexExpression":{"hexValue":"30","id":14851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20919:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20893:28:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14847,"name":"_preprocessInMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14116,"src":"20863:20:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UnionInMessage_$18197_memory_ptr_$_t_address_$returns$__$","typeString":"function (struct VersionLib.UnionInMessage memory,address)"}},"id":14853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20863:59:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14854,"nodeType":"ExpressionStatement","src":"20863:59:50"},{"assignments":[14856,14858],"declarations":[{"constant":false,"id":14856,"mutability":"mutable","name":"success","nameLocation":"21003:7:50","nodeType":"VariableDeclaration","scope":14903,"src":"20998:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14855,"name":"bool","nodeType":"ElementaryTypeName","src":"20998:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14858,"mutability":"mutable","name":"result","nameLocation":"21025:6:50","nodeType":"VariableDeclaration","scope":14903,"src":"21012:19:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14857,"name":"bytes","nodeType":"ElementaryTypeName","src":"21012:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":14873,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":14866,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21107:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}},"id":14867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21112:15:50","memberName":"appLayerContext","nodeType":"MemberAccess","referencedDeclaration":15133,"src":"21107:20:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_UnionInMessage_$18197_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct VersionLib.UnionInMessage memory,bytes memory) external"}},"id":14868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21128:8:50","memberName":"selector","nodeType":"MemberAccess","src":"21107:29:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14869,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14821,"src":"21154:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},{"id":14870,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14823,"src":"21179:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14864,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21067:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21071:18:50","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"21067:22:50","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":14871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:135:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":14861,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21043:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}],"id":14860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21035:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14859,"name":"address","nodeType":"ElementaryTypeName","src":"21035:7:50","typeDescriptions":{}}},"id":14862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21035:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21049:4:50","memberName":"call","nodeType":"MemberAccess","src":"21035:18:50","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":14872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21035:177:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"20997:215:50"},{"condition":{"id":14874,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14856,"src":"21227:7:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14897,"nodeType":"IfStatement","src":"21223:303:50","trueBody":{"id":14896,"nodeType":"Block","src":"21236:290:50","statements":[{"assignments":[14876],"declarations":[{"constant":false,"id":14876,"mutability":"mutable","name":"outMessagesEncoded","nameLocation":"21263:18:50","nodeType":"VariableDeclaration","scope":14896,"src":"21250:31:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14875,"name":"bytes","nodeType":"ElementaryTypeName","src":"21250:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":14877,"nodeType":"VariableDeclarationStatement","src":"21250:31:50"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"id":14881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14878,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"21299:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14879,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"21318:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":14880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21333:12:50","memberName":"WithMessages","nodeType":"MemberAccess","referencedDeclaration":13650,"src":"21318:27:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"21299:46:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14890,"nodeType":"IfStatement","src":"21295:155:50","trueBody":{"id":14889,"nodeType":"Block","src":"21347:103:50","statements":[{"expression":{"id":14887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14882,"name":"outMessagesEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14876,"src":"21365:18:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14885,"name":"_simulationOutMessagesProcessedEvents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13696,"src":"21397:37:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage ref[] storage ref"}],"expression":{"id":14883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21386:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21390:6:50","memberName":"encode","nodeType":"MemberAccess","src":"21386:10:50","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21386:49:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"21365:70:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14888,"nodeType":"ExpressionStatement","src":"21365:70:50"}]}},{"errorCall":{"arguments":[{"hexValue":"74727565","id":14892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21490:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":14893,"name":"outMessagesEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14876,"src":"21496:18:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14891,"name":"SimulationFinished","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13561,"src":"21471:18:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (bool,bytes memory) pure returns (error)"}},"id":14894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21471:44:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14895,"nodeType":"RevertStatement","src":"21464:51:50"}]}},{"errorCall":{"arguments":[{"hexValue":"66616c7365","id":14899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21562:5:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":14900,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14858,"src":"21569:6:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14898,"name":"SimulationFinished","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13561,"src":"21543:18:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (bool,bytes memory) pure returns (error)"}},"id":14901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21543:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14902,"nodeType":"RevertStatement","src":"21536:40:50"}]},"functionSelector":"3029a881","id":14904,"implemented":true,"kind":"function","modifiers":[],"name":"simulateAppLayerContext","nameLocation":"20488:23:50","nodeType":"FunctionDefinition","parameters":{"id":14824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14821,"mutability":"mutable","name":"message","nameLocation":"20556:7:50","nodeType":"VariableDeclaration","scope":14904,"src":"20521:42:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage"},"typeName":{"id":14820,"nodeType":"UserDefinedTypeName","pathNode":{"id":14819,"name":"VersionLib.UnionInMessage","nameLocations":["20521:10:50","20532:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":18197,"src":"20521:25:50"},"referencedDeclaration":18197,"src":"20521:25:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_storage_ptr","typeString":"struct VersionLib.UnionInMessage"}},"visibility":"internal"},{"constant":false,"id":14823,"mutability":"mutable","name":"extraData","nameLocation":"20588:9:50","nodeType":"VariableDeclaration","scope":14904,"src":"20573:24:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14822,"name":"bytes","nodeType":"ElementaryTypeName","src":"20573:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20511:92:50"},"returnParameters":{"id":14825,"nodeType":"ParameterList","parameters":[],"src":"20613:0:50"},"scope":15421,"src":"20479:1104:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17398],"body":{"id":15009,"nodeType":"Block","src":"22170:1153:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14919,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14916,"src":"22185:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":14920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22195:6:50","memberName":"length","nodeType":"MemberAccess","src":"22185:16:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":14921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22205:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22185:21:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14927,"nodeType":"IfStatement","src":"22181:84:50","trueBody":{"id":14926,"nodeType":"Block","src":"22208:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14923,"name":"ExtraDataIsNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13527,"src":"22229:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14925,"nodeType":"RevertStatement","src":"22222:32:50"}]}},{"assignments":[14929,14932],"declarations":[{"constant":false,"id":14929,"mutability":"mutable","name":"messageHash","nameLocation":"22284:11:50","nodeType":"VariableDeclaration","scope":15009,"src":"22276:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22276:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14932,"mutability":"mutable","name":"message","nameLocation":"22330:7:50","nodeType":"VariableDeclaration","scope":15009,"src":"22297:40:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage"},"typeName":{"id":14931,"nodeType":"UserDefinedTypeName","pathNode":{"id":14930,"name":"VersionLib.UnionInMessage","nameLocations":["22297:10:50","22308:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":18197,"src":"22297:25:50"},"referencedDeclaration":18197,"src":"22297:25:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_storage_ptr","typeString":"struct VersionLib.UnionInMessage"}},"visibility":"internal"}],"id":14938,"initialValue":{"arguments":[{"id":14934,"name":"messageVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14907,"src":"22357:14:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14935,"name":"encodedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14909,"src":"22373:14:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":14936,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14912,"src":"22389:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"id":14933,"name":"_checkInMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14027,"src":"22341:15:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_array$_t_bytes32_$dyn_calldata_ptr_$returns$_t_bytes32_$_t_struct$_UnionInMessage_$18197_memory_ptr_$","typeString":"function (uint256,bytes calldata,bytes32[] calldata) view returns (bytes32,struct VersionLib.UnionInMessage memory)"}},"id":14937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22341:60:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_struct$_UnionInMessage_$18197_memory_ptr_$","typeString":"tuple(bytes32,struct VersionLib.UnionInMessage memory)"}},"nodeType":"VariableDeclarationStatement","src":"22275:126:50"},{"expression":{"arguments":[{"id":14940,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14932,"src":"22471:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},{"id":14941,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14914,"src":"22480:11:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14939,"name":"_preprocessInMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14116,"src":"22450:20:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UnionInMessage_$18197_memory_ptr_$_t_address_$returns$__$","typeString":"function (struct VersionLib.UnionInMessage memory,address)"}},"id":14942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22450:42:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14943,"nodeType":"ExpressionStatement","src":"22450:42:50"},{"expression":{"id":14947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14944,"name":"_currentInMessageOperationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13641,"src":"22503:28:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14945,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14932,"src":"22534:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22542:11:50","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"22534:19:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22503:50:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14948,"nodeType":"ExpressionStatement","src":"22503:50:50"},{"expression":{"id":14951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14949,"name":"_receiveInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"22563:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":14950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22584:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"22563:25:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14952,"nodeType":"ExpressionStatement","src":"22563:25:50"},{"assignments":[14954,14956],"declarations":[{"constant":false,"id":14954,"mutability":"mutable","name":"success","nameLocation":"22671:7:50","nodeType":"VariableDeclaration","scope":15009,"src":"22666:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14953,"name":"bool","nodeType":"ElementaryTypeName","src":"22666:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14956,"mutability":"mutable","name":"result","nameLocation":"22693:6:50","nodeType":"VariableDeclaration","scope":15009,"src":"22680:19:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14955,"name":"bytes","nodeType":"ElementaryTypeName","src":"22680:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":14971,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":14964,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22775:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}},"id":14965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22780:15:50","memberName":"appLayerContext","nodeType":"MemberAccess","referencedDeclaration":15133,"src":"22775:20:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_UnionInMessage_$18197_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct VersionLib.UnionInMessage memory,bytes memory) external"}},"id":14966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22796:8:50","memberName":"selector","nodeType":"MemberAccess","src":"22775:29:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14967,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14932,"src":"22822:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},{"id":14968,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14916,"src":"22847:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22735:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22739:18:50","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"22735:22:50","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":14969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22735:135:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":14959,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22711:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}],"id":14958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22703:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14957,"name":"address","nodeType":"ElementaryTypeName","src":"22703:7:50","typeDescriptions":{}}},"id":14960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22703:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22717:4:50","memberName":"call","nodeType":"MemberAccess","src":"22703:18:50","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":14970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22703:177:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"22665:215:50"},{"condition":{"id":14973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22895:8:50","subExpression":{"id":14972,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14954,"src":"22896:7:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14994,"nodeType":"Block","src":"23070:114:50","statements":[{"eventCall":{"arguments":[{"expression":{"id":14990,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14932,"src":"23139:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23147:11:50","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"23139:19:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14989,"name":"InMessageProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13583,"src":"23089:18:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":14992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["23126:11:50"],"names":["operationId"],"nodeType":"FunctionCall","src":"23089:84:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14993,"nodeType":"EmitStatement","src":"23084:89:50"}]},"id":14995,"nodeType":"IfStatement","src":"22891:293:50","trueBody":{"id":14988,"nodeType":"Block","src":"22905:151:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14974,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14956,"src":"22923:6:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22930:6:50","memberName":"length","nodeType":"MemberAccess","src":"22923:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22940:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22923:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14981,"nodeType":"IfStatement","src":"22919:56:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14978,"name":"AppLayerUnexpectedError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13487,"src":"22950:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22950:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14980,"nodeType":"RevertStatement","src":"22943:32:50"}},{"eventCall":{"arguments":[{"expression":{"id":14983,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14932,"src":"23017:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"id":14984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23025:11:50","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"23017:19:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14985,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14956,"src":"23038:6:50","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":14982,"name":"AppLayerCallErrorEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13572,"src":"22994:22:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes memory)"}},"id":14986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22994:51:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14987,"nodeType":"EmitStatement","src":"22989:56:50"}]}},{"expression":{"id":15000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14996,"name":"_processedInMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"23194:20:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":14998,"indexExpression":{"id":14997,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14929,"src":"23215:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23194:33:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":14999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23230:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"23194:40:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15001,"nodeType":"ExpressionStatement","src":"23194:40:50"},{"expression":{"id":15004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15002,"name":"_receiveInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"23245:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":15003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23266:5:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"23245:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15005,"nodeType":"ExpressionStatement","src":"23245:26:50"},{"expression":{"id":15007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"23281:35:50","subExpression":{"id":15006,"name":"_currentInMessageOperationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13641,"src":"23288:28:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15008,"nodeType":"ExpressionStatement","src":"23281:35:50"}]},"documentation":{"id":14905,"nodeType":"StructuredDocumentation","src":"21589:363:50","text":" @dev Accepts an TVM->EVM message to process if the Merkle proof is valid.\n @param messageVersion Message version.\n @param encodedMessage Encoded message to process.\n @param merkleProof Merkle proof for the message.\n @param feeReceiver receiver of fee.\n @param extraData Untrusted extra data to pass to the message."},"functionSelector":"abe13ef7","id":15010,"implemented":true,"kind":"function","modifiers":[],"name":"receiveMessage","nameLocation":"21966:14:50","nodeType":"FunctionDefinition","parameters":{"id":14917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14907,"mutability":"mutable","name":"messageVersion","nameLocation":"21998:14:50","nodeType":"VariableDeclaration","scope":15010,"src":"21990:22:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14906,"name":"uint256","nodeType":"ElementaryTypeName","src":"21990:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14909,"mutability":"mutable","name":"encodedMessage","nameLocation":"22037:14:50","nodeType":"VariableDeclaration","scope":15010,"src":"22022:29:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14908,"name":"bytes","nodeType":"ElementaryTypeName","src":"22022:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14912,"mutability":"mutable","name":"merkleProof","nameLocation":"22080:11:50","nodeType":"VariableDeclaration","scope":15010,"src":"22061:30:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22061:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14911,"nodeType":"ArrayTypeName","src":"22061:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14914,"mutability":"mutable","name":"feeReceiver","nameLocation":"22109:11:50","nodeType":"VariableDeclaration","scope":15010,"src":"22101:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14913,"name":"address","nodeType":"ElementaryTypeName","src":"22101:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14916,"mutability":"mutable","name":"extraData","nameLocation":"22145:9:50","nodeType":"VariableDeclaration","scope":15010,"src":"22130:24:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14915,"name":"bytes","nodeType":"ElementaryTypeName","src":"22130:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21980:180:50"},"returnParameters":{"id":14918,"nodeType":"ParameterList","parameters":[],"src":"22170:0:50"},"scope":15421,"src":"21957:1366:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15132,"nodeType":"Block","src":"23455:1044:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15018,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23469:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23473:6:50","memberName":"sender","nodeType":"MemberAccess","src":"23469:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":15022,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23491:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossChainLayer_$15421","typeString":"contract CrossChainLayer"}],"id":15021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23483:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15020,"name":"address","nodeType":"ElementaryTypeName","src":"23483:7:50","typeDescriptions":{}}},"id":15023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23483:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23469:27:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15029,"nodeType":"IfStatement","src":"23465:79:50","trueBody":{"id":15028,"nodeType":"Block","src":"23498:46:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15025,"name":"OnlySelfCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13479,"src":"23519:12:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23519:14:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15027,"nodeType":"RevertStatement","src":"23512:21:50"}]}},{"assignments":[15031],"declarations":[{"constant":false,"id":15031,"mutability":"mutable","name":"valueToUnlock","nameLocation":"23562:13:50","nodeType":"VariableDeclaration","scope":15132,"src":"23554:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15030,"name":"uint256","nodeType":"ElementaryTypeName","src":"23554:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15035,"initialValue":{"arguments":[{"id":15033,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"23602:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}],"id":15032,"name":"_processInMessageTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14306,"src":"23578:23:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UnionInMessage_$18197_calldata_ptr_$returns$_t_uint256_$","typeString":"function (struct VersionLib.UnionInMessage calldata) returns (uint256)"}},"id":15034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23578:32:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23554:56:50"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15036,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"23666:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":15037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23674:6:50","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"23666:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":15040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23692:1:50","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":15039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23684:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15038,"name":"address","nodeType":"ElementaryTypeName","src":"23684:7:50","typeDescriptions":{}}},"id":15041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23684:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23666:28:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15131,"nodeType":"IfStatement","src":"23662:831:50","trueBody":{"id":15130,"nodeType":"Block","src":"23696:797:50","statements":[{"assignments":[15044],"declarations":[{"constant":false,"id":15044,"mutability":"mutable","name":"status","nameLocation":"23715:6:50","nodeType":"VariableDeclaration","scope":15130,"src":"23710:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15043,"name":"bool","nodeType":"ElementaryTypeName","src":"23710:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":15046,"initialValue":{"hexValue":"74727565","id":15045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23724:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"23710:18:50"},{"assignments":[15048],"declarations":[{"constant":false,"id":15048,"mutability":"mutable","name":"response","nameLocation":"23755:8:50","nodeType":"VariableDeclaration","scope":15130,"src":"23742:21:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15047,"name":"bytes","nodeType":"ElementaryTypeName","src":"23742:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":15049,"nodeType":"VariableDeclarationStatement","src":"23742:21:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"expression":{"id":15052,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"23787:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":15053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23795:10:50","memberName":"methodName","nodeType":"MemberAccess","referencedDeclaration":18162,"src":"23787:18:50","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23781:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15050,"name":"bytes","nodeType":"ElementaryTypeName","src":"23781:5:50","typeDescriptions":{}}},"id":15054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23781:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":15055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23807:6:50","memberName":"length","nodeType":"MemberAccess","src":"23781:32:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":15056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23817:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23781:37:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15101,"name":"valueToUnlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15031,"src":"24264:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":15102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24281:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24264:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15120,"nodeType":"IfStatement","src":"24260:132:50","trueBody":{"id":15119,"nodeType":"Block","src":"24284:108:50","statements":[{"expression":{"id":15117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":15104,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15044,"src":"24303:6:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15105,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15048,"src":"24311:8:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":15106,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"24302:18:50","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"","id":15115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24374:2:50","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":{"arguments":[{"expression":{"id":15109,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"24331:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":15110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24339:6:50","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"24331:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24323:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15107,"name":"address","nodeType":"ElementaryTypeName","src":"24323:7:50","typeDescriptions":{}}},"id":15111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24323:23:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24347:4:50","memberName":"call","nodeType":"MemberAccess","src":"24323:28:50","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":15114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":15113,"name":"valueToUnlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15031,"src":"24359:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"24323:50:50","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":15116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24323:54:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"24302:75:50","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15118,"nodeType":"ExpressionStatement","src":"24302:75:50"}]}},"id":15121,"nodeType":"IfStatement","src":"23777:615:50","trueBody":{"id":15100,"nodeType":"Block","src":"23820:422:50","statements":[{"assignments":[15059],"declarations":[{"constant":false,"id":15059,"mutability":"mutable","name":"header","nameLocation":"23852:6:50","nodeType":"VariableDeclaration","scope":15100,"src":"23839:19:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15058,"name":"bytes","nodeType":"ElementaryTypeName","src":"23839:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":15065,"initialValue":{"arguments":[{"id":15062,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"23889:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},{"id":15063,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15015,"src":"23898:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":15060,"name":"VersionLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18419,"src":"23861:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VersionLib_$18419_$","typeString":"type(library VersionLib)"}},"id":15061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23872:16:50","memberName":"prepareTacHeader","nodeType":"MemberAccess","referencedDeclaration":18418,"src":"23861:27:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UnionInMessage_$18197_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct VersionLib.UnionInMessage calldata,bytes calldata) view returns (bytes memory)"}},"id":15064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23861:47:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"23839:69:50"},{"assignments":[15067],"declarations":[{"constant":false,"id":15067,"mutability":"mutable","name":"methodCall","nameLocation":"23940:10:50","nodeType":"VariableDeclaration","scope":15100,"src":"23927:23:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15066,"name":"bytes","nodeType":"ElementaryTypeName","src":"23927:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":15084,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":15075,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"24020:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":15076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24028:10:50","memberName":"methodName","nodeType":"MemberAccess","referencedDeclaration":18162,"src":"24020:18:50","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24014:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15073,"name":"bytes","nodeType":"ElementaryTypeName","src":"24014:5:50","typeDescriptions":{}}},"id":15077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24014:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15072,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"24004:9:50","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24004:36:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23997:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":15070,"name":"bytes4","nodeType":"ElementaryTypeName","src":"23997:6:50","typeDescriptions":{}}},"id":15079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23997:44:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":15080,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"24063:6:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":15081,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"24091:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":15082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24099:9:50","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":18164,"src":"24091:17:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":15068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23953:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23957:18:50","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"23953:22:50","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":15083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23953:173:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"23927:199:50"},{"expression":{"id":15098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":15085,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15044,"src":"24145:6:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15086,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15048,"src":"24153:8:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":15087,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"24144:18:50","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15096,"name":"methodCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15067,"src":"24216:10:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":15090,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"24173:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":15091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24181:6:50","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"24173:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24165:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15088,"name":"address","nodeType":"ElementaryTypeName","src":"24165:7:50","typeDescriptions":{}}},"id":15092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24165:23:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24189:4:50","memberName":"call","nodeType":"MemberAccess","src":"24165:28:50","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":15095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":15094,"name":"valueToUnlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15031,"src":"24201:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"24165:50:50","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":15097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24165:62:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"24144:83:50","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15099,"nodeType":"ExpressionStatement","src":"24144:83:50"}]}},{"condition":{"id":15123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24410:7:50","subExpression":{"id":15122,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15044,"src":"24411:6:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15129,"nodeType":"IfStatement","src":"24406:77:50","trueBody":{"id":15128,"nodeType":"Block","src":"24419:64:50","statements":[{"errorCall":{"arguments":[{"id":15125,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15048,"src":"24459:8:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15124,"name":"ProxyCallError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13461,"src":"24444:14:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (bytes memory) pure returns (error)"}},"id":15126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24444:24:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15127,"nodeType":"RevertStatement","src":"24437:31:50"}]}}]}}]},"functionSelector":"8421adc8","id":15133,"implemented":true,"kind":"function","modifiers":[],"name":"appLayerContext","nameLocation":"23338:15:50","nodeType":"FunctionDefinition","parameters":{"id":15016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15013,"mutability":"mutable","name":"message","nameLocation":"23398:7:50","nodeType":"VariableDeclaration","scope":15133,"src":"23363:42:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage"},"typeName":{"id":15012,"nodeType":"UserDefinedTypeName","pathNode":{"id":15011,"name":"VersionLib.UnionInMessage","nameLocations":["23363:10:50","23374:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":18197,"src":"23363:25:50"},"referencedDeclaration":18197,"src":"23363:25:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_storage_ptr","typeString":"struct VersionLib.UnionInMessage"}},"visibility":"internal"},{"constant":false,"id":15015,"mutability":"mutable","name":"extraData","nameLocation":"23430:9:50","nodeType":"VariableDeclaration","scope":15133,"src":"23415:24:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15014,"name":"bytes","nodeType":"ElementaryTypeName","src":"23415:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23353:92:50"},"returnParameters":{"id":15017,"nodeType":"ParameterList","parameters":[],"src":"23455:0:50"},"scope":15421,"src":"23329:1170:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17406],"body":{"id":15388,"nodeType":"Block","src":"24828:2842:50","statements":[{"assignments":[15146],"declarations":[{"constant":false,"id":15146,"mutability":"mutable","name":"message","nameLocation":"24872:7:50","nodeType":"VariableDeclaration","scope":15388,"src":"24838:41:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage"},"typeName":{"id":15145,"nodeType":"UserDefinedTypeName","pathNode":{"id":15144,"name":"VersionLib.UnionOutMessage","nameLocations":["24838:10:50","24849:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":18220,"src":"24838:26:50"},"referencedDeclaration":18220,"src":"24838:26:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_storage_ptr","typeString":"struct VersionLib.UnionOutMessage"}},"visibility":"internal"}],"id":15152,"initialValue":{"arguments":[{"id":15149,"name":"messageVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15136,"src":"24910:14:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15150,"name":"encodedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"24926:14:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":15147,"name":"VersionLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18419,"src":"24882:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VersionLib_$18419_$","typeString":"type(library VersionLib)"}},"id":15148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24893:16:50","memberName":"decodeOutMessage","nodeType":"MemberAccess","referencedDeclaration":18336,"src":"24882:27:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_struct$_UnionOutMessage_$18220_memory_ptr_$","typeString":"function (uint256,bytes calldata) pure returns (struct VersionLib.UnionOutMessage memory)"}},"id":15151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24882:59:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"nodeType":"VariableDeclarationStatement","src":"24838:103:50"},{"assignments":[15157,15161,15165,15169],"declarations":[{"constant":false,"id":15157,"mutability":"mutable","name":"toBurn","nameLocation":"24987:6:50","nodeType":"VariableDeclaration","scope":15388,"src":"24966:27:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":15155,"nodeType":"UserDefinedTypeName","pathNode":{"id":15154,"name":"TokenAmount","nameLocations":["24966:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"24966:11:50"},"referencedDeclaration":15999,"src":"24966:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":15156,"nodeType":"ArrayTypeName","src":"24966:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":15161,"mutability":"mutable","name":"toLock","nameLocation":"25028:6:50","nodeType":"VariableDeclaration","scope":15388,"src":"25007:27:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":15159,"nodeType":"UserDefinedTypeName","pathNode":{"id":15158,"name":"TokenAmount","nameLocations":["25007:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"25007:11:50"},"referencedDeclaration":15999,"src":"25007:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":15160,"nodeType":"ArrayTypeName","src":"25007:13:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":15165,"mutability":"mutable","name":"toBurnNFT","nameLocation":"25067:9:50","nodeType":"VariableDeclaration","scope":15388,"src":"25048:28:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":15163,"nodeType":"UserDefinedTypeName","pathNode":{"id":15162,"name":"NFTAmount","nameLocations":["25048:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"25048:9:50"},"referencedDeclaration":16007,"src":"25048:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":15164,"nodeType":"ArrayTypeName","src":"25048:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"},{"constant":false,"id":15169,"mutability":"mutable","name":"toLockNFT","nameLocation":"25109:9:50","nodeType":"VariableDeclaration","scope":15388,"src":"25090:28:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":15167,"nodeType":"UserDefinedTypeName","pathNode":{"id":15166,"name":"NFTAmount","nameLocations":["25090:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"25090:9:50"},"referencedDeclaration":16007,"src":"25090:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":15168,"nodeType":"ArrayTypeName","src":"25090:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"}],"id":15173,"initialValue":{"arguments":[{"id":15171,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"25156:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}],"id":15170,"name":"_processOutMessageTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14614,"src":"25131:24:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UnionOutMessage_$18220_memory_ptr_$returns$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct VersionLib.UnionOutMessage memory) returns (struct TokenAmount memory[] memory,struct TokenAmount memory[] memory,struct NFTAmount memory[] memory,struct NFTAmount memory[] memory)"}},"id":15172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25131:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct TokenAmount memory[] memory,struct TokenAmount memory[] memory,struct NFTAmount memory[] memory,struct NFTAmount memory[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"24952:212:50"},{"assignments":[15175],"declarations":[{"constant":false,"id":15175,"mutability":"mutable","name":"operationId","nameLocation":"25250:11:50","nodeType":"VariableDeclaration","scope":15388,"src":"25242:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25242:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15180,"initialValue":{"arguments":[{"hexValue":"30","id":15178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25272:1:50","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":15177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25264:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":15176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25264:7:50","typeDescriptions":{}}},"id":15179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25264:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25242:32:50"},{"condition":{"id":15181,"name":"_receiveInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"25288:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15187,"nodeType":"IfStatement","src":"25284:91:50","trueBody":{"id":15186,"nodeType":"Block","src":"25308:67:50","statements":[{"expression":{"id":15184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15182,"name":"operationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15175,"src":"25322:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15183,"name":"_currentInMessageOperationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13641,"src":"25336:28:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25322:42:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15185,"nodeType":"ExpressionStatement","src":"25322:42:50"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"},"id":15191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15188,"name":"_simulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13654,"src":"25481:15:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15189,"name":"SimulationMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"25500:14:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SimulationMode_$13651_$","typeString":"type(enum CrossChainLayer.SimulationMode)"}},"id":15190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25515:12:50","memberName":"WithMessages","nodeType":"MemberAccess","referencedDeclaration":13650,"src":"25500:27:50","typeDescriptions":{"typeIdentifier":"t_enum$_SimulationMode_$13651","typeString":"enum CrossChainLayer.SimulationMode"}},"src":"25481:46:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15365,"nodeType":"IfStatement","src":"25477:1639:50","trueBody":{"id":15364,"nodeType":"Block","src":"25529:1587:50","statements":[{"assignments":[15194],"declarations":[{"constant":false,"id":15194,"mutability":"mutable","name":"outMessage","nameLocation":"25583:10:50","nodeType":"VariableDeclaration","scope":15364,"src":"25544:49:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct"},"typeName":{"id":15193,"nodeType":"UserDefinedTypeName","pathNode":{"id":15192,"name":"OutMessageProcessedEventStruct","nameLocations":["25544:30:50"],"nodeType":"IdentifierPath","referencedDeclaration":13691,"src":"25544:30:50"},"referencedDeclaration":13691,"src":"25544:30:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct"}},"visibility":"internal"}],"id":15198,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15195,"name":"_simulationOutMessagesProcessedEvents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13696,"src":"25596:37:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage ref[] storage ref"}},"id":15196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25634:4:50","memberName":"push","nodeType":"MemberAccess","src":"25596:42:50","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage_ptr_$returns$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$attached_to$_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossChainLayer.OutMessageProcessedEventStruct storage ref[] storage pointer) returns (struct CrossChainLayer.OutMessageProcessedEventStruct storage ref)"}},"id":15197,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25596:44:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25544:96:50"},{"expression":{"id":15204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15199,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"25655:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25666:9:50","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":13659,"src":"25655:20:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15202,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"25678:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25686:9:50","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":18200,"src":"25678:17:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25655:40:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":15205,"nodeType":"ExpressionStatement","src":"25655:40:50"},{"expression":{"id":15210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15206,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"25709:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25720:11:50","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":13661,"src":"25709:22:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15209,"name":"operationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15175,"src":"25734:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25709:36:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15211,"nodeType":"ExpressionStatement","src":"25709:36:50"},{"expression":{"id":15217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15212,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"25759:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25770:13:50","memberName":"callerAddress","nodeType":"MemberAccess","referencedDeclaration":13663,"src":"25759:24:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15215,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25786:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25790:6:50","memberName":"sender","nodeType":"MemberAccess","src":"25786:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25759:37:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15218,"nodeType":"ExpressionStatement","src":"25759:37:50"},{"expression":{"id":15224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15219,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"25810:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25821:13:50","memberName":"targetAddress","nodeType":"MemberAccess","referencedDeclaration":13665,"src":"25810:24:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15222,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"25837:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25845:9:50","memberName":"tvmTarget","nodeType":"MemberAccess","referencedDeclaration":18202,"src":"25837:17:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"25810:44:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":15225,"nodeType":"ExpressionStatement","src":"25810:44:50"},{"expression":{"id":15231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15226,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"25868:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25879:7:50","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":13667,"src":"25868:18:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15229,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"25889:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25897:10:50","memberName":"tvmPayload","nodeType":"MemberAccess","referencedDeclaration":18204,"src":"25889:18:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"25868:39:50","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":15232,"nodeType":"ExpressionStatement","src":"25868:39:50"},{"expression":{"id":15238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15233,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"25921:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25932:11:50","memberName":"protocolFee","nodeType":"MemberAccess","referencedDeclaration":13669,"src":"25921:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15236,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"25946:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25954:14:50","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":18206,"src":"25946:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25921:47:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15239,"nodeType":"ExpressionStatement","src":"25921:47:50"},{"expression":{"id":15245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15240,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"25982:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25993:11:50","memberName":"executorFee","nodeType":"MemberAccess","referencedDeclaration":13671,"src":"25982:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15243,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"26007:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26015:14:50","memberName":"tvmExecutorFee","nodeType":"MemberAccess","referencedDeclaration":18208,"src":"26007:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25982:47:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15246,"nodeType":"ExpressionStatement","src":"25982:47:50"},{"assignments":[15248],"declarations":[{"constant":false,"id":15248,"mutability":"mutable","name":"i","nameLocation":"26049:1:50","nodeType":"VariableDeclaration","scope":15364,"src":"26044:6:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15247,"name":"uint","nodeType":"ElementaryTypeName","src":"26044:4:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15249,"nodeType":"VariableDeclarationStatement","src":"26044:6:50"},{"body":{"id":15270,"nodeType":"Block","src":"26109:167:50","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":15260,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"26161:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26169:17:50","memberName":"tvmValidExecutors","nodeType":"MemberAccess","referencedDeclaration":18211,"src":"26161:25:50","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":15263,"indexExpression":{"id":15262,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26187:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26161:28:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":15255,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"26127:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26138:17:50","memberName":"tvmValidExecutors","nodeType":"MemberAccess","referencedDeclaration":13674,"src":"26127:28:50","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":15259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26156:4:50","memberName":"push","nodeType":"MemberAccess","src":"26127:33:50","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_string_storage_$dyn_storage_ptr_$_t_string_storage_$returns$__$attached_to$_t_array$_t_string_storage_$dyn_storage_ptr_$","typeString":"function (string storage ref[] storage pointer,string storage ref)"}},"id":15264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26127:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15265,"nodeType":"ExpressionStatement","src":"26127:63:50"},{"id":15269,"nodeType":"UncheckedBlock","src":"26208:54:50","statements":[{"expression":{"id":15267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26240:3:50","subExpression":{"id":15266,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26240:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15268,"nodeType":"ExpressionStatement","src":"26240:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26070:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":15251,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"26074:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26082:17:50","memberName":"tvmValidExecutors","nodeType":"MemberAccess","referencedDeclaration":18211,"src":"26074:25:50","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":15253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26100:6:50","memberName":"length","nodeType":"MemberAccess","src":"26074:32:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26070:36:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15271,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"26064:212:50"},{"expression":{"id":15273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"26290:8:50","subExpression":{"id":15272,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26297:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15274,"nodeType":"ExpressionStatement","src":"26290:8:50"},{"body":{"id":15293,"nodeType":"Block","src":"26339:143:50","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15284,"name":"toBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15157,"src":"26386:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":15286,"indexExpression":{"id":15285,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26393:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26386:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}],"expression":{"expression":{"id":15279,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"26357:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26368:12:50","memberName":"tokensBurned","nodeType":"MemberAccess","referencedDeclaration":13678,"src":"26357:23:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage","typeString":"struct TokenAmount storage ref[] storage ref"}},"id":15283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26381:4:50","memberName":"push","nodeType":"MemberAccess","src":"26357:28:50","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr_$_t_struct$_TokenAmount_$15999_storage_$returns$__$attached_to$_t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr_$","typeString":"function (struct TokenAmount storage ref[] storage pointer,struct TokenAmount storage ref)"}},"id":15287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26357:39:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15288,"nodeType":"ExpressionStatement","src":"26357:39:50"},{"id":15292,"nodeType":"UncheckedBlock","src":"26414:54:50","statements":[{"expression":{"id":15290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26446:3:50","subExpression":{"id":15289,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26446:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15291,"nodeType":"ExpressionStatement","src":"26446:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15275,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26319:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15276,"name":"toBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15157,"src":"26323:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":15277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26330:6:50","memberName":"length","nodeType":"MemberAccess","src":"26323:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26319:17:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15294,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"26312:170:50"},{"expression":{"id":15296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"26496:8:50","subExpression":{"id":15295,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26503:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15297,"nodeType":"ExpressionStatement","src":"26496:8:50"},{"body":{"id":15316,"nodeType":"Block","src":"26545:143:50","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15307,"name":"toLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15161,"src":"26592:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":15309,"indexExpression":{"id":15308,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26599:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26592:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}],"expression":{"expression":{"id":15302,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"26563:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26574:12:50","memberName":"tokensLocked","nodeType":"MemberAccess","referencedDeclaration":13682,"src":"26563:23:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage","typeString":"struct TokenAmount storage ref[] storage ref"}},"id":15306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26587:4:50","memberName":"push","nodeType":"MemberAccess","src":"26563:28:50","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr_$_t_struct$_TokenAmount_$15999_storage_$returns$__$attached_to$_t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr_$","typeString":"function (struct TokenAmount storage ref[] storage pointer,struct TokenAmount storage ref)"}},"id":15310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26563:39:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15311,"nodeType":"ExpressionStatement","src":"26563:39:50"},{"id":15315,"nodeType":"UncheckedBlock","src":"26620:54:50","statements":[{"expression":{"id":15313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26652:3:50","subExpression":{"id":15312,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26652:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15314,"nodeType":"ExpressionStatement","src":"26652:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26525:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15299,"name":"toLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15161,"src":"26529:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":15300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26536:6:50","memberName":"length","nodeType":"MemberAccess","src":"26529:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26525:17:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15317,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"26518:170:50"},{"expression":{"id":15319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"26701:8:50","subExpression":{"id":15318,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26708:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15320,"nodeType":"ExpressionStatement","src":"26701:8:50"},{"body":{"id":15339,"nodeType":"Block","src":"26753:144:50","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15330,"name":"toBurnNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15165,"src":"26798:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":15332,"indexExpression":{"id":15331,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26808:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26798:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}],"expression":{"expression":{"id":15325,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"26771:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26782:10:50","memberName":"nftsBurned","nodeType":"MemberAccess","referencedDeclaration":13686,"src":"26771:21:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage","typeString":"struct NFTAmount storage ref[] storage ref"}},"id":15329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26793:4:50","memberName":"push","nodeType":"MemberAccess","src":"26771:26:50","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr_$_t_struct$_NFTAmount_$16007_storage_$returns$__$attached_to$_t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr_$","typeString":"function (struct NFTAmount storage ref[] storage pointer,struct NFTAmount storage ref)"}},"id":15333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26771:40:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15334,"nodeType":"ExpressionStatement","src":"26771:40:50"},{"id":15338,"nodeType":"UncheckedBlock","src":"26829:54:50","statements":[{"expression":{"id":15336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26861:3:50","subExpression":{"id":15335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26861:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15337,"nodeType":"ExpressionStatement","src":"26861:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15321,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26730:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15322,"name":"toBurnNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15165,"src":"26734:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":15323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26744:6:50","memberName":"length","nodeType":"MemberAccess","src":"26734:16:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26730:20:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15340,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"26723:174:50"},{"expression":{"id":15342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"26910:8:50","subExpression":{"id":15341,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26917:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15343,"nodeType":"ExpressionStatement","src":"26910:8:50"},{"body":{"id":15362,"nodeType":"Block","src":"26962:144:50","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15353,"name":"toLockNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15169,"src":"27007:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":15355,"indexExpression":{"id":15354,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"27017:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27007:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}],"expression":{"expression":{"id":15348,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"26980:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageProcessedEventStruct_$13691_storage_ptr","typeString":"struct CrossChainLayer.OutMessageProcessedEventStruct storage pointer"}},"id":15351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26991:10:50","memberName":"nftsLocked","nodeType":"MemberAccess","referencedDeclaration":13690,"src":"26980:21:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage","typeString":"struct NFTAmount storage ref[] storage ref"}},"id":15352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27002:4:50","memberName":"push","nodeType":"MemberAccess","src":"26980:26:50","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr_$_t_struct$_NFTAmount_$16007_storage_$returns$__$attached_to$_t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr_$","typeString":"function (struct NFTAmount storage ref[] storage pointer,struct NFTAmount storage ref)"}},"id":15356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26980:40:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15357,"nodeType":"ExpressionStatement","src":"26980:40:50"},{"id":15361,"nodeType":"UncheckedBlock","src":"27038:54:50","statements":[{"expression":{"id":15359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27070:3:50","subExpression":{"id":15358,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"27070:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15360,"nodeType":"ExpressionStatement","src":"27070:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15344,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15248,"src":"26939:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15345,"name":"toLockNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15169,"src":"26943:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":15346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26953:6:50","memberName":"length","nodeType":"MemberAccess","src":"26943:16:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26939:20:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15363,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"26932:174:50"}]}},{"eventCall":{"arguments":[{"expression":{"id":15367,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"27176:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27184:9:50","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":18200,"src":"27176:17:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":15369,"name":"operationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15175,"src":"27220:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":15370,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27260:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27264:6:50","memberName":"sender","nodeType":"MemberAccess","src":"27260:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15372,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"27299:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27307:9:50","memberName":"tvmTarget","nodeType":"MemberAccess","referencedDeclaration":18202,"src":"27299:17:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":15374,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"27339:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27347:10:50","memberName":"tvmPayload","nodeType":"MemberAccess","referencedDeclaration":18204,"src":"27339:18:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":15376,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"27384:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27392:14:50","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":18206,"src":"27384:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15378,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"27433:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27441:14:50","memberName":"tvmExecutorFee","nodeType":"MemberAccess","referencedDeclaration":18208,"src":"27433:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15380,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"27488:7:50","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"id":15381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27496:17:50","memberName":"tvmValidExecutors","nodeType":"MemberAccess","referencedDeclaration":18211,"src":"27488:25:50","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":15382,"name":"toBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15157,"src":"27541:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"id":15383,"name":"toLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15161,"src":"27575:6:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"id":15384,"name":"toBurnNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15165,"src":"27607:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},{"id":15385,"name":"toLockNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15169,"src":"27642:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}],"id":15366,"name":"OutMessageProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13619,"src":"27131:19:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$_t_bytes32_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (uint64,bytes32,address,string memory,string memory,uint256,uint256,string memory[] memory,struct TokenAmount memory[] memory,struct TokenAmount memory[] memory,struct NFTAmount memory[] memory,struct NFTAmount memory[] memory)"}},"id":15386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["27165:9:50","27207:11:50","27245:13:50","27284:13:50","27330:7:50","27371:11:50","27420:11:50","27469:17:50","27527:12:50","27561:12:50","27595:10:50","27630:10:50"],"names":["shardsKey","operationId","callerAddress","targetAddress","payload","protocolFee","executorFee","tvmValidExecutors","tokensBurned","tokensLocked","nftsBurned","nftsLocked"],"nodeType":"FunctionCall","src":"27131:531:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15387,"nodeType":"EmitStatement","src":"27126:536:50"}]},"documentation":{"id":15134,"nodeType":"StructuredDocumentation","src":"24505:194:50","text":" @dev Accepts an EVM->TVM message to process (e.g. a callback from dApp).\n @param messageVersion Message version.\n @param encodedMessage Encoded message to process."},"functionSelector":"e289adcd","id":15389,"implemented":true,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"24713:11:50","nodeType":"FunctionDefinition","overrides":{"id":15140,"nodeType":"OverrideSpecifier","overrides":[],"src":"24819:8:50"},"parameters":{"id":15139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15136,"mutability":"mutable","name":"messageVersion","nameLocation":"24742:14:50","nodeType":"VariableDeclaration","scope":15389,"src":"24734:22:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15135,"name":"uint256","nodeType":"ElementaryTypeName","src":"24734:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15138,"mutability":"mutable","name":"encodedMessage","nameLocation":"24781:14:50","nodeType":"VariableDeclaration","scope":15389,"src":"24766:29:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15137,"name":"bytes","nodeType":"ElementaryTypeName","src":"24766:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"24724:77:50"},"returnParameters":{"id":15141,"nodeType":"ParameterList","parameters":[],"src":"24828:0:50"},"scope":15421,"src":"24704:2966:50","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[17414],"body":{"id":15401,"nodeType":"Block","src":"28001:57:50","statements":[{"expression":{"baseExpression":{"id":15397,"name":"_processedInMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"28018:20:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15399,"indexExpression":{"id":15398,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15392,"src":"28039:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28018:33:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15396,"id":15400,"nodeType":"Return","src":"28011:40:50"}]},"documentation":{"id":15390,"nodeType":"StructuredDocumentation","src":"27697:207:50","text":" @dev Checks if the input (receive) message has been processed.\n @param messageHash Message hash to check.\n @return bool True if the message has been processed, false otherwise."},"functionSelector":"5a178931","id":15402,"implemented":true,"kind":"function","modifiers":[],"name":"getInMessageState","nameLocation":"27918:17:50","nodeType":"FunctionDefinition","parameters":{"id":15393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15392,"mutability":"mutable","name":"messageHash","nameLocation":"27954:11:50","nodeType":"VariableDeclaration","scope":15402,"src":"27946:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27946:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27935:36:50"},"returnParameters":{"id":15396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15402,"src":"27995:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15394,"name":"bool","nodeType":"ElementaryTypeName","src":"27995:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27994:6:50"},"scope":15421,"src":"27909:149:50","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17420],"body":{"id":15410,"nodeType":"Block","src":"28217:36:50","statements":[{"expression":{"id":15408,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13698,"src":"28234:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15407,"id":15409,"nodeType":"Return","src":"28227:19:50"}]},"documentation":{"id":15403,"nodeType":"StructuredDocumentation","src":"28064:93:50","text":" @dev Gets the current min protocol fee.\n @return uint256 Fee amount."},"functionSelector":"a5a41031","id":15411,"implemented":true,"kind":"function","modifiers":[],"name":"getProtocolFee","nameLocation":"28171:14:50","nodeType":"FunctionDefinition","parameters":{"id":15404,"nodeType":"ParameterList","parameters":[],"src":"28185:2:50"},"returnParameters":{"id":15407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15406,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15411,"src":"28208:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15405,"name":"uint256","nodeType":"ElementaryTypeName","src":"28208:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28207:9:50"},"scope":15421,"src":"28162:91:50","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":15419,"nodeType":"Block","src":"28442:45:50","statements":[{"expression":{"id":15417,"name":"_collectedProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"28459:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15416,"id":15418,"nodeType":"Return","src":"28452:28:50"}]},"documentation":{"id":15412,"nodeType":"StructuredDocumentation","src":"28259:114:50","text":" @dev Gets collected protocol fee by token address.\n @return uint256 Collected fee amount."},"functionSelector":"b42156bd","id":15420,"implemented":true,"kind":"function","modifiers":[],"name":"getCollectedProtocolFee","nameLocation":"28387:23:50","nodeType":"FunctionDefinition","parameters":{"id":15413,"nodeType":"ParameterList","parameters":[],"src":"28410:2:50"},"returnParameters":{"id":15416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15420,"src":"28433:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15414,"name":"uint256","nodeType":"ElementaryTypeName","src":"28433:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28432:9:50"},"scope":15421,"src":"28378:109:50","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":15422,"src":"1014:27475:50","usedErrors":[530,535,711,714,975,980,3422,3435,4775,6379,6770,13457,13461,13465,13469,13475,13477,13479,13483,13485,13487,13493,13499,13507,13513,13519,13525,13527,13529,13535,13541,13547,13549,13551,13553,13555,13561,13565,16230,17818,18135,18139,18143,18149],"usedEvents":[394,541,719,3238,13572,13578,13583,13619]}],"src":"32:28458:50"},"id":50},"contracts/core/Settings.sol":{"ast":{"absolutePath":"contracts/core/Settings.sol","exportedSymbols":{"AccessControlUpgradeable":[362],"ISettings":[17536],"Settings":[15971],"SettingsConstants":[17796],"TacInitializable":[16247],"UUPSUpgradeable":[1130]},"id":15972,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":15423,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:51"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","id":15425,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15972,"sourceUnit":363,"src":"58:115:51","symbolAliases":[{"foreign":{"id":15424,"name":"AccessControlUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"67:24:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":15427,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15972,"sourceUnit":1131,"src":"174:102:51","symbolAliases":[{"foreign":{"id":15426,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1130,"src":"183:15:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ISettings.sol","file":"../interfaces/ISettings.sol","id":15429,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15972,"sourceUnit":17537,"src":"278:56:51","symbolAliases":[{"foreign":{"id":15428,"name":"ISettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17536,"src":"287:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/libs/SettingsConstants.sol","file":"../libs/SettingsConstants.sol","id":15431,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15972,"sourceUnit":17797,"src":"335:66:51","symbolAliases":[{"foreign":{"id":15430,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"344:17:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/TacInitializable.sol","file":"./TacInitializable.sol","id":15433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15972,"sourceUnit":16248,"src":"402:58:51","symbolAliases":[{"foreign":{"id":15432,"name":"TacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16247,"src":"411:16:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15435,"name":"TacInitializable","nameLocations":["573:16:51"],"nodeType":"IdentifierPath","referencedDeclaration":16247,"src":"573:16:51"},"id":15436,"nodeType":"InheritanceSpecifier","src":"573:16:51"},{"baseName":{"id":15437,"name":"UUPSUpgradeable","nameLocations":["591:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":1130,"src":"591:15:51"},"id":15438,"nodeType":"InheritanceSpecifier","src":"591:15:51"},{"baseName":{"id":15439,"name":"AccessControlUpgradeable","nameLocations":["608:24:51"],"nodeType":"IdentifierPath","referencedDeclaration":362,"src":"608:24:51"},"id":15440,"nodeType":"InheritanceSpecifier","src":"608:24:51"},{"baseName":{"id":15441,"name":"ISettings","nameLocations":["634:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":17536,"src":"634:9:51"},"id":15442,"nodeType":"InheritanceSpecifier","src":"634:9:51"}],"canonicalName":"Settings","contractDependencies":[],"contractKind":"contract","documentation":{"id":15434,"nodeType":"StructuredDocumentation","src":"462:89:51","text":" @title Settings\n @dev A contract for storing Cross-Chain Layer configuration"},"fullyImplemented":true,"id":15971,"linearizedBaseContracts":[15971,17536,362,2913,8493,2996,2873,1130,3265,16247,17543,948],"name":"Settings","nameLocation":"561:8:51","nodeType":"ContractDefinition","nodes":[{"errorSelector":"a64dc92a","id":15446,"name":"InvalidKey","nameLocation":"671:10:51","nodeType":"ErrorDefinition","parameters":{"id":15445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15444,"mutability":"mutable","name":"key","nameLocation":"690:3:51","nodeType":"VariableDeclaration","scope":15446,"src":"682:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"682:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"681:13:51"},"src":"665:30:51"},{"errorSelector":"ac62122e","id":15450,"name":"InvalidUintValue","nameLocation":"706:16:51","nodeType":"ErrorDefinition","parameters":{"id":15449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15448,"mutability":"mutable","name":"key","nameLocation":"731:3:51","nodeType":"VariableDeclaration","scope":15450,"src":"723:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"723:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"722:13:51"},"src":"700:36:51"},{"errorSelector":"83cf4a2b","id":15454,"name":"ZeroAddress","nameLocation":"747:11:51","nodeType":"ErrorDefinition","parameters":{"id":15453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15452,"mutability":"mutable","name":"key","nameLocation":"767:3:51","nodeType":"VariableDeclaration","scope":15454,"src":"759:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"759:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"758:13:51"},"src":"741:31:51"},{"errorSelector":"6ac5c118","id":15458,"name":"ChangingAddressForbidden","nameLocation":"783:24:51","nodeType":"ErrorDefinition","parameters":{"id":15457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15456,"mutability":"mutable","name":"key","nameLocation":"816:3:51","nodeType":"VariableDeclaration","scope":15458,"src":"808:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"808:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"807:13:51"},"src":"777:44:51"},{"anonymous":false,"eventSelector":"4ba0c5e9e7ef76a575aefb94c63d55409d30f47245408e1fc4ee7456d02f55a1","id":15464,"name":"UintSettingsUpdated","nameLocation":"847:19:51","nodeType":"EventDefinition","parameters":{"id":15463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15460,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"875:3:51","nodeType":"VariableDeclaration","scope":15464,"src":"867:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"867:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15462,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"885:5:51","nodeType":"VariableDeclaration","scope":15464,"src":"880:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15461,"name":"uint","nodeType":"ElementaryTypeName","src":"880:4:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:25:51"},"src":"841:51:51"},{"anonymous":false,"eventSelector":"10da42d30fd2cddbc1c36714c702ed51e28e61c7dd9b36ccfbb6edd6972c2e75","id":15470,"name":"AddressSettingsUpdated","nameLocation":"903:22:51","nodeType":"EventDefinition","parameters":{"id":15469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15466,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"934:3:51","nodeType":"VariableDeclaration","scope":15470,"src":"926:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"926:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15468,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"947:5:51","nodeType":"VariableDeclaration","scope":15470,"src":"939:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15467,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"925:28:51"},"src":"897:57:51"},{"anonymous":false,"eventSelector":"74df541ce2d83ef86d1d21dbafc00053b19028f1780c7ac71f4f0d60c0d60237","id":15476,"name":"BoolSettingsUpdated","nameLocation":"965:19:51","nodeType":"EventDefinition","parameters":{"id":15475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15472,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"993:3:51","nodeType":"VariableDeclaration","scope":15476,"src":"985:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"985:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15474,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1003:5:51","nodeType":"VariableDeclaration","scope":15476,"src":"998:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15473,"name":"bool","nodeType":"ElementaryTypeName","src":"998:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"984:25:51"},"src":"959:51:51"},{"anonymous":false,"eventSelector":"00653e88a963cfbf443e7e07366d26e53c7d4eb4b620a8a9a3cd59490b153e4a","id":15481,"name":"TrustedEVMExecutorsUpdated","nameLocation":"1021:26:51","nodeType":"EventDefinition","parameters":{"id":15480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15479,"indexed":true,"mutability":"mutable","name":"executors","nameLocation":"1066:9:51","nodeType":"VariableDeclaration","scope":15481,"src":"1048:27:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15477,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15478,"nodeType":"ArrayTypeName","src":"1048:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1047:29:51"},"src":"1015:62:51"},{"anonymous":false,"eventSelector":"df0903e67c3a4fc263ca7520a3911c684b4d7004cb5f4651a1e6fb660d414e9d","id":15486,"name":"TrustedTVMExecutorsUpdated","nameLocation":"1088:26:51","nodeType":"EventDefinition","parameters":{"id":15485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15484,"indexed":true,"mutability":"mutable","name":"executors","nameLocation":"1132:9:51","nodeType":"VariableDeclaration","scope":15486,"src":"1115:26:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":15482,"name":"string","nodeType":"ElementaryTypeName","src":"1115:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":15483,"nodeType":"ArrayTypeName","src":"1115:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"1114:28:51"},"src":"1082:61:51"},{"constant":true,"functionSelector":"2a0acc6a","id":15491,"mutability":"constant","name":"ADMIN","nameLocation":"1190:5:51","nodeType":"VariableDeclaration","scope":15971,"src":"1166:50:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1166:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"41444d494e","id":15489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1208:7:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42","typeString":"literal_string \"ADMIN\""},"value":"ADMIN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42","typeString":"literal_string \"ADMIN\""}],"id":15488,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1198:9:51","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1198:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"id":15495,"mutability":"mutable","name":"_uintSettings","nameLocation":"1295:13:51","nodeType":"VariableDeclaration","scope":15971,"src":"1260:48:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint64_$","typeString":"mapping(bytes32 => uint64)"},"typeName":{"id":15494,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1268:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1260:26:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint64_$","typeString":"mapping(bytes32 => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15493,"name":"uint64","nodeType":"ElementaryTypeName","src":"1279:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},"visibility":"private"},{"constant":false,"id":15499,"mutability":"mutable","name":"_addressSettings","nameLocation":"1350:16:51","nodeType":"VariableDeclaration","scope":15971,"src":"1314:52:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":15498,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1322:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1314:27:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15497,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":15503,"mutability":"mutable","name":"_boolSettings","nameLocation":"1405:13:51","nodeType":"VariableDeclaration","scope":15971,"src":"1372:46:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":15502,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1380:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1372:24:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15501,"name":"bool","nodeType":"ElementaryTypeName","src":"1391:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"constant":false,"id":15507,"mutability":"mutable","name":"_stringSettings","nameLocation":"1459:15:51","nodeType":"VariableDeclaration","scope":15971,"src":"1424:50:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_string_storage_$","typeString":"mapping(bytes32 => string)"},"typeName":{"id":15506,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1432:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1424:26:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_string_storage_$","typeString":"mapping(bytes32 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15505,"name":"string","nodeType":"ElementaryTypeName","src":"1443:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"constant":false,"id":15510,"mutability":"mutable","name":"_trustedEVMExecutors","nameLocation":"1498:20:51","nodeType":"VariableDeclaration","scope":15971,"src":"1480:38:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":15508,"name":"address","nodeType":"ElementaryTypeName","src":"1480:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15509,"nodeType":"ArrayTypeName","src":"1480:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"constant":false,"id":15513,"mutability":"mutable","name":"_trustedTVMExecutors","nameLocation":"1541:20:51","nodeType":"VariableDeclaration","scope":15971,"src":"1524:37:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string[]"},"typeName":{"baseType":{"id":15511,"name":"string","nodeType":"ElementaryTypeName","src":"1524:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":15512,"nodeType":"ArrayTypeName","src":"1524:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"private"},{"body":{"id":15537,"nodeType":"Block","src":"1767:152:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15521,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"1777:22:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1777:24:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15523,"nodeType":"ExpressionStatement","src":"1777:24:51"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15524,"name":"__AccessControl_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"1811:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1811:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15526,"nodeType":"ExpressionStatement","src":"1811:22:51"},{"expression":{"arguments":[{"id":15528,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"1858:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15529,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"1865:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15527,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"1844:13:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":15530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1844:27:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15531,"nodeType":"ExpressionStatement","src":"1844:27:51"},{"expression":{"arguments":[{"id":15533,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"1892:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15534,"name":"adminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15516,"src":"1899:12:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":15532,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"1881:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":15535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1881:31:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15536,"nodeType":"ExpressionStatement","src":"1881:31:51"}]},"documentation":{"id":15514,"nodeType":"StructuredDocumentation","src":"1568:133:51","text":" @dev Constructor function to initialize the contract with initial state.\n @param adminAddress Admin address."},"functionSelector":"c4d66de8","id":15538,"implemented":true,"kind":"function","modifiers":[{"id":15519,"kind":"modifierInvocation","modifierName":{"id":15518,"name":"initializer","nameLocations":["1755:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"1755:11:51"},"nodeType":"ModifierInvocation","src":"1755:11:51"}],"name":"initialize","nameLocation":"1715:10:51","nodeType":"FunctionDefinition","parameters":{"id":15517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15516,"mutability":"mutable","name":"adminAddress","nameLocation":"1734:12:51","nodeType":"VariableDeclaration","scope":15538,"src":"1726:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15515,"name":"address","nodeType":"ElementaryTypeName","src":"1726:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1725:22:51"},"returnParameters":{"id":15520,"nodeType":"ParameterList","parameters":[],"src":"1767:0:51"},"scope":15971,"src":"1706:213:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1084],"body":{"id":15548,"nodeType":"Block","src":"2046:2:51","statements":[]},"documentation":{"id":15539,"nodeType":"StructuredDocumentation","src":"1925:46:51","text":" @dev Upgrades the contract."},"id":15549,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15545,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"2039:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15546,"kind":"modifierInvocation","modifierName":{"id":15544,"name":"onlyRole","nameLocations":["2030:8:51"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"2030:8:51"},"nodeType":"ModifierInvocation","src":"2030:15:51"}],"name":"_authorizeUpgrade","nameLocation":"1985:17:51","nodeType":"FunctionDefinition","overrides":{"id":15543,"nodeType":"OverrideSpecifier","overrides":[],"src":"2021:8:51"},"parameters":{"id":15542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15549,"src":"2003:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15540,"name":"address","nodeType":"ElementaryTypeName","src":"2003:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2002:9:51"},"returnParameters":{"id":15547,"nodeType":"ParameterList","parameters":[],"src":"2046:0:51"},"scope":15971,"src":"1976:72:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":15640,"nodeType":"Block","src":"2146:1078:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15556,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"2161:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15557,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"2168:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2186:30:51","memberName":"CONSENSUS_THRESHOLD_GROUPS_KEY","nodeType":"MemberAccess","referencedDeclaration":17740,"src":"2168:48:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2161:55:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15575,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"2372:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15576,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"2379:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2397:32:51","memberName":"CONSENSUS_THRESHOLD_IN_GROUP_KEY","nodeType":"MemberAccess","referencedDeclaration":17745,"src":"2379:50:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2372:57:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15594,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"2585:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15595,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"2592:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2610:15:51","memberName":"EPOCH_DELAY_KEY","nodeType":"MemberAccess","referencedDeclaration":17750,"src":"2592:33:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2585:40:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15608,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"2761:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15609,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"2768:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2786:17:51","memberName":"TREE_DURATION_KEY","nodeType":"MemberAccess","referencedDeclaration":17755,"src":"2768:35:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2761:42:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15613,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"2859:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15614,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"2866:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2884:21:51","memberName":"VALIDITY_DURATION_KEY","nodeType":"MemberAccess","referencedDeclaration":17760,"src":"2866:39:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2859:46:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15618,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"2961:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15619,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"2968:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2986:22:51","memberName":"MAX_EPOCH_DURATION_KEY","nodeType":"MemberAccess","referencedDeclaration":17765,"src":"2968:40:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2961:47:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15623,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"3064:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15624,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"3071:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3089:30:51","memberName":"ASSET_DEPLOY_FINALIZE_TIME_KEY","nodeType":"MemberAccess","referencedDeclaration":17770,"src":"3071:48:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3064:55:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15632,"nodeType":"Block","src":"3171:47:51","statements":[{"errorCall":{"arguments":[{"id":15629,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"3203:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15628,"name":"InvalidKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15446,"src":"3192:10:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":15630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3192:15:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15631,"nodeType":"RevertStatement","src":"3185:22:51"}]},"id":15633,"nodeType":"IfStatement","src":"3060:158:51","trueBody":{"id":15627,"nodeType":"Block","src":"3121:44:51","statements":[]}},"id":15634,"nodeType":"IfStatement","src":"2957:261:51","trueBody":{"id":15622,"nodeType":"Block","src":"3010:44:51","statements":[]}},"id":15635,"nodeType":"IfStatement","src":"2855:363:51","trueBody":{"id":15617,"nodeType":"Block","src":"2907:44:51","statements":[]}},"id":15636,"nodeType":"IfStatement","src":"2757:461:51","trueBody":{"id":15612,"nodeType":"Block","src":"2805:44:51","statements":[]}},"id":15637,"nodeType":"IfStatement","src":"2581:637:51","trueBody":{"id":15607,"nodeType":"Block","src":"2627:124:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15598,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15553,"src":"2667:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"333030","id":15599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2675:3:51","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"2667:11:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15606,"nodeType":"IfStatement","src":"2663:78:51","trueBody":{"id":15605,"nodeType":"Block","src":"2680:61:51","statements":[{"errorCall":{"arguments":[{"id":15602,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"2722:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15601,"name":"InvalidUintValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"2705:16:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":15603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2705:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15604,"nodeType":"RevertStatement","src":"2698:28:51"}]}}]}},"id":15638,"nodeType":"IfStatement","src":"2368:850:51","trueBody":{"id":15593,"nodeType":"Block","src":"2431:144:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15579,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15553,"src":"2449:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2458:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2449:10:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15582,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15553,"src":"2463:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":15583,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"2471:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2489:13:51","memberName":"RATE_DECIMALS","nodeType":"MemberAccess","referencedDeclaration":17735,"src":"2471:31:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2463:39:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2449:53:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15592,"nodeType":"IfStatement","src":"2445:120:51","trueBody":{"id":15591,"nodeType":"Block","src":"2504:61:51","statements":[{"errorCall":{"arguments":[{"id":15588,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"2546:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15587,"name":"InvalidUintValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"2529:16:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":15589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2529:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15590,"nodeType":"RevertStatement","src":"2522:28:51"}]}}]}},"id":15639,"nodeType":"IfStatement","src":"2157:1061:51","trueBody":{"id":15574,"nodeType":"Block","src":"2218:144:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15560,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15553,"src":"2236:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2245:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2236:10:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15563,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15553,"src":"2250:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":15564,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"2258:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2276:13:51","memberName":"RATE_DECIMALS","nodeType":"MemberAccess","referencedDeclaration":17735,"src":"2258:31:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2250:39:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2236:53:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15573,"nodeType":"IfStatement","src":"2232:120:51","trueBody":{"id":15572,"nodeType":"Block","src":"2291:61:51","statements":[{"errorCall":{"arguments":[{"id":15569,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"2333:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15568,"name":"InvalidUintValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"2316:16:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":15570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2316:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15571,"nodeType":"RevertStatement","src":"2309:28:51"}]}}]}}]},"id":15641,"implemented":true,"kind":"function","modifiers":[],"name":"_checkUintSetting","nameLocation":"2089:17:51","nodeType":"FunctionDefinition","parameters":{"id":15554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15551,"mutability":"mutable","name":"key","nameLocation":"2115:3:51","nodeType":"VariableDeclaration","scope":15641,"src":"2107:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2107:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15553,"mutability":"mutable","name":"value","nameLocation":"2125:5:51","nodeType":"VariableDeclaration","scope":15641,"src":"2120:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15552,"name":"uint","nodeType":"ElementaryTypeName","src":"2120:4:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2106:25:51"},"returnParameters":{"id":15555,"nodeType":"ParameterList","parameters":[],"src":"2146:0:51"},"scope":15971,"src":"2080:1144:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"baseFunctions":[17514],"body":{"id":15659,"nodeType":"Block","src":"3440:121:51","statements":[{"expression":{"id":15653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15651,"name":"_trustedEVMExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15510,"src":"3450:20:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15652,"name":"trustedEVMExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15645,"src":"3473:19:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"3450:42:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":15654,"nodeType":"ExpressionStatement","src":"3450:42:51"},{"eventCall":{"arguments":[{"id":15656,"name":"trustedEVMExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15645,"src":"3534:19:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":15655,"name":"TrustedEVMExecutorsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15481,"src":"3507:26:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":15657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3507:47:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15658,"nodeType":"EmitStatement","src":"3502:52:51"}]},"documentation":{"id":15642,"nodeType":"StructuredDocumentation","src":"3230:112:51","text":" @dev Update trustedEVMExecutors setting.\n @param trustedEVMExecutors Trusted executors."},"functionSelector":"b896a181","id":15660,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15648,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"3433:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15649,"kind":"modifierInvocation","modifierName":{"id":15647,"name":"onlyRole","nameLocations":["3424:8:51"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"3424:8:51"},"nodeType":"ModifierInvocation","src":"3424:15:51"}],"name":"setTrustedEVMExecutors","nameLocation":"3356:22:51","nodeType":"FunctionDefinition","parameters":{"id":15646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15645,"mutability":"mutable","name":"trustedEVMExecutors","nameLocation":"3396:19:51","nodeType":"VariableDeclaration","scope":15660,"src":"3379:36:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15643,"name":"address","nodeType":"ElementaryTypeName","src":"3379:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15644,"nodeType":"ArrayTypeName","src":"3379:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3378:38:51"},"returnParameters":{"id":15650,"nodeType":"ParameterList","parameters":[],"src":"3440:0:51"},"scope":15971,"src":"3347:214:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17521],"body":{"id":15669,"nodeType":"Block","src":"3693:44:51","statements":[{"expression":{"id":15667,"name":"_trustedEVMExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15510,"src":"3710:20:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":15666,"id":15668,"nodeType":"Return","src":"3703:27:51"}]},"documentation":{"id":15661,"nodeType":"StructuredDocumentation","src":"3567:48:51","text":" @dev Get trustedEVMExecutors."},"functionSelector":"c8029da8","id":15670,"implemented":true,"kind":"function","modifiers":[],"name":"getTrustedEVMExecutors","nameLocation":"3629:22:51","nodeType":"FunctionDefinition","parameters":{"id":15662,"nodeType":"ParameterList","parameters":[],"src":"3651:2:51"},"returnParameters":{"id":15666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15670,"src":"3675:16:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15663,"name":"address","nodeType":"ElementaryTypeName","src":"3675:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15664,"nodeType":"ArrayTypeName","src":"3675:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3674:18:51"},"scope":15971,"src":"3620:117:51","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[17528],"body":{"id":15688,"nodeType":"Block","src":"3952:121:51","statements":[{"expression":{"id":15682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15680,"name":"_trustedTVMExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15513,"src":"3962:20:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15681,"name":"trustedTVMExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15674,"src":"3985:19:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"3962:42:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":15683,"nodeType":"ExpressionStatement","src":"3962:42:51"},{"eventCall":{"arguments":[{"id":15685,"name":"trustedTVMExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15674,"src":"4046:19:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"id":15684,"name":"TrustedTVMExecutorsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15486,"src":"4019:26:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory[] memory)"}},"id":15686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4019:47:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15687,"nodeType":"EmitStatement","src":"4014:52:51"}]},"documentation":{"id":15671,"nodeType":"StructuredDocumentation","src":"3743:112:51","text":" @dev Update trustedTVMExecutors setting.\n @param trustedTVMExecutors Trusted executors."},"functionSelector":"7866077b","id":15689,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15677,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"3945:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15678,"kind":"modifierInvocation","modifierName":{"id":15676,"name":"onlyRole","nameLocations":["3936:8:51"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"3936:8:51"},"nodeType":"ModifierInvocation","src":"3936:15:51"}],"name":"setTrustedTVMExecutors","nameLocation":"3869:22:51","nodeType":"FunctionDefinition","parameters":{"id":15675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15674,"mutability":"mutable","name":"trustedTVMExecutors","nameLocation":"3908:19:51","nodeType":"VariableDeclaration","scope":15689,"src":"3892:35:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":15672,"name":"string","nodeType":"ElementaryTypeName","src":"3892:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":15673,"nodeType":"ArrayTypeName","src":"3892:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"3891:37:51"},"returnParameters":{"id":15679,"nodeType":"ParameterList","parameters":[],"src":"3952:0:51"},"scope":15971,"src":"3860:213:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17535],"body":{"id":15698,"nodeType":"Block","src":"4204:44:51","statements":[{"expression":{"id":15696,"name":"_trustedTVMExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15513,"src":"4221:20:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"functionReturnParameters":15695,"id":15697,"nodeType":"Return","src":"4214:27:51"}]},"documentation":{"id":15690,"nodeType":"StructuredDocumentation","src":"4079:48:51","text":" @dev Get trustedTVMExecutors."},"functionSelector":"c7f7d04a","id":15699,"implemented":true,"kind":"function","modifiers":[],"name":"getTrustedTVMExecutors","nameLocation":"4141:22:51","nodeType":"FunctionDefinition","parameters":{"id":15691,"nodeType":"ParameterList","parameters":[],"src":"4163:2:51"},"returnParameters":{"id":15695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15699,"src":"4187:15:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":15692,"name":"string","nodeType":"ElementaryTypeName","src":"4187:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":15693,"nodeType":"ArrayTypeName","src":"4187:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"4186:17:51"},"scope":15971,"src":"4132:116:51","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[17467],"body":{"id":15725,"nodeType":"Block","src":"4451:117:51","statements":[{"expression":{"arguments":[{"id":15711,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15702,"src":"4479:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15712,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15704,"src":"4484:5:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":15710,"name":"_checkUintSetting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15641,"src":"4461:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) pure"}},"id":15713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4461:29:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15714,"nodeType":"ExpressionStatement","src":"4461:29:51"},{"expression":{"id":15719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15715,"name":"_uintSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15495,"src":"4500:13:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint64_$","typeString":"mapping(bytes32 => uint64)"}},"id":15717,"indexExpression":{"id":15716,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15702,"src":"4514:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4500:18:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15718,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15704,"src":"4521:5:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4500:26:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":15720,"nodeType":"ExpressionStatement","src":"4500:26:51"},{"eventCall":{"arguments":[{"id":15722,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15702,"src":"4557:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15721,"name":"SettingsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17459,"src":"4541:15:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4541:20:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15724,"nodeType":"EmitStatement","src":"4536:25:51"}]},"documentation":{"id":15700,"nodeType":"StructuredDocumentation","src":"4254:118:51","text":" @dev Update a uint64 setting.\n @param key The setting key.\n @param value The new value."},"functionSelector":"f165f4b4","id":15726,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15707,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"4444:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15708,"kind":"modifierInvocation","modifierName":{"id":15706,"name":"onlyRole","nameLocations":["4435:8:51"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"4435:8:51"},"nodeType":"ModifierInvocation","src":"4435:15:51"}],"name":"setUintSetting","nameLocation":"4386:14:51","nodeType":"FunctionDefinition","parameters":{"id":15705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15702,"mutability":"mutable","name":"key","nameLocation":"4409:3:51","nodeType":"VariableDeclaration","scope":15726,"src":"4401:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4401:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15704,"mutability":"mutable","name":"value","nameLocation":"4421:5:51","nodeType":"VariableDeclaration","scope":15726,"src":"4414:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15703,"name":"uint64","nodeType":"ElementaryTypeName","src":"4414:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4400:27:51"},"returnParameters":{"id":15709,"nodeType":"ParameterList","parameters":[],"src":"4451:0:51"},"scope":15971,"src":"4377:191:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17475],"body":{"id":15738,"nodeType":"Block","src":"4759:42:51","statements":[{"expression":{"baseExpression":{"id":15734,"name":"_uintSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15495,"src":"4776:13:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint64_$","typeString":"mapping(bytes32 => uint64)"}},"id":15736,"indexExpression":{"id":15735,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15729,"src":"4790:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4776:18:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":15733,"id":15737,"nodeType":"Return","src":"4769:25:51"}]},"documentation":{"id":15727,"nodeType":"StructuredDocumentation","src":"4574:114:51","text":" @dev Get a uint64 setting.\n @param key The setting key.\n @return The setting value."},"functionSelector":"1c63030a","id":15739,"implemented":true,"kind":"function","modifiers":[],"name":"getUintSetting","nameLocation":"4702:14:51","nodeType":"FunctionDefinition","parameters":{"id":15730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15729,"mutability":"mutable","name":"key","nameLocation":"4725:3:51","nodeType":"VariableDeclaration","scope":15739,"src":"4717:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4717:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4716:13:51"},"returnParameters":{"id":15733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15739,"src":"4751:6:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15731,"name":"uint64","nodeType":"ElementaryTypeName","src":"4751:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4750:8:51"},"scope":15971,"src":"4693:108:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":15758,"nodeType":"Block","src":"4869:122:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":15744,"name":"_addressSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15499,"src":"4883:16:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":15746,"indexExpression":{"id":15745,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15741,"src":"4900:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4883:21:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":15749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4916:1:51","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":15748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4908:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15747,"name":"address","nodeType":"ElementaryTypeName","src":"4908:7:51","typeDescriptions":{}}},"id":15750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4908:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4883:35:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15757,"nodeType":"IfStatement","src":"4879:106:51","trueBody":{"id":15756,"nodeType":"Block","src":"4920:65:51","statements":[{"errorCall":{"arguments":[{"id":15753,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15741,"src":"4970:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15752,"name":"ChangingAddressForbidden","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15458,"src":"4945:24:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":15754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4945:29:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15755,"nodeType":"RevertStatement","src":"4938:36:51"}]}}]},"id":15759,"implemented":true,"kind":"function","modifiers":[],"name":"_forbiddenChangingAddress","nameLocation":"4816:25:51","nodeType":"FunctionDefinition","parameters":{"id":15742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15741,"mutability":"mutable","name":"key","nameLocation":"4850:3:51","nodeType":"VariableDeclaration","scope":15759,"src":"4842:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15740,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4842:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4841:13:51"},"returnParameters":{"id":15743,"nodeType":"ParameterList","parameters":[],"src":"4869:0:51"},"scope":15971,"src":"4807:184:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15813,"nodeType":"Block","src":"5069:481:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15763,"src":"5083:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5100:1:51","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":15768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5092:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15767,"name":"address","nodeType":"ElementaryTypeName","src":"5092:7:51","typeDescriptions":{}}},"id":15770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5092:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5083:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15777,"nodeType":"IfStatement","src":"5079:73:51","trueBody":{"id":15776,"nodeType":"Block","src":"5104:48:51","statements":[{"errorCall":{"arguments":[{"id":15773,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15761,"src":"5137:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15772,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15454,"src":"5125:11:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":15774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5125:16:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15775,"nodeType":"RevertStatement","src":"5118:23:51"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15778,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15761,"src":"5166:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15779,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"5173:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5191:21:51","memberName":"CONSENSUS_ADDRESS_KEY","nodeType":"MemberAccess","referencedDeclaration":17785,"src":"5173:39:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5166:46:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15787,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15761,"src":"5279:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15788,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"5286:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5304:15:51","memberName":"CCL_ADDRESS_KEY","nodeType":"MemberAccess","referencedDeclaration":17775,"src":"5286:33:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5279:40:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15796,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15761,"src":"5386:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15797,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"5393:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5411:23:51","memberName":"TOKEN_UTILS_ADDRESS_KEY","nodeType":"MemberAccess","referencedDeclaration":17780,"src":"5393:41:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5386:48:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15809,"nodeType":"Block","src":"5497:47:51","statements":[{"errorCall":{"arguments":[{"id":15806,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15761,"src":"5529:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15805,"name":"InvalidKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15446,"src":"5518:10:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":15807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5518:15:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15808,"nodeType":"RevertStatement","src":"5511:22:51"}]},"id":15810,"nodeType":"IfStatement","src":"5382:162:51","trueBody":{"id":15804,"nodeType":"Block","src":"5436:55:51","statements":[{"expression":{"arguments":[{"id":15801,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15761,"src":"5476:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15800,"name":"_forbiddenChangingAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15759,"src":"5450:25:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":15802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5450:30:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15803,"nodeType":"ExpressionStatement","src":"5450:30:51"}]}},"id":15811,"nodeType":"IfStatement","src":"5275:269:51","trueBody":{"id":15795,"nodeType":"Block","src":"5321:55:51","statements":[{"expression":{"arguments":[{"id":15792,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15761,"src":"5361:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15791,"name":"_forbiddenChangingAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15759,"src":"5335:25:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":15793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5335:30:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15794,"nodeType":"ExpressionStatement","src":"5335:30:51"}]}},"id":15812,"nodeType":"IfStatement","src":"5162:382:51","trueBody":{"id":15786,"nodeType":"Block","src":"5214:55:51","statements":[{"expression":{"arguments":[{"id":15783,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15761,"src":"5254:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15782,"name":"_forbiddenChangingAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15759,"src":"5228:25:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":15784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5228:30:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15785,"nodeType":"ExpressionStatement","src":"5228:30:51"}]}}]},"id":15814,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAddressSetting","nameLocation":"5006:20:51","nodeType":"FunctionDefinition","parameters":{"id":15764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15761,"mutability":"mutable","name":"key","nameLocation":"5035:3:51","nodeType":"VariableDeclaration","scope":15814,"src":"5027:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5027:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15763,"mutability":"mutable","name":"value","nameLocation":"5048:5:51","nodeType":"VariableDeclaration","scope":15814,"src":"5040:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15762,"name":"address","nodeType":"ElementaryTypeName","src":"5040:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5026:28:51"},"returnParameters":{"id":15765,"nodeType":"ParameterList","parameters":[],"src":"5069:0:51"},"scope":15971,"src":"4997:553:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[17483],"body":{"id":15840,"nodeType":"Block","src":"5767:123:51","statements":[{"expression":{"arguments":[{"id":15826,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15817,"src":"5798:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15819,"src":"5803:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":15825,"name":"_checkAddressSetting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15814,"src":"5777:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":15828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5777:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15829,"nodeType":"ExpressionStatement","src":"5777:32:51"},{"expression":{"id":15834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15830,"name":"_addressSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15499,"src":"5819:16:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":15832,"indexExpression":{"id":15831,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15817,"src":"5836:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5819:21:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15833,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15819,"src":"5843:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5819:29:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15835,"nodeType":"ExpressionStatement","src":"5819:29:51"},{"eventCall":{"arguments":[{"id":15837,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15817,"src":"5879:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15836,"name":"SettingsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17459,"src":"5863:15:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5863:20:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15839,"nodeType":"EmitStatement","src":"5858:25:51"}]},"documentation":{"id":15815,"nodeType":"StructuredDocumentation","src":"5556:128:51","text":" @dev Update an address setting.\n @param key The setting key.\n @param value The new address value."},"functionSelector":"3fe8ef0f","id":15841,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15822,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"5760:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15823,"kind":"modifierInvocation","modifierName":{"id":15821,"name":"onlyRole","nameLocations":["5751:8:51"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"5751:8:51"},"nodeType":"ModifierInvocation","src":"5751:15:51"}],"name":"setAddressSetting","nameLocation":"5698:17:51","nodeType":"FunctionDefinition","parameters":{"id":15820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15817,"mutability":"mutable","name":"key","nameLocation":"5724:3:51","nodeType":"VariableDeclaration","scope":15841,"src":"5716:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5716:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15819,"mutability":"mutable","name":"value","nameLocation":"5737:5:51","nodeType":"VariableDeclaration","scope":15841,"src":"5729:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15818,"name":"address","nodeType":"ElementaryTypeName","src":"5729:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5715:28:51"},"returnParameters":{"id":15824,"nodeType":"ParameterList","parameters":[],"src":"5767:0:51"},"scope":15971,"src":"5689:201:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17491],"body":{"id":15853,"nodeType":"Block","src":"6087:45:51","statements":[{"expression":{"baseExpression":{"id":15849,"name":"_addressSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15499,"src":"6104:16:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":15851,"indexExpression":{"id":15850,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15844,"src":"6121:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6104:21:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":15848,"id":15852,"nodeType":"Return","src":"6097:28:51"}]},"documentation":{"id":15842,"nodeType":"StructuredDocumentation","src":"5896:116:51","text":" @dev Get an address setting.\n @param key The setting key.\n @return The setting value."},"functionSelector":"ad39965d","id":15854,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSetting","nameLocation":"6026:17:51","nodeType":"FunctionDefinition","parameters":{"id":15845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15844,"mutability":"mutable","name":"key","nameLocation":"6052:3:51","nodeType":"VariableDeclaration","scope":15854,"src":"6044:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6044:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6043:13:51"},"returnParameters":{"id":15848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15854,"src":"6078:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15846,"name":"address","nodeType":"ElementaryTypeName","src":"6078:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6077:9:51"},"scope":15971,"src":"6017:115:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":15862,"nodeType":"Block","src":"6194:23:51","statements":[{"functionReturnParameters":15860,"id":15861,"nodeType":"Return","src":"6204:7:51"}]},"id":15863,"implemented":true,"kind":"function","modifiers":[],"name":"_checkBoolSetting","nameLocation":"6147:17:51","nodeType":"FunctionDefinition","parameters":{"id":15859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15863,"src":"6165:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6165:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15863,"src":"6174:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15857,"name":"bool","nodeType":"ElementaryTypeName","src":"6174:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6164:15:51"},"returnParameters":{"id":15860,"nodeType":"ParameterList","parameters":[],"src":"6194:0:51"},"scope":15971,"src":"6138:79:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"baseFunctions":[17499],"body":{"id":15889,"nodeType":"Block","src":"6421:117:51","statements":[{"expression":{"arguments":[{"id":15875,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15866,"src":"6449:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15876,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15868,"src":"6454:5:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15874,"name":"_checkBoolSetting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"6431:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool) pure"}},"id":15877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:29:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15878,"nodeType":"ExpressionStatement","src":"6431:29:51"},{"expression":{"id":15883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15879,"name":"_boolSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15503,"src":"6470:13:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15881,"indexExpression":{"id":15880,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15866,"src":"6484:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6470:18:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15882,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15868,"src":"6491:5:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6470:26:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15884,"nodeType":"ExpressionStatement","src":"6470:26:51"},{"eventCall":{"arguments":[{"id":15886,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15866,"src":"6527:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15885,"name":"SettingsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17459,"src":"6511:15:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6511:20:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15888,"nodeType":"EmitStatement","src":"6506:25:51"}]},"documentation":{"id":15864,"nodeType":"StructuredDocumentation","src":"6223:121:51","text":" @dev Update a bool setting.\n @param key The setting key.\n @param value The new bool value."},"functionSelector":"fd32b9fa","id":15890,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15871,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"6414:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15872,"kind":"modifierInvocation","modifierName":{"id":15870,"name":"onlyRole","nameLocations":["6405:8:51"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"6405:8:51"},"nodeType":"ModifierInvocation","src":"6405:15:51"}],"name":"setBoolSetting","nameLocation":"6358:14:51","nodeType":"FunctionDefinition","parameters":{"id":15869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15866,"mutability":"mutable","name":"key","nameLocation":"6381:3:51","nodeType":"VariableDeclaration","scope":15890,"src":"6373:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6373:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15868,"mutability":"mutable","name":"value","nameLocation":"6391:5:51","nodeType":"VariableDeclaration","scope":15890,"src":"6386:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15867,"name":"bool","nodeType":"ElementaryTypeName","src":"6386:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6372:25:51"},"returnParameters":{"id":15873,"nodeType":"ParameterList","parameters":[],"src":"6421:0:51"},"scope":15971,"src":"6349:189:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17507],"body":{"id":15902,"nodeType":"Block","src":"6725:42:51","statements":[{"expression":{"baseExpression":{"id":15898,"name":"_boolSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15503,"src":"6742:13:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15900,"indexExpression":{"id":15899,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15893,"src":"6756:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6742:18:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15897,"id":15901,"nodeType":"Return","src":"6735:25:51"}]},"documentation":{"id":15891,"nodeType":"StructuredDocumentation","src":"6544:112:51","text":" @dev Get a bool setting.\n @param key The setting key.\n @return The setting value."},"functionSelector":"7c74627a","id":15903,"implemented":true,"kind":"function","modifiers":[],"name":"getBoolSetting","nameLocation":"6670:14:51","nodeType":"FunctionDefinition","parameters":{"id":15894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15893,"mutability":"mutable","name":"key","nameLocation":"6693:3:51","nodeType":"VariableDeclaration","scope":15903,"src":"6685:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6685:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6684:13:51"},"returnParameters":{"id":15897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15896,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15903,"src":"6719:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15895,"name":"bool","nodeType":"ElementaryTypeName","src":"6719:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6718:6:51"},"scope":15971,"src":"6661:106:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":15929,"nodeType":"Block","src":"6844:236:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15910,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15905,"src":"6858:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15911,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"6865:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6883:18:51","memberName":"NFT_PREFIX_URI_KEY","nodeType":"MemberAccess","referencedDeclaration":17790,"src":"6865:36:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6858:43:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15916,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15905,"src":"6944:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15917,"name":"SettingsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17796,"src":"6951:17:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SettingsConstants_$17796_$","typeString":"type(library SettingsConstants)"}},"id":15918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6969:19:51","memberName":"FT_PREFIX_IMAGE_KEY","nodeType":"MemberAccess","referencedDeclaration":17795,"src":"6951:37:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6944:44:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15926,"nodeType":"Block","src":"7027:47:51","statements":[{"errorCall":{"arguments":[{"id":15923,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15905,"src":"7059:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15922,"name":"InvalidKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15446,"src":"7048:10:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":15924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7048:15:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15925,"nodeType":"RevertStatement","src":"7041:22:51"}]},"id":15927,"nodeType":"IfStatement","src":"6940:134:51","trueBody":{"id":15921,"nodeType":"Block","src":"6990:31:51","statements":[{"functionReturnParameters":15909,"id":15920,"nodeType":"Return","src":"7004:7:51"}]}},"id":15928,"nodeType":"IfStatement","src":"6854:220:51","trueBody":{"id":15915,"nodeType":"Block","src":"6903:31:51","statements":[{"functionReturnParameters":15909,"id":15914,"nodeType":"Return","src":"6917:7:51"}]}}]},"id":15930,"implemented":true,"kind":"function","modifiers":[],"name":"_checkStringSetting","nameLocation":"6782:19:51","nodeType":"FunctionDefinition","parameters":{"id":15908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15905,"mutability":"mutable","name":"key","nameLocation":"6810:3:51","nodeType":"VariableDeclaration","scope":15930,"src":"6802:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6802:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15930,"src":"6815:13:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15906,"name":"string","nodeType":"ElementaryTypeName","src":"6815:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6801:28:51"},"returnParameters":{"id":15909,"nodeType":"ParameterList","parameters":[],"src":"6844:0:51"},"scope":15971,"src":"6773:307:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15956,"nodeType":"Block","src":"7299:121:51","statements":[{"expression":{"arguments":[{"id":15942,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15933,"src":"7329:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15943,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15935,"src":"7334:5:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":15941,"name":"_checkStringSetting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15930,"src":"7309:19:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory) pure"}},"id":15944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7309:31:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15945,"nodeType":"ExpressionStatement","src":"7309:31:51"},{"expression":{"id":15950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15946,"name":"_stringSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15507,"src":"7350:15:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_string_storage_$","typeString":"mapping(bytes32 => string storage ref)"}},"id":15948,"indexExpression":{"id":15947,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15933,"src":"7366:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7350:20:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15949,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15935,"src":"7373:5:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"7350:28:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":15951,"nodeType":"ExpressionStatement","src":"7350:28:51"},{"eventCall":{"arguments":[{"id":15953,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15933,"src":"7409:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15952,"name":"SettingsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17459,"src":"7393:15:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7393:20:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15955,"nodeType":"EmitStatement","src":"7388:25:51"}]},"documentation":{"id":15931,"nodeType":"StructuredDocumentation","src":"7086:125:51","text":" @dev Update a string setting.\n @param key The setting key.\n @param value The new string value."},"functionSelector":"81c04407","id":15957,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15938,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"7292:5:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15939,"kind":"modifierInvocation","modifierName":{"id":15937,"name":"onlyRole","nameLocations":["7283:8:51"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"7283:8:51"},"nodeType":"ModifierInvocation","src":"7283:15:51"}],"name":"setStringSetting","nameLocation":"7225:16:51","nodeType":"FunctionDefinition","parameters":{"id":15936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15933,"mutability":"mutable","name":"key","nameLocation":"7250:3:51","nodeType":"VariableDeclaration","scope":15957,"src":"7242:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7242:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15935,"mutability":"mutable","name":"value","nameLocation":"7269:5:51","nodeType":"VariableDeclaration","scope":15957,"src":"7255:19:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15934,"name":"string","nodeType":"ElementaryTypeName","src":"7255:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7241:34:51"},"returnParameters":{"id":15940,"nodeType":"ParameterList","parameters":[],"src":"7299:0:51"},"scope":15971,"src":"7216:204:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":15969,"nodeType":"Block","src":"7620:44:51","statements":[{"expression":{"baseExpression":{"id":15965,"name":"_stringSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15507,"src":"7637:15:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_string_storage_$","typeString":"mapping(bytes32 => string storage ref)"}},"id":15967,"indexExpression":{"id":15966,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15960,"src":"7653:3:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7637:20:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":15964,"id":15968,"nodeType":"Return","src":"7630:27:51"}]},"documentation":{"id":15958,"nodeType":"StructuredDocumentation","src":"7426:114:51","text":" @dev Get a string setting.\n @param key The setting key.\n @return The setting value."},"functionSelector":"c1c2c437","id":15970,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSetting","nameLocation":"7554:16:51","nodeType":"FunctionDefinition","parameters":{"id":15961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15960,"mutability":"mutable","name":"key","nameLocation":"7579:3:51","nodeType":"VariableDeclaration","scope":15970,"src":"7571:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7571:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7570:13:51"},"returnParameters":{"id":15964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15970,"src":"7605:13:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15962,"name":"string","nodeType":"ElementaryTypeName","src":"7605:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7604:15:51"},"scope":15971,"src":"7545:119:51","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":15972,"src":"552:7115:51","usedErrors":[711,714,975,980,2923,2926,3422,3435,6379,6770,15446,15450,15454,15458,16230],"usedEvents":[719,2935,2944,2953,3238,15464,15470,15476,15481,15486,17459]}],"src":"32:7636:51"},"id":51},"contracts/core/Structs.sol":{"ast":{"absolutePath":"contracts/core/Structs.sol","exportedSymbols":{"EpochInfo":[16098],"IStructsInterface":[16217],"InMessageV1":[16055],"NFTAmount":[16007],"NFTInfo":[15993],"OutMessageV1":[16084],"SimulationParams":[16125],"TVMFeeInfo":[16061],"TacHeaderV1":[16110],"TokenAmount":[15999],"TokenInfo":[15983]},"id":16218,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":15973,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:52"},{"canonicalName":"TokenInfo","documentation":{"id":15974,"nodeType":"StructuredDocumentation","src":"59:59:52","text":" @title TokenInfo\n @dev Extended TVM token info"},"id":15983,"members":[{"constant":false,"id":15976,"mutability":"mutable","name":"name","nameLocation":"149:4:52","nodeType":"VariableDeclaration","scope":15983,"src":"142:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":15975,"name":"string","nodeType":"ElementaryTypeName","src":"142:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15978,"mutability":"mutable","name":"symbol","nameLocation":"166:6:52","nodeType":"VariableDeclaration","scope":15983,"src":"159:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":15977,"name":"string","nodeType":"ElementaryTypeName","src":"159:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15980,"mutability":"mutable","name":"decimals","nameLocation":"184:8:52","nodeType":"VariableDeclaration","scope":15983,"src":"178:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":15979,"name":"uint8","nodeType":"ElementaryTypeName","src":"178:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":15982,"mutability":"mutable","name":"tvmAddress","nameLocation":"205:10:52","nodeType":"VariableDeclaration","scope":15983,"src":"198:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":15981,"name":"string","nodeType":"ElementaryTypeName","src":"198:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"TokenInfo","nameLocation":"126:9:52","nodeType":"StructDefinition","scope":16218,"src":"119:99:52","visibility":"public"},{"canonicalName":"NFTInfo","documentation":{"id":15984,"nodeType":"StructuredDocumentation","src":"220:62:52","text":" @title NFTInfo\n @dev Extended NFT collection info"},"id":15993,"members":[{"constant":false,"id":15986,"mutability":"mutable","name":"name","nameLocation":"311:4:52","nodeType":"VariableDeclaration","scope":15993,"src":"304:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":15985,"name":"string","nodeType":"ElementaryTypeName","src":"304:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15988,"mutability":"mutable","name":"symbol","nameLocation":"328:6:52","nodeType":"VariableDeclaration","scope":15993,"src":"321:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":15987,"name":"string","nodeType":"ElementaryTypeName","src":"321:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15990,"mutability":"mutable","name":"baseURI","nameLocation":"347:7:52","nodeType":"VariableDeclaration","scope":15993,"src":"340:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":15989,"name":"string","nodeType":"ElementaryTypeName","src":"340:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15992,"mutability":"mutable","name":"tvmAddress","nameLocation":"367:10:52","nodeType":"VariableDeclaration","scope":15993,"src":"360:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":15991,"name":"string","nodeType":"ElementaryTypeName","src":"360:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"NFTInfo","nameLocation":"290:7:52","nodeType":"StructDefinition","scope":16218,"src":"283:97:52","visibility":"public"},{"canonicalName":"TokenAmount","documentation":{"id":15994,"nodeType":"StructuredDocumentation","src":"382:63:52","text":" @title TokenAmount\n @dev Token address with amount"},"id":15999,"members":[{"constant":false,"id":15996,"mutability":"mutable","name":"evmAddress","nameLocation":"479:10:52","nodeType":"VariableDeclaration","scope":15999,"src":"471:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15995,"name":"address","nodeType":"ElementaryTypeName","src":"471:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15998,"mutability":"mutable","name":"amount","nameLocation":"503:6:52","nodeType":"VariableDeclaration","scope":15999,"src":"495:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15997,"name":"uint256","nodeType":"ElementaryTypeName","src":"495:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"TokenAmount","nameLocation":"453:11:52","nodeType":"StructDefinition","scope":16218,"src":"446:66:52","visibility":"public"},{"canonicalName":"NFTAmount","documentation":{"id":16000,"nodeType":"StructuredDocumentation","src":"514:145:52","text":" @title NFTAmount\n @dev NFT address with token id and amount\n compatible with ERC721 and ERC1155 both\n For ERC721, amount ignored"},"id":16007,"members":[{"constant":false,"id":16002,"mutability":"mutable","name":"evmAddress","nameLocation":"691:10:52","nodeType":"VariableDeclaration","scope":16007,"src":"683:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16001,"name":"address","nodeType":"ElementaryTypeName","src":"683:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16004,"mutability":"mutable","name":"tokenId","nameLocation":"715:7:52","nodeType":"VariableDeclaration","scope":16007,"src":"707:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16003,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16006,"mutability":"mutable","name":"amount","nameLocation":"736:6:52","nodeType":"VariableDeclaration","scope":16007,"src":"728:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16005,"name":"uint256","nodeType":"ElementaryTypeName","src":"728:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"NFTAmount","nameLocation":"667:9:52","nodeType":"StructDefinition","scope":16218,"src":"660:85:52","visibility":"public"},{"canonicalName":"InMessageV1","documentation":{"id":16008,"nodeType":"StructuredDocumentation","src":"748:55:52","text":" @title InMessage v1\n @dev TVM->EVM message"},"id":16055,"members":[{"constant":false,"id":16010,"mutability":"mutable","name":"shardsKey","nameLocation":"836:9:52","nodeType":"VariableDeclaration","scope":16055,"src":"829:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16009,"name":"uint64","nodeType":"ElementaryTypeName","src":"829:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16012,"mutability":"mutable","name":"gasLimit","nameLocation":"858:8:52","nodeType":"VariableDeclaration","scope":16055,"src":"851:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16011,"name":"uint64","nodeType":"ElementaryTypeName","src":"851:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16014,"mutability":"mutable","name":"operationId","nameLocation":"880:11:52","nodeType":"VariableDeclaration","scope":16055,"src":"872:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"872:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16016,"mutability":"mutable","name":"timestamp","nameLocation":"905:9:52","nodeType":"VariableDeclaration","scope":16055,"src":"897:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16015,"name":"uint256","nodeType":"ElementaryTypeName","src":"897:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16018,"mutability":"mutable","name":"target","nameLocation":"928:6:52","nodeType":"VariableDeclaration","scope":16055,"src":"920:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16017,"name":"address","nodeType":"ElementaryTypeName","src":"920:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16020,"mutability":"mutable","name":"methodName","nameLocation":"947:10:52","nodeType":"VariableDeclaration","scope":16055,"src":"940:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16019,"name":"string","nodeType":"ElementaryTypeName","src":"940:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16022,"mutability":"mutable","name":"arguments","nameLocation":"969:9:52","nodeType":"VariableDeclaration","scope":16055,"src":"963:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16021,"name":"bytes","nodeType":"ElementaryTypeName","src":"963:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16024,"mutability":"mutable","name":"caller","nameLocation":"991:6:52","nodeType":"VariableDeclaration","scope":16055,"src":"984:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16023,"name":"string","nodeType":"ElementaryTypeName","src":"984:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16027,"mutability":"mutable","name":"evmExecutorFee","nameLocation":"1015:14:52","nodeType":"VariableDeclaration","scope":16055,"src":"1003:26:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"},"typeName":{"id":16026,"nodeType":"UserDefinedTypeName","pathNode":{"id":16025,"name":"TokenAmount","nameLocations":["1003:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1003:11:52"},"referencedDeclaration":15999,"src":"1003:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"},{"constant":false,"id":16030,"mutability":"mutable","name":"evmValidExecutors","nameLocation":"1045:17:52","nodeType":"VariableDeclaration","scope":16055,"src":"1035:27:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":16028,"name":"address","nodeType":"ElementaryTypeName","src":"1035:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16029,"nodeType":"ArrayTypeName","src":"1035:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":16034,"mutability":"mutable","name":"mint","nameLocation":"1082:4:52","nodeType":"VariableDeclaration","scope":16055,"src":"1068:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":16032,"nodeType":"UserDefinedTypeName","pathNode":{"id":16031,"name":"TokenAmount","nameLocations":["1068:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1068:11:52"},"referencedDeclaration":15999,"src":"1068:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":16033,"nodeType":"ArrayTypeName","src":"1068:13:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":16038,"mutability":"mutable","name":"unlock","nameLocation":"1106:6:52","nodeType":"VariableDeclaration","scope":16055,"src":"1092:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":16036,"nodeType":"UserDefinedTypeName","pathNode":{"id":16035,"name":"TokenAmount","nameLocations":["1092:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1092:11:52"},"referencedDeclaration":15999,"src":"1092:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":16037,"nodeType":"ArrayTypeName","src":"1092:13:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":16042,"mutability":"mutable","name":"meta","nameLocation":"1130:4:52","nodeType":"VariableDeclaration","scope":16055,"src":"1118:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenInfo_$15983_storage_$dyn_storage_ptr","typeString":"struct TokenInfo[]"},"typeName":{"baseType":{"id":16040,"nodeType":"UserDefinedTypeName","pathNode":{"id":16039,"name":"TokenInfo","nameLocations":["1118:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":15983,"src":"1118:9:52"},"referencedDeclaration":15983,"src":"1118:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_storage_ptr","typeString":"struct TokenInfo"}},"id":16041,"nodeType":"ArrayTypeName","src":"1118:11:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenInfo_$15983_storage_$dyn_storage_ptr","typeString":"struct TokenInfo[]"}},"visibility":"internal"},{"constant":false,"id":16046,"mutability":"mutable","name":"mintNFT","nameLocation":"1152:7:52","nodeType":"VariableDeclaration","scope":16055,"src":"1140:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":16044,"nodeType":"UserDefinedTypeName","pathNode":{"id":16043,"name":"NFTAmount","nameLocations":["1140:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"1140:9:52"},"referencedDeclaration":16007,"src":"1140:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":16045,"nodeType":"ArrayTypeName","src":"1140:11:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"},{"constant":false,"id":16050,"mutability":"mutable","name":"unlockNFT","nameLocation":"1177:9:52","nodeType":"VariableDeclaration","scope":16055,"src":"1165:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":16048,"nodeType":"UserDefinedTypeName","pathNode":{"id":16047,"name":"NFTAmount","nameLocations":["1165:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"1165:9:52"},"referencedDeclaration":16007,"src":"1165:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":16049,"nodeType":"ArrayTypeName","src":"1165:11:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"},{"constant":false,"id":16054,"mutability":"mutable","name":"metaNFT","nameLocation":"1202:7:52","nodeType":"VariableDeclaration","scope":16055,"src":"1192:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTInfo_$15993_storage_$dyn_storage_ptr","typeString":"struct NFTInfo[]"},"typeName":{"baseType":{"id":16052,"nodeType":"UserDefinedTypeName","pathNode":{"id":16051,"name":"NFTInfo","nameLocations":["1192:7:52"],"nodeType":"IdentifierPath","referencedDeclaration":15993,"src":"1192:7:52"},"referencedDeclaration":15993,"src":"1192:7:52","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_storage_ptr","typeString":"struct NFTInfo"}},"id":16053,"nodeType":"ArrayTypeName","src":"1192:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTInfo_$15993_storage_$dyn_storage_ptr","typeString":"struct NFTInfo[]"}},"visibility":"internal"}],"name":"InMessageV1","nameLocation":"811:11:52","nodeType":"StructDefinition","scope":16218,"src":"804:408:52","visibility":"public"},{"canonicalName":"TVMFeeInfo","documentation":{"id":16056,"nodeType":"StructuredDocumentation","src":"1214:45:52","text":" @title TVMFeeInfo\n @dev Fee info"},"id":16061,"members":[{"constant":false,"id":16058,"mutability":"mutable","name":"protocolFee","nameLocation":"1292:11:52","nodeType":"VariableDeclaration","scope":16061,"src":"1284:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16057,"name":"uint256","nodeType":"ElementaryTypeName","src":"1284:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16060,"mutability":"mutable","name":"executorFee","nameLocation":"1317:11:52","nodeType":"VariableDeclaration","scope":16061,"src":"1309:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16059,"name":"uint256","nodeType":"ElementaryTypeName","src":"1309:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"TVMFeeInfo","nameLocation":"1267:10:52","nodeType":"StructDefinition","scope":16218,"src":"1260:71:52","visibility":"public"},{"canonicalName":"OutMessageV1","documentation":{"id":16062,"nodeType":"StructuredDocumentation","src":"1333:59:52","text":" @title OutMessage v1\n @dev EVM->TVM message v1"},"id":16084,"members":[{"constant":false,"id":16064,"mutability":"mutable","name":"shardsKey","nameLocation":"1426:9:52","nodeType":"VariableDeclaration","scope":16084,"src":"1419:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16063,"name":"uint64","nodeType":"ElementaryTypeName","src":"1419:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16066,"mutability":"mutable","name":"tvmTarget","nameLocation":"1448:9:52","nodeType":"VariableDeclaration","scope":16084,"src":"1441:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16065,"name":"string","nodeType":"ElementaryTypeName","src":"1441:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16068,"mutability":"mutable","name":"tvmPayload","nameLocation":"1470:10:52","nodeType":"VariableDeclaration","scope":16084,"src":"1463:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16067,"name":"string","nodeType":"ElementaryTypeName","src":"1463:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16070,"mutability":"mutable","name":"tvmProtocolFee","nameLocation":"1494:14:52","nodeType":"VariableDeclaration","scope":16084,"src":"1486:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16069,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16072,"mutability":"mutable","name":"tvmExecutorFee","nameLocation":"1522:14:52","nodeType":"VariableDeclaration","scope":16084,"src":"1514:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16071,"name":"uint256","nodeType":"ElementaryTypeName","src":"1514:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16075,"mutability":"mutable","name":"tvmValidExecutors","nameLocation":"1551:17:52","nodeType":"VariableDeclaration","scope":16084,"src":"1542:26:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16073,"name":"string","nodeType":"ElementaryTypeName","src":"1542:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16074,"nodeType":"ArrayTypeName","src":"1542:8:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":16079,"mutability":"mutable","name":"toBridge","nameLocation":"1588:8:52","nodeType":"VariableDeclaration","scope":16084,"src":"1574:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":16077,"nodeType":"UserDefinedTypeName","pathNode":{"id":16076,"name":"TokenAmount","nameLocations":["1574:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1574:11:52"},"referencedDeclaration":15999,"src":"1574:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":16078,"nodeType":"ArrayTypeName","src":"1574:13:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":16083,"mutability":"mutable","name":"toBridgeNFT","nameLocation":"1614:11:52","nodeType":"VariableDeclaration","scope":16084,"src":"1602:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":16081,"nodeType":"UserDefinedTypeName","pathNode":{"id":16080,"name":"NFTAmount","nameLocations":["1602:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"1602:9:52"},"referencedDeclaration":16007,"src":"1602:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":16082,"nodeType":"ArrayTypeName","src":"1602:11:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"}],"name":"OutMessageV1","nameLocation":"1400:12:52","nodeType":"StructDefinition","scope":16218,"src":"1393:235:52","visibility":"public"},{"canonicalName":"EpochInfo","documentation":{"id":16085,"nodeType":"StructuredDocumentation","src":"1630:56:52","text":" @title EpochInfo\n @dev Consensus epoch info"},"id":16098,"members":[{"constant":false,"id":16087,"mutability":"mutable","name":"merkleRoot","nameLocation":"1718:10:52","nodeType":"VariableDeclaration","scope":16098,"src":"1710:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1710:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16089,"mutability":"mutable","name":"prevMessageCollectEndTime","nameLocation":"1741:25:52","nodeType":"VariableDeclaration","scope":16098,"src":"1734:32:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16088,"name":"uint64","nodeType":"ElementaryTypeName","src":"1734:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16091,"mutability":"mutable","name":"messageCollectEndTime","nameLocation":"1779:21:52","nodeType":"VariableDeclaration","scope":16098,"src":"1772:28:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16090,"name":"uint64","nodeType":"ElementaryTypeName","src":"1772:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16093,"mutability":"mutable","name":"prevEpochStartTime","nameLocation":"1813:18:52","nodeType":"VariableDeclaration","scope":16098,"src":"1806:25:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16092,"name":"uint64","nodeType":"ElementaryTypeName","src":"1806:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16095,"mutability":"mutable","name":"currEpochStartTime","nameLocation":"1844:18:52","nodeType":"VariableDeclaration","scope":16098,"src":"1837:25:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16094,"name":"uint64","nodeType":"ElementaryTypeName","src":"1837:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16097,"mutability":"mutable","name":"nextVotingTime","nameLocation":"1875:14:52","nodeType":"VariableDeclaration","scope":16098,"src":"1868:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16096,"name":"uint64","nodeType":"ElementaryTypeName","src":"1868:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"EpochInfo","nameLocation":"1694:9:52","nodeType":"StructDefinition","scope":16218,"src":"1687:205:52","visibility":"public"},{"canonicalName":"TacHeaderV1","documentation":{"id":16099,"nodeType":"StructuredDocumentation","src":"1894:29:52","text":" @title TacHeaderV1"},"id":16110,"members":[{"constant":false,"id":16101,"mutability":"mutable","name":"shardsKey","nameLocation":"1956:9:52","nodeType":"VariableDeclaration","scope":16110,"src":"1949:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16100,"name":"uint64","nodeType":"ElementaryTypeName","src":"1949:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":16103,"mutability":"mutable","name":"timestamp","nameLocation":"1979:9:52","nodeType":"VariableDeclaration","scope":16110,"src":"1971:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16102,"name":"uint256","nodeType":"ElementaryTypeName","src":"1971:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16105,"mutability":"mutable","name":"operationId","nameLocation":"2002:11:52","nodeType":"VariableDeclaration","scope":16110,"src":"1994:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1994:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16107,"mutability":"mutable","name":"tvmCaller","nameLocation":"2026:9:52","nodeType":"VariableDeclaration","scope":16110,"src":"2019:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16106,"name":"string","nodeType":"ElementaryTypeName","src":"2019:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16109,"mutability":"mutable","name":"extraData","nameLocation":"2047:9:52","nodeType":"VariableDeclaration","scope":16110,"src":"2041:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16108,"name":"bytes","nodeType":"ElementaryTypeName","src":"2041:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"TacHeaderV1","nameLocation":"1931:11:52","nodeType":"StructDefinition","scope":16218,"src":"1924:135:52","visibility":"public"},{"canonicalName":"SimulationParams","documentation":{"id":16111,"nodeType":"StructuredDocumentation","src":"2061:34:52","text":" @title SimulationParams"},"id":16125,"members":[{"constant":false,"id":16113,"mutability":"mutable","name":"messageVersion","nameLocation":"2134:14:52","nodeType":"VariableDeclaration","scope":16125,"src":"2126:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16112,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16115,"mutability":"mutable","name":"encodedMessage","nameLocation":"2160:14:52","nodeType":"VariableDeclaration","scope":16125,"src":"2154:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16114,"name":"bytes","nodeType":"ElementaryTypeName","src":"2154:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16117,"mutability":"mutable","name":"extraData","nameLocation":"2186:9:52","nodeType":"VariableDeclaration","scope":16125,"src":"2180:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16116,"name":"bytes","nodeType":"ElementaryTypeName","src":"2180:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16119,"mutability":"mutable","name":"merkleRoot","nameLocation":"2209:10:52","nodeType":"VariableDeclaration","scope":16125,"src":"2201:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2201:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16122,"mutability":"mutable","name":"merkleProof","nameLocation":"2235:11:52","nodeType":"VariableDeclaration","scope":16125,"src":"2225:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":16120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2225:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16121,"nodeType":"ArrayTypeName","src":"2225:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":16124,"mutability":"mutable","name":"withMessages","nameLocation":"2257:12:52","nodeType":"VariableDeclaration","scope":16125,"src":"2252:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16123,"name":"bool","nodeType":"ElementaryTypeName","src":"2252:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"SimulationParams","nameLocation":"2103:16:52","nodeType":"StructDefinition","scope":16218,"src":"2096:176:52","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IStructsInterface","contractDependencies":[],"contractKind":"interface","documentation":{"id":16126,"nodeType":"StructuredDocumentation","src":"2275:95:52","text":" @title IStructsInterface\n @dev Unusable interface for structs typechain generation"},"fullyImplemented":false,"id":16217,"linearizedBaseContracts":[16217],"name":"IStructsInterface","nameLocation":"2381:17:52","nodeType":"ContractDefinition","nodes":[{"functionSelector":"f80ca3f5","id":16135,"implemented":false,"kind":"function","modifiers":[],"name":"__InMessageV1","nameLocation":"2414:13:52","nodeType":"FunctionDefinition","parameters":{"id":16130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16129,"mutability":"mutable","name":"message","nameLocation":"2449:7:52","nodeType":"VariableDeclaration","scope":16135,"src":"2428:28:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_calldata_ptr","typeString":"struct InMessageV1"},"typeName":{"id":16128,"nodeType":"UserDefinedTypeName","pathNode":{"id":16127,"name":"InMessageV1","nameLocations":["2428:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":16055,"src":"2428:11:52"},"referencedDeclaration":16055,"src":"2428:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_storage_ptr","typeString":"struct InMessageV1"}},"visibility":"internal"}],"src":"2427:30:52"},"returnParameters":{"id":16134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16135,"src":"2480:20:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_calldata_ptr","typeString":"struct InMessageV1"},"typeName":{"id":16132,"nodeType":"UserDefinedTypeName","pathNode":{"id":16131,"name":"InMessageV1","nameLocations":["2480:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":16055,"src":"2480:11:52"},"referencedDeclaration":16055,"src":"2480:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_storage_ptr","typeString":"struct InMessageV1"}},"visibility":"internal"}],"src":"2479:22:52"},"scope":16217,"src":"2405:97:52","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"87c2d35b","id":16144,"implemented":false,"kind":"function","modifiers":[],"name":"__OutMessageV1","nameLocation":"2516:14:52","nodeType":"FunctionDefinition","parameters":{"id":16139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16138,"mutability":"mutable","name":"message","nameLocation":"2553:7:52","nodeType":"VariableDeclaration","scope":16144,"src":"2531:29:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1"},"typeName":{"id":16137,"nodeType":"UserDefinedTypeName","pathNode":{"id":16136,"name":"OutMessageV1","nameLocations":["2531:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":16084,"src":"2531:12:52"},"referencedDeclaration":16084,"src":"2531:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_storage_ptr","typeString":"struct OutMessageV1"}},"visibility":"internal"}],"src":"2530:31:52"},"returnParameters":{"id":16143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16144,"src":"2584:21:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1"},"typeName":{"id":16141,"nodeType":"UserDefinedTypeName","pathNode":{"id":16140,"name":"OutMessageV1","nameLocations":["2584:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":16084,"src":"2584:12:52"},"referencedDeclaration":16084,"src":"2584:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_storage_ptr","typeString":"struct OutMessageV1"}},"visibility":"internal"}],"src":"2583:23:52"},"scope":16217,"src":"2507:100:52","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"e18fd0fd","id":16153,"implemented":false,"kind":"function","modifiers":[],"name":"__TacHeaderV1","nameLocation":"2621:13:52","nodeType":"FunctionDefinition","parameters":{"id":16148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16147,"mutability":"mutable","name":"tacHeader","nameLocation":"2656:9:52","nodeType":"VariableDeclaration","scope":16153,"src":"2635:30:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_calldata_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":16146,"nodeType":"UserDefinedTypeName","pathNode":{"id":16145,"name":"TacHeaderV1","nameLocations":["2635:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"2635:11:52"},"referencedDeclaration":16110,"src":"2635:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"src":"2634:32:52"},"returnParameters":{"id":16152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16153,"src":"2689:20:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_calldata_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":16150,"nodeType":"UserDefinedTypeName","pathNode":{"id":16149,"name":"TacHeaderV1","nameLocations":["2689:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"2689:11:52"},"referencedDeclaration":16110,"src":"2689:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"src":"2688:22:52"},"scope":16217,"src":"2612:99:52","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"0b249f25","id":16162,"implemented":false,"kind":"function","modifiers":[],"name":"__TokenInfo","nameLocation":"2725:11:52","nodeType":"FunctionDefinition","parameters":{"id":16157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16156,"mutability":"mutable","name":"tokenInfo","nameLocation":"2756:9:52","nodeType":"VariableDeclaration","scope":16162,"src":"2737:28:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_calldata_ptr","typeString":"struct TokenInfo"},"typeName":{"id":16155,"nodeType":"UserDefinedTypeName","pathNode":{"id":16154,"name":"TokenInfo","nameLocations":["2737:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":15983,"src":"2737:9:52"},"referencedDeclaration":15983,"src":"2737:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_storage_ptr","typeString":"struct TokenInfo"}},"visibility":"internal"}],"src":"2736:30:52"},"returnParameters":{"id":16161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16162,"src":"2789:18:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_calldata_ptr","typeString":"struct TokenInfo"},"typeName":{"id":16159,"nodeType":"UserDefinedTypeName","pathNode":{"id":16158,"name":"TokenInfo","nameLocations":["2789:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":15983,"src":"2789:9:52"},"referencedDeclaration":15983,"src":"2789:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_storage_ptr","typeString":"struct TokenInfo"}},"visibility":"internal"}],"src":"2788:20:52"},"scope":16217,"src":"2716:93:52","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"fce96012","id":16171,"implemented":false,"kind":"function","modifiers":[],"name":"__NFTInfo","nameLocation":"2823:9:52","nodeType":"FunctionDefinition","parameters":{"id":16166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16165,"mutability":"mutable","name":"nftInfo","nameLocation":"2850:7:52","nodeType":"VariableDeclaration","scope":16171,"src":"2833:24:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_calldata_ptr","typeString":"struct NFTInfo"},"typeName":{"id":16164,"nodeType":"UserDefinedTypeName","pathNode":{"id":16163,"name":"NFTInfo","nameLocations":["2833:7:52"],"nodeType":"IdentifierPath","referencedDeclaration":15993,"src":"2833:7:52"},"referencedDeclaration":15993,"src":"2833:7:52","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_storage_ptr","typeString":"struct NFTInfo"}},"visibility":"internal"}],"src":"2832:26:52"},"returnParameters":{"id":16170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16171,"src":"2881:16:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_calldata_ptr","typeString":"struct NFTInfo"},"typeName":{"id":16168,"nodeType":"UserDefinedTypeName","pathNode":{"id":16167,"name":"NFTInfo","nameLocations":["2881:7:52"],"nodeType":"IdentifierPath","referencedDeclaration":15993,"src":"2881:7:52"},"referencedDeclaration":15993,"src":"2881:7:52","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_storage_ptr","typeString":"struct NFTInfo"}},"visibility":"internal"}],"src":"2880:18:52"},"scope":16217,"src":"2814:85:52","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"875a36fc","id":16180,"implemented":false,"kind":"function","modifiers":[],"name":"__TokenAmount","nameLocation":"2913:13:52","nodeType":"FunctionDefinition","parameters":{"id":16175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16174,"mutability":"mutable","name":"tokenAmount","nameLocation":"2948:11:52","nodeType":"VariableDeclaration","scope":16180,"src":"2927:32:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount"},"typeName":{"id":16173,"nodeType":"UserDefinedTypeName","pathNode":{"id":16172,"name":"TokenAmount","nameLocations":["2927:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"2927:11:52"},"referencedDeclaration":15999,"src":"2927:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"}],"src":"2926:34:52"},"returnParameters":{"id":16179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16180,"src":"2983:20:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount"},"typeName":{"id":16177,"nodeType":"UserDefinedTypeName","pathNode":{"id":16176,"name":"TokenAmount","nameLocations":["2983:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"2983:11:52"},"referencedDeclaration":15999,"src":"2983:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"}],"src":"2982:22:52"},"scope":16217,"src":"2904:101:52","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"15acde58","id":16189,"implemented":false,"kind":"function","modifiers":[],"name":"__NFTAmount","nameLocation":"3019:11:52","nodeType":"FunctionDefinition","parameters":{"id":16184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16183,"mutability":"mutable","name":"nftAmount","nameLocation":"3050:9:52","nodeType":"VariableDeclaration","scope":16189,"src":"3031:28:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount"},"typeName":{"id":16182,"nodeType":"UserDefinedTypeName","pathNode":{"id":16181,"name":"NFTAmount","nameLocations":["3031:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"3031:9:52"},"referencedDeclaration":16007,"src":"3031:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"visibility":"internal"}],"src":"3030:30:52"},"returnParameters":{"id":16188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16189,"src":"3083:18:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_calldata_ptr","typeString":"struct NFTAmount"},"typeName":{"id":16186,"nodeType":"UserDefinedTypeName","pathNode":{"id":16185,"name":"NFTAmount","nameLocations":["3083:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"3083:9:52"},"referencedDeclaration":16007,"src":"3083:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"visibility":"internal"}],"src":"3082:20:52"},"scope":16217,"src":"3010:93:52","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"95394908","id":16198,"implemented":false,"kind":"function","modifiers":[],"name":"__EpochInfo","nameLocation":"3117:11:52","nodeType":"FunctionDefinition","parameters":{"id":16193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16192,"mutability":"mutable","name":"epochInfo","nameLocation":"3148:9:52","nodeType":"VariableDeclaration","scope":16198,"src":"3129:28:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_calldata_ptr","typeString":"struct EpochInfo"},"typeName":{"id":16191,"nodeType":"UserDefinedTypeName","pathNode":{"id":16190,"name":"EpochInfo","nameLocations":["3129:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":16098,"src":"3129:9:52"},"referencedDeclaration":16098,"src":"3129:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_storage_ptr","typeString":"struct EpochInfo"}},"visibility":"internal"}],"src":"3128:30:52"},"returnParameters":{"id":16197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16196,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16198,"src":"3181:18:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_calldata_ptr","typeString":"struct EpochInfo"},"typeName":{"id":16195,"nodeType":"UserDefinedTypeName","pathNode":{"id":16194,"name":"EpochInfo","nameLocations":["3181:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":16098,"src":"3181:9:52"},"referencedDeclaration":16098,"src":"3181:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_storage_ptr","typeString":"struct EpochInfo"}},"visibility":"internal"}],"src":"3180:20:52"},"scope":16217,"src":"3108:93:52","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"972aae27","id":16207,"implemented":false,"kind":"function","modifiers":[],"name":"__TVMFeeInfo","nameLocation":"3215:12:52","nodeType":"FunctionDefinition","parameters":{"id":16202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16201,"mutability":"mutable","name":"tvmFeeInfo","nameLocation":"3248:10:52","nodeType":"VariableDeclaration","scope":16207,"src":"3228:30:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TVMFeeInfo_$16061_calldata_ptr","typeString":"struct TVMFeeInfo"},"typeName":{"id":16200,"nodeType":"UserDefinedTypeName","pathNode":{"id":16199,"name":"TVMFeeInfo","nameLocations":["3228:10:52"],"nodeType":"IdentifierPath","referencedDeclaration":16061,"src":"3228:10:52"},"referencedDeclaration":16061,"src":"3228:10:52","typeDescriptions":{"typeIdentifier":"t_struct$_TVMFeeInfo_$16061_storage_ptr","typeString":"struct TVMFeeInfo"}},"visibility":"internal"}],"src":"3227:32:52"},"returnParameters":{"id":16206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16207,"src":"3282:19:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TVMFeeInfo_$16061_calldata_ptr","typeString":"struct TVMFeeInfo"},"typeName":{"id":16204,"nodeType":"UserDefinedTypeName","pathNode":{"id":16203,"name":"TVMFeeInfo","nameLocations":["3282:10:52"],"nodeType":"IdentifierPath","referencedDeclaration":16061,"src":"3282:10:52"},"referencedDeclaration":16061,"src":"3282:10:52","typeDescriptions":{"typeIdentifier":"t_struct$_TVMFeeInfo_$16061_storage_ptr","typeString":"struct TVMFeeInfo"}},"visibility":"internal"}],"src":"3281:21:52"},"scope":16217,"src":"3206:97:52","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"a60615f3","id":16216,"implemented":false,"kind":"function","modifiers":[],"name":"__SimulationParams","nameLocation":"3317:18:52","nodeType":"FunctionDefinition","parameters":{"id":16211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16210,"mutability":"mutable","name":"simulationParams","nameLocation":"3362:16:52","nodeType":"VariableDeclaration","scope":16216,"src":"3336:42:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SimulationParams_$16125_calldata_ptr","typeString":"struct SimulationParams"},"typeName":{"id":16209,"nodeType":"UserDefinedTypeName","pathNode":{"id":16208,"name":"SimulationParams","nameLocations":["3336:16:52"],"nodeType":"IdentifierPath","referencedDeclaration":16125,"src":"3336:16:52"},"referencedDeclaration":16125,"src":"3336:16:52","typeDescriptions":{"typeIdentifier":"t_struct$_SimulationParams_$16125_storage_ptr","typeString":"struct SimulationParams"}},"visibility":"internal"}],"src":"3335:44:52"},"returnParameters":{"id":16215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16216,"src":"3402:25:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SimulationParams_$16125_calldata_ptr","typeString":"struct SimulationParams"},"typeName":{"id":16213,"nodeType":"UserDefinedTypeName","pathNode":{"id":16212,"name":"SimulationParams","nameLocations":["3402:16:52"],"nodeType":"IdentifierPath","referencedDeclaration":16125,"src":"3402:16:52"},"referencedDeclaration":16125,"src":"3402:16:52","typeDescriptions":{"typeIdentifier":"t_struct$_SimulationParams_$16125_storage_ptr","typeString":"struct SimulationParams"}},"visibility":"internal"}],"src":"3401:27:52"},"scope":16217,"src":"3308:121:52","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":16218,"src":"2371:1060:52","usedErrors":[],"usedEvents":[]}],"src":"32:3399:52"},"id":52},"contracts/core/TacInitializable.sol":{"ast":{"absolutePath":"contracts/core/TacInitializable.sol","exportedSymbols":{"ITacInitializable":[17543],"Initializable":[948],"TacInitializable":[16247]},"id":16248,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":16219,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:53"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":16221,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16248,"sourceUnit":949,"src":"58:98:53","symbolAliases":[{"foreign":{"id":16220,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"67:13:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ITacInitializable.sol","file":"../interfaces/ITacInitializable.sol","id":16223,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16248,"sourceUnit":17544,"src":"158:72:53","symbolAliases":[{"foreign":{"id":16222,"name":"ITacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17543,"src":"167:17:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":16225,"name":"Initializable","nameLocations":["305:13:53"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"305:13:53"},"id":16226,"nodeType":"InheritanceSpecifier","src":"305:13:53"},{"baseName":{"id":16227,"name":"ITacInitializable","nameLocations":["320:17:53"],"nodeType":"IdentifierPath","referencedDeclaration":17543,"src":"320:17:53"},"id":16228,"nodeType":"InheritanceSpecifier","src":"320:17:53"}],"canonicalName":"TacInitializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":16224,"nodeType":"StructuredDocumentation","src":"232:34:53","text":" @title TacInitializable"},"fullyImplemented":true,"id":16247,"linearizedBaseContracts":[16247,17543,948],"name":"TacInitializable","nameLocation":"285:16:53","nodeType":"ContractDefinition","nodes":[{"errorSelector":"0dc149f0","id":16230,"name":"AlreadyInitialized","nameLocation":"351:18:53","nodeType":"ErrorDefinition","parameters":{"id":16229,"nodeType":"ParameterList","parameters":[],"src":"369:2:53"},"src":"345:27:53"},{"baseFunctions":[17542],"body":{"id":16245,"nodeType":"Block","src":"418:135:53","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":16236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":16233,"name":"_getInitializedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"432:22:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":16234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"432:24:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"460:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"432:29:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16241,"nodeType":"IfStatement","src":"428:87:53","trueBody":{"id":16240,"nodeType":"Block","src":"463:52:53","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16237,"name":"AlreadyInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16230,"src":"484:18:53","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"484:20:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16239,"nodeType":"RevertStatement","src":"477:27:53"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16242,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"524:20:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"524:22:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16244,"nodeType":"ExpressionStatement","src":"524:22:53"}]},"functionSelector":"31f44900","id":16246,"implemented":true,"kind":"function","modifiers":[],"name":"disableInitializers","nameLocation":"387:19:53","nodeType":"FunctionDefinition","parameters":{"id":16231,"nodeType":"ParameterList","parameters":[],"src":"406:2:53"},"returnParameters":{"id":16232,"nodeType":"ParameterList","parameters":[],"src":"418:0:53"},"scope":16247,"src":"378:175:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":16248,"src":"267:288:53","usedErrors":[711,714,16230],"usedEvents":[719]}],"src":"32:523:53"},"id":53},"contracts/core/TokenFactories/ERC20TokenFactory.sol":{"ast":{"absolutePath":"contracts/core/TokenFactories/ERC20TokenFactory.sol","exportedSymbols":{"Create2":[6757],"CrossChainLayerERC20":[17117],"ERC20TokenFactory":[16358],"ITokenFactory":[17568]},"id":16359,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":16249,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"33:24:54"},{"absolutePath":"contracts/interfaces/ITokenFactory.sol","file":"../../interfaces/ITokenFactory.sol","id":16251,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16359,"sourceUnit":17569,"src":"59:67:54","symbolAliases":[{"foreign":{"id":16250,"name":"ITokenFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17568,"src":"68:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Create2.sol","file":"@openzeppelin/contracts/utils/Create2.sol","id":16253,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16359,"sourceUnit":6758,"src":"127:68:54","symbolAliases":[{"foreign":{"id":16252,"name":"Create2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6757,"src":"136:7:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/tokens/CrossChainLayerERC20.sol","file":"../tokens/CrossChainLayerERC20.sol","id":16255,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16359,"sourceUnit":17118,"src":"196:74:54","symbolAliases":[{"foreign":{"id":16254,"name":"CrossChainLayerERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"205:20:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16256,"name":"ITokenFactory","nameLocations":["302:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":17568,"src":"302:13:54"},"id":16257,"nodeType":"InheritanceSpecifier","src":"302:13:54"}],"canonicalName":"ERC20TokenFactory","contractDependencies":[17117],"contractKind":"contract","fullyImplemented":true,"id":16358,"linearizedBaseContracts":[16358,17568],"name":"ERC20TokenFactory","nameLocation":"281:17:54","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[17556],"body":{"id":16323,"nodeType":"Block","src":"737:518:54","statements":[{"assignments":[16270],"declarations":[{"constant":false,"id":16270,"mutability":"mutable","name":"bytecode","nameLocation":"760:8:54","nodeType":"VariableDeclaration","scope":16323,"src":"747:21:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16269,"name":"bytes","nodeType":"ElementaryTypeName","src":"747:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16279,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":16274,"name":"CrossChainLayerERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"806:20:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC20_$17117_$","typeString":"type(contract CrossChainLayerERC20)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC20_$17117_$","typeString":"type(contract CrossChainLayerERC20)"}],"id":16273,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"801:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"801:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_CrossChainLayerERC20_$17117","typeString":"type(contract CrossChainLayerERC20)"}},"id":16276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"828:12:54","memberName":"creationCode","nodeType":"MemberAccess","src":"801:39:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":16277,"name":"initCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16262,"src":"854:8:54","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":16271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"771:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"775:12:54","memberName":"encodePacked","nodeType":"MemberAccess","src":"771:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"771:101:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"747:125:54"},{"assignments":[16281],"declarations":[{"constant":false,"id":16281,"mutability":"mutable","name":"token","nameLocation":"890:5:54","nodeType":"VariableDeclaration","scope":16323,"src":"882:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16280,"name":"address","nodeType":"ElementaryTypeName","src":"882:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16288,"initialValue":{"arguments":[{"hexValue":"30","id":16284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"913:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":16285,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16260,"src":"916:4:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16286,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16270,"src":"922:8:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16282,"name":"Create2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6757,"src":"898:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Create2_$6757_$","typeString":"type(library Create2)"}},"id":16283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"906:6:54","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":6722,"src":"898:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (uint256,bytes32,bytes memory) returns (address)"}},"id":16287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"898:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"882:49:54"},{"assignments":[16290,16292,16294,16296],"declarations":[{"constant":false,"id":16290,"mutability":"mutable","name":"name","nameLocation":"970:4:54","nodeType":"VariableDeclaration","scope":16323,"src":"956:18:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16289,"name":"string","nodeType":"ElementaryTypeName","src":"956:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16292,"mutability":"mutable","name":"symbol","nameLocation":"1002:6:54","nodeType":"VariableDeclaration","scope":16323,"src":"988:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16291,"name":"string","nodeType":"ElementaryTypeName","src":"988:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16294,"mutability":"mutable","name":"decimals","nameLocation":"1028:8:54","nodeType":"VariableDeclaration","scope":16323,"src":"1022:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16293,"name":"uint8","nodeType":"ElementaryTypeName","src":"1022:5:54","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":16296,"mutability":"mutable","name":"tvmAddress","nameLocation":"1064:10:54","nodeType":"VariableDeclaration","scope":16323,"src":"1050:24:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16295,"name":"string","nodeType":"ElementaryTypeName","src":"1050:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":16310,"initialValue":{"arguments":[{"id":16299,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16264,"src":"1098:8:54","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1109:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16300,"name":"string","nodeType":"ElementaryTypeName","src":"1109:6:54","typeDescriptions":{}}},{"id":16303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1117:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16302,"name":"string","nodeType":"ElementaryTypeName","src":"1117:6:54","typeDescriptions":{}}},{"id":16305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1125:5:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":16304,"name":"uint8","nodeType":"ElementaryTypeName","src":"1125:5:54","typeDescriptions":{}}},{"id":16307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1132:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16306,"name":"string","nodeType":"ElementaryTypeName","src":"1132:6:54","typeDescriptions":{}}}],"id":16308,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1108:31:54","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$_t_type$_t_uint8_$_$_t_type$_t_string_storage_ptr_$_$","typeString":"tuple(type(string storage pointer),type(string storage pointer),type(uint8),type(string storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$_t_type$_t_uint8_$_$_t_type$_t_string_storage_ptr_$_$","typeString":"tuple(type(string storage pointer),type(string storage pointer),type(uint8),type(string storage pointer))"}],"expression":{"id":16297,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1087:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1091:6:54","memberName":"decode","nodeType":"MemberAccess","src":"1087:10:54","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1087:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_string_memory_ptr_$","typeString":"tuple(string memory,string memory,uint8,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"942:198:54"},{"expression":{"arguments":[{"id":16315,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"1190:4:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16316,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16292,"src":"1196:6:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16317,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"1204:8:54","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":16318,"name":"tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16296,"src":"1214:10:54","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"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":16312,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16281,"src":"1172:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16311,"name":"CrossChainLayerERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"1151:20:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC20_$17117_$","typeString":"type(contract CrossChainLayerERC20)"}},"id":16313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:27:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayerERC20_$17117","typeString":"contract CrossChainLayerERC20"}},"id":16314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1179:10:54","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":17026,"src":"1151:38:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory,uint8,string memory) external"}},"id":16319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:74:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16320,"nodeType":"ExpressionStatement","src":"1151:74:54"},{"expression":{"id":16321,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16281,"src":"1243:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16268,"id":16322,"nodeType":"Return","src":"1236:12:54"}]},"documentation":{"id":16258,"nodeType":"StructuredDocumentation","src":"323:302:54","text":" @dev Deploy new ERC20 token, must be called by tokenUtils with delegate call\n @param salt salt for the contract deployment\n @param initCode constructor params of the token\n @param initData initializer params of the token\n @return address of the deployed token"},"functionSelector":"19cdeff1","id":16324,"implemented":true,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"639:6:54","nodeType":"FunctionDefinition","parameters":{"id":16265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16260,"mutability":"mutable","name":"salt","nameLocation":"654:4:54","nodeType":"VariableDeclaration","scope":16324,"src":"646:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"646:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16262,"mutability":"mutable","name":"initCode","nameLocation":"675:8:54","nodeType":"VariableDeclaration","scope":16324,"src":"660:23:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16261,"name":"bytes","nodeType":"ElementaryTypeName","src":"660:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16264,"mutability":"mutable","name":"initData","nameLocation":"700:8:54","nodeType":"VariableDeclaration","scope":16324,"src":"685:23:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16263,"name":"bytes","nodeType":"ElementaryTypeName","src":"685:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"645:64:54"},"returnParameters":{"id":16268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16324,"src":"728:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16266,"name":"address","nodeType":"ElementaryTypeName","src":"728:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"727:9:54"},"scope":16358,"src":"630:625:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17567],"body":{"id":16356,"nodeType":"Block","src":"1641:218:54","statements":[{"assignments":[16337],"declarations":[{"constant":false,"id":16337,"mutability":"mutable","name":"bytecode","nameLocation":"1664:8:54","nodeType":"VariableDeclaration","scope":16356,"src":"1651:21:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16336,"name":"bytes","nodeType":"ElementaryTypeName","src":"1651:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16346,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":16341,"name":"CrossChainLayerERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"1710:20:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC20_$17117_$","typeString":"type(contract CrossChainLayerERC20)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC20_$17117_$","typeString":"type(contract CrossChainLayerERC20)"}],"id":16340,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1705:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1705:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_CrossChainLayerERC20_$17117","typeString":"type(contract CrossChainLayerERC20)"}},"id":16343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1732:12:54","memberName":"creationCode","nodeType":"MemberAccess","src":"1705:39:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":16344,"name":"initCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16329,"src":"1758:8:54","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":16338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1675:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1679:12:54","memberName":"encodePacked","nodeType":"MemberAccess","src":"1675:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:101:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1651:125:54"},{"expression":{"arguments":[{"id":16349,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"1816:4:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":16351,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16337,"src":"1832:8:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16350,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1822:9:54","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1822:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16353,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16331,"src":"1843:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16347,"name":"Create2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6757,"src":"1793:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Create2_$6757_$","typeString":"type(library Create2)"}},"id":16348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1801:14:54","memberName":"computeAddress","nodeType":"MemberAccess","referencedDeclaration":6756,"src":"1793:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":16354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1793:59:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16335,"id":16355,"nodeType":"Return","src":"1786:66:54"}]},"documentation":{"id":16325,"nodeType":"StructuredDocumentation","src":"1261:262:54","text":" @dev Compute address of the token contract\n @param salt Salt for the contract deployment\n @param initCode Constructor params of the token\n @param deployer Address of the deployer\n @return Calculated address of the token"},"functionSelector":"a3180978","id":16357,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"1537:14:54","nodeType":"FunctionDefinition","parameters":{"id":16332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16327,"mutability":"mutable","name":"salt","nameLocation":"1560:4:54","nodeType":"VariableDeclaration","scope":16357,"src":"1552:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1552:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16329,"mutability":"mutable","name":"initCode","nameLocation":"1581:8:54","nodeType":"VariableDeclaration","scope":16357,"src":"1566:23:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16328,"name":"bytes","nodeType":"ElementaryTypeName","src":"1566:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16331,"mutability":"mutable","name":"deployer","nameLocation":"1599:8:54","nodeType":"VariableDeclaration","scope":16357,"src":"1591:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16330,"name":"address","nodeType":"ElementaryTypeName","src":"1591:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1551:57:54"},"returnParameters":{"id":16335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16357,"src":"1632:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16333,"name":"address","nodeType":"ElementaryTypeName","src":"1632:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1631:9:54"},"scope":16358,"src":"1528:331:54","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":16359,"src":"272:1589:54","usedErrors":[6666,6767,6773],"usedEvents":[]}],"src":"33:1828:54"},"id":54},"contracts/core/TokenFactories/ERC721TokenFactory.sol":{"ast":{"absolutePath":"contracts/core/TokenFactories/ERC721TokenFactory.sol","exportedSymbols":{"Create2":[6757],"CrossChainLayerERC721":[17310],"ERC721TokenFactory":[16469],"ITokenFactory":[17568]},"id":16470,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":16360,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"33:24:55"},{"absolutePath":"contracts/interfaces/ITokenFactory.sol","file":"../../interfaces/ITokenFactory.sol","id":16362,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16470,"sourceUnit":17569,"src":"59:67:55","symbolAliases":[{"foreign":{"id":16361,"name":"ITokenFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17568,"src":"68:13:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Create2.sol","file":"@openzeppelin/contracts/utils/Create2.sol","id":16364,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16470,"sourceUnit":6758,"src":"127:68:55","symbolAliases":[{"foreign":{"id":16363,"name":"Create2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6757,"src":"136:7:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/tokens/CrossChainLayerERC721.sol","file":"../tokens/CrossChainLayerERC721.sol","id":16366,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16470,"sourceUnit":17311,"src":"197:76:55","symbolAliases":[{"foreign":{"id":16365,"name":"CrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"206:21:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16367,"name":"ITokenFactory","nameLocations":["306:13:55"],"nodeType":"IdentifierPath","referencedDeclaration":17568,"src":"306:13:55"},"id":16368,"nodeType":"InheritanceSpecifier","src":"306:13:55"}],"canonicalName":"ERC721TokenFactory","contractDependencies":[17310],"contractKind":"contract","fullyImplemented":true,"id":16469,"linearizedBaseContracts":[16469,17568],"name":"ERC721TokenFactory","nameLocation":"284:18:55","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[17556],"body":{"id":16434,"nodeType":"Block","src":"742:527:55","statements":[{"assignments":[16381],"declarations":[{"constant":false,"id":16381,"mutability":"mutable","name":"bytecode","nameLocation":"765:8:55","nodeType":"VariableDeclaration","scope":16434,"src":"752:21:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16380,"name":"bytes","nodeType":"ElementaryTypeName","src":"752:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16390,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":16385,"name":"CrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"811:21:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC721_$17310_$","typeString":"type(contract CrossChainLayerERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC721_$17310_$","typeString":"type(contract CrossChainLayerERC721)"}],"id":16384,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"806:4:55","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"806:27:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_CrossChainLayerERC721_$17310","typeString":"type(contract CrossChainLayerERC721)"}},"id":16387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"834:12:55","memberName":"creationCode","nodeType":"MemberAccess","src":"806:40:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":16388,"name":"initCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16373,"src":"860:8:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":16382,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"776:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"780:12:55","memberName":"encodePacked","nodeType":"MemberAccess","src":"776:16:55","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"776:102:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"752:126:55"},{"assignments":[16392],"declarations":[{"constant":false,"id":16392,"mutability":"mutable","name":"token","nameLocation":"896:5:55","nodeType":"VariableDeclaration","scope":16434,"src":"888:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16391,"name":"address","nodeType":"ElementaryTypeName","src":"888:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16399,"initialValue":{"arguments":[{"hexValue":"30","id":16395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"919:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":16396,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16371,"src":"922:4:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16397,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16381,"src":"928:8:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16393,"name":"Create2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6757,"src":"904:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Create2_$6757_$","typeString":"type(library Create2)"}},"id":16394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"912:6:55","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":6722,"src":"904:14:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (uint256,bytes32,bytes memory) returns (address)"}},"id":16398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"904:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"888:49:55"},{"assignments":[16401,16403,16405,16407],"declarations":[{"constant":false,"id":16401,"mutability":"mutable","name":"name","nameLocation":"976:4:55","nodeType":"VariableDeclaration","scope":16434,"src":"962:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16400,"name":"string","nodeType":"ElementaryTypeName","src":"962:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16403,"mutability":"mutable","name":"symbol","nameLocation":"1008:6:55","nodeType":"VariableDeclaration","scope":16434,"src":"994:20:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16402,"name":"string","nodeType":"ElementaryTypeName","src":"994:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16405,"mutability":"mutable","name":"baseURI","nameLocation":"1042:7:55","nodeType":"VariableDeclaration","scope":16434,"src":"1028:21:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16404,"name":"string","nodeType":"ElementaryTypeName","src":"1028:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16407,"mutability":"mutable","name":"tvmAddress","nameLocation":"1077:10:55","nodeType":"VariableDeclaration","scope":16434,"src":"1063:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16406,"name":"string","nodeType":"ElementaryTypeName","src":"1063:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":16421,"initialValue":{"arguments":[{"id":16410,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16375,"src":"1111:8:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1122:6:55","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16411,"name":"string","nodeType":"ElementaryTypeName","src":"1122:6:55","typeDescriptions":{}}},{"id":16414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1130:6:55","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16413,"name":"string","nodeType":"ElementaryTypeName","src":"1130:6:55","typeDescriptions":{}}},{"id":16416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1138:6:55","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16415,"name":"string","nodeType":"ElementaryTypeName","src":"1138:6:55","typeDescriptions":{}}},{"id":16418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1146:6:55","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":16417,"name":"string","nodeType":"ElementaryTypeName","src":"1146:6:55","typeDescriptions":{}}}],"id":16419,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1121:32:55","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$","typeString":"tuple(type(string storage pointer),type(string storage pointer),type(string storage pointer),type(string storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$","typeString":"tuple(type(string storage pointer),type(string storage pointer),type(string storage pointer),type(string storage pointer))"}],"expression":{"id":16408,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1100:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1104:6:55","memberName":"decode","nodeType":"MemberAccess","src":"1100:10:55","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:54:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$","typeString":"tuple(string memory,string memory,string memory,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"948:206:55"},{"expression":{"arguments":[{"id":16426,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16401,"src":"1205:4:55","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16427,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16403,"src":"1211:6:55","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16428,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16405,"src":"1219:7:55","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16429,"name":"tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16407,"src":"1228:10:55","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"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":16423,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"1187:5:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16422,"name":"CrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"1165:21:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC721_$17310_$","typeString":"type(contract CrossChainLayerERC721)"}},"id":16424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1165:28:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayerERC721_$17310","typeString":"contract CrossChainLayerERC721"}},"id":16425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1194:10:55","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":17187,"src":"1165:39:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory,string memory,string memory) external"}},"id":16430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1165:74:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16431,"nodeType":"ExpressionStatement","src":"1165:74:55"},{"expression":{"id":16432,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"1257:5:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16379,"id":16433,"nodeType":"Return","src":"1250:12:55"}]},"documentation":{"id":16369,"nodeType":"StructuredDocumentation","src":"328:302:55","text":" @dev Deploy new ERC20 token, must be called by tokenUtils with delegate call\n @param salt salt for the contract deployment\n @param initCode constructor params of the token\n @param initData initializer params of the token\n @return address of the deployed token"},"functionSelector":"19cdeff1","id":16435,"implemented":true,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"644:6:55","nodeType":"FunctionDefinition","parameters":{"id":16376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16371,"mutability":"mutable","name":"salt","nameLocation":"659:4:55","nodeType":"VariableDeclaration","scope":16435,"src":"651:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"651:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16373,"mutability":"mutable","name":"initCode","nameLocation":"680:8:55","nodeType":"VariableDeclaration","scope":16435,"src":"665:23:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16372,"name":"bytes","nodeType":"ElementaryTypeName","src":"665:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16375,"mutability":"mutable","name":"initData","nameLocation":"705:8:55","nodeType":"VariableDeclaration","scope":16435,"src":"690:23:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16374,"name":"bytes","nodeType":"ElementaryTypeName","src":"690:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"650:64:55"},"returnParameters":{"id":16379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16435,"src":"733:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16377,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"732:9:55"},"scope":16469,"src":"635:634:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17567],"body":{"id":16467,"nodeType":"Block","src":"1655:219:55","statements":[{"assignments":[16448],"declarations":[{"constant":false,"id":16448,"mutability":"mutable","name":"bytecode","nameLocation":"1678:8:55","nodeType":"VariableDeclaration","scope":16467,"src":"1665:21:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16447,"name":"bytes","nodeType":"ElementaryTypeName","src":"1665:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16457,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":16452,"name":"CrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"1724:21:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC721_$17310_$","typeString":"type(contract CrossChainLayerERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC721_$17310_$","typeString":"type(contract CrossChainLayerERC721)"}],"id":16451,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1719:4:55","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:27:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_CrossChainLayerERC721_$17310","typeString":"type(contract CrossChainLayerERC721)"}},"id":16454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1747:12:55","memberName":"creationCode","nodeType":"MemberAccess","src":"1719:40:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":16455,"name":"initCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"1773:8:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":16449,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1689:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1693:12:55","memberName":"encodePacked","nodeType":"MemberAccess","src":"1689:16:55","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1689:102:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1665:126:55"},{"expression":{"arguments":[{"id":16460,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16438,"src":"1831:4:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":16462,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16448,"src":"1847:8:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16461,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1837:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1837:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16464,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"1858:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16458,"name":"Create2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6757,"src":"1808:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Create2_$6757_$","typeString":"type(library Create2)"}},"id":16459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1816:14:55","memberName":"computeAddress","nodeType":"MemberAccess","referencedDeclaration":6756,"src":"1808:22:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":16465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:59:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16446,"id":16466,"nodeType":"Return","src":"1801:66:55"}]},"documentation":{"id":16436,"nodeType":"StructuredDocumentation","src":"1275:262:55","text":" @dev Compute address of the token contract\n @param salt Salt for the contract deployment\n @param initCode Constructor params of the token\n @param deployer Address of the deployer\n @return Calculated address of the token"},"functionSelector":"a3180978","id":16468,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"1551:14:55","nodeType":"FunctionDefinition","parameters":{"id":16443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16438,"mutability":"mutable","name":"salt","nameLocation":"1574:4:55","nodeType":"VariableDeclaration","scope":16468,"src":"1566:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1566:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16440,"mutability":"mutable","name":"initCode","nameLocation":"1595:8:55","nodeType":"VariableDeclaration","scope":16468,"src":"1580:23:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16439,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16442,"mutability":"mutable","name":"deployer","nameLocation":"1613:8:55","nodeType":"VariableDeclaration","scope":16468,"src":"1605:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16441,"name":"address","nodeType":"ElementaryTypeName","src":"1605:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1565:57:55"},"returnParameters":{"id":16446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16468,"src":"1646:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16444,"name":"address","nodeType":"ElementaryTypeName","src":"1646:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1645:9:55"},"scope":16469,"src":"1542:332:55","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":16470,"src":"275:1601:55","usedErrors":[6666,6767,6773],"usedEvents":[]}],"src":"33:1844:55"},"id":55},"contracts/core/TokenUtils.sol":{"ast":{"absolutePath":"contracts/core/TokenUtils.sol","exportedSymbols":{"AccessControlUpgradeable":[362],"ICrossChainLayerERC721":[17730],"ISettings":[17536],"ITokenFactory":[17568],"ITokenUtils":[17625],"Initializable":[948],"NFTInfo":[15993],"TacInitializable":[16247],"TokenInfo":[15983],"TokenUtils":[16956],"UUPSUpgradeable":[1130]},"id":16957,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":16471,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"33:24:56"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":16473,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16957,"sourceUnit":949,"src":"59:98:56","symbolAliases":[{"foreign":{"id":16472,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"68:13:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":16475,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16957,"sourceUnit":1131,"src":"158:102:56","symbolAliases":[{"foreign":{"id":16474,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1130,"src":"167:15:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","id":16477,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16957,"sourceUnit":363,"src":"261:115:56","symbolAliases":[{"foreign":{"id":16476,"name":"AccessControlUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"270:24:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ISettings.sol","file":"../interfaces/ISettings.sol","id":16479,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16957,"sourceUnit":17537,"src":"378:56:56","symbolAliases":[{"foreign":{"id":16478,"name":"ISettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17536,"src":"387:9:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ITokenUtils.sol","file":"../interfaces/ITokenUtils.sol","id":16481,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16957,"sourceUnit":17626,"src":"435:60:56","symbolAliases":[{"foreign":{"id":16480,"name":"ITokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17625,"src":"444:11:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ITokenFactory.sol","file":"../interfaces/ITokenFactory.sol","id":16483,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16957,"sourceUnit":17569,"src":"496:64:56","symbolAliases":[{"foreign":{"id":16482,"name":"ITokenFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17568,"src":"505:13:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/tokens/ICrossChainLayerERC721.sol","file":"../interfaces/tokens/ICrossChainLayerERC721.sol","id":16485,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16957,"sourceUnit":17731,"src":"561:89:56","symbolAliases":[{"foreign":{"id":16484,"name":"ICrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17730,"src":"570:22:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/TacInitializable.sol","file":"./TacInitializable.sol","id":16487,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16957,"sourceUnit":16248,"src":"651:58:56","symbolAliases":[{"foreign":{"id":16486,"name":"TacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16247,"src":"660:16:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":16490,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16957,"sourceUnit":16218,"src":"711:57:56","symbolAliases":[{"foreign":{"id":16488,"name":"TokenInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"720:9:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":16489,"name":"NFTInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15993,"src":"731:7:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16492,"name":"TacInitializable","nameLocations":["885:16:56"],"nodeType":"IdentifierPath","referencedDeclaration":16247,"src":"885:16:56"},"id":16493,"nodeType":"InheritanceSpecifier","src":"885:16:56"},{"baseName":{"id":16494,"name":"AccessControlUpgradeable","nameLocations":["903:24:56"],"nodeType":"IdentifierPath","referencedDeclaration":362,"src":"903:24:56"},"id":16495,"nodeType":"InheritanceSpecifier","src":"903:24:56"},{"baseName":{"id":16496,"name":"UUPSUpgradeable","nameLocations":["929:15:56"],"nodeType":"IdentifierPath","referencedDeclaration":1130,"src":"929:15:56"},"id":16497,"nodeType":"InheritanceSpecifier","src":"929:15:56"},{"baseName":{"id":16498,"name":"ITokenUtils","nameLocations":["946:11:56"],"nodeType":"IdentifierPath","referencedDeclaration":17625,"src":"946:11:56"},"id":16499,"nodeType":"InheritanceSpecifier","src":"946:11:56"}],"canonicalName":"TokenUtils","contractDependencies":[],"contractKind":"contract","documentation":{"id":16491,"nodeType":"StructuredDocumentation","src":"770:91:56","text":" @title TokenUtils\n @dev Cross-chain layer token factory and utility functions."},"fullyImplemented":true,"id":16956,"linearizedBaseContracts":[16956,17625,1130,3265,362,2913,8493,2996,2873,16247,17543,948],"name":"TokenUtils","nameLocation":"871:10:56","nodeType":"ContractDefinition","nodes":[{"errorSelector":"344fd586","id":16501,"name":"UnauthorizedAccess","nameLocation":"971:18:56","nodeType":"ErrorDefinition","parameters":{"id":16500,"nodeType":"ParameterList","parameters":[],"src":"989:2:56"},"src":"965:27:56"},{"errorSelector":"658b5e3e","id":16505,"name":"InvalidTokenType","nameLocation":"1003:16:56","nodeType":"ErrorDefinition","parameters":{"id":16504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16505,"src":"1020:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16502,"name":"uint256","nodeType":"ElementaryTypeName","src":"1020:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1019:9:56"},"src":"997:32:56"},{"errorSelector":"de6137d1","id":16509,"name":"TokenNotFound","nameLocation":"1040:13:56","nodeType":"ErrorDefinition","parameters":{"id":16508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16509,"src":"1054:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16506,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1053:9:56"},"src":"1034:29:56"},{"anonymous":false,"documentation":{"id":16510,"nodeType":"StructuredDocumentation","src":"1069:202:56","text":" @dev New Cross-Chain Layer token contract was deployed\n @param tvmAddress TVM Jetton address\n @param evmAddress Token address\n @param tokenType Token type"},"eventSelector":"8987aafc647b2712c770282704dba882de96544516cfc1e40cb00a9bf467e88e","id":16518,"name":"TokenCreated","nameLocation":"1282:12:56","nodeType":"EventDefinition","parameters":{"id":16517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16512,"indexed":false,"mutability":"mutable","name":"tvmAddress","nameLocation":"1302:10:56","nodeType":"VariableDeclaration","scope":16518,"src":"1295:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16511,"name":"string","nodeType":"ElementaryTypeName","src":"1295:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16514,"indexed":false,"mutability":"mutable","name":"evmAddress","nameLocation":"1322:10:56","nodeType":"VariableDeclaration","scope":16518,"src":"1314:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16513,"name":"address","nodeType":"ElementaryTypeName","src":"1314:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16516,"indexed":false,"mutability":"mutable","name":"tokenType","nameLocation":"1340:9:56","nodeType":"VariableDeclaration","scope":16518,"src":"1334:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16515,"name":"uint8","nodeType":"ElementaryTypeName","src":"1334:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1294:56:56"},"src":"1276:75:56"},{"constant":true,"functionSelector":"2a0acc6a","id":16523,"mutability":"constant","name":"ADMIN","nameLocation":"1398:5:56","nodeType":"VariableDeclaration","scope":16956,"src":"1374:50:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1374:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"41444d494e","id":16521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1416:7:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42","typeString":"literal_string \"ADMIN\""},"value":"ADMIN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42","typeString":"literal_string \"ADMIN\""}],"id":16520,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1406:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1406:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"6f3769c0","id":16526,"mutability":"constant","name":"ERC20_TYPE","nameLocation":"1452:10:56","nodeType":"VariableDeclaration","scope":16956,"src":"1430:38:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16524,"name":"uint8","nodeType":"ElementaryTypeName","src":"1430:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"307831","id":16525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1465:3:56","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"},"visibility":"public"},{"constant":true,"functionSelector":"72798a89","id":16529,"mutability":"constant","name":"ERC721_TYPE","nameLocation":"1496:11:56","nodeType":"VariableDeclaration","scope":16956,"src":"1474:39:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16527,"name":"uint8","nodeType":"ElementaryTypeName","src":"1474:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"307832","id":16528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1510:3:56","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x2"},"visibility":"public"},{"canonicalName":"TokenUtils.DeployInfo","id":16534,"members":[{"constant":false,"id":16531,"mutability":"mutable","name":"tokenType","nameLocation":"1579:9:56","nodeType":"VariableDeclaration","scope":16534,"src":"1573:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16530,"name":"uint8","nodeType":"ElementaryTypeName","src":"1573:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":16533,"mutability":"mutable","name":"deployTime","nameLocation":"1605:10:56","nodeType":"VariableDeclaration","scope":16534,"src":"1598:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16532,"name":"uint64","nodeType":"ElementaryTypeName","src":"1598:6:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"DeployInfo","nameLocation":"1552:10:56","nodeType":"StructDefinition","scope":16956,"src":"1545:77:56","visibility":"public"},{"constant":false,"id":16539,"mutability":"mutable","name":"_tacTokens","nameLocation":"1667:10:56","nodeType":"VariableDeclaration","scope":16956,"src":"1628:49:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_DeployInfo_$16534_storage_$","typeString":"mapping(address => struct TokenUtils.DeployInfo)"},"typeName":{"id":16538,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":16535,"name":"address","nodeType":"ElementaryTypeName","src":"1636:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1628:30:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_DeployInfo_$16534_storage_$","typeString":"mapping(address => struct TokenUtils.DeployInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":16537,"nodeType":"UserDefinedTypeName","pathNode":{"id":16536,"name":"DeployInfo","nameLocations":["1647:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":16534,"src":"1647:10:56"},"referencedDeclaration":16534,"src":"1647:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_DeployInfo_$16534_storage_ptr","typeString":"struct TokenUtils.DeployInfo"}}},"visibility":"private"},{"constant":false,"id":16543,"mutability":"mutable","name":"_tvmToEVMTokenAddress","nameLocation":"1718:21:56","nodeType":"VariableDeclaration","scope":16956,"src":"1683:56:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_address_$","typeString":"mapping(string => address)"},"typeName":{"id":16542,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":16540,"name":"string","nodeType":"ElementaryTypeName","src":"1691:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"1683:26:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_address_$","typeString":"mapping(string => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":16541,"name":"address","nodeType":"ElementaryTypeName","src":"1701:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":16548,"mutability":"mutable","name":"_factories","nameLocation":"1787:10:56","nodeType":"VariableDeclaration","scope":16956,"src":"1745:52:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITokenFactory_$17568_$","typeString":"mapping(uint256 => contract ITokenFactory)"},"typeName":{"id":16547,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":16544,"name":"uint256","nodeType":"ElementaryTypeName","src":"1753:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1745:33:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITokenFactory_$17568_$","typeString":"mapping(uint256 => contract ITokenFactory)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":16546,"nodeType":"UserDefinedTypeName","pathNode":{"id":16545,"name":"ITokenFactory","nameLocations":["1764:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":17568,"src":"1764:13:56"},"referencedDeclaration":17568,"src":"1764:13:56","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenFactory_$17568","typeString":"contract ITokenFactory"}}},"visibility":"private"},{"constant":false,"id":16550,"mutability":"mutable","name":"_crossChainLayer","nameLocation":"1820:16:56","nodeType":"VariableDeclaration","scope":16956,"src":"1804:32:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16549,"name":"address","nodeType":"ElementaryTypeName","src":"1804:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"body":{"id":16580,"nodeType":"Block","src":"2091:197:56","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16560,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"2101:22:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2101:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16562,"nodeType":"ExpressionStatement","src":"2101:24:56"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16563,"name":"__AccessControl_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"2135:20:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16565,"nodeType":"ExpressionStatement","src":"2135:22:56"},{"expression":{"arguments":[{"id":16567,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16523,"src":"2182:5:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16568,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16523,"src":"2189:5:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16566,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"2168:13:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":16569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2168:27:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16570,"nodeType":"ExpressionStatement","src":"2168:27:56"},{"expression":{"arguments":[{"id":16572,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16523,"src":"2216:5:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16573,"name":"adminAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16553,"src":"2223:12:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16571,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"2205:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":16574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2205:31:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16575,"nodeType":"ExpressionStatement","src":"2205:31:56"},{"expression":{"id":16578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16576,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16550,"src":"2247:16:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16577,"name":"crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16555,"src":"2266:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2247:34:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16579,"nodeType":"ExpressionStatement","src":"2247:34:56"}]},"documentation":{"id":16551,"nodeType":"StructuredDocumentation","src":"1843:157:56","text":" @dev Initializes the contract.\n @param adminAddress Admin address.\n @param crossChainLayer Cross-Chain Layer contract address."},"functionSelector":"485cc955","id":16581,"implemented":true,"kind":"function","modifiers":[{"id":16558,"kind":"modifierInvocation","modifierName":{"id":16557,"name":"initializer","nameLocations":["2079:11:56"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"2079:11:56"},"nodeType":"ModifierInvocation","src":"2079:11:56"}],"name":"initialize","nameLocation":"2014:10:56","nodeType":"FunctionDefinition","parameters":{"id":16556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16553,"mutability":"mutable","name":"adminAddress","nameLocation":"2033:12:56","nodeType":"VariableDeclaration","scope":16581,"src":"2025:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16552,"name":"address","nodeType":"ElementaryTypeName","src":"2025:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16555,"mutability":"mutable","name":"crossChainLayer","nameLocation":"2055:15:56","nodeType":"VariableDeclaration","scope":16581,"src":"2047:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16554,"name":"address","nodeType":"ElementaryTypeName","src":"2047:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2024:47:56"},"returnParameters":{"id":16559,"nodeType":"ParameterList","parameters":[],"src":"2091:0:56"},"scope":16956,"src":"2005:283:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1084],"body":{"id":16591,"nodeType":"Block","src":"2415:2:56","statements":[]},"documentation":{"id":16582,"nodeType":"StructuredDocumentation","src":"2294:46:56","text":" @dev Upgrades the contract."},"id":16592,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":16588,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16523,"src":"2408:5:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16589,"kind":"modifierInvocation","modifierName":{"id":16587,"name":"onlyRole","nameLocations":["2399:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"2399:8:56"},"nodeType":"ModifierInvocation","src":"2399:15:56"}],"name":"_authorizeUpgrade","nameLocation":"2354:17:56","nodeType":"FunctionDefinition","overrides":{"id":16586,"nodeType":"OverrideSpecifier","overrides":[],"src":"2390:8:56"},"parameters":{"id":16585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16592,"src":"2372:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16583,"name":"address","nodeType":"ElementaryTypeName","src":"2372:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2371:9:56"},"returnParameters":{"id":16590,"nodeType":"ParameterList","parameters":[],"src":"2415:0:56"},"scope":16956,"src":"2345:72:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16604,"nodeType":"Block","src":"2470:104:56","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16595,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2484:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2488:6:56","memberName":"sender","nodeType":"MemberAccess","src":"2484:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16597,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16550,"src":"2498:16:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2484:30:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16603,"nodeType":"IfStatement","src":"2480:88:56","trueBody":{"id":16602,"nodeType":"Block","src":"2516:52:56","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16599,"name":"UnauthorizedAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16501,"src":"2537:18:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2537:20:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16601,"nodeType":"RevertStatement","src":"2530:27:56"}]}}]},"id":16605,"implemented":true,"kind":"function","modifiers":[],"name":"_checkCrossChainLayer","nameLocation":"2432:21:56","nodeType":"FunctionDefinition","parameters":{"id":16593,"nodeType":"ParameterList","parameters":[],"src":"2453:2:56"},"returnParameters":{"id":16594,"nodeType":"ParameterList","parameters":[],"src":"2470:0:56"},"scope":16956,"src":"2423:151:56","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16637,"nodeType":"Block","src":"2824:223:56","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16616,"name":"tokenType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16608,"src":"2852:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16617,"name":"ERC20_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16526,"src":"2865:10:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2852:23:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16619,"name":"tokenType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16608,"src":"2891:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16620,"name":"ERC721_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16529,"src":"2904:11:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2891:24:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2852:63:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16628,"nodeType":"IfStatement","src":"2835:150:56","trueBody":{"id":16627,"nodeType":"Block","src":"2926:59:56","statements":[{"errorCall":{"arguments":[{"id":16624,"name":"tokenType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16608,"src":"2964:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16623,"name":"InvalidTokenType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16505,"src":"2947:16:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":16625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2947:27:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16626,"nodeType":"RevertStatement","src":"2940:34:56"}]}},{"expression":{"id":16635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16629,"name":"_factories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16548,"src":"2994:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITokenFactory_$17568_$","typeString":"mapping(uint256 => contract ITokenFactory)"}},"id":16631,"indexExpression":{"id":16630,"name":"tokenType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16608,"src":"3005:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2994:21:56","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenFactory_$17568","typeString":"contract ITokenFactory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16633,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16610,"src":"3032:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16632,"name":"ITokenFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17568,"src":"3018:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITokenFactory_$17568_$","typeString":"type(contract ITokenFactory)"}},"id":16634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3018:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITokenFactory_$17568","typeString":"contract ITokenFactory"}},"src":"2994:46:56","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenFactory_$17568","typeString":"contract ITokenFactory"}},"id":16636,"nodeType":"ExpressionStatement","src":"2994:46:56"}]},"documentation":{"id":16606,"nodeType":"StructuredDocumentation","src":"2607:126:56","text":" @dev setup new token factory\n @param tokenType Token type\n @param factory Token factory address"},"functionSelector":"7f26b45c","id":16638,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":16613,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16523,"src":"2817:5:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16614,"kind":"modifierInvocation","modifierName":{"id":16612,"name":"onlyRole","nameLocations":["2808:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"2808:8:56"},"nodeType":"ModifierInvocation","src":"2808:15:56"}],"name":"setTokenFactory","nameLocation":"2747:15:56","nodeType":"FunctionDefinition","parameters":{"id":16611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16608,"mutability":"mutable","name":"tokenType","nameLocation":"2771:9:56","nodeType":"VariableDeclaration","scope":16638,"src":"2763:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16607,"name":"uint256","nodeType":"ElementaryTypeName","src":"2763:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16610,"mutability":"mutable","name":"factory","nameLocation":"2790:7:56","nodeType":"VariableDeclaration","scope":16638,"src":"2782:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16609,"name":"address","nodeType":"ElementaryTypeName","src":"2782:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2762:36:56"},"returnParameters":{"id":16615,"nodeType":"ParameterList","parameters":[],"src":"2824:0:56"},"scope":16956,"src":"2738:309:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16668,"nodeType":"Block","src":"3312:193:56","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":16654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":16649,"name":"_tacTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16539,"src":"3326:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_DeployInfo_$16534_storage_$","typeString":"mapping(address => struct TokenUtils.DeployInfo storage ref)"}},"id":16651,"indexExpression":{"id":16650,"name":"erc721Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16641,"src":"3337:11:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3326:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_DeployInfo_$16534_storage","typeString":"struct TokenUtils.DeployInfo storage ref"}},"id":16652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3350:9:56","memberName":"tokenType","nodeType":"MemberAccess","referencedDeclaration":16531,"src":"3326:33:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16653,"name":"ERC721_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16529,"src":"3363:11:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3326:48:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16660,"nodeType":"IfStatement","src":"3322:112:56","trueBody":{"id":16659,"nodeType":"Block","src":"3376:58:56","statements":[{"errorCall":{"arguments":[{"id":16656,"name":"erc721Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16641,"src":"3411:11:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16655,"name":"TokenNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16509,"src":"3397:13:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":16657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:26:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16658,"nodeType":"RevertStatement","src":"3390:33:56"}]}},{"expression":{"arguments":[{"id":16665,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16643,"src":"3490:7:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"arguments":[{"id":16662,"name":"erc721Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16641,"src":"3466:11:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16661,"name":"ICrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17730,"src":"3443:22:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossChainLayerERC721_$17730_$","typeString":"type(contract ICrossChainLayerERC721)"}},"id":16663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3443:35:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayerERC721_$17730","typeString":"contract ICrossChainLayerERC721"}},"id":16664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3479:10:56","memberName":"setBaseURI","nodeType":"MemberAccess","referencedDeclaration":17706,"src":"3443:46:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":16666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3443:55:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16667,"nodeType":"ExpressionStatement","src":"3443:55:56"}]},"documentation":{"id":16639,"nodeType":"StructuredDocumentation","src":"3053:163:56","text":" @dev Set new base URI for ERC721 Cross-Chain Layer token.\n @param erc721Token CrosschainLayerERC721 address\n @param baseURI Base URI"},"functionSelector":"88433651","id":16669,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":16646,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16523,"src":"3305:5:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16647,"kind":"modifierInvocation","modifierName":{"id":16645,"name":"onlyRole","nameLocations":["3296:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"3296:8:56"},"nodeType":"ModifierInvocation","src":"3296:15:56"}],"name":"setBaseURI","nameLocation":"3230:10:56","nodeType":"FunctionDefinition","parameters":{"id":16644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16641,"mutability":"mutable","name":"erc721Token","nameLocation":"3249:11:56","nodeType":"VariableDeclaration","scope":16669,"src":"3241:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16640,"name":"address","nodeType":"ElementaryTypeName","src":"3241:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16643,"mutability":"mutable","name":"baseURI","nameLocation":"3278:7:56","nodeType":"VariableDeclaration","scope":16669,"src":"3262:23:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16642,"name":"string","nodeType":"ElementaryTypeName","src":"3262:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3240:46:56"},"returnParameters":{"id":16648,"nodeType":"ParameterList","parameters":[],"src":"3312:0:56"},"scope":16956,"src":"3221:284:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16751,"nodeType":"Block","src":"3655:947:56","statements":[{"assignments":[16681],"declarations":[{"constant":false,"id":16681,"mutability":"mutable","name":"salt","nameLocation":"3673:4:56","nodeType":"VariableDeclaration","scope":16751,"src":"3665:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3665:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":16688,"initialValue":{"arguments":[{"arguments":[{"id":16685,"name":"tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16673,"src":"3707:10:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":16683,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3690:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3694:12:56","memberName":"encodePacked","nodeType":"MemberAccess","src":"3690:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3690:28:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16682,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3680:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3680:39:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3665:54:56"},{"assignments":[16690,16692],"declarations":[{"constant":false,"id":16690,"mutability":"mutable","name":"success","nameLocation":"3940:7:56","nodeType":"VariableDeclaration","scope":16751,"src":"3935:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16689,"name":"bool","nodeType":"ElementaryTypeName","src":"3935:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16692,"mutability":"mutable","name":"result","nameLocation":"3962:6:56","nodeType":"VariableDeclaration","scope":16751,"src":"3949:19:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16691,"name":"bytes","nodeType":"ElementaryTypeName","src":"3949:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16710,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":16702,"name":"ITokenFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17568,"src":"4052:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITokenFactory_$17568_$","typeString":"type(contract ITokenFactory)"}},"id":16703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4066:6:56","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":17556,"src":"4052:20:56","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function ITokenFactory.deploy(bytes32,bytes calldata,bytes calldata) returns (address)"}},"id":16704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4073:8:56","memberName":"selector","nodeType":"MemberAccess","src":"4052:29:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":16705,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16681,"src":"4083:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16706,"name":"initCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16675,"src":"4089:8:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":16707,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16677,"src":"4099:8:56","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4029:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4033:18:56","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4029:22:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":16708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4029:79:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"baseExpression":{"id":16695,"name":"_factories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16548,"src":"3980:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITokenFactory_$17568_$","typeString":"mapping(uint256 => contract ITokenFactory)"}},"id":16697,"indexExpression":{"id":16696,"name":"tokenType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16671,"src":"3991:9:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3980:21:56","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenFactory_$17568","typeString":"contract ITokenFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITokenFactory_$17568","typeString":"contract ITokenFactory"}],"id":16694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3972:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16693,"name":"address","nodeType":"ElementaryTypeName","src":"3972:7:56","typeDescriptions":{}}},"id":16698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:30:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4003:12:56","memberName":"delegatecall","nodeType":"MemberAccess","src":"3972:43:56","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":16709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:146:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3934:184:56"},{"condition":{"id":16712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4133:8:56","subExpression":{"id":16711,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16690,"src":"4134:7:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16715,"nodeType":"IfStatement","src":"4129:166:56","trueBody":{"id":16714,"nodeType":"Block","src":"4143:152:56","statements":[{"AST":{"nativeSrc":"4166:119:56","nodeType":"YulBlock","src":"4166:119:56","statements":[{"nativeSrc":"4184:32:56","nodeType":"YulVariableDeclaration","src":"4184:32:56","value":{"arguments":[{"name":"result","nativeSrc":"4209:6:56","nodeType":"YulIdentifier","src":"4209:6:56"}],"functionName":{"name":"mload","nativeSrc":"4203:5:56","nodeType":"YulIdentifier","src":"4203:5:56"},"nativeSrc":"4203:13:56","nodeType":"YulFunctionCall","src":"4203:13:56"},"variables":[{"name":"result_size","nativeSrc":"4188:11:56","nodeType":"YulTypedName","src":"4188:11:56","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4244:4:56","nodeType":"YulLiteral","src":"4244:4:56","type":"","value":"0x20"},{"name":"result","nativeSrc":"4250:6:56","nodeType":"YulIdentifier","src":"4250:6:56"}],"functionName":{"name":"add","nativeSrc":"4240:3:56","nodeType":"YulIdentifier","src":"4240:3:56"},"nativeSrc":"4240:17:56","nodeType":"YulFunctionCall","src":"4240:17:56"},{"name":"result_size","nativeSrc":"4259:11:56","nodeType":"YulIdentifier","src":"4259:11:56"}],"functionName":{"name":"revert","nativeSrc":"4233:6:56","nodeType":"YulIdentifier","src":"4233:6:56"},"nativeSrc":"4233:38:56","nodeType":"YulFunctionCall","src":"4233:38:56"},"nativeSrc":"4233:38:56","nodeType":"YulExpressionStatement","src":"4233:38:56"}]},"evmVersion":"paris","externalReferences":[{"declaration":16692,"isOffset":false,"isSlot":false,"src":"4209:6:56","valueSize":1},{"declaration":16692,"isOffset":false,"isSlot":false,"src":"4250:6:56","valueSize":1}],"id":16713,"nodeType":"InlineAssembly","src":"4157:128:56"}]}},{"assignments":[16717],"declarations":[{"constant":false,"id":16717,"mutability":"mutable","name":"token","nameLocation":"4313:5:56","nodeType":"VariableDeclaration","scope":16751,"src":"4305:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16716,"name":"address","nodeType":"ElementaryTypeName","src":"4305:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16725,"initialValue":{"arguments":[{"id":16720,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"4332:6:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":16722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4341:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16721,"name":"address","nodeType":"ElementaryTypeName","src":"4341:7:56","typeDescriptions":{}}}],"id":16723,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4340:9:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":16718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4321:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4325:6:56","memberName":"decode","nodeType":"MemberAccess","src":"4321:10:56","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4321:29:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"4305:45:56"},{"expression":{"id":16730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16726,"name":"_tvmToEVMTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16543,"src":"4361:21:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_address_$","typeString":"mapping(string memory => address)"}},"id":16728,"indexExpression":{"id":16727,"name":"tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16673,"src":"4383:10:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4361:33:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16729,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16717,"src":"4397:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4361:41:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16731,"nodeType":"ExpressionStatement","src":"4361:41:56"},{"expression":{"id":16743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16732,"name":"_tacTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16539,"src":"4412:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_DeployInfo_$16534_storage_$","typeString":"mapping(address => struct TokenUtils.DeployInfo storage ref)"}},"id":16734,"indexExpression":{"id":16733,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16717,"src":"4423:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4412:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_DeployInfo_$16534_storage","typeString":"struct TokenUtils.DeployInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16736,"name":"tokenType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16671,"src":"4468:9:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"id":16739,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4510:5:56","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4516:9:56","memberName":"timestamp","nodeType":"MemberAccess","src":"4510:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4503:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":16737,"name":"uint64","nodeType":"ElementaryTypeName","src":"4503:6:56","typeDescriptions":{}}},"id":16741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4503:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":16735,"name":"DeployInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16534,"src":"4432:10:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DeployInfo_$16534_storage_ptr_$","typeString":"type(struct TokenUtils.DeployInfo storage pointer)"}},"id":16742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4457:9:56","4491:10:56"],"names":["tokenType","deployTime"],"nodeType":"FunctionCall","src":"4432:105:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DeployInfo_$16534_memory_ptr","typeString":"struct TokenUtils.DeployInfo memory"}},"src":"4412:125:56","typeDescriptions":{"typeIdentifier":"t_struct$_DeployInfo_$16534_storage","typeString":"struct TokenUtils.DeployInfo storage ref"}},"id":16744,"nodeType":"ExpressionStatement","src":"4412:125:56"},{"eventCall":{"arguments":[{"id":16746,"name":"tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16673,"src":"4566:10:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":16747,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16717,"src":"4578:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16748,"name":"tokenType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16671,"src":"4585:9:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":16745,"name":"TokenCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16518,"src":"4553:12:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint8_$returns$__$","typeString":"function (string memory,address,uint8)"}},"id":16749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4553:42:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16750,"nodeType":"EmitStatement","src":"4548:47:56"}]},"id":16752,"implemented":true,"kind":"function","modifiers":[],"name":"_create","nameLocation":"3547:7:56","nodeType":"FunctionDefinition","parameters":{"id":16678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16671,"mutability":"mutable","name":"tokenType","nameLocation":"3561:9:56","nodeType":"VariableDeclaration","scope":16752,"src":"3555:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16670,"name":"uint8","nodeType":"ElementaryTypeName","src":"3555:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":16673,"mutability":"mutable","name":"tvmAddress","nameLocation":"3588:10:56","nodeType":"VariableDeclaration","scope":16752,"src":"3572:26:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16672,"name":"string","nodeType":"ElementaryTypeName","src":"3572:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16675,"mutability":"mutable","name":"initCode","nameLocation":"3613:8:56","nodeType":"VariableDeclaration","scope":16752,"src":"3600:21:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16674,"name":"bytes","nodeType":"ElementaryTypeName","src":"3600:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16677,"mutability":"mutable","name":"initData","nameLocation":"3636:8:56","nodeType":"VariableDeclaration","scope":16752,"src":"3623:21:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16676,"name":"bytes","nodeType":"ElementaryTypeName","src":"3623:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3554:91:56"},"returnParameters":{"id":16679,"nodeType":"ParameterList","parameters":[],"src":"3655:0:56"},"scope":16956,"src":"3538:1064:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[17585],"body":{"id":16794,"nodeType":"Block","src":"4804:279:56","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16759,"name":"_checkCrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16605,"src":"4814:21:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":16760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4814:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16761,"nodeType":"ExpressionStatement","src":"4814:23:56"},{"assignments":[16763],"declarations":[{"constant":false,"id":16763,"mutability":"mutable","name":"initCode","nameLocation":"4861:8:56","nodeType":"VariableDeclaration","scope":16794,"src":"4848:21:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16762,"name":"bytes","nodeType":"ElementaryTypeName","src":"4848:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16771,"initialValue":{"arguments":[{"arguments":[{"id":16768,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16550,"src":"4891:16:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4883:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16766,"name":"address","nodeType":"ElementaryTypeName","src":"4883:7:56","typeDescriptions":{}}},"id":16769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4883:25:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16764,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4872:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4876:6:56","memberName":"encode","nodeType":"MemberAccess","src":"4872:10:56","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4872:37:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4848:61:56"},{"assignments":[16773],"declarations":[{"constant":false,"id":16773,"mutability":"mutable","name":"initData","nameLocation":"4932:8:56","nodeType":"VariableDeclaration","scope":16794,"src":"4919:21:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16772,"name":"bytes","nodeType":"ElementaryTypeName","src":"4919:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16785,"initialValue":{"arguments":[{"expression":{"id":16776,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16756,"src":"4954:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_calldata_ptr","typeString":"struct TokenInfo calldata"}},"id":16777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4959:4:56","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":15976,"src":"4954:9:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":16778,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16756,"src":"4965:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_calldata_ptr","typeString":"struct TokenInfo calldata"}},"id":16779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4970:6:56","memberName":"symbol","nodeType":"MemberAccess","referencedDeclaration":15978,"src":"4965:11:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":16780,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16756,"src":"4978:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_calldata_ptr","typeString":"struct TokenInfo calldata"}},"id":16781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4983:8:56","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":15980,"src":"4978:13:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":16782,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16756,"src":"4993:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_calldata_ptr","typeString":"struct TokenInfo calldata"}},"id":16783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4998:10:56","memberName":"tvmAddress","nodeType":"MemberAccess","referencedDeclaration":15982,"src":"4993:15:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":16774,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4943:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4947:6:56","memberName":"encode","nodeType":"MemberAccess","src":"4943:10:56","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4943:66:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4919:90:56"},{"expression":{"arguments":[{"id":16787,"name":"ERC20_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16526,"src":"5028:10:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":16788,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16756,"src":"5040:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_calldata_ptr","typeString":"struct TokenInfo calldata"}},"id":16789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5045:10:56","memberName":"tvmAddress","nodeType":"MemberAccess","referencedDeclaration":15982,"src":"5040:15:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":16790,"name":"initCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16763,"src":"5057:8:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":16791,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16773,"src":"5067:8:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16786,"name":"_create","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16752,"src":"5020:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint8_$_t_string_calldata_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint8,string calldata,bytes memory,bytes memory)"}},"id":16792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5020:56:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16793,"nodeType":"ExpressionStatement","src":"5020:56:56"}]},"documentation":{"id":16753,"nodeType":"StructuredDocumentation","src":"4608:127:56","text":" @dev Deploy new ERC20 Cross-Chain Layer token.\n @param info TokenInfo struct containing token details."},"functionSelector":"1963202b","id":16795,"implemented":true,"kind":"function","modifiers":[],"name":"create","nameLocation":"4749:6:56","nodeType":"FunctionDefinition","parameters":{"id":16757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16756,"mutability":"mutable","name":"info","nameLocation":"4784:4:56","nodeType":"VariableDeclaration","scope":16795,"src":"4765:23:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_calldata_ptr","typeString":"struct TokenInfo"},"typeName":{"id":16755,"nodeType":"UserDefinedTypeName","pathNode":{"id":16754,"name":"TokenInfo","nameLocations":["4765:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":15983,"src":"4765:9:56"},"referencedDeclaration":15983,"src":"4765:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_storage_ptr","typeString":"struct TokenInfo"}},"visibility":"internal"}],"src":"4755:39:56"},"returnParameters":{"id":16758,"nodeType":"ParameterList","parameters":[],"src":"4804:0:56"},"scope":16956,"src":"4740:343:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17592],"body":{"id":16837,"nodeType":"Block","src":"5288:279:56","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16802,"name":"_checkCrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16605,"src":"5298:21:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":16803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5298:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16804,"nodeType":"ExpressionStatement","src":"5298:23:56"},{"assignments":[16806],"declarations":[{"constant":false,"id":16806,"mutability":"mutable","name":"initCode","nameLocation":"5345:8:56","nodeType":"VariableDeclaration","scope":16837,"src":"5332:21:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16805,"name":"bytes","nodeType":"ElementaryTypeName","src":"5332:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16814,"initialValue":{"arguments":[{"arguments":[{"id":16811,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16550,"src":"5375:16:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5367:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16809,"name":"address","nodeType":"ElementaryTypeName","src":"5367:7:56","typeDescriptions":{}}},"id":16812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5367:25:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16807,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5356:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5360:6:56","memberName":"encode","nodeType":"MemberAccess","src":"5356:10:56","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:37:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5332:61:56"},{"assignments":[16816],"declarations":[{"constant":false,"id":16816,"mutability":"mutable","name":"initData","nameLocation":"5416:8:56","nodeType":"VariableDeclaration","scope":16837,"src":"5403:21:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16815,"name":"bytes","nodeType":"ElementaryTypeName","src":"5403:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16828,"initialValue":{"arguments":[{"expression":{"id":16819,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16799,"src":"5438:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_calldata_ptr","typeString":"struct NFTInfo calldata"}},"id":16820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5443:4:56","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":15986,"src":"5438:9:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":16821,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16799,"src":"5449:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_calldata_ptr","typeString":"struct NFTInfo calldata"}},"id":16822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5454:6:56","memberName":"symbol","nodeType":"MemberAccess","referencedDeclaration":15988,"src":"5449:11:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":16823,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16799,"src":"5462:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_calldata_ptr","typeString":"struct NFTInfo calldata"}},"id":16824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5467:7:56","memberName":"baseURI","nodeType":"MemberAccess","referencedDeclaration":15990,"src":"5462:12:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":16825,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16799,"src":"5476:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_calldata_ptr","typeString":"struct NFTInfo calldata"}},"id":16826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5481:10:56","memberName":"tvmAddress","nodeType":"MemberAccess","referencedDeclaration":15992,"src":"5476:15:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":16817,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5427:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5431:6:56","memberName":"encode","nodeType":"MemberAccess","src":"5427:10:56","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5427:65:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5403:89:56"},{"expression":{"arguments":[{"id":16830,"name":"ERC721_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16529,"src":"5511:11:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":16831,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16799,"src":"5524:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_calldata_ptr","typeString":"struct NFTInfo calldata"}},"id":16832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5529:10:56","memberName":"tvmAddress","nodeType":"MemberAccess","referencedDeclaration":15992,"src":"5524:15:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":16833,"name":"initCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16806,"src":"5541:8:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":16834,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16816,"src":"5551:8:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16829,"name":"_create","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16752,"src":"5503:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint8_$_t_string_calldata_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint8,string calldata,bytes memory,bytes memory)"}},"id":16835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5503:57:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16836,"nodeType":"ExpressionStatement","src":"5503:57:56"}]},"documentation":{"id":16796,"nodeType":"StructuredDocumentation","src":"5089:126:56","text":" @dev Deploy new ERC721 Cross-Chain Layer token.\n @param info NFTInfo struct containing token details."},"functionSelector":"1adc56db","id":16838,"implemented":true,"kind":"function","modifiers":[],"name":"createERC721","nameLocation":"5229:12:56","nodeType":"FunctionDefinition","parameters":{"id":16800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16799,"mutability":"mutable","name":"info","nameLocation":"5268:4:56","nodeType":"VariableDeclaration","scope":16838,"src":"5251:21:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_calldata_ptr","typeString":"struct NFTInfo"},"typeName":{"id":16798,"nodeType":"UserDefinedTypeName","pathNode":{"id":16797,"name":"NFTInfo","nameLocations":["5251:7:56"],"nodeType":"IdentifierPath","referencedDeclaration":15993,"src":"5251:7:56"},"referencedDeclaration":15993,"src":"5251:7:56","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_storage_ptr","typeString":"struct NFTInfo"}},"visibility":"internal"}],"src":"5241:37:56"},"returnParameters":{"id":16801,"nodeType":"ParameterList","parameters":[],"src":"5288:0:56"},"scope":16956,"src":"5220:347:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17600],"body":{"id":16853,"nodeType":"Block","src":"5811:61:56","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":16851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":16846,"name":"_tacTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16539,"src":"5828:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_DeployInfo_$16534_storage_$","typeString":"mapping(address => struct TokenUtils.DeployInfo storage ref)"}},"id":16848,"indexExpression":{"id":16847,"name":"evmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16841,"src":"5839:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5828:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_DeployInfo_$16534_storage","typeString":"struct TokenUtils.DeployInfo storage ref"}},"id":16849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5851:9:56","memberName":"tokenType","nodeType":"MemberAccess","referencedDeclaration":16531,"src":"5828:32:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5864:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5828:37:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16845,"id":16852,"nodeType":"Return","src":"5821:44:56"}]},"documentation":{"id":16839,"nodeType":"StructuredDocumentation","src":"5611:130:56","text":" @dev Checks if the token exists or not by evm address\n @param evmAddress Corresponding EVM token address."},"functionSelector":"f6a3d24e","id":16854,"implemented":true,"kind":"function","modifiers":[],"name":"exists","nameLocation":"5755:6:56","nodeType":"FunctionDefinition","parameters":{"id":16842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16841,"mutability":"mutable","name":"evmAddress","nameLocation":"5770:10:56","nodeType":"VariableDeclaration","scope":16854,"src":"5762:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16840,"name":"address","nodeType":"ElementaryTypeName","src":"5762:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5761:20:56"},"returnParameters":{"id":16845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16844,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16854,"src":"5805:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16843,"name":"bool","nodeType":"ElementaryTypeName","src":"5805:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5804:6:56"},"scope":16956,"src":"5746:126:56","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17608],"body":{"id":16871,"nodeType":"Block","src":"6086:71:56","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16862,"name":"_tvmToEVMTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16543,"src":"6103:21:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_address_$","typeString":"mapping(string memory => address)"}},"id":16864,"indexExpression":{"id":16863,"name":"tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16857,"src":"6125:10:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6103:33:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":16867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6148:1:56","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":16866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6140:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16865,"name":"address","nodeType":"ElementaryTypeName","src":"6140:7:56","typeDescriptions":{}}},"id":16868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6103:47:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16861,"id":16870,"nodeType":"Return","src":"6096:54:56"}]},"documentation":{"id":16855,"nodeType":"StructuredDocumentation","src":"5878:130:56","text":" @dev Checks if the token exists or not by tvm address\n @param tvmAddress Corresponding TON token address."},"functionSelector":"261a323e","id":16872,"implemented":true,"kind":"function","modifiers":[],"name":"exists","nameLocation":"6022:6:56","nodeType":"FunctionDefinition","parameters":{"id":16858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16857,"mutability":"mutable","name":"tvmAddress","nameLocation":"6045:10:56","nodeType":"VariableDeclaration","scope":16872,"src":"6029:26:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16856,"name":"string","nodeType":"ElementaryTypeName","src":"6029:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6028:28:56"},"returnParameters":{"id":16861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16872,"src":"6080:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16859,"name":"bool","nodeType":"ElementaryTypeName","src":"6080:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6079:6:56"},"scope":16956,"src":"6013:144:56","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16912,"nodeType":"Block","src":"6289:227:56","statements":[{"assignments":[16882],"declarations":[{"constant":false,"id":16882,"mutability":"mutable","name":"salt","nameLocation":"6307:4:56","nodeType":"VariableDeclaration","scope":16912,"src":"6299:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16881,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6299:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":16889,"initialValue":{"arguments":[{"arguments":[{"id":16886,"name":"tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"6341:10:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":16884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6324:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6328:12:56","memberName":"encodePacked","nodeType":"MemberAccess","src":"6324:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6324:28:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16883,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6314:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6314:39:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6299:54:56"},{"assignments":[16891],"declarations":[{"constant":false,"id":16891,"mutability":"mutable","name":"initCode","nameLocation":"6376:8:56","nodeType":"VariableDeclaration","scope":16912,"src":"6363:21:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16890,"name":"bytes","nodeType":"ElementaryTypeName","src":"6363:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":16899,"initialValue":{"arguments":[{"arguments":[{"id":16896,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16550,"src":"6406:16:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6398:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16894,"name":"address","nodeType":"ElementaryTypeName","src":"6398:7:56","typeDescriptions":{}}},"id":16897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6398:25:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6387:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6391:6:56","memberName":"encode","nodeType":"MemberAccess","src":"6387:10:56","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6387:37:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6363:61:56"},{"expression":{"arguments":[{"id":16904,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16882,"src":"6479:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16905,"name":"initCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16891,"src":"6485:8:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":16908,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6503:4:56","typeDescriptions":{"typeIdentifier":"t_contract$_TokenUtils_$16956","typeString":"contract TokenUtils"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenUtils_$16956","typeString":"contract TokenUtils"}],"id":16907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6495:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16906,"name":"address","nodeType":"ElementaryTypeName","src":"6495:7:56","typeDescriptions":{}}},"id":16909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6495:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":16900,"name":"_factories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16548,"src":"6442:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITokenFactory_$17568_$","typeString":"mapping(uint256 => contract ITokenFactory)"}},"id":16902,"indexExpression":{"id":16901,"name":"tokenType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16876,"src":"6453:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6442:21:56","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenFactory_$17568","typeString":"contract ITokenFactory"}},"id":16903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6464:14:56","memberName":"computeAddress","nodeType":"MemberAccess","referencedDeclaration":17567,"src":"6442:36:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes memory,address) view external returns (address)"}},"id":16910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6442:67:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16880,"id":16911,"nodeType":"Return","src":"6435:74:56"}]},"id":16913,"implemented":true,"kind":"function","modifiers":[],"name":"_computeAddress","nameLocation":"6172:15:56","nodeType":"FunctionDefinition","parameters":{"id":16877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16874,"mutability":"mutable","name":"tvmAddress","nameLocation":"6213:10:56","nodeType":"VariableDeclaration","scope":16913,"src":"6197:26:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16873,"name":"string","nodeType":"ElementaryTypeName","src":"6197:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16876,"mutability":"mutable","name":"tokenType","nameLocation":"6241:9:56","nodeType":"VariableDeclaration","scope":16913,"src":"6233:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16875,"name":"uint256","nodeType":"ElementaryTypeName","src":"6233:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6187:69:56"},"returnParameters":{"id":16880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16913,"src":"6280:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16878,"name":"address","nodeType":"ElementaryTypeName","src":"6280:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6279:9:56"},"scope":16956,"src":"6163:353:56","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[17616],"body":{"id":16926,"nodeType":"Block","src":"6752:63:56","statements":[{"expression":{"arguments":[{"id":16922,"name":"tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16916,"src":"6785:10:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":16923,"name":"ERC20_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16526,"src":"6797:10:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":16921,"name":"_computeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16913,"src":"6769:15:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_calldata_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (string calldata,uint256) view returns (address)"}},"id":16924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6769:39:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16920,"id":16925,"nodeType":"Return","src":"6762:46:56"}]},"documentation":{"id":16914,"nodeType":"StructuredDocumentation","src":"6522:127:56","text":" @dev Get address of ERC20 Cross-Chain Layer token.\n @param tvmAddress Corresponding TON token address."},"functionSelector":"1f596f89","id":16927,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"6663:14:56","nodeType":"FunctionDefinition","parameters":{"id":16917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16916,"mutability":"mutable","name":"tvmAddress","nameLocation":"6703:10:56","nodeType":"VariableDeclaration","scope":16927,"src":"6687:26:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16915,"name":"string","nodeType":"ElementaryTypeName","src":"6687:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6677:42:56"},"returnParameters":{"id":16920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16927,"src":"6743:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16918,"name":"address","nodeType":"ElementaryTypeName","src":"6743:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6742:9:56"},"scope":16956,"src":"6654:161:56","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17624],"body":{"id":16940,"nodeType":"Block","src":"7063:64:56","statements":[{"expression":{"arguments":[{"id":16936,"name":"tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"7096:10:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":16937,"name":"ERC721_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16529,"src":"7108:11:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":16935,"name":"_computeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16913,"src":"7080:15:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_calldata_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (string calldata,uint256) view returns (address)"}},"id":16938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7080:40:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16934,"id":16939,"nodeType":"Return","src":"7073:47:56"}]},"documentation":{"id":16928,"nodeType":"StructuredDocumentation","src":"6821:133:56","text":" @dev Get address of ERC721 Cross-Chain Layer token.\n @param tvmAddress Corresponding TON collection address."},"functionSelector":"96c8e820","id":16941,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddressERC721","nameLocation":"6968:20:56","nodeType":"FunctionDefinition","parameters":{"id":16931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16930,"mutability":"mutable","name":"tvmAddress","nameLocation":"7014:10:56","nodeType":"VariableDeclaration","scope":16941,"src":"6998:26:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16929,"name":"string","nodeType":"ElementaryTypeName","src":"6998:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6988:42:56"},"returnParameters":{"id":16934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16933,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16941,"src":"7054:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16932,"name":"address","nodeType":"ElementaryTypeName","src":"7054:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7053:9:56"},"scope":16956,"src":"6959:168:56","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16954,"nodeType":"Block","src":"7320:57:56","statements":[{"expression":{"expression":{"baseExpression":{"id":16949,"name":"_tacTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16539,"src":"7337:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_DeployInfo_$16534_storage_$","typeString":"mapping(address => struct TokenUtils.DeployInfo storage ref)"}},"id":16951,"indexExpression":{"id":16950,"name":"evmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16944,"src":"7348:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7337:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_DeployInfo_$16534_storage","typeString":"struct TokenUtils.DeployInfo storage ref"}},"id":16952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7360:10:56","memberName":"deployTime","nodeType":"MemberAccess","referencedDeclaration":16533,"src":"7337:33:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":16948,"id":16953,"nodeType":"Return","src":"7330:40:56"}]},"documentation":{"id":16942,"nodeType":"StructuredDocumentation","src":"7133:89:56","text":" @dev Get token deploy timestamp\n @param evmAddress Token address"},"functionSelector":"851bdf11","id":16955,"implemented":true,"kind":"function","modifiers":[],"name":"getTokenDeployTime","nameLocation":"7236:18:56","nodeType":"FunctionDefinition","parameters":{"id":16945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16944,"mutability":"mutable","name":"evmAddress","nameLocation":"7272:10:56","nodeType":"VariableDeclaration","scope":16955,"src":"7264:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16943,"name":"address","nodeType":"ElementaryTypeName","src":"7264:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7254:34:56"},"returnParameters":{"id":16948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16955,"src":"7312:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16946,"name":"uint64","nodeType":"ElementaryTypeName","src":"7312:6:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7311:8:56"},"scope":16956,"src":"7227:150:56","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":16957,"src":"862:6518:56","usedErrors":[711,714,975,980,2923,2926,3422,3435,6379,6770,16230,16501,16505,16509],"usedEvents":[719,2935,2944,2953,3238,16518]}],"src":"33:7348:56"},"id":56},"contracts/core/tokens/CrossChainLayerERC20.sol":{"ast":{"absolutePath":"contracts/core/tokens/CrossChainLayerERC20.sol","exportedSymbols":{"CrossChainLayerERC20":[17117],"ERC20Upgradeable":[1747],"ICrossChainLayerERC20":[17692],"TokenInfo":[15983]},"id":17118,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":16958,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:57"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","id":16960,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17118,"sourceUnit":1748,"src":"58:104:57","symbolAliases":[{"foreign":{"id":16959,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"67:16:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../Structs.sol","id":16962,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17118,"sourceUnit":16218,"src":"164:43:57","symbolAliases":[{"foreign":{"id":16961,"name":"TokenInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"173:9:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/tokens/ICrossChainLayerERC20.sol","file":"../../interfaces/tokens/ICrossChainLayerERC20.sol","id":16964,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17118,"sourceUnit":17693,"src":"208:90:57","symbolAliases":[{"foreign":{"id":16963,"name":"ICrossChainLayerERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17692,"src":"217:21:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16966,"name":"ERC20Upgradeable","nameLocations":["426:16:57"],"nodeType":"IdentifierPath","referencedDeclaration":1747,"src":"426:16:57"},"id":16967,"nodeType":"InheritanceSpecifier","src":"426:16:57"},{"baseName":{"id":16968,"name":"ICrossChainLayerERC20","nameLocations":["444:21:57"],"nodeType":"IdentifierPath","referencedDeclaration":17692,"src":"444:21:57"},"id":16969,"nodeType":"InheritanceSpecifier","src":"444:21:57"}],"canonicalName":"CrossChainLayerERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":16965,"nodeType":"StructuredDocumentation","src":"300:92:57","text":" @title CrossChainLayer\n @dev A contract for all Cross-Chain Layer ERC20 tokens."},"fullyImplemented":true,"id":17117,"linearizedBaseContracts":[17117,17692,1747,3307,4761,4735,2873,948],"name":"CrossChainLayerERC20","nameLocation":"402:20:57","nodeType":"ContractDefinition","nodes":[{"errorSelector":"344fd586","id":16971,"name":"UnauthorizedAccess","nameLocation":"493:18:57","nodeType":"ErrorDefinition","parameters":{"id":16970,"nodeType":"ParameterList","parameters":[],"src":"511:2:57"},"src":"487:27:57"},{"constant":false,"id":16973,"mutability":"mutable","name":"__decimals","nameLocation":"572:10:57","nodeType":"VariableDeclaration","scope":17117,"src":"558:24:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16972,"name":"uint8","nodeType":"ElementaryTypeName","src":"558:5:57","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"id":16975,"mutability":"mutable","name":"__tvmAddress","nameLocation":"603:12:57","nodeType":"VariableDeclaration","scope":17117,"src":"588:27:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":16974,"name":"string","nodeType":"ElementaryTypeName","src":"588:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":16977,"mutability":"mutable","name":"__crossChainLayer","nameLocation":"637:17:57","nodeType":"VariableDeclaration","scope":17117,"src":"621:33:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16976,"name":"address","nodeType":"ElementaryTypeName","src":"621:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":16979,"mutability":"mutable","name":"__tokenUtils","nameLocation":"676:12:57","nodeType":"VariableDeclaration","scope":17117,"src":"660:28:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16978,"name":"address","nodeType":"ElementaryTypeName","src":"660:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"body":{"id":16994,"nodeType":"Block","src":"898:87:57","statements":[{"expression":{"id":16987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16985,"name":"__crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16977,"src":"908:17:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16986,"name":"crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16982,"src":"928:15:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"908:35:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16988,"nodeType":"ExpressionStatement","src":"908:35:57"},{"expression":{"id":16992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16989,"name":"__tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16979,"src":"953:12:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16990,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"968:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"972:6:57","memberName":"sender","nodeType":"MemberAccess","src":"968:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"953:25:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16993,"nodeType":"ExpressionStatement","src":"953:25:57"}]},"documentation":{"id":16980,"nodeType":"StructuredDocumentation","src":"695:157:57","text":" @dev Constructor function to initialize the contract with initial state.\n @param crossChainLayer Cross-chain layer contract address."},"id":16995,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16982,"mutability":"mutable","name":"crossChainLayer","nameLocation":"877:15:57","nodeType":"VariableDeclaration","scope":16995,"src":"869:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16981,"name":"address","nodeType":"ElementaryTypeName","src":"869:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"868:25:57"},"returnParameters":{"id":16984,"nodeType":"ParameterList","parameters":[],"src":"898:0:57"},"scope":17117,"src":"857:128:57","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17025,"nodeType":"Block","src":"1466:141:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17009,"name":"_checkTokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17052,"src":"1476:16:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":17010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1476:18:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17011,"nodeType":"ExpressionStatement","src":"1476:18:57"},{"expression":{"arguments":[{"id":17013,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16998,"src":"1517:5:57","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17014,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17000,"src":"1524:7:57","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"}],"id":17012,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"1504:12:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":17015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1504:28:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17016,"nodeType":"ExpressionStatement","src":"1504:28:57"},{"expression":{"id":17019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17017,"name":"__decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16973,"src":"1542:10:57","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17018,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17002,"src":"1555:9:57","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1542:22:57","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":17020,"nodeType":"ExpressionStatement","src":"1542:22:57"},{"expression":{"id":17023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17021,"name":"__tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16975,"src":"1574:12:57","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17022,"name":"tvmAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17004,"src":"1589:11:57","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1574:26:57","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17024,"nodeType":"ExpressionStatement","src":"1574:26:57"}]},"documentation":{"id":16996,"nodeType":"StructuredDocumentation","src":"991:285:57","text":" @dev Constructor function to initialize the contract with initial state.\n @param name_ ERC20 token name.\n @param symbol_ ERC20 token symbol.\n @param decimals_ ERC20 token decimals override.\n @param tvmAddress_ Correspondent TVM token address."},"functionSelector":"cdbed7ad","id":17026,"implemented":true,"kind":"function","modifiers":[{"id":17007,"kind":"modifierInvocation","modifierName":{"id":17006,"name":"initializer","nameLocations":["1450:11:57"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"1450:11:57"},"nodeType":"ModifierInvocation","src":"1450:11:57"}],"name":"initialize","nameLocation":"1290:10:57","nodeType":"FunctionDefinition","parameters":{"id":17005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16998,"mutability":"mutable","name":"name_","nameLocation":"1324:5:57","nodeType":"VariableDeclaration","scope":17026,"src":"1310:19:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16997,"name":"string","nodeType":"ElementaryTypeName","src":"1310:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17000,"mutability":"mutable","name":"symbol_","nameLocation":"1353:7:57","nodeType":"VariableDeclaration","scope":17026,"src":"1339:21:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16999,"name":"string","nodeType":"ElementaryTypeName","src":"1339:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17002,"mutability":"mutable","name":"decimals_","nameLocation":"1376:9:57","nodeType":"VariableDeclaration","scope":17026,"src":"1370:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":17001,"name":"uint8","nodeType":"ElementaryTypeName","src":"1370:5:57","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":17004,"mutability":"mutable","name":"tvmAddress_","nameLocation":"1409:11:57","nodeType":"VariableDeclaration","scope":17026,"src":"1395:25:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17003,"name":"string","nodeType":"ElementaryTypeName","src":"1395:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1300:126:57"},"returnParameters":{"id":17008,"nodeType":"ParameterList","parameters":[],"src":"1466:0:57"},"scope":17117,"src":"1281:326:57","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17038,"nodeType":"Block","src":"1660:105:57","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17029,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1674:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1678:6:57","memberName":"sender","nodeType":"MemberAccess","src":"1674:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":17031,"name":"__crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16977,"src":"1688:17:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1674:31:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17037,"nodeType":"IfStatement","src":"1670:89:57","trueBody":{"id":17036,"nodeType":"Block","src":"1707:52:57","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17033,"name":"UnauthorizedAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16971,"src":"1728:18:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1728:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17035,"nodeType":"RevertStatement","src":"1721:27:57"}]}}]},"id":17039,"implemented":true,"kind":"function","modifiers":[],"name":"_checkCrossChainLayer","nameLocation":"1622:21:57","nodeType":"FunctionDefinition","parameters":{"id":17027,"nodeType":"ParameterList","parameters":[],"src":"1643:2:57"},"returnParameters":{"id":17028,"nodeType":"ParameterList","parameters":[],"src":"1660:0:57"},"scope":17117,"src":"1613:152:57","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":17051,"nodeType":"Block","src":"1813:100:57","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1827:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1831:6:57","memberName":"sender","nodeType":"MemberAccess","src":"1827:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":17044,"name":"__tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16979,"src":"1841:12:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1827:26:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17050,"nodeType":"IfStatement","src":"1823:84:57","trueBody":{"id":17049,"nodeType":"Block","src":"1855:52:57","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17046,"name":"UnauthorizedAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16971,"src":"1876:18:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17048,"nodeType":"RevertStatement","src":"1869:27:57"}]}}]},"id":17052,"implemented":true,"kind":"function","modifiers":[],"name":"_checkTokenUtils","nameLocation":"1780:16:57","nodeType":"FunctionDefinition","parameters":{"id":17040,"nodeType":"ParameterList","parameters":[],"src":"1796:2:57"},"returnParameters":{"id":17041,"nodeType":"ParameterList","parameters":[],"src":"1813:0:57"},"scope":17117,"src":"1771:142:57","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[17670],"body":{"id":17068,"nodeType":"Block","src":"2111:67:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17060,"name":"_checkCrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17039,"src":"2121:21:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":17061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:23:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17062,"nodeType":"ExpressionStatement","src":"2121:23:57"},{"expression":{"arguments":[{"id":17064,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17055,"src":"2160:2:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17065,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17057,"src":"2164:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17063,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"2154:5:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:17:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17067,"nodeType":"ExpressionStatement","src":"2154:17:57"}]},"documentation":{"id":17053,"nodeType":"StructuredDocumentation","src":"1919:136:57","text":" @dev Function to mint tokens\n @param to Address to mint tokens to\n @param amount Amount of tokens to mint"},"functionSelector":"40c10f19","id":17069,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"2069:4:57","nodeType":"FunctionDefinition","parameters":{"id":17058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17055,"mutability":"mutable","name":"to","nameLocation":"2082:2:57","nodeType":"VariableDeclaration","scope":17069,"src":"2074:10:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17054,"name":"address","nodeType":"ElementaryTypeName","src":"2074:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17057,"mutability":"mutable","name":"amount","nameLocation":"2094:6:57","nodeType":"VariableDeclaration","scope":17069,"src":"2086:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17056,"name":"uint256","nodeType":"ElementaryTypeName","src":"2086:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2073:28:57"},"returnParameters":{"id":17059,"nodeType":"ParameterList","parameters":[],"src":"2111:0:57"},"scope":17117,"src":"2060:118:57","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17678],"body":{"id":17085,"nodeType":"Block","src":"2380:69:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17077,"name":"_checkCrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17039,"src":"2390:21:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":17078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2390:23:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17079,"nodeType":"ExpressionStatement","src":"2390:23:57"},{"expression":{"arguments":[{"id":17081,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17072,"src":"2429:4:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17082,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17074,"src":"2435:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17080,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1612,"src":"2423:5:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":17083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2423:19:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17084,"nodeType":"ExpressionStatement","src":"2423:19:57"}]},"documentation":{"id":17070,"nodeType":"StructuredDocumentation","src":"2184:138:57","text":" @dev Function to burn tokens\n @param from Address to mint tokens to\n @param amount Amount of tokens to burn"},"functionSelector":"9dc29fac","id":17086,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"2336:4:57","nodeType":"FunctionDefinition","parameters":{"id":17075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17072,"mutability":"mutable","name":"from","nameLocation":"2349:4:57","nodeType":"VariableDeclaration","scope":17086,"src":"2341:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17071,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17074,"mutability":"mutable","name":"amount","nameLocation":"2363:6:57","nodeType":"VariableDeclaration","scope":17086,"src":"2355:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17073,"name":"uint256","nodeType":"ElementaryTypeName","src":"2355:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2340:30:57"},"returnParameters":{"id":17076,"nodeType":"ParameterList","parameters":[],"src":"2380:0:57"},"scope":17117,"src":"2327:122:57","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1267,17684],"body":{"id":17097,"nodeType":"Block","src":"2676:34:57","statements":[{"expression":{"id":17095,"name":"__decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16973,"src":"2693:10:57","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":17094,"id":17096,"nodeType":"Return","src":"2686:17:57"}]},"documentation":{"id":17087,"nodeType":"StructuredDocumentation","src":"2455:118:57","text":" @dev Returns the number of decimals used to get its user representation.\n      ERC20 override"},"functionSelector":"313ce567","id":17098,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"2587:8:57","nodeType":"FunctionDefinition","overrides":{"id":17091,"nodeType":"OverrideSpecifier","overrides":[{"id":17089,"name":"ERC20Upgradeable","nameLocations":["2619:16:57"],"nodeType":"IdentifierPath","referencedDeclaration":1747,"src":"2619:16:57"},{"id":17090,"name":"ICrossChainLayerERC20","nameLocations":["2637:21:57"],"nodeType":"IdentifierPath","referencedDeclaration":17692,"src":"2637:21:57"}],"src":"2610:49:57"},"parameters":{"id":17088,"nodeType":"ParameterList","parameters":[],"src":"2595:2:57"},"returnParameters":{"id":17094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17098,"src":"2669:5:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":17092,"name":"uint8","nodeType":"ElementaryTypeName","src":"2669:5:57","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2668:7:57"},"scope":17117,"src":"2578:132:57","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[17691],"body":{"id":17115,"nodeType":"Block","src":"2822:173:57","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":17106,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1242,"src":"2869:4:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":17107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2869:6:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17108,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"2897:6:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":17109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2897:8:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17110,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[17098],"referencedDeclaration":17098,"src":"2929:8:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":17111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2929:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":17112,"name":"__tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16975,"src":"2965:12:57","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":17105,"name":"TokenInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"2839:9:57","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TokenInfo_$15983_storage_ptr_$","typeString":"type(struct TokenInfo storage pointer)"}},"id":17113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2863:4:57","2889:6:57","2919:8:57","2953:10:57"],"names":["name","symbol","decimals","tvmAddress"],"nodeType":"FunctionCall","src":"2839:149:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_memory_ptr","typeString":"struct TokenInfo memory"}},"functionReturnParameters":17104,"id":17114,"nodeType":"Return","src":"2832:156:57"}]},"documentation":{"id":17099,"nodeType":"StructuredDocumentation","src":"2716:43:57","text":" @dev Returns token info."},"functionSelector":"5a9b0b89","id":17116,"implemented":true,"kind":"function","modifiers":[],"name":"getInfo","nameLocation":"2773:7:57","nodeType":"FunctionDefinition","parameters":{"id":17100,"nodeType":"ParameterList","parameters":[],"src":"2780:2:57"},"returnParameters":{"id":17104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17116,"src":"2804:16:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_memory_ptr","typeString":"struct TokenInfo"},"typeName":{"id":17102,"nodeType":"UserDefinedTypeName","pathNode":{"id":17101,"name":"TokenInfo","nameLocations":["2804:9:57"],"nodeType":"IdentifierPath","referencedDeclaration":15983,"src":"2804:9:57"},"referencedDeclaration":15983,"src":"2804:9:57","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_storage_ptr","typeString":"struct TokenInfo"}},"visibility":"internal"}],"src":"2803:18:57"},"scope":17117,"src":"2764:231:57","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":17118,"src":"393:2604:57","usedErrors":[711,714,3277,3282,3287,3296,3301,3306,16971],"usedEvents":[719,4669,4678]}],"src":"32:2966:57"},"id":57},"contracts/core/tokens/CrossChainLayerERC721.sol":{"ast":{"absolutePath":"contracts/core/tokens/CrossChainLayerERC721.sol","exportedSymbols":{"CrossChainLayerERC721":[17310],"ERC721Upgradeable":[2827],"ICrossChainLayerERC721":[17730],"IERC165":[8493],"NFTInfo":[15993]},"id":17311,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17119,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:58"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","id":17121,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17311,"sourceUnit":2828,"src":"58:107:58","symbolAliases":[{"foreign":{"id":17120,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2827,"src":"67:17:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":17123,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17311,"sourceUnit":8494,"src":"166:82:58","symbolAliases":[{"foreign":{"id":17122,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"175:7:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/tokens/ICrossChainLayerERC721.sol","file":"../../interfaces/tokens/ICrossChainLayerERC721.sol","id":17125,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17311,"sourceUnit":17731,"src":"250:92:58","symbolAliases":[{"foreign":{"id":17124,"name":"ICrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17730,"src":"259:22:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../Structs.sol","id":17127,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17311,"sourceUnit":16218,"src":"343:41:58","symbolAliases":[{"foreign":{"id":17126,"name":"NFTInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15993,"src":"352:7:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17128,"name":"ERC721Upgradeable","nameLocations":["420:17:58"],"nodeType":"IdentifierPath","referencedDeclaration":2827,"src":"420:17:58"},"id":17129,"nodeType":"InheritanceSpecifier","src":"420:17:58"},{"baseName":{"id":17130,"name":"ICrossChainLayerERC721","nameLocations":["439:22:58"],"nodeType":"IdentifierPath","referencedDeclaration":17730,"src":"439:22:58"},"id":17131,"nodeType":"InheritanceSpecifier","src":"439:22:58"}],"canonicalName":"CrossChainLayerERC721","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":17310,"linearizedBaseContracts":[17310,17730,2827,3355,6292,6246,2913,8493,2873,948],"name":"CrossChainLayerERC721","nameLocation":"395:21:58","nodeType":"ContractDefinition","nodes":[{"errorSelector":"344fd586","id":17133,"name":"UnauthorizedAccess","nameLocation":"488:18:58","nodeType":"ErrorDefinition","parameters":{"id":17132,"nodeType":"ParameterList","parameters":[],"src":"506:2:58"},"src":"482:27:58"},{"constant":false,"id":17135,"mutability":"mutable","name":"__tvmAddress","nameLocation":"569:12:58","nodeType":"VariableDeclaration","scope":17310,"src":"554:27:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17134,"name":"string","nodeType":"ElementaryTypeName","src":"554:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":17137,"mutability":"mutable","name":"__crossChainLayer","nameLocation":"603:17:58","nodeType":"VariableDeclaration","scope":17310,"src":"587:33:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17136,"name":"address","nodeType":"ElementaryTypeName","src":"587:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":17139,"mutability":"mutable","name":"__tokenUtils","nameLocation":"642:12:58","nodeType":"VariableDeclaration","scope":17310,"src":"626:28:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17138,"name":"address","nodeType":"ElementaryTypeName","src":"626:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":17141,"mutability":"mutable","name":"__baseURI","nameLocation":"676:9:58","nodeType":"VariableDeclaration","scope":17310,"src":"661:24:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17140,"name":"string","nodeType":"ElementaryTypeName","src":"661:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":17156,"nodeType":"Block","src":"895:87:58","statements":[{"expression":{"id":17149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17147,"name":"__crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17137,"src":"905:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17148,"name":"crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17144,"src":"925:15:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"905:35:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17150,"nodeType":"ExpressionStatement","src":"905:35:58"},{"expression":{"id":17154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17151,"name":"__tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"950:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17152,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"965:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"969:6:58","memberName":"sender","nodeType":"MemberAccess","src":"965:10:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"950:25:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17155,"nodeType":"ExpressionStatement","src":"950:25:58"}]},"documentation":{"id":17142,"nodeType":"StructuredDocumentation","src":"692:157:58","text":" @dev Constructor function to initialize the contract with initial state.\n @param crossChainLayer Cross-chain layer contract address."},"id":17157,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17144,"mutability":"mutable","name":"crossChainLayer","nameLocation":"874:15:58","nodeType":"VariableDeclaration","scope":17157,"src":"866:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17143,"name":"address","nodeType":"ElementaryTypeName","src":"866:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"865:25:58"},"returnParameters":{"id":17146,"nodeType":"ParameterList","parameters":[],"src":"895:0:58"},"scope":17310,"src":"854:128:58","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17186,"nodeType":"Block","src":"1162:140:58","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17170,"name":"_checkTokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17213,"src":"1172:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":17171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1172:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17172,"nodeType":"ExpressionStatement","src":"1172:18:58"},{"expression":{"arguments":[{"id":17174,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17159,"src":"1214:5:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17175,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17161,"src":"1221:7:58","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"}],"id":17173,"name":"__ERC721_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"1200:13:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":17176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1200:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17177,"nodeType":"ExpressionStatement","src":"1200:29:58"},{"expression":{"id":17180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17178,"name":"__baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17141,"src":"1239:9:58","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17179,"name":"baseURI_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17163,"src":"1251:8:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1239:20:58","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17181,"nodeType":"ExpressionStatement","src":"1239:20:58"},{"expression":{"id":17184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17182,"name":"__tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17135,"src":"1269:12:58","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17183,"name":"tvmAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17165,"src":"1284:11:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1269:26:58","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17185,"nodeType":"ExpressionStatement","src":"1269:26:58"}]},"functionSelector":"a523d35e","id":17187,"implemented":true,"kind":"function","modifiers":[{"id":17168,"kind":"modifierInvocation","modifierName":{"id":17167,"name":"initializer","nameLocations":["1150:11:58"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"1150:11:58"},"nodeType":"ModifierInvocation","src":"1150:11:58"}],"name":"initialize","nameLocation":"997:10:58","nodeType":"FunctionDefinition","parameters":{"id":17166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17159,"mutability":"mutable","name":"name_","nameLocation":"1031:5:58","nodeType":"VariableDeclaration","scope":17187,"src":"1017:19:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17158,"name":"string","nodeType":"ElementaryTypeName","src":"1017:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17161,"mutability":"mutable","name":"symbol_","nameLocation":"1060:7:58","nodeType":"VariableDeclaration","scope":17187,"src":"1046:21:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17160,"name":"string","nodeType":"ElementaryTypeName","src":"1046:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17163,"mutability":"mutable","name":"baseURI_","nameLocation":"1091:8:58","nodeType":"VariableDeclaration","scope":17187,"src":"1077:22:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17162,"name":"string","nodeType":"ElementaryTypeName","src":"1077:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17165,"mutability":"mutable","name":"tvmAddress_","nameLocation":"1123:11:58","nodeType":"VariableDeclaration","scope":17187,"src":"1109:25:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17164,"name":"string","nodeType":"ElementaryTypeName","src":"1109:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1007:133:58"},"returnParameters":{"id":17169,"nodeType":"ParameterList","parameters":[],"src":"1162:0:58"},"scope":17310,"src":"988:314:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17199,"nodeType":"Block","src":"1355:105:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17190,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1369:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1373:6:58","memberName":"sender","nodeType":"MemberAccess","src":"1369:10:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":17192,"name":"__crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17137,"src":"1383:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1369:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17198,"nodeType":"IfStatement","src":"1365:89:58","trueBody":{"id":17197,"nodeType":"Block","src":"1402:52:58","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17194,"name":"UnauthorizedAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"1423:18:58","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1423:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17196,"nodeType":"RevertStatement","src":"1416:27:58"}]}}]},"id":17200,"implemented":true,"kind":"function","modifiers":[],"name":"_checkCrossChainLayer","nameLocation":"1317:21:58","nodeType":"FunctionDefinition","parameters":{"id":17188,"nodeType":"ParameterList","parameters":[],"src":"1338:2:58"},"returnParameters":{"id":17189,"nodeType":"ParameterList","parameters":[],"src":"1355:0:58"},"scope":17310,"src":"1308:152:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":17212,"nodeType":"Block","src":"1508:100:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17203,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1522:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1526:6:58","memberName":"sender","nodeType":"MemberAccess","src":"1522:10:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":17205,"name":"__tokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"1536:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1522:26:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17211,"nodeType":"IfStatement","src":"1518:84:58","trueBody":{"id":17210,"nodeType":"Block","src":"1550:52:58","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17207,"name":"UnauthorizedAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"1571:18:58","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1571:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17209,"nodeType":"RevertStatement","src":"1564:27:58"}]}}]},"id":17213,"implemented":true,"kind":"function","modifiers":[],"name":"_checkTokenUtils","nameLocation":"1475:16:58","nodeType":"FunctionDefinition","parameters":{"id":17201,"nodeType":"ParameterList","parameters":[],"src":"1491:2:58"},"returnParameters":{"id":17202,"nodeType":"ParameterList","parameters":[],"src":"1508:0:58"},"scope":17310,"src":"1466:142:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[2018],"body":{"id":17221,"nodeType":"Block","src":"1681:33:58","statements":[{"expression":{"id":17219,"name":"__baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17141,"src":"1698:9:58","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":17218,"id":17220,"nodeType":"Return","src":"1691:16:58"}]},"id":17222,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"1623:8:58","nodeType":"FunctionDefinition","overrides":{"id":17215,"nodeType":"OverrideSpecifier","overrides":[],"src":"1648:8:58"},"parameters":{"id":17214,"nodeType":"ParameterList","parameters":[],"src":"1631:2:58"},"returnParameters":{"id":17218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17222,"src":"1666:13:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17216,"name":"string","nodeType":"ElementaryTypeName","src":"1666:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1665:15:58"},"scope":17310,"src":"1614:100:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[17706],"body":{"id":17234,"nodeType":"Block","src":"1774:64:58","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17227,"name":"_checkTokenUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17213,"src":"1784:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":17228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17229,"nodeType":"ExpressionStatement","src":"1784:18:58"},{"expression":{"id":17232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17230,"name":"__baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17141,"src":"1812:9:58","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17231,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17224,"src":"1824:7:58","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"1812:19:58","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17233,"nodeType":"ExpressionStatement","src":"1812:19:58"}]},"functionSelector":"55f804b3","id":17235,"implemented":true,"kind":"function","modifiers":[],"name":"setBaseURI","nameLocation":"1729:10:58","nodeType":"FunctionDefinition","parameters":{"id":17225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17224,"mutability":"mutable","name":"baseURI","nameLocation":"1756:7:58","nodeType":"VariableDeclaration","scope":17235,"src":"1740:23:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":17223,"name":"string","nodeType":"ElementaryTypeName","src":"1740:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1739:25:58"},"returnParameters":{"id":17226,"nodeType":"ParameterList","parameters":[],"src":"1774:0:58"},"scope":17310,"src":"1720:118:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17716],"body":{"id":17254,"nodeType":"Block","src":"2055:78:58","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17245,"name":"_checkCrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17200,"src":"2065:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":17246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2065:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17247,"nodeType":"ExpressionStatement","src":"2065:23:58"},{"expression":{"arguments":[{"id":17249,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17238,"src":"2108:2:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17250,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17240,"src":"2112:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17251,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17242,"src":"2121:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17248,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[2489,2519],"referencedDeclaration":2519,"src":"2098:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":17252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2098:28:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17253,"nodeType":"ExpressionStatement","src":"2098:28:58"}]},"documentation":{"id":17236,"nodeType":"StructuredDocumentation","src":"1844:131:58","text":" @dev Mint a new token.\n @param to Receiver address, must be a NFT receiver.\n @param tokenId token id"},"functionSelector":"8832e6e3","id":17255,"implemented":true,"kind":"function","modifiers":[],"name":"safeMint","nameLocation":"1989:8:58","nodeType":"FunctionDefinition","parameters":{"id":17243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17238,"mutability":"mutable","name":"to","nameLocation":"2006:2:58","nodeType":"VariableDeclaration","scope":17255,"src":"1998:10:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17237,"name":"address","nodeType":"ElementaryTypeName","src":"1998:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17240,"mutability":"mutable","name":"tokenId","nameLocation":"2018:7:58","nodeType":"VariableDeclaration","scope":17255,"src":"2010:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17239,"name":"uint256","nodeType":"ElementaryTypeName","src":"2010:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17242,"mutability":"mutable","name":"data","nameLocation":"2040:4:58","nodeType":"VariableDeclaration","scope":17255,"src":"2027:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17241,"name":"bytes","nodeType":"ElementaryTypeName","src":"2027:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1997:48:58"},"returnParameters":{"id":17244,"nodeType":"ParameterList","parameters":[],"src":"2055:0:58"},"scope":17310,"src":"1980:153:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17722],"body":{"id":17268,"nodeType":"Block","src":"2252:64:58","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17261,"name":"_checkCrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17200,"src":"2262:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":17262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2262:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17263,"nodeType":"ExpressionStatement","src":"2262:23:58"},{"expression":{"arguments":[{"id":17265,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17258,"src":"2301:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17264,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"2295:5:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2295:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17267,"nodeType":"ExpressionStatement","src":"2295:14:58"}]},"documentation":{"id":17256,"nodeType":"StructuredDocumentation","src":"2139:68:58","text":" @dev Burn a token.\n @param tokenId token id"},"functionSelector":"42966c68","id":17269,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"2221:4:58","nodeType":"FunctionDefinition","parameters":{"id":17259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17258,"mutability":"mutable","name":"tokenId","nameLocation":"2234:7:58","nodeType":"VariableDeclaration","scope":17269,"src":"2226:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17257,"name":"uint256","nodeType":"ElementaryTypeName","src":"2226:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2225:17:58"},"returnParameters":{"id":17260,"nodeType":"ParameterList","parameters":[],"src":"2252:0:58"},"scope":17310,"src":"2212:104:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17729],"body":{"id":17285,"nodeType":"Block","src":"2380:170:58","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":17276,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"2425:4:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":17277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2425:6:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17278,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"2453:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":17279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2453:8:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17280,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[17222],"referencedDeclaration":17222,"src":"2484:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":17281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17282,"name":"__tvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17135,"src":"2520:12:58","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":17275,"name":"NFTInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15993,"src":"2397:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_NFTInfo_$15993_storage_ptr_$","typeString":"type(struct NFTInfo storage pointer)"}},"id":17283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2419:4:58","2445:6:58","2475:7:58","2508:10:58"],"names":["name","symbol","baseURI","tvmAddress"],"nodeType":"FunctionCall","src":"2397:146:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_memory_ptr","typeString":"struct NFTInfo memory"}},"functionReturnParameters":17274,"id":17284,"nodeType":"Return","src":"2390:153:58"}]},"functionSelector":"5a9b0b89","id":17286,"implemented":true,"kind":"function","modifiers":[],"name":"getInfo","nameLocation":"2331:7:58","nodeType":"FunctionDefinition","parameters":{"id":17270,"nodeType":"ParameterList","parameters":[],"src":"2338:2:58"},"returnParameters":{"id":17274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17286,"src":"2364:14:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_memory_ptr","typeString":"struct NFTInfo"},"typeName":{"id":17272,"nodeType":"UserDefinedTypeName","pathNode":{"id":17271,"name":"NFTInfo","nameLocations":["2364:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":15993,"src":"2364:7:58"},"referencedDeclaration":15993,"src":"2364:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_storage_ptr","typeString":"struct NFTInfo"}},"visibility":"internal"}],"src":"2363:16:58"},"scope":17310,"src":"2322:228:58","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1893,8492],"body":{"id":17308,"nodeType":"Block","src":"2667:119:58","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17296,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17288,"src":"2684:11:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":17298,"name":"ICrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17730,"src":"2704:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossChainLayerERC721_$17730_$","typeString":"type(contract ICrossChainLayerERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ICrossChainLayerERC721_$17730_$","typeString":"type(contract ICrossChainLayerERC721)"}],"id":17297,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2699:4:58","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2699:28:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ICrossChainLayerERC721_$17730","typeString":"type(contract ICrossChainLayerERC721)"}},"id":17300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2728:11:58","memberName":"interfaceId","nodeType":"MemberAccess","src":"2699:40:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2684:55:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":17304,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17288,"src":"2767:11:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17302,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2743:5:58","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CrossChainLayerERC721_$17310_$","typeString":"type(contract super CrossChainLayerERC721)"}},"id":17303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2749:17:58","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":1893,"src":"2743:23:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":17305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2743:36:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2684:95:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17295,"id":17307,"nodeType":"Return","src":"2677:102:58"}]},"functionSelector":"01ffc9a7","id":17309,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2565:17:58","nodeType":"FunctionDefinition","overrides":{"id":17292,"nodeType":"OverrideSpecifier","overrides":[{"id":17290,"name":"ERC721Upgradeable","nameLocations":["2624:17:58"],"nodeType":"IdentifierPath","referencedDeclaration":2827,"src":"2624:17:58"},{"id":17291,"name":"IERC165","nameLocations":["2643:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":8493,"src":"2643:7:58"}],"src":"2615:36:58"},"parameters":{"id":17289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17288,"mutability":"mutable","name":"interfaceId","nameLocation":"2590:11:58","nodeType":"VariableDeclaration","scope":17309,"src":"2583:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17287,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2583:6:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2582:20:58"},"returnParameters":{"id":17295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17309,"src":"2661:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17293,"name":"bool","nodeType":"ElementaryTypeName","src":"2661:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2660:6:58"},"scope":17310,"src":"2556:230:58","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":17311,"src":"386:2402:58","usedErrors":[711,714,3313,3318,3327,3332,3337,3344,3349,3354,17133],"usedEvents":[719,6145,6154,6163]}],"src":"32:2756:58"},"id":58},"contracts/interfaces/IConsensus.sol":{"ast":{"absolutePath":"contracts/interfaces/IConsensus.sol","exportedSymbols":{"EpochInfo":[16098],"IConsensus":[17376],"ITacInitializable":[17543]},"id":17377,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17312,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:59"},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":17314,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17377,"sourceUnit":16218,"src":"58:48:59","symbolAliases":[{"foreign":{"id":17313,"name":"EpochInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"67:9:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ITacInitializable.sol","file":"./ITacInitializable.sol","id":17316,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17377,"sourceUnit":17544,"src":"107:60:59","symbolAliases":[{"foreign":{"id":17315,"name":"ITacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17543,"src":"116:17:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17317,"name":"ITacInitializable","nameLocations":["193:17:59"],"nodeType":"IdentifierPath","referencedDeclaration":17543,"src":"193:17:59"},"id":17318,"nodeType":"InheritanceSpecifier","src":"193:17:59"}],"canonicalName":"IConsensus","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":17376,"linearizedBaseContracts":[17376,17543],"name":"IConsensus","nameLocation":"179:10:59","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17319,"nodeType":"StructuredDocumentation","src":"218:124:59","text":" @dev Add new voters's group\n @param groupId group id\n @param adminAddress group admin address"},"functionSelector":"65d8dd34","id":17326,"implemented":false,"kind":"function","modifiers":[],"name":"addGroup","nameLocation":"356:8:59","nodeType":"FunctionDefinition","parameters":{"id":17324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17321,"mutability":"mutable","name":"groupId","nameLocation":"373:7:59","nodeType":"VariableDeclaration","scope":17326,"src":"365:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17323,"mutability":"mutable","name":"adminAddress","nameLocation":"390:12:59","nodeType":"VariableDeclaration","scope":17326,"src":"382:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17322,"name":"address","nodeType":"ElementaryTypeName","src":"382:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"364:39:59"},"returnParameters":{"id":17325,"nodeType":"ParameterList","parameters":[],"src":"412:0:59"},"scope":17376,"src":"347:66:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17327,"nodeType":"StructuredDocumentation","src":"419:119:59","text":" @dev Adds a new voter.\n @param groupId voter group id\n @param voterAddress voter address"},"functionSelector":"ef65792d","id":17334,"implemented":false,"kind":"function","modifiers":[],"name":"addVoter","nameLocation":"552:8:59","nodeType":"FunctionDefinition","parameters":{"id":17332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17329,"mutability":"mutable","name":"groupId","nameLocation":"569:7:59","nodeType":"VariableDeclaration","scope":17334,"src":"561:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"561:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17331,"mutability":"mutable","name":"voterAddress","nameLocation":"586:12:59","nodeType":"VariableDeclaration","scope":17334,"src":"578:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17330,"name":"address","nodeType":"ElementaryTypeName","src":"578:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"560:39:59"},"returnParameters":{"id":17333,"nodeType":"ParameterList","parameters":[],"src":"608:0:59"},"scope":17376,"src":"543:66:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17335,"nodeType":"StructuredDocumentation","src":"615:96:59","text":" @dev Remove voter.\n @param voterAddress Address of the voter to remove."},"functionSelector":"86c1ff68","id":17340,"implemented":false,"kind":"function","modifiers":[],"name":"removeVoter","nameLocation":"725:11:59","nodeType":"FunctionDefinition","parameters":{"id":17338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17337,"mutability":"mutable","name":"voterAddress","nameLocation":"745:12:59","nodeType":"VariableDeclaration","scope":17340,"src":"737:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17336,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:22:59"},"returnParameters":{"id":17339,"nodeType":"ParameterList","parameters":[],"src":"767:0:59"},"scope":17376,"src":"716:52:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17341,"nodeType":"StructuredDocumentation","src":"774:158:59","text":" @dev Vote for a new value.\n @param messageCollectEndTime Message collect end time for current vote.\n @param newValue New value."},"functionSelector":"c6116345","id":17348,"implemented":false,"kind":"function","modifiers":[],"name":"vote","nameLocation":"946:4:59","nodeType":"FunctionDefinition","parameters":{"id":17346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17343,"mutability":"mutable","name":"messageCollectEndTime","nameLocation":"958:21:59","nodeType":"VariableDeclaration","scope":17348,"src":"951:28:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":17342,"name":"uint64","nodeType":"ElementaryTypeName","src":"951:6:59","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":17345,"mutability":"mutable","name":"newValue","nameLocation":"989:8:59","nodeType":"VariableDeclaration","scope":17348,"src":"981:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"981:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"950:48:59"},"returnParameters":{"id":17347,"nodeType":"ParameterList","parameters":[],"src":"1007:0:59"},"scope":17376,"src":"937:71:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17349,"nodeType":"StructuredDocumentation","src":"1014:78:59","text":" @dev Returns current epoch info.\n @return Epoch info."},"functionSelector":"babc394f","id":17355,"implemented":false,"kind":"function","modifiers":[],"name":"getCurrentEpochInfo","nameLocation":"1106:19:59","nodeType":"FunctionDefinition","parameters":{"id":17350,"nodeType":"ParameterList","parameters":[],"src":"1125:2:59"},"returnParameters":{"id":17354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17355,"src":"1151:16:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_memory_ptr","typeString":"struct EpochInfo"},"typeName":{"id":17352,"nodeType":"UserDefinedTypeName","pathNode":{"id":17351,"name":"EpochInfo","nameLocations":["1151:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":16098,"src":"1151:9:59"},"referencedDeclaration":16098,"src":"1151:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_EpochInfo_$16098_storage_ptr","typeString":"struct EpochInfo"}},"visibility":"internal"}],"src":"1150:18:59"},"scope":17376,"src":"1097:72:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17356,"nodeType":"StructuredDocumentation","src":"1175:117:59","text":" @dev Gets total number of active voters.\n @return totalVoters Total number of active voters."},"functionSelector":"5f5300ff","id":17361,"implemented":false,"kind":"function","modifiers":[],"name":"totalVoters","nameLocation":"1306:11:59","nodeType":"FunctionDefinition","parameters":{"id":17357,"nodeType":"ParameterList","parameters":[],"src":"1317:2:59"},"returnParameters":{"id":17360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17359,"mutability":"mutable","name":"totalVoters","nameLocation":"1351:11:59","nodeType":"VariableDeclaration","scope":17361,"src":"1343:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17358,"name":"uint256","nodeType":"ElementaryTypeName","src":"1343:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1342:21:59"},"scope":17376,"src":"1297:67:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17362,"nodeType":"StructuredDocumentation","src":"1370:117:59","text":" @dev Gets the current (last selected) value.\n @return bytes32 Current (last selected) value."},"functionSelector":"20965255","id":17367,"implemented":false,"kind":"function","modifiers":[],"name":"getValue","nameLocation":"1501:8:59","nodeType":"FunctionDefinition","parameters":{"id":17363,"nodeType":"ParameterList","parameters":[],"src":"1509:2:59"},"returnParameters":{"id":17366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17367,"src":"1535:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1535:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1534:9:59"},"scope":17376,"src":"1492:52:59","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17368,"nodeType":"StructuredDocumentation","src":"1550:160:59","text":" @dev Checks if merkle root is valid.\n @param merkleRoot Merkle root.\n @return bool True if merkle root is valid, false otherwise."},"functionSelector":"814964f0","id":17375,"implemented":false,"kind":"function","modifiers":[],"name":"checkMerkleRoot","nameLocation":"1724:15:59","nodeType":"FunctionDefinition","parameters":{"id":17371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17370,"mutability":"mutable","name":"merkleRoot","nameLocation":"1748:10:59","nodeType":"VariableDeclaration","scope":17375,"src":"1740:18:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1740:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1739:20:59"},"returnParameters":{"id":17374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17375,"src":"1783:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17372,"name":"bool","nodeType":"ElementaryTypeName","src":"1783:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1782:6:59"},"scope":17376,"src":"1715:74:59","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":17377,"src":"169:1622:59","usedErrors":[],"usedEvents":[]}],"src":"32:1759:59"},"id":59},"contracts/interfaces/ICrossChainLayer.sol":{"ast":{"absolutePath":"contracts/interfaces/ICrossChainLayer.sol","exportedSymbols":{"ICrossChainLayer":[17421],"ITacInitializable":[17543]},"id":17422,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17378,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:60"},{"absolutePath":"contracts/interfaces/ITacInitializable.sol","file":"./ITacInitializable.sol","id":17380,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17422,"sourceUnit":17544,"src":"58:60:60","symbolAliases":[{"foreign":{"id":17379,"name":"ITacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17543,"src":"67:17:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17382,"name":"ITacInitializable","nameLocations":["229:17:60"],"nodeType":"IdentifierPath","referencedDeclaration":17543,"src":"229:17:60"},"id":17383,"nodeType":"InheritanceSpecifier","src":"229:17:60"}],"canonicalName":"ICrossChainLayer","contractDependencies":[],"contractKind":"interface","documentation":{"id":17381,"nodeType":"StructuredDocumentation","src":"120:78:60","text":" @title ICrossChainLayer\n @dev An interface for Cross-Chain Layer."},"fullyImplemented":false,"id":17421,"linearizedBaseContracts":[17421,17543],"name":"ICrossChainLayer","nameLocation":"209:16:60","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17384,"nodeType":"StructuredDocumentation","src":"272:363:60","text":" @dev Accepts an TVM->EVM message to process if the Merkle proof is valid.\n @param messageVersion Message version.\n @param encodedMessage Encoded message to process.\n @param merkleProof Merkle proof for the message.\n @param feeReceiver receiver of fee.\n @param extraData Untrusted extra data to pass to the message."},"functionSelector":"abe13ef7","id":17398,"implemented":false,"kind":"function","modifiers":[],"name":"receiveMessage","nameLocation":"649:14:60","nodeType":"FunctionDefinition","parameters":{"id":17396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17386,"mutability":"mutable","name":"messageVersion","nameLocation":"681:14:60","nodeType":"VariableDeclaration","scope":17398,"src":"673:22:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17385,"name":"uint256","nodeType":"ElementaryTypeName","src":"673:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17388,"mutability":"mutable","name":"encodedMessage","nameLocation":"720:14:60","nodeType":"VariableDeclaration","scope":17398,"src":"705:29:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17387,"name":"bytes","nodeType":"ElementaryTypeName","src":"705:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17391,"mutability":"mutable","name":"merkleProof","nameLocation":"763:11:60","nodeType":"VariableDeclaration","scope":17398,"src":"744:30:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":17389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"744:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17390,"nodeType":"ArrayTypeName","src":"744:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":17393,"mutability":"mutable","name":"feeReceiver","nameLocation":"792:11:60","nodeType":"VariableDeclaration","scope":17398,"src":"784:19:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17392,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17395,"mutability":"mutable","name":"extraData","nameLocation":"828:9:60","nodeType":"VariableDeclaration","scope":17398,"src":"813:24:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17394,"name":"bytes","nodeType":"ElementaryTypeName","src":"813:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"663:180:60"},"returnParameters":{"id":17397,"nodeType":"ParameterList","parameters":[],"src":"852:0:60"},"scope":17421,"src":"640:213:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17399,"nodeType":"StructuredDocumentation","src":"859:194:60","text":" @dev Accepts an EVM->TVM message to process (e.g. a callback from dApp).\n @param messageVersion Message version.\n @param encodedMessage Encoded message to process."},"functionSelector":"e289adcd","id":17406,"implemented":false,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"1067:11:60","nodeType":"FunctionDefinition","parameters":{"id":17404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17401,"mutability":"mutable","name":"messageVersion","nameLocation":"1096:14:60","nodeType":"VariableDeclaration","scope":17406,"src":"1088:22:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17400,"name":"uint256","nodeType":"ElementaryTypeName","src":"1088:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17403,"mutability":"mutable","name":"encodedMessage","nameLocation":"1135:14:60","nodeType":"VariableDeclaration","scope":17406,"src":"1120:29:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17402,"name":"bytes","nodeType":"ElementaryTypeName","src":"1120:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1078:77:60"},"returnParameters":{"id":17405,"nodeType":"ParameterList","parameters":[],"src":"1172:0:60"},"scope":17421,"src":"1058:115:60","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":17407,"nodeType":"StructuredDocumentation","src":"1179:207:60","text":" @dev Checks if the input (receive) message has been processed.\n @param messageHash Message hash to check.\n @return bool True if the message has been processed, false otherwise."},"functionSelector":"5a178931","id":17414,"implemented":false,"kind":"function","modifiers":[],"name":"getInMessageState","nameLocation":"1400:17:60","nodeType":"FunctionDefinition","parameters":{"id":17410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17409,"mutability":"mutable","name":"messageHash","nameLocation":"1426:11:60","nodeType":"VariableDeclaration","scope":17414,"src":"1418:19:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1418:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1417:21:60"},"returnParameters":{"id":17413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17414,"src":"1462:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17411,"name":"bool","nodeType":"ElementaryTypeName","src":"1462:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1461:6:60"},"scope":17421,"src":"1391:77:60","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17415,"nodeType":"StructuredDocumentation","src":"1474:93:60","text":" @dev Gets the current min protocol fee.\n @return uint256 Fee amount."},"functionSelector":"a5a41031","id":17420,"implemented":false,"kind":"function","modifiers":[],"name":"getProtocolFee","nameLocation":"1581:14:60","nodeType":"FunctionDefinition","parameters":{"id":17416,"nodeType":"ParameterList","parameters":[],"src":"1595:2:60"},"returnParameters":{"id":17419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17420,"src":"1620:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17417,"name":"uint256","nodeType":"ElementaryTypeName","src":"1620:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1619:9:60"},"scope":17421,"src":"1572:57:60","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":17422,"src":"199:1432:60","usedErrors":[],"usedEvents":[]}],"src":"32:1600:60"},"id":60},"contracts/interfaces/IMerkleTreeUtils.sol":{"ast":{"absolutePath":"contracts/interfaces/IMerkleTreeUtils.sol","exportedSymbols":{"IMerkleTreeUtils":[17447],"InMessageV1":[16055]},"id":17448,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17423,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:61"},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":17425,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17448,"sourceUnit":16218,"src":"58:50:61","symbolAliases":[{"foreign":{"id":17424,"name":"InMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16055,"src":"67:11:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IMerkleTreeUtils","contractDependencies":[],"contractKind":"interface","documentation":{"id":17426,"nodeType":"StructuredDocumentation","src":"111:100:61","text":" @title IMerkleTreeUtils\n @dev An interface to message and Merkle tree utility functions"},"fullyImplemented":false,"id":17447,"linearizedBaseContracts":[17447],"name":"IMerkleTreeUtils","nameLocation":"222:16:61","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17427,"nodeType":"StructuredDocumentation","src":"245:85:61","text":" @dev Calculates message v1 hash.\n @param message Message v1."},"functionSelector":"58f5b645","id":17435,"implemented":false,"kind":"function","modifiers":[],"name":"hashInMessageV1","nameLocation":"344:15:61","nodeType":"FunctionDefinition","parameters":{"id":17431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17430,"mutability":"mutable","name":"message","nameLocation":"381:7:61","nodeType":"VariableDeclaration","scope":17435,"src":"360:28:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_calldata_ptr","typeString":"struct InMessageV1"},"typeName":{"id":17429,"nodeType":"UserDefinedTypeName","pathNode":{"id":17428,"name":"InMessageV1","nameLocations":["360:11:61"],"nodeType":"IdentifierPath","referencedDeclaration":16055,"src":"360:11:61"},"referencedDeclaration":16055,"src":"360:11:61","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_storage_ptr","typeString":"struct InMessageV1"}},"visibility":"internal"}],"src":"359:30:61"},"returnParameters":{"id":17434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17435,"src":"413:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"413:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"412:9:61"},"scope":17447,"src":"335:87:61","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":17436,"nodeType":"StructuredDocumentation","src":"428:189:61","text":" @dev Function to calculate the Merkle root from the message hash and proof.\n @param objectHash Leaf object hash to validate.\n @param merkleProof Merkle proof."},"functionSelector":"9507c260","id":17446,"implemented":false,"kind":"function","modifiers":[],"name":"checkMerkleProof","nameLocation":"631:16:61","nodeType":"FunctionDefinition","parameters":{"id":17442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17438,"mutability":"mutable","name":"objectHash","nameLocation":"656:10:61","nodeType":"VariableDeclaration","scope":17446,"src":"648:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"648:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17441,"mutability":"mutable","name":"merkleProof","nameLocation":"687:11:61","nodeType":"VariableDeclaration","scope":17446,"src":"668:30:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":17439,"name":"bytes32","nodeType":"ElementaryTypeName","src":"668:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17440,"nodeType":"ArrayTypeName","src":"668:9:61","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"647:52:61"},"returnParameters":{"id":17445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17446,"src":"723:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"723:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"722:9:61"},"scope":17447,"src":"622:110:61","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":17448,"src":"212:522:61","usedErrors":[],"usedEvents":[]}],"src":"32:703:61"},"id":61},"contracts/interfaces/ISettings.sol":{"ast":{"absolutePath":"contracts/interfaces/ISettings.sol","exportedSymbols":{"ISettings":[17536],"ITacInitializable":[17543]},"id":17537,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17449,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:62"},{"absolutePath":"contracts/interfaces/ITacInitializable.sol","file":"./ITacInitializable.sol","id":17451,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17537,"sourceUnit":17544,"src":"58:60:62","symbolAliases":[{"foreign":{"id":17450,"name":"ITacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17543,"src":"67:17:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17453,"name":"ITacInitializable","nameLocations":["244:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":17543,"src":"244:17:62"},"id":17454,"nodeType":"InheritanceSpecifier","src":"244:17:62"}],"canonicalName":"ISettings","contractDependencies":[],"contractKind":"interface","documentation":{"id":17452,"nodeType":"StructuredDocumentation","src":"121:99:62","text":" @title Settings interface\n @dev A contract for storing Cross-Chain Layer configuration"},"fullyImplemented":false,"id":17536,"linearizedBaseContracts":[17536,17543],"name":"ISettings","nameLocation":"231:9:62","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":17455,"nodeType":"StructuredDocumentation","src":"268:129:62","text":" @dev Cross-Chain Layer configuration setting changed event\n @param variable Name of the variable updated"},"eventSelector":"60fff43fb3dd5e4309106861e1122d0446898fbf9d2162cf48cb55d05801ca52","id":17459,"name":"SettingsUpdated","nameLocation":"408:15:62","nodeType":"EventDefinition","parameters":{"id":17458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17457,"indexed":true,"mutability":"mutable","name":"variable","nameLocation":"440:8:62","nodeType":"VariableDeclaration","scope":17459,"src":"424:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"424:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"423:26:62"},"src":"402:48:62"},{"documentation":{"id":17460,"nodeType":"StructuredDocumentation","src":"456:118:62","text":" @dev Update a uint64 setting.\n @param key The setting key.\n @param value The new value."},"functionSelector":"f165f4b4","id":17467,"implemented":false,"kind":"function","modifiers":[],"name":"setUintSetting","nameLocation":"588:14:62","nodeType":"FunctionDefinition","parameters":{"id":17465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17462,"mutability":"mutable","name":"key","nameLocation":"611:3:62","nodeType":"VariableDeclaration","scope":17467,"src":"603:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17461,"name":"bytes32","nodeType":"ElementaryTypeName","src":"603:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17464,"mutability":"mutable","name":"value","nameLocation":"623:5:62","nodeType":"VariableDeclaration","scope":17467,"src":"616:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":17463,"name":"uint64","nodeType":"ElementaryTypeName","src":"616:6:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"602:27:62"},"returnParameters":{"id":17466,"nodeType":"ParameterList","parameters":[],"src":"638:0:62"},"scope":17536,"src":"579:60:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17468,"nodeType":"StructuredDocumentation","src":"645:114:62","text":" @dev Get a uint64 setting.\n @param key The setting key.\n @return The setting value."},"functionSelector":"1c63030a","id":17475,"implemented":false,"kind":"function","modifiers":[],"name":"getUintSetting","nameLocation":"773:14:62","nodeType":"FunctionDefinition","parameters":{"id":17471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17470,"mutability":"mutable","name":"key","nameLocation":"796:3:62","nodeType":"VariableDeclaration","scope":17475,"src":"788:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"788:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"787:13:62"},"returnParameters":{"id":17474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17475,"src":"824:6:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":17472,"name":"uint64","nodeType":"ElementaryTypeName","src":"824:6:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"823:8:62"},"scope":17536,"src":"764:68:62","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17476,"nodeType":"StructuredDocumentation","src":"838:128:62","text":" @dev Update an address setting.\n @param key The setting key.\n @param value The new address value."},"functionSelector":"3fe8ef0f","id":17483,"implemented":false,"kind":"function","modifiers":[],"name":"setAddressSetting","nameLocation":"980:17:62","nodeType":"FunctionDefinition","parameters":{"id":17481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17478,"mutability":"mutable","name":"key","nameLocation":"1006:3:62","nodeType":"VariableDeclaration","scope":17483,"src":"998:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"998:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17480,"mutability":"mutable","name":"value","nameLocation":"1019:5:62","nodeType":"VariableDeclaration","scope":17483,"src":"1011:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17479,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"997:28:62"},"returnParameters":{"id":17482,"nodeType":"ParameterList","parameters":[],"src":"1034:0:62"},"scope":17536,"src":"971:64:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17484,"nodeType":"StructuredDocumentation","src":"1041:116:62","text":" @dev Get an address setting.\n @param key The setting key.\n @return The setting value."},"functionSelector":"ad39965d","id":17491,"implemented":false,"kind":"function","modifiers":[],"name":"getAddressSetting","nameLocation":"1171:17:62","nodeType":"FunctionDefinition","parameters":{"id":17487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17486,"mutability":"mutable","name":"key","nameLocation":"1197:3:62","nodeType":"VariableDeclaration","scope":17491,"src":"1189:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1189:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1188:13:62"},"returnParameters":{"id":17490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17491,"src":"1225:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17488,"name":"address","nodeType":"ElementaryTypeName","src":"1225:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1224:9:62"},"scope":17536,"src":"1162:72:62","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17492,"nodeType":"StructuredDocumentation","src":"1240:121:62","text":" @dev Update a bool setting.\n @param key The setting key.\n @param value The new bool value."},"functionSelector":"fd32b9fa","id":17499,"implemented":false,"kind":"function","modifiers":[],"name":"setBoolSetting","nameLocation":"1375:14:62","nodeType":"FunctionDefinition","parameters":{"id":17497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17494,"mutability":"mutable","name":"key","nameLocation":"1398:3:62","nodeType":"VariableDeclaration","scope":17499,"src":"1390:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1390:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17496,"mutability":"mutable","name":"value","nameLocation":"1408:5:62","nodeType":"VariableDeclaration","scope":17499,"src":"1403:10:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17495,"name":"bool","nodeType":"ElementaryTypeName","src":"1403:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1389:25:62"},"returnParameters":{"id":17498,"nodeType":"ParameterList","parameters":[],"src":"1423:0:62"},"scope":17536,"src":"1366:58:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17500,"nodeType":"StructuredDocumentation","src":"1430:112:62","text":" @dev Get a bool setting.\n @param key The setting key.\n @return The setting value."},"functionSelector":"7c74627a","id":17507,"implemented":false,"kind":"function","modifiers":[],"name":"getBoolSetting","nameLocation":"1556:14:62","nodeType":"FunctionDefinition","parameters":{"id":17503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17502,"mutability":"mutable","name":"key","nameLocation":"1579:3:62","nodeType":"VariableDeclaration","scope":17507,"src":"1571:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1571:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1570:13:62"},"returnParameters":{"id":17506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17507,"src":"1607:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17504,"name":"bool","nodeType":"ElementaryTypeName","src":"1607:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1606:6:62"},"scope":17536,"src":"1547:66:62","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17508,"nodeType":"StructuredDocumentation","src":"1623:112:62","text":" @dev Update trustedEVMExecutors setting.\n @param trustedEVMExecutors Trusted executors."},"functionSelector":"b896a181","id":17514,"implemented":false,"kind":"function","modifiers":[],"name":"setTrustedEVMExecutors","nameLocation":"1749:22:62","nodeType":"FunctionDefinition","parameters":{"id":17512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17511,"mutability":"mutable","name":"trustedEVMExecutors","nameLocation":"1789:19:62","nodeType":"VariableDeclaration","scope":17514,"src":"1772:36:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":17509,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17510,"nodeType":"ArrayTypeName","src":"1772:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1771:38:62"},"returnParameters":{"id":17513,"nodeType":"ParameterList","parameters":[],"src":"1818:0:62"},"scope":17536,"src":"1740:79:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17515,"nodeType":"StructuredDocumentation","src":"1825:48:62","text":" @dev Get trustedEVMExecutors."},"functionSelector":"c8029da8","id":17521,"implemented":false,"kind":"function","modifiers":[],"name":"getTrustedEVMExecutors","nameLocation":"1887:22:62","nodeType":"FunctionDefinition","parameters":{"id":17516,"nodeType":"ParameterList","parameters":[],"src":"1909:2:62"},"returnParameters":{"id":17520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17521,"src":"1935:16:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":17517,"name":"address","nodeType":"ElementaryTypeName","src":"1935:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17518,"nodeType":"ArrayTypeName","src":"1935:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1934:18:62"},"scope":17536,"src":"1878:75:62","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17522,"nodeType":"StructuredDocumentation","src":"1959:112:62","text":" @dev Update trustedTVMExecutors setting.\n @param trustedTVMExecutors Trusted executors."},"functionSelector":"7866077b","id":17528,"implemented":false,"kind":"function","modifiers":[],"name":"setTrustedTVMExecutors","nameLocation":"2085:22:62","nodeType":"FunctionDefinition","parameters":{"id":17526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17525,"mutability":"mutable","name":"trustedTVMExecutors","nameLocation":"2124:19:62","nodeType":"VariableDeclaration","scope":17528,"src":"2108:35:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":17523,"name":"string","nodeType":"ElementaryTypeName","src":"2108:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17524,"nodeType":"ArrayTypeName","src":"2108:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"2107:37:62"},"returnParameters":{"id":17527,"nodeType":"ParameterList","parameters":[],"src":"2153:0:62"},"scope":17536,"src":"2076:78:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17529,"nodeType":"StructuredDocumentation","src":"2160:48:62","text":" @dev Get trustedTVMExecutors."},"functionSelector":"c7f7d04a","id":17535,"implemented":false,"kind":"function","modifiers":[],"name":"getTrustedTVMExecutors","nameLocation":"2222:22:62","nodeType":"FunctionDefinition","parameters":{"id":17530,"nodeType":"ParameterList","parameters":[],"src":"2244:2:62"},"returnParameters":{"id":17534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17535,"src":"2270:15:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":17531,"name":"string","nodeType":"ElementaryTypeName","src":"2270:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17532,"nodeType":"ArrayTypeName","src":"2270:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"2269:17:62"},"scope":17536,"src":"2213:74:62","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":17537,"src":"221:2068:62","usedErrors":[],"usedEvents":[17459]}],"src":"32:2258:62"},"id":62},"contracts/interfaces/ITacInitializable.sol":{"ast":{"absolutePath":"contracts/interfaces/ITacInitializable.sol","exportedSymbols":{"ITacInitializable":[17543]},"id":17544,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17538,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:63"},{"abstract":false,"baseContracts":[],"canonicalName":"ITacInitializable","contractDependencies":[],"contractKind":"interface","documentation":{"id":17539,"nodeType":"StructuredDocumentation","src":"58:44:63","text":" @title TacInitializable interface"},"fullyImplemented":false,"id":17543,"linearizedBaseContracts":[17543],"name":"ITacInitializable","nameLocation":"113:17:63","nodeType":"ContractDefinition","nodes":[{"functionSelector":"31f44900","id":17542,"implemented":false,"kind":"function","modifiers":[],"name":"disableInitializers","nameLocation":"146:19:63","nodeType":"FunctionDefinition","parameters":{"id":17540,"nodeType":"ParameterList","parameters":[],"src":"165:2:63"},"returnParameters":{"id":17541,"nodeType":"ParameterList","parameters":[],"src":"176:0:63"},"scope":17543,"src":"137:40:63","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":17544,"src":"103:76:63","usedErrors":[],"usedEvents":[]}],"src":"32:147:63"},"id":63},"contracts/interfaces/ITokenFactory.sol":{"ast":{"absolutePath":"contracts/interfaces/ITokenFactory.sol","exportedSymbols":{"ITokenFactory":[17568]},"id":17569,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17545,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"33:24:64"},{"abstract":false,"baseContracts":[],"canonicalName":"ITokenFactory","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":17568,"linearizedBaseContracts":[17568],"name":"ITokenFactory","nameLocation":"70:13:64","nodeType":"ContractDefinition","nodes":[{"functionSelector":"19cdeff1","id":17556,"implemented":false,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"100:6:64","nodeType":"FunctionDefinition","parameters":{"id":17552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17547,"mutability":"mutable","name":"_salt","nameLocation":"115:5:64","nodeType":"VariableDeclaration","scope":17556,"src":"107:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"107:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17549,"mutability":"mutable","name":"_initCode","nameLocation":"137:9:64","nodeType":"VariableDeclaration","scope":17556,"src":"122:24:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17548,"name":"bytes","nodeType":"ElementaryTypeName","src":"122:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17551,"mutability":"mutable","name":"initData","nameLocation":"163:8:64","nodeType":"VariableDeclaration","scope":17556,"src":"148:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17550,"name":"bytes","nodeType":"ElementaryTypeName","src":"148:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"106:66:64"},"returnParameters":{"id":17555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17556,"src":"191:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17553,"name":"address","nodeType":"ElementaryTypeName","src":"191:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"190:9:64"},"scope":17568,"src":"91:109:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a3180978","id":17567,"implemented":false,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"214:14:64","nodeType":"FunctionDefinition","parameters":{"id":17563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17558,"mutability":"mutable","name":"_salt","nameLocation":"237:5:64","nodeType":"VariableDeclaration","scope":17567,"src":"229:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"229:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17560,"mutability":"mutable","name":"_initCode","nameLocation":"259:9:64","nodeType":"VariableDeclaration","scope":17567,"src":"244:24:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17559,"name":"bytes","nodeType":"ElementaryTypeName","src":"244:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17562,"mutability":"mutable","name":"_deployer","nameLocation":"278:9:64","nodeType":"VariableDeclaration","scope":17567,"src":"270:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17561,"name":"address","nodeType":"ElementaryTypeName","src":"270:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"228:60:64"},"returnParameters":{"id":17566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17567,"src":"312:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17564,"name":"address","nodeType":"ElementaryTypeName","src":"312:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"311:9:64"},"scope":17568,"src":"205:116:64","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":17569,"src":"60:263:64","usedErrors":[],"usedEvents":[]}],"src":"33:290:64"},"id":64},"contracts/interfaces/ITokenUtils.sol":{"ast":{"absolutePath":"contracts/interfaces/ITokenUtils.sol","exportedSymbols":{"ITacInitializable":[17543],"ITokenUtils":[17625],"NFTInfo":[15993],"TokenInfo":[15983]},"id":17626,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17570,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:65"},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":17573,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17626,"sourceUnit":16218,"src":"58:57:65","symbolAliases":[{"foreign":{"id":17571,"name":"TokenInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"67:9:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":17572,"name":"NFTInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15993,"src":"78:7:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ITacInitializable.sol","file":"./ITacInitializable.sol","id":17575,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17626,"sourceUnit":17544,"src":"117:60:65","symbolAliases":[{"foreign":{"id":17574,"name":"ITacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17543,"src":"126:17:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17577,"name":"ITacInitializable","nameLocations":["300:17:65"],"nodeType":"IdentifierPath","referencedDeclaration":17543,"src":"300:17:65"},"id":17578,"nodeType":"InheritanceSpecifier","src":"300:17:65"}],"canonicalName":"ITokenUtils","contractDependencies":[],"contractKind":"interface","documentation":{"id":17576,"nodeType":"StructuredDocumentation","src":"179:95:65","text":" @title ITokenUtils\n @dev An interface to message and Merkle tree utility functions"},"fullyImplemented":false,"id":17625,"linearizedBaseContracts":[17625,17543],"name":"ITokenUtils","nameLocation":"285:11:65","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17579,"nodeType":"StructuredDocumentation","src":"325:127:65","text":" @dev Deploy new ERC20 Cross-Chain Layer token.\n @param info TokenInfo struct containing token details."},"functionSelector":"1963202b","id":17585,"implemented":false,"kind":"function","modifiers":[],"name":"create","nameLocation":"466:6:65","nodeType":"FunctionDefinition","parameters":{"id":17583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17582,"mutability":"mutable","name":"info","nameLocation":"501:4:65","nodeType":"VariableDeclaration","scope":17585,"src":"482:23:65","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_calldata_ptr","typeString":"struct TokenInfo"},"typeName":{"id":17581,"nodeType":"UserDefinedTypeName","pathNode":{"id":17580,"name":"TokenInfo","nameLocations":["482:9:65"],"nodeType":"IdentifierPath","referencedDeclaration":15983,"src":"482:9:65"},"referencedDeclaration":15983,"src":"482:9:65","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_storage_ptr","typeString":"struct TokenInfo"}},"visibility":"internal"}],"src":"472:39:65"},"returnParameters":{"id":17584,"nodeType":"ParameterList","parameters":[],"src":"520:0:65"},"scope":17625,"src":"457:64:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17586,"nodeType":"StructuredDocumentation","src":"527:126:65","text":" @dev Deploy new ERC721 Cross-Chain Layer token.\n @param info NFTInfo struct containing token details."},"functionSelector":"1adc56db","id":17592,"implemented":false,"kind":"function","modifiers":[],"name":"createERC721","nameLocation":"667:12:65","nodeType":"FunctionDefinition","parameters":{"id":17590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17589,"mutability":"mutable","name":"info","nameLocation":"706:4:65","nodeType":"VariableDeclaration","scope":17592,"src":"689:21:65","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_calldata_ptr","typeString":"struct NFTInfo"},"typeName":{"id":17588,"nodeType":"UserDefinedTypeName","pathNode":{"id":17587,"name":"NFTInfo","nameLocations":["689:7:65"],"nodeType":"IdentifierPath","referencedDeclaration":15993,"src":"689:7:65"},"referencedDeclaration":15993,"src":"689:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_storage_ptr","typeString":"struct NFTInfo"}},"visibility":"internal"}],"src":"679:37:65"},"returnParameters":{"id":17591,"nodeType":"ParameterList","parameters":[],"src":"725:0:65"},"scope":17625,"src":"658:68:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17593,"nodeType":"StructuredDocumentation","src":"732:116:65","text":" @dev Checks if the token exists or not by evm address\n @param evmAddress EVM token address."},"functionSelector":"f6a3d24e","id":17600,"implemented":false,"kind":"function","modifiers":[],"name":"exists","nameLocation":"862:6:65","nodeType":"FunctionDefinition","parameters":{"id":17596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17595,"mutability":"mutable","name":"evmAddress","nameLocation":"877:10:65","nodeType":"VariableDeclaration","scope":17600,"src":"869:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17594,"name":"address","nodeType":"ElementaryTypeName","src":"869:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"868:20:65"},"returnParameters":{"id":17599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17600,"src":"912:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17597,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:65"},"scope":17625,"src":"853:65:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17601,"nodeType":"StructuredDocumentation","src":"924:130:65","text":" @dev Checks if the token exists or not by tvm address\n @param tvmAddress Corresponding TON token address."},"functionSelector":"261a323e","id":17608,"implemented":false,"kind":"function","modifiers":[],"name":"exists","nameLocation":"1068:6:65","nodeType":"FunctionDefinition","parameters":{"id":17604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17603,"mutability":"mutable","name":"tvmAddress","nameLocation":"1089:10:65","nodeType":"VariableDeclaration","scope":17608,"src":"1075:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17602,"name":"string","nodeType":"ElementaryTypeName","src":"1075:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1074:26:65"},"returnParameters":{"id":17607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17606,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17608,"src":"1124:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17605,"name":"bool","nodeType":"ElementaryTypeName","src":"1124:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1123:6:65"},"scope":17625,"src":"1059:71:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17609,"nodeType":"StructuredDocumentation","src":"1136:121:65","text":" @dev Get address of Cross-Chain Layer token.\n @param tvmAddress Corresponding TON token address."},"functionSelector":"1f596f89","id":17616,"implemented":false,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"1271:14:65","nodeType":"FunctionDefinition","parameters":{"id":17612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17611,"mutability":"mutable","name":"tvmAddress","nameLocation":"1309:10:65","nodeType":"VariableDeclaration","scope":17616,"src":"1295:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17610,"name":"string","nodeType":"ElementaryTypeName","src":"1295:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1285:40:65"},"returnParameters":{"id":17615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17616,"src":"1349:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17613,"name":"address","nodeType":"ElementaryTypeName","src":"1349:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1348:9:65"},"scope":17625,"src":"1262:96:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17617,"nodeType":"StructuredDocumentation","src":"1364:133:65","text":" @dev Get address of ERC721 Cross-Chain Layer token.\n @param tvmAddress Corresponding TON collection address."},"functionSelector":"96c8e820","id":17624,"implemented":false,"kind":"function","modifiers":[],"name":"computeAddressERC721","nameLocation":"1511:20:65","nodeType":"FunctionDefinition","parameters":{"id":17620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17619,"mutability":"mutable","name":"tvmAddress","nameLocation":"1557:10:65","nodeType":"VariableDeclaration","scope":17624,"src":"1541:26:65","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":17618,"name":"string","nodeType":"ElementaryTypeName","src":"1541:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1531:42:65"},"returnParameters":{"id":17623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17622,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17624,"src":"1597:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17621,"name":"address","nodeType":"ElementaryTypeName","src":"1597:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1596:9:65"},"scope":17625,"src":"1502:104:65","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":17626,"src":"275:1333:65","usedErrors":[],"usedEvents":[]}],"src":"32:1577:65"},"id":65},"contracts/interfaces/IWTAC.sol":{"ast":{"absolutePath":"contracts/interfaces/IWTAC.sol","exportedSymbols":{"IERC20":[4735],"IWTAC":[17653]},"id":17654,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17627,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:66"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":17629,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17654,"sourceUnit":4736,"src":"58:72:66","symbolAliases":[{"foreign":{"id":17628,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"67:6:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17631,"name":"IERC20","nameLocations":["259:6:66"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"259:6:66"},"id":17632,"nodeType":"InheritanceSpecifier","src":"259:6:66"}],"canonicalName":"IWTAC","contractDependencies":[],"contractKind":"interface","documentation":{"id":17630,"nodeType":"StructuredDocumentation","src":"132:108:66","text":"@title Wrapped TAC contract interface\n @author TAC\n @notice Wrapped TAC token contract over ERC20"},"fullyImplemented":false,"id":17653,"linearizedBaseContracts":[17653,4735],"name":"IWTAC","nameLocation":"250:5:66","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","id":17638,"name":"Deposit","nameLocation":"279:7:66","nodeType":"EventDefinition","parameters":{"id":17637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17634,"indexed":true,"mutability":"mutable","name":"dst","nameLocation":"303:3:66","nodeType":"VariableDeclaration","scope":17638,"src":"287:19:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17633,"name":"address","nodeType":"ElementaryTypeName","src":"287:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17636,"indexed":false,"mutability":"mutable","name":"wad","nameLocation":"313:3:66","nodeType":"VariableDeclaration","scope":17638,"src":"308:8:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17635,"name":"uint","nodeType":"ElementaryTypeName","src":"308:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"286:31:66"},"src":"273:45:66"},{"anonymous":false,"eventSelector":"7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65","id":17644,"name":"Withdrawal","nameLocation":"329:10:66","nodeType":"EventDefinition","parameters":{"id":17643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17640,"indexed":true,"mutability":"mutable","name":"src","nameLocation":"356:3:66","nodeType":"VariableDeclaration","scope":17644,"src":"340:19:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17639,"name":"address","nodeType":"ElementaryTypeName","src":"340:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17642,"indexed":false,"mutability":"mutable","name":"wad","nameLocation":"366:3:66","nodeType":"VariableDeclaration","scope":17644,"src":"361:8:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17641,"name":"uint","nodeType":"ElementaryTypeName","src":"361:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"339:31:66"},"src":"323:48:66"},{"functionSelector":"d0e30db0","id":17647,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"386:7:66","nodeType":"FunctionDefinition","parameters":{"id":17645,"nodeType":"ParameterList","parameters":[],"src":"393:2:66"},"returnParameters":{"id":17646,"nodeType":"ParameterList","parameters":[],"src":"412:0:66"},"scope":17653,"src":"377:36:66","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2e1a7d4d","id":17652,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"427:8:66","nodeType":"FunctionDefinition","parameters":{"id":17650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17649,"mutability":"mutable","name":"wad","nameLocation":"441:3:66","nodeType":"VariableDeclaration","scope":17652,"src":"436:8:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17648,"name":"uint","nodeType":"ElementaryTypeName","src":"436:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"435:10:66"},"returnParameters":{"id":17651,"nodeType":"ParameterList","parameters":[],"src":"454:0:66"},"scope":17653,"src":"418:37:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":17654,"src":"240:217:66","usedErrors":[],"usedEvents":[4669,4678,17638,17644]}],"src":"32:425:66"},"id":66},"contracts/interfaces/tokens/ICrossChainLayerERC20.sol":{"ast":{"absolutePath":"contracts/interfaces/tokens/ICrossChainLayerERC20.sol","exportedSymbols":{"ICrossChainLayerERC20":[17692],"IERC20":[4735],"TokenInfo":[15983]},"id":17693,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17655,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:67"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":17657,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17693,"sourceUnit":4736,"src":"58:72:67","symbolAliases":[{"foreign":{"id":17656,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"67:6:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../../core/Structs.sol","id":17659,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17693,"sourceUnit":16218,"src":"131:51:67","symbolAliases":[{"foreign":{"id":17658,"name":"TokenInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"140:9:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17661,"name":"IERC20","nameLocations":["318:6:67"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"318:6:67"},"id":17662,"nodeType":"InheritanceSpecifier","src":"318:6:67"}],"canonicalName":"ICrossChainLayerERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":17660,"nodeType":"StructuredDocumentation","src":"185:97:67","text":" @title CrossChainLayerERC20\n @dev A contract for all Cross-Chain Layer ERC20 tokens."},"fullyImplemented":false,"id":17692,"linearizedBaseContracts":[17692,4735],"name":"ICrossChainLayerERC20","nameLocation":"293:21:67","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17663,"nodeType":"StructuredDocumentation","src":"332:136:67","text":" @dev Function to mint tokens\n @param to Address to mint tokens to\n @param amount Amount of tokens to mint"},"functionSelector":"40c10f19","id":17670,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"482:4:67","nodeType":"FunctionDefinition","parameters":{"id":17668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17665,"mutability":"mutable","name":"to","nameLocation":"495:2:67","nodeType":"VariableDeclaration","scope":17670,"src":"487:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17664,"name":"address","nodeType":"ElementaryTypeName","src":"487:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17667,"mutability":"mutable","name":"amount","nameLocation":"507:6:67","nodeType":"VariableDeclaration","scope":17670,"src":"499:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17666,"name":"uint256","nodeType":"ElementaryTypeName","src":"499:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"486:28:67"},"returnParameters":{"id":17669,"nodeType":"ParameterList","parameters":[],"src":"523:0:67"},"scope":17692,"src":"473:51:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17671,"nodeType":"StructuredDocumentation","src":"530:138:67","text":" @dev Function to burn tokens\n @param from Address to mint tokens to\n @param amount Amount of tokens to burn"},"functionSelector":"9dc29fac","id":17678,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"682:4:67","nodeType":"FunctionDefinition","parameters":{"id":17676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17673,"mutability":"mutable","name":"from","nameLocation":"695:4:67","nodeType":"VariableDeclaration","scope":17678,"src":"687:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17672,"name":"address","nodeType":"ElementaryTypeName","src":"687:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17675,"mutability":"mutable","name":"amount","nameLocation":"709:6:67","nodeType":"VariableDeclaration","scope":17678,"src":"701:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17674,"name":"uint256","nodeType":"ElementaryTypeName","src":"701:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"686:30:67"},"returnParameters":{"id":17677,"nodeType":"ParameterList","parameters":[],"src":"725:0:67"},"scope":17692,"src":"673:53:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17679,"nodeType":"StructuredDocumentation","src":"732:83:67","text":" @dev Returns token decimals.\n @return uint8 Token decimals"},"functionSelector":"313ce567","id":17684,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"829:8:67","nodeType":"FunctionDefinition","parameters":{"id":17680,"nodeType":"ParameterList","parameters":[],"src":"837:2:67"},"returnParameters":{"id":17683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17684,"src":"863:5:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":17681,"name":"uint8","nodeType":"ElementaryTypeName","src":"863:5:67","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"862:7:67"},"scope":17692,"src":"820:50:67","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":17685,"nodeType":"StructuredDocumentation","src":"876:43:67","text":" @dev Returns token info."},"functionSelector":"5a9b0b89","id":17691,"implemented":false,"kind":"function","modifiers":[],"name":"getInfo","nameLocation":"933:7:67","nodeType":"FunctionDefinition","parameters":{"id":17686,"nodeType":"ParameterList","parameters":[],"src":"940:2:67"},"returnParameters":{"id":17690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17691,"src":"966:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_memory_ptr","typeString":"struct TokenInfo"},"typeName":{"id":17688,"nodeType":"UserDefinedTypeName","pathNode":{"id":17687,"name":"TokenInfo","nameLocations":["966:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":15983,"src":"966:9:67"},"referencedDeclaration":15983,"src":"966:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_storage_ptr","typeString":"struct TokenInfo"}},"visibility":"internal"}],"src":"965:18:67"},"scope":17692,"src":"924:60:67","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":17693,"src":"283:703:67","usedErrors":[],"usedEvents":[4669,4678]}],"src":"32:955:67"},"id":67},"contracts/interfaces/tokens/ICrossChainLayerERC721.sol":{"ast":{"absolutePath":"contracts/interfaces/tokens/ICrossChainLayerERC721.sol","exportedSymbols":{"ICrossChainLayerERC721":[17730],"IERC721":[6246],"NFTInfo":[15993]},"id":17731,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17694,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:68"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":17696,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17731,"sourceUnit":6247,"src":"58:75:68","symbolAliases":[{"foreign":{"id":17695,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"67:7:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../../core/Structs.sol","id":17698,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17731,"sourceUnit":16218,"src":"135:49:68","symbolAliases":[{"foreign":{"id":17697,"name":"NFTInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15993,"src":"144:7:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17700,"name":"IERC721","nameLocations":["333:7:68"],"nodeType":"IdentifierPath","referencedDeclaration":6246,"src":"333:7:68"},"id":17701,"nodeType":"InheritanceSpecifier","src":"333:7:68"}],"canonicalName":"ICrossChainLayerERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":17699,"nodeType":"StructuredDocumentation","src":"186:110:68","text":" @title ICrossChainLayerERC721\n @dev A contract interface for all Cross-Chain Layer ERC721 tokens."},"fullyImplemented":false,"id":17730,"linearizedBaseContracts":[17730,6246,8493],"name":"ICrossChainLayerERC721","nameLocation":"307:22:68","nodeType":"ContractDefinition","nodes":[{"functionSelector":"55f804b3","id":17706,"implemented":false,"kind":"function","modifiers":[],"name":"setBaseURI","nameLocation":"358:10:68","nodeType":"FunctionDefinition","parameters":{"id":17704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17703,"mutability":"mutable","name":"baseURI","nameLocation":"385:7:68","nodeType":"VariableDeclaration","scope":17706,"src":"369:23:68","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":17702,"name":"string","nodeType":"ElementaryTypeName","src":"369:6:68","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"368:25:68"},"returnParameters":{"id":17705,"nodeType":"ParameterList","parameters":[],"src":"402:0:68"},"scope":17730,"src":"348:55:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17707,"nodeType":"StructuredDocumentation","src":"409:164:68","text":" @dev Function to mint tokens\n @param to Address to mint tokens to\n @param tokenId Token ID to mint\n @param data Additional data"},"functionSelector":"8832e6e3","id":17716,"implemented":false,"kind":"function","modifiers":[],"name":"safeMint","nameLocation":"587:8:68","nodeType":"FunctionDefinition","parameters":{"id":17714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17709,"mutability":"mutable","name":"to","nameLocation":"604:2:68","nodeType":"VariableDeclaration","scope":17716,"src":"596:10:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17708,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17711,"mutability":"mutable","name":"tokenId","nameLocation":"616:7:68","nodeType":"VariableDeclaration","scope":17716,"src":"608:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17710,"name":"uint256","nodeType":"ElementaryTypeName","src":"608:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17713,"mutability":"mutable","name":"data","nameLocation":"638:4:68","nodeType":"VariableDeclaration","scope":17716,"src":"625:17:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17712,"name":"bytes","nodeType":"ElementaryTypeName","src":"625:5:68","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"595:48:68"},"returnParameters":{"id":17715,"nodeType":"ParameterList","parameters":[],"src":"652:0:68"},"scope":17730,"src":"578:75:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17717,"nodeType":"StructuredDocumentation","src":"659:86:68","text":" @dev Function to burn tokens\n @param tokenId Token ID to burn"},"functionSelector":"42966c68","id":17722,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"759:4:68","nodeType":"FunctionDefinition","parameters":{"id":17720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17719,"mutability":"mutable","name":"tokenId","nameLocation":"772:7:68","nodeType":"VariableDeclaration","scope":17722,"src":"764:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17718,"name":"uint256","nodeType":"ElementaryTypeName","src":"764:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"763:17:68"},"returnParameters":{"id":17721,"nodeType":"ParameterList","parameters":[],"src":"789:0:68"},"scope":17730,"src":"750:40:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":17723,"nodeType":"StructuredDocumentation","src":"796:43:68","text":" @dev Returns token info."},"functionSelector":"5a9b0b89","id":17729,"implemented":false,"kind":"function","modifiers":[],"name":"getInfo","nameLocation":"853:7:68","nodeType":"FunctionDefinition","parameters":{"id":17724,"nodeType":"ParameterList","parameters":[],"src":"860:2:68"},"returnParameters":{"id":17728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17729,"src":"886:14:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_memory_ptr","typeString":"struct NFTInfo"},"typeName":{"id":17726,"nodeType":"UserDefinedTypeName","pathNode":{"id":17725,"name":"NFTInfo","nameLocations":["886:7:68"],"nodeType":"IdentifierPath","referencedDeclaration":15993,"src":"886:7:68"},"referencedDeclaration":15993,"src":"886:7:68","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_storage_ptr","typeString":"struct NFTInfo"}},"visibility":"internal"}],"src":"885:16:68"},"scope":17730,"src":"844:58:68","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":17731,"src":"297:607:68","usedErrors":[],"usedEvents":[6145,6154,6163]}],"src":"32:873:68"},"id":68},"contracts/libs/SettingsConstants.sol":{"ast":{"absolutePath":"contracts/libs/SettingsConstants.sol","exportedSymbols":{"SettingsConstants":[17796]},"id":17797,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17732,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:69"},{"abstract":false,"baseContracts":[],"canonicalName":"SettingsConstants","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":17796,"linearizedBaseContracts":[17796],"name":"SettingsConstants","nameLocation":"66:17:69","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":17735,"mutability":"constant","name":"RATE_DECIMALS","nameLocation":"114:13:69","nodeType":"VariableDeclaration","scope":17796,"src":"91:43:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17733,"name":"uint","nodeType":"ElementaryTypeName","src":"91:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31303030","id":17734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"130:4:69","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"visibility":"internal"},{"constant":true,"id":17740,"mutability":"constant","name":"CONSENSUS_THRESHOLD_GROUPS_KEY","nameLocation":"944:30:69","nodeType":"VariableDeclaration","scope":17796,"src":"918:106:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"918:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d65726b6c65526f6f74436f6e73656e7375735468726573686f6c6447726f757073","id":17738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"987:36:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_4974a2122f752ac8bcaeec9beacd1bb419a4c873fda1aa7058360e08c5c9401c","typeString":"literal_string \"MerkleRootConsensusThresholdGroups\""},"value":"MerkleRootConsensusThresholdGroups"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4974a2122f752ac8bcaeec9beacd1bb419a4c873fda1aa7058360e08c5c9401c","typeString":"literal_string \"MerkleRootConsensusThresholdGroups\""}],"id":17737,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"977:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17745,"mutability":"constant","name":"CONSENSUS_THRESHOLD_IN_GROUP_KEY","nameLocation":"1056:32:69","nodeType":"VariableDeclaration","scope":17796,"src":"1030:109:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1030:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d65726b6c65526f6f74436f6e73656e7375735468726573686f6c64496e47726f7570","id":17743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1101:37:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f409c90678ce93e65834482eacce2014a08dd7ce43a3ec31af5320a72db7a62","typeString":"literal_string \"MerkleRootConsensusThresholdInGroup\""},"value":"MerkleRootConsensusThresholdInGroup"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7f409c90678ce93e65834482eacce2014a08dd7ce43a3ec31af5320a72db7a62","typeString":"literal_string \"MerkleRootConsensusThresholdInGroup\""}],"id":17742,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1091:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1091:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17750,"mutability":"constant","name":"EPOCH_DELAY_KEY","nameLocation":"1171:15:69","nodeType":"VariableDeclaration","scope":17796,"src":"1145:77:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1145:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d65726b6c65526f6f7445706f636844656c6179","id":17748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1199:22:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_b85db7dee54693d742881af46464432adde0803726a71dd9f6234a601792cf9a","typeString":"literal_string \"MerkleRootEpochDelay\""},"value":"MerkleRootEpochDelay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b85db7dee54693d742881af46464432adde0803726a71dd9f6234a601792cf9a","typeString":"literal_string \"MerkleRootEpochDelay\""}],"id":17747,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1189:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:33:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17755,"mutability":"constant","name":"TREE_DURATION_KEY","nameLocation":"1254:17:69","nodeType":"VariableDeclaration","scope":17796,"src":"1228:77:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1228:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d65726b6c65547265654475726174696f6e","id":17753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1284:20:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8a0e0a9d335faf7a58f75bc4896d12c9488e34801b4a891a6ba2ff43ae4ad2f","typeString":"literal_string \"MerkleTreeDuration\""},"value":"MerkleTreeDuration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c8a0e0a9d335faf7a58f75bc4896d12c9488e34801b4a891a6ba2ff43ae4ad2f","typeString":"literal_string \"MerkleTreeDuration\""}],"id":17752,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1274:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1274:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17760,"mutability":"constant","name":"VALIDITY_DURATION_KEY","nameLocation":"1337:21:69","nodeType":"VariableDeclaration","scope":17796,"src":"1311:89:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1311:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d65726b6c65526f6f7456616c69646974794475726174696f6e","id":17758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1371:28:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_30d9b452ee51929ed46b0efac730a78ccd37a793a5acf24feda636390b210516","typeString":"literal_string \"MerkleRootValidityDuration\""},"value":"MerkleRootValidityDuration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_30d9b452ee51929ed46b0efac730a78ccd37a793a5acf24feda636390b210516","typeString":"literal_string \"MerkleRootValidityDuration\""}],"id":17757,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1361:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1361:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17765,"mutability":"constant","name":"MAX_EPOCH_DURATION_KEY","nameLocation":"1432:22:69","nodeType":"VariableDeclaration","scope":17796,"src":"1406:90:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1406:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d65726b6c65526f6f744d617845706f63684475726174696f6e","id":17763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1467:28:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f27e928da73627e3874c3712f79e2e58f25a77db3929917088d7d5014f08604","typeString":"literal_string \"MerkleRootMaxEpochDuration\""},"value":"MerkleRootMaxEpochDuration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f27e928da73627e3874c3712f79e2e58f25a77db3929917088d7d5014f08604","typeString":"literal_string \"MerkleRootMaxEpochDuration\""}],"id":17762,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1457:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1457:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17770,"mutability":"constant","name":"ASSET_DEPLOY_FINALIZE_TIME_KEY","nameLocation":"1528:30:69","nodeType":"VariableDeclaration","scope":17796,"src":"1502:95:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1502:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"41737365744465706c6f7946696e616c697a6554696d65","id":17768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1571:25:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_e30954f078b83da37fe6529e73721e4b7b8cfc0f9ab2bb4f1f9828ca6b2ef120","typeString":"literal_string \"AssetDeployFinalizeTime\""},"value":"AssetDeployFinalizeTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e30954f078b83da37fe6529e73721e4b7b8cfc0f9ab2bb4f1f9828ca6b2ef120","typeString":"literal_string \"AssetDeployFinalizeTime\""}],"id":17767,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1561:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1561:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17775,"mutability":"constant","name":"CCL_ADDRESS_KEY","nameLocation":"1957:15:69","nodeType":"VariableDeclaration","scope":17796,"src":"1931:79:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17771,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1931:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"43726f7373436861696e4c6179657241646472657373","id":17773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1985:24:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_fe7a664f6e0c3521ff1c6c504d38ef3e9f443169aed5f833bbef58ef2647083b","typeString":"literal_string \"CrossChainLayerAddress\""},"value":"CrossChainLayerAddress"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fe7a664f6e0c3521ff1c6c504d38ef3e9f443169aed5f833bbef58ef2647083b","typeString":"literal_string \"CrossChainLayerAddress\""}],"id":17772,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1975:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1975:35:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17780,"mutability":"constant","name":"TOKEN_UTILS_ADDRESS_KEY","nameLocation":"2042:23:69","nodeType":"VariableDeclaration","scope":17796,"src":"2016:82:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2016:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"546f6b656e5574696c7341646472657373","id":17778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2078:19:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_211c2745ac5ee6e09e5cfea6b039edcef274b70fb1404ff78779e4759bf70783","typeString":"literal_string \"TokenUtilsAddress\""},"value":"TokenUtilsAddress"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_211c2745ac5ee6e09e5cfea6b039edcef274b70fb1404ff78779e4759bf70783","typeString":"literal_string \"TokenUtilsAddress\""}],"id":17777,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2068:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2068:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17785,"mutability":"constant","name":"CONSENSUS_ADDRESS_KEY","nameLocation":"2130:21:69","nodeType":"VariableDeclaration","scope":17796,"src":"2104:79:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2104:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"436f6e73656e73757341646472657373","id":17783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2164:18:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_74108225d5b838030da6279474524322f9c8b07ad500246d400a882d1adc4a67","typeString":"literal_string \"ConsensusAddress\""},"value":"ConsensusAddress"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_74108225d5b838030da6279474524322f9c8b07ad500246d400a882d1adc4a67","typeString":"literal_string \"ConsensusAddress\""}],"id":17782,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2154:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17790,"mutability":"constant","name":"NFT_PREFIX_URI_KEY","nameLocation":"2328:18:69","nodeType":"VariableDeclaration","scope":17796,"src":"2302:72:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2302:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4e4654507265666978555249","id":17788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2359:14:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_8966879121cfb6c0f964e7eacbe2052f82e9cfff16d18b638bfd80da1189d030","typeString":"literal_string \"NFTPrefixURI\""},"value":"NFTPrefixURI"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8966879121cfb6c0f964e7eacbe2052f82e9cfff16d18b638bfd80da1189d030","typeString":"literal_string \"NFTPrefixURI\""}],"id":17787,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2349:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2349:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17795,"mutability":"constant","name":"FT_PREFIX_IMAGE_KEY","nameLocation":"2509:19:69","nodeType":"VariableDeclaration","scope":17796,"src":"2483:74:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2483:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4654507265666978496d616765","id":17793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2541:15:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_b91d3c5ffbf64f5db586fb9e283ef216271d92de17b247d061043614a5364b86","typeString":"literal_string \"FTPrefixImage\""},"value":"FTPrefixImage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b91d3c5ffbf64f5db586fb9e283ef216271d92de17b247d061043614a5364b86","typeString":"literal_string \"FTPrefixImage\""}],"id":17792,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2531:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2531:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"scope":17797,"src":"58:2502:69","usedErrors":[],"usedEvents":[]}],"src":"32:2528:69"},"id":69},"contracts/libs/TokenHelperLib.sol":{"ast":{"absolutePath":"contracts/libs/TokenHelperLib.sol","exportedSymbols":{"CrossChainLayerERC20":[17117],"CrossChainLayerERC721":[17310],"IERC165":[8493],"IERC20":[4735],"IERC721":[6246],"NFTAmount":[16007],"SafeERC20":[5172],"TokenAmount":[15999],"TokenHelperLib":[18118]},"id":18119,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17798,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"33:24:70"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":17800,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18119,"sourceUnit":4736,"src":"59:72:70","symbolAliases":[{"foreign":{"id":17799,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"68:6:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":17802,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18119,"sourceUnit":8494,"src":"132:82:70","symbolAliases":[{"foreign":{"id":17801,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"141:7:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":17804,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18119,"sourceUnit":6247,"src":"215:75:70","symbolAliases":[{"foreign":{"id":17803,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"224:7:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":17806,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18119,"sourceUnit":5173,"src":"292:84:70","symbolAliases":[{"foreign":{"id":17805,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"301:9:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/tokens/CrossChainLayerERC20.sol","file":"../core/tokens/CrossChainLayerERC20.sol","id":17808,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18119,"sourceUnit":17118,"src":"377:79:70","symbolAliases":[{"foreign":{"id":17807,"name":"CrossChainLayerERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"386:20:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/tokens/CrossChainLayerERC721.sol","file":"../core/tokens/CrossChainLayerERC721.sol","id":17810,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18119,"sourceUnit":17311,"src":"457:81:70","symbolAliases":[{"foreign":{"id":17809,"name":"CrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"466:21:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":17813,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18119,"sourceUnit":16218,"src":"539:61:70","symbolAliases":[{"foreign":{"id":17811,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"548:11:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":17812,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"561:9:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"TokenHelperLib","contractDependencies":[],"contractKind":"library","documentation":{"id":17814,"nodeType":"StructuredDocumentation","src":"602:64:70","text":" @title TokenHelperLib\n @dev Token utility functions"},"fullyImplemented":true,"id":18118,"linearizedBaseContracts":[18118],"name":"TokenHelperLib","nameLocation":"675:14:70","nodeType":"ContractDefinition","nodes":[{"errorSelector":"2e6172ec","id":17818,"name":"InvalidNFTInterface","nameLocation":"703:19:70","nodeType":"ErrorDefinition","parameters":{"id":17817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17818,"src":"723:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17815,"name":"address","nodeType":"ElementaryTypeName","src":"723:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"722:9:70"},"src":"697:35:70"},{"global":false,"id":17822,"libraryName":{"id":17819,"name":"SafeERC20","nameLocations":["744:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":5172,"src":"744:9:70"},"nodeType":"UsingForDirective","src":"738:27:70","typeName":{"id":17821,"nodeType":"UserDefinedTypeName","pathNode":{"id":17820,"name":"IERC20","nameLocations":["758:6:70"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"758:6:70"},"referencedDeclaration":4735,"src":"758:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}}},{"body":{"id":17847,"nodeType":"Block","src":"953:131:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17831,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17826,"src":"967:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"973:6:70","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"967:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"982:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"967:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17846,"nodeType":"IfStatement","src":"963:115:70","trueBody":{"id":17845,"nodeType":"Block","src":"985:93:70","statements":[{"expression":{"arguments":[{"id":17840,"name":"toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17828,"src":"1043:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17841,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17826,"src":"1054:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1060:6:70","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"1054:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":17836,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17826,"src":"1020:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1026:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"1020:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17835,"name":"CrossChainLayerERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"999:20:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC20_$17117_$","typeString":"type(contract CrossChainLayerERC20)"}},"id":17838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"999:38:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayerERC20_$17117","typeString":"contract CrossChainLayerERC20"}},"id":17839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1038:4:70","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":17069,"src":"999:43:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":17843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"999:68:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17844,"nodeType":"ExpressionStatement","src":"999:68:70"}]}}]},"documentation":{"id":17823,"nodeType":"StructuredDocumentation","src":"771:109:70","text":" @dev Mint token.\n @param token Token amount info.\n @param toAddress Recipient."},"id":17848,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"894:4:70","nodeType":"FunctionDefinition","parameters":{"id":17829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17826,"mutability":"mutable","name":"token","nameLocation":"918:5:70","nodeType":"VariableDeclaration","scope":17848,"src":"899:24:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount"},"typeName":{"id":17825,"nodeType":"UserDefinedTypeName","pathNode":{"id":17824,"name":"TokenAmount","nameLocations":["899:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"899:11:70"},"referencedDeclaration":15999,"src":"899:11:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"},{"constant":false,"id":17828,"mutability":"mutable","name":"toAddress","nameLocation":"933:9:70","nodeType":"VariableDeclaration","scope":17848,"src":"925:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17827,"name":"address","nodeType":"ElementaryTypeName","src":"925:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"898:45:70"},"returnParameters":{"id":17830,"nodeType":"ParameterList","parameters":[],"src":"953:0:70"},"scope":18118,"src":"885:199:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17873,"nodeType":"Block","src":"1276:125:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17857,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"1290:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1296:6:70","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"1290:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1305:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1290:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17872,"nodeType":"IfStatement","src":"1286:109:70","trueBody":{"id":17871,"nodeType":"Block","src":"1308:87:70","statements":[{"expression":{"arguments":[{"id":17866,"name":"toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17854,"src":"1360:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17867,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"1371:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1377:6:70","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"1371:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":17862,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"1329:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1335:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"1329:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17861,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"1322:6:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4735_$","typeString":"type(contract IERC20)"}},"id":17864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":17865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:12:70","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":4808,"src":"1322:37:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$4735_$","typeString":"function (contract IERC20,address,uint256)"}},"id":17869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:62:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17870,"nodeType":"ExpressionStatement","src":"1322:62:70"}]}}]},"documentation":{"id":17849,"nodeType":"StructuredDocumentation","src":"1090:111:70","text":" @dev Unlock token.\n @param token Token amount info.\n @param toAddress Recipient."},"id":17874,"implemented":true,"kind":"function","modifiers":[],"name":"unlock","nameLocation":"1215:6:70","nodeType":"FunctionDefinition","parameters":{"id":17855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17852,"mutability":"mutable","name":"token","nameLocation":"1241:5:70","nodeType":"VariableDeclaration","scope":17874,"src":"1222:24:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount"},"typeName":{"id":17851,"nodeType":"UserDefinedTypeName","pathNode":{"id":17850,"name":"TokenAmount","nameLocations":["1222:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1222:11:70"},"referencedDeclaration":15999,"src":"1222:11:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"},{"constant":false,"id":17854,"mutability":"mutable","name":"toAddress","nameLocation":"1256:9:70","nodeType":"VariableDeclaration","scope":17874,"src":"1248:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17853,"name":"address","nodeType":"ElementaryTypeName","src":"1248:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1221:45:70"},"returnParameters":{"id":17856,"nodeType":"ParameterList","parameters":[],"src":"1276:0:70"},"scope":18118,"src":"1206:195:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17915,"nodeType":"Block","src":"1535:287:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17881,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17878,"src":"1549:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1555:6:70","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"1549:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1564:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1549:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17914,"nodeType":"IfStatement","src":"1545:271:70","trueBody":{"id":17913,"nodeType":"Block","src":"1567:249:70","statements":[{"expression":{"arguments":[{"expression":{"id":17890,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1679:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1683:6:70","memberName":"sender","nodeType":"MemberAccess","src":"1679:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17894,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1699:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}],"id":17893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1691:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17892,"name":"address","nodeType":"ElementaryTypeName","src":"1691:7:70","typeDescriptions":{}}},"id":17895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1691:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17896,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17878,"src":"1706:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1712:6:70","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"1706:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":17886,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17878,"src":"1644:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1650:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"1644:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17885,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"1637:6:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4735_$","typeString":"type(contract IERC20)"}},"id":17888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1637:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":17889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1662:16:70","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":4835,"src":"1637:41:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$4735_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":17898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1637:82:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17899,"nodeType":"ExpressionStatement","src":"1637:82:70"},{"expression":{"arguments":[{"arguments":[{"id":17907,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1785:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}],"id":17906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1777:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17905,"name":"address","nodeType":"ElementaryTypeName","src":"1777:7:70","typeDescriptions":{}}},"id":17908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1777:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17909,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17878,"src":"1792:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1798:6:70","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"1792:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":17901,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17878,"src":"1754:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1760:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"1754:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17900,"name":"CrossChainLayerERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"1733:20:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC20_$17117_$","typeString":"type(contract CrossChainLayerERC20)"}},"id":17903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1733:38:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayerERC20_$17117","typeString":"contract CrossChainLayerERC20"}},"id":17904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1772:4:70","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":17086,"src":"1733:43:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":17911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1733:72:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17912,"nodeType":"ExpressionStatement","src":"1733:72:70"}]}}]},"documentation":{"id":17875,"nodeType":"StructuredDocumentation","src":"1407:74:70","text":" @dev Burn token.\n @param token Token amount info."},"id":17916,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1495:4:70","nodeType":"FunctionDefinition","parameters":{"id":17879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17878,"mutability":"mutable","name":"token","nameLocation":"1519:5:70","nodeType":"VariableDeclaration","scope":17916,"src":"1500:24:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount"},"typeName":{"id":17877,"nodeType":"UserDefinedTypeName","pathNode":{"id":17876,"name":"TokenAmount","nameLocations":["1500:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1500:11:70"},"referencedDeclaration":15999,"src":"1500:11:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"}],"src":"1499:26:70"},"returnParameters":{"id":17880,"nodeType":"ParameterList","parameters":[],"src":"1535:0:70"},"scope":18118,"src":"1486:336:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17944,"nodeType":"Block","src":"1956:145:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17923,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17920,"src":"1970:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1976:6:70","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"1970:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1985:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1970:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17943,"nodeType":"IfStatement","src":"1966:129:70","trueBody":{"id":17942,"nodeType":"Block","src":"1988:107:70","statements":[{"expression":{"arguments":[{"expression":{"id":17932,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2044:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2048:6:70","memberName":"sender","nodeType":"MemberAccess","src":"2044:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17936,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2064:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}],"id":17935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2056:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17934,"name":"address","nodeType":"ElementaryTypeName","src":"2056:7:70","typeDescriptions":{}}},"id":17937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2056:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17938,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17920,"src":"2071:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2077:6:70","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"2071:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":17928,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17920,"src":"2009:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":17929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2015:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"2009:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17927,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"2002:6:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4735_$","typeString":"type(contract IERC20)"}},"id":17930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2002:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":17931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2027:16:70","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":4835,"src":"2002:41:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$4735_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":17940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2002:82:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17941,"nodeType":"ExpressionStatement","src":"2002:82:70"}]}}]},"documentation":{"id":17917,"nodeType":"StructuredDocumentation","src":"1828:74:70","text":" @dev Lock token.\n @param token Token amount info."},"id":17945,"implemented":true,"kind":"function","modifiers":[],"name":"lock","nameLocation":"1916:4:70","nodeType":"FunctionDefinition","parameters":{"id":17921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17920,"mutability":"mutable","name":"token","nameLocation":"1940:5:70","nodeType":"VariableDeclaration","scope":17945,"src":"1921:24:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount"},"typeName":{"id":17919,"nodeType":"UserDefinedTypeName","pathNode":{"id":17918,"name":"TokenAmount","nameLocations":["1921:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1921:11:70"},"referencedDeclaration":15999,"src":"1921:11:70","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"}],"src":"1920:26:70"},"returnParameters":{"id":17922,"nodeType":"ParameterList","parameters":[],"src":"1956:0:70"},"scope":18118,"src":"1907:194:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17983,"nodeType":"Block","src":"2284:344:70","statements":[{"condition":{"arguments":[{"expression":{"arguments":[{"id":17960,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"2374:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}],"id":17959,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2369:4:70","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2369:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$6246","typeString":"type(contract IERC721)"}},"id":17962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2383:11:70","memberName":"interfaceId","nodeType":"MemberAccess","src":"2369:25:70","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"expression":{"id":17955,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17949,"src":"2333:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":17956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2339:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"2333:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17954,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"2325:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8493_$","typeString":"type(contract IERC165)"}},"id":17957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2325:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC165_$8493","typeString":"contract IERC165"}},"id":17958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2351:17:70","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":8492,"src":"2325:43:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":17963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2325:70:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17981,"nodeType":"Block","src":"2553:69:70","statements":[{"errorCall":{"arguments":[{"expression":{"id":17977,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17949,"src":"2594:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":17978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2600:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"2594:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17976,"name":"InvalidNFTInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17818,"src":"2574:19:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":17979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17980,"nodeType":"RevertStatement","src":"2567:44:70"}]},"id":17982,"nodeType":"IfStatement","src":"2321:301:70","trueBody":{"id":17975,"nodeType":"Block","src":"2397:150:70","statements":[{"expression":{"arguments":[{"id":17969,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17951,"src":"2514:2:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17970,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17949,"src":"2518:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":17971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2524:7:70","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16004,"src":"2518:13:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":17972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2533:2:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"expression":{"id":17965,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17949,"src":"2487:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":17966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2493:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"2487:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17964,"name":"CrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"2465:21:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC721_$17310_$","typeString":"type(contract CrossChainLayerERC721)"}},"id":17967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2465:39:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayerERC721_$17310","typeString":"contract CrossChainLayerERC721"}},"id":17968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2505:8:70","memberName":"safeMint","nodeType":"MemberAccess","referencedDeclaration":17255,"src":"2465:48:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory) external"}},"id":17973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2465:71:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17974,"nodeType":"ExpressionStatement","src":"2465:71:70"}]}}]},"documentation":{"id":17946,"nodeType":"StructuredDocumentation","src":"2122:95:70","text":" @dev mint nft\n @param token NFT amount info\n @param to Recipient"},"id":17984,"implemented":true,"kind":"function","modifiers":[],"name":"mintNFT","nameLocation":"2231:7:70","nodeType":"FunctionDefinition","parameters":{"id":17952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17949,"mutability":"mutable","name":"token","nameLocation":"2256:5:70","nodeType":"VariableDeclaration","scope":17984,"src":"2239:22:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount"},"typeName":{"id":17948,"nodeType":"UserDefinedTypeName","pathNode":{"id":17947,"name":"NFTAmount","nameLocations":["2239:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"2239:9:70"},"referencedDeclaration":16007,"src":"2239:9:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"visibility":"internal"},{"constant":false,"id":17951,"mutability":"mutable","name":"to","nameLocation":"2271:2:70","nodeType":"VariableDeclaration","scope":17984,"src":"2263:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17950,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2238:36:70"},"returnParameters":{"id":17953,"nodeType":"ParameterList","parameters":[],"src":"2284:0:70"},"scope":18118,"src":"2222:406:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18033,"nodeType":"Block","src":"2757:529:70","statements":[{"condition":{"arguments":[{"expression":{"arguments":[{"id":17997,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"2847:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}],"id":17996,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2842:4:70","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2842:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$6246","typeString":"type(contract IERC721)"}},"id":17999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2856:11:70","memberName":"interfaceId","nodeType":"MemberAccess","src":"2842:25:70","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"expression":{"id":17992,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17988,"src":"2806:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":17993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2812:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"2806:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17991,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"2798:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8493_$","typeString":"type(contract IERC165)"}},"id":17994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2798:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC165_$8493","typeString":"contract IERC165"}},"id":17995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2824:17:70","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":8492,"src":"2798:43:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":18000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2798:70:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18031,"nodeType":"Block","src":"3211:69:70","statements":[{"errorCall":{"arguments":[{"expression":{"id":18027,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17988,"src":"3252:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3258:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"3252:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18026,"name":"InvalidNFTInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17818,"src":"3232:19:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":18029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3232:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18030,"nodeType":"RevertStatement","src":"3225:44:70"}]},"id":18032,"nodeType":"IfStatement","src":"2794:486:70","trueBody":{"id":18025,"nodeType":"Block","src":"2870:335:70","statements":[{"expression":{"arguments":[{"expression":{"id":18006,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3080:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3084:6:70","memberName":"sender","nodeType":"MemberAccess","src":"3080:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":18010,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3100:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}],"id":18009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3092:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18008,"name":"address","nodeType":"ElementaryTypeName","src":"3092:7:70","typeDescriptions":{}}},"id":18011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3092:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":18012,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17988,"src":"3107:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3113:7:70","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16004,"src":"3107:13:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":18002,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17988,"src":"3049:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3055:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"3049:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18001,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"3041:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}},"id":18004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3041:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$6246","typeString":"contract IERC721"}},"id":18005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3067:12:70","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":6211,"src":"3041:38:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":18014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3041:80:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18015,"nodeType":"ExpressionStatement","src":"3041:80:70"},{"expression":{"arguments":[{"expression":{"id":18021,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17988,"src":"3180:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3186:7:70","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16004,"src":"3180:13:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":18017,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17988,"src":"3157:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3163:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"3157:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18016,"name":"CrossChainLayerERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"3135:21:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossChainLayerERC721_$17310_$","typeString":"type(contract CrossChainLayerERC721)"}},"id":18019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3135:39:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossChainLayerERC721_$17310","typeString":"contract CrossChainLayerERC721"}},"id":18020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3175:4:70","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":17269,"src":"3135:44:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":18023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3135:59:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18024,"nodeType":"ExpressionStatement","src":"3135:59:70"}]}}]},"documentation":{"id":17985,"nodeType":"StructuredDocumentation","src":"2634:68:70","text":" @dev burn nft\n @param token NFT amount info"},"id":18034,"implemented":true,"kind":"function","modifiers":[],"name":"burnNFT","nameLocation":"2716:7:70","nodeType":"FunctionDefinition","parameters":{"id":17989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17988,"mutability":"mutable","name":"token","nameLocation":"2741:5:70","nodeType":"VariableDeclaration","scope":18034,"src":"2724:22:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount"},"typeName":{"id":17987,"nodeType":"UserDefinedTypeName","pathNode":{"id":17986,"name":"NFTAmount","nameLocations":["2724:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"2724:9:70"},"referencedDeclaration":16007,"src":"2724:9:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"visibility":"internal"}],"src":"2723:24:70"},"returnParameters":{"id":17990,"nodeType":"ParameterList","parameters":[],"src":"2757:0:70"},"scope":18118,"src":"2707:579:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18075,"nodeType":"Block","src":"3458:378:70","statements":[{"condition":{"arguments":[{"expression":{"arguments":[{"id":18049,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"3548:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}],"id":18048,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3543:4:70","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3543:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$6246","typeString":"type(contract IERC721)"}},"id":18051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3557:11:70","memberName":"interfaceId","nodeType":"MemberAccess","src":"3543:25:70","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"expression":{"id":18044,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18038,"src":"3507:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3513:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"3507:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18043,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"3499:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8493_$","typeString":"type(contract IERC165)"}},"id":18046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3499:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC165_$8493","typeString":"contract IERC165"}},"id":18047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3525:17:70","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":8492,"src":"3499:43:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":18052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3499:70:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18073,"nodeType":"Block","src":"3761:69:70","statements":[{"errorCall":{"arguments":[{"expression":{"id":18069,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18038,"src":"3802:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3808:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"3802:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18068,"name":"InvalidNFTInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17818,"src":"3782:19:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":18071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3782:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18072,"nodeType":"RevertStatement","src":"3775:44:70"}]},"id":18074,"nodeType":"IfStatement","src":"3495:335:70","trueBody":{"id":18067,"nodeType":"Block","src":"3571:184:70","statements":[{"expression":{"arguments":[{"arguments":[{"id":18060,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3719:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}],"id":18059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3711:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18058,"name":"address","nodeType":"ElementaryTypeName","src":"3711:7:70","typeDescriptions":{}}},"id":18061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18062,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18040,"src":"3726:2:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":18063,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18038,"src":"3730:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3736:7:70","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16004,"src":"3730:13:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":18054,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18038,"src":"3676:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3682:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"3676:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18053,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"3668:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}},"id":18056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3668:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$6246","typeString":"contract IERC721"}},"id":18057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3694:16:70","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6201,"src":"3668:42:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":18065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3668:76:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18066,"nodeType":"ExpressionStatement","src":"3668:76:70"}]}}]},"documentation":{"id":18035,"nodeType":"StructuredDocumentation","src":"3292:97:70","text":" @dev unlock nft\n @param token NFT amount info\n @param to Recipient"},"id":18076,"implemented":true,"kind":"function","modifiers":[],"name":"unlockNFT","nameLocation":"3403:9:70","nodeType":"FunctionDefinition","parameters":{"id":18041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18038,"mutability":"mutable","name":"token","nameLocation":"3430:5:70","nodeType":"VariableDeclaration","scope":18076,"src":"3413:22:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount"},"typeName":{"id":18037,"nodeType":"UserDefinedTypeName","pathNode":{"id":18036,"name":"NFTAmount","nameLocations":["3413:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"3413:9:70"},"referencedDeclaration":16007,"src":"3413:9:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"visibility":"internal"},{"constant":false,"id":18040,"mutability":"mutable","name":"to","nameLocation":"3445:2:70","nodeType":"VariableDeclaration","scope":18076,"src":"3437:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18039,"name":"address","nodeType":"ElementaryTypeName","src":"3437:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3412:36:70"},"returnParameters":{"id":18042,"nodeType":"ParameterList","parameters":[],"src":"3458:0:70"},"scope":18118,"src":"3394:442:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18116,"nodeType":"Block","src":"3965:402:70","statements":[{"condition":{"arguments":[{"expression":{"arguments":[{"id":18089,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"4055:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}],"id":18088,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4050:4:70","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4050:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$6246","typeString":"type(contract IERC721)"}},"id":18091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4064:11:70","memberName":"interfaceId","nodeType":"MemberAccess","src":"4050:25:70","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"expression":{"id":18084,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18080,"src":"4014:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4020:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"4014:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18083,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"4006:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8493_$","typeString":"type(contract IERC165)"}},"id":18086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4006:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC165_$8493","typeString":"contract IERC165"}},"id":18087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4032:17:70","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":8492,"src":"4006:43:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":18092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4006:70:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18114,"nodeType":"Block","src":"4292:69:70","statements":[{"errorCall":{"arguments":[{"expression":{"id":18110,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18080,"src":"4333:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4339:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"4333:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18109,"name":"InvalidNFTInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17818,"src":"4313:19:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":18112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4313:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18113,"nodeType":"RevertStatement","src":"4306:44:70"}]},"id":18115,"nodeType":"IfStatement","src":"4002:359:70","trueBody":{"id":18108,"nodeType":"Block","src":"4078:208:70","statements":[{"expression":{"arguments":[{"expression":{"id":18098,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4234:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4238:6:70","memberName":"sender","nodeType":"MemberAccess","src":"4234:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":18102,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4254:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenHelperLib_$18118","typeString":"library TokenHelperLib"}],"id":18101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4246:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18100,"name":"address","nodeType":"ElementaryTypeName","src":"4246:7:70","typeDescriptions":{}}},"id":18103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4246:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":18104,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18080,"src":"4261:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4267:7:70","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16004,"src":"4261:13:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":18094,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18080,"src":"4203:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":18095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4209:10:70","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"4203:16:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18093,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"4195:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}},"id":18096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4195:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$6246","typeString":"contract IERC721"}},"id":18097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4221:12:70","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":6211,"src":"4195:38:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":18106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4195:80:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18107,"nodeType":"ExpressionStatement","src":"4195:80:70"}]}}]},"documentation":{"id":18077,"nodeType":"StructuredDocumentation","src":"3842:68:70","text":" @dev lock nft\n @param token NFT amount info"},"id":18117,"implemented":true,"kind":"function","modifiers":[],"name":"lockNFT","nameLocation":"3924:7:70","nodeType":"FunctionDefinition","parameters":{"id":18081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18080,"mutability":"mutable","name":"token","nameLocation":"3949:5:70","nodeType":"VariableDeclaration","scope":18117,"src":"3932:22:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount"},"typeName":{"id":18079,"nodeType":"UserDefinedTypeName","pathNode":{"id":18078,"name":"NFTAmount","nameLocations":["3932:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"3932:9:70"},"referencedDeclaration":16007,"src":"3932:9:70","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"visibility":"internal"}],"src":"3931:24:70"},"returnParameters":{"id":18082,"nodeType":"ParameterList","parameters":[],"src":"3965:0:70"},"scope":18118,"src":"3915:452:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":18119,"src":"667:3702:70","usedErrors":[17818],"usedEvents":[]}],"src":"33:4337:70"},"id":70},"contracts/libs/VersionLib.sol":{"ast":{"absolutePath":"contracts/libs/VersionLib.sol","exportedSymbols":{"InMessageV1":[16055],"NFTAmount":[16007],"NFTInfo":[15993],"OutMessageV1":[16084],"TVMFeeInfo":[16061],"TacHeaderV1":[16110],"TacProxy":[18430],"TokenAmount":[15999],"TokenInfo":[15983],"VersionLib":[18419]},"id":18420,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":18120,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:71"},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":18129,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18420,"sourceUnit":16218,"src":"58:133:71","symbolAliases":[{"foreign":{"id":18121,"name":"InMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16055,"src":"67:11:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18122,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"80:12:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18123,"name":"TacHeaderV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"94:11:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18124,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"107:11:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18125,"name":"TokenInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15983,"src":"120:9:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18126,"name":"TVMFeeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16061,"src":"131:10:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18127,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"143:9:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18128,"name":"NFTInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15993,"src":"154:7:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/proxies/TacProxy.sol","file":"../proxies/TacProxy.sol","id":18131,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18420,"sourceUnit":18431,"src":"192:51:71","symbolAliases":[{"foreign":{"id":18130,"name":"TacProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18430,"src":"201:8:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"VersionLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":18419,"linearizedBaseContracts":[18419],"name":"VersionLib","nameLocation":"253:10:71","nodeType":"ContractDefinition","nodes":[{"errorSelector":"589dab66","id":18135,"name":"InvalidInMessageVersion","nameLocation":"277:23:71","nodeType":"ErrorDefinition","parameters":{"id":18134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18133,"mutability":"mutable","name":"version","nameLocation":"309:7:71","nodeType":"VariableDeclaration","scope":18135,"src":"301:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18132,"name":"uint256","nodeType":"ElementaryTypeName","src":"301:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"300:17:71"},"src":"271:47:71"},{"errorSelector":"082bb941","id":18139,"name":"InvalidOutMessageVersion","nameLocation":"329:24:71","nodeType":"ErrorDefinition","parameters":{"id":18138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18137,"mutability":"mutable","name":"version","nameLocation":"362:7:71","nodeType":"VariableDeclaration","scope":18139,"src":"354:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18136,"name":"uint256","nodeType":"ElementaryTypeName","src":"354:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"353:17:71"},"src":"323:48:71"},{"errorSelector":"2a9f5068","id":18143,"name":"TargetIsNotTacProxy","nameLocation":"382:19:71","nodeType":"ErrorDefinition","parameters":{"id":18142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18141,"mutability":"mutable","name":"target","nameLocation":"410:6:71","nodeType":"VariableDeclaration","scope":18143,"src":"402:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18140,"name":"address","nodeType":"ElementaryTypeName","src":"402:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"401:16:71"},"src":"376:42:71"},{"errorSelector":"5dddf463","id":18149,"name":"InvalidProxyVersion","nameLocation":"429:19:71","nodeType":"ErrorDefinition","parameters":{"id":18148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18145,"mutability":"mutable","name":"target","nameLocation":"457:6:71","nodeType":"VariableDeclaration","scope":18149,"src":"449:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18144,"name":"address","nodeType":"ElementaryTypeName","src":"449:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18147,"mutability":"mutable","name":"version","nameLocation":"470:7:71","nodeType":"VariableDeclaration","scope":18149,"src":"465:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18146,"name":"uint","nodeType":"ElementaryTypeName","src":"465:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"448:30:71"},"src":"423:56:71"},{"canonicalName":"VersionLib.UnionInMessage","documentation":{"id":18150,"nodeType":"StructuredDocumentation","src":"485:84:71","text":" @title UnionInMessage\n @dev Struct can be changed in future"},"id":18197,"members":[{"constant":false,"id":18152,"mutability":"mutable","name":"shardsKey","nameLocation":"613:9:71","nodeType":"VariableDeclaration","scope":18197,"src":"606:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":18151,"name":"uint64","nodeType":"ElementaryTypeName","src":"606:6:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":18154,"mutability":"mutable","name":"gasLimit","nameLocation":"639:8:71","nodeType":"VariableDeclaration","scope":18197,"src":"632:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":18153,"name":"uint64","nodeType":"ElementaryTypeName","src":"632:6:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":18156,"mutability":"mutable","name":"operationId","nameLocation":"665:11:71","nodeType":"VariableDeclaration","scope":18197,"src":"657:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"657:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18158,"mutability":"mutable","name":"timestamp","nameLocation":"694:9:71","nodeType":"VariableDeclaration","scope":18197,"src":"686:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18157,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18160,"mutability":"mutable","name":"target","nameLocation":"721:6:71","nodeType":"VariableDeclaration","scope":18197,"src":"713:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18159,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18162,"mutability":"mutable","name":"methodName","nameLocation":"744:10:71","nodeType":"VariableDeclaration","scope":18197,"src":"737:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":18161,"name":"string","nodeType":"ElementaryTypeName","src":"737:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18164,"mutability":"mutable","name":"arguments","nameLocation":"770:9:71","nodeType":"VariableDeclaration","scope":18197,"src":"764:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":18163,"name":"bytes","nodeType":"ElementaryTypeName","src":"764:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":18166,"mutability":"mutable","name":"caller","nameLocation":"796:6:71","nodeType":"VariableDeclaration","scope":18197,"src":"789:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":18165,"name":"string","nodeType":"ElementaryTypeName","src":"789:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18169,"mutability":"mutable","name":"evmExecutorFee","nameLocation":"824:14:71","nodeType":"VariableDeclaration","scope":18197,"src":"812:26:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"},"typeName":{"id":18168,"nodeType":"UserDefinedTypeName","pathNode":{"id":18167,"name":"TokenAmount","nameLocations":["812:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"812:11:71"},"referencedDeclaration":15999,"src":"812:11:71","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"},{"constant":false,"id":18172,"mutability":"mutable","name":"evmValidExecutors","nameLocation":"858:17:71","nodeType":"VariableDeclaration","scope":18197,"src":"848:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":18170,"name":"address","nodeType":"ElementaryTypeName","src":"848:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18171,"nodeType":"ArrayTypeName","src":"848:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":18176,"mutability":"mutable","name":"mint","nameLocation":"899:4:71","nodeType":"VariableDeclaration","scope":18197,"src":"885:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":18174,"nodeType":"UserDefinedTypeName","pathNode":{"id":18173,"name":"TokenAmount","nameLocations":["885:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"885:11:71"},"referencedDeclaration":15999,"src":"885:11:71","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":18175,"nodeType":"ArrayTypeName","src":"885:13:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":18180,"mutability":"mutable","name":"unlock","nameLocation":"927:6:71","nodeType":"VariableDeclaration","scope":18197,"src":"913:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":18178,"nodeType":"UserDefinedTypeName","pathNode":{"id":18177,"name":"TokenAmount","nameLocations":["913:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"913:11:71"},"referencedDeclaration":15999,"src":"913:11:71","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":18179,"nodeType":"ArrayTypeName","src":"913:13:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":18184,"mutability":"mutable","name":"meta","nameLocation":"955:4:71","nodeType":"VariableDeclaration","scope":18197,"src":"943:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenInfo_$15983_storage_$dyn_storage_ptr","typeString":"struct TokenInfo[]"},"typeName":{"baseType":{"id":18182,"nodeType":"UserDefinedTypeName","pathNode":{"id":18181,"name":"TokenInfo","nameLocations":["943:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":15983,"src":"943:9:71"},"referencedDeclaration":15983,"src":"943:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_TokenInfo_$15983_storage_ptr","typeString":"struct TokenInfo"}},"id":18183,"nodeType":"ArrayTypeName","src":"943:11:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenInfo_$15983_storage_$dyn_storage_ptr","typeString":"struct TokenInfo[]"}},"visibility":"internal"},{"constant":false,"id":18188,"mutability":"mutable","name":"mintNFT","nameLocation":"981:7:71","nodeType":"VariableDeclaration","scope":18197,"src":"969:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":18186,"nodeType":"UserDefinedTypeName","pathNode":{"id":18185,"name":"NFTAmount","nameLocations":["969:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"969:9:71"},"referencedDeclaration":16007,"src":"969:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":18187,"nodeType":"ArrayTypeName","src":"969:11:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"},{"constant":false,"id":18192,"mutability":"mutable","name":"unlockNFT","nameLocation":"1010:9:71","nodeType":"VariableDeclaration","scope":18197,"src":"998:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":18190,"nodeType":"UserDefinedTypeName","pathNode":{"id":18189,"name":"NFTAmount","nameLocations":["998:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"998:9:71"},"referencedDeclaration":16007,"src":"998:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":18191,"nodeType":"ArrayTypeName","src":"998:11:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"},{"constant":false,"id":18196,"mutability":"mutable","name":"metaNFT","nameLocation":"1039:7:71","nodeType":"VariableDeclaration","scope":18197,"src":"1029:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTInfo_$15993_storage_$dyn_storage_ptr","typeString":"struct NFTInfo[]"},"typeName":{"baseType":{"id":18194,"nodeType":"UserDefinedTypeName","pathNode":{"id":18193,"name":"NFTInfo","nameLocations":["1029:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":15993,"src":"1029:7:71"},"referencedDeclaration":15993,"src":"1029:7:71","typeDescriptions":{"typeIdentifier":"t_struct$_NFTInfo_$15993_storage_ptr","typeString":"struct NFTInfo"}},"id":18195,"nodeType":"ArrayTypeName","src":"1029:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTInfo_$15993_storage_$dyn_storage_ptr","typeString":"struct NFTInfo[]"}},"visibility":"internal"}],"name":"UnionInMessage","nameLocation":"581:14:71","nodeType":"StructDefinition","scope":18419,"src":"574:479:71","visibility":"public"},{"canonicalName":"VersionLib.UnionOutMessage","documentation":{"id":18198,"nodeType":"StructuredDocumentation","src":"1059:85:71","text":" @title UnionOutMessage\n @dev Struct can be changed in future"},"id":18220,"members":[{"constant":false,"id":18200,"mutability":"mutable","name":"shardsKey","nameLocation":"1189:9:71","nodeType":"VariableDeclaration","scope":18220,"src":"1182:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":18199,"name":"uint64","nodeType":"ElementaryTypeName","src":"1182:6:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":18202,"mutability":"mutable","name":"tvmTarget","nameLocation":"1215:9:71","nodeType":"VariableDeclaration","scope":18220,"src":"1208:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":18201,"name":"string","nodeType":"ElementaryTypeName","src":"1208:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18204,"mutability":"mutable","name":"tvmPayload","nameLocation":"1241:10:71","nodeType":"VariableDeclaration","scope":18220,"src":"1234:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":18203,"name":"string","nodeType":"ElementaryTypeName","src":"1234:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18206,"mutability":"mutable","name":"tvmProtocolFee","nameLocation":"1269:14:71","nodeType":"VariableDeclaration","scope":18220,"src":"1261:22:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1261:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18208,"mutability":"mutable","name":"tvmExecutorFee","nameLocation":"1301:14:71","nodeType":"VariableDeclaration","scope":18220,"src":"1293:22:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18207,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18211,"mutability":"mutable","name":"tvmValidExecutors","nameLocation":"1334:17:71","nodeType":"VariableDeclaration","scope":18220,"src":"1325:26:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":18209,"name":"string","nodeType":"ElementaryTypeName","src":"1325:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18210,"nodeType":"ArrayTypeName","src":"1325:8:71","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":18215,"mutability":"mutable","name":"toBridge","nameLocation":"1375:8:71","nodeType":"VariableDeclaration","scope":18220,"src":"1361:22:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":18213,"nodeType":"UserDefinedTypeName","pathNode":{"id":18212,"name":"TokenAmount","nameLocations":["1361:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1361:11:71"},"referencedDeclaration":15999,"src":"1361:11:71","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":18214,"nodeType":"ArrayTypeName","src":"1361:13:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":18219,"mutability":"mutable","name":"toBridgeNFT","nameLocation":"1405:11:71","nodeType":"VariableDeclaration","scope":18220,"src":"1393:23:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":18217,"nodeType":"UserDefinedTypeName","pathNode":{"id":18216,"name":"NFTAmount","nameLocations":["1393:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"1393:9:71"},"referencedDeclaration":16007,"src":"1393:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":18218,"nodeType":"ArrayTypeName","src":"1393:11:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"}],"name":"UnionOutMessage","nameLocation":"1156:15:71","nodeType":"StructDefinition","scope":18419,"src":"1149:274:71","visibility":"public"},{"body":{"id":18285,"nodeType":"Block","src":"1555:1026:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18230,"name":"messageVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18222,"src":"1569:14:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":18231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1587:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1569:19:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18283,"nodeType":"Block","src":"2504:71:71","statements":[{"errorCall":{"arguments":[{"id":18280,"name":"messageVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18222,"src":"2549:14:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18279,"name":"InvalidInMessageVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18135,"src":"2525:23:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":18281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2525:39:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18282,"nodeType":"RevertStatement","src":"2518:46:71"}]},"id":18284,"nodeType":"IfStatement","src":"1565:1010:71","trueBody":{"id":18278,"nodeType":"Block","src":"1590:900:71","statements":[{"assignments":[18235],"declarations":[{"constant":false,"id":18235,"mutability":"mutable","name":"messageV1","nameLocation":"1623:9:71","nodeType":"VariableDeclaration","scope":18278,"src":"1604:28:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1"},"typeName":{"id":18234,"nodeType":"UserDefinedTypeName","pathNode":{"id":18233,"name":"InMessageV1","nameLocations":["1604:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":16055,"src":"1604:11:71"},"referencedDeclaration":16055,"src":"1604:11:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_storage_ptr","typeString":"struct InMessageV1"}},"visibility":"internal"}],"id":18242,"initialValue":{"arguments":[{"id":18238,"name":"encodedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18224,"src":"1646:14:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":18239,"name":"InMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16055,"src":"1663:11:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InMessageV1_$16055_storage_ptr_$","typeString":"type(struct InMessageV1 storage pointer)"}}],"id":18240,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1662:13:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InMessageV1_$16055_storage_ptr_$","typeString":"type(struct InMessageV1 storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InMessageV1_$16055_storage_ptr_$","typeString":"type(struct InMessageV1 storage pointer)"}],"expression":{"id":18236,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1635:3:71","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1639:6:71","memberName":"decode","nodeType":"MemberAccess","src":"1635:10:71","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1635:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"1604:72:71"},{"expression":{"arguments":[{"expression":{"id":18244,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"1741:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1751:9:71","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":16010,"src":"1741:19:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":18246,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"1788:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1798:8:71","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":16012,"src":"1788:18:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":18248,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"1837:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1847:11:71","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":16014,"src":"1837:21:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18250,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"1887:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1897:9:71","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16016,"src":"1887:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18252,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"1932:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1942:6:71","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":16018,"src":"1932:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":18254,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"1978:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1988:10:71","memberName":"methodName","nodeType":"MemberAccess","referencedDeclaration":16020,"src":"1978:20:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":18256,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2027:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2037:9:71","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":16022,"src":"2027:19:71","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":18258,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2072:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2082:6:71","memberName":"caller","nodeType":"MemberAccess","referencedDeclaration":16024,"src":"2072:16:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":18260,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2122:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2132:14:71","memberName":"evmExecutorFee","nodeType":"MemberAccess","referencedDeclaration":16027,"src":"2122:24:71","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},{"expression":{"id":18262,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2183:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2193:17:71","memberName":"evmValidExecutors","nodeType":"MemberAccess","referencedDeclaration":16030,"src":"2183:27:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":18264,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2234:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2244:4:71","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":16034,"src":"2234:14:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"expression":{"id":18266,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2274:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2284:6:71","memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":16038,"src":"2274:16:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"expression":{"id":18268,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2314:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2324:4:71","memberName":"meta","nodeType":"MemberAccess","referencedDeclaration":16042,"src":"2314:14:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenInfo_$15983_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenInfo memory[] memory"}},{"expression":{"id":18270,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2355:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2365:7:71","memberName":"mintNFT","nodeType":"MemberAccess","referencedDeclaration":16046,"src":"2355:17:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},{"expression":{"id":18272,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2401:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2411:9:71","memberName":"unlockNFT","nodeType":"MemberAccess","referencedDeclaration":16050,"src":"2401:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},{"expression":{"id":18274,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"2447:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_memory_ptr","typeString":"struct InMessageV1 memory"}},"id":18275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2457:7:71","memberName":"metaNFT","nodeType":"MemberAccess","referencedDeclaration":16054,"src":"2447:17:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTInfo_$15993_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTInfo memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenInfo_$15983_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenInfo memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTInfo_$15993_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTInfo memory[] memory"}],"id":18243,"name":"UnionInMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18197,"src":"1697:14:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_UnionInMessage_$18197_storage_ptr_$","typeString":"type(struct VersionLib.UnionInMessage storage pointer)"}},"id":18276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1730:9:71","1778:8:71","1824:11:71","1876:9:71","1924:6:71","1966:10:71","2016:9:71","2064:6:71","2106:14:71","2164:17:71","2228:4:71","2266:6:71","2308:4:71","2346:7:71","2390:9:71","2438:7:71"],"names":["shardsKey","gasLimit","operationId","timestamp","target","methodName","arguments","caller","evmExecutorFee","evmValidExecutors","mint","unlock","meta","mintNFT","unlockNFT","metaNFT"],"nodeType":"FunctionCall","src":"1697:782:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage memory"}},"functionReturnParameters":18229,"id":18277,"nodeType":"Return","src":"1690:789:71"}]}}]},"id":18286,"implemented":true,"kind":"function","modifiers":[],"name":"decodeInMessage","nameLocation":"1438:15:71","nodeType":"FunctionDefinition","parameters":{"id":18225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18222,"mutability":"mutable","name":"messageVersion","nameLocation":"1462:14:71","nodeType":"VariableDeclaration","scope":18286,"src":"1454:22:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18221,"name":"uint256","nodeType":"ElementaryTypeName","src":"1454:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18224,"mutability":"mutable","name":"encodedMessage","nameLocation":"1493:14:71","nodeType":"VariableDeclaration","scope":18286,"src":"1478:29:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18223,"name":"bytes","nodeType":"ElementaryTypeName","src":"1478:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1453:55:71"},"returnParameters":{"id":18229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18286,"src":"1532:21:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_memory_ptr","typeString":"struct VersionLib.UnionInMessage"},"typeName":{"id":18227,"nodeType":"UserDefinedTypeName","pathNode":{"id":18226,"name":"UnionInMessage","nameLocations":["1532:14:71"],"nodeType":"IdentifierPath","referencedDeclaration":18197,"src":"1532:14:71"},"referencedDeclaration":18197,"src":"1532:14:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_storage_ptr","typeString":"struct VersionLib.UnionInMessage"}},"visibility":"internal"}],"src":"1531:23:71"},"scope":18419,"src":"1429:1152:71","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18335,"nodeType":"Block","src":"2715:702:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18296,"name":"messageVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18288,"src":"2729:14:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":18297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2729:19:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18333,"nodeType":"Block","src":"3339:72:71","statements":[{"errorCall":{"arguments":[{"id":18330,"name":"messageVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18288,"src":"3385:14:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18329,"name":"InvalidOutMessageVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18139,"src":"3360:24:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":18331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3360:40:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18332,"nodeType":"RevertStatement","src":"3353:47:71"}]},"id":18334,"nodeType":"IfStatement","src":"2725:686:71","trueBody":{"id":18328,"nodeType":"Block","src":"2750:575:71","statements":[{"assignments":[18301],"declarations":[{"constant":false,"id":18301,"mutability":"mutable","name":"messageV1","nameLocation":"2784:9:71","nodeType":"VariableDeclaration","scope":18328,"src":"2764:29:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1"},"typeName":{"id":18300,"nodeType":"UserDefinedTypeName","pathNode":{"id":18299,"name":"OutMessageV1","nameLocations":["2764:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":16084,"src":"2764:12:71"},"referencedDeclaration":16084,"src":"2764:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_storage_ptr","typeString":"struct OutMessageV1"}},"visibility":"internal"}],"id":18308,"initialValue":{"arguments":[{"id":18304,"name":"encodedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18290,"src":"2807:14:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":18305,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"2824:12:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutMessageV1_$16084_storage_ptr_$","typeString":"type(struct OutMessageV1 storage pointer)"}}],"id":18306,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2823:14:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutMessageV1_$16084_storage_ptr_$","typeString":"type(struct OutMessageV1 storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_OutMessageV1_$16084_storage_ptr_$","typeString":"type(struct OutMessageV1 storage pointer)"}],"expression":{"id":18302,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2796:3:71","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2800:6:71","memberName":"decode","nodeType":"MemberAccess","src":"2796:10:71","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2796:42:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"2764:74:71"},{"expression":{"arguments":[{"expression":{"id":18310,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"2904:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"id":18311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2914:9:71","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":16064,"src":"2904:19:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":18312,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"2952:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"id":18313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2962:9:71","memberName":"tvmTarget","nodeType":"MemberAccess","referencedDeclaration":16066,"src":"2952:19:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":18314,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"3001:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"id":18315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3011:10:71","memberName":"tvmPayload","nodeType":"MemberAccess","referencedDeclaration":16068,"src":"3001:20:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":18316,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"3055:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"id":18317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3065:14:71","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":16070,"src":"3055:24:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18318,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"3113:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"id":18319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3123:14:71","memberName":"tvmExecutorFee","nodeType":"MemberAccess","referencedDeclaration":16072,"src":"3113:24:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18320,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"3174:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"id":18321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3184:17:71","memberName":"tvmValidExecutors","nodeType":"MemberAccess","referencedDeclaration":16075,"src":"3174:27:71","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"expression":{"id":18322,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"3229:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"id":18323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3239:8:71","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":16079,"src":"3229:18:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"expression":{"id":18324,"name":"messageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"3278:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"id":18325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3288:11:71","memberName":"toBridgeNFT","nodeType":"MemberAccess","referencedDeclaration":16083,"src":"3278:21:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}],"id":18309,"name":"UnionOutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18220,"src":"2859:15:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_UnionOutMessage_$18220_storage_ptr_$","typeString":"type(struct VersionLib.UnionOutMessage storage pointer)"}},"id":18326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2893:9:71","2941:9:71","2989:10:71","3039:14:71","3097:14:71","3155:17:71","3219:8:71","3265:11:71"],"names":["shardsKey","tvmTarget","tvmPayload","tvmProtocolFee","tvmExecutorFee","tvmValidExecutors","toBridge","toBridgeNFT"],"nodeType":"FunctionCall","src":"2859:455:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage memory"}},"functionReturnParameters":18295,"id":18327,"nodeType":"Return","src":"2852:462:71"}]}}]},"id":18336,"implemented":true,"kind":"function","modifiers":[],"name":"decodeOutMessage","nameLocation":"2596:16:71","nodeType":"FunctionDefinition","parameters":{"id":18291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18288,"mutability":"mutable","name":"messageVersion","nameLocation":"2621:14:71","nodeType":"VariableDeclaration","scope":18336,"src":"2613:22:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18287,"name":"uint256","nodeType":"ElementaryTypeName","src":"2613:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18290,"mutability":"mutable","name":"encodedMessage","nameLocation":"2652:14:71","nodeType":"VariableDeclaration","scope":18336,"src":"2637:29:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18289,"name":"bytes","nodeType":"ElementaryTypeName","src":"2637:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2612:55:71"},"returnParameters":{"id":18295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18336,"src":"2691:22:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_memory_ptr","typeString":"struct VersionLib.UnionOutMessage"},"typeName":{"id":18293,"nodeType":"UserDefinedTypeName","pathNode":{"id":18292,"name":"UnionOutMessage","nameLocations":["2691:15:71"],"nodeType":"IdentifierPath","referencedDeclaration":18220,"src":"2691:15:71"},"referencedDeclaration":18220,"src":"2691:15:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionOutMessage_$18220_storage_ptr","typeString":"struct VersionLib.UnionOutMessage"}},"visibility":"internal"}],"src":"2690:24:71"},"scope":18419,"src":"2587:830:71","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18417,"nodeType":"Block","src":"3574:716:71","statements":[{"assignments":[18347,18349],"declarations":[{"constant":false,"id":18347,"mutability":"mutable","name":"status","nameLocation":"3590:6:71","nodeType":"VariableDeclaration","scope":18417,"src":"3585:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18346,"name":"bool","nodeType":"ElementaryTypeName","src":"3585:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18349,"mutability":"mutable","name":"response","nameLocation":"3611:8:71","nodeType":"VariableDeclaration","scope":18417,"src":"3598:21:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18348,"name":"bytes","nodeType":"ElementaryTypeName","src":"3598:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":18363,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":18358,"name":"TacProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18430,"src":"3711:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TacProxy_$18430_$","typeString":"type(contract TacProxy)"}},"id":18359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3720:10:71","memberName":"getVersion","nodeType":"MemberAccess","referencedDeclaration":18429,"src":"3711:19:71","typeDescriptions":{"typeIdentifier":"t_function_declaration_pure$__$returns$_t_uint256_$","typeString":"function TacProxy.getVersion() pure returns (uint256)"}},"id":18360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3731:8:71","memberName":"selector","nodeType":"MemberAccess","src":"3711:28:71","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":18356,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3671:3:71","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3675:18:71","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3671:22:71","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":18361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3671:82:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":18352,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18339,"src":"3631:7:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":18353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3639:6:71","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"3631:14:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3623:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18350,"name":"address","nodeType":"ElementaryTypeName","src":"3623:7:71","typeDescriptions":{}}},"id":18354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:23:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3647:10:71","memberName":"staticcall","nodeType":"MemberAccess","src":"3623:34:71","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":18362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:140:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3584:179:71"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3777:7:71","subExpression":{"id":18364,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18347,"src":"3778:6:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18366,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"3788:8:71","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":18367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3797:6:71","memberName":"length","nodeType":"MemberAccess","src":"3788:15:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3807:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3788:20:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3777:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18377,"nodeType":"IfStatement","src":"3773:104:71","trueBody":{"id":18376,"nodeType":"Block","src":"3810:67:71","statements":[{"errorCall":{"arguments":[{"expression":{"id":18372,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18339,"src":"3851:7:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":18373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3859:6:71","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"3851:14:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18371,"name":"TargetIsNotTacProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18143,"src":"3831:19:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":18374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3831:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18375,"nodeType":"RevertStatement","src":"3824:42:71"}]}},{"assignments":[18379],"declarations":[{"constant":false,"id":18379,"mutability":"mutable","name":"version","nameLocation":"3891:7:71","nodeType":"VariableDeclaration","scope":18417,"src":"3886:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18378,"name":"uint","nodeType":"ElementaryTypeName","src":"3886:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18387,"initialValue":{"arguments":[{"id":18382,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"3912:8:71","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":18384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3923:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18383,"name":"uint","nodeType":"ElementaryTypeName","src":"3923:4:71","typeDescriptions":{}}}],"id":18385,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3922:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":18380,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3901:3:71","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3905:6:71","memberName":"decode","nodeType":"MemberAccess","src":"3901:10:71","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3901:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3886:43:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18388,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18379,"src":"3943:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":18389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3954:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3943:12:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18415,"nodeType":"Block","src":"4208:76:71","statements":[{"errorCall":{"arguments":[{"expression":{"id":18410,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18339,"src":"4249:7:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":18411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4257:6:71","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18160,"src":"4249:14:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18412,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18379,"src":"4265:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18409,"name":"InvalidProxyVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18149,"src":"4229:19:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":18413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4229:44:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18414,"nodeType":"RevertStatement","src":"4222:51:71"}]},"id":18416,"nodeType":"IfStatement","src":"3939:345:71","trueBody":{"id":18408,"nodeType":"Block","src":"3957:237:71","statements":[{"expression":{"id":18406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18391,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18344,"src":"3971:6:71","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":18395,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18339,"src":"4020:7:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":18396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4028:9:71","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":18152,"src":"4020:17:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":18397,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18339,"src":"4055:7:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":18398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4063:9:71","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18158,"src":"4055:17:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18399,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18339,"src":"4090:7:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":18400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4098:11:71","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"4090:19:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18401,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18339,"src":"4127:7:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage calldata"}},"id":18402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4135:6:71","memberName":"caller","nodeType":"MemberAccess","referencedDeclaration":18166,"src":"4127:14:71","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":18403,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18341,"src":"4159:9:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":18394,"name":"TacHeaderV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"3991:11:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TacHeaderV1_$16110_storage_ptr_$","typeString":"type(struct TacHeaderV1 storage pointer)"}},"id":18404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3991:191:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}],"expression":{"id":18392,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3980:3:71","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3984:6:71","memberName":"encode","nodeType":"MemberAccess","src":"3980:10:71","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3980:203:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3971:212:71","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":18407,"nodeType":"ExpressionStatement","src":"3971:212:71"}]}}]},"id":18418,"implemented":true,"kind":"function","modifiers":[],"name":"prepareTacHeader","nameLocation":"3432:16:71","nodeType":"FunctionDefinition","parameters":{"id":18342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18339,"mutability":"mutable","name":"message","nameLocation":"3482:7:71","nodeType":"VariableDeclaration","scope":18418,"src":"3458:31:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_calldata_ptr","typeString":"struct VersionLib.UnionInMessage"},"typeName":{"id":18338,"nodeType":"UserDefinedTypeName","pathNode":{"id":18337,"name":"UnionInMessage","nameLocations":["3458:14:71"],"nodeType":"IdentifierPath","referencedDeclaration":18197,"src":"3458:14:71"},"referencedDeclaration":18197,"src":"3458:14:71","typeDescriptions":{"typeIdentifier":"t_struct$_UnionInMessage_$18197_storage_ptr","typeString":"struct VersionLib.UnionInMessage"}},"visibility":"internal"},{"constant":false,"id":18341,"mutability":"mutable","name":"extraData","nameLocation":"3514:9:71","nodeType":"VariableDeclaration","scope":18418,"src":"3499:24:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18340,"name":"bytes","nodeType":"ElementaryTypeName","src":"3499:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3448:81:71"},"returnParameters":{"id":18345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18344,"mutability":"mutable","name":"header","nameLocation":"3566:6:71","nodeType":"VariableDeclaration","scope":18418,"src":"3553:19:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18343,"name":"bytes","nodeType":"ElementaryTypeName","src":"3553:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3552:21:71"},"scope":18419,"src":"3423:867:71","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":18420,"src":"245:4047:71","usedErrors":[18135,18139,18143,18149],"usedEvents":[]}],"src":"32:4260:71"},"id":71},"contracts/proxies/TacProxy.sol":{"ast":{"absolutePath":"contracts/proxies/TacProxy.sol","exportedSymbols":{"TacProxy":[18430]},"id":18431,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":18421,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:72"},{"abstract":true,"baseContracts":[],"canonicalName":"TacProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":18430,"linearizedBaseContracts":[18430],"name":"TacProxy","nameLocation":"76:8:72","nodeType":"ContractDefinition","nodes":[{"errorSelector":"67ab7efd","id":18423,"name":"OnlyCrossChainLayer","nameLocation":"98:19:72","nodeType":"ErrorDefinition","parameters":{"id":18422,"nodeType":"ParameterList","parameters":[],"src":"117:2:72"},"src":"92:28:72"},{"documentation":{"id":18424,"nodeType":"StructuredDocumentation","src":"126:88:72","text":" @dev Get Tac Proxy contract version.\n @return Contract version."},"functionSelector":"0d8e6e2c","id":18429,"implemented":false,"kind":"function","modifiers":[],"name":"getVersion","nameLocation":"228:10:72","nodeType":"FunctionDefinition","parameters":{"id":18425,"nodeType":"ParameterList","parameters":[],"src":"238:2:72"},"returnParameters":{"id":18428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18427,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18429,"src":"270:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18426,"name":"uint256","nodeType":"ElementaryTypeName","src":"270:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"269:9:72"},"scope":18430,"src":"219:60:72","stateMutability":"pure","virtual":true,"visibility":"public"}],"scope":18431,"src":"58:224:72","usedErrors":[18423],"usedEvents":[]}],"src":"32:250:72"},"id":72},"contracts/proxies/TacProxyV1.sol":{"ast":{"absolutePath":"contracts/proxies/TacProxyV1.sol","exportedSymbols":{"ICrossChainLayer":[17421],"OutMessageV1":[16084],"TacHeaderV1":[16110],"TacProxy":[18430],"TacProxyV1":[18549]},"id":18550,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":18432,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:73"},{"absolutePath":"contracts/proxies/TacProxy.sol","file":"./TacProxy.sol","id":18434,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18550,"sourceUnit":18431,"src":"58:42:73","symbolAliases":[{"foreign":{"id":18433,"name":"TacProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18430,"src":"67:8:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":18437,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18550,"sourceUnit":16218,"src":"101:64:73","symbolAliases":[{"foreign":{"id":18435,"name":"TacHeaderV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"110:11:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18436,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"123:12:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICrossChainLayer.sol","file":"../interfaces/ICrossChainLayer.sol","id":18439,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18550,"sourceUnit":17422,"src":"166:70:73","symbolAliases":[{"foreign":{"id":18438,"name":"ICrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17421,"src":"175:16:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":18440,"name":"TacProxy","nameLocations":["271:8:73"],"nodeType":"IdentifierPath","referencedDeclaration":18430,"src":"271:8:73"},"id":18441,"nodeType":"InheritanceSpecifier","src":"271:8:73"}],"canonicalName":"TacProxyV1","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":18549,"linearizedBaseContracts":[18549,18430],"name":"TacProxyV1","nameLocation":"257:10:73","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":18444,"mutability":"constant","name":"TAC_HEADER_VERSION","nameLocation":"312:18:73","nodeType":"VariableDeclaration","scope":18549,"src":"287:47:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18442,"name":"uint256","nodeType":"ElementaryTypeName","src":"287:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":18443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"333:1:73","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":18447,"mutability":"constant","name":"TAC_OUT_MESSAGE_VERSION_1","nameLocation":"365:25:73","nodeType":"VariableDeclaration","scope":18549,"src":"340:54:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18445,"name":"uint256","nodeType":"ElementaryTypeName","src":"340:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":18446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"393:1:73","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":false,"id":18450,"mutability":"immutable","name":"_crossChainLayer","nameLocation":"436:16:73","nodeType":"VariableDeclaration","scope":18549,"src":"401:51:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"},"typeName":{"id":18449,"nodeType":"UserDefinedTypeName","pathNode":{"id":18448,"name":"ICrossChainLayer","nameLocations":["401:16:73"],"nodeType":"IdentifierPath","referencedDeclaration":17421,"src":"401:16:73"},"referencedDeclaration":17421,"src":"401:16:73","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"}},"visibility":"private"},{"body":{"id":18461,"nodeType":"Block","src":"496:69:73","statements":[{"expression":{"id":18459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18455,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18450,"src":"506:16:73","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18457,"name":"crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18452,"src":"542:15:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18456,"name":"ICrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17421,"src":"525:16:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossChainLayer_$17421_$","typeString":"type(contract ICrossChainLayer)"}},"id":18458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"525:33:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"}},"src":"506:52:73","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"}},"id":18460,"nodeType":"ExpressionStatement","src":"506:52:73"}]},"id":18462,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18452,"mutability":"mutable","name":"crossChainLayer","nameLocation":"479:15:73","nodeType":"VariableDeclaration","scope":18462,"src":"471:23:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18451,"name":"address","nodeType":"ElementaryTypeName","src":"471:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"470:25:73"},"returnParameters":{"id":18454,"nodeType":"ParameterList","parameters":[],"src":"496:0:73"},"scope":18549,"src":"459:106:73","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18475,"nodeType":"Block","src":"603:128:73","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18464,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"617:3:73","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"621:6:73","memberName":"sender","nodeType":"MemberAccess","src":"617:10:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":18466,"name":"_getCrossChainLayerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18488,"src":"631:26:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":18467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"631:28:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"617:42:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18473,"nodeType":"IfStatement","src":"613:101:73","trueBody":{"id":18472,"nodeType":"Block","src":"661:53:73","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18469,"name":"OnlyCrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18423,"src":"682:19:73","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":18470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"682:21:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18471,"nodeType":"RevertStatement","src":"675:28:73"}]}},{"id":18474,"nodeType":"PlaceholderStatement","src":"723:1:73"}]},"id":18476,"name":"_onlyCrossChainLayer","nameLocation":"580:20:73","nodeType":"ModifierDefinition","parameters":{"id":18463,"nodeType":"ParameterList","parameters":[],"src":"600:2:73"},"src":"571:160:73","virtual":false,"visibility":"internal"},{"body":{"id":18487,"nodeType":"Block","src":"922:49:73","statements":[{"expression":{"arguments":[{"id":18484,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18450,"src":"947:16:73","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"}],"id":18483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"939:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18482,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:73","typeDescriptions":{}}},"id":18485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"939:25:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18481,"id":18486,"nodeType":"Return","src":"932:32:73"}]},"documentation":{"id":18477,"nodeType":"StructuredDocumentation","src":"737:110:73","text":" @dev Get CrossChainLayer contract address.\n @return CrossChainLayer contract address."},"id":18488,"implemented":true,"kind":"function","modifiers":[],"name":"_getCrossChainLayerAddress","nameLocation":"861:26:73","nodeType":"FunctionDefinition","parameters":{"id":18478,"nodeType":"ParameterList","parameters":[],"src":"887:2:73"},"returnParameters":{"id":18481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18488,"src":"913:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18479,"name":"address","nodeType":"ElementaryTypeName","src":"913:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"912:9:73"},"scope":18549,"src":"852:119:73","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18498,"nodeType":"Block","src":"1133:57:73","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18494,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18450,"src":"1150:16:73","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"}},"id":18495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1167:14:73","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":17420,"src":"1150:31:73","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":18496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1150:33:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18493,"id":18497,"nodeType":"Return","src":"1143:40:73"}]},"documentation":{"id":18489,"nodeType":"StructuredDocumentation","src":"977:93:73","text":" @dev Gets the current min protocol fee.\n @return uint256 Fee amount."},"id":18499,"implemented":true,"kind":"function","modifiers":[],"name":"getProtocolFee","nameLocation":"1084:14:73","nodeType":"FunctionDefinition","parameters":{"id":18490,"nodeType":"ParameterList","parameters":[],"src":"1098:2:73"},"returnParameters":{"id":18493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18492,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18499,"src":"1124:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18491,"name":"uint256","nodeType":"ElementaryTypeName","src":"1124:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1123:9:73"},"scope":18549,"src":"1075:115:73","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18515,"nodeType":"Block","src":"1429:60:73","statements":[{"expression":{"arguments":[{"id":18510,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18502,"src":"1457:9:73","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":18511,"name":"TacHeaderV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"1469:11:73","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TacHeaderV1_$16110_storage_ptr_$","typeString":"type(struct TacHeaderV1 storage pointer)"}}],"id":18512,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1468:13:73","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TacHeaderV1_$16110_storage_ptr_$","typeString":"type(struct TacHeaderV1 storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_TacHeaderV1_$16110_storage_ptr_$","typeString":"type(struct TacHeaderV1 storage pointer)"}],"expression":{"id":18508,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1446:3:73","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1450:6:73","memberName":"decode","nodeType":"MemberAccess","src":"1446:10:73","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1446:36:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"functionReturnParameters":18507,"id":18514,"nodeType":"Return","src":"1439:43:73"}]},"documentation":{"id":18500,"nodeType":"StructuredDocumentation","src":"1196:133:73","text":" @dev Decode TacHeaderV1 data.\n @param tacHeader encoded TacHeaderV1 data.\n @return TacHeaderV1 struct."},"id":18516,"implemented":true,"kind":"function","modifiers":[],"name":"_decodeTacHeader","nameLocation":"1343:16:73","nodeType":"FunctionDefinition","parameters":{"id":18503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18502,"mutability":"mutable","name":"tacHeader","nameLocation":"1375:9:73","nodeType":"VariableDeclaration","scope":18516,"src":"1360:24:73","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18501,"name":"bytes","nodeType":"ElementaryTypeName","src":"1360:5:73","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1359:26:73"},"returnParameters":{"id":18507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18516,"src":"1409:18:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":18505,"nodeType":"UserDefinedTypeName","pathNode":{"id":18504,"name":"TacHeaderV1","nameLocations":["1409:11:73"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"1409:11:73"},"referencedDeclaration":16110,"src":"1409:11:73","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"src":"1408:20:73"},"scope":18549,"src":"1334:155:73","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18537,"nodeType":"Block","src":"1720:114:73","statements":[{"expression":{"arguments":[{"id":18530,"name":"TAC_OUT_MESSAGE_VERSION_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18447,"src":"1777:25:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":18533,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18520,"src":"1815:10:73","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}],"expression":{"id":18531,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1804:3:73","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1808:6:73","memberName":"encode","nodeType":"MemberAccess","src":"1804:10:73","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1804:22:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18525,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18450,"src":"1730:16:73","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"}},"id":18527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1747:11:73","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":17406,"src":"1730:28:73","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) payable external"}},"id":18529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":18528,"name":"tacAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18522,"src":"1766:9:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1730:46:73","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (uint256,bytes memory) payable external"}},"id":18535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1730:97:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18536,"nodeType":"ExpressionStatement","src":"1730:97:73"}]},"documentation":{"id":18517,"nodeType":"StructuredDocumentation","src":"1495:136:73","text":" @dev Send v1 message to TON\n @param outMessage v1 message to TON\n @param tacAmount Amount of TAC to send."},"id":18538,"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessageV1","nameLocation":"1645:14:73","nodeType":"FunctionDefinition","parameters":{"id":18523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18520,"mutability":"mutable","name":"outMessage","nameLocation":"1680:10:73","nodeType":"VariableDeclaration","scope":18538,"src":"1660:30:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1"},"typeName":{"id":18519,"nodeType":"UserDefinedTypeName","pathNode":{"id":18518,"name":"OutMessageV1","nameLocations":["1660:12:73"],"nodeType":"IdentifierPath","referencedDeclaration":16084,"src":"1660:12:73"},"referencedDeclaration":16084,"src":"1660:12:73","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_storage_ptr","typeString":"struct OutMessageV1"}},"visibility":"internal"},{"constant":false,"id":18522,"mutability":"mutable","name":"tacAmount","nameLocation":"1700:9:73","nodeType":"VariableDeclaration","scope":18538,"src":"1692:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18521,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1659:51:73"},"returnParameters":{"id":18524,"nodeType":"ParameterList","parameters":[],"src":"1720:0:73"},"scope":18549,"src":"1636:198:73","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[18429],"body":{"id":18547,"nodeType":"Block","src":"1994:42:73","statements":[{"expression":{"id":18545,"name":"TAC_HEADER_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18444,"src":"2011:18:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18544,"id":18546,"nodeType":"Return","src":"2004:25:73"}]},"documentation":{"id":18539,"nodeType":"StructuredDocumentation","src":"1840:88:73","text":" @dev Get Tac Proxy contract version.\n @return Contract version."},"functionSelector":"0d8e6e2c","id":18548,"implemented":true,"kind":"function","modifiers":[],"name":"getVersion","nameLocation":"1942:10:73","nodeType":"FunctionDefinition","overrides":{"id":18541,"nodeType":"OverrideSpecifier","overrides":[],"src":"1967:8:73"},"parameters":{"id":18540,"nodeType":"ParameterList","parameters":[],"src":"1952:2:73"},"returnParameters":{"id":18544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18548,"src":"1985:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18542,"name":"uint256","nodeType":"ElementaryTypeName","src":"1985:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1984:9:73"},"scope":18549,"src":"1933:103:73","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":18550,"src":"239:1977:73","usedErrors":[18423],"usedEvents":[]}],"src":"32:2184:73"},"id":73},"contracts/proxies/TacProxyV1Upgradeable.sol":{"ast":{"absolutePath":"contracts/proxies/TacProxyV1Upgradeable.sol","exportedSymbols":{"ICrossChainLayer":[17421],"Initializable":[948],"OutMessageV1":[16084],"TacHeaderV1":[16110],"TacProxy":[18430],"TacProxyV1Upgradeable":[18695]},"id":18696,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":18551,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:74"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":18553,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18696,"sourceUnit":949,"src":"58:98:74","symbolAliases":[{"foreign":{"id":18552,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"67:13:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/proxies/TacProxy.sol","file":"./TacProxy.sol","id":18555,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18696,"sourceUnit":18431,"src":"158:42:74","symbolAliases":[{"foreign":{"id":18554,"name":"TacProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18430,"src":"167:8:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":18558,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18696,"sourceUnit":16218,"src":"201:64:74","symbolAliases":[{"foreign":{"id":18556,"name":"TacHeaderV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"210:11:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18557,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"223:12:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICrossChainLayer.sol","file":"../interfaces/ICrossChainLayer.sol","id":18560,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18696,"sourceUnit":17422,"src":"266:70:74","symbolAliases":[{"foreign":{"id":18559,"name":"ICrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17421,"src":"275:16:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":18561,"name":"Initializable","nameLocations":["382:13:74"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"382:13:74"},"id":18562,"nodeType":"InheritanceSpecifier","src":"382:13:74"},{"baseName":{"id":18563,"name":"TacProxy","nameLocations":["397:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":18430,"src":"397:8:74"},"id":18564,"nodeType":"InheritanceSpecifier","src":"397:8:74"}],"canonicalName":"TacProxyV1Upgradeable","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":18695,"linearizedBaseContracts":[18695,18430,948],"name":"TacProxyV1Upgradeable","nameLocation":"357:21:74","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":18567,"mutability":"constant","name":"TacProxyV1UpgradeableStorageLocation","nameLocation":"554:36:74","nodeType":"VariableDeclaration","scope":18695,"src":"529:130:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"529:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307839623737376437663039636136383433313932623134366565343132343936353037353666623331336362633432386161326464333764363130663164313030","id":18566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"593:66:74","typeDescriptions":{"typeIdentifier":"t_rational_70319612474352569629591619733635523988029354821795493357925073304560524710144_by_1","typeString":"int_const 7031...(69 digits omitted)...0144"},"value":"0x9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d100"},"visibility":"private"},{"constant":true,"id":18570,"mutability":"constant","name":"TAC_HEADER_VERSION","nameLocation":"691:18:74","nodeType":"VariableDeclaration","scope":18695,"src":"666:47:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18568,"name":"uint256","nodeType":"ElementaryTypeName","src":"666:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":18569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"712:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":18573,"mutability":"constant","name":"TAC_OUT_MESSAGE_VERSION_1","nameLocation":"744:25:74","nodeType":"VariableDeclaration","scope":18695,"src":"719:54:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18571,"name":"uint256","nodeType":"ElementaryTypeName","src":"719:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":18572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"772:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"canonicalName":"TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage","documentation":{"id":18574,"nodeType":"StructuredDocumentation","src":"780:287:74","text":" @dev Storage of the TacProxy contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:tac.storage.TacProxyV1Upgradeable"},"id":18577,"members":[{"constant":false,"id":18576,"mutability":"mutable","name":"_crossChainLayer","nameLocation":"1126:16:74","nodeType":"VariableDeclaration","scope":18577,"src":"1118:24:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18575,"name":"address","nodeType":"ElementaryTypeName","src":"1118:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"TacProxyV1UpgradeableStorage","nameLocation":"1079:28:74","nodeType":"StructDefinition","scope":18695,"src":"1072:77:74","visibility":"public"},{"body":{"id":18589,"nodeType":"Block","src":"1368:72:74","statements":[{"expression":{"arguments":[{"id":18586,"name":"crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18580,"src":"1417:15:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18585,"name":"__TacProxyV1Upgradeable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18610,"src":"1378:38:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1378:55:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18588,"nodeType":"ExpressionStatement","src":"1378:55:74"}]},"documentation":{"id":18578,"nodeType":"StructuredDocumentation","src":"1155:119:74","text":" @dev Initialize the contract.\n @param crossChainLayer Address of the CrossChainLayer contract."},"id":18590,"implemented":true,"kind":"function","modifiers":[{"id":18583,"kind":"modifierInvocation","modifierName":{"id":18582,"name":"onlyInitializing","nameLocations":["1351:16:74"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"1351:16:74"},"nodeType":"ModifierInvocation","src":"1351:16:74"}],"name":"__TacProxyV1Upgradeable_init","nameLocation":"1288:28:74","nodeType":"FunctionDefinition","parameters":{"id":18581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18580,"mutability":"mutable","name":"crossChainLayer","nameLocation":"1325:15:74","nodeType":"VariableDeclaration","scope":18590,"src":"1317:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18579,"name":"address","nodeType":"ElementaryTypeName","src":"1317:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1316:25:74"},"returnParameters":{"id":18584,"nodeType":"ParameterList","parameters":[],"src":"1368:0:74"},"scope":18695,"src":"1279:161:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18609,"nodeType":"Block","src":"1545:138:74","statements":[{"assignments":[18599],"declarations":[{"constant":false,"id":18599,"mutability":"mutable","name":"$","nameLocation":"1592:1:74","nodeType":"VariableDeclaration","scope":18609,"src":"1555:38:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_TacProxyV1UpgradeableStorage_$18577_storage_ptr","typeString":"struct TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage"},"typeName":{"id":18598,"nodeType":"UserDefinedTypeName","pathNode":{"id":18597,"name":"TacProxyV1UpgradeableStorage","nameLocations":["1555:28:74"],"nodeType":"IdentifierPath","referencedDeclaration":18577,"src":"1555:28:74"},"referencedDeclaration":18577,"src":"1555:28:74","typeDescriptions":{"typeIdentifier":"t_struct$_TacProxyV1UpgradeableStorage_$18577_storage_ptr","typeString":"struct TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage"}},"visibility":"internal"}],"id":18602,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":18600,"name":"_getTacProxyV1UpgradeableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18633,"src":"1596:32:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_TacProxyV1UpgradeableStorage_$18577_storage_ptr_$","typeString":"function () pure returns (struct TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage storage pointer)"}},"id":18601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:34:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacProxyV1UpgradeableStorage_$18577_storage_ptr","typeString":"struct TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1555:75:74"},{"expression":{"id":18607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18603,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18599,"src":"1640:1:74","typeDescriptions":{"typeIdentifier":"t_struct$_TacProxyV1UpgradeableStorage_$18577_storage_ptr","typeString":"struct TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage storage pointer"}},"id":18605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1642:16:74","memberName":"_crossChainLayer","nodeType":"MemberAccess","referencedDeclaration":18576,"src":"1640:18:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18606,"name":"crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18592,"src":"1661:15:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1640:36:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18608,"nodeType":"ExpressionStatement","src":"1640:36:74"}]},"id":18610,"implemented":true,"kind":"function","modifiers":[{"id":18595,"kind":"modifierInvocation","modifierName":{"id":18594,"name":"onlyInitializing","nameLocations":["1528:16:74"],"nodeType":"IdentifierPath","referencedDeclaration":857,"src":"1528:16:74"},"nodeType":"ModifierInvocation","src":"1528:16:74"}],"name":"__TacProxyV1Upgradeable_init_unchained","nameLocation":"1455:38:74","nodeType":"FunctionDefinition","parameters":{"id":18593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18592,"mutability":"mutable","name":"crossChainLayer","nameLocation":"1502:15:74","nodeType":"VariableDeclaration","scope":18610,"src":"1494:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18591,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1493:25:74"},"returnParameters":{"id":18596,"nodeType":"ParameterList","parameters":[],"src":"1545:0:74"},"scope":18695,"src":"1446:237:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18623,"nodeType":"Block","src":"1721:128:74","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18612,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1735:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1739:6:74","memberName":"sender","nodeType":"MemberAccess","src":"1735:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":18614,"name":"_getCrossChainLayerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18643,"src":"1749:26:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":18615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1749:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1735:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18621,"nodeType":"IfStatement","src":"1731:101:74","trueBody":{"id":18620,"nodeType":"Block","src":"1779:53:74","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18617,"name":"OnlyCrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18423,"src":"1800:19:74","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":18618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1800:21:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18619,"nodeType":"RevertStatement","src":"1793:28:74"}]}},{"id":18622,"nodeType":"PlaceholderStatement","src":"1841:1:74"}]},"id":18624,"name":"_onlyCrossChainLayer","nameLocation":"1698:20:74","nodeType":"ModifierDefinition","parameters":{"id":18611,"nodeType":"ParameterList","parameters":[],"src":"1718:2:74"},"src":"1689:160:74","virtual":false,"visibility":"internal"},{"body":{"id":18632,"nodeType":"Block","src":"2033:95:74","statements":[{"AST":{"nativeSrc":"2052:70:74","nodeType":"YulBlock","src":"2052:70:74","statements":[{"nativeSrc":"2066:46:74","nodeType":"YulAssignment","src":"2066:46:74","value":{"name":"TacProxyV1UpgradeableStorageLocation","nativeSrc":"2076:36:74","nodeType":"YulIdentifier","src":"2076:36:74"},"variableNames":[{"name":"$.slot","nativeSrc":"2066:6:74","nodeType":"YulIdentifier","src":"2066:6:74"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":18629,"isOffset":false,"isSlot":true,"src":"2066:6:74","suffix":"slot","valueSize":1},{"declaration":18567,"isOffset":false,"isSlot":false,"src":"2076:36:74","valueSize":1}],"id":18631,"nodeType":"InlineAssembly","src":"2043:79:74"}]},"documentation":{"id":18625,"nodeType":"StructuredDocumentation","src":"1855:67:74","text":" @dev Returns a pointer to the storage namespace."},"id":18633,"implemented":true,"kind":"function","modifiers":[],"name":"_getTacProxyV1UpgradeableStorage","nameLocation":"1936:32:74","nodeType":"FunctionDefinition","parameters":{"id":18626,"nodeType":"ParameterList","parameters":[],"src":"1968:2:74"},"returnParameters":{"id":18630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18629,"mutability":"mutable","name":"$","nameLocation":"2030:1:74","nodeType":"VariableDeclaration","scope":18633,"src":"1993:38:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_TacProxyV1UpgradeableStorage_$18577_storage_ptr","typeString":"struct TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage"},"typeName":{"id":18628,"nodeType":"UserDefinedTypeName","pathNode":{"id":18627,"name":"TacProxyV1UpgradeableStorage","nameLocations":["1993:28:74"],"nodeType":"IdentifierPath","referencedDeclaration":18577,"src":"1993:28:74"},"referencedDeclaration":18577,"src":"1993:28:74","typeDescriptions":{"typeIdentifier":"t_struct$_TacProxyV1UpgradeableStorage_$18577_storage_ptr","typeString":"struct TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage"}},"visibility":"internal"}],"src":"1992:40:74"},"scope":18695,"src":"1927:201:74","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":18642,"nodeType":"Block","src":"2204:75:74","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18638,"name":"_getTacProxyV1UpgradeableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18633,"src":"2221:32:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_TacProxyV1UpgradeableStorage_$18577_storage_ptr_$","typeString":"function () pure returns (struct TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage storage pointer)"}},"id":18639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:34:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacProxyV1UpgradeableStorage_$18577_storage_ptr","typeString":"struct TacProxyV1Upgradeable.TacProxyV1UpgradeableStorage storage pointer"}},"id":18640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2256:16:74","memberName":"_crossChainLayer","nodeType":"MemberAccess","referencedDeclaration":18576,"src":"2221:51:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18637,"id":18641,"nodeType":"Return","src":"2214:58:74"}]},"id":18643,"implemented":true,"kind":"function","modifiers":[],"name":"_getCrossChainLayerAddress","nameLocation":"2143:26:74","nodeType":"FunctionDefinition","parameters":{"id":18634,"nodeType":"ParameterList","parameters":[],"src":"2169:2:74"},"returnParameters":{"id":18637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18643,"src":"2195:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18635,"name":"address","nodeType":"ElementaryTypeName","src":"2195:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2194:9:74"},"scope":18695,"src":"2134:145:74","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18659,"nodeType":"Block","src":"2518:60:74","statements":[{"expression":{"arguments":[{"id":18654,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18646,"src":"2546:9:74","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":18655,"name":"TacHeaderV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"2558:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TacHeaderV1_$16110_storage_ptr_$","typeString":"type(struct TacHeaderV1 storage pointer)"}}],"id":18656,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2557:13:74","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TacHeaderV1_$16110_storage_ptr_$","typeString":"type(struct TacHeaderV1 storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_TacHeaderV1_$16110_storage_ptr_$","typeString":"type(struct TacHeaderV1 storage pointer)"}],"expression":{"id":18652,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2535:3:74","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2539:6:74","memberName":"decode","nodeType":"MemberAccess","src":"2535:10:74","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2535:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"functionReturnParameters":18651,"id":18658,"nodeType":"Return","src":"2528:43:74"}]},"documentation":{"id":18644,"nodeType":"StructuredDocumentation","src":"2285:133:74","text":" @dev Decode TacHeaderV1 data.\n @param tacHeader encoded TacHeaderV1 data.\n @return TacHeaderV1 struct."},"id":18660,"implemented":true,"kind":"function","modifiers":[],"name":"_decodeTacHeader","nameLocation":"2432:16:74","nodeType":"FunctionDefinition","parameters":{"id":18647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18646,"mutability":"mutable","name":"tacHeader","nameLocation":"2464:9:74","nodeType":"VariableDeclaration","scope":18660,"src":"2449:24:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18645,"name":"bytes","nodeType":"ElementaryTypeName","src":"2449:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2448:26:74"},"returnParameters":{"id":18651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18660,"src":"2498:18:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":18649,"nodeType":"UserDefinedTypeName","pathNode":{"id":18648,"name":"TacHeaderV1","nameLocations":["2498:11:74"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"2498:11:74"},"referencedDeclaration":16110,"src":"2498:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"src":"2497:20:74"},"scope":18695,"src":"2423:155:74","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18683,"nodeType":"Block","src":"2809:144:74","statements":[{"expression":{"arguments":[{"id":18676,"name":"TAC_OUT_MESSAGE_VERSION_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18573,"src":"2896:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":18679,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18664,"src":"2934:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}],"expression":{"id":18677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2923:3:74","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2927:6:74","memberName":"encode","nodeType":"MemberAccess","src":"2923:10:74","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:22:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":18670,"name":"_getCrossChainLayerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18643,"src":"2836:26:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":18671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2836:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18669,"name":"ICrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17421,"src":"2819:16:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossChainLayer_$17421_$","typeString":"type(contract ICrossChainLayer)"}},"id":18672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2819:46:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICrossChainLayer_$17421","typeString":"contract ICrossChainLayer"}},"id":18673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2866:11:74","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":17406,"src":"2819:58:74","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) payable external"}},"id":18675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":18674,"name":"tacAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18666,"src":"2885:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2819:76:74","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (uint256,bytes memory) payable external"}},"id":18681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2819:127:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18682,"nodeType":"ExpressionStatement","src":"2819:127:74"}]},"documentation":{"id":18661,"nodeType":"StructuredDocumentation","src":"2584:136:74","text":" @dev Send v1 message to TON\n @param outMessage v1 message to TON\n @param tacAmount Amount of TAC to send."},"id":18684,"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessageV1","nameLocation":"2734:14:74","nodeType":"FunctionDefinition","parameters":{"id":18667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18664,"mutability":"mutable","name":"outMessage","nameLocation":"2769:10:74","nodeType":"VariableDeclaration","scope":18684,"src":"2749:30:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1"},"typeName":{"id":18663,"nodeType":"UserDefinedTypeName","pathNode":{"id":18662,"name":"OutMessageV1","nameLocations":["2749:12:74"],"nodeType":"IdentifierPath","referencedDeclaration":16084,"src":"2749:12:74"},"referencedDeclaration":16084,"src":"2749:12:74","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_storage_ptr","typeString":"struct OutMessageV1"}},"visibility":"internal"},{"constant":false,"id":18666,"mutability":"mutable","name":"tacAmount","nameLocation":"2789:9:74","nodeType":"VariableDeclaration","scope":18684,"src":"2781:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18665,"name":"uint256","nodeType":"ElementaryTypeName","src":"2781:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2748:51:74"},"returnParameters":{"id":18668,"nodeType":"ParameterList","parameters":[],"src":"2809:0:74"},"scope":18695,"src":"2725:228:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[18429],"body":{"id":18693,"nodeType":"Block","src":"3113:42:74","statements":[{"expression":{"id":18691,"name":"TAC_HEADER_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18570,"src":"3130:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18690,"id":18692,"nodeType":"Return","src":"3123:25:74"}]},"documentation":{"id":18685,"nodeType":"StructuredDocumentation","src":"2959:88:74","text":" @dev Get Tac Proxy contract version.\n @return Contract version."},"functionSelector":"0d8e6e2c","id":18694,"implemented":true,"kind":"function","modifiers":[],"name":"getVersion","nameLocation":"3061:10:74","nodeType":"FunctionDefinition","overrides":{"id":18687,"nodeType":"OverrideSpecifier","overrides":[],"src":"3086:8:74"},"parameters":{"id":18686,"nodeType":"ParameterList","parameters":[],"src":"3071:2:74"},"returnParameters":{"id":18690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18694,"src":"3104:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18688,"name":"uint256","nodeType":"ElementaryTypeName","src":"3104:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:9:74"},"scope":18695,"src":"3052:103:74","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":18696,"src":"339:2996:74","usedErrors":[711,714,18423],"usedEvents":[719]}],"src":"32:3303:74"},"id":74},"contracts/smart-account/TacSAFactory.sol":{"ast":{"absolutePath":"contracts/smart-account/TacSAFactory.sol","exportedSymbols":{"BeaconProxy":[3790],"ISAFactory":[19521],"Ownable2StepUpgradeable":[499],"TacInitializable":[16247],"TacSAFactory":[19057],"TacSmartAccount":[19437],"UUPSUpgradeable":[1130],"UpgradeableBeacon":[3888]},"id":19058,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18697,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"36:23:75"},{"absolutePath":"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol","file":"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol","id":18699,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19058,"sourceUnit":3791,"src":"61:81:75","symbolAliases":[{"foreign":{"id":18698,"name":"BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3790,"src":"69:11:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol","file":"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol","id":18701,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19058,"sourceUnit":3889,"src":"143:93:75","symbolAliases":[{"foreign":{"id":18700,"name":"UpgradeableBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3888,"src":"151:17:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":18703,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19058,"sourceUnit":500,"src":"237:111:75","symbolAliases":[{"foreign":{"id":18702,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":499,"src":"245:23:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":18705,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19058,"sourceUnit":1131,"src":"349:102:75","symbolAliases":[{"foreign":{"id":18704,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1130,"src":"358:15:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/smart-account/TacSmartAccount.sol","file":"./TacSmartAccount.sol","id":18707,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19058,"sourceUnit":19438,"src":"452:54:75","symbolAliases":[{"foreign":{"id":18706,"name":"TacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19437,"src":"460:15:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/smart-account/interfaces/ISAFactory.sol","file":"./interfaces/ISAFactory.sol","id":18709,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19058,"sourceUnit":19522,"src":"507:55:75","symbolAliases":[{"foreign":{"id":18708,"name":"ISAFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19521,"src":"515:10:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/TacInitializable.sol","file":"../core/TacInitializable.sol","id":18711,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19058,"sourceUnit":16248,"src":"563:62:75","symbolAliases":[{"foreign":{"id":18710,"name":"TacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16247,"src":"571:16:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18712,"name":"TacInitializable","nameLocations":["652:16:75"],"nodeType":"IdentifierPath","referencedDeclaration":16247,"src":"652:16:75"},"id":18713,"nodeType":"InheritanceSpecifier","src":"652:16:75"},{"baseName":{"id":18714,"name":"Ownable2StepUpgradeable","nameLocations":["670:23:75"],"nodeType":"IdentifierPath","referencedDeclaration":499,"src":"670:23:75"},"id":18715,"nodeType":"InheritanceSpecifier","src":"670:23:75"},{"baseName":{"id":18716,"name":"UUPSUpgradeable","nameLocations":["695:15:75"],"nodeType":"IdentifierPath","referencedDeclaration":1130,"src":"695:15:75"},"id":18717,"nodeType":"InheritanceSpecifier","src":"695:15:75"},{"baseName":{"id":18718,"name":"ISAFactory","nameLocations":["712:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":19521,"src":"712:10:75"},"id":18719,"nodeType":"InheritanceSpecifier","src":"712:10:75"}],"canonicalName":"TacSAFactory","contractDependencies":[3790,3888],"contractKind":"contract","fullyImplemented":true,"id":19057,"linearizedBaseContracts":[19057,19521,1130,3265,499,694,2873,16247,17543,948],"name":"TacSAFactory","nameLocation":"636:12:75","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"59659e90","id":18722,"mutability":"mutable","name":"beacon","nameLocation":"754:6:75","nodeType":"VariableDeclaration","scope":19057,"src":"729:31:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"},"typeName":{"id":18721,"nodeType":"UserDefinedTypeName","pathNode":{"id":18720,"name":"UpgradeableBeacon","nameLocations":["729:17:75"],"nodeType":"IdentifierPath","referencedDeclaration":3888,"src":"729:17:75"},"referencedDeclaration":3888,"src":"729:17:75","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}},"visibility":"public"},{"constant":false,"functionSelector":"391cb358","id":18728,"mutability":"mutable","name":"smartAccounts","nameLocation":"849:13:75","nodeType":"VariableDeclaration","scope":19057,"src":"766:96:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(address => mapping(bytes32 => address))"},"typeName":{"id":18727,"keyName":"application","keyNameLocation":"782:11:75","keyType":{"id":18723,"name":"address","nodeType":"ElementaryTypeName","src":"774:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"766:75:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(address => mapping(bytes32 => address))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18726,"keyName":"id","keyNameLocation":"813:2:75","keyType":{"id":18724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"805:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"797:43:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueName":"smartAccount","valueNameLocation":"827:12:75","valueType":{"id":18725,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"public"},{"anonymous":false,"eventSelector":"ad8a41b3cf9ccd262272a1aa8601a0191fac66c39f2b13491a904c1055bb97cd","id":18736,"name":"SmartAccountCreated","nameLocation":"875:19:75","nodeType":"EventDefinition","parameters":{"id":18735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18730,"indexed":true,"mutability":"mutable","name":"smartAccountAddress","nameLocation":"911:19:75","nodeType":"VariableDeclaration","scope":18736,"src":"895:35:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18729,"name":"address","nodeType":"ElementaryTypeName","src":"895:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18732,"indexed":true,"mutability":"mutable","name":"application","nameLocation":"948:11:75","nodeType":"VariableDeclaration","scope":18736,"src":"932:27:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18731,"name":"address","nodeType":"ElementaryTypeName","src":"932:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18734,"indexed":false,"mutability":"mutable","name":"tvmWallet","nameLocation":"968:9:75","nodeType":"VariableDeclaration","scope":18736,"src":"961:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18733,"name":"string","nodeType":"ElementaryTypeName","src":"961:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"894:84:75"},"src":"869:110:75"},{"body":{"id":18766,"nodeType":"Block","src":"1064:179:75","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18743,"name":"__Ownable2Step_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":400,"src":"1074:19:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1074:21:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18745,"nodeType":"ExpressionStatement","src":"1074:21:75"},{"expression":{"arguments":[{"expression":{"id":18747,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1120:3:75","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1124:6:75","memberName":"sender","nodeType":"MemberAccess","src":"1120:10:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18746,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"1105:14:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1105:26:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18750,"nodeType":"ExpressionStatement","src":"1105:26:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18751,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"1141:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1141:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18753,"nodeType":"ExpressionStatement","src":"1141:24:75"},{"expression":{"id":18764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18754,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18722,"src":"1175:6:75","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18758,"name":"_initBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18738,"src":"1206:14:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":18761,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1230:4:75","typeDescriptions":{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}],"id":18760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1222:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18759,"name":"address","nodeType":"ElementaryTypeName","src":"1222:7:75","typeDescriptions":{}}},"id":18762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1222:13:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":18757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1184:21:75","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_UpgradeableBeacon_$3888_$","typeString":"function (address,address) returns (contract UpgradeableBeacon)"},"typeName":{"id":18756,"nodeType":"UserDefinedTypeName","pathNode":{"id":18755,"name":"UpgradeableBeacon","nameLocations":["1188:17:75"],"nodeType":"IdentifierPath","referencedDeclaration":3888,"src":"1188:17:75"},"referencedDeclaration":3888,"src":"1188:17:75","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}}},"id":18763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1184:52:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}},"src":"1175:61:75","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}},"id":18765,"nodeType":"ExpressionStatement","src":"1175:61:75"}]},"functionSelector":"c4d66de8","id":18767,"implemented":true,"kind":"function","modifiers":[{"id":18741,"kind":"modifierInvocation","modifierName":{"id":18740,"name":"initializer","nameLocations":["1052:11:75"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"1052:11:75"},"nodeType":"ModifierInvocation","src":"1052:11:75"}],"name":"initialize","nameLocation":"994:10:75","nodeType":"FunctionDefinition","parameters":{"id":18739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18738,"mutability":"mutable","name":"_initBlueprint","nameLocation":"1022:14:75","nodeType":"VariableDeclaration","scope":18767,"src":"1014:22:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18737,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1004:38:75"},"returnParameters":{"id":18742,"nodeType":"ParameterList","parameters":[],"src":"1064:0:75"},"scope":19057,"src":"985:258:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1084],"body":{"id":18775,"nodeType":"Block","src":"1359:2:75","statements":[]},"id":18776,"implemented":true,"kind":"function","modifiers":[{"id":18773,"kind":"modifierInvocation","modifierName":{"id":18772,"name":"onlyOwner","nameLocations":["1345:9:75"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"1345:9:75"},"nodeType":"ModifierInvocation","src":"1345:9:75"}],"name":"_authorizeUpgrade","nameLocation":"1258:17:75","nodeType":"FunctionDefinition","overrides":{"id":18771,"nodeType":"OverrideSpecifier","overrides":[],"src":"1328:8:75"},"parameters":{"id":18770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18769,"mutability":"mutable","name":"newImplementation","nameLocation":"1284:17:75","nodeType":"VariableDeclaration","scope":18776,"src":"1276:25:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18768,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1275:27:75"},"returnParameters":{"id":18774,"nodeType":"ParameterList","parameters":[],"src":"1359:0:75"},"scope":19057,"src":"1249:112:75","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[19497],"body":{"id":18837,"nodeType":"Block","src":"1485:347:75","statements":[{"assignments":[18786],"declarations":[{"constant":false,"id":18786,"mutability":"mutable","name":"id","nameLocation":"1503:2:75","nodeType":"VariableDeclaration","scope":18837,"src":"1495:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1495:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18793,"initialValue":{"arguments":[{"arguments":[{"id":18790,"name":"tvmWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18778,"src":"1535:9:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18788,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1518:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1522:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"1518:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1518:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18787,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1508:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1508:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1495:51:75"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":18794,"name":"smartAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18728,"src":"1560:13:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(address => mapping(bytes32 => address))"}},"id":18797,"indexExpression":{"expression":{"id":18795,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1574:3:75","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1578:6:75","memberName":"sender","nodeType":"MemberAccess","src":"1574:10:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1560:25:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18799,"indexExpression":{"id":18798,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"1586:2:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1560:29:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1601:1:75","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":18801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1593:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18800,"name":"address","nodeType":"ElementaryTypeName","src":"1593:7:75","typeDescriptions":{}}},"id":18803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1593:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1560:43:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18815,"nodeType":"IfStatement","src":"1556:119:75","trueBody":{"id":18814,"nodeType":"Block","src":"1605:70:75","statements":[{"expression":{"components":[{"baseExpression":{"baseExpression":{"id":18805,"name":"smartAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18728,"src":"1627:13:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(address => mapping(bytes32 => address))"}},"id":18808,"indexExpression":{"expression":{"id":18806,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1641:3:75","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1645:6:75","memberName":"sender","nodeType":"MemberAccess","src":"1641:10:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1627:25:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18810,"indexExpression":{"id":18809,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"1653:2:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1627:29:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":18811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1658:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"id":18812,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1626:38:75","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bool_$","typeString":"tuple(address,bool)"}},"functionReturnParameters":18784,"id":18813,"nodeType":"Return","src":"1619:45:75"}]}},{"assignments":[18817],"declarations":[{"constant":false,"id":18817,"mutability":"mutable","name":"account","nameLocation":"1692:7:75","nodeType":"VariableDeclaration","scope":18837,"src":"1684:15:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18816,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":18823,"initialValue":{"arguments":[{"id":18819,"name":"tvmWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18778,"src":"1722:9:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":18820,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1733:3:75","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1737:6:75","memberName":"sender","nodeType":"MemberAccess","src":"1733:10:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":18818,"name":"_createSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19042,"src":"1702:19:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (string memory,address) returns (address)"}},"id":18822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1702:42:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1684:60:75"},{"expression":{"id":18831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":18824,"name":"smartAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18728,"src":"1754:13:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(address => mapping(bytes32 => address))"}},"id":18828,"indexExpression":{"expression":{"id":18825,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1768:3:75","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1772:6:75","memberName":"sender","nodeType":"MemberAccess","src":"1768:10:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1754:25:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18829,"indexExpression":{"id":18827,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"1780:2:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1754:29:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18830,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18817,"src":"1786:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1754:39:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18832,"nodeType":"ExpressionStatement","src":"1754:39:75"},{"expression":{"components":[{"id":18833,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18817,"src":"1811:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":18834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1820:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":18835,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1810:15:75","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bool_$","typeString":"tuple(address,bool)"}},"functionReturnParameters":18784,"id":18836,"nodeType":"Return","src":"1803:22:75"}]},"functionSelector":"a66c4f50","id":18838,"implemented":true,"kind":"function","modifiers":[],"name":"getOrCreateSmartAccount","nameLocation":"1376:23:75","nodeType":"FunctionDefinition","parameters":{"id":18779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18778,"mutability":"mutable","name":"tvmWallet","nameLocation":"1423:9:75","nodeType":"VariableDeclaration","scope":18838,"src":"1409:23:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18777,"name":"string","nodeType":"ElementaryTypeName","src":"1409:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1399:39:75"},"returnParameters":{"id":18784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18838,"src":"1457:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18780,"name":"address","nodeType":"ElementaryTypeName","src":"1457:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18783,"mutability":"mutable","name":"isNewAccount","nameLocation":"1471:12:75","nodeType":"VariableDeclaration","scope":18838,"src":"1466:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18782,"name":"bool","nodeType":"ElementaryTypeName","src":"1466:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1456:28:75"},"scope":19057,"src":"1367:465:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[19506],"body":{"id":18879,"nodeType":"Block","src":"1977:256:75","statements":[{"assignments":[18848],"declarations":[{"constant":false,"id":18848,"mutability":"mutable","name":"id","nameLocation":"1995:2:75","nodeType":"VariableDeclaration","scope":18879,"src":"1987:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1987:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18855,"initialValue":{"arguments":[{"arguments":[{"id":18852,"name":"tvmWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18840,"src":"2027:9:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2010:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2014:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"2010:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18849,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2000:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2000:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1987:51:75"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":18856,"name":"smartAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18728,"src":"2052:13:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(address => mapping(bytes32 => address))"}},"id":18858,"indexExpression":{"id":18857,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18842,"src":"2066:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2052:26:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18860,"indexExpression":{"id":18859,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18848,"src":"2079:2:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2052:30:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":18863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2094:1:75","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":18862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2086:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18861,"name":"address","nodeType":"ElementaryTypeName","src":"2086:7:75","typeDescriptions":{}}},"id":18864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2052:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18872,"nodeType":"IfStatement","src":"2048:132:75","trueBody":{"id":18871,"nodeType":"Block","src":"2098:82:75","statements":[{"expression":{"arguments":[{"id":18867,"name":"tvmWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18840,"src":"2146:9:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18868,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18842,"src":"2157:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":18866,"name":"predictSmartAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18978,"src":"2119:26:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (string memory,address) view returns (address)"}},"id":18869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2119:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18846,"id":18870,"nodeType":"Return","src":"2112:57:75"}]}},{"expression":{"baseExpression":{"baseExpression":{"id":18873,"name":"smartAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18728,"src":"2196:13:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(address => mapping(bytes32 => address))"}},"id":18875,"indexExpression":{"id":18874,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18842,"src":"2210:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2196:26:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18877,"indexExpression":{"id":18876,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18848,"src":"2223:2:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2196:30:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18846,"id":18878,"nodeType":"Return","src":"2189:37:75"}]},"functionSelector":"dbe6e7f9","id":18880,"implemented":true,"kind":"function","modifiers":[],"name":"getSmartAccountForApplication","nameLocation":"1847:29:75","nodeType":"FunctionDefinition","parameters":{"id":18843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18840,"mutability":"mutable","name":"tvmWallet","nameLocation":"1900:9:75","nodeType":"VariableDeclaration","scope":18880,"src":"1886:23:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18839,"name":"string","nodeType":"ElementaryTypeName","src":"1886:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18842,"mutability":"mutable","name":"application","nameLocation":"1927:11:75","nodeType":"VariableDeclaration","scope":18880,"src":"1919:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18841,"name":"address","nodeType":"ElementaryTypeName","src":"1919:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1876:68:75"},"returnParameters":{"id":18846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18880,"src":"1968:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18844,"name":"address","nodeType":"ElementaryTypeName","src":"1968:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1967:9:75"},"scope":19057,"src":"1838:395:75","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[19515],"body":{"id":18977,"nodeType":"Block","src":"2373:859:75","statements":[{"assignments":[18890],"declarations":[{"constant":false,"id":18890,"mutability":"mutable","name":"id","nameLocation":"2391:2:75","nodeType":"VariableDeclaration","scope":18977,"src":"2383:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2383:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18897,"initialValue":{"arguments":[{"arguments":[{"id":18894,"name":"tvmWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18882,"src":"2423:9:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2406:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2410:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"2406:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2406:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18891,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2396:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2396:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2383:51:75"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":18898,"name":"smartAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18728,"src":"2448:13:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(address => mapping(bytes32 => address))"}},"id":18900,"indexExpression":{"id":18899,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18884,"src":"2462:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2448:26:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18902,"indexExpression":{"id":18901,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18890,"src":"2475:2:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2448:30:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2490:1:75","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":18904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2482:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18903,"name":"address","nodeType":"ElementaryTypeName","src":"2482:7:75","typeDescriptions":{}}},"id":18906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2482:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2448:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18915,"nodeType":"IfStatement","src":"2444:112:75","trueBody":{"id":18914,"nodeType":"Block","src":"2494:62:75","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":18908,"name":"smartAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18728,"src":"2515:13:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(address => mapping(bytes32 => address))"}},"id":18910,"indexExpression":{"id":18909,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18884,"src":"2529:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2515:26:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18912,"indexExpression":{"id":18911,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18890,"src":"2542:2:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2515:30:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18888,"id":18913,"nodeType":"Return","src":"2508:37:75"}]}},{"assignments":[18917],"declarations":[{"constant":false,"id":18917,"mutability":"mutable","name":"bytecode","nameLocation":"2662:8:75","nodeType":"VariableDeclaration","scope":18977,"src":"2649:21:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18916,"name":"bytes","nodeType":"ElementaryTypeName","src":"2649:5:75","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":18939,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":18921,"name":"BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3790,"src":"2708:11:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BeaconProxy_$3790_$","typeString":"type(contract BeaconProxy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_BeaconProxy_$3790_$","typeString":"type(contract BeaconProxy)"}],"id":18920,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2703:4:75","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2703:17:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_BeaconProxy_$3790","typeString":"type(contract BeaconProxy)"}},"id":18923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2721:12:75","memberName":"creationCode","nodeType":"MemberAccess","src":"2703:30:75","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[{"id":18928,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18722,"src":"2783:6:75","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}],"id":18927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2775:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18926,"name":"address","nodeType":"ElementaryTypeName","src":"2775:7:75","typeDescriptions":{}}},"id":18929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:15:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"expression":{"id":18932,"name":"TacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19437,"src":"2852:15:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TacSmartAccount_$19437_$","typeString":"type(contract TacSmartAccount)"}},"id":18933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2868:10:75","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":19166,"src":"2852:26:75","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$returns$__$","typeString":"function TacSmartAccount.initialize(address)"}},"id":18934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2879:8:75","memberName":"selector","nodeType":"MemberAccess","src":"2852:35:75","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":18935,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18884,"src":"2909:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2808:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2812:18:75","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2808:22:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":18936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2808:130:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18924,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2747:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2751:6:75","memberName":"encode","nodeType":"MemberAccess","src":"2747:10:75","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:205:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2673:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2677:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"2673:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:289:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2649:313:75"},{"assignments":[18941],"declarations":[{"constant":false,"id":18941,"mutability":"mutable","name":"salt","nameLocation":"2989:4:75","nodeType":"VariableDeclaration","scope":18977,"src":"2981:12:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2981:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18949,"initialValue":{"arguments":[{"arguments":[{"id":18945,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18884,"src":"3023:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18946,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18890,"src":"3036:2:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18943,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3006:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3010:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"3006:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:33:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18942,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2996:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2996:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2981:59:75"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786666","id":18961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3128:4:75","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":18960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3121:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":18959,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3121:6:75","typeDescriptions":{}}},"id":18962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3121:12:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":18965,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3155:4:75","typeDescriptions":{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}],"id":18964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3147:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18963,"name":"address","nodeType":"ElementaryTypeName","src":"3147:7:75","typeDescriptions":{}}},"id":18966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3147:13:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18967,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18941,"src":"3174:4:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":18969,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18917,"src":"3202:8:75","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18968,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3192:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3192:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18957,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3091:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3095:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"3091:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3091:130:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18956,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3081:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3081:141:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3073:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18954,"name":"uint256","nodeType":"ElementaryTypeName","src":"3073:7:75","typeDescriptions":{}}},"id":18973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3073:150:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3065:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18952,"name":"uint160","nodeType":"ElementaryTypeName","src":"3065:7:75","typeDescriptions":{}}},"id":18974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3065:159:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3057:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18950,"name":"address","nodeType":"ElementaryTypeName","src":"3057:7:75","typeDescriptions":{}}},"id":18975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3057:168:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18888,"id":18976,"nodeType":"Return","src":"3050:175:75"}]},"functionSelector":"70d367c3","id":18978,"implemented":true,"kind":"function","modifiers":[],"name":"predictSmartAccountAddress","nameLocation":"2248:26:75","nodeType":"FunctionDefinition","parameters":{"id":18885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18882,"mutability":"mutable","name":"tvmWallet","nameLocation":"2298:9:75","nodeType":"VariableDeclaration","scope":18978,"src":"2284:23:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18881,"name":"string","nodeType":"ElementaryTypeName","src":"2284:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18884,"mutability":"mutable","name":"application","nameLocation":"2325:11:75","nodeType":"VariableDeclaration","scope":18978,"src":"2317:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18883,"name":"address","nodeType":"ElementaryTypeName","src":"2317:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2274:68:75"},"returnParameters":{"id":18888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18978,"src":"2364:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18886,"name":"address","nodeType":"ElementaryTypeName","src":"2364:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2363:9:75"},"scope":19057,"src":"2239:993:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19041,"nodeType":"Block","src":"3340:470:75","statements":[{"assignments":[18988],"declarations":[{"constant":false,"id":18988,"mutability":"mutable","name":"id","nameLocation":"3358:2:75","nodeType":"VariableDeclaration","scope":19041,"src":"3350:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18987,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3350:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18995,"initialValue":{"arguments":[{"arguments":[{"id":18992,"name":"tvmWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18980,"src":"3390:9:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18990,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3373:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3377:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"3373:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3373:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18989,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3363:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3363:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3350:51:75"},{"assignments":[18997],"declarations":[{"constant":false,"id":18997,"mutability":"mutable","name":"salt","nameLocation":"3419:4:75","nodeType":"VariableDeclaration","scope":19041,"src":"3411:12:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3411:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":19005,"initialValue":{"arguments":[{"arguments":[{"id":19001,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18982,"src":"3453:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19002,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18988,"src":"3466:2:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3436:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3440:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"3436:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3436:33:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18998,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3426:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3411:59:75"},{"assignments":[19008],"declarations":[{"constant":false,"id":19008,"mutability":"mutable","name":"proxy","nameLocation":"3492:5:75","nodeType":"VariableDeclaration","scope":19041,"src":"3480:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BeaconProxy_$3790","typeString":"contract BeaconProxy"},"typeName":{"id":19007,"nodeType":"UserDefinedTypeName","pathNode":{"id":19006,"name":"BeaconProxy","nameLocations":["3480:11:75"],"nodeType":"IdentifierPath","referencedDeclaration":3790,"src":"3480:11:75"},"referencedDeclaration":3790,"src":"3480:11:75","typeDescriptions":{"typeIdentifier":"t_contract$_BeaconProxy_$3790","typeString":"contract BeaconProxy"}},"visibility":"internal"}],"id":19026,"initialValue":{"arguments":[{"arguments":[{"id":19016,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18722,"src":"3549:6:75","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}],"id":19015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19014,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:75","typeDescriptions":{}}},"id":19017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:15:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"expression":{"id":19020,"name":"TacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19437,"src":"3610:15:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TacSmartAccount_$19437_$","typeString":"type(contract TacSmartAccount)"}},"id":19021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3626:10:75","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":19166,"src":"3610:26:75","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$returns$__$","typeString":"function TacSmartAccount.initialize(address)"}},"id":19022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3637:8:75","memberName":"selector","nodeType":"MemberAccess","src":"3610:35:75","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":19023,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18982,"src":"3663:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3570:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3574:18:75","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3570:22:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":19024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3570:118:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"3500:15:75","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_BeaconProxy_$3790_$","typeString":"function (address,bytes memory) payable returns (contract BeaconProxy)"},"typeName":{"id":19010,"nodeType":"UserDefinedTypeName","pathNode":{"id":19009,"name":"BeaconProxy","nameLocations":["3504:11:75"],"nodeType":"IdentifierPath","referencedDeclaration":3790,"src":"3504:11:75"},"referencedDeclaration":3790,"src":"3504:11:75","typeDescriptions":{"typeIdentifier":"t_contract$_BeaconProxy_$3790","typeString":"contract BeaconProxy"}}},"id":19013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["salt"],"nodeType":"FunctionCallOptions","options":[{"id":19012,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18997,"src":"3522:4:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"src":"3500:27:75","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_BeaconProxy_$3790_$salt","typeString":"function (address,bytes memory) payable returns (contract BeaconProxy)"}},"id":19025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3500:198:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BeaconProxy_$3790","typeString":"contract BeaconProxy"}},"nodeType":"VariableDeclarationStatement","src":"3480:218:75"},{"eventCall":{"arguments":[{"arguments":[{"id":19030,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19008,"src":"3741:5:75","typeDescriptions":{"typeIdentifier":"t_contract$_BeaconProxy_$3790","typeString":"contract BeaconProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BeaconProxy_$3790","typeString":"contract BeaconProxy"}],"id":19029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3733:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19028,"name":"address","nodeType":"ElementaryTypeName","src":"3733:7:75","typeDescriptions":{}}},"id":19031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3733:14:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19032,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18982,"src":"3749:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19033,"name":"tvmWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18980,"src":"3762:9:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19027,"name":"SmartAccountCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18736,"src":"3713:19:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory)"}},"id":19034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3713:59:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19035,"nodeType":"EmitStatement","src":"3708:64:75"},{"expression":{"arguments":[{"id":19038,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19008,"src":"3797:5:75","typeDescriptions":{"typeIdentifier":"t_contract$_BeaconProxy_$3790","typeString":"contract BeaconProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BeaconProxy_$3790","typeString":"contract BeaconProxy"}],"id":19037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19036,"name":"address","nodeType":"ElementaryTypeName","src":"3789:7:75","typeDescriptions":{}}},"id":19039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:14:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18986,"id":19040,"nodeType":"Return","src":"3782:21:75"}]},"id":19042,"implemented":true,"kind":"function","modifiers":[],"name":"_createSmartAccount","nameLocation":"3247:19:75","nodeType":"FunctionDefinition","parameters":{"id":18983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18980,"mutability":"mutable","name":"tvmWallet","nameLocation":"3281:9:75","nodeType":"VariableDeclaration","scope":19042,"src":"3267:23:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18979,"name":"string","nodeType":"ElementaryTypeName","src":"3267:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18982,"mutability":"mutable","name":"application","nameLocation":"3300:11:75","nodeType":"VariableDeclaration","scope":19042,"src":"3292:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18981,"name":"address","nodeType":"ElementaryTypeName","src":"3292:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3266:46:75"},"returnParameters":{"id":18986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19042,"src":"3331:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18984,"name":"address","nodeType":"ElementaryTypeName","src":"3331:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3330:9:75"},"scope":19057,"src":"3238:572:75","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[19520],"body":{"id":19055,"nodeType":"Block","src":"3884:48:75","statements":[{"expression":{"arguments":[{"id":19052,"name":"_newBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19044,"src":"3911:13:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19049,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18722,"src":"3894:6:75","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeableBeacon_$3888","typeString":"contract UpgradeableBeacon"}},"id":19051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3901:9:75","memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":3861,"src":"3894:16:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":19053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19054,"nodeType":"ExpressionStatement","src":"3894:31:75"}]},"functionSelector":"fa81f7d9","id":19056,"implemented":true,"kind":"function","modifiers":[{"id":19047,"kind":"modifierInvocation","modifierName":{"id":19046,"name":"onlyOwner","nameLocations":["3874:9:75"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"3874:9:75"},"nodeType":"ModifierInvocation","src":"3874:9:75"}],"name":"updateBlueprint","nameLocation":"3826:15:75","nodeType":"FunctionDefinition","parameters":{"id":19045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19044,"mutability":"mutable","name":"_newBlueprint","nameLocation":"3850:13:75","nodeType":"VariableDeclaration","scope":19056,"src":"3842:21:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19043,"name":"address","nodeType":"ElementaryTypeName","src":"3842:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3841:23:75"},"returnParameters":{"id":19048,"nodeType":"ParameterList","parameters":[],"src":"3884:0:75"},"scope":19057,"src":"3817:115:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":19058,"src":"627:3307:75","usedErrors":[530,535,711,714,975,980,3422,3435,6379,6770,16230],"usedEvents":[394,541,719,3238,18736]}],"src":"36:3898:75"},"id":75},"contracts/smart-account/TacSmartAccount.sol":{"ast":{"absolutePath":"contracts/smart-account/TacSmartAccount.sol","exportedSymbols":{"IERC20":[4735],"IERC721Receiver":[6264],"Initializable":[4142],"SafeERC20":[5172],"TacSmartAccount":[19437]},"id":19438,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":19059,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"32:23:76"},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":19061,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19438,"sourceUnit":4143,"src":"57:84:76","symbolAliases":[{"foreign":{"id":19060,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4142,"src":"65:13:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":19063,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19438,"sourceUnit":4736,"src":"142:70:76","symbolAliases":[{"foreign":{"id":19062,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"150:6:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":19065,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19438,"sourceUnit":5173,"src":"213:82:76","symbolAliases":[{"foreign":{"id":19064,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"221:9:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","id":19067,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19438,"sourceUnit":6265,"src":"296:89:76","symbolAliases":[{"foreign":{"id":19066,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"304:15:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":19068,"name":"Initializable","nameLocations":["416:13:76"],"nodeType":"IdentifierPath","referencedDeclaration":4142,"src":"416:13:76"},"id":19069,"nodeType":"InheritanceSpecifier","src":"416:13:76"},{"baseName":{"id":19070,"name":"IERC721Receiver","nameLocations":["431:15:76"],"nodeType":"IdentifierPath","referencedDeclaration":6264,"src":"431:15:76"},"id":19071,"nodeType":"InheritanceSpecifier","src":"431:15:76"}],"canonicalName":"TacSmartAccount","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":19437,"linearizedBaseContracts":[19437,6264,4142],"name":"TacSmartAccount","nameLocation":"397:15:76","nodeType":"ContractDefinition","nodes":[{"global":false,"id":19075,"libraryName":{"id":19072,"name":"SafeERC20","nameLocations":["460:9:76"],"nodeType":"IdentifierPath","referencedDeclaration":5172,"src":"460:9:76"},"nodeType":"UsingForDirective","src":"454:27:76","typeName":{"id":19074,"nodeType":"UserDefinedTypeName","pathNode":{"id":19073,"name":"IERC20","nameLocations":["474:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"474:6:76"},"referencedDeclaration":4735,"src":"474:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}}},{"constant":false,"functionSelector":"8da5cb5b","id":19077,"mutability":"mutable","name":"owner","nameLocation":"502:5:76","nodeType":"VariableDeclaration","scope":19437,"src":"487:20:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19076,"name":"address","nodeType":"ElementaryTypeName","src":"487:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"eventSelector":"caf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f","id":19085,"name":"Executed","nameLocation":"520:8:76","nodeType":"EventDefinition","parameters":{"id":19084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19079,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"545:6:76","nodeType":"VariableDeclaration","scope":19085,"src":"529:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19078,"name":"address","nodeType":"ElementaryTypeName","src":"529:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19081,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"561:5:76","nodeType":"VariableDeclaration","scope":19085,"src":"553:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19080,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19083,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"574:4:76","nodeType":"VariableDeclaration","scope":19085,"src":"568:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19082,"name":"bytes","nodeType":"ElementaryTypeName","src":"568:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"528:51:76"},"src":"514:66:76"},{"constant":false,"functionSelector":"dc40af1f","id":19089,"mutability":"mutable","name":"oneTimeTickets","nameLocation":"632:14:76","nodeType":"VariableDeclaration","scope":19437,"src":"586:60:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":19088,"keyName":"caller","keyNameLocation":"602:6:76","keyType":{"id":19086,"name":"address","nodeType":"ElementaryTypeName","src":"594:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"586:38:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"ticket","valueNameLocation":"617:6:76","valueType":{"id":19087,"name":"bool","nodeType":"ElementaryTypeName","src":"612:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"errorSelector":"1c5eb6d4","id":19099,"name":"ExecutionFailed","nameLocation":"659:15:76","nodeType":"ErrorDefinition","parameters":{"id":19098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19091,"mutability":"mutable","name":"target","nameLocation":"683:6:76","nodeType":"VariableDeclaration","scope":19099,"src":"675:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19090,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19093,"mutability":"mutable","name":"value","nameLocation":"699:5:76","nodeType":"VariableDeclaration","scope":19099,"src":"691:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19092,"name":"uint256","nodeType":"ElementaryTypeName","src":"691:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19095,"mutability":"mutable","name":"data","nameLocation":"712:4:76","nodeType":"VariableDeclaration","scope":19099,"src":"706:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19094,"name":"bytes","nodeType":"ElementaryTypeName","src":"706:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":19097,"mutability":"mutable","name":"returnData","nameLocation":"724:10:76","nodeType":"VariableDeclaration","scope":19099,"src":"718:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19096,"name":"bytes","nodeType":"ElementaryTypeName","src":"718:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"674:61:76"},"src":"653:83:76"},{"errorSelector":"0504a20d","id":19103,"name":"AccessDenied","nameLocation":"747:12:76","nodeType":"ErrorDefinition","parameters":{"id":19102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19101,"mutability":"mutable","name":"caller","nameLocation":"768:6:76","nodeType":"VariableDeclaration","scope":19103,"src":"760:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19100,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"759:16:76"},"src":"741:35:76"},{"body":{"id":19131,"nodeType":"Block","src":"811:203:76","statements":[{"condition":{"baseExpression":{"id":19105,"name":"oneTimeTickets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19089,"src":"825:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":19108,"indexExpression":{"expression":{"id":19106,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"840:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"844:6:76","memberName":"sender","nodeType":"MemberAccess","src":"840:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"825:26:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19128,"nodeType":"Block","src":"918:79:76","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19118,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"940:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"944:6:76","memberName":"sender","nodeType":"MemberAccess","src":"940:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":19120,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19077,"src":"954:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"940:19:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":19123,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"974:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"978:6:76","memberName":"sender","nodeType":"MemberAccess","src":"974:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19122,"name":"AccessDenied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19103,"src":"961:12:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":19125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"961:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":19117,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"932:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":19126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"932:54:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19127,"nodeType":"ExpressionStatement","src":"932:54:76"}]},"id":19129,"nodeType":"IfStatement","src":"821:176:76","trueBody":{"id":19116,"nodeType":"Block","src":"853:59:76","statements":[{"expression":{"id":19114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19109,"name":"oneTimeTickets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19089,"src":"867:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":19112,"indexExpression":{"expression":{"id":19110,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"882:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"886:6:76","memberName":"sender","nodeType":"MemberAccess","src":"882:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"867:26:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":19113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"896:5:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"867:34:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19115,"nodeType":"ExpressionStatement","src":"867:34:76"}]}},{"id":19130,"nodeType":"PlaceholderStatement","src":"1006:1:76"}]},"id":19132,"name":"onlyOwnerOrTicket","nameLocation":"791:17:76","nodeType":"ModifierDefinition","parameters":{"id":19104,"nodeType":"ParameterList","parameters":[],"src":"808:2:76"},"src":"782:232:76","virtual":false,"visibility":"internal"},{"body":{"id":19146,"nodeType":"Block","src":"1041:82:76","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19135,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1059:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1063:6:76","memberName":"sender","nodeType":"MemberAccess","src":"1059:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":19137,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19077,"src":"1073:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1059:19:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":19140,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1093:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1097:6:76","memberName":"sender","nodeType":"MemberAccess","src":"1093:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19139,"name":"AccessDenied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19103,"src":"1080:12:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":19142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1080:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":19134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1051:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":19143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1051:54:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19144,"nodeType":"ExpressionStatement","src":"1051:54:76"},{"id":19145,"nodeType":"PlaceholderStatement","src":"1115:1:76"}]},"id":19147,"name":"onlyOwner","nameLocation":"1029:9:76","nodeType":"ModifierDefinition","parameters":{"id":19133,"nodeType":"ParameterList","parameters":[],"src":"1038:2:76"},"src":"1020:103:76","virtual":false,"visibility":"internal"},{"body":{"id":19153,"nodeType":"Block","src":"1143:39:76","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19150,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4110,"src":"1153:20:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":19151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:22:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19152,"nodeType":"ExpressionStatement","src":"1153:22:76"}]},"id":19154,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":19148,"nodeType":"ParameterList","parameters":[],"src":"1140:2:76"},"returnParameters":{"id":19149,"nodeType":"ParameterList","parameters":[],"src":"1143:0:76"},"scope":19437,"src":"1129:53:76","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":19165,"nodeType":"Block","src":"1243:31:76","statements":[{"expression":{"id":19163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19161,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19077,"src":"1253:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19162,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"1261:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1253:14:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19164,"nodeType":"ExpressionStatement","src":"1253:14:76"}]},"functionSelector":"c4d66de8","id":19166,"implemented":true,"kind":"function","modifiers":[{"id":19159,"kind":"modifierInvocation","modifierName":{"id":19158,"name":"initializer","nameLocations":["1231:11:76"],"nodeType":"IdentifierPath","referencedDeclaration":3996,"src":"1231:11:76"},"nodeType":"ModifierInvocation","src":"1231:11:76"}],"name":"initialize","nameLocation":"1197:10:76","nodeType":"FunctionDefinition","parameters":{"id":19157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19156,"mutability":"mutable","name":"_owner","nameLocation":"1216:6:76","nodeType":"VariableDeclaration","scope":19166,"src":"1208:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19155,"name":"address","nodeType":"ElementaryTypeName","src":"1208:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1207:16:76"},"returnParameters":{"id":19160,"nodeType":"ParameterList","parameters":[],"src":"1243:0:76"},"scope":19437,"src":"1188:86:76","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":19208,"nodeType":"Block","src":"1406:237:76","statements":[{"assignments":[19180,19182],"declarations":[{"constant":false,"id":19180,"mutability":"mutable","name":"success","nameLocation":"1422:7:76","nodeType":"VariableDeclaration","scope":19208,"src":"1417:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19179,"name":"bool","nodeType":"ElementaryTypeName","src":"1417:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19182,"mutability":"mutable","name":"returnData","nameLocation":"1444:10:76","nodeType":"VariableDeclaration","scope":19208,"src":"1431:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19181,"name":"bytes","nodeType":"ElementaryTypeName","src":"1431:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":19189,"initialValue":{"arguments":[{"id":19187,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"1484:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":19183,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19168,"src":"1458:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1465:4:76","memberName":"call","nodeType":"MemberAccess","src":"1458:11:76","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":19186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":19185,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19170,"src":"1477:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1458:25:76","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":19188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1458:31:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1416:73:76"},{"expression":{"arguments":[{"id":19191,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"1507:7:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":19193,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19168,"src":"1532:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19194,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19170,"src":"1540:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19195,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"1547:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":19196,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19182,"src":"1553:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19192,"name":"ExecutionFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19099,"src":"1516:15:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,uint256,bytes memory,bytes memory) pure returns (error)"}},"id":19197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1516:48:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":19190,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1499:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":19198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1499:66:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19199,"nodeType":"ExpressionStatement","src":"1499:66:76"},{"eventCall":{"arguments":[{"id":19201,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19168,"src":"1589:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19202,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19170,"src":"1597:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19203,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"1604:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":19200,"name":"Executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"1580:8:76","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":19204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1580:29:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19205,"nodeType":"EmitStatement","src":"1575:34:76"},{"expression":{"id":19206,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19182,"src":"1626:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":19178,"id":19207,"nodeType":"Return","src":"1619:17:76"}]},"functionSelector":"b61d27f6","id":19209,"implemented":true,"kind":"function","modifiers":[{"id":19175,"kind":"modifierInvocation","modifierName":{"id":19174,"name":"onlyOwnerOrTicket","nameLocations":["1366:17:76"],"nodeType":"IdentifierPath","referencedDeclaration":19132,"src":"1366:17:76"},"nodeType":"ModifierInvocation","src":"1366:17:76"}],"name":"execute","nameLocation":"1289:7:76","nodeType":"FunctionDefinition","parameters":{"id":19173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19168,"mutability":"mutable","name":"target","nameLocation":"1305:6:76","nodeType":"VariableDeclaration","scope":19209,"src":"1297:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19167,"name":"address","nodeType":"ElementaryTypeName","src":"1297:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19170,"mutability":"mutable","name":"value","nameLocation":"1321:5:76","nodeType":"VariableDeclaration","scope":19209,"src":"1313:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1313:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19172,"mutability":"mutable","name":"data","nameLocation":"1343:4:76","nodeType":"VariableDeclaration","scope":19209,"src":"1328:19:76","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19171,"name":"bytes","nodeType":"ElementaryTypeName","src":"1328:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1296:52:76"},"returnParameters":{"id":19178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19209,"src":"1392:12:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19176,"name":"bytes","nodeType":"ElementaryTypeName","src":"1392:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1391:14:76"},"scope":19437,"src":"1280:363:76","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":19241,"nodeType":"Block","src":"1807:116:76","statements":[{"expression":{"id":19233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":19224,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19220,"src":"1818:7:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19225,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19222,"src":"1827:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":19226,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1817:21:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19231,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19215,"src":"1867:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":19227,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19211,"src":"1841:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1848:4:76","memberName":"call","nodeType":"MemberAccess","src":"1841:11:76","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":19230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":19229,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19213,"src":"1860:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1841:25:76","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":19232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1841:31:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"1817:55:76","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19234,"nodeType":"ExpressionStatement","src":"1817:55:76"},{"eventCall":{"arguments":[{"id":19236,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19211,"src":"1896:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19237,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19213,"src":"1904:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19238,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19215,"src":"1911:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":19235,"name":"Executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"1887:8:76","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":19239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:29:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19240,"nodeType":"EmitStatement","src":"1882:34:76"}]},"functionSelector":"45670295","id":19242,"implemented":true,"kind":"function","modifiers":[{"id":19218,"kind":"modifierInvocation","modifierName":{"id":19217,"name":"onlyOwnerOrTicket","nameLocations":["1741:17:76"],"nodeType":"IdentifierPath","referencedDeclaration":19132,"src":"1741:17:76"},"nodeType":"ModifierInvocation","src":"1741:17:76"}],"name":"executeUnsafe","nameLocation":"1658:13:76","nodeType":"FunctionDefinition","parameters":{"id":19216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19211,"mutability":"mutable","name":"target","nameLocation":"1680:6:76","nodeType":"VariableDeclaration","scope":19242,"src":"1672:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19210,"name":"address","nodeType":"ElementaryTypeName","src":"1672:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19213,"mutability":"mutable","name":"value","nameLocation":"1696:5:76","nodeType":"VariableDeclaration","scope":19242,"src":"1688:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19212,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19215,"mutability":"mutable","name":"data","nameLocation":"1718:4:76","nodeType":"VariableDeclaration","scope":19242,"src":"1703:19:76","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19214,"name":"bytes","nodeType":"ElementaryTypeName","src":"1703:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1671:52:76"},"returnParameters":{"id":19223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19220,"mutability":"mutable","name":"success","nameLocation":"1772:7:76","nodeType":"VariableDeclaration","scope":19242,"src":"1767:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19219,"name":"bool","nodeType":"ElementaryTypeName","src":"1767:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19222,"mutability":"mutable","name":"returnData","nameLocation":"1794:10:76","nodeType":"VariableDeclaration","scope":19242,"src":"1781:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19221,"name":"bytes","nodeType":"ElementaryTypeName","src":"1781:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1766:39:76"},"scope":19437,"src":"1649:274:76","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":19280,"nodeType":"Block","src":"2054:178:76","statements":[{"expression":{"id":19262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":19255,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19251,"src":"2065:7:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19256,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19253,"src":"2074:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":19257,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2064:21:76","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19260,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19246,"src":"2108:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":19258,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19244,"src":"2088:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2095:12:76","memberName":"delegatecall","nodeType":"MemberAccess","src":"2088:19:76","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":19261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2088:25:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"2064:49:76","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19263,"nodeType":"ExpressionStatement","src":"2064:49:76"},{"expression":{"arguments":[{"id":19265,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19251,"src":"2131:7:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":19267,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19244,"src":"2156:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":19268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2164:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":19269,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19246,"src":"2167:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":19270,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19253,"src":"2173:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19266,"name":"ExecutionFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19099,"src":"2140:15:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,uint256,bytes memory,bytes memory) pure returns (error)"}},"id":19271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2140:44:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":19264,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2123:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":19272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2123:62:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19273,"nodeType":"ExpressionStatement","src":"2123:62:76"},{"eventCall":{"arguments":[{"id":19275,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19244,"src":"2209:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":19276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2217:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":19277,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19246,"src":"2220:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":19274,"name":"Executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"2200:8:76","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":19278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:25:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19279,"nodeType":"EmitStatement","src":"2195:30:76"}]},"functionSelector":"6e0aacf7","id":19281,"implemented":true,"kind":"function","modifiers":[{"id":19249,"kind":"modifierInvocation","modifierName":{"id":19248,"name":"onlyOwner","nameLocations":["1997:9:76"],"nodeType":"IdentifierPath","referencedDeclaration":19147,"src":"1997:9:76"},"nodeType":"ModifierInvocation","src":"1997:9:76"}],"name":"delegatecall","nameLocation":"1938:12:76","nodeType":"FunctionDefinition","parameters":{"id":19247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19244,"mutability":"mutable","name":"target","nameLocation":"1959:6:76","nodeType":"VariableDeclaration","scope":19281,"src":"1951:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19243,"name":"address","nodeType":"ElementaryTypeName","src":"1951:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19246,"mutability":"mutable","name":"data","nameLocation":"1982:4:76","nodeType":"VariableDeclaration","scope":19281,"src":"1967:19:76","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19245,"name":"bytes","nodeType":"ElementaryTypeName","src":"1967:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1950:37:76"},"returnParameters":{"id":19254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19251,"mutability":"mutable","name":"success","nameLocation":"2020:7:76","nodeType":"VariableDeclaration","scope":19281,"src":"2015:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19250,"name":"bool","nodeType":"ElementaryTypeName","src":"2015:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19253,"mutability":"mutable","name":"returnData","nameLocation":"2042:10:76","nodeType":"VariableDeclaration","scope":19281,"src":"2029:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19252,"name":"bytes","nodeType":"ElementaryTypeName","src":"2029:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2014:39:76"},"scope":19437,"src":"1929:303:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19294,"nodeType":"Block","src":"2302:46:76","statements":[{"expression":{"id":19292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19288,"name":"oneTimeTickets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19089,"src":"2312:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":19290,"indexExpression":{"id":19289,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19283,"src":"2327:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2312:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":19291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2337:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2312:29:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19293,"nodeType":"ExpressionStatement","src":"2312:29:76"}]},"functionSelector":"c72c901a","id":19295,"implemented":true,"kind":"function","modifiers":[{"id":19286,"kind":"modifierInvocation","modifierName":{"id":19285,"name":"onlyOwner","nameLocations":["2292:9:76"],"nodeType":"IdentifierPath","referencedDeclaration":19147,"src":"2292:9:76"},"nodeType":"ModifierInvocation","src":"2292:9:76"}],"name":"createOneTimeTicket","nameLocation":"2247:19:76","nodeType":"FunctionDefinition","parameters":{"id":19284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19283,"mutability":"mutable","name":"caller","nameLocation":"2275:6:76","nodeType":"VariableDeclaration","scope":19295,"src":"2267:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19282,"name":"address","nodeType":"ElementaryTypeName","src":"2267:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2266:16:76"},"returnParameters":{"id":19287,"nodeType":"ParameterList","parameters":[],"src":"2302:0:76"},"scope":19437,"src":"2238:110:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19308,"nodeType":"Block","src":"2418:47:76","statements":[{"expression":{"id":19306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19302,"name":"oneTimeTickets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19089,"src":"2428:14:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":19304,"indexExpression":{"id":19303,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19297,"src":"2443:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2428:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":19305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2453:5:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2428:30:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19307,"nodeType":"ExpressionStatement","src":"2428:30:76"}]},"functionSelector":"7e383a75","id":19309,"implemented":true,"kind":"function","modifiers":[{"id":19300,"kind":"modifierInvocation","modifierName":{"id":19299,"name":"onlyOwner","nameLocations":["2408:9:76"],"nodeType":"IdentifierPath","referencedDeclaration":19147,"src":"2408:9:76"},"nodeType":"ModifierInvocation","src":"2408:9:76"}],"name":"revokeOneTimeTicket","nameLocation":"2363:19:76","nodeType":"FunctionDefinition","parameters":{"id":19298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19297,"mutability":"mutable","name":"caller","nameLocation":"2391:6:76","nodeType":"VariableDeclaration","scope":19309,"src":"2383:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19296,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2382:16:76"},"returnParameters":{"id":19301,"nodeType":"ParameterList","parameters":[],"src":"2418:0:76"},"scope":19437,"src":"2354:111:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19328,"nodeType":"Block","src":"2556:47:76","statements":[{"expression":{"arguments":[{"id":19324,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"2585:2:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19325,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"2589:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19321,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"2566:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":19323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2572:12:76","memberName":"forceApprove","nodeType":"MemberAccess","referencedDeclaration":4956,"src":"2566:18:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4735_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$4735_$","typeString":"function (contract IERC20,address,uint256)"}},"id":19326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2566:30:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19327,"nodeType":"ExpressionStatement","src":"2566:30:76"}]},"functionSelector":"e1f21c67","id":19329,"implemented":true,"kind":"function","modifiers":[{"id":19319,"kind":"modifierInvocation","modifierName":{"id":19318,"name":"onlyOwnerOrTicket","nameLocations":["2539:17:76"],"nodeType":"IdentifierPath","referencedDeclaration":19132,"src":"2539:17:76"},"nodeType":"ModifierInvocation","src":"2539:17:76"}],"name":"approve","nameLocation":"2480:7:76","nodeType":"FunctionDefinition","parameters":{"id":19317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19312,"mutability":"mutable","name":"token","nameLocation":"2495:5:76","nodeType":"VariableDeclaration","scope":19329,"src":"2488:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"},"typeName":{"id":19311,"nodeType":"UserDefinedTypeName","pathNode":{"id":19310,"name":"IERC20","nameLocations":["2488:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":4735,"src":"2488:6:76"},"referencedDeclaration":4735,"src":"2488:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":19314,"mutability":"mutable","name":"to","nameLocation":"2510:2:76","nodeType":"VariableDeclaration","scope":19329,"src":"2502:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19313,"name":"address","nodeType":"ElementaryTypeName","src":"2502:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19316,"mutability":"mutable","name":"amount","nameLocation":"2522:6:76","nodeType":"VariableDeclaration","scope":19329,"src":"2514:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19315,"name":"uint256","nodeType":"ElementaryTypeName","src":"2514:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2487:42:76"},"returnParameters":{"id":19320,"nodeType":"ParameterList","parameters":[],"src":"2556:0:76"},"scope":19437,"src":"2471:132:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19412,"nodeType":"Block","src":"2765:384:76","statements":[{"assignments":[19350],"declarations":[{"constant":false,"id":19350,"mutability":"mutable","name":"results","nameLocation":"2790:7:76","nodeType":"VariableDeclaration","scope":19412,"src":"2775:22:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":19348,"name":"bytes","nodeType":"ElementaryTypeName","src":"2775:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19349,"nodeType":"ArrayTypeName","src":"2775:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":19357,"initialValue":{"arguments":[{"expression":{"id":19354,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19332,"src":"2812:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":19355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2820:6:76","memberName":"length","nodeType":"MemberAccess","src":"2812:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2800:11:76","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":19351,"name":"bytes","nodeType":"ElementaryTypeName","src":"2804:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19352,"nodeType":"ArrayTypeName","src":"2804:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":19356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2800:27:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2775:52:76"},{"body":{"id":19408,"nodeType":"Block","src":"2882:237:76","statements":[{"assignments":[19370,19372],"declarations":[{"constant":false,"id":19370,"mutability":"mutable","name":"success","nameLocation":"2902:7:76","nodeType":"VariableDeclaration","scope":19408,"src":"2897:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19369,"name":"bool","nodeType":"ElementaryTypeName","src":"2897:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19372,"mutability":"mutable","name":"returnData","nameLocation":"2924:10:76","nodeType":"VariableDeclaration","scope":19408,"src":"2911:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19371,"name":"bytes","nodeType":"ElementaryTypeName","src":"2911:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":19385,"initialValue":{"arguments":[{"baseExpression":{"id":19381,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19338,"src":"2972:4:76","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":19383,"indexExpression":{"id":19382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"2977:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2972:7:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"baseExpression":{"id":19373,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19332,"src":"2938:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":19375,"indexExpression":{"id":19374,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"2946:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2938:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2949:4:76","memberName":"call","nodeType":"MemberAccess","src":"2938:15:76","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":19380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"baseExpression":{"id":19377,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19335,"src":"2961:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":19379,"indexExpression":{"id":19378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"2968:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2961:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2938:33:76","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":19384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2938:42:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2896:84:76"},{"expression":{"arguments":[{"id":19387,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19370,"src":"3002:7:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"baseExpression":{"id":19389,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19332,"src":"3027:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":19391,"indexExpression":{"id":19390,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"3035:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3027:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":19392,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19335,"src":"3039:6:76","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":19394,"indexExpression":{"id":19393,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"3046:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3039:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":19395,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19338,"src":"3050:4:76","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":19397,"indexExpression":{"id":19396,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"3055:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3050:7:76","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":19398,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19372,"src":"3059:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19388,"name":"ExecutionFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19099,"src":"3011:15:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,uint256,bytes memory,bytes memory) pure returns (error)"}},"id":19399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3011:59:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":19386,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2994:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":19400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2994:77:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19401,"nodeType":"ExpressionStatement","src":"2994:77:76"},{"expression":{"id":19406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19402,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19350,"src":"3085:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":19404,"indexExpression":{"id":19403,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"3093:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3085:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19405,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19372,"src":"3098:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3085:23:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":19407,"nodeType":"ExpressionStatement","src":"3085:23:76"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19362,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"2857:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":19363,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19332,"src":"2861:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":19364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2869:6:76","memberName":"length","nodeType":"MemberAccess","src":"2861:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2857:18:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19409,"initializationExpression":{"assignments":[19359],"declarations":[{"constant":false,"id":19359,"mutability":"mutable","name":"i","nameLocation":"2850:1:76","nodeType":"VariableDeclaration","scope":19409,"src":"2842:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19358,"name":"uint256","nodeType":"ElementaryTypeName","src":"2842:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19361,"initialValue":{"hexValue":"30","id":19360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2854:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2842:13:76"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":19367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2877:3:76","subExpression":{"id":19366,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"2877:1:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19368,"nodeType":"ExpressionStatement","src":"2877:3:76"},"nodeType":"ForStatement","src":"2837:282:76"},{"expression":{"id":19410,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19350,"src":"3135:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"functionReturnParameters":19345,"id":19411,"nodeType":"Return","src":"3128:14:76"}]},"functionSelector":"45f67ac7","id":19413,"implemented":true,"kind":"function","modifiers":[{"id":19341,"kind":"modifierInvocation","modifierName":{"id":19340,"name":"onlyOwnerOrTicket","nameLocations":["2723:17:76"],"nodeType":"IdentifierPath","referencedDeclaration":19132,"src":"2723:17:76"},"nodeType":"ModifierInvocation","src":"2723:17:76"}],"name":"multicall","nameLocation":"2618:9:76","nodeType":"FunctionDefinition","parameters":{"id":19339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19332,"mutability":"mutable","name":"targets","nameLocation":"2647:7:76","nodeType":"VariableDeclaration","scope":19413,"src":"2628:26:76","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":19330,"name":"address","nodeType":"ElementaryTypeName","src":"2628:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19331,"nodeType":"ArrayTypeName","src":"2628:9:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":19335,"mutability":"mutable","name":"values","nameLocation":"2675:6:76","nodeType":"VariableDeclaration","scope":19413,"src":"2656:25:76","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":19333,"name":"uint256","nodeType":"ElementaryTypeName","src":"2656:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19334,"nodeType":"ArrayTypeName","src":"2656:9:76","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":19338,"mutability":"mutable","name":"data","nameLocation":"2700:4:76","nodeType":"VariableDeclaration","scope":19413,"src":"2683:21:76","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":19336,"name":"bytes","nodeType":"ElementaryTypeName","src":"2683:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19337,"nodeType":"ArrayTypeName","src":"2683:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2627:78:76"},"returnParameters":{"id":19345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19413,"src":"2749:14:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":19342,"name":"bytes","nodeType":"ElementaryTypeName","src":"2749:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19343,"nodeType":"ArrayTypeName","src":"2749:7:76","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2748:16:76"},"scope":19437,"src":"2609:540:76","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":19416,"nodeType":"Block","src":"3182:2:76","statements":[]},"id":19417,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":19414,"nodeType":"ParameterList","parameters":[],"src":"3162:2:76"},"returnParameters":{"id":19415,"nodeType":"ParameterList","parameters":[],"src":"3182:0:76"},"scope":19437,"src":"3155:29:76","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[6263],"body":{"id":19435,"nodeType":"Block","src":"3337:54:76","statements":[{"expression":{"expression":{"expression":{"id":19431,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3354:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_TacSmartAccount_$19437","typeString":"contract TacSmartAccount"}},"id":19432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3359:16:76","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":19436,"src":"3354:21:76","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) pure external returns (bytes4)"}},"id":19433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3376:8:76","memberName":"selector","nodeType":"MemberAccess","src":"3354:30:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":19430,"id":19434,"nodeType":"Return","src":"3347:37:76"}]},"functionSelector":"150b7a02","id":19436,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"3199:16:76","nodeType":"FunctionDefinition","overrides":{"id":19427,"nodeType":"OverrideSpecifier","overrides":[],"src":"3311:8:76"},"parameters":{"id":19426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19436,"src":"3225:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19418,"name":"address","nodeType":"ElementaryTypeName","src":"3225:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19436,"src":"3242:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19420,"name":"address","nodeType":"ElementaryTypeName","src":"3242:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19436,"src":"3259:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19422,"name":"uint256","nodeType":"ElementaryTypeName","src":"3259:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19436,"src":"3276:14:76","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19424,"name":"bytes","nodeType":"ElementaryTypeName","src":"3276:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3215:81:76"},"returnParameters":{"id":19430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19436,"src":"3329:6:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":19428,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3329:6:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3328:8:76"},"scope":19437,"src":"3190:201:76","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":19438,"src":"388:3005:76","usedErrors":[3905,3908,4775,19099,19103],"usedEvents":[3913,19085]}],"src":"32:3361:76"},"id":76},"contracts/smart-account/interfaces/IHooks.sol":{"ast":{"absolutePath":"contracts/smart-account/interfaces/IHooks.sol","exportedSymbols":{"IHooks":[19479]},"id":19480,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":19439,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:77"},{"abstract":false,"baseContracts":[],"canonicalName":"IHooks","contractDependencies":[],"contractKind":"interface","fullyImplemented":true,"id":19479,"linearizedBaseContracts":[19479],"name":"IHooks","nameLocation":"68:6:77","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IHooks.PreHook","id":19448,"members":[{"constant":false,"id":19441,"mutability":"mutable","name":"isFromSAPerspective","nameLocation":"111:19:77","nodeType":"VariableDeclaration","scope":19448,"src":"106:24:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19440,"name":"bool","nodeType":"ElementaryTypeName","src":"106:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19443,"mutability":"mutable","name":"contractAddress","nameLocation":"148:15:77","nodeType":"VariableDeclaration","scope":19448,"src":"140:23:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19442,"name":"address","nodeType":"ElementaryTypeName","src":"140:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19445,"mutability":"mutable","name":"value","nameLocation":"181:5:77","nodeType":"VariableDeclaration","scope":19448,"src":"173:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19444,"name":"uint256","nodeType":"ElementaryTypeName","src":"173:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19447,"mutability":"mutable","name":"data","nameLocation":"202:4:77","nodeType":"VariableDeclaration","scope":19448,"src":"196:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":19446,"name":"bytes","nodeType":"ElementaryTypeName","src":"196:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"PreHook","nameLocation":"88:7:77","nodeType":"StructDefinition","scope":19479,"src":"81:132:77","visibility":"public"},{"canonicalName":"IHooks.PostHook","id":19457,"members":[{"constant":false,"id":19450,"mutability":"mutable","name":"isFromSAPerspective","nameLocation":"250:19:77","nodeType":"VariableDeclaration","scope":19457,"src":"245:24:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19449,"name":"bool","nodeType":"ElementaryTypeName","src":"245:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19452,"mutability":"mutable","name":"contractAddress","nameLocation":"287:15:77","nodeType":"VariableDeclaration","scope":19457,"src":"279:23:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19451,"name":"address","nodeType":"ElementaryTypeName","src":"279:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19454,"mutability":"mutable","name":"value","nameLocation":"320:5:77","nodeType":"VariableDeclaration","scope":19457,"src":"312:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19453,"name":"uint256","nodeType":"ElementaryTypeName","src":"312:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19456,"mutability":"mutable","name":"data","nameLocation":"341:4:77","nodeType":"VariableDeclaration","scope":19457,"src":"335:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":19455,"name":"bytes","nodeType":"ElementaryTypeName","src":"335:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"PostHook","nameLocation":"226:8:77","nodeType":"StructDefinition","scope":19479,"src":"219:133:77","visibility":"public"},{"canonicalName":"IHooks.MainCallHook","id":19466,"members":[{"constant":false,"id":19459,"mutability":"mutable","name":"isFromSAPerspective","nameLocation":"393:19:77","nodeType":"VariableDeclaration","scope":19466,"src":"388:24:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19458,"name":"bool","nodeType":"ElementaryTypeName","src":"388:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19461,"mutability":"mutable","name":"contractAddress","nameLocation":"430:15:77","nodeType":"VariableDeclaration","scope":19466,"src":"422:23:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19460,"name":"address","nodeType":"ElementaryTypeName","src":"422:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19463,"mutability":"mutable","name":"value","nameLocation":"463:5:77","nodeType":"VariableDeclaration","scope":19466,"src":"455:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19462,"name":"uint256","nodeType":"ElementaryTypeName","src":"455:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19465,"mutability":"mutable","name":"data","nameLocation":"484:4:77","nodeType":"VariableDeclaration","scope":19466,"src":"478:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":19464,"name":"bytes","nodeType":"ElementaryTypeName","src":"478:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"MainCallHook","nameLocation":"365:12:77","nodeType":"StructDefinition","scope":19479,"src":"358:137:77","visibility":"public"},{"canonicalName":"IHooks.SaHooks","id":19478,"members":[{"constant":false,"id":19470,"mutability":"mutable","name":"preHooks","nameLocation":"534:8:77","nodeType":"VariableDeclaration","scope":19478,"src":"524:18:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_storage_$dyn_storage_ptr","typeString":"struct IHooks.PreHook[]"},"typeName":{"baseType":{"id":19468,"nodeType":"UserDefinedTypeName","pathNode":{"id":19467,"name":"PreHook","nameLocations":["524:7:77"],"nodeType":"IdentifierPath","referencedDeclaration":19448,"src":"524:7:77"},"referencedDeclaration":19448,"src":"524:7:77","typeDescriptions":{"typeIdentifier":"t_struct$_PreHook_$19448_storage_ptr","typeString":"struct IHooks.PreHook"}},"id":19469,"nodeType":"ArrayTypeName","src":"524:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_storage_$dyn_storage_ptr","typeString":"struct IHooks.PreHook[]"}},"visibility":"internal"},{"constant":false,"id":19474,"mutability":"mutable","name":"postHooks","nameLocation":"563:9:77","nodeType":"VariableDeclaration","scope":19478,"src":"552:20:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_storage_$dyn_storage_ptr","typeString":"struct IHooks.PostHook[]"},"typeName":{"baseType":{"id":19472,"nodeType":"UserDefinedTypeName","pathNode":{"id":19471,"name":"PostHook","nameLocations":["552:8:77"],"nodeType":"IdentifierPath","referencedDeclaration":19457,"src":"552:8:77"},"referencedDeclaration":19457,"src":"552:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_PostHook_$19457_storage_ptr","typeString":"struct IHooks.PostHook"}},"id":19473,"nodeType":"ArrayTypeName","src":"552:10:77","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_storage_$dyn_storage_ptr","typeString":"struct IHooks.PostHook[]"}},"visibility":"internal"},{"constant":false,"id":19477,"mutability":"mutable","name":"mainCallHook","nameLocation":"595:12:77","nodeType":"VariableDeclaration","scope":19478,"src":"582:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_storage_ptr","typeString":"struct IHooks.MainCallHook"},"typeName":{"id":19476,"nodeType":"UserDefinedTypeName","pathNode":{"id":19475,"name":"MainCallHook","nameLocations":["582:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":19466,"src":"582:12:77"},"referencedDeclaration":19466,"src":"582:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_storage_ptr","typeString":"struct IHooks.MainCallHook"}},"visibility":"internal"}],"name":"SaHooks","nameLocation":"507:7:77","nodeType":"StructDefinition","scope":19479,"src":"500:114:77","visibility":"public"}],"scope":19480,"src":"58:563:77","usedErrors":[],"usedEvents":[]}],"src":"32:590:77"},"id":77},"contracts/smart-account/interfaces/ISAFactory.sol":{"ast":{"absolutePath":"contracts/smart-account/interfaces/ISAFactory.sol","exportedSymbols":{"ISAFactory":[19521],"ITacInitializable":[17543],"NFTAmount":[16007],"TokenAmount":[15999]},"id":19522,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":19481,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:78"},{"absolutePath":"contracts/interfaces/ITacInitializable.sol","file":"../../interfaces/ITacInitializable.sol","id":19483,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19522,"sourceUnit":17544,"src":"58:75:78","symbolAliases":[{"foreign":{"id":19482,"name":"ITacInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17543,"src":"67:17:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../../core/Structs.sol","id":19486,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19522,"sourceUnit":16218,"src":"135:62:78","symbolAliases":[{"foreign":{"id":19484,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"143:11:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":19485,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"156:9:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":19487,"name":"ITacInitializable","nameLocations":["222:17:78"],"nodeType":"IdentifierPath","referencedDeclaration":17543,"src":"222:17:78"},"id":19488,"nodeType":"InheritanceSpecifier","src":"222:17:78"}],"canonicalName":"ISAFactory","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":19521,"linearizedBaseContracts":[19521,17543],"name":"ISAFactory","nameLocation":"208:10:78","nodeType":"ContractDefinition","nodes":[{"functionSelector":"a66c4f50","id":19497,"implemented":false,"kind":"function","modifiers":[],"name":"getOrCreateSmartAccount","nameLocation":"255:23:78","nodeType":"FunctionDefinition","parameters":{"id":19491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19490,"mutability":"mutable","name":"tvmWallet","nameLocation":"302:9:78","nodeType":"VariableDeclaration","scope":19497,"src":"288:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19489,"name":"string","nodeType":"ElementaryTypeName","src":"288:6:78","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"278:39:78"},"returnParameters":{"id":19496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19497,"src":"336:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19492,"name":"address","nodeType":"ElementaryTypeName","src":"336:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19495,"mutability":"mutable","name":"isNewAccount","nameLocation":"350:12:78","nodeType":"VariableDeclaration","scope":19497,"src":"345:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19494,"name":"bool","nodeType":"ElementaryTypeName","src":"345:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"335:28:78"},"scope":19521,"src":"246:118:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dbe6e7f9","id":19506,"implemented":false,"kind":"function","modifiers":[],"name":"getSmartAccountForApplication","nameLocation":"379:29:78","nodeType":"FunctionDefinition","parameters":{"id":19502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19499,"mutability":"mutable","name":"tvmWallet","nameLocation":"432:9:78","nodeType":"VariableDeclaration","scope":19506,"src":"418:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19498,"name":"string","nodeType":"ElementaryTypeName","src":"418:6:78","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19501,"mutability":"mutable","name":"application","nameLocation":"459:11:78","nodeType":"VariableDeclaration","scope":19506,"src":"451:19:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19500,"name":"address","nodeType":"ElementaryTypeName","src":"451:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"408:68:78"},"returnParameters":{"id":19505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19506,"src":"500:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19503,"name":"address","nodeType":"ElementaryTypeName","src":"500:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"499:9:78"},"scope":19521,"src":"370:139:78","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70d367c3","id":19515,"implemented":false,"kind":"function","modifiers":[],"name":"predictSmartAccountAddress","nameLocation":"524:26:78","nodeType":"FunctionDefinition","parameters":{"id":19511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19508,"mutability":"mutable","name":"tvmWallet","nameLocation":"574:9:78","nodeType":"VariableDeclaration","scope":19515,"src":"560:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19507,"name":"string","nodeType":"ElementaryTypeName","src":"560:6:78","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19510,"mutability":"mutable","name":"application","nameLocation":"601:11:78","nodeType":"VariableDeclaration","scope":19515,"src":"593:19:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19509,"name":"address","nodeType":"ElementaryTypeName","src":"593:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:68:78"},"returnParameters":{"id":19514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19515,"src":"642:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19512,"name":"address","nodeType":"ElementaryTypeName","src":"642:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"641:9:78"},"scope":19521,"src":"515:136:78","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"fa81f7d9","id":19520,"implemented":false,"kind":"function","modifiers":[],"name":"updateBlueprint","nameLocation":"666:15:78","nodeType":"FunctionDefinition","parameters":{"id":19518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19517,"mutability":"mutable","name":"_newBlueprint","nameLocation":"690:13:78","nodeType":"VariableDeclaration","scope":19520,"src":"682:21:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19516,"name":"address","nodeType":"ElementaryTypeName","src":"682:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"681:23:78"},"returnParameters":{"id":19519,"nodeType":"ParameterList","parameters":[],"src":"713:0:78"},"scope":19521,"src":"657:57:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":19522,"src":"198:519:78","usedErrors":[],"usedEvents":[]}],"src":"32:686:78"},"id":78},"contracts/smart-account/interfaces/ITacSmartAccount.sol":{"ast":{"absolutePath":"contracts/smart-account/interfaces/ITacSmartAccount.sol","exportedSymbols":{"ITacSmartAccount":[19596],"NFTAmount":[16007],"TokenAmount":[15999]},"id":19597,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":19523,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:79"},{"absolutePath":"contracts/core/Structs.sol","file":"../../core/Structs.sol","id":19526,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19597,"sourceUnit":16218,"src":"58:62:79","symbolAliases":[{"foreign":{"id":19524,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"66:11:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":19525,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"79:9:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ITacSmartAccount","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":19596,"linearizedBaseContracts":[19596],"name":"ITacSmartAccount","nameLocation":"131:16:79","nodeType":"ContractDefinition","nodes":[{"functionSelector":"b61d27f6","id":19537,"implemented":false,"kind":"function","modifiers":[],"name":"execute","nameLocation":"163:7:79","nodeType":"FunctionDefinition","parameters":{"id":19533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19528,"mutability":"mutable","name":"target","nameLocation":"179:6:79","nodeType":"VariableDeclaration","scope":19537,"src":"171:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19527,"name":"address","nodeType":"ElementaryTypeName","src":"171:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19530,"mutability":"mutable","name":"value","nameLocation":"195:5:79","nodeType":"VariableDeclaration","scope":19537,"src":"187:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19529,"name":"uint256","nodeType":"ElementaryTypeName","src":"187:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19532,"mutability":"mutable","name":"data","nameLocation":"217:4:79","nodeType":"VariableDeclaration","scope":19537,"src":"202:19:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19531,"name":"bytes","nodeType":"ElementaryTypeName","src":"202:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"170:52:79"},"returnParameters":{"id":19536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19537,"src":"248:12:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19534,"name":"bytes","nodeType":"ElementaryTypeName","src":"248:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"247:14:79"},"scope":19596,"src":"154:108:79","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"45670295","id":19550,"implemented":false,"kind":"function","modifiers":[],"name":"executeUnsafe","nameLocation":"276:13:79","nodeType":"FunctionDefinition","parameters":{"id":19544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19539,"mutability":"mutable","name":"target","nameLocation":"298:6:79","nodeType":"VariableDeclaration","scope":19550,"src":"290:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19538,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19541,"mutability":"mutable","name":"value","nameLocation":"314:5:79","nodeType":"VariableDeclaration","scope":19550,"src":"306:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19540,"name":"uint256","nodeType":"ElementaryTypeName","src":"306:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19543,"mutability":"mutable","name":"data","nameLocation":"336:4:79","nodeType":"VariableDeclaration","scope":19550,"src":"321:19:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19542,"name":"bytes","nodeType":"ElementaryTypeName","src":"321:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"289:52:79"},"returnParameters":{"id":19549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19546,"mutability":"mutable","name":"success","nameLocation":"372:7:79","nodeType":"VariableDeclaration","scope":19550,"src":"367:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19545,"name":"bool","nodeType":"ElementaryTypeName","src":"367:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19548,"mutability":"mutable","name":"returnData","nameLocation":"394:10:79","nodeType":"VariableDeclaration","scope":19550,"src":"381:23:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19547,"name":"bytes","nodeType":"ElementaryTypeName","src":"381:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"366:39:79"},"scope":19596,"src":"267:139:79","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"6e0aacf7","id":19561,"implemented":false,"kind":"function","modifiers":[],"name":"delegatecall","nameLocation":"420:12:79","nodeType":"FunctionDefinition","parameters":{"id":19555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19552,"mutability":"mutable","name":"target","nameLocation":"441:6:79","nodeType":"VariableDeclaration","scope":19561,"src":"433:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19551,"name":"address","nodeType":"ElementaryTypeName","src":"433:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19554,"mutability":"mutable","name":"data","nameLocation":"464:4:79","nodeType":"VariableDeclaration","scope":19561,"src":"449:19:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19553,"name":"bytes","nodeType":"ElementaryTypeName","src":"449:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"432:37:79"},"returnParameters":{"id":19560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19557,"mutability":"mutable","name":"success","nameLocation":"492:7:79","nodeType":"VariableDeclaration","scope":19561,"src":"487:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19556,"name":"bool","nodeType":"ElementaryTypeName","src":"487:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19559,"mutability":"mutable","name":"returnData","nameLocation":"514:10:79","nodeType":"VariableDeclaration","scope":19561,"src":"501:23:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19558,"name":"bytes","nodeType":"ElementaryTypeName","src":"501:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"486:39:79"},"scope":19596,"src":"411:115:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c72c901a","id":19566,"implemented":false,"kind":"function","modifiers":[],"name":"createOneTimeTicket","nameLocation":"540:19:79","nodeType":"FunctionDefinition","parameters":{"id":19564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19563,"mutability":"mutable","name":"caller","nameLocation":"568:6:79","nodeType":"VariableDeclaration","scope":19566,"src":"560:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19562,"name":"address","nodeType":"ElementaryTypeName","src":"560:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"559:16:79"},"returnParameters":{"id":19565,"nodeType":"ParameterList","parameters":[],"src":"584:0:79"},"scope":19596,"src":"531:54:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7e383a75","id":19571,"implemented":false,"kind":"function","modifiers":[],"name":"revokeOneTimeTicket","nameLocation":"599:19:79","nodeType":"FunctionDefinition","parameters":{"id":19569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19568,"mutability":"mutable","name":"caller","nameLocation":"627:6:79","nodeType":"VariableDeclaration","scope":19571,"src":"619:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19567,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"618:16:79"},"returnParameters":{"id":19570,"nodeType":"ParameterList","parameters":[],"src":"643:0:79"},"scope":19596,"src":"590:54:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"45f67ac7","id":19586,"implemented":false,"kind":"function","modifiers":[],"name":"multicall","nameLocation":"658:9:79","nodeType":"FunctionDefinition","parameters":{"id":19581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19574,"mutability":"mutable","name":"targets","nameLocation":"687:7:79","nodeType":"VariableDeclaration","scope":19586,"src":"668:26:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":19572,"name":"address","nodeType":"ElementaryTypeName","src":"668:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19573,"nodeType":"ArrayTypeName","src":"668:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":19577,"mutability":"mutable","name":"values","nameLocation":"715:6:79","nodeType":"VariableDeclaration","scope":19586,"src":"696:25:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":19575,"name":"uint256","nodeType":"ElementaryTypeName","src":"696:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19576,"nodeType":"ArrayTypeName","src":"696:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":19580,"mutability":"mutable","name":"data","nameLocation":"740:4:79","nodeType":"VariableDeclaration","scope":19586,"src":"723:21:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":19578,"name":"bytes","nodeType":"ElementaryTypeName","src":"723:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19579,"nodeType":"ArrayTypeName","src":"723:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"667:78:79"},"returnParameters":{"id":19585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19586,"src":"771:14:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":19582,"name":"bytes","nodeType":"ElementaryTypeName","src":"771:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19583,"nodeType":"ArrayTypeName","src":"771:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"770:16:79"},"scope":19596,"src":"649:138:79","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"e1f21c67","id":19595,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"801:7:79","nodeType":"FunctionDefinition","parameters":{"id":19593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19588,"mutability":"mutable","name":"token","nameLocation":"817:5:79","nodeType":"VariableDeclaration","scope":19595,"src":"809:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19587,"name":"address","nodeType":"ElementaryTypeName","src":"809:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19590,"mutability":"mutable","name":"to","nameLocation":"832:2:79","nodeType":"VariableDeclaration","scope":19595,"src":"824:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19589,"name":"address","nodeType":"ElementaryTypeName","src":"824:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19592,"mutability":"mutable","name":"amount","nameLocation":"844:6:79","nodeType":"VariableDeclaration","scope":19595,"src":"836:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19591,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"808:43:79"},"returnParameters":{"id":19594,"nodeType":"ParameterList","parameters":[],"src":"860:0:79"},"scope":19596,"src":"792:69:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":19597,"src":"121:742:79","usedErrors":[],"usedEvents":[]}],"src":"32:832:79"},"id":79},"contracts/smart-account/libs/SaHelper.sol":{"ast":{"absolutePath":"contracts/smart-account/libs/SaHelper.sol","exportedSymbols":{"IERC20":[4735],"IHooks":[19479],"ITacSmartAccount":[19596],"NFTAmount":[16007],"SaHelper":[19875],"TokenAmount":[15999]},"id":19876,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":19598,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:80"},{"absolutePath":"contracts/smart-account/interfaces/IHooks.sol","file":"../interfaces/IHooks.sol","id":19600,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19876,"sourceUnit":19480,"src":"58:48:80","symbolAliases":[{"foreign":{"id":19599,"name":"IHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19479,"src":"66:6:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/smart-account/interfaces/ITacSmartAccount.sol","file":"../interfaces/ITacSmartAccount.sol","id":19602,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19876,"sourceUnit":19597,"src":"107:68:80","symbolAliases":[{"foreign":{"id":19601,"name":"ITacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19596,"src":"115:16:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../../core/Structs.sol","id":19605,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19876,"sourceUnit":16218,"src":"176:62:80","symbolAliases":[{"foreign":{"id":19603,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"184:11:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":19604,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"197:9:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":19607,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19876,"sourceUnit":4736,"src":"239:70:80","symbolAliases":[{"foreign":{"id":19606,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"247:6:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SaHelper","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":19875,"linearizedBaseContracts":[19875],"name":"SaHelper","nameLocation":"319:8:80","nodeType":"ContractDefinition","nodes":[{"body":{"id":19702,"nodeType":"Block","src":"433:536:80","statements":[{"assignments":[19623],"declarations":[{"constant":false,"id":19623,"mutability":"mutable","name":"preHooks","nameLocation":"467:8:80","nodeType":"VariableDeclaration","scope":19702,"src":"443:32:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook[]"},"typeName":{"baseType":{"id":19621,"nodeType":"UserDefinedTypeName","pathNode":{"id":19620,"name":"IHooks.PreHook","nameLocations":["443:6:80","450:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":19448,"src":"443:14:80"},"referencedDeclaration":19448,"src":"443:14:80","typeDescriptions":{"typeIdentifier":"t_struct$_PreHook_$19448_storage_ptr","typeString":"struct IHooks.PreHook"}},"id":19622,"nodeType":"ArrayTypeName","src":"443:16:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_storage_$dyn_storage_ptr","typeString":"struct IHooks.PreHook[]"}},"visibility":"internal"}],"id":19626,"initialValue":{"expression":{"id":19624,"name":"hooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19612,"src":"478:5:80","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}},"id":19625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"484:8:80","memberName":"preHooks","nodeType":"MemberAccess","referencedDeclaration":19470,"src":"478:14:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"443:49:80"},{"assignments":[19631],"declarations":[{"constant":false,"id":19631,"mutability":"mutable","name":"results","nameLocation":"517:7:80","nodeType":"VariableDeclaration","scope":19702,"src":"502:22:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":19629,"name":"bytes","nodeType":"ElementaryTypeName","src":"502:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19630,"nodeType":"ArrayTypeName","src":"502:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":19638,"initialValue":{"arguments":[{"expression":{"id":19635,"name":"preHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"539:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"id":19636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"548:6:80","memberName":"length","nodeType":"MemberAccess","src":"539:15:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"527:11:80","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":19632,"name":"bytes","nodeType":"ElementaryTypeName","src":"531:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19633,"nodeType":"ArrayTypeName","src":"531:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":19637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"527:28:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"502:53:80"},{"body":{"id":19698,"nodeType":"Block","src":"611:328:80","statements":[{"condition":{"expression":{"baseExpression":{"id":19650,"name":"preHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"629:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"id":19652,"indexExpression":{"id":19651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"638:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"629:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_PreHook_$19448_memory_ptr","typeString":"struct IHooks.PreHook memory"}},"id":19653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"641:19:80","memberName":"isFromSAPerspective","nodeType":"MemberAccess","referencedDeclaration":19441,"src":"629:31:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19696,"nodeType":"Block","src":"808:121:80","statements":[{"expression":{"id":19694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19677,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19631,"src":"826:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":19679,"indexExpression":{"id":19678,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"834:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"826:10:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":19681,"name":"preHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"849:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"id":19683,"indexExpression":{"id":19682,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"858:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"849:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_PreHook_$19448_memory_ptr","typeString":"struct IHooks.PreHook memory"}},"id":19684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"861:15:80","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19443,"src":"849:27:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":19685,"name":"preHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"878:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"id":19687,"indexExpression":{"id":19686,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"887:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"878:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_PreHook_$19448_memory_ptr","typeString":"struct IHooks.PreHook memory"}},"id":19688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"890:5:80","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":19445,"src":"878:17:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":19689,"name":"preHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"897:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"id":19691,"indexExpression":{"id":19690,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"906:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"897:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_PreHook_$19448_memory_ptr","typeString":"struct IHooks.PreHook memory"}},"id":19692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"909:4:80","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":19447,"src":"897:16:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19680,"name":"_selfCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19874,"src":"839:9:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes memory) returns (bytes memory)"}},"id":19693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"839:75:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"826:88:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":19695,"nodeType":"ExpressionStatement","src":"826:88:80"}]},"id":19697,"nodeType":"IfStatement","src":"625:304:80","trueBody":{"id":19676,"nodeType":"Block","src":"662:140:80","statements":[{"expression":{"id":19674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19654,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19631,"src":"680:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":19656,"indexExpression":{"id":19655,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"688:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"680:10:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":19661,"name":"preHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"722:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"id":19663,"indexExpression":{"id":19662,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"731:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"722:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_PreHook_$19448_memory_ptr","typeString":"struct IHooks.PreHook memory"}},"id":19664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"734:15:80","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19443,"src":"722:27:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":19665,"name":"preHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"751:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"id":19667,"indexExpression":{"id":19666,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"760:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"751:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_PreHook_$19448_memory_ptr","typeString":"struct IHooks.PreHook memory"}},"id":19668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"763:5:80","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":19445,"src":"751:17:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":19669,"name":"preHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"770:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"id":19671,"indexExpression":{"id":19670,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"779:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"770:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_PreHook_$19448_memory_ptr","typeString":"struct IHooks.PreHook memory"}},"id":19672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"782:4:80","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":19447,"src":"770:16:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":19658,"name":"sa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19609,"src":"710:2:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19657,"name":"ITacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19596,"src":"693:16:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITacSmartAccount_$19596_$","typeString":"type(contract ITacSmartAccount)"}},"id":19659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"693:20:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITacSmartAccount_$19596","typeString":"contract ITacSmartAccount"}},"id":19660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"714:7:80","memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":19537,"src":"693:28:80","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes memory) payable external returns (bytes memory)"}},"id":19673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"693:94:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"680:107:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":19675,"nodeType":"ExpressionStatement","src":"680:107:80"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19643,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"585:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":19644,"name":"preHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"589:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PreHook_$19448_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PreHook memory[] memory"}},"id":19645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"598:6:80","memberName":"length","nodeType":"MemberAccess","src":"589:15:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"585:19:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19699,"initializationExpression":{"assignments":[19640],"declarations":[{"constant":false,"id":19640,"mutability":"mutable","name":"i","nameLocation":"578:1:80","nodeType":"VariableDeclaration","scope":19699,"src":"570:9:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19639,"name":"uint256","nodeType":"ElementaryTypeName","src":"570:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19642,"initialValue":{"hexValue":"30","id":19641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"582:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"570:13:80"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":19648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"606:3:80","subExpression":{"id":19647,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"606:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19649,"nodeType":"ExpressionStatement","src":"606:3:80"},"nodeType":"ForStatement","src":"565:374:80"},{"expression":{"id":19700,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19631,"src":"955:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"functionReturnParameters":19617,"id":19701,"nodeType":"Return","src":"948:14:80"}]},"id":19703,"implemented":true,"kind":"function","modifiers":[],"name":"executePreHooks","nameLocation":"343:15:80","nodeType":"FunctionDefinition","parameters":{"id":19613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19609,"mutability":"mutable","name":"sa","nameLocation":"367:2:80","nodeType":"VariableDeclaration","scope":19703,"src":"359:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19608,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19612,"mutability":"mutable","name":"hooks","nameLocation":"393:5:80","nodeType":"VariableDeclaration","scope":19703,"src":"371:27:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks"},"typeName":{"id":19611,"nodeType":"UserDefinedTypeName","pathNode":{"id":19610,"name":"IHooks.SaHooks","nameLocations":["371:6:80","378:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":19478,"src":"371:14:80"},"referencedDeclaration":19478,"src":"371:14:80","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_storage_ptr","typeString":"struct IHooks.SaHooks"}},"visibility":"internal"}],"src":"358:41:80"},"returnParameters":{"id":19617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19703,"src":"417:14:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":19614,"name":"bytes","nodeType":"ElementaryTypeName","src":"417:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19615,"nodeType":"ArrayTypeName","src":"417:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"416:16:80"},"scope":19875,"src":"334:635:80","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19798,"nodeType":"Block","src":"1075:548:80","statements":[{"assignments":[19719],"declarations":[{"constant":false,"id":19719,"mutability":"mutable","name":"postHooks","nameLocation":"1110:9:80","nodeType":"VariableDeclaration","scope":19798,"src":"1085:34:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook[]"},"typeName":{"baseType":{"id":19717,"nodeType":"UserDefinedTypeName","pathNode":{"id":19716,"name":"IHooks.PostHook","nameLocations":["1085:6:80","1092:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":19457,"src":"1085:15:80"},"referencedDeclaration":19457,"src":"1085:15:80","typeDescriptions":{"typeIdentifier":"t_struct$_PostHook_$19457_storage_ptr","typeString":"struct IHooks.PostHook"}},"id":19718,"nodeType":"ArrayTypeName","src":"1085:17:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_storage_$dyn_storage_ptr","typeString":"struct IHooks.PostHook[]"}},"visibility":"internal"}],"id":19722,"initialValue":{"expression":{"id":19720,"name":"hooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19708,"src":"1122:5:80","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}},"id":19721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1128:9:80","memberName":"postHooks","nodeType":"MemberAccess","referencedDeclaration":19474,"src":"1122:15:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1085:52:80"},{"assignments":[19727],"declarations":[{"constant":false,"id":19727,"mutability":"mutable","name":"results","nameLocation":"1162:7:80","nodeType":"VariableDeclaration","scope":19798,"src":"1147:22:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":19725,"name":"bytes","nodeType":"ElementaryTypeName","src":"1147:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19726,"nodeType":"ArrayTypeName","src":"1147:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":19734,"initialValue":{"arguments":[{"expression":{"id":19731,"name":"postHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"1184:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"id":19732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1194:6:80","memberName":"length","nodeType":"MemberAccess","src":"1184:16:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1172:11:80","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":19728,"name":"bytes","nodeType":"ElementaryTypeName","src":"1176:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19729,"nodeType":"ArrayTypeName","src":"1176:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":19733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1172:29:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1147:54:80"},{"body":{"id":19794,"nodeType":"Block","src":"1258:335:80","statements":[{"condition":{"expression":{"baseExpression":{"id":19746,"name":"postHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"1276:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"id":19748,"indexExpression":{"id":19747,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1286:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1276:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_PostHook_$19457_memory_ptr","typeString":"struct IHooks.PostHook memory"}},"id":19749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1289:19:80","memberName":"isFromSAPerspective","nodeType":"MemberAccess","referencedDeclaration":19450,"src":"1276:32:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19792,"nodeType":"Block","src":"1459:124:80","statements":[{"expression":{"id":19790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19773,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19727,"src":"1477:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":19775,"indexExpression":{"id":19774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1485:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1477:10:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":19777,"name":"postHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"1500:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"id":19779,"indexExpression":{"id":19778,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1510:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1500:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_PostHook_$19457_memory_ptr","typeString":"struct IHooks.PostHook memory"}},"id":19780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1513:15:80","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19452,"src":"1500:28:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":19781,"name":"postHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"1530:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"id":19783,"indexExpression":{"id":19782,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1540:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1530:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_PostHook_$19457_memory_ptr","typeString":"struct IHooks.PostHook memory"}},"id":19784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1543:5:80","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":19454,"src":"1530:18:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":19785,"name":"postHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"1550:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"id":19787,"indexExpression":{"id":19786,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1560:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1550:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_PostHook_$19457_memory_ptr","typeString":"struct IHooks.PostHook memory"}},"id":19788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1563:4:80","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":19456,"src":"1550:17:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19776,"name":"_selfCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19874,"src":"1490:9:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes memory) returns (bytes memory)"}},"id":19789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1490:78:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1477:91:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":19791,"nodeType":"ExpressionStatement","src":"1477:91:80"}]},"id":19793,"nodeType":"IfStatement","src":"1272:311:80","trueBody":{"id":19772,"nodeType":"Block","src":"1310:143:80","statements":[{"expression":{"id":19770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19750,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19727,"src":"1328:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":19752,"indexExpression":{"id":19751,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1336:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1328:10:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":19757,"name":"postHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"1370:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"id":19759,"indexExpression":{"id":19758,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1380:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1370:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_PostHook_$19457_memory_ptr","typeString":"struct IHooks.PostHook memory"}},"id":19760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1383:15:80","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19452,"src":"1370:28:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":19761,"name":"postHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"1400:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"id":19763,"indexExpression":{"id":19762,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1410:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1400:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_PostHook_$19457_memory_ptr","typeString":"struct IHooks.PostHook memory"}},"id":19764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1413:5:80","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":19454,"src":"1400:18:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":19765,"name":"postHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"1420:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"id":19767,"indexExpression":{"id":19766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1430:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1420:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_PostHook_$19457_memory_ptr","typeString":"struct IHooks.PostHook memory"}},"id":19768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1433:4:80","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":19456,"src":"1420:17:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":19754,"name":"sa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19705,"src":"1358:2:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19753,"name":"ITacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19596,"src":"1341:16:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITacSmartAccount_$19596_$","typeString":"type(contract ITacSmartAccount)"}},"id":19755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1341:20:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITacSmartAccount_$19596","typeString":"contract ITacSmartAccount"}},"id":19756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1362:7:80","memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":19537,"src":"1341:28:80","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes memory) payable external returns (bytes memory)"}},"id":19769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1341:97:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1328:110:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":19771,"nodeType":"ExpressionStatement","src":"1328:110:80"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19739,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1231:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":19740,"name":"postHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"1235:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PostHook_$19457_memory_ptr_$dyn_memory_ptr","typeString":"struct IHooks.PostHook memory[] memory"}},"id":19741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1245:6:80","memberName":"length","nodeType":"MemberAccess","src":"1235:16:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1231:20:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19795,"initializationExpression":{"assignments":[19736],"declarations":[{"constant":false,"id":19736,"mutability":"mutable","name":"i","nameLocation":"1224:1:80","nodeType":"VariableDeclaration","scope":19795,"src":"1216:9:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19735,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19738,"initialValue":{"hexValue":"30","id":19737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1228:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1216:13:80"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":19744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1253:3:80","subExpression":{"id":19743,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"1253:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19745,"nodeType":"ExpressionStatement","src":"1253:3:80"},"nodeType":"ForStatement","src":"1211:382:80"},{"expression":{"id":19796,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19727,"src":"1609:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"functionReturnParameters":19713,"id":19797,"nodeType":"Return","src":"1602:14:80"}]},"id":19799,"implemented":true,"kind":"function","modifiers":[],"name":"executePostHooks","nameLocation":"984:16:80","nodeType":"FunctionDefinition","parameters":{"id":19709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19705,"mutability":"mutable","name":"sa","nameLocation":"1009:2:80","nodeType":"VariableDeclaration","scope":19799,"src":"1001:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19704,"name":"address","nodeType":"ElementaryTypeName","src":"1001:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19708,"mutability":"mutable","name":"hooks","nameLocation":"1035:5:80","nodeType":"VariableDeclaration","scope":19799,"src":"1013:27:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks"},"typeName":{"id":19707,"nodeType":"UserDefinedTypeName","pathNode":{"id":19706,"name":"IHooks.SaHooks","nameLocations":["1013:6:80","1020:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":19478,"src":"1013:14:80"},"referencedDeclaration":19478,"src":"1013:14:80","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_storage_ptr","typeString":"struct IHooks.SaHooks"}},"visibility":"internal"}],"src":"1000:41:80"},"returnParameters":{"id":19713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19799,"src":"1059:14:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":19710,"name":"bytes","nodeType":"ElementaryTypeName","src":"1059:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":19711,"nodeType":"ArrayTypeName","src":"1059:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1058:16:80"},"scope":19875,"src":"975:648:80","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19843,"nodeType":"Block","src":"1726:369:80","statements":[{"assignments":[19813],"declarations":[{"constant":false,"id":19813,"mutability":"mutable","name":"mainCallHook","nameLocation":"1763:12:80","nodeType":"VariableDeclaration","scope":19843,"src":"1736:39:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_memory_ptr","typeString":"struct IHooks.MainCallHook"},"typeName":{"id":19812,"nodeType":"UserDefinedTypeName","pathNode":{"id":19811,"name":"IHooks.MainCallHook","nameLocations":["1736:6:80","1743:12:80"],"nodeType":"IdentifierPath","referencedDeclaration":19466,"src":"1736:19:80"},"referencedDeclaration":19466,"src":"1736:19:80","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_storage_ptr","typeString":"struct IHooks.MainCallHook"}},"visibility":"internal"}],"id":19816,"initialValue":{"expression":{"id":19814,"name":"hooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19804,"src":"1778:5:80","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}},"id":19815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1784:12:80","memberName":"mainCallHook","nodeType":"MemberAccess","referencedDeclaration":19477,"src":"1778:18:80","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_memory_ptr","typeString":"struct IHooks.MainCallHook memory"}},"nodeType":"VariableDeclarationStatement","src":"1736:60:80"},{"condition":{"expression":{"id":19817,"name":"mainCallHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"1810:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_memory_ptr","typeString":"struct IHooks.MainCallHook memory"}},"id":19818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1823:19:80","memberName":"isFromSAPerspective","nodeType":"MemberAccess","referencedDeclaration":19459,"src":"1810:32:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19841,"nodeType":"Block","src":"1979:110:80","statements":[{"expression":{"arguments":[{"expression":{"id":19833,"name":"mainCallHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"2010:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_memory_ptr","typeString":"struct IHooks.MainCallHook memory"}},"id":19834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2023:15:80","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19461,"src":"2010:28:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":19835,"name":"mainCallHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"2040:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_memory_ptr","typeString":"struct IHooks.MainCallHook memory"}},"id":19836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2053:5:80","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":19463,"src":"2040:18:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":19837,"name":"mainCallHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"2060:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_memory_ptr","typeString":"struct IHooks.MainCallHook memory"}},"id":19838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2073:4:80","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":19465,"src":"2060:17:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19832,"name":"_selfCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19874,"src":"2000:9:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes memory) returns (bytes memory)"}},"id":19839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2000:78:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":19808,"id":19840,"nodeType":"Return","src":"1993:85:80"}]},"id":19842,"nodeType":"IfStatement","src":"1806:283:80","trueBody":{"id":19831,"nodeType":"Block","src":"1844:129:80","statements":[{"expression":{"arguments":[{"expression":{"id":19823,"name":"mainCallHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"1894:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_memory_ptr","typeString":"struct IHooks.MainCallHook memory"}},"id":19824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1907:15:80","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19461,"src":"1894:28:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":19825,"name":"mainCallHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"1924:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_memory_ptr","typeString":"struct IHooks.MainCallHook memory"}},"id":19826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1937:5:80","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":19463,"src":"1924:18:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":19827,"name":"mainCallHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"1944:12:80","typeDescriptions":{"typeIdentifier":"t_struct$_MainCallHook_$19466_memory_ptr","typeString":"struct IHooks.MainCallHook memory"}},"id":19828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1957:4:80","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":19465,"src":"1944:17:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":19820,"name":"sa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19801,"src":"1882:2:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19819,"name":"ITacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19596,"src":"1865:16:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITacSmartAccount_$19596_$","typeString":"type(contract ITacSmartAccount)"}},"id":19821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1865:20:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITacSmartAccount_$19596","typeString":"contract ITacSmartAccount"}},"id":19822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1886:7:80","memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":19537,"src":"1865:28:80","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes memory) payable external returns (bytes memory)"}},"id":19829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1865:97:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":19808,"id":19830,"nodeType":"Return","src":"1858:104:80"}]}}]},"id":19844,"implemented":true,"kind":"function","modifiers":[],"name":"executeMainCall","nameLocation":"1638:15:80","nodeType":"FunctionDefinition","parameters":{"id":19805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19801,"mutability":"mutable","name":"sa","nameLocation":"1662:2:80","nodeType":"VariableDeclaration","scope":19844,"src":"1654:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19800,"name":"address","nodeType":"ElementaryTypeName","src":"1654:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19804,"mutability":"mutable","name":"hooks","nameLocation":"1688:5:80","nodeType":"VariableDeclaration","scope":19844,"src":"1666:27:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks"},"typeName":{"id":19803,"nodeType":"UserDefinedTypeName","pathNode":{"id":19802,"name":"IHooks.SaHooks","nameLocations":["1666:6:80","1673:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":19478,"src":"1666:14:80"},"referencedDeclaration":19478,"src":"1666:14:80","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_storage_ptr","typeString":"struct IHooks.SaHooks"}},"visibility":"internal"}],"src":"1653:41:80"},"returnParameters":{"id":19808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19844,"src":"1712:12:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19806,"name":"bytes","nodeType":"ElementaryTypeName","src":"1712:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1711:14:80"},"scope":19875,"src":"1629:466:80","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19873,"nodeType":"Block","src":"2197:159:80","statements":[{"assignments":[19856,19858],"declarations":[{"constant":false,"id":19856,"mutability":"mutable","name":"success","nameLocation":"2213:7:80","nodeType":"VariableDeclaration","scope":19873,"src":"2208:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19855,"name":"bool","nodeType":"ElementaryTypeName","src":"2208:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19858,"mutability":"mutable","name":"returnData","nameLocation":"2235:10:80","nodeType":"VariableDeclaration","scope":19873,"src":"2222:23:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19857,"name":"bytes","nodeType":"ElementaryTypeName","src":"2222:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":19865,"initialValue":{"arguments":[{"id":19863,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19850,"src":"2271:4:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":19859,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19846,"src":"2249:2:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2252:4:80","memberName":"call","nodeType":"MemberAccess","src":"2249:7:80","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":19862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":19861,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19848,"src":"2264:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2249:21:80","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":19864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2249:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2207:69:80"},{"expression":{"arguments":[{"id":19867,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19856,"src":"2294:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53656c662063616c6c206661696c6564","id":19868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2303:18:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_a07439f902f1bd470ce3997f1765e8144dca2c4ced2587f5d56d513a4a4bc0db","typeString":"literal_string \"Self call failed\""},"value":"Self call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a07439f902f1bd470ce3997f1765e8144dca2c4ced2587f5d56d513a4a4bc0db","typeString":"literal_string \"Self call failed\""}],"id":19866,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2286:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2286:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19870,"nodeType":"ExpressionStatement","src":"2286:36:80"},{"expression":{"id":19871,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"2339:10:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":19854,"id":19872,"nodeType":"Return","src":"2332:17:80"}]},"id":19874,"implemented":true,"kind":"function","modifiers":[],"name":"_selfCall","nameLocation":"2110:9:80","nodeType":"FunctionDefinition","parameters":{"id":19851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19846,"mutability":"mutable","name":"to","nameLocation":"2128:2:80","nodeType":"VariableDeclaration","scope":19874,"src":"2120:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19845,"name":"address","nodeType":"ElementaryTypeName","src":"2120:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19848,"mutability":"mutable","name":"value","nameLocation":"2140:5:80","nodeType":"VariableDeclaration","scope":19874,"src":"2132:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19847,"name":"uint256","nodeType":"ElementaryTypeName","src":"2132:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19850,"mutability":"mutable","name":"data","nameLocation":"2160:4:80","nodeType":"VariableDeclaration","scope":19874,"src":"2147:17:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19849,"name":"bytes","nodeType":"ElementaryTypeName","src":"2147:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2119:46:80"},"returnParameters":{"id":19854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19874,"src":"2183:12:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19852,"name":"bytes","nodeType":"ElementaryTypeName","src":"2183:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2182:14:80"},"scope":19875,"src":"2101:255:80","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":19876,"src":"311:2047:80","usedErrors":[],"usedEvents":[]}],"src":"32:2327:80"},"id":80},"contracts/test/MerkleTreeUtils.sol":{"ast":{"absolutePath":"contracts/test/MerkleTreeUtils.sol","exportedSymbols":{"IMerkleTreeUtils":[17447],"InMessageV1":[16055],"MerkleProof":[8457],"MerkleTreeUtils":[19928]},"id":19929,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":19877,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:81"},{"absolutePath":"contracts/interfaces/IMerkleTreeUtils.sol","file":"../interfaces/IMerkleTreeUtils.sol","id":19879,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19929,"sourceUnit":17448,"src":"58:70:81","symbolAliases":[{"foreign":{"id":19878,"name":"IMerkleTreeUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17447,"src":"67:16:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","file":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","id":19881,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19929,"sourceUnit":8458,"src":"129:89:81","symbolAliases":[{"foreign":{"id":19880,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8457,"src":"138:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":19883,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19929,"sourceUnit":16218,"src":"220:50:81","symbolAliases":[{"foreign":{"id":19882,"name":"InMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16055,"src":"229:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":19885,"name":"IMerkleTreeUtils","nameLocations":["381:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":17447,"src":"381:16:81"},"id":19886,"nodeType":"InheritanceSpecifier","src":"381:16:81"}],"canonicalName":"MerkleTreeUtils","contractDependencies":[],"contractKind":"contract","documentation":{"id":19884,"nodeType":"StructuredDocumentation","src":"273:79:81","text":" @title MerkleTreeUtils\n @dev A contract testing merkle tree utils."},"fullyImplemented":true,"id":19928,"linearizedBaseContracts":[19928,17447],"name":"MerkleTreeUtils","nameLocation":"362:15:81","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[17435],"body":{"id":19908,"nodeType":"Block","src":"581:79:81","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":19902,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19890,"src":"642:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_calldata_ptr","typeString":"struct InMessageV1 calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InMessageV1_$16055_calldata_ptr","typeString":"struct InMessageV1 calldata"}],"expression":{"id":19900,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"631:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"635:6:81","memberName":"encode","nodeType":"MemberAccess","src":"631:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"631:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19899,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"621:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"621:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":19897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"608:5:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":19896,"name":"bytes","nodeType":"ElementaryTypeName","src":"608:5:81","typeDescriptions":{}}},"id":19898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"614:6:81","memberName":"concat","nodeType":"MemberAccess","src":"608:12:81","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"608:44:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19895,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"598:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"598:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":19894,"id":19907,"nodeType":"Return","src":"591:62:81"}]},"documentation":{"id":19887,"nodeType":"StructuredDocumentation","src":"404:85:81","text":" @dev Calculates message v1 hash.\n @param message Message v1."},"functionSelector":"58f5b645","id":19909,"implemented":true,"kind":"function","modifiers":[],"name":"hashInMessageV1","nameLocation":"503:15:81","nodeType":"FunctionDefinition","parameters":{"id":19891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19890,"mutability":"mutable","name":"message","nameLocation":"540:7:81","nodeType":"VariableDeclaration","scope":19909,"src":"519:28:81","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_calldata_ptr","typeString":"struct InMessageV1"},"typeName":{"id":19889,"nodeType":"UserDefinedTypeName","pathNode":{"id":19888,"name":"InMessageV1","nameLocations":["519:11:81"],"nodeType":"IdentifierPath","referencedDeclaration":16055,"src":"519:11:81"},"referencedDeclaration":16055,"src":"519:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_InMessageV1_$16055_storage_ptr","typeString":"struct InMessageV1"}},"visibility":"internal"}],"src":"518:30:81"},"returnParameters":{"id":19894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19893,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19909,"src":"572:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"572:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"571:9:81"},"scope":19928,"src":"494:166:81","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[17446],"body":{"id":19926,"nodeType":"Block","src":"970:81:81","statements":[{"expression":{"arguments":[{"id":19922,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19915,"src":"1020:11:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":19923,"name":"objectHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19912,"src":"1033:10:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":19920,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8457,"src":"987:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$8457_$","typeString":"type(library MerkleProof)"}},"id":19921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"999:20:81","memberName":"processProofCalldata","nodeType":"MemberAccess","referencedDeclaration":7598,"src":"987:32:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bytes32) pure returns (bytes32)"}},"id":19924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"987:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":19919,"id":19925,"nodeType":"Return","src":"980:64:81"}]},"documentation":{"id":19910,"nodeType":"StructuredDocumentation","src":"666:189:81","text":" @dev Function to calculate the Merkle root from the message hash and proof.\n @param objectHash Leaf object hash to validate.\n @param merkleProof Merkle proof."},"functionSelector":"9507c260","id":19927,"implemented":true,"kind":"function","modifiers":[],"name":"checkMerkleProof","nameLocation":"869:16:81","nodeType":"FunctionDefinition","parameters":{"id":19916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19912,"mutability":"mutable","name":"objectHash","nameLocation":"894:10:81","nodeType":"VariableDeclaration","scope":19927,"src":"886:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19911,"name":"bytes32","nodeType":"ElementaryTypeName","src":"886:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19915,"mutability":"mutable","name":"merkleProof","nameLocation":"925:11:81","nodeType":"VariableDeclaration","scope":19927,"src":"906:30:81","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":19913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"906:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19914,"nodeType":"ArrayTypeName","src":"906:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"885:52:81"},"returnParameters":{"id":19919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19927,"src":"961:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"961:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"960:9:81"},"scope":19928,"src":"860:191:81","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":19929,"src":"353:700:81","usedErrors":[],"usedEvents":[]}],"src":"32:1022:81"},"id":81},"contracts/test/MockBluePrint.sol":{"ast":{"absolutePath":"contracts/test/MockBluePrint.sol","exportedSymbols":{"IERC20":[4735],"Initializable":[4142],"MockBluePrint":[20289],"TransferHelper":[12168]},"id":20290,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":19930,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"32:23:82"},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":19932,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20290,"sourceUnit":4143,"src":"57:84:82","symbolAliases":[{"foreign":{"id":19931,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4142,"src":"65:13:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":19934,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20290,"sourceUnit":4736,"src":"142:70:82","symbolAliases":[{"foreign":{"id":19933,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"150:6:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@uniswap/lib/contracts/libraries/TransferHelper.sol","file":"@uniswap/lib/contracts/libraries/TransferHelper.sol","id":19936,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20290,"sourceUnit":12169,"src":"213:83:82","symbolAliases":[{"foreign":{"id":19935,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12168,"src":"221:14:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":19937,"name":"Initializable","nameLocations":["325:13:82"],"nodeType":"IdentifierPath","referencedDeclaration":4142,"src":"325:13:82"},"id":19938,"nodeType":"InheritanceSpecifier","src":"325:13:82"}],"canonicalName":"MockBluePrint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":20289,"linearizedBaseContracts":[20289,4142],"name":"MockBluePrint","nameLocation":"308:13:82","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"8da5cb5b","id":19940,"mutability":"mutable","name":"owner","nameLocation":"360:5:82","nodeType":"VariableDeclaration","scope":20289,"src":"345:20:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19939,"name":"address","nodeType":"ElementaryTypeName","src":"345:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"eventSelector":"caf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f","id":19948,"name":"Executed","nameLocation":"378:8:82","nodeType":"EventDefinition","parameters":{"id":19947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19942,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"403:6:82","nodeType":"VariableDeclaration","scope":19948,"src":"387:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19941,"name":"address","nodeType":"ElementaryTypeName","src":"387:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19944,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"419:5:82","nodeType":"VariableDeclaration","scope":19948,"src":"411:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19943,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19946,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"432:4:82","nodeType":"VariableDeclaration","scope":19948,"src":"426:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19945,"name":"bytes","nodeType":"ElementaryTypeName","src":"426:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"386:51:82"},"src":"372:66:82"},{"constant":false,"functionSelector":"dc40af1f","id":19952,"mutability":"mutable","name":"oneTimeTickets","nameLocation":"490:14:82","nodeType":"VariableDeclaration","scope":20289,"src":"444:60:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":19951,"keyName":"caller","keyNameLocation":"460:6:82","keyType":{"id":19949,"name":"address","nodeType":"ElementaryTypeName","src":"452:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"444:38:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"ticket","valueNameLocation":"475:6:82","valueType":{"id":19950,"name":"bool","nodeType":"ElementaryTypeName","src":"470:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"errorSelector":"1c5eb6d4","id":19962,"name":"ExecutionFailed","nameLocation":"517:15:82","nodeType":"ErrorDefinition","parameters":{"id":19961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19954,"mutability":"mutable","name":"target","nameLocation":"541:6:82","nodeType":"VariableDeclaration","scope":19962,"src":"533:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19953,"name":"address","nodeType":"ElementaryTypeName","src":"533:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19956,"mutability":"mutable","name":"value","nameLocation":"557:5:82","nodeType":"VariableDeclaration","scope":19962,"src":"549:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19955,"name":"uint256","nodeType":"ElementaryTypeName","src":"549:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19958,"mutability":"mutable","name":"data","nameLocation":"570:4:82","nodeType":"VariableDeclaration","scope":19962,"src":"564:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19957,"name":"bytes","nodeType":"ElementaryTypeName","src":"564:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":19960,"mutability":"mutable","name":"returnData","nameLocation":"582:10:82","nodeType":"VariableDeclaration","scope":19962,"src":"576:16:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19959,"name":"bytes","nodeType":"ElementaryTypeName","src":"576:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"532:61:82"},"src":"511:83:82"},{"errorSelector":"0504a20d","id":19966,"name":"AccessDenied","nameLocation":"605:12:82","nodeType":"ErrorDefinition","parameters":{"id":19965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19964,"mutability":"mutable","name":"caller","nameLocation":"626:6:82","nodeType":"VariableDeclaration","scope":19966,"src":"618:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19963,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"617:16:82"},"src":"599:35:82"},{"body":{"id":19994,"nodeType":"Block","src":"669:203:82","statements":[{"condition":{"baseExpression":{"id":19968,"name":"oneTimeTickets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19952,"src":"683:14:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":19971,"indexExpression":{"expression":{"id":19969,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"698:3:82","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"702:6:82","memberName":"sender","nodeType":"MemberAccess","src":"698:10:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"683:26:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19991,"nodeType":"Block","src":"776:79:82","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19981,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"798:3:82","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"802:6:82","memberName":"sender","nodeType":"MemberAccess","src":"798:10:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":19983,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19940,"src":"812:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"798:19:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":19986,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"832:3:82","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"836:6:82","memberName":"sender","nodeType":"MemberAccess","src":"832:10:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19985,"name":"AccessDenied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19966,"src":"819:12:82","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":19988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"819:24:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":19980,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"790:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":19989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"790:54:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19990,"nodeType":"ExpressionStatement","src":"790:54:82"}]},"id":19992,"nodeType":"IfStatement","src":"679:176:82","trueBody":{"id":19979,"nodeType":"Block","src":"711:59:82","statements":[{"expression":{"id":19977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19972,"name":"oneTimeTickets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19952,"src":"725:14:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":19975,"indexExpression":{"expression":{"id":19973,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"740:3:82","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"744:6:82","memberName":"sender","nodeType":"MemberAccess","src":"740:10:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"725:26:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":19976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"754:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"725:34:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19978,"nodeType":"ExpressionStatement","src":"725:34:82"}]}},{"id":19993,"nodeType":"PlaceholderStatement","src":"864:1:82"}]},"id":19995,"name":"onlyOwnerOrTicket","nameLocation":"649:17:82","nodeType":"ModifierDefinition","parameters":{"id":19967,"nodeType":"ParameterList","parameters":[],"src":"666:2:82"},"src":"640:232:82","virtual":false,"visibility":"internal"},{"body":{"id":20009,"nodeType":"Block","src":"899:82:82","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19998,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"917:3:82","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"921:6:82","memberName":"sender","nodeType":"MemberAccess","src":"917:10:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":20000,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19940,"src":"931:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"917:19:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":20003,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"951:3:82","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"955:6:82","memberName":"sender","nodeType":"MemberAccess","src":"951:10:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20002,"name":"AccessDenied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19966,"src":"938:12:82","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":20005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"938:24:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":19997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"909:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":20006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"909:54:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20007,"nodeType":"ExpressionStatement","src":"909:54:82"},{"id":20008,"nodeType":"PlaceholderStatement","src":"973:1:82"}]},"id":20010,"name":"onlyOwner","nameLocation":"887:9:82","nodeType":"ModifierDefinition","parameters":{"id":19996,"nodeType":"ParameterList","parameters":[],"src":"896:2:82"},"src":"878:103:82","virtual":false,"visibility":"internal"},{"body":{"id":20016,"nodeType":"Block","src":"1001:39:82","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":20013,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4110,"src":"1011:20:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":20014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20015,"nodeType":"ExpressionStatement","src":"1011:22:82"}]},"id":20017,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":20011,"nodeType":"ParameterList","parameters":[],"src":"998:2:82"},"returnParameters":{"id":20012,"nodeType":"ParameterList","parameters":[],"src":"1001:0:82"},"scope":20289,"src":"987:53:82","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":20028,"nodeType":"Block","src":"1101:31:82","statements":[{"expression":{"id":20026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20024,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19940,"src":"1111:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20025,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"1119:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1111:14:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20027,"nodeType":"ExpressionStatement","src":"1111:14:82"}]},"functionSelector":"c4d66de8","id":20029,"implemented":true,"kind":"function","modifiers":[{"id":20022,"kind":"modifierInvocation","modifierName":{"id":20021,"name":"initializer","nameLocations":["1089:11:82"],"nodeType":"IdentifierPath","referencedDeclaration":3996,"src":"1089:11:82"},"nodeType":"ModifierInvocation","src":"1089:11:82"}],"name":"initialize","nameLocation":"1055:10:82","nodeType":"FunctionDefinition","parameters":{"id":20020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20019,"mutability":"mutable","name":"_owner","nameLocation":"1074:6:82","nodeType":"VariableDeclaration","scope":20029,"src":"1066:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20018,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1065:16:82"},"returnParameters":{"id":20023,"nodeType":"ParameterList","parameters":[],"src":"1101:0:82"},"scope":20289,"src":"1046:86:82","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":20071,"nodeType":"Block","src":"1264:237:82","statements":[{"assignments":[20043,20045],"declarations":[{"constant":false,"id":20043,"mutability":"mutable","name":"success","nameLocation":"1280:7:82","nodeType":"VariableDeclaration","scope":20071,"src":"1275:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20042,"name":"bool","nodeType":"ElementaryTypeName","src":"1275:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20045,"mutability":"mutable","name":"returnData","nameLocation":"1302:10:82","nodeType":"VariableDeclaration","scope":20071,"src":"1289:23:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20044,"name":"bytes","nodeType":"ElementaryTypeName","src":"1289:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":20052,"initialValue":{"arguments":[{"id":20050,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20035,"src":"1342:4:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":20046,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"1316:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1323:4:82","memberName":"call","nodeType":"MemberAccess","src":"1316:11:82","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":20049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":20048,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20033,"src":"1335:5:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1316:25:82","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":20051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1316:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1274:73:82"},{"expression":{"arguments":[{"id":20054,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20043,"src":"1365:7:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":20056,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"1390:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20057,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20033,"src":"1398:5:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20058,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20035,"src":"1405:4:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":20059,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20045,"src":"1411:10:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20055,"name":"ExecutionFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19962,"src":"1374:15:82","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,uint256,bytes memory,bytes memory) pure returns (error)"}},"id":20060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1374:48:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":20053,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1357:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":20061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:66:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20062,"nodeType":"ExpressionStatement","src":"1357:66:82"},{"eventCall":{"arguments":[{"id":20064,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"1447:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20033,"src":"1455:5:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20066,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20035,"src":"1462:4:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":20063,"name":"Executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19948,"src":"1438:8:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":20067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1438:29:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20068,"nodeType":"EmitStatement","src":"1433:34:82"},{"expression":{"id":20069,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20045,"src":"1484:10:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":20041,"id":20070,"nodeType":"Return","src":"1477:17:82"}]},"functionSelector":"b61d27f6","id":20072,"implemented":true,"kind":"function","modifiers":[{"id":20038,"kind":"modifierInvocation","modifierName":{"id":20037,"name":"onlyOwnerOrTicket","nameLocations":["1224:17:82"],"nodeType":"IdentifierPath","referencedDeclaration":19995,"src":"1224:17:82"},"nodeType":"ModifierInvocation","src":"1224:17:82"}],"name":"execute","nameLocation":"1147:7:82","nodeType":"FunctionDefinition","parameters":{"id":20036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20031,"mutability":"mutable","name":"target","nameLocation":"1163:6:82","nodeType":"VariableDeclaration","scope":20072,"src":"1155:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20030,"name":"address","nodeType":"ElementaryTypeName","src":"1155:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20033,"mutability":"mutable","name":"value","nameLocation":"1179:5:82","nodeType":"VariableDeclaration","scope":20072,"src":"1171:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1171:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20035,"mutability":"mutable","name":"data","nameLocation":"1201:4:82","nodeType":"VariableDeclaration","scope":20072,"src":"1186:19:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20034,"name":"bytes","nodeType":"ElementaryTypeName","src":"1186:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1154:52:82"},"returnParameters":{"id":20041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20072,"src":"1250:12:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20039,"name":"bytes","nodeType":"ElementaryTypeName","src":"1250:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1249:14:82"},"scope":20289,"src":"1138:363:82","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":20104,"nodeType":"Block","src":"1665:116:82","statements":[{"expression":{"id":20096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":20087,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20083,"src":"1676:7:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20088,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20085,"src":"1685:10:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":20089,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1675:21:82","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20094,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20078,"src":"1725:4:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":20090,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20074,"src":"1699:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1706:4:82","memberName":"call","nodeType":"MemberAccess","src":"1699:11:82","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":20093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":20092,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20076,"src":"1718:5:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1699:25:82","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":20095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1699:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"1675:55:82","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20097,"nodeType":"ExpressionStatement","src":"1675:55:82"},{"eventCall":{"arguments":[{"id":20099,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20074,"src":"1754:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20100,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20076,"src":"1762:5:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20101,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20078,"src":"1769:4:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":20098,"name":"Executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19948,"src":"1745:8:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":20102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1745:29:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20103,"nodeType":"EmitStatement","src":"1740:34:82"}]},"functionSelector":"45670295","id":20105,"implemented":true,"kind":"function","modifiers":[{"id":20081,"kind":"modifierInvocation","modifierName":{"id":20080,"name":"onlyOwnerOrTicket","nameLocations":["1599:17:82"],"nodeType":"IdentifierPath","referencedDeclaration":19995,"src":"1599:17:82"},"nodeType":"ModifierInvocation","src":"1599:17:82"}],"name":"executeUnsafe","nameLocation":"1516:13:82","nodeType":"FunctionDefinition","parameters":{"id":20079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20074,"mutability":"mutable","name":"target","nameLocation":"1538:6:82","nodeType":"VariableDeclaration","scope":20105,"src":"1530:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20073,"name":"address","nodeType":"ElementaryTypeName","src":"1530:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20076,"mutability":"mutable","name":"value","nameLocation":"1554:5:82","nodeType":"VariableDeclaration","scope":20105,"src":"1546:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20075,"name":"uint256","nodeType":"ElementaryTypeName","src":"1546:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20078,"mutability":"mutable","name":"data","nameLocation":"1576:4:82","nodeType":"VariableDeclaration","scope":20105,"src":"1561:19:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20077,"name":"bytes","nodeType":"ElementaryTypeName","src":"1561:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1529:52:82"},"returnParameters":{"id":20086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20083,"mutability":"mutable","name":"success","nameLocation":"1630:7:82","nodeType":"VariableDeclaration","scope":20105,"src":"1625:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20082,"name":"bool","nodeType":"ElementaryTypeName","src":"1625:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20085,"mutability":"mutable","name":"returnData","nameLocation":"1652:10:82","nodeType":"VariableDeclaration","scope":20105,"src":"1639:23:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20084,"name":"bytes","nodeType":"ElementaryTypeName","src":"1639:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1624:39:82"},"scope":20289,"src":"1507:274:82","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":20143,"nodeType":"Block","src":"1912:178:82","statements":[{"expression":{"id":20125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":20118,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20114,"src":"1923:7:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20119,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20116,"src":"1932:10:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":20120,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1922:21:82","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20123,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20109,"src":"1966:4:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":20121,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20107,"src":"1946:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1953:12:82","memberName":"delegatecall","nodeType":"MemberAccess","src":"1946:19:82","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":20124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1946:25:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"1922:49:82","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20126,"nodeType":"ExpressionStatement","src":"1922:49:82"},{"expression":{"arguments":[{"id":20128,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20114,"src":"1989:7:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":20130,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20107,"src":"2014:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":20131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2022:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":20132,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20109,"src":"2025:4:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":20133,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20116,"src":"2031:10:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20129,"name":"ExecutionFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19962,"src":"1998:15:82","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,uint256,bytes memory,bytes memory) pure returns (error)"}},"id":20134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:44:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":20127,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1981:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":20135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1981:62:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20136,"nodeType":"ExpressionStatement","src":"1981:62:82"},{"eventCall":{"arguments":[{"id":20138,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20107,"src":"2067:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":20139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2075:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":20140,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20109,"src":"2078:4:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":20137,"name":"Executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19948,"src":"2058:8:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":20141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2058:25:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20142,"nodeType":"EmitStatement","src":"2053:30:82"}]},"functionSelector":"6e0aacf7","id":20144,"implemented":true,"kind":"function","modifiers":[{"id":20112,"kind":"modifierInvocation","modifierName":{"id":20111,"name":"onlyOwner","nameLocations":["1855:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":20010,"src":"1855:9:82"},"nodeType":"ModifierInvocation","src":"1855:9:82"}],"name":"delegatecall","nameLocation":"1796:12:82","nodeType":"FunctionDefinition","parameters":{"id":20110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20107,"mutability":"mutable","name":"target","nameLocation":"1817:6:82","nodeType":"VariableDeclaration","scope":20144,"src":"1809:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20106,"name":"address","nodeType":"ElementaryTypeName","src":"1809:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20109,"mutability":"mutable","name":"data","nameLocation":"1840:4:82","nodeType":"VariableDeclaration","scope":20144,"src":"1825:19:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20108,"name":"bytes","nodeType":"ElementaryTypeName","src":"1825:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1808:37:82"},"returnParameters":{"id":20117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20114,"mutability":"mutable","name":"success","nameLocation":"1878:7:82","nodeType":"VariableDeclaration","scope":20144,"src":"1873:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20113,"name":"bool","nodeType":"ElementaryTypeName","src":"1873:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20116,"mutability":"mutable","name":"returnData","nameLocation":"1900:10:82","nodeType":"VariableDeclaration","scope":20144,"src":"1887:23:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20115,"name":"bytes","nodeType":"ElementaryTypeName","src":"1887:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1872:39:82"},"scope":20289,"src":"1787:303:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20157,"nodeType":"Block","src":"2160:46:82","statements":[{"expression":{"id":20155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20151,"name":"oneTimeTickets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19952,"src":"2170:14:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20153,"indexExpression":{"id":20152,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20146,"src":"2185:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2170:22:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":20154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2195:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2170:29:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20156,"nodeType":"ExpressionStatement","src":"2170:29:82"}]},"functionSelector":"c72c901a","id":20158,"implemented":true,"kind":"function","modifiers":[{"id":20149,"kind":"modifierInvocation","modifierName":{"id":20148,"name":"onlyOwner","nameLocations":["2150:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":20010,"src":"2150:9:82"},"nodeType":"ModifierInvocation","src":"2150:9:82"}],"name":"createOneTimeTicket","nameLocation":"2105:19:82","nodeType":"FunctionDefinition","parameters":{"id":20147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20146,"mutability":"mutable","name":"caller","nameLocation":"2133:6:82","nodeType":"VariableDeclaration","scope":20158,"src":"2125:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20145,"name":"address","nodeType":"ElementaryTypeName","src":"2125:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2124:16:82"},"returnParameters":{"id":20150,"nodeType":"ParameterList","parameters":[],"src":"2160:0:82"},"scope":20289,"src":"2096:110:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20171,"nodeType":"Block","src":"2276:47:82","statements":[{"expression":{"id":20169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20165,"name":"oneTimeTickets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19952,"src":"2286:14:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20167,"indexExpression":{"id":20166,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"2301:6:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2286:22:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":20168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2311:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2286:30:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20170,"nodeType":"ExpressionStatement","src":"2286:30:82"}]},"functionSelector":"7e383a75","id":20172,"implemented":true,"kind":"function","modifiers":[{"id":20163,"kind":"modifierInvocation","modifierName":{"id":20162,"name":"onlyOwner","nameLocations":["2266:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":20010,"src":"2266:9:82"},"nodeType":"ModifierInvocation","src":"2266:9:82"}],"name":"revokeOneTimeTicket","nameLocation":"2221:19:82","nodeType":"FunctionDefinition","parameters":{"id":20161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20160,"mutability":"mutable","name":"caller","nameLocation":"2249:6:82","nodeType":"VariableDeclaration","scope":20172,"src":"2241:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20159,"name":"address","nodeType":"ElementaryTypeName","src":"2241:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2240:16:82"},"returnParameters":{"id":20164,"nodeType":"ParameterList","parameters":[],"src":"2276:0:82"},"scope":20289,"src":"2212:111:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20191,"nodeType":"Block","src":"2415:62:82","statements":[{"expression":{"arguments":[{"id":20186,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20174,"src":"2452:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20187,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20176,"src":"2459:2:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20188,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20178,"src":"2463:6:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20183,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12168,"src":"2425:14:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$12168_$","typeString":"type(library TransferHelper)"}},"id":20185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2440:11:82","memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":12053,"src":"2425:26:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2425:45:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20190,"nodeType":"ExpressionStatement","src":"2425:45:82"}]},"functionSelector":"e1f21c67","id":20192,"implemented":true,"kind":"function","modifiers":[{"id":20181,"kind":"modifierInvocation","modifierName":{"id":20180,"name":"onlyOwnerOrTicket","nameLocations":["2398:17:82"],"nodeType":"IdentifierPath","referencedDeclaration":19995,"src":"2398:17:82"},"nodeType":"ModifierInvocation","src":"2398:17:82"}],"name":"approve","nameLocation":"2338:7:82","nodeType":"FunctionDefinition","parameters":{"id":20179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20174,"mutability":"mutable","name":"token","nameLocation":"2354:5:82","nodeType":"VariableDeclaration","scope":20192,"src":"2346:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20173,"name":"address","nodeType":"ElementaryTypeName","src":"2346:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20176,"mutability":"mutable","name":"to","nameLocation":"2369:2:82","nodeType":"VariableDeclaration","scope":20192,"src":"2361:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20175,"name":"address","nodeType":"ElementaryTypeName","src":"2361:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20178,"mutability":"mutable","name":"amount","nameLocation":"2381:6:82","nodeType":"VariableDeclaration","scope":20192,"src":"2373:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20177,"name":"uint256","nodeType":"ElementaryTypeName","src":"2373:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2345:43:82"},"returnParameters":{"id":20182,"nodeType":"ParameterList","parameters":[],"src":"2415:0:82"},"scope":20289,"src":"2329:148:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20275,"nodeType":"Block","src":"2631:384:82","statements":[{"assignments":[20213],"declarations":[{"constant":false,"id":20213,"mutability":"mutable","name":"results","nameLocation":"2656:7:82","nodeType":"VariableDeclaration","scope":20275,"src":"2641:22:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":20211,"name":"bytes","nodeType":"ElementaryTypeName","src":"2641:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":20212,"nodeType":"ArrayTypeName","src":"2641:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":20220,"initialValue":{"arguments":[{"expression":{"id":20217,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20195,"src":"2678:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2686:6:82","memberName":"length","nodeType":"MemberAccess","src":"2678:14:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2666:11:82","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":20214,"name":"bytes","nodeType":"ElementaryTypeName","src":"2670:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":20215,"nodeType":"ArrayTypeName","src":"2670:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":20219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2666:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2641:52:82"},{"body":{"id":20271,"nodeType":"Block","src":"2748:237:82","statements":[{"assignments":[20233,20235],"declarations":[{"constant":false,"id":20233,"mutability":"mutable","name":"success","nameLocation":"2768:7:82","nodeType":"VariableDeclaration","scope":20271,"src":"2763:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20232,"name":"bool","nodeType":"ElementaryTypeName","src":"2763:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20235,"mutability":"mutable","name":"returnData","nameLocation":"2790:10:82","nodeType":"VariableDeclaration","scope":20271,"src":"2777:23:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20234,"name":"bytes","nodeType":"ElementaryTypeName","src":"2777:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":20248,"initialValue":{"arguments":[{"baseExpression":{"id":20244,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20201,"src":"2838:4:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":20246,"indexExpression":{"id":20245,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20222,"src":"2843:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2838:7:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"baseExpression":{"id":20236,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20195,"src":"2804:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20238,"indexExpression":{"id":20237,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20222,"src":"2812:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2804:10:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2815:4:82","memberName":"call","nodeType":"MemberAccess","src":"2804:15:82","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":20243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"baseExpression":{"id":20240,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20198,"src":"2827:6:82","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20242,"indexExpression":{"id":20241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20222,"src":"2834:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2827:9:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2804:33:82","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":20247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2804:42:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2762:84:82"},{"expression":{"arguments":[{"id":20250,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20233,"src":"2868:7:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"baseExpression":{"id":20252,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20195,"src":"2893:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20254,"indexExpression":{"id":20253,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20222,"src":"2901:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2893:10:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":20255,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20198,"src":"2905:6:82","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20257,"indexExpression":{"id":20256,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20222,"src":"2912:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2905:9:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":20258,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20201,"src":"2916:4:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":20260,"indexExpression":{"id":20259,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20222,"src":"2921:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2916:7:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":20261,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20235,"src":"2925:10:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20251,"name":"ExecutionFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19962,"src":"2877:15:82","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,uint256,bytes memory,bytes memory) pure returns (error)"}},"id":20262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2877:59:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":20249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2860:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":20263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2860:77:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20264,"nodeType":"ExpressionStatement","src":"2860:77:82"},{"expression":{"id":20269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20265,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20213,"src":"2951:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":20267,"indexExpression":{"id":20266,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20222,"src":"2959:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2951:10:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20268,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20235,"src":"2964:10:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2951:23:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":20270,"nodeType":"ExpressionStatement","src":"2951:23:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20222,"src":"2723:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":20226,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20195,"src":"2727:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2735:6:82","memberName":"length","nodeType":"MemberAccess","src":"2727:14:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2723:18:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20272,"initializationExpression":{"assignments":[20222],"declarations":[{"constant":false,"id":20222,"mutability":"mutable","name":"i","nameLocation":"2716:1:82","nodeType":"VariableDeclaration","scope":20272,"src":"2708:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20221,"name":"uint256","nodeType":"ElementaryTypeName","src":"2708:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20224,"initialValue":{"hexValue":"30","id":20223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2720:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2708:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2743:3:82","subExpression":{"id":20229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20222,"src":"2743:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20231,"nodeType":"ExpressionStatement","src":"2743:3:82"},"nodeType":"ForStatement","src":"2703:282:82"},{"expression":{"id":20273,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20213,"src":"3001:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"functionReturnParameters":20208,"id":20274,"nodeType":"Return","src":"2994:14:82"}]},"functionSelector":"45f67ac7","id":20276,"implemented":true,"kind":"function","modifiers":[{"id":20204,"kind":"modifierInvocation","modifierName":{"id":20203,"name":"onlyOwnerOrTicket","nameLocations":["2589:17:82"],"nodeType":"IdentifierPath","referencedDeclaration":19995,"src":"2589:17:82"},"nodeType":"ModifierInvocation","src":"2589:17:82"}],"name":"multicall","nameLocation":"2492:9:82","nodeType":"FunctionDefinition","parameters":{"id":20202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20195,"mutability":"mutable","name":"targets","nameLocation":"2521:7:82","nodeType":"VariableDeclaration","scope":20276,"src":"2502:26:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20193,"name":"address","nodeType":"ElementaryTypeName","src":"2502:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20194,"nodeType":"ArrayTypeName","src":"2502:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20198,"mutability":"mutable","name":"values","nameLocation":"2549:6:82","nodeType":"VariableDeclaration","scope":20276,"src":"2530:25:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2530:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20197,"nodeType":"ArrayTypeName","src":"2530:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":20201,"mutability":"mutable","name":"data","nameLocation":"2574:4:82","nodeType":"VariableDeclaration","scope":20276,"src":"2557:21:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":20199,"name":"bytes","nodeType":"ElementaryTypeName","src":"2557:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":20200,"nodeType":"ArrayTypeName","src":"2557:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2501:78:82"},"returnParameters":{"id":20208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20276,"src":"2615:14:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":20205,"name":"bytes","nodeType":"ElementaryTypeName","src":"2615:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":20206,"nodeType":"ArrayTypeName","src":"2615:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2614:16:82"},"scope":20289,"src":"2483:532:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20283,"nodeType":"Block","src":"3084:28:82","statements":[{"expression":{"hexValue":"74727565","id":20281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3101:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20280,"id":20282,"nodeType":"Return","src":"3094:11:82"}]},"functionSelector":"41e15ea0","id":20284,"implemented":true,"kind":"function","modifiers":[],"name":"upgradedToMockBluePrint","nameLocation":"3030:23:82","nodeType":"FunctionDefinition","parameters":{"id":20277,"nodeType":"ParameterList","parameters":[],"src":"3053:2:82"},"returnParameters":{"id":20280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20284,"src":"3078:4:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20278,"name":"bool","nodeType":"ElementaryTypeName","src":"3078:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3077:6:82"},"scope":20289,"src":"3021:91:82","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":20287,"nodeType":"Block","src":"3145:2:82","statements":[]},"id":20288,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":20285,"nodeType":"ParameterList","parameters":[],"src":"3125:2:82"},"returnParameters":{"id":20286,"nodeType":"ParameterList","parameters":[],"src":"3145:0:82"},"scope":20289,"src":"3118:29:82","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":20290,"src":"299:2850:82","usedErrors":[3905,3908,19962,19966],"usedEvents":[3913,19948]}],"src":"32:3117:82"},"id":82},"contracts/test/MyProxyUpgradeable.sol":{"ast":{"absolutePath":"contracts/test/MyProxyUpgradeable.sol","exportedSymbols":{"ICrossChainLayer":[17421],"IERC20":[4735],"Initializable":[948],"MyProxyUpgradeable":[20431],"NFTAmount":[16007],"OutMessageV1":[16084],"OwnableUpgradeable":[694],"TVMFeeInfo":[16061],"TacHeaderV1":[16110],"TacProxyV1Upgradeable":[18695],"TokenAmount":[15999],"UUPSUpgradeable":[1130]},"id":20432,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":20291,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:83"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":20293,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20432,"sourceUnit":949,"src":"58:98:83","symbolAliases":[{"foreign":{"id":20292,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"67:13:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":20295,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20432,"sourceUnit":1131,"src":"157:102:83","symbolAliases":[{"foreign":{"id":20294,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1130,"src":"166:15:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":20297,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20432,"sourceUnit":695,"src":"260:103:83","symbolAliases":[{"foreign":{"id":20296,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"269:18:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":20299,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20432,"sourceUnit":4736,"src":"365:72:83","symbolAliases":[{"foreign":{"id":20298,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"374:6:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICrossChainLayer.sol","file":"../interfaces/ICrossChainLayer.sol","id":20301,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20432,"sourceUnit":17422,"src":"439:70:83","symbolAliases":[{"foreign":{"id":20300,"name":"ICrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17421,"src":"448:16:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/proxies/TacProxyV1Upgradeable.sol","file":"../proxies/TacProxyV1Upgradeable.sol","id":20303,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20432,"sourceUnit":18696,"src":"510:77:83","symbolAliases":[{"foreign":{"id":20302,"name":"TacProxyV1Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18695,"src":"519:21:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":20309,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20432,"sourceUnit":16218,"src":"588:100:83","symbolAliases":[{"foreign":{"id":20304,"name":"TVMFeeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16061,"src":"597:10:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":20305,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"609:12:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":20306,"name":"TacHeaderV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"623:11:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":20307,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"636:11:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":20308,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"649:9:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":20310,"name":"Initializable","nameLocations":["721:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"721:13:83"},"id":20311,"nodeType":"InheritanceSpecifier","src":"721:13:83"},{"baseName":{"id":20312,"name":"OwnableUpgradeable","nameLocations":["736:18:83"],"nodeType":"IdentifierPath","referencedDeclaration":694,"src":"736:18:83"},"id":20313,"nodeType":"InheritanceSpecifier","src":"736:18:83"},{"baseName":{"id":20314,"name":"UUPSUpgradeable","nameLocations":["756:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":1130,"src":"756:15:83"},"id":20315,"nodeType":"InheritanceSpecifier","src":"756:15:83"},{"baseName":{"id":20316,"name":"TacProxyV1Upgradeable","nameLocations":["773:21:83"],"nodeType":"IdentifierPath","referencedDeclaration":18695,"src":"773:21:83"},"id":20317,"nodeType":"InheritanceSpecifier","src":"773:21:83"}],"canonicalName":"MyProxyUpgradeable","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":20431,"linearizedBaseContracts":[20431,18695,18430,1130,3265,694,2873,948],"name":"MyProxyUpgradeable","nameLocation":"699:18:83","nodeType":"ContractDefinition","nodes":[{"body":{"id":20337,"nodeType":"Block","src":"881:127:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":20326,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"891:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":20327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"891:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20328,"nodeType":"ExpressionStatement","src":"891:24:83"},{"expression":{"arguments":[{"id":20330,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20319,"src":"940:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20329,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"925:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":20331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"925:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20332,"nodeType":"ExpressionStatement","src":"925:21:83"},{"expression":{"arguments":[{"id":20334,"name":"crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20321,"src":"985:15:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20333,"name":"__TacProxyV1Upgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"956:28:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":20335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"956:45:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20336,"nodeType":"ExpressionStatement","src":"956:45:83"}]},"functionSelector":"485cc955","id":20338,"implemented":true,"kind":"function","modifiers":[{"id":20324,"kind":"modifierInvocation","modifierName":{"id":20323,"name":"initializer","nameLocations":["869:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"869:11:83"},"nodeType":"ModifierInvocation","src":"869:11:83"}],"name":"initialize","nameLocation":"811:10:83","nodeType":"FunctionDefinition","parameters":{"id":20322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20319,"mutability":"mutable","name":"owner","nameLocation":"830:5:83","nodeType":"VariableDeclaration","scope":20338,"src":"822:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20318,"name":"address","nodeType":"ElementaryTypeName","src":"822:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20321,"mutability":"mutable","name":"crossChainLayer","nameLocation":"845:15:83","nodeType":"VariableDeclaration","scope":20338,"src":"837:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20320,"name":"address","nodeType":"ElementaryTypeName","src":"837:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"821:40:83"},"returnParameters":{"id":20325,"nodeType":"ParameterList","parameters":[],"src":"881:0:83"},"scope":20431,"src":"802:206:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1084],"body":{"id":20346,"nodeType":"Block","src":"1078:2:83","statements":[]},"id":20347,"implemented":true,"kind":"function","modifiers":[{"id":20344,"kind":"modifierInvocation","modifierName":{"id":20343,"name":"onlyOwner","nameLocations":["1068:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":589,"src":"1068:9:83"},"nodeType":"ModifierInvocation","src":"1068:9:83"}],"name":"_authorizeUpgrade","nameLocation":"1023:17:83","nodeType":"FunctionDefinition","overrides":{"id":20342,"nodeType":"OverrideSpecifier","overrides":[],"src":"1059:8:83"},"parameters":{"id":20341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20347,"src":"1041:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20339,"name":"address","nodeType":"ElementaryTypeName","src":"1041:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1040:9:83"},"returnParameters":{"id":20345,"nodeType":"ParameterList","parameters":[],"src":"1078:0:83"},"scope":20431,"src":"1014:66:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20429,"nodeType":"Block","src":"1195:971:83","statements":[{"assignments":[20358],"declarations":[{"constant":false,"id":20358,"mutability":"mutable","name":"header","nameLocation":"1253:6:83","nodeType":"VariableDeclaration","scope":20429,"src":"1234:25:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":20357,"nodeType":"UserDefinedTypeName","pathNode":{"id":20356,"name":"TacHeaderV1","nameLocations":["1234:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"1234:11:83"},"referencedDeclaration":16110,"src":"1234:11:83","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"id":20362,"initialValue":{"arguments":[{"id":20360,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20349,"src":"1279:9:83","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":20359,"name":"_decodeTacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18660,"src":"1262:16:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_struct$_TacHeaderV1_$16110_memory_ptr_$","typeString":"function (bytes calldata) pure returns (struct TacHeaderV1 memory)"}},"id":20361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:27:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"1234:55:83"},{"assignments":[20367],"declarations":[{"constant":false,"id":20367,"mutability":"mutable","name":"receivedTokens","nameLocation":"1354:14:83","nodeType":"VariableDeclaration","scope":20429,"src":"1333:35:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":20365,"nodeType":"UserDefinedTypeName","pathNode":{"id":20364,"name":"TokenAmount","nameLocations":["1333:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1333:11:83"},"referencedDeclaration":15999,"src":"1333:11:83","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":20366,"nodeType":"ArrayTypeName","src":"1333:13:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"}],"id":20375,"initialValue":{"arguments":[{"id":20370,"name":"arguments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20351,"src":"1382:9:83","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"baseExpression":{"id":20371,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"1394:11:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TokenAmount_$15999_storage_ptr_$","typeString":"type(struct TokenAmount storage pointer)"}},"id":20372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1394:13:83","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct TokenAmount memory[] memory)"}}],"id":20373,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1393:15:83","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct TokenAmount memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct TokenAmount memory[] memory)"}],"expression":{"id":20368,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1371:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1375:6:83","memberName":"decode","nodeType":"MemberAccess","src":"1371:10:83","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":20374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:38:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1333:76:83"},{"body":{"id":20402,"nodeType":"Block","src":"1636:171:83","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":20394,"name":"_getCrossChainLayerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18643,"src":"1712:26:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":20395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1712:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":20396,"name":"receivedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20367,"src":"1758:14:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":20398,"indexExpression":{"id":20397,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20377,"src":"1773:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1758:17:83","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":20399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1776:6:83","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"1758:24:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"id":20388,"name":"receivedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20367,"src":"1657:14:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":20390,"indexExpression":{"id":20389,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20377,"src":"1672:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1657:17:83","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":20391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1675:10:83","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"1657:28:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20387,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"1650:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4735_$","typeString":"type(contract IERC20)"}},"id":20392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":20393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1687:7:83","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4722,"src":"1650:44:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":20400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:146:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20401,"nodeType":"ExpressionStatement","src":"1650:146:83"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20377,"src":"1604:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":20381,"name":"receivedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20367,"src":"1608:14:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":20382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1623:6:83","memberName":"length","nodeType":"MemberAccess","src":"1608:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1604:25:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20403,"initializationExpression":{"assignments":[20377],"declarations":[{"constant":false,"id":20377,"mutability":"mutable","name":"i","nameLocation":"1597:1:83","nodeType":"VariableDeclaration","scope":20403,"src":"1592:6:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20376,"name":"uint","nodeType":"ElementaryTypeName","src":"1592:4:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20379,"initialValue":{"hexValue":"30","id":20378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1601:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1592:10:83"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1631:3:83","subExpression":{"id":20384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20377,"src":"1631:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20386,"nodeType":"ExpressionStatement","src":"1631:3:83"},"nodeType":"ForStatement","src":"1587:220:83"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":20406,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20358,"src":"1910:6:83","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1917:9:83","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":16101,"src":"1910:16:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":20408,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20358,"src":"1944:6:83","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1951:9:83","memberName":"tvmCaller","nodeType":"MemberAccess","referencedDeclaration":16107,"src":"1944:16:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":20410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1978:2:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"30","id":20411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1998:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":20412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2018:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":20416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2050:1:83","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":20415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2037:12:83","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":20413,"name":"string","nodeType":"ElementaryTypeName","src":"2041:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":20414,"nodeType":"ArrayTypeName","src":"2041:8:83","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":20417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2037:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":20418,"name":"receivedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20367,"src":"2070:14:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"arguments":[{"hexValue":"30","id":20423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2118:1:83","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":20422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2102:15:83","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct NFTAmount memory[] memory)"},"typeName":{"baseType":{"id":20420,"nodeType":"UserDefinedTypeName","pathNode":{"id":20419,"name":"NFTAmount","nameLocations":["2106:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"2106:9:83"},"referencedDeclaration":16007,"src":"2106:9:83","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":20421,"nodeType":"ArrayTypeName","src":"2106:11:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}}},"id":20424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2102:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}],"id":20405,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"1880:12:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutMessageV1_$16084_storage_ptr_$","typeString":"type(struct OutMessageV1 storage pointer)"}},"id":20425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1880:254:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},{"hexValue":"30","id":20426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2148:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20404,"name":"_sendMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18684,"src":"1852:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_OutMessageV1_$16084_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct OutMessageV1 memory,uint256)"}},"id":20427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1852:307:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20428,"nodeType":"ExpressionStatement","src":"1852:307:83"}]},"functionSelector":"31cd5675","id":20430,"implemented":true,"kind":"function","modifiers":[{"arguments":[],"id":20354,"kind":"modifierInvocation","modifierName":{"id":20353,"name":"_onlyCrossChainLayer","nameLocations":["1172:20:83"],"nodeType":"IdentifierPath","referencedDeclaration":18624,"src":"1172:20:83"},"nodeType":"ModifierInvocation","src":"1172:22:83"}],"name":"myProxyFunction","nameLocation":"1095:15:83","nodeType":"FunctionDefinition","parameters":{"id":20352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20349,"mutability":"mutable","name":"tacHeader","nameLocation":"1126:9:83","nodeType":"VariableDeclaration","scope":20430,"src":"1111:24:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20348,"name":"bytes","nodeType":"ElementaryTypeName","src":"1111:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20351,"mutability":"mutable","name":"arguments","nameLocation":"1152:9:83","nodeType":"VariableDeclaration","scope":20430,"src":"1137:24:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20350,"name":"bytes","nodeType":"ElementaryTypeName","src":"1137:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1110:52:83"},"returnParameters":{"id":20355,"nodeType":"ParameterList","parameters":[],"src":"1195:0:83"},"scope":20431,"src":"1086:1080:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":20432,"src":"690:1478:83","usedErrors":[530,535,711,714,975,980,3422,3435,6379,6770,18423],"usedEvents":[541,719,3238]}],"src":"32:2137:83"},"id":83},"contracts/test/TestERC721Token.sol":{"ast":{"absolutePath":"contracts/test/TestERC721Token.sol","exportedSymbols":{"ERC721":[6129],"TestERC721Token":[20480]},"id":20481,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":20433,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:84"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"@openzeppelin/contracts/token/ERC721/ERC721.sol","id":20435,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20481,"sourceUnit":6130,"src":"58:73:84","symbolAliases":[{"foreign":{"id":20434,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6129,"src":"67:6:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":20436,"name":"ERC721","nameLocations":["161:6:84"],"nodeType":"IdentifierPath","referencedDeclaration":6129,"src":"161:6:84"},"id":20437,"nodeType":"InheritanceSpecifier","src":"161:6:84"}],"canonicalName":"TestERC721Token","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":20480,"linearizedBaseContracts":[20480,6129,3355,6292,6246,8481,8493,6658],"name":"TestERC721Token","nameLocation":"142:15:84","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":20439,"mutability":"mutable","name":"__baseURI","nameLocation":"190:9:84","nodeType":"VariableDeclaration","scope":20480,"src":"175:24:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":20438,"name":"string","nodeType":"ElementaryTypeName","src":"175:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":20456,"nodeType":"Block","src":"308:36:84","statements":[{"expression":{"id":20454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20452,"name":"__baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20439,"src":"318:9:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20453,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20445,"src":"330:7:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"318:19:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":20455,"nodeType":"ExpressionStatement","src":"318:19:84"}]},"id":20457,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":20448,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20441,"src":"292:5:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20449,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20443,"src":"299:7:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":20450,"kind":"baseConstructorSpecifier","modifierName":{"id":20447,"name":"ERC721","nameLocations":["285:6:84"],"nodeType":"IdentifierPath","referencedDeclaration":6129,"src":"285:6:84"},"nodeType":"ModifierInvocation","src":"285:22:84"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":20446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20441,"mutability":"mutable","name":"_name","nameLocation":"232:5:84","nodeType":"VariableDeclaration","scope":20457,"src":"218:19:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20440,"name":"string","nodeType":"ElementaryTypeName","src":"218:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20443,"mutability":"mutable","name":"_symbol","nameLocation":"253:7:84","nodeType":"VariableDeclaration","scope":20457,"src":"239:21:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20442,"name":"string","nodeType":"ElementaryTypeName","src":"239:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20445,"mutability":"mutable","name":"baseURI","nameLocation":"276:7:84","nodeType":"VariableDeclaration","scope":20457,"src":"262:21:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20444,"name":"string","nodeType":"ElementaryTypeName","src":"262:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"217:67:84"},"returnParameters":{"id":20451,"nodeType":"ParameterList","parameters":[],"src":"308:0:84"},"scope":20480,"src":"206:138:84","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":20469,"nodeType":"Block","src":"404:37:84","statements":[{"expression":{"arguments":[{"id":20465,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20459,"src":"420:3:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20466,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20461,"src":"425:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20464,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5792,"src":"414:5:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"414:20:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20468,"nodeType":"ExpressionStatement","src":"414:20:84"}]},"functionSelector":"40c10f19","id":20470,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"359:4:84","nodeType":"FunctionDefinition","parameters":{"id":20462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20459,"mutability":"mutable","name":"_to","nameLocation":"372:3:84","nodeType":"VariableDeclaration","scope":20470,"src":"364:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20458,"name":"address","nodeType":"ElementaryTypeName","src":"364:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20461,"mutability":"mutable","name":"_tokenId","nameLocation":"385:8:84","nodeType":"VariableDeclaration","scope":20470,"src":"377:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20460,"name":"uint256","nodeType":"ElementaryTypeName","src":"377:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"363:31:84"},"returnParameters":{"id":20463,"nodeType":"ParameterList","parameters":[],"src":"404:0:84"},"scope":20480,"src":"350:91:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5377],"body":{"id":20478,"nodeType":"Block","src":"514:33:84","statements":[{"expression":{"id":20476,"name":"__baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20439,"src":"531:9:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":20475,"id":20477,"nodeType":"Return","src":"524:16:84"}]},"id":20479,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"456:8:84","nodeType":"FunctionDefinition","overrides":{"id":20472,"nodeType":"OverrideSpecifier","overrides":[],"src":"481:8:84"},"parameters":{"id":20471,"nodeType":"ParameterList","parameters":[],"src":"464:2:84"},"returnParameters":{"id":20475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20479,"src":"499:13:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20473,"name":"string","nodeType":"ElementaryTypeName","src":"499:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"498:15:84"},"scope":20480,"src":"447:100:84","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":20481,"src":"133:416:84","usedErrors":[3313,3318,3327,3332,3337,3344,3349,3354],"usedEvents":[6145,6154,6163]}],"src":"32:517:84"},"id":84},"contracts/test/TestProxy.sol":{"ast":{"absolutePath":"contracts/test/TestProxy.sol","exportedSymbols":{"ICrossChainLayer":[17421],"IERC20":[4735],"IERC721":[6246],"IERC721Receiver":[6264],"NFTAmount":[16007],"OutMessageV1":[16084],"TVMFeeInfo":[16061],"TacHeaderV1":[16110],"TacProxyV1":[18549],"TestProxy":[21094],"TokenAmount":[15999]},"id":21095,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":20482,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:85"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":20484,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21095,"sourceUnit":4736,"src":"58:72:85","symbolAliases":[{"foreign":{"id":20483,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"67:6:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":20486,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21095,"sourceUnit":6247,"src":"131:75:85","symbolAliases":[{"foreign":{"id":20485,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"140:7:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","id":20488,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21095,"sourceUnit":6265,"src":"207:91:85","symbolAliases":[{"foreign":{"id":20487,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"216:15:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICrossChainLayer.sol","file":"../interfaces/ICrossChainLayer.sol","id":20490,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21095,"sourceUnit":17422,"src":"300:70:85","symbolAliases":[{"foreign":{"id":20489,"name":"ICrossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17421,"src":"309:16:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/proxies/TacProxyV1.sol","file":"../proxies/TacProxyV1.sol","id":20492,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21095,"sourceUnit":18550,"src":"371:55:85","symbolAliases":[{"foreign":{"id":20491,"name":"TacProxyV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18549,"src":"380:10:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":20498,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21095,"sourceUnit":16218,"src":"427:100:85","symbolAliases":[{"foreign":{"id":20493,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"436:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":20494,"name":"TacHeaderV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"450:11:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":20495,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"463:11:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":20496,"name":"TVMFeeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16061,"src":"476:10:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":20497,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"488:9:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":20499,"name":"TacProxyV1","nameLocations":["551:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":18549,"src":"551:10:85"},"id":20500,"nodeType":"InheritanceSpecifier","src":"551:10:85"},{"baseName":{"id":20501,"name":"IERC721Receiver","nameLocations":["563:15:85"],"nodeType":"IdentifierPath","referencedDeclaration":6264,"src":"563:15:85"},"id":20502,"nodeType":"InheritanceSpecifier","src":"563:15:85"}],"canonicalName":"TestProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21094,"linearizedBaseContracts":[21094,6264,18549,18430],"name":"TestProxy","nameLocation":"538:9:85","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":20504,"mutability":"mutable","name":"cnt","nameLocation":"590:3:85","nodeType":"VariableDeclaration","scope":21094,"src":"585:8:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20503,"name":"uint","nodeType":"ElementaryTypeName","src":"585:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"anonymous":false,"eventSelector":"49b4c3f4344f33413322c03885f90f29e906bd8eb0cb2c3d815ee1ad2b3c989c","id":20508,"name":"Receive","nameLocation":"606:7:85","nodeType":"EventDefinition","parameters":{"id":20507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20506,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"622:5:85","nodeType":"VariableDeclaration","scope":20508,"src":"614:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20505,"name":"uint256","nodeType":"ElementaryTypeName","src":"614:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"613:15:85"},"src":"600:29:85"},{"anonymous":false,"eventSelector":"526f6652e74a3d979e195201cecc97a834b957cc0097468b9843d280b17a5d1a","id":20522,"name":"Invoke","nameLocation":"640:6:85","nodeType":"EventDefinition","parameters":{"id":20521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20510,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"655:5:85","nodeType":"VariableDeclaration","scope":20522,"src":"647:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20509,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20512,"indexed":false,"mutability":"mutable","name":"shardsKey","nameLocation":"669:9:85","nodeType":"VariableDeclaration","scope":20522,"src":"662:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":20511,"name":"uint64","nodeType":"ElementaryTypeName","src":"662:6:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":20514,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"688:9:85","nodeType":"VariableDeclaration","scope":20522,"src":"680:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20513,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20516,"indexed":false,"mutability":"mutable","name":"operationId","nameLocation":"707:11:85","nodeType":"VariableDeclaration","scope":20522,"src":"699:19:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"699:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":20518,"indexed":false,"mutability":"mutable","name":"tvmCaller","nameLocation":"727:9:85","nodeType":"VariableDeclaration","scope":20522,"src":"720:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20517,"name":"string","nodeType":"ElementaryTypeName","src":"720:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20520,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"744:9:85","nodeType":"VariableDeclaration","scope":20522,"src":"738:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20519,"name":"bytes","nodeType":"ElementaryTypeName","src":"738:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"646:108:85"},"src":"634:121:85"},{"anonymous":false,"eventSelector":"7455bef08ac052a65b30e5155a7c364504a560fd4753a612d34802695a56f365","id":20538,"name":"InvokeWithCallback","nameLocation":"766:18:85","nodeType":"EventDefinition","parameters":{"id":20537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20524,"indexed":false,"mutability":"mutable","name":"shardsKey","nameLocation":"792:9:85","nodeType":"VariableDeclaration","scope":20538,"src":"785:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":20523,"name":"uint64","nodeType":"ElementaryTypeName","src":"785:6:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":20526,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"811:9:85","nodeType":"VariableDeclaration","scope":20538,"src":"803:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20525,"name":"uint256","nodeType":"ElementaryTypeName","src":"803:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20528,"indexed":false,"mutability":"mutable","name":"operationId","nameLocation":"830:11:85","nodeType":"VariableDeclaration","scope":20538,"src":"822:19:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":20530,"indexed":false,"mutability":"mutable","name":"tvmCaller","nameLocation":"850:9:85","nodeType":"VariableDeclaration","scope":20538,"src":"843:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20529,"name":"string","nodeType":"ElementaryTypeName","src":"843:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20532,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"867:9:85","nodeType":"VariableDeclaration","scope":20538,"src":"861:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20531,"name":"bytes","nodeType":"ElementaryTypeName","src":"861:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20536,"indexed":false,"mutability":"mutable","name":"receivedTokens","nameLocation":"892:14:85","nodeType":"VariableDeclaration","scope":20538,"src":"878:28:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":20534,"nodeType":"UserDefinedTypeName","pathNode":{"id":20533,"name":"TokenAmount","nameLocations":["878:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"878:11:85"},"referencedDeclaration":15999,"src":"878:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":20535,"nodeType":"ArrayTypeName","src":"878:13:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"}],"src":"784:123:85"},"src":"760:148:85"},{"errorSelector":"85ceb49c","id":20542,"name":"MockError","nameLocation":"920:9:85","nodeType":"ErrorDefinition","parameters":{"id":20541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20540,"mutability":"mutable","name":"message","nameLocation":"937:7:85","nodeType":"VariableDeclaration","scope":20542,"src":"930:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20539,"name":"string","nodeType":"ElementaryTypeName","src":"930:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"929:16:85"},"src":"914:32:85"},{"errorSelector":"5cd2ad57","id":20548,"name":"NotEnoughProtocolFee","nameLocation":"957:20:85","nodeType":"ErrorDefinition","parameters":{"id":20547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20544,"mutability":"mutable","name":"attachedFee","nameLocation":"986:11:85","nodeType":"VariableDeclaration","scope":20548,"src":"978:19:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20543,"name":"uint256","nodeType":"ElementaryTypeName","src":"978:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20546,"mutability":"mutable","name":"requiredFee","nameLocation":"1007:11:85","nodeType":"VariableDeclaration","scope":20548,"src":"999:19:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20545,"name":"uint256","nodeType":"ElementaryTypeName","src":"999:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"977:42:85"},"src":"951:69:85"},{"errorSelector":"e3a15141","id":20554,"name":"NotEnoughValue","nameLocation":"1031:14:85","nodeType":"ErrorDefinition","parameters":{"id":20553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20550,"mutability":"mutable","name":"attachedValue","nameLocation":"1054:13:85","nodeType":"VariableDeclaration","scope":20554,"src":"1046:21:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20549,"name":"uint256","nodeType":"ElementaryTypeName","src":"1046:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20552,"mutability":"mutable","name":"requiredValue","nameLocation":"1077:13:85","nodeType":"VariableDeclaration","scope":20554,"src":"1069:21:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20551,"name":"uint256","nodeType":"ElementaryTypeName","src":"1069:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1045:46:85"},"src":"1025:67:85"},{"body":{"id":20562,"nodeType":"Block","src":"1166:2:85","statements":[]},"id":20563,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":20559,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20556,"src":"1148:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":20560,"kind":"baseConstructorSpecifier","modifierName":{"id":20558,"name":"TacProxyV1","nameLocations":["1137:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":18549,"src":"1137:10:85"},"nodeType":"ModifierInvocation","src":"1137:28:85"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":20557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20556,"mutability":"mutable","name":"_crossChainLayer","nameLocation":"1119:16:85","nodeType":"VariableDeclaration","scope":20563,"src":"1111:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20555,"name":"address","nodeType":"ElementaryTypeName","src":"1111:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1110:26:85"},"returnParameters":{"id":20561,"nodeType":"ParameterList","parameters":[],"src":"1166:0:85"},"scope":21094,"src":"1099:69:85","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":20571,"nodeType":"Block","src":"1201:40:85","statements":[{"eventCall":{"arguments":[{"expression":{"id":20567,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1224:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1228:5:85","memberName":"value","nodeType":"MemberAccess","src":"1224:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20566,"name":"Receive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20508,"src":"1216:7:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":20569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1216:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20570,"nodeType":"EmitStatement","src":"1211:23:85"}]},"id":20572,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":20564,"nodeType":"ParameterList","parameters":[],"src":"1181:2:85"},"returnParameters":{"id":20565,"nodeType":"ParameterList","parameters":[],"src":"1201:0:85"},"scope":21094,"src":"1174:67:85","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":20616,"nodeType":"Block","src":"1347:260:85","statements":[{"assignments":[20583],"declarations":[{"constant":false,"id":20583,"mutability":"mutable","name":"header","nameLocation":"1376:6:85","nodeType":"VariableDeclaration","scope":20616,"src":"1357:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":20582,"nodeType":"UserDefinedTypeName","pathNode":{"id":20581,"name":"TacHeaderV1","nameLocations":["1357:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"1357:11:85"},"referencedDeclaration":16110,"src":"1357:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"id":20587,"initialValue":{"arguments":[{"id":20585,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20574,"src":"1402:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":20584,"name":"_decodeTacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18516,"src":"1385:16:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_struct$_TacHeaderV1_$16110_memory_ptr_$","typeString":"function (bytes calldata) pure returns (struct TacHeaderV1 memory)"}},"id":20586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"1357:55:85"},{"assignments":[20589],"declarations":[{"constant":false,"id":20589,"mutability":"mutable","name":"a","nameLocation":"1430:1:85","nodeType":"VariableDeclaration","scope":20616,"src":"1422:9:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20588,"name":"uint256","nodeType":"ElementaryTypeName","src":"1422:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20597,"initialValue":{"arguments":[{"id":20592,"name":"arguments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20576,"src":"1445:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":20594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1457:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":20593,"name":"uint256","nodeType":"ElementaryTypeName","src":"1457:7:85","typeDescriptions":{}}}],"id":20595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1456:9:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":20590,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1434:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1438:6:85","memberName":"decode","nodeType":"MemberAccess","src":"1434:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":20596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1434:32:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1422:44:85"},{"expression":{"id":20600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20598,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20504,"src":"1476:3:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20599,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20589,"src":"1483:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1476:8:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20601,"nodeType":"ExpressionStatement","src":"1476:8:85"},{"eventCall":{"arguments":[{"id":20603,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20589,"src":"1506:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":20604,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20583,"src":"1509:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1516:9:85","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":16101,"src":"1509:16:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":20606,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20583,"src":"1527:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1534:9:85","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16103,"src":"1527:16:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":20608,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20583,"src":"1545:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1552:11:85","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"1545:18:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":20610,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20583,"src":"1565:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1572:9:85","memberName":"tvmCaller","nodeType":"MemberAccess","referencedDeclaration":16107,"src":"1565:16:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":20612,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20583,"src":"1583:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1590:9:85","memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":16109,"src":"1583:16:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20602,"name":"Invoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20522,"src":"1499:6:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint64_$_t_uint256_$_t_bytes32_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint64,uint256,bytes32,string memory,bytes memory)"}},"id":20614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1499:101:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20615,"nodeType":"EmitStatement","src":"1494:106:85"}]},"functionSelector":"e77d74b0","id":20617,"implemented":true,"kind":"function","modifiers":[{"arguments":[],"id":20579,"kind":"modifierInvocation","modifierName":{"id":20578,"name":"_onlyCrossChainLayer","nameLocations":["1324:20:85"],"nodeType":"IdentifierPath","referencedDeclaration":18476,"src":"1324:20:85"},"nodeType":"ModifierInvocation","src":"1324:22:85"}],"name":"invoke","nameLocation":"1256:6:85","nodeType":"FunctionDefinition","parameters":{"id":20577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20574,"mutability":"mutable","name":"tacHeader","nameLocation":"1278:9:85","nodeType":"VariableDeclaration","scope":20617,"src":"1263:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20573,"name":"bytes","nodeType":"ElementaryTypeName","src":"1263:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20576,"mutability":"mutable","name":"arguments","nameLocation":"1304:9:85","nodeType":"VariableDeclaration","scope":20617,"src":"1289:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20575,"name":"bytes","nodeType":"ElementaryTypeName","src":"1289:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1262:52:85"},"returnParameters":{"id":20580,"nodeType":"ParameterList","parameters":[],"src":"1347:0:85"},"scope":21094,"src":"1247:360:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20711,"nodeType":"Block","src":"1702:929:85","statements":[{"assignments":[20626],"declarations":[{"constant":false,"id":20626,"mutability":"mutable","name":"header","nameLocation":"1756:6:85","nodeType":"VariableDeclaration","scope":20711,"src":"1737:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":20625,"nodeType":"UserDefinedTypeName","pathNode":{"id":20624,"name":"TacHeaderV1","nameLocations":["1737:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"1737:11:85"},"referencedDeclaration":16110,"src":"1737:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"id":20630,"initialValue":{"arguments":[{"id":20628,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20619,"src":"1782:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":20627,"name":"_decodeTacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18516,"src":"1765:16:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_struct$_TacHeaderV1_$16110_memory_ptr_$","typeString":"function (bytes calldata) pure returns (struct TacHeaderV1 memory)"}},"id":20629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"1737:55:85"},{"assignments":[20635],"declarations":[{"constant":false,"id":20635,"mutability":"mutable","name":"receivedTokens","nameLocation":"1851:14:85","nodeType":"VariableDeclaration","scope":20711,"src":"1830:35:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":20633,"nodeType":"UserDefinedTypeName","pathNode":{"id":20632,"name":"TokenAmount","nameLocations":["1830:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"1830:11:85"},"referencedDeclaration":15999,"src":"1830:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":20634,"nodeType":"ArrayTypeName","src":"1830:13:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"}],"id":20643,"initialValue":{"arguments":[{"id":20638,"name":"arguments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20621,"src":"1879:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"baseExpression":{"id":20639,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"1891:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TokenAmount_$15999_storage_ptr_$","typeString":"type(struct TokenAmount storage pointer)"}},"id":20640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1891:13:85","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct TokenAmount memory[] memory)"}}],"id":20641,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1890:15:85","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct TokenAmount memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct TokenAmount memory[] memory)"}],"expression":{"id":20636,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1868:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1872:6:85","memberName":"decode","nodeType":"MemberAccess","src":"1868:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":20642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1868:38:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1830:76:85"},{"eventCall":{"arguments":[{"expression":{"id":20645,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20626,"src":"1941:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1948:9:85","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":16101,"src":"1941:16:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":20647,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20626,"src":"1959:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1966:9:85","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16103,"src":"1959:16:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":20649,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20626,"src":"1977:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1984:11:85","memberName":"operationId","nodeType":"MemberAccess","referencedDeclaration":16105,"src":"1977:18:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":20651,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20626,"src":"1997:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2004:9:85","memberName":"tvmCaller","nodeType":"MemberAccess","referencedDeclaration":16107,"src":"1997:16:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":20653,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20626,"src":"2015:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2022:9:85","memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":16109,"src":"2015:16:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":20655,"name":"receivedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2033:14:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}],"id":20644,"name":"InvokeWithCallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20538,"src":"1922:18:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$_t_uint256_$_t_bytes32_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (uint64,uint256,bytes32,string memory,bytes memory,struct TokenAmount memory[] memory)"}},"id":20656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1922:126:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20657,"nodeType":"EmitStatement","src":"1917:131:85"},{"body":{"id":20684,"nodeType":"Block","src":"2137:125:85","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":20676,"name":"_getCrossChainLayerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18488,"src":"2196:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":20677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2196:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":20678,"name":"receivedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2226:14:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":20680,"indexExpression":{"id":20679,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20659,"src":"2241:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2226:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":20681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2244:6:85","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"2226:24:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"id":20670,"name":"receivedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2158:14:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":20672,"indexExpression":{"id":20671,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20659,"src":"2173:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2158:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":20673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2176:10:85","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"2158:28:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20669,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"2151:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4735_$","typeString":"type(contract IERC20)"}},"id":20674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2151:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":20675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2188:7:85","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4722,"src":"2151:44:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":20682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2151:100:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20683,"nodeType":"ExpressionStatement","src":"2151:100:85"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20662,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20659,"src":"2105:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":20663,"name":"receivedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2109:14:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":20664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2124:6:85","memberName":"length","nodeType":"MemberAccess","src":"2109:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2105:25:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20685,"initializationExpression":{"assignments":[20659],"declarations":[{"constant":false,"id":20659,"mutability":"mutable","name":"i","nameLocation":"2098:1:85","nodeType":"VariableDeclaration","scope":20685,"src":"2093:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20658,"name":"uint","nodeType":"ElementaryTypeName","src":"2093:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20661,"initialValue":{"hexValue":"30","id":20660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2102:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2093:10:85"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2132:3:85","subExpression":{"id":20666,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20659,"src":"2132:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20668,"nodeType":"ExpressionStatement","src":"2132:3:85"},"nodeType":"ForStatement","src":"2088:174:85"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":20688,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20626,"src":"2376:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2383:9:85","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":16101,"src":"2376:16:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":20690,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20626,"src":"2410:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2417:9:85","memberName":"tvmCaller","nodeType":"MemberAccess","referencedDeclaration":16107,"src":"2410:16:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":20692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2444:2:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"30","id":20693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2464:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":20694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2483:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":20698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2515:1:85","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":20697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2502:12:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":20695,"name":"string","nodeType":"ElementaryTypeName","src":"2506:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":20696,"nodeType":"ArrayTypeName","src":"2506:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":20699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2502:15:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":20700,"name":"receivedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2535:14:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"arguments":[{"hexValue":"30","id":20705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2583:1:85","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":20704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2567:15:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct NFTAmount memory[] memory)"},"typeName":{"baseType":{"id":20702,"nodeType":"UserDefinedTypeName","pathNode":{"id":20701,"name":"NFTAmount","nameLocations":["2571:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"2571:9:85"},"referencedDeclaration":16007,"src":"2571:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":20703,"nodeType":"ArrayTypeName","src":"2571:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}}},"id":20706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2567:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}],"id":20687,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"2346:12:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutMessageV1_$16084_storage_ptr_$","typeString":"type(struct OutMessageV1 storage pointer)"}},"id":20707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2346:253:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},{"hexValue":"30","id":20708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2613:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20686,"name":"_sendMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18538,"src":"2318:14:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_OutMessageV1_$16084_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct OutMessageV1 memory,uint256)"}},"id":20709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2318:306:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20710,"nodeType":"ExpressionStatement","src":"2318:306:85"}]},"functionSelector":"50e9c31b","id":20712,"implemented":true,"kind":"function","modifiers":[],"name":"invokeWithCallback","nameLocation":"1622:18:85","nodeType":"FunctionDefinition","parameters":{"id":20622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20619,"mutability":"mutable","name":"tacHeader","nameLocation":"1656:9:85","nodeType":"VariableDeclaration","scope":20712,"src":"1641:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20618,"name":"bytes","nodeType":"ElementaryTypeName","src":"1641:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20621,"mutability":"mutable","name":"arguments","nameLocation":"1682:9:85","nodeType":"VariableDeclaration","scope":20712,"src":"1667:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20620,"name":"bytes","nodeType":"ElementaryTypeName","src":"1667:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1640:52:85"},"returnParameters":{"id":20623,"nodeType":"ParameterList","parameters":[],"src":"1702:0:85"},"scope":21094,"src":"1613:1018:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20818,"nodeType":"Block","src":"2742:942:85","statements":[{"assignments":[20721],"declarations":[{"constant":false,"id":20721,"mutability":"mutable","name":"tacHeader","nameLocation":"2771:9:85","nodeType":"VariableDeclaration","scope":20818,"src":"2752:28:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":20720,"nodeType":"UserDefinedTypeName","pathNode":{"id":20719,"name":"TacHeaderV1","nameLocations":["2752:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"2752:11:85"},"referencedDeclaration":16110,"src":"2752:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"id":20725,"initialValue":{"arguments":[{"id":20723,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20714,"src":"2800:6:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":20722,"name":"_decodeTacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18516,"src":"2783:16:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_struct$_TacHeaderV1_$16110_memory_ptr_$","typeString":"function (bytes calldata) pure returns (struct TacHeaderV1 memory)"}},"id":20724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2783:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"2752:55:85"},{"assignments":[20730],"declarations":[{"constant":false,"id":20730,"mutability":"mutable","name":"tokens","nameLocation":"2838:6:85","nodeType":"VariableDeclaration","scope":20818,"src":"2817:27:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":20728,"nodeType":"UserDefinedTypeName","pathNode":{"id":20727,"name":"TokenAmount","nameLocations":["2817:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"2817:11:85"},"referencedDeclaration":15999,"src":"2817:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":20729,"nodeType":"ArrayTypeName","src":"2817:13:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"}],"id":20738,"initialValue":{"arguments":[{"id":20733,"name":"arguments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20716,"src":"2858:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"baseExpression":{"id":20734,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"2870:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TokenAmount_$15999_storage_ptr_$","typeString":"type(struct TokenAmount storage pointer)"}},"id":20735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2870:13:85","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct TokenAmount memory[] memory)"}}],"id":20736,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2869:15:85","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct TokenAmount memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct TokenAmount memory[] memory)"}],"expression":{"id":20731,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2847:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2851:6:85","memberName":"decode","nodeType":"MemberAccess","src":"2847:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":20737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2847:38:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2817:68:85"},{"assignments":[20740],"declarations":[{"constant":false,"id":20740,"mutability":"mutable","name":"i","nameLocation":"2901:1:85","nodeType":"VariableDeclaration","scope":20818,"src":"2896:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20739,"name":"uint","nodeType":"ElementaryTypeName","src":"2896:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20741,"nodeType":"VariableDeclarationStatement","src":"2896:6:85"},{"body":{"id":20816,"nodeType":"Block","src":"2991:686:85","statements":[{"assignments":[20748],"declarations":[{"constant":false,"id":20748,"mutability":"mutable","name":"receivedToken","nameLocation":"3024:13:85","nodeType":"VariableDeclaration","scope":20816,"src":"3005:32:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount"},"typeName":{"id":20747,"nodeType":"UserDefinedTypeName","pathNode":{"id":20746,"name":"TokenAmount","nameLocations":["3005:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"3005:11:85"},"referencedDeclaration":15999,"src":"3005:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"visibility":"internal"}],"id":20752,"initialValue":{"baseExpression":{"id":20749,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20730,"src":"3040:6:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":20751,"indexExpression":{"id":20750,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20740,"src":"3047:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3040:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"nodeType":"VariableDeclarationStatement","src":"3005:44:85"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":20758,"name":"_getCrossChainLayerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18488,"src":"3104:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":20759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3104:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":20760,"name":"receivedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20748,"src":"3134:13:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":20761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3148:6:85","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"3134:20:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":20754,"name":"receivedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20748,"src":"3070:13:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":20755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3084:10:85","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"3070:24:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20753,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"3063:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4735_$","typeString":"type(contract IERC20)"}},"id":20756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3063:32:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":20757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3096:7:85","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4722,"src":"3063:40:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":20762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3063:92:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20763,"nodeType":"ExpressionStatement","src":"3063:92:85"},{"assignments":[20768],"declarations":[{"constant":false,"id":20768,"mutability":"mutable","name":"toBridge","nameLocation":"3190:8:85","nodeType":"VariableDeclaration","scope":20816,"src":"3169:29:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":20766,"nodeType":"UserDefinedTypeName","pathNode":{"id":20765,"name":"TokenAmount","nameLocations":["3169:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"3169:11:85"},"referencedDeclaration":15999,"src":"3169:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":20767,"nodeType":"ArrayTypeName","src":"3169:13:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"}],"id":20775,"initialValue":{"arguments":[{"hexValue":"31","id":20773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3219:1:85","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":20772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3201:17:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct TokenAmount memory[] memory)"},"typeName":{"baseType":{"id":20770,"nodeType":"UserDefinedTypeName","pathNode":{"id":20769,"name":"TokenAmount","nameLocations":["3205:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"3205:11:85"},"referencedDeclaration":15999,"src":"3205:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":20771,"nodeType":"ArrayTypeName","src":"3205:13:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}}},"id":20774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3201:20:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3169:52:85"},{"expression":{"id":20780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20776,"name":"toBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20768,"src":"3235:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":20778,"indexExpression":{"hexValue":"30","id":20777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3244:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3235:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20779,"name":"receivedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20748,"src":"3249:13:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"src":"3235:27:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":20781,"nodeType":"ExpressionStatement","src":"3235:27:85"},{"assignments":[20784],"declarations":[{"constant":false,"id":20784,"mutability":"mutable","name":"outMessage","nameLocation":"3297:10:85","nodeType":"VariableDeclaration","scope":20816,"src":"3277:30:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1"},"typeName":{"id":20783,"nodeType":"UserDefinedTypeName","pathNode":{"id":20782,"name":"OutMessageV1","nameLocations":["3277:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":16084,"src":"3277:12:85"},"referencedDeclaration":16084,"src":"3277:12:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_storage_ptr","typeString":"struct OutMessageV1"}},"visibility":"internal"}],"id":20806,"initialValue":{"arguments":[{"expression":{"id":20786,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20721,"src":"3340:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20787,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3350:9:85","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":16101,"src":"3340:19:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":20788,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20721,"src":"3377:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":20789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3387:9:85","memberName":"tvmCaller","nodeType":"MemberAccess","referencedDeclaration":16107,"src":"3377:19:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":20790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3414:2:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"30","id":20791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3434:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":20792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3453:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":20796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3485:1:85","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":20795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3472:12:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":20793,"name":"string","nodeType":"ElementaryTypeName","src":"3476:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":20794,"nodeType":"ArrayTypeName","src":"3476:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":20797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3472:15:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":20798,"name":"toBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20768,"src":"3505:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"arguments":[{"hexValue":"30","id":20803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3547:1:85","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":20802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3531:15:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct NFTAmount memory[] memory)"},"typeName":{"baseType":{"id":20800,"nodeType":"UserDefinedTypeName","pathNode":{"id":20799,"name":"NFTAmount","nameLocations":["3535:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"3535:9:85"},"referencedDeclaration":16007,"src":"3535:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":20801,"nodeType":"ArrayTypeName","src":"3535:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}}},"id":20804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3531:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}],"id":20785,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"3310:12:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutMessageV1_$16084_storage_ptr_$","typeString":"type(struct OutMessageV1 storage pointer)"}},"id":20805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3310:253:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"3277:286:85"},{"expression":{"arguments":[{"id":20808,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20784,"src":"3592:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},{"hexValue":"30","id":20809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3604:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20807,"name":"_sendMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18538,"src":"3577:14:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_OutMessageV1_$16084_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct OutMessageV1 memory,uint256)"}},"id":20810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:29:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20811,"nodeType":"ExpressionStatement","src":"3577:29:85"},{"id":20815,"nodeType":"UncheckedBlock","src":"3621:46:85","statements":[{"expression":{"id":20813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3649:3:85","subExpression":{"id":20812,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20740,"src":"3649:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20814,"nodeType":"ExpressionStatement","src":"3649:3:85"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20742,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20740,"src":"2971:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":20743,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20730,"src":"2975:6:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":20744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2982:6:85","memberName":"length","nodeType":"MemberAccess","src":"2975:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2971:17:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20817,"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"2964:713:85"}]},"functionSelector":"14c68a73","id":20819,"implemented":true,"kind":"function","modifiers":[],"name":"sendMultiplyCallbackToCrossChainLayer","nameLocation":"2646:37:85","nodeType":"FunctionDefinition","parameters":{"id":20717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20714,"mutability":"mutable","name":"header","nameLocation":"2699:6:85","nodeType":"VariableDeclaration","scope":20819,"src":"2684:21:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20713,"name":"bytes","nodeType":"ElementaryTypeName","src":"2684:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20716,"mutability":"mutable","name":"arguments","nameLocation":"2722:9:85","nodeType":"VariableDeclaration","scope":20819,"src":"2707:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20715,"name":"bytes","nodeType":"ElementaryTypeName","src":"2707:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2683:49:85"},"returnParameters":{"id":20718,"nodeType":"ParameterList","parameters":[],"src":"2742:0:85"},"scope":21094,"src":"2637:1047:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20920,"nodeType":"Block","src":"3768:876:85","statements":[{"body":{"id":20875,"nodeType":"Block","src":"3861:261:85","statements":[{"expression":{"arguments":[{"expression":{"id":20845,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3930:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3934:6:85","memberName":"sender","nodeType":"MemberAccess","src":"3930:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":20849,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3950:4:85","typeDescriptions":{"typeIdentifier":"t_contract$_TestProxy_$21094","typeString":"contract TestProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TestProxy_$21094","typeString":"contract TestProxy"}],"id":20848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3942:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20847,"name":"address","nodeType":"ElementaryTypeName","src":"3942:7:85","typeDescriptions":{}}},"id":20850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3942:13:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"expression":{"id":20851,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"3957:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3968:8:85","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":16079,"src":"3957:19:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct TokenAmount calldata[] calldata"}},"id":20854,"indexExpression":{"id":20853,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20826,"src":"3977:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3957:22:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"id":20855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3980:6:85","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"3957:29:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"expression":{"id":20838,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"3882:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3893:8:85","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":16079,"src":"3882:19:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct TokenAmount calldata[] calldata"}},"id":20841,"indexExpression":{"id":20840,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20826,"src":"3902:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3882:22:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"id":20842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3905:10:85","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"3882:33:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20837,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"3875:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4735_$","typeString":"type(contract IERC20)"}},"id":20843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3875:41:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":20844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3917:12:85","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4734,"src":"3875:54:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":20856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3875:112:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20857,"nodeType":"ExpressionStatement","src":"3875:112:85"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":20866,"name":"_getCrossChainLayerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18488,"src":"4051:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":20867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4051:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"expression":{"id":20868,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"4081:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4092:8:85","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":16079,"src":"4081:19:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct TokenAmount calldata[] calldata"}},"id":20871,"indexExpression":{"id":20870,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20826,"src":"4101:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4081:22:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"id":20872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4104:6:85","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"4081:29:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"expression":{"id":20859,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"4008:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4019:8:85","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":16079,"src":"4008:19:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct TokenAmount calldata[] calldata"}},"id":20862,"indexExpression":{"id":20861,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20826,"src":"4028:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4008:22:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_calldata_ptr","typeString":"struct TokenAmount calldata"}},"id":20863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4031:10:85","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"4008:33:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20858,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"4001:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4735_$","typeString":"type(contract IERC20)"}},"id":20864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4001:41:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":20865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4043:7:85","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4722,"src":"4001:49:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":20873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4001:110:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20874,"nodeType":"ExpressionStatement","src":"4001:110:85"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20829,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20826,"src":"3824:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":20830,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"3828:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3839:8:85","memberName":"toBridge","nodeType":"MemberAccess","referencedDeclaration":16079,"src":"3828:19:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct TokenAmount calldata[] calldata"}},"id":20832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3848:6:85","memberName":"length","nodeType":"MemberAccess","src":"3828:26:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3824:30:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20876,"initializationExpression":{"assignments":[20826],"declarations":[{"constant":false,"id":20826,"mutability":"mutable","name":"i","nameLocation":"3817:1:85","nodeType":"VariableDeclaration","scope":20876,"src":"3812:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20825,"name":"uint","nodeType":"ElementaryTypeName","src":"3812:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20828,"initialValue":{"hexValue":"30","id":20827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3821:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3812:10:85"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3856:3:85","subExpression":{"id":20834,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20826,"src":"3856:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20836,"nodeType":"ExpressionStatement","src":"3856:3:85"},"nodeType":"ForStatement","src":"3807:315:85"},{"assignments":[20878],"declarations":[{"constant":false,"id":20878,"mutability":"mutable","name":"protocolFee","nameLocation":"4140:11:85","nodeType":"VariableDeclaration","scope":20920,"src":"4132:19:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20877,"name":"uint256","nodeType":"ElementaryTypeName","src":"4132:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20881,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":20879,"name":"getProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18499,"src":"4154:14:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":20880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4154:16:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4132:38:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20882,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"4184:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4195:14:85","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":16070,"src":"4184:25:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20884,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20878,"src":"4212:11:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4184:39:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20893,"nodeType":"IfStatement","src":"4180:137:85","trueBody":{"id":20892,"nodeType":"Block","src":"4225:92:85","statements":[{"errorCall":{"arguments":[{"expression":{"id":20887,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"4267:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4278:14:85","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":16070,"src":"4267:25:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20889,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20878,"src":"4294:11:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20886,"name":"NotEnoughProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20548,"src":"4246:20:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":20890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4246:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":20891,"nodeType":"RevertStatement","src":"4239:67:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20894,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"4331:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4342:14:85","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":16070,"src":"4331:25:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":20896,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"4359:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4370:14:85","memberName":"tvmExecutorFee","nodeType":"MemberAccess","referencedDeclaration":16072,"src":"4359:25:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4331:53:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":20899,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4387:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4391:5:85","memberName":"value","nodeType":"MemberAccess","src":"4387:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4331:65:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20913,"nodeType":"IfStatement","src":"4327:183:85","trueBody":{"id":20912,"nodeType":"Block","src":"4398:112:85","statements":[{"errorCall":{"arguments":[{"expression":{"id":20903,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4434:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4438:5:85","memberName":"value","nodeType":"MemberAccess","src":"4434:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20905,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"4445:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4456:14:85","memberName":"tvmProtocolFee","nodeType":"MemberAccess","referencedDeclaration":16070,"src":"4445:25:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":20907,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"4473:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},"id":20908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4484:14:85","memberName":"tvmExecutorFee","nodeType":"MemberAccess","referencedDeclaration":16072,"src":"4473:25:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4445:53:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20902,"name":"NotEnoughValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20554,"src":"4419:14:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":20910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:80:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":20911,"nodeType":"RevertStatement","src":"4412:87:85"}]}},{"expression":{"arguments":[{"id":20915,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20822,"src":"4594:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"}},{"expression":{"id":20916,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4618:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4622:5:85","memberName":"value","nodeType":"MemberAccess","src":"4618:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1 calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20914,"name":"_sendMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18538,"src":"4566:14:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_OutMessageV1_$16084_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct OutMessageV1 memory,uint256)"}},"id":20918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4566:71:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20919,"nodeType":"ExpressionStatement","src":"4566:71:85"}]},"functionSelector":"0020cb2d","id":20921,"implemented":true,"kind":"function","modifiers":[],"name":"bridgeTokensToTON","nameLocation":"3699:17:85","nodeType":"FunctionDefinition","parameters":{"id":20823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20822,"mutability":"mutable","name":"outMessage","nameLocation":"3739:10:85","nodeType":"VariableDeclaration","scope":20921,"src":"3717:32:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_calldata_ptr","typeString":"struct OutMessageV1"},"typeName":{"id":20821,"nodeType":"UserDefinedTypeName","pathNode":{"id":20820,"name":"OutMessageV1","nameLocations":["3717:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":16084,"src":"3717:12:85"},"referencedDeclaration":16084,"src":"3717:12:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_storage_ptr","typeString":"struct OutMessageV1"}},"visibility":"internal"}],"src":"3716:34:85"},"returnParameters":{"id":20824,"nodeType":"ParameterList","parameters":[],"src":"3768:0:85"},"scope":21094,"src":"3690:954:85","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":20946,"nodeType":"Block","src":"4730:124:85","statements":[{"assignments":[20929],"declarations":[{"constant":false,"id":20929,"mutability":"mutable","name":"message","nameLocation":"4754:7:85","nodeType":"VariableDeclaration","scope":20946,"src":"4740:21:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20928,"name":"string","nodeType":"ElementaryTypeName","src":"4740:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":20937,"initialValue":{"arguments":[{"id":20932,"name":"arguments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20925,"src":"4775:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":20934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4787:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":20933,"name":"string","nodeType":"ElementaryTypeName","src":"4787:6:85","typeDescriptions":{}}}],"id":20935,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4786:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":20930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4764:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4768:6:85","memberName":"decode","nodeType":"MemberAccess","src":"4764:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":20936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4764:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"4740:55:85"},{"expression":{"id":20940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20938,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20504,"src":"4805:3:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4811:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4805:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20941,"nodeType":"ExpressionStatement","src":"4805:7:85"},{"errorCall":{"arguments":[{"id":20943,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20929,"src":"4839:7:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":20942,"name":"MockError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20542,"src":"4829:9:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":20944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4829:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":20945,"nodeType":"RevertStatement","src":"4822:25:85"}]},"functionSelector":"145769f5","id":20947,"implemented":true,"kind":"function","modifiers":[],"name":"mockWithCustomError","nameLocation":"4659:19:85","nodeType":"FunctionDefinition","parameters":{"id":20926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20947,"src":"4679:14:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20922,"name":"bytes","nodeType":"ElementaryTypeName","src":"4679:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20925,"mutability":"mutable","name":"arguments","nameLocation":"4710:9:85","nodeType":"VariableDeclaration","scope":20947,"src":"4695:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20924,"name":"bytes","nodeType":"ElementaryTypeName","src":"4695:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4678:42:85"},"returnParameters":{"id":20927,"nodeType":"ParameterList","parameters":[],"src":"4730:0:85"},"scope":21094,"src":"4650:204:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20973,"nodeType":"Block","src":"4941:123:85","statements":[{"expression":{"id":20956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20954,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20504,"src":"4951:3:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4957:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4951:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20957,"nodeType":"ExpressionStatement","src":"4951:7:85"},{"assignments":[20959],"declarations":[{"constant":false,"id":20959,"mutability":"mutable","name":"message","nameLocation":"4982:7:85","nodeType":"VariableDeclaration","scope":20973,"src":"4968:21:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20958,"name":"string","nodeType":"ElementaryTypeName","src":"4968:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":20967,"initialValue":{"arguments":[{"id":20962,"name":"arguments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20951,"src":"5003:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":20964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5015:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":20963,"name":"string","nodeType":"ElementaryTypeName","src":"5015:6:85","typeDescriptions":{}}}],"id":20965,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5014:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":20960,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4992:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4996:6:85","memberName":"decode","nodeType":"MemberAccess","src":"4992:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":20966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4992:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"4968:55:85"},{"expression":{"arguments":[{"hexValue":"66616c7365","id":20969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5041:5:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":20970,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20959,"src":"5048:7:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":20968,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5033:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5033:23:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20972,"nodeType":"ExpressionStatement","src":"5033:23:85"}]},"functionSelector":"3d2cfad2","id":20974,"implemented":true,"kind":"function","modifiers":[],"name":"mockWithDefaultError","nameLocation":"4869:20:85","nodeType":"FunctionDefinition","parameters":{"id":20952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20974,"src":"4890:14:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20948,"name":"bytes","nodeType":"ElementaryTypeName","src":"4890:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20951,"mutability":"mutable","name":"arguments","nameLocation":"4921:9:85","nodeType":"VariableDeclaration","scope":20974,"src":"4906:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20950,"name":"bytes","nodeType":"ElementaryTypeName","src":"4906:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4889:42:85"},"returnParameters":{"id":20953,"nodeType":"ParameterList","parameters":[],"src":"4941:0:85"},"scope":21094,"src":"4860:204:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6263],"body":{"id":20991,"nodeType":"Block","src":"5208:54:85","statements":[{"expression":{"expression":{"expression":{"id":20987,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5225:4:85","typeDescriptions":{"typeIdentifier":"t_contract$_TestProxy_$21094","typeString":"contract TestProxy"}},"id":20988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5230:16:85","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":20992,"src":"5225:21:85","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) pure external returns (bytes4)"}},"id":20989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5247:8:85","memberName":"selector","nodeType":"MemberAccess","src":"5225:30:85","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":20986,"id":20990,"nodeType":"Return","src":"5218:37:85"}]},"functionSelector":"150b7a02","id":20992,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"5079:16:85","nodeType":"FunctionDefinition","parameters":{"id":20983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20992,"src":"5105:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20975,"name":"address","nodeType":"ElementaryTypeName","src":"5105:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20992,"src":"5122:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20977,"name":"address","nodeType":"ElementaryTypeName","src":"5122:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20992,"src":"5139:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20979,"name":"uint256","nodeType":"ElementaryTypeName","src":"5139:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20992,"src":"5156:14:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20981,"name":"bytes","nodeType":"ElementaryTypeName","src":"5156:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5095:81:85"},"returnParameters":{"id":20986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20992,"src":"5200:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":20984,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5200:6:85","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5199:8:85"},"scope":21094,"src":"5070:192:85","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":21076,"nodeType":"Block","src":"5349:588:85","statements":[{"assignments":[21003],"declarations":[{"constant":false,"id":21003,"mutability":"mutable","name":"nfts","nameLocation":"5378:4:85","nodeType":"VariableDeclaration","scope":21076,"src":"5359:23:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount[]"},"typeName":{"baseType":{"id":21001,"nodeType":"UserDefinedTypeName","pathNode":{"id":21000,"name":"NFTAmount","nameLocations":["5359:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"5359:9:85"},"referencedDeclaration":16007,"src":"5359:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":21002,"nodeType":"ArrayTypeName","src":"5359:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}},"visibility":"internal"}],"id":21011,"initialValue":{"arguments":[{"id":21006,"name":"arguments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20996,"src":"5396:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"baseExpression":{"id":21007,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5408:9:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_NFTAmount_$16007_storage_ptr_$","typeString":"type(struct NFTAmount storage pointer)"}},"id":21008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"5408:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct NFTAmount memory[] memory)"}}],"id":21009,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5407:13:85","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct NFTAmount memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct NFTAmount memory[] memory)"}],"expression":{"id":21004,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5385:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5389:6:85","memberName":"decode","nodeType":"MemberAccess","src":"5385:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":21010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5385:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5359:62:85"},{"assignments":[21014],"declarations":[{"constant":false,"id":21014,"mutability":"mutable","name":"header","nameLocation":"5450:6:85","nodeType":"VariableDeclaration","scope":21076,"src":"5431:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":21013,"nodeType":"UserDefinedTypeName","pathNode":{"id":21012,"name":"TacHeaderV1","nameLocations":["5431:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"5431:11:85"},"referencedDeclaration":16110,"src":"5431:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"id":21018,"initialValue":{"arguments":[{"id":21016,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20994,"src":"5476:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":21015,"name":"_decodeTacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18516,"src":"5459:16:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_struct$_TacHeaderV1_$16110_memory_ptr_$","typeString":"function (bytes calldata) pure returns (struct TacHeaderV1 memory)"}},"id":21017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5459:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"5431:55:85"},{"body":{"id":21044,"nodeType":"Block","src":"5532:107:85","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":21036,"name":"_getCrossChainLayerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18488,"src":"5582:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5582:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":21038,"name":"nfts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21003,"src":"5612:4:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":21040,"indexExpression":{"id":21039,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21020,"src":"5617:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5612:7:85","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":21041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5620:7:85","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":16004,"src":"5612:15:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"id":21030,"name":"nfts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21003,"src":"5554:4:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":21032,"indexExpression":{"id":21031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21020,"src":"5559:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5554:7:85","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_memory_ptr","typeString":"struct NFTAmount memory"}},"id":21033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5562:10:85","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":16002,"src":"5554:18:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21029,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"5546:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6246_$","typeString":"type(contract IERC721)"}},"id":21034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5546:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$6246","typeString":"contract IERC721"}},"id":21035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5574:7:85","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6219,"src":"5546:35:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":21042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5546:82:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21043,"nodeType":"ExpressionStatement","src":"5546:82:85"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21022,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21020,"src":"5510:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":21023,"name":"nfts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21003,"src":"5514:4:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}},"id":21024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5519:6:85","memberName":"length","nodeType":"MemberAccess","src":"5514:11:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5510:15:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21045,"initializationExpression":{"assignments":[21020],"declarations":[{"constant":false,"id":21020,"mutability":"mutable","name":"i","nameLocation":"5507:1:85","nodeType":"VariableDeclaration","scope":21045,"src":"5502:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21019,"name":"uint","nodeType":"ElementaryTypeName","src":"5502:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21021,"nodeType":"VariableDeclarationStatement","src":"5502:6:85"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":21027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5527:3:85","subExpression":{"id":21026,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21020,"src":"5527:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21028,"nodeType":"ExpressionStatement","src":"5527:3:85"},"nodeType":"ForStatement","src":"5497:142:85"},{"assignments":[21048],"declarations":[{"constant":false,"id":21048,"mutability":"mutable","name":"outMessage","nameLocation":"5669:10:85","nodeType":"VariableDeclaration","scope":21076,"src":"5649:30:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1"},"typeName":{"id":21047,"nodeType":"UserDefinedTypeName","pathNode":{"id":21046,"name":"OutMessageV1","nameLocations":["5649:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":16084,"src":"5649:12:85"},"referencedDeclaration":16084,"src":"5649:12:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_storage_ptr","typeString":"struct OutMessageV1"}},"visibility":"internal"}],"id":21070,"initialValue":{"arguments":[{"expression":{"id":21050,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21014,"src":"5708:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":21051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5715:9:85","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":16101,"src":"5708:16:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":21052,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21014,"src":"5738:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":21053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5745:9:85","memberName":"tvmCaller","nodeType":"MemberAccess","referencedDeclaration":16107,"src":"5738:16:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":21054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5768:2:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"30","id":21055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5784:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":21056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5799:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":21060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5827:1:85","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":21059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5814:12:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":21057,"name":"string","nodeType":"ElementaryTypeName","src":"5818:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":21058,"nodeType":"ArrayTypeName","src":"5818:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":21061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5814:15:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"arguments":[{"hexValue":"30","id":21066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5861:1:85","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":21065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5843:17:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct TokenAmount memory[] memory)"},"typeName":{"baseType":{"id":21063,"nodeType":"UserDefinedTypeName","pathNode":{"id":21062,"name":"TokenAmount","nameLocations":["5847:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"5847:11:85"},"referencedDeclaration":15999,"src":"5847:11:85","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":21064,"nodeType":"ArrayTypeName","src":"5847:13:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}}},"id":21067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5843:20:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"id":21068,"name":"nfts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21003,"src":"5877:4:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}],"id":21049,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"5682:12:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutMessageV1_$16084_storage_ptr_$","typeString":"type(struct OutMessageV1 storage pointer)"}},"id":21069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5682:209:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"5649:242:85"},{"expression":{"arguments":[{"id":21072,"name":"outMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21048,"src":"5916:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},{"hexValue":"30","id":21073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5928:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":21071,"name":"_sendMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18538,"src":"5901:14:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_OutMessageV1_$16084_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct OutMessageV1 memory,uint256)"}},"id":21074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5901:29:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21075,"nodeType":"ExpressionStatement","src":"5901:29:85"}]},"functionSelector":"302b86b0","id":21077,"implemented":true,"kind":"function","modifiers":[],"name":"receiveNFT","nameLocation":"5277:10:85","nodeType":"FunctionDefinition","parameters":{"id":20997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20994,"mutability":"mutable","name":"tacHeader","nameLocation":"5303:9:85","nodeType":"VariableDeclaration","scope":21077,"src":"5288:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20993,"name":"bytes","nodeType":"ElementaryTypeName","src":"5288:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":20996,"mutability":"mutable","name":"arguments","nameLocation":"5329:9:85","nodeType":"VariableDeclaration","scope":21077,"src":"5314:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20995,"name":"bytes","nodeType":"ElementaryTypeName","src":"5314:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5287:52:85"},"returnParameters":{"id":20998,"nodeType":"ParameterList","parameters":[],"src":"5349:0:85"},"scope":21094,"src":"5268:669:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21084,"nodeType":"Block","src":"5990:27:85","statements":[{"expression":{"id":21082,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20504,"src":"6007:3:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21081,"id":21083,"nodeType":"Return","src":"6000:10:85"}]},"functionSelector":"20965255","id":21085,"implemented":true,"kind":"function","modifiers":[],"name":"getValue","nameLocation":"5952:8:85","nodeType":"FunctionDefinition","parameters":{"id":21078,"nodeType":"ParameterList","parameters":[],"src":"5960:2:85"},"returnParameters":{"id":21081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21080,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21085,"src":"5984:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21079,"name":"uint","nodeType":"ElementaryTypeName","src":"5984:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5983:6:85"},"scope":21094,"src":"5943:74:85","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21092,"nodeType":"Block","src":"6091:7:85","statements":[]},"functionSelector":"bcb2606c","id":21093,"implemented":true,"kind":"function","modifiers":[],"name":"emptyFunction","nameLocation":"6032:13:85","nodeType":"FunctionDefinition","parameters":{"id":21090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21093,"src":"6046:14:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21086,"name":"bytes","nodeType":"ElementaryTypeName","src":"6046:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21093,"src":"6061:14:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21088,"name":"bytes","nodeType":"ElementaryTypeName","src":"6061:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6045:31:85"},"returnParameters":{"id":21091,"nodeType":"ParameterList","parameters":[],"src":"6091:0:85"},"scope":21094,"src":"6023:75:85","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":21095,"src":"529:5571:85","usedErrors":[18423,20542,20548,20554],"usedEvents":[20508,20522,20538]}],"src":"32:6069:85"},"id":85},"contracts/test/TestSmartAccountProxyUser.sol":{"ast":{"absolutePath":"contracts/test/TestSmartAccountProxyUser.sol","exportedSymbols":{"ERC721Upgradeable":[2827],"IERC20":[4735],"IHooks":[19479],"IMockTacSmartAccount":[21477],"ITacSmartAccount":[19596],"NFTAmount":[16007],"OutMessageV1":[16084],"OwnableUpgradeable":[694],"SaHelper":[19875],"TacHeaderV1":[16110],"TacProxyV1Upgradeable":[18695],"TacSAFactory":[19057],"TestSmartAccountProxyUser":[21434],"TokenAmount":[15999],"TransferHelper":[12168],"UUPSUpgradeable":[1130]},"id":21435,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21096,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:86"},{"absolutePath":"contracts/smart-account/libs/SaHelper.sol","file":"../smart-account/libs/SaHelper.sol","id":21098,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":19876,"src":"58:60:86","symbolAliases":[{"foreign":{"id":21097,"name":"SaHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19875,"src":"66:8:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/smart-account/interfaces/IHooks.sol","file":"../smart-account/interfaces/IHooks.sol","id":21100,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":19480,"src":"119:62:86","symbolAliases":[{"foreign":{"id":21099,"name":"IHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19479,"src":"127:6:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/proxies/TacProxyV1Upgradeable.sol","file":"../proxies/TacProxyV1Upgradeable.sol","id":21102,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":18696,"src":"182:75:86","symbolAliases":[{"foreign":{"id":21101,"name":"TacProxyV1Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18695,"src":"190:21:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":21104,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":1131,"src":"258:100:86","symbolAliases":[{"foreign":{"id":21103,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1130,"src":"266:15:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":21106,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":695,"src":"359:101:86","symbolAliases":[{"foreign":{"id":21105,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"367:18:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/smart-account/TacSAFactory.sol","file":"../smart-account/TacSAFactory.sol","id":21108,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":19058,"src":"461:63:86","symbolAliases":[{"foreign":{"id":21107,"name":"TacSAFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"469:12:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/core/Structs.sol","file":"../core/Structs.sol","id":21113,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":16218,"src":"525:86:86","symbolAliases":[{"foreign":{"id":21109,"name":"TacHeaderV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"533:11:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":21110,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"546:11:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":21111,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"559:9:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":21112,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"570:12:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@uniswap/lib/contracts/libraries/TransferHelper.sol","file":"@uniswap/lib/contracts/libraries/TransferHelper.sol","id":21115,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":12169,"src":"612:83:86","symbolAliases":[{"foreign":{"id":21114,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12168,"src":"620:14:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":21117,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":4736,"src":"696:70:86","symbolAliases":[{"foreign":{"id":21116,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"704:6:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/test/interfaces/IMockTacSmartAccount.sol","file":"./interfaces/IMockTacSmartAccount.sol","id":21119,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":21478,"src":"767:75:86","symbolAliases":[{"foreign":{"id":21118,"name":"IMockTacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21477,"src":"775:20:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","id":21121,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":2828,"src":"843:105:86","symbolAliases":[{"foreign":{"id":21120,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2827,"src":"851:17:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/smart-account/interfaces/ITacSmartAccount.sol","file":"../smart-account/interfaces/ITacSmartAccount.sol","id":21123,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21435,"sourceUnit":19597,"src":"950:82:86","symbolAliases":[{"foreign":{"id":21122,"name":"ITacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19596,"src":"958:16:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21124,"name":"UUPSUpgradeable","nameLocations":["1072:15:86"],"nodeType":"IdentifierPath","referencedDeclaration":1130,"src":"1072:15:86"},"id":21125,"nodeType":"InheritanceSpecifier","src":"1072:15:86"},{"baseName":{"id":21126,"name":"TacProxyV1Upgradeable","nameLocations":["1089:21:86"],"nodeType":"IdentifierPath","referencedDeclaration":18695,"src":"1089:21:86"},"id":21127,"nodeType":"InheritanceSpecifier","src":"1089:21:86"},{"baseName":{"id":21128,"name":"ERC721Upgradeable","nameLocations":["1112:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":2827,"src":"1112:17:86"},"id":21129,"nodeType":"InheritanceSpecifier","src":"1112:17:86"}],"canonicalName":"TestSmartAccountProxyUser","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21434,"linearizedBaseContracts":[21434,2827,3355,6292,6246,2913,8493,2873,18695,18430,1130,3265,948],"name":"TestSmartAccountProxyUser","nameLocation":"1043:25:86","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"3c2d13c3","id":21132,"mutability":"mutable","name":"tacSAFactory","nameLocation":"1157:12:86","nodeType":"VariableDeclaration","scope":21434,"src":"1137:32:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"},"typeName":{"id":21131,"nodeType":"UserDefinedTypeName","pathNode":{"id":21130,"name":"TacSAFactory","nameLocations":["1137:12:86"],"nodeType":"IdentifierPath","referencedDeclaration":19057,"src":"1137:12:86"},"referencedDeclaration":19057,"src":"1137:12:86","typeDescriptions":{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}},"visibility":"public"},{"constant":false,"functionSelector":"61bc221a","id":21134,"mutability":"mutable","name":"counter","nameLocation":"1190:7:86","nodeType":"VariableDeclaration","scope":21434,"src":"1175:22:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21133,"name":"uint256","nodeType":"ElementaryTypeName","src":"1175:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"30c78b41","id":21136,"mutability":"mutable","name":"mainCallExecuted","nameLocation":"1215:16:86","nodeType":"VariableDeclaration","scope":21434,"src":"1203:28:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21135,"name":"bool","nodeType":"ElementaryTypeName","src":"1203:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"14f40e5e","id":21138,"mutability":"mutable","name":"tokenToBridge","nameLocation":"1252:13:86","nodeType":"VariableDeclaration","scope":21434,"src":"1237:28:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21137,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"4f8632ba","id":21140,"mutability":"mutable","name":"user","nameLocation":"1286:4:86","nodeType":"VariableDeclaration","scope":21434,"src":"1271:19:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21139,"name":"address","nodeType":"ElementaryTypeName","src":"1271:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"canonicalName":"TestSmartAccountProxyUser.MainCallStruct","id":21143,"members":[{"constant":false,"id":21142,"mutability":"mutable","name":"value","nameLocation":"1335:5:86","nodeType":"VariableDeclaration","scope":21143,"src":"1327:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21141,"name":"uint256","nodeType":"ElementaryTypeName","src":"1327:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"MainCallStruct","nameLocation":"1303:14:86","nodeType":"StructDefinition","scope":21434,"src":"1296:51:86","visibility":"public"},{"anonymous":false,"eventSelector":"6312957b833157dbcce860c9538737febb9491fde39563488a9c296f930376ed","id":21149,"name":"Incremented","nameLocation":"1358:11:86","nodeType":"EventDefinition","parameters":{"id":21148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21145,"indexed":true,"mutability":"mutable","name":"count","nameLocation":"1386:5:86","nodeType":"VariableDeclaration","scope":21149,"src":"1370:21:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21144,"name":"uint256","nodeType":"ElementaryTypeName","src":"1370:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21147,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1409:6:86","nodeType":"VariableDeclaration","scope":21149,"src":"1393:22:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21146,"name":"address","nodeType":"ElementaryTypeName","src":"1393:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1369:47:86"},"src":"1352:65:86"},{"body":{"id":21171,"nodeType":"Block","src":"1534:157:86","statements":[{"expression":{"arguments":[{"id":21159,"name":"_crossChainLayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21151,"src":"1573:16:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21158,"name":"__TacProxyV1Upgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"1544:28:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1544:46:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21161,"nodeType":"ExpressionStatement","src":"1544:46:86"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":21162,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"1600:22:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":21163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1600:24:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21164,"nodeType":"ExpressionStatement","src":"1600:24:86"},{"expression":{"id":21169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21165,"name":"tacSAFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21132,"src":"1642:12:86","typeDescriptions":{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21167,"name":"_tacSAFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21153,"src":"1670:13:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21166,"name":"TacSAFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"1657:12:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TacSAFactory_$19057_$","typeString":"type(contract TacSAFactory)"}},"id":21168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1657:27:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}},"src":"1642:42:86","typeDescriptions":{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}},"id":21170,"nodeType":"ExpressionStatement","src":"1642:42:86"}]},"functionSelector":"485cc955","id":21172,"implemented":true,"kind":"function","modifiers":[{"id":21156,"kind":"modifierInvocation","modifierName":{"id":21155,"name":"initializer","nameLocations":["1522:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"1522:11:86"},"nodeType":"ModifierInvocation","src":"1522:11:86"}],"name":"initialize","nameLocation":"1431:10:86","nodeType":"FunctionDefinition","parameters":{"id":21154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21151,"mutability":"mutable","name":"_crossChainLayer","nameLocation":"1459:16:86","nodeType":"VariableDeclaration","scope":21172,"src":"1451:24:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21150,"name":"address","nodeType":"ElementaryTypeName","src":"1451:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21153,"mutability":"mutable","name":"_tacSAFactory","nameLocation":"1493:13:86","nodeType":"VariableDeclaration","scope":21172,"src":"1485:21:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21152,"name":"address","nodeType":"ElementaryTypeName","src":"1485:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1441:71:86"},"returnParameters":{"id":21157,"nodeType":"ParameterList","parameters":[],"src":"1534:0:86"},"scope":21434,"src":"1422:269:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1084],"body":{"id":21178,"nodeType":"Block","src":"1783:2:86","statements":[]},"id":21179,"implemented":true,"kind":"function","modifiers":[],"name":"_authorizeUpgrade","nameLocation":"1706:17:86","nodeType":"FunctionDefinition","overrides":{"id":21176,"nodeType":"OverrideSpecifier","overrides":[],"src":"1774:8:86"},"parameters":{"id":21175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21174,"mutability":"mutable","name":"newImplementation","nameLocation":"1741:17:86","nodeType":"VariableDeclaration","scope":21179,"src":"1733:25:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21173,"name":"address","nodeType":"ElementaryTypeName","src":"1733:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1723:41:86"},"returnParameters":{"id":21177,"nodeType":"ParameterList","parameters":[],"src":"1783:0:86"},"scope":21434,"src":"1697:88:86","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":21272,"nodeType":"Block","src":"1889:672:86","statements":[{"assignments":[21190],"declarations":[{"constant":false,"id":21190,"mutability":"mutable","name":"header","nameLocation":"1919:6:86","nodeType":"VariableDeclaration","scope":21272,"src":"1900:25:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":21189,"nodeType":"UserDefinedTypeName","pathNode":{"id":21188,"name":"TacHeaderV1","nameLocations":["1900:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"1900:11:86"},"referencedDeclaration":16110,"src":"1900:11:86","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"id":21194,"initialValue":{"arguments":[{"id":21192,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21181,"src":"1945:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":21191,"name":"_decodeTacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18660,"src":"1928:16:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_struct$_TacHeaderV1_$16110_memory_ptr_$","typeString":"function (bytes calldata) pure returns (struct TacHeaderV1 memory)"}},"id":21193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:27:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"1900:55:86"},{"assignments":[21196,null],"declarations":[{"constant":false,"id":21196,"mutability":"mutable","name":"createdUser","nameLocation":"1974:11:86","nodeType":"VariableDeclaration","scope":21272,"src":"1966:19:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21195,"name":"address","nodeType":"ElementaryTypeName","src":"1966:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":21202,"initialValue":{"arguments":[{"expression":{"id":21199,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21190,"src":"2027:6:86","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":21200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2034:9:86","memberName":"tvmCaller","nodeType":"MemberAccess","referencedDeclaration":16107,"src":"2027:16:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21197,"name":"tacSAFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21132,"src":"1990:12:86","typeDescriptions":{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}},"id":21198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2003:23:86","memberName":"getOrCreateSmartAccount","nodeType":"MemberAccess","referencedDeclaration":18838,"src":"1990:36:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_address_$_t_bool_$","typeString":"function (string memory) external returns (address,bool)"}},"id":21201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1990:54:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bool_$","typeString":"tuple(address,bool)"}},"nodeType":"VariableDeclarationStatement","src":"1965:79:86"},{"assignments":[21207],"declarations":[{"constant":false,"id":21207,"mutability":"mutable","name":"hooks","nameLocation":"2078:5:86","nodeType":"VariableDeclaration","scope":21272,"src":"2056:27:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks"},"typeName":{"id":21206,"nodeType":"UserDefinedTypeName","pathNode":{"id":21205,"name":"IHooks.SaHooks","nameLocations":["2056:6:86","2063:7:86"],"nodeType":"IdentifierPath","referencedDeclaration":19478,"src":"2056:14:86"},"referencedDeclaration":19478,"src":"2056:14:86","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_storage_ptr","typeString":"struct IHooks.SaHooks"}},"visibility":"internal"}],"id":21215,"initialValue":{"arguments":[{"id":21210,"name":"arguments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21183,"src":"2098:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"expression":{"id":21211,"name":"IHooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19479,"src":"2110:6:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IHooks_$19479_$","typeString":"type(contract IHooks)"}},"id":21212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2117:7:86","memberName":"SaHooks","nodeType":"MemberAccess","referencedDeclaration":19478,"src":"2110:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SaHooks_$19478_storage_ptr_$","typeString":"type(struct IHooks.SaHooks storage pointer)"}}],"id":21213,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2109:16:86","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SaHooks_$19478_storage_ptr_$","typeString":"type(struct IHooks.SaHooks storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_SaHooks_$19478_storage_ptr_$","typeString":"type(struct IHooks.SaHooks storage pointer)"}],"expression":{"id":21208,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2087:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2091:6:86","memberName":"decode","nodeType":"MemberAccess","src":"2087:10:86","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":21214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2087:39:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}},"nodeType":"VariableDeclarationStatement","src":"2055:71:86"},{"expression":{"arguments":[{"id":21219,"name":"createdUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21196,"src":"2161:11:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21220,"name":"hooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"2174:5:86","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}],"expression":{"id":21216,"name":"SaHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19875,"src":"2136:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SaHelper_$19875_$","typeString":"type(library SaHelper)"}},"id":21218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2145:15:86","memberName":"executePreHooks","nodeType":"MemberAccess","referencedDeclaration":19703,"src":"2136:24:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_SaHooks_$19478_memory_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,struct IHooks.SaHooks memory) returns (bytes memory[] memory)"}},"id":21221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2136:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":21222,"nodeType":"ExpressionStatement","src":"2136:44:86"},{"expression":{"arguments":[{"id":21226,"name":"createdUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21196,"src":"2215:11:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21227,"name":"hooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"2228:5:86","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}],"expression":{"id":21223,"name":"SaHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19875,"src":"2190:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SaHelper_$19875_$","typeString":"type(library SaHelper)"}},"id":21225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2199:15:86","memberName":"executeMainCall","nodeType":"MemberAccess","referencedDeclaration":19844,"src":"2190:24:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_SaHooks_$19478_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,struct IHooks.SaHooks memory) returns (bytes memory)"}},"id":21228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2190:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":21229,"nodeType":"ExpressionStatement","src":"2190:44:86"},{"expression":{"arguments":[{"id":21233,"name":"createdUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21196,"src":"2270:11:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21234,"name":"hooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"2283:5:86","typeDescriptions":{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SaHooks_$19478_memory_ptr","typeString":"struct IHooks.SaHooks memory"}],"expression":{"id":21230,"name":"SaHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19875,"src":"2244:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SaHelper_$19875_$","typeString":"type(library SaHelper)"}},"id":21232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2253:16:86","memberName":"executePostHooks","nodeType":"MemberAccess","referencedDeclaration":19799,"src":"2244:25:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_SaHooks_$19478_memory_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,struct IHooks.SaHooks memory) returns (bytes memory[] memory)"}},"id":21235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2244:45:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":21236,"nodeType":"ExpressionStatement","src":"2244:45:86"},{"assignments":[21241],"declarations":[{"constant":false,"id":21241,"mutability":"mutable","name":"tokens","nameLocation":"2320:6:86","nodeType":"VariableDeclaration","scope":21272,"src":"2299:27:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":21239,"nodeType":"UserDefinedTypeName","pathNode":{"id":21238,"name":"TokenAmount","nameLocations":["2299:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"2299:11:86"},"referencedDeclaration":15999,"src":"2299:11:86","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":21240,"nodeType":"ArrayTypeName","src":"2299:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"}],"id":21248,"initialValue":{"arguments":[{"hexValue":"31","id":21246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2347:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":21245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2329:17:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct TokenAmount memory[] memory)"},"typeName":{"baseType":{"id":21243,"nodeType":"UserDefinedTypeName","pathNode":{"id":21242,"name":"TokenAmount","nameLocations":["2333:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"2333:11:86"},"referencedDeclaration":15999,"src":"2333:11:86","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":21244,"nodeType":"ArrayTypeName","src":"2333:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}}},"id":21247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2329:20:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2299:50:86"},{"expression":{"id":21264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":21249,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21241,"src":"2359:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":21251,"indexExpression":{"hexValue":"30","id":21250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2366:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2359:9:86","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21253,"name":"tokenToBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21138,"src":"2409:13:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":21260,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2484:4:86","typeDescriptions":{"typeIdentifier":"t_contract$_TestSmartAccountProxyUser_$21434","typeString":"contract TestSmartAccountProxyUser"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TestSmartAccountProxyUser_$21434","typeString":"contract TestSmartAccountProxyUser"}],"id":21259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2476:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21258,"name":"address","nodeType":"ElementaryTypeName","src":"2476:7:86","typeDescriptions":{}}},"id":21261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2476:13:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":21255,"name":"tokenToBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21138,"src":"2451:13:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21254,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"2444:6:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4735_$","typeString":"type(contract IERC20)"}},"id":21256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2444:21:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4735","typeString":"contract IERC20"}},"id":21257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2466:9:86","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":4692,"src":"2444:31:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":21262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2444:46:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21252,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"2371:11:86","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TokenAmount_$15999_storage_ptr_$","typeString":"type(struct TokenAmount storage pointer)"}},"id":21263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2397:10:86","2436:6:86"],"names":["evmAddress","amount"],"nodeType":"FunctionCall","src":"2371:130:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"src":"2359:142:86","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":21265,"nodeType":"ExpressionStatement","src":"2359:142:86"},{"expression":{"arguments":[{"id":21267,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21181,"src":"2525:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":21268,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21241,"src":"2536:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"hexValue":"7061796c6f6164","id":21269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2544:9:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebc84cbd75ba5516bf45e7024a9e12bc3c5c880f73e3a5beca7ebba52b2867a7","typeString":"literal_string \"payload\""},"value":"payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_stringliteral_ebc84cbd75ba5516bf45e7024a9e12bc3c5c880f73e3a5beca7ebba52b2867a7","typeString":"literal_string \"payload\""}],"id":21266,"name":"_bridgeTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21433,"src":"2511:13:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes calldata,struct TokenAmount memory[] memory,string memory)"}},"id":21270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2511:43:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21271,"nodeType":"ExpressionStatement","src":"2511:43:86"}]},"functionSelector":"0c5561a6","id":21273,"implemented":true,"kind":"function","modifiers":[{"id":21186,"kind":"modifierInvocation","modifierName":{"id":21185,"name":"_onlyCrossChainLayer","nameLocations":["1868:20:86"],"nodeType":"IdentifierPath","referencedDeclaration":18624,"src":"1868:20:86"},"nodeType":"ModifierInvocation","src":"1868:20:86"}],"name":"test","nameLocation":"1804:4:86","nodeType":"FunctionDefinition","parameters":{"id":21184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21181,"mutability":"mutable","name":"tacHeader","nameLocation":"1824:9:86","nodeType":"VariableDeclaration","scope":21273,"src":"1809:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21180,"name":"bytes","nodeType":"ElementaryTypeName","src":"1809:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21183,"mutability":"mutable","name":"arguments","nameLocation":"1850:9:86","nodeType":"VariableDeclaration","scope":21273,"src":"1835:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21182,"name":"bytes","nodeType":"ElementaryTypeName","src":"1835:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1808:52:86"},"returnParameters":{"id":21187,"nodeType":"ParameterList","parameters":[],"src":"1889:0:86"},"scope":21434,"src":"1795:766:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21302,"nodeType":"Block","src":"2671:213:86","statements":[{"assignments":[21284],"declarations":[{"constant":false,"id":21284,"mutability":"mutable","name":"header","nameLocation":"2700:6:86","nodeType":"VariableDeclaration","scope":21302,"src":"2681:25:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":21283,"nodeType":"UserDefinedTypeName","pathNode":{"id":21282,"name":"TacHeaderV1","nameLocations":["2681:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"2681:11:86"},"referencedDeclaration":16110,"src":"2681:11:86","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"id":21288,"initialValue":{"arguments":[{"id":21286,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21275,"src":"2726:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":21285,"name":"_decodeTacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18660,"src":"2709:16:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_struct$_TacHeaderV1_$16110_memory_ptr_$","typeString":"function (bytes calldata) pure returns (struct TacHeaderV1 memory)"}},"id":21287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2709:27:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"2681:55:86"},{"assignments":[21290,null],"declarations":[{"constant":false,"id":21290,"mutability":"mutable","name":"createdUser","nameLocation":"2755:11:86","nodeType":"VariableDeclaration","scope":21302,"src":"2747:19:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21289,"name":"address","nodeType":"ElementaryTypeName","src":"2747:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":21296,"initialValue":{"arguments":[{"expression":{"id":21293,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21284,"src":"2808:6:86","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":21294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2815:9:86","memberName":"tvmCaller","nodeType":"MemberAccess","referencedDeclaration":16107,"src":"2808:16:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21291,"name":"tacSAFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21132,"src":"2771:12:86","typeDescriptions":{"typeIdentifier":"t_contract$_TacSAFactory_$19057","typeString":"contract TacSAFactory"}},"id":21292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2784:23:86","memberName":"getOrCreateSmartAccount","nodeType":"MemberAccess","referencedDeclaration":18838,"src":"2771:36:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_address_$_t_bool_$","typeString":"function (string memory) external returns (address,bool)"}},"id":21295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2771:54:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bool_$","typeString":"tuple(address,bool)"}},"nodeType":"VariableDeclarationStatement","src":"2746:79:86"},{"expression":{"arguments":[{"id":21298,"name":"createdUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21290,"src":"2854:11:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":21299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2867:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":21297,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[2489,2519],"referencedDeclaration":2489,"src":"2844:9:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":21300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2844:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21301,"nodeType":"ExpressionStatement","src":"2844:25:86"}]},"functionSelector":"7d6f0e9c","id":21303,"implemented":true,"kind":"function","modifiers":[{"id":21280,"kind":"modifierInvocation","modifierName":{"id":21279,"name":"_onlyCrossChainLayer","nameLocations":["2650:20:86"],"nodeType":"IdentifierPath","referencedDeclaration":18624,"src":"2650:20:86"},"nodeType":"ModifierInvocation","src":"2650:20:86"}],"name":"mintAndSafeTransferCheck","nameLocation":"2576:24:86","nodeType":"FunctionDefinition","parameters":{"id":21278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21275,"mutability":"mutable","name":"tacHeader","nameLocation":"2616:9:86","nodeType":"VariableDeclaration","scope":21303,"src":"2601:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21274,"name":"bytes","nodeType":"ElementaryTypeName","src":"2601:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21303,"src":"2627:14:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21276,"name":"bytes","nodeType":"ElementaryTypeName","src":"2627:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2600:42:86"},"returnParameters":{"id":21281,"nodeType":"ParameterList","parameters":[],"src":"2671:0:86"},"scope":21434,"src":"2567:317:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21315,"nodeType":"Block","src":"2918:73:86","statements":[{"expression":{"id":21307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2928:9:86","subExpression":{"id":21306,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21134,"src":"2928:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21308,"nodeType":"ExpressionStatement","src":"2928:9:86"},{"eventCall":{"arguments":[{"id":21310,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21134,"src":"2964:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":21311,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2973:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2977:6:86","memberName":"sender","nodeType":"MemberAccess","src":"2973:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21309,"name":"Incremented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21149,"src":"2952:11:86","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":21313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:32:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21314,"nodeType":"EmitStatement","src":"2947:37:86"}]},"functionSelector":"d09de08a","id":21316,"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"2899:9:86","nodeType":"FunctionDefinition","parameters":{"id":21304,"nodeType":"ParameterList","parameters":[],"src":"2908:2:86"},"returnParameters":{"id":21305,"nodeType":"ParameterList","parameters":[],"src":"2918:0:86"},"scope":21434,"src":"2890:101:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21336,"nodeType":"Block","src":"3055:107:86","statements":[{"expression":{"id":21325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21323,"name":"mainCallExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21136,"src":"3065:16:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":21324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3084:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3065:23:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21326,"nodeType":"ExpressionStatement","src":"3065:23:86"},{"expression":{"id":21329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21327,"name":"tokenToBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21138,"src":"3098:13:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21328,"name":"_tokenToBrdige","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21320,"src":"3114:14:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3098:30:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21330,"nodeType":"ExpressionStatement","src":"3098:30:86"},{"expression":{"id":21334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21331,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21140,"src":"3138:4:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":21332,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3145:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3149:6:86","memberName":"sender","nodeType":"MemberAccess","src":"3145:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3138:17:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21335,"nodeType":"ExpressionStatement","src":"3138:17:86"}]},"functionSelector":"22c3a793","id":21337,"implemented":true,"kind":"function","modifiers":[],"name":"mainCall","nameLocation":"3006:8:86","nodeType":"FunctionDefinition","parameters":{"id":21321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21337,"src":"3015:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21317,"name":"uint256","nodeType":"ElementaryTypeName","src":"3015:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21320,"mutability":"mutable","name":"_tokenToBrdige","nameLocation":"3032:14:86","nodeType":"VariableDeclaration","scope":21337,"src":"3024:22:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21319,"name":"address","nodeType":"ElementaryTypeName","src":"3024:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3014:33:86"},"returnParameters":{"id":21322,"nodeType":"ParameterList","parameters":[],"src":"3055:0:86"},"scope":21434,"src":"2997:165:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21350,"nodeType":"Block","src":"3233:77:86","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":21345,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21339,"src":"3271:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21344,"name":"IMockTacSmartAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21477,"src":"3250:20:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMockTacSmartAccount_$21477_$","typeString":"type(contract IMockTacSmartAccount)"}},"id":21346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3250:27:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMockTacSmartAccount_$21477","typeString":"contract IMockTacSmartAccount"}},"id":21347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3278:23:86","memberName":"upgradedToMockBluePrint","nodeType":"MemberAccess","referencedDeclaration":21476,"src":"3250:51:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_bool_$","typeString":"function () pure external returns (bool)"}},"id":21348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3250:53:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":21343,"id":21349,"nodeType":"Return","src":"3243:60:86"}]},"functionSelector":"ae6e7180","id":21351,"implemented":true,"kind":"function","modifiers":[],"name":"checkBlueprint","nameLocation":"3177:14:86","nodeType":"FunctionDefinition","parameters":{"id":21340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21339,"mutability":"mutable","name":"_user","nameLocation":"3200:5:86","nodeType":"VariableDeclaration","scope":21351,"src":"3192:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21338,"name":"address","nodeType":"ElementaryTypeName","src":"3192:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3191:15:86"},"returnParameters":{"id":21343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21351,"src":"3227:4:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21341,"name":"bool","nodeType":"ElementaryTypeName","src":"3227:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3226:6:86"},"scope":21434,"src":"3168:142:86","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":21432,"nodeType":"Block","src":"3654:730:86","statements":[{"body":{"id":21389,"nodeType":"Block","src":"3708:183:86","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":21377,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21358,"src":"3766:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":21379,"indexExpression":{"id":21378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21364,"src":"3773:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3766:9:86","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":21380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3776:10:86","memberName":"evmAddress","nodeType":"MemberAccess","referencedDeclaration":15996,"src":"3766:20:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":21381,"name":"_getCrossChainLayerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18643,"src":"3804:26:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3804:28:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":21383,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21358,"src":"3850:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":21385,"indexExpression":{"id":21384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21364,"src":"3857:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3850:9:86","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_memory_ptr","typeString":"struct TokenAmount memory"}},"id":21386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3860:6:86","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15998,"src":"3850:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21374,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12168,"src":"3722:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$12168_$","typeString":"type(library TransferHelper)"}},"id":21376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3737:11:86","memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":12053,"src":"3722:26:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":21387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3722:158:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21388,"nodeType":"ExpressionStatement","src":"3722:158:86"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21364,"src":"3684:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":21368,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21358,"src":"3688:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},"id":21369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3695:6:86","memberName":"length","nodeType":"MemberAccess","src":"3688:13:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3684:17:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21390,"initializationExpression":{"assignments":[21364],"declarations":[{"constant":false,"id":21364,"mutability":"mutable","name":"i","nameLocation":"3677:1:86","nodeType":"VariableDeclaration","scope":21390,"src":"3669:9:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21363,"name":"uint256","nodeType":"ElementaryTypeName","src":"3669:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21366,"initialValue":{"hexValue":"30","id":21365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3681:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3669:13:86"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":21372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3703:3:86","subExpression":{"id":21371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21364,"src":"3703:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21373,"nodeType":"ExpressionStatement","src":"3703:3:86"},"nodeType":"ForStatement","src":"3664:227:86"},{"assignments":[21393],"declarations":[{"constant":false,"id":21393,"mutability":"mutable","name":"header","nameLocation":"3920:6:86","nodeType":"VariableDeclaration","scope":21432,"src":"3901:25:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1"},"typeName":{"id":21392,"nodeType":"UserDefinedTypeName","pathNode":{"id":21391,"name":"TacHeaderV1","nameLocations":["3901:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":16110,"src":"3901:11:86"},"referencedDeclaration":16110,"src":"3901:11:86","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_storage_ptr","typeString":"struct TacHeaderV1"}},"visibility":"internal"}],"id":21397,"initialValue":{"arguments":[{"id":21395,"name":"tacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21354,"src":"3946:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":21394,"name":"_decodeTacHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18660,"src":"3929:16:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_struct$_TacHeaderV1_$16110_memory_ptr_$","typeString":"function (bytes calldata) pure returns (struct TacHeaderV1 memory)"}},"id":21396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3929:27:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"3901:55:86"},{"assignments":[21400],"declarations":[{"constant":false,"id":21400,"mutability":"mutable","name":"message","nameLocation":"3986:7:86","nodeType":"VariableDeclaration","scope":21432,"src":"3966:27:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1"},"typeName":{"id":21399,"nodeType":"UserDefinedTypeName","pathNode":{"id":21398,"name":"OutMessageV1","nameLocations":["3966:12:86"],"nodeType":"IdentifierPath","referencedDeclaration":16084,"src":"3966:12:86"},"referencedDeclaration":16084,"src":"3966:12:86","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_storage_ptr","typeString":"struct OutMessageV1"}},"visibility":"internal"}],"id":21422,"initialValue":{"arguments":[{"expression":{"id":21402,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21393,"src":"4034:6:86","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":21403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4041:9:86","memberName":"shardsKey","nodeType":"MemberAccess","referencedDeclaration":16101,"src":"4034:16:86","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":21404,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21393,"src":"4075:6:86","typeDescriptions":{"typeIdentifier":"t_struct$_TacHeaderV1_$16110_memory_ptr","typeString":"struct TacHeaderV1 memory"}},"id":21405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4082:9:86","memberName":"tvmCaller","nodeType":"MemberAccess","referencedDeclaration":16107,"src":"4075:16:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21406,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21360,"src":"4117:7:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"30","id":21407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4154:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":21408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4185:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":21412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4232:1:86","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":21411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4219:12:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":21409,"name":"string","nodeType":"ElementaryTypeName","src":"4223:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":21410,"nodeType":"ArrayTypeName","src":"4223:8:86","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":21413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4219:15:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":21414,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21358,"src":"4258:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"}},{"arguments":[{"hexValue":"30","id":21419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4307:1:86","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":21418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4291:15:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct NFTAmount memory[] memory)"},"typeName":{"baseType":{"id":21416,"nodeType":"UserDefinedTypeName","pathNode":{"id":21415,"name":"NFTAmount","nameLocations":["4295:9:86"],"nodeType":"IdentifierPath","referencedDeclaration":16007,"src":"4295:9:86"},"referencedDeclaration":16007,"src":"4295:9:86","typeDescriptions":{"typeIdentifier":"t_struct$_NFTAmount_$16007_storage_ptr","typeString":"struct NFTAmount"}},"id":21417,"nodeType":"ArrayTypeName","src":"4295:11:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_storage_$dyn_storage_ptr","typeString":"struct NFTAmount[]"}}},"id":21420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4291:18:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","typeString":"struct NFTAmount memory[] memory"}],"id":21401,"name":"OutMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16084,"src":"3996:12:86","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OutMessageV1_$16084_storage_ptr_$","typeString":"type(struct OutMessageV1 storage pointer)"}},"id":21421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4023:9:86","4064:9:86","4105:10:86","4138:14:86","4169:14:86","4200:17:86","4248:8:86","4278:11:86"],"names":["shardsKey","tvmTarget","tvmPayload","tvmProtocolFee","tvmExecutorFee","tvmValidExecutors","toBridge","toBridgeNFT"],"nodeType":"FunctionCall","src":"3996:324:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},"nodeType":"VariableDeclarationStatement","src":"3966:354:86"},{"expression":{"arguments":[{"id":21424,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21400,"src":"4346:7:86","typeDescriptions":{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"}},{"expression":{"arguments":[{"id":21427,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4363:4:86","typeDescriptions":{"typeIdentifier":"t_contract$_TestSmartAccountProxyUser_$21434","typeString":"contract TestSmartAccountProxyUser"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TestSmartAccountProxyUser_$21434","typeString":"contract TestSmartAccountProxyUser"}],"id":21426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4355:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21425,"name":"address","nodeType":"ElementaryTypeName","src":"4355:7:86","typeDescriptions":{}}},"id":21428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4355:13:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4369:7:86","memberName":"balance","nodeType":"MemberAccess","src":"4355:21:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutMessageV1_$16084_memory_ptr","typeString":"struct OutMessageV1 memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21423,"name":"_sendMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18684,"src":"4331:14:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_OutMessageV1_$16084_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct OutMessageV1 memory,uint256)"}},"id":21430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4331:46:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21431,"nodeType":"ExpressionStatement","src":"4331:46:86"}]},"documentation":{"id":21352,"nodeType":"StructuredDocumentation","src":"3316:194:86","text":"@notice Bridges tokens to the cross-chain layer\n @param tacHeader TAC header data\n @param tokens Array of token amounts to bridge\n @param payload Additional payload data"},"id":21433,"implemented":true,"kind":"function","modifiers":[],"name":"_bridgeTokens","nameLocation":"3524:13:86","nodeType":"FunctionDefinition","parameters":{"id":21361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21354,"mutability":"mutable","name":"tacHeader","nameLocation":"3562:9:86","nodeType":"VariableDeclaration","scope":21433,"src":"3547:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21353,"name":"bytes","nodeType":"ElementaryTypeName","src":"3547:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21358,"mutability":"mutable","name":"tokens","nameLocation":"3602:6:86","nodeType":"VariableDeclaration","scope":21433,"src":"3581:27:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","typeString":"struct TokenAmount[]"},"typeName":{"baseType":{"id":21356,"nodeType":"UserDefinedTypeName","pathNode":{"id":21355,"name":"TokenAmount","nameLocations":["3581:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":15999,"src":"3581:11:86"},"referencedDeclaration":15999,"src":"3581:11:86","typeDescriptions":{"typeIdentifier":"t_struct$_TokenAmount_$15999_storage_ptr","typeString":"struct TokenAmount"}},"id":21357,"nodeType":"ArrayTypeName","src":"3581:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenAmount_$15999_storage_$dyn_storage_ptr","typeString":"struct TokenAmount[]"}},"visibility":"internal"},{"constant":false,"id":21360,"mutability":"mutable","name":"payload","nameLocation":"3632:7:86","nodeType":"VariableDeclaration","scope":21433,"src":"3618:21:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21359,"name":"string","nodeType":"ElementaryTypeName","src":"3618:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3537:108:86"},"returnParameters":{"id":21362,"nodeType":"ParameterList","parameters":[],"src":"3654:0:86"},"scope":21434,"src":"3515:869:86","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":21435,"src":"1034:3357:86","usedErrors":[711,714,975,980,3313,3318,3327,3332,3337,3344,3349,3354,3422,3435,6379,6770,18423],"usedEvents":[719,3238,6145,6154,6163,21149]}],"src":"32:4360:86"},"id":86},"contracts/test/TestToken.sol":{"ast":{"absolutePath":"contracts/test/TestToken.sol","exportedSymbols":{"ERC20":[4657],"TestToken":[21466]},"id":21467,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21436,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:87"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":21438,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21467,"sourceUnit":4658,"src":"58:70:87","symbolAliases":[{"foreign":{"id":21437,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4657,"src":"67:5:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21439,"name":"ERC20","nameLocations":["152:5:87"],"nodeType":"IdentifierPath","referencedDeclaration":4657,"src":"152:5:87"},"id":21440,"nodeType":"InheritanceSpecifier","src":"152:5:87"}],"canonicalName":"TestToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21466,"linearizedBaseContracts":[21466,4657,3307,4761,4735,6658],"name":"TestToken","nameLocation":"139:9:87","nodeType":"ContractDefinition","nodes":[{"body":{"id":21451,"nodeType":"Block","src":"242:2:87","statements":[]},"id":21452,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":21447,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21442,"src":"226:5:87","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21448,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21444,"src":"233:7:87","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":21449,"kind":"baseConstructorSpecifier","modifierName":{"id":21446,"name":"ERC20","nameLocations":["220:5:87"],"nodeType":"IdentifierPath","referencedDeclaration":4657,"src":"220:5:87"},"nodeType":"ModifierInvocation","src":"220:21:87"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21442,"mutability":"mutable","name":"_name","nameLocation":"190:5:87","nodeType":"VariableDeclaration","scope":21452,"src":"176:19:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21441,"name":"string","nodeType":"ElementaryTypeName","src":"176:6:87","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21444,"mutability":"mutable","name":"_symbol","nameLocation":"211:7:87","nodeType":"VariableDeclaration","scope":21452,"src":"197:21:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21443,"name":"string","nodeType":"ElementaryTypeName","src":"197:6:87","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"175:44:87"},"returnParameters":{"id":21450,"nodeType":"ParameterList","parameters":[],"src":"242:0:87"},"scope":21466,"src":"164:80:87","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21464,"nodeType":"Block","src":"303:36:87","statements":[{"expression":{"arguments":[{"id":21460,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21454,"src":"319:3:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21461,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21456,"src":"324:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21459,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"313:5:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":21462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"313:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21463,"nodeType":"ExpressionStatement","src":"313:19:87"}]},"functionSelector":"40c10f19","id":21465,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"259:4:87","nodeType":"FunctionDefinition","parameters":{"id":21457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21454,"mutability":"mutable","name":"_to","nameLocation":"272:3:87","nodeType":"VariableDeclaration","scope":21465,"src":"264:11:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21453,"name":"address","nodeType":"ElementaryTypeName","src":"264:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21456,"mutability":"mutable","name":"_amount","nameLocation":"285:7:87","nodeType":"VariableDeclaration","scope":21465,"src":"277:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21455,"name":"uint256","nodeType":"ElementaryTypeName","src":"277:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"263:30:87"},"returnParameters":{"id":21458,"nodeType":"ParameterList","parameters":[],"src":"303:0:87"},"scope":21466,"src":"250:89:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21467,"src":"130:211:87","usedErrors":[3277,3282,3287,3296,3301,3306],"usedEvents":[4669,4678]}],"src":"32:309:87"},"id":87},"contracts/test/interfaces/IMockTacSmartAccount.sol":{"ast":{"absolutePath":"contracts/test/interfaces/IMockTacSmartAccount.sol","exportedSymbols":{"IMockTacSmartAccount":[21477],"NFTAmount":[16007],"TokenAmount":[15999]},"id":21478,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21468,"literals":["solidity","^","0.8",".28"],"nodeType":"PragmaDirective","src":"32:24:88"},{"absolutePath":"contracts/core/Structs.sol","file":"../../core/Structs.sol","id":21471,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21478,"sourceUnit":16218,"src":"58:62:88","symbolAliases":[{"foreign":{"id":21469,"name":"TokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"66:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":21470,"name":"NFTAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"79:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IMockTacSmartAccount","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21477,"linearizedBaseContracts":[21477],"name":"IMockTacSmartAccount","nameLocation":"131:20:88","nodeType":"ContractDefinition","nodes":[{"functionSelector":"41e15ea0","id":21476,"implemented":false,"kind":"function","modifiers":[],"name":"upgradedToMockBluePrint","nameLocation":"167:23:88","nodeType":"FunctionDefinition","parameters":{"id":21472,"nodeType":"ParameterList","parameters":[],"src":"190:2:88"},"returnParameters":{"id":21475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21476,"src":"215:4:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21473,"name":"bool","nodeType":"ElementaryTypeName","src":"215:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"214:6:88"},"scope":21477,"src":"158:63:88","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":21478,"src":"121:102:88","usedErrors":[],"usedEvents":[]}],"src":"32:192:88"},"id":88}},"contracts":{"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol":{"AccessControlUpgradeable":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":\"AccessControlUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"Ownable2StepUpgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","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"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"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\"},{\"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. This extension of the {Ownable} contract includes a two-step mechanism to transfer ownership, where the new owner must call {acceptOwnership} in order to replace the old one. This can help prevent common mistakes, such as transfers of ownership to incorrect accounts, or to contracts that are unable to interact with the permission system. The initial owner is specified at deployment time in the constructor for `Ownable`. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"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. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":\"Ownable2StepUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"OwnableUpgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"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\":\"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. The initial owner is set to the address provided by the deployer. 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.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\\\"MyToken\\\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"UUPSUpgradeable":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","proxiableUUID()":"52d1902d","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy. A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing `UUPSUpgradeable` with a custom implementation of upgrades. The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"UPGRADE_INTERFACE_VERSION\":{\"details\":\"The version of the upgrade interface of the contract. If this getter is missing, both `upgradeTo(address)` and `upgradeToAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called, while `upgradeToAndCall` will invoke the `receive` function if the second argument is the empty byte string. If the getter returns `\\\"5.0.0\\\"`, only `upgradeToAndCall(address,bytes)` is present, and the second argument must be the empty byte string if no function should be called, making it impossible to invoke the `receive` function during an upgrade.\"},\"__self\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":\"UUPSUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol":{"ERC20Upgradeable":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"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":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","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":"value","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"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\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"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\":\"value\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"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.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol\":\"ERC20Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol":{"ERC721Upgradeable":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":\"ERC721Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"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.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"ERC165Upgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC-165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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. The initial owner is set to the address provided by the deployer. 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.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":3005,"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"}}}}},"@openzeppelin/contracts/interfaces/IERC1363.sol":{"IERC1363":{"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","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":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","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":"value","type":"uint256"}],"name":"transferFrom","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":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferFromAndCall","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":"value","type":"uint256"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","approveAndCall(address,uint256)":"3177029f","approveAndCall(address,uint256,bytes)":"cae9ca51","balanceOf(address)":"70a08231","supportsInterface(bytes4)":"01ffc9a7","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256)":"1296ee62","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd","transferFromAndCall(address,address,uint256)":"d8fbe994","transferFromAndCall(address,address,uint256,bytes)":"c1d34b89"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"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\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"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\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferFromAndCall\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363]. Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.\",\"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 a `value` amount of tokens 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.\"},\"approveAndCall(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"approveAndCall(address,uint256,bytes)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\",\"params\":{\"data\":\"Additional data with no specified format, sent in call to `spender`.\",\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferAndCall(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to` and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"transferAndCall(address,uint256,bytes)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to` and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"data\":\"Additional data with no specified format, sent in call to `to`.\",\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFromAndCall(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"from\":\"The address which you want to send tokens from.\",\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"transferFromAndCall(address,address,uint256,bytes)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"data\":\"Additional data with no specified format, sent in call to `to`.\",\"from\":\"The address which you want to send tokens from.\",\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}}},\"title\":\"IERC1363\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1363.sol\":\"IERC1363\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/interfaces/IERC1967.sol":{"IERC1967":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":\"IERC1967\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"IERC1822Proxiable":{"abi":[{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"proxiableUUID()":"52d1902d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC-1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":\"IERC1822Proxiable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"IERC1155Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}},"IERC20Errors":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}},"IERC721Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"ERC1967Utils":{"abi":[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"ERC1967InvalidAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"beacon","type":"address"}],"name":"ERC1967InvalidBeacon","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220da71d79a39920b7e2b6a5be30a37eaeda4d6ee23aa64d67ddc4d2334eff781c664736f6c634300081c0033","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 0xDA PUSH18 0xD79A39920B7E2B6A5BE30A37EAEDA4D6EE23 0xAA PUSH5 0xD67DDC4D23 CALLVALUE 0xEF 0xF7 DUP2 0xC6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"496:5741:17:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;496:5741:17;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220da71d79a39920b7e2b6a5be30a37eaeda4d6ee23aa64d67ddc4d2334eff781c664736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDA PUSH18 0xD79A39920B7E2B6A5BE30A37EAEDA4D6EE23 0xAA PUSH5 0xD67DDC4D23 CALLVALUE 0xEF 0xF7 DUP2 0xC6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"496:5741:17:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"This library provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots.\",\"errors\":{\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1.\"},\"BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is the keccak-256 hash of \\\"eip1967.proxy.beacon\\\" subtracted by 1.\"},\"IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":\"ERC1967Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/Proxy.sol":{"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol":{"BeaconProxy":{"abi":[{"inputs":[{"internalType":"address","name":"beacon","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"beacon","type":"address"}],"name":"ERC1967InvalidBeacon","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"stateMutability":"payable","type":"fallback"}],"evm":{"bytecode":{"functionDebugData":{"@_3765":{"entryPoint":null,"id":3765,"parameterSlots":2,"returnSlots":0},"@_checkNonPayable_3695":{"entryPoint":648,"id":3695,"parameterSlots":0,"returnSlots":0},"@_revert_6627":{"entryPoint":776,"id":6627,"parameterSlots":1,"returnSlots":0},"@_setBeacon_3641":{"entryPoint":254,"id":3641,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_6545":{"entryPoint":529,"id":6545,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_6935":{"entryPoint":null,"id":6935,"parameterSlots":1,"returnSlots":1},"@upgradeBeaconToAndCall_3681":{"entryPoint":62,"id":3681,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_6585":{"entryPoint":681,"id":6585,"parameterSlots":3,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":817,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":1101,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":903,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1128,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":867,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":845,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2298:89","nodeType":"YulBlock","src":"0:2298:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"74:117:89","nodeType":"YulBlock","src":"74:117:89","statements":[{"nativeSrc":"84:22:89","nodeType":"YulAssignment","src":"84:22:89","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:89","nodeType":"YulIdentifier","src":"99:6:89"}],"functionName":{"name":"mload","nativeSrc":"93:5:89","nodeType":"YulIdentifier","src":"93:5:89"},"nativeSrc":"93:13:89","nodeType":"YulFunctionCall","src":"93:13:89"},"variableNames":[{"name":"value","nativeSrc":"84:5:89","nodeType":"YulIdentifier","src":"84:5:89"}]},{"body":{"nativeSrc":"169:16:89","nodeType":"YulBlock","src":"169:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:89","nodeType":"YulLiteral","src":"178:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:89","nodeType":"YulLiteral","src":"181:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:89","nodeType":"YulIdentifier","src":"171:6:89"},"nativeSrc":"171:12:89","nodeType":"YulFunctionCall","src":"171:12:89"},"nativeSrc":"171:12:89","nodeType":"YulExpressionStatement","src":"171:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:89","nodeType":"YulIdentifier","src":"128:5:89"},{"arguments":[{"name":"value","nativeSrc":"139:5:89","nodeType":"YulIdentifier","src":"139:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:89","nodeType":"YulLiteral","src":"154:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:89","nodeType":"YulLiteral","src":"159:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:89","nodeType":"YulIdentifier","src":"150:3:89"},"nativeSrc":"150:11:89","nodeType":"YulFunctionCall","src":"150:11:89"},{"kind":"number","nativeSrc":"163:1:89","nodeType":"YulLiteral","src":"163:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:89","nodeType":"YulIdentifier","src":"146:3:89"},"nativeSrc":"146:19:89","nodeType":"YulFunctionCall","src":"146:19:89"}],"functionName":{"name":"and","nativeSrc":"135:3:89","nodeType":"YulIdentifier","src":"135:3:89"},"nativeSrc":"135:31:89","nodeType":"YulFunctionCall","src":"135:31:89"}],"functionName":{"name":"eq","nativeSrc":"125:2:89","nodeType":"YulIdentifier","src":"125:2:89"},"nativeSrc":"125:42:89","nodeType":"YulFunctionCall","src":"125:42:89"}],"functionName":{"name":"iszero","nativeSrc":"118:6:89","nodeType":"YulIdentifier","src":"118:6:89"},"nativeSrc":"118:50:89","nodeType":"YulFunctionCall","src":"118:50:89"},"nativeSrc":"115:70:89","nodeType":"YulIf","src":"115:70:89"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:89","nodeType":"YulTypedName","src":"53:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:89","nodeType":"YulTypedName","src":"64:5:89","type":""}],"src":"14:177:89"},{"body":{"nativeSrc":"228:95:89","nodeType":"YulBlock","src":"228:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"245:1:89","nodeType":"YulLiteral","src":"245:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"252:3:89","nodeType":"YulLiteral","src":"252:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"257:10:89","nodeType":"YulLiteral","src":"257:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"248:3:89","nodeType":"YulIdentifier","src":"248:3:89"},"nativeSrc":"248:20:89","nodeType":"YulFunctionCall","src":"248:20:89"}],"functionName":{"name":"mstore","nativeSrc":"238:6:89","nodeType":"YulIdentifier","src":"238:6:89"},"nativeSrc":"238:31:89","nodeType":"YulFunctionCall","src":"238:31:89"},"nativeSrc":"238:31:89","nodeType":"YulExpressionStatement","src":"238:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"285:1:89","nodeType":"YulLiteral","src":"285:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"288:4:89","nodeType":"YulLiteral","src":"288:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"278:6:89","nodeType":"YulIdentifier","src":"278:6:89"},"nativeSrc":"278:15:89","nodeType":"YulFunctionCall","src":"278:15:89"},"nativeSrc":"278:15:89","nodeType":"YulExpressionStatement","src":"278:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309:1:89","nodeType":"YulLiteral","src":"309:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"312:4:89","nodeType":"YulLiteral","src":"312:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"302:6:89","nodeType":"YulIdentifier","src":"302:6:89"},"nativeSrc":"302:15:89","nodeType":"YulFunctionCall","src":"302:15:89"},"nativeSrc":"302:15:89","nodeType":"YulExpressionStatement","src":"302:15:89"}]},"name":"panic_error_0x41","nativeSrc":"196:127:89","nodeType":"YulFunctionDefinition","src":"196:127:89"},{"body":{"nativeSrc":"394:184:89","nodeType":"YulBlock","src":"394:184:89","statements":[{"nativeSrc":"404:10:89","nodeType":"YulVariableDeclaration","src":"404:10:89","value":{"kind":"number","nativeSrc":"413:1:89","nodeType":"YulLiteral","src":"413:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"408:1:89","nodeType":"YulTypedName","src":"408:1:89","type":""}]},{"body":{"nativeSrc":"473:63:89","nodeType":"YulBlock","src":"473:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"498:3:89","nodeType":"YulIdentifier","src":"498:3:89"},{"name":"i","nativeSrc":"503:1:89","nodeType":"YulIdentifier","src":"503:1:89"}],"functionName":{"name":"add","nativeSrc":"494:3:89","nodeType":"YulIdentifier","src":"494:3:89"},"nativeSrc":"494:11:89","nodeType":"YulFunctionCall","src":"494:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"517:3:89","nodeType":"YulIdentifier","src":"517:3:89"},{"name":"i","nativeSrc":"522:1:89","nodeType":"YulIdentifier","src":"522:1:89"}],"functionName":{"name":"add","nativeSrc":"513:3:89","nodeType":"YulIdentifier","src":"513:3:89"},"nativeSrc":"513:11:89","nodeType":"YulFunctionCall","src":"513:11:89"}],"functionName":{"name":"mload","nativeSrc":"507:5:89","nodeType":"YulIdentifier","src":"507:5:89"},"nativeSrc":"507:18:89","nodeType":"YulFunctionCall","src":"507:18:89"}],"functionName":{"name":"mstore","nativeSrc":"487:6:89","nodeType":"YulIdentifier","src":"487:6:89"},"nativeSrc":"487:39:89","nodeType":"YulFunctionCall","src":"487:39:89"},"nativeSrc":"487:39:89","nodeType":"YulExpressionStatement","src":"487:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"434:1:89","nodeType":"YulIdentifier","src":"434:1:89"},{"name":"length","nativeSrc":"437:6:89","nodeType":"YulIdentifier","src":"437:6:89"}],"functionName":{"name":"lt","nativeSrc":"431:2:89","nodeType":"YulIdentifier","src":"431:2:89"},"nativeSrc":"431:13:89","nodeType":"YulFunctionCall","src":"431:13:89"},"nativeSrc":"423:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"445:19:89","nodeType":"YulBlock","src":"445:19:89","statements":[{"nativeSrc":"447:15:89","nodeType":"YulAssignment","src":"447:15:89","value":{"arguments":[{"name":"i","nativeSrc":"456:1:89","nodeType":"YulIdentifier","src":"456:1:89"},{"kind":"number","nativeSrc":"459:2:89","nodeType":"YulLiteral","src":"459:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"452:3:89","nodeType":"YulIdentifier","src":"452:3:89"},"nativeSrc":"452:10:89","nodeType":"YulFunctionCall","src":"452:10:89"},"variableNames":[{"name":"i","nativeSrc":"447:1:89","nodeType":"YulIdentifier","src":"447:1:89"}]}]},"pre":{"nativeSrc":"427:3:89","nodeType":"YulBlock","src":"427:3:89","statements":[]},"src":"423:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"556:3:89","nodeType":"YulIdentifier","src":"556:3:89"},{"name":"length","nativeSrc":"561:6:89","nodeType":"YulIdentifier","src":"561:6:89"}],"functionName":{"name":"add","nativeSrc":"552:3:89","nodeType":"YulIdentifier","src":"552:3:89"},"nativeSrc":"552:16:89","nodeType":"YulFunctionCall","src":"552:16:89"},{"kind":"number","nativeSrc":"570:1:89","nodeType":"YulLiteral","src":"570:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"545:6:89","nodeType":"YulIdentifier","src":"545:6:89"},"nativeSrc":"545:27:89","nodeType":"YulFunctionCall","src":"545:27:89"},"nativeSrc":"545:27:89","nodeType":"YulExpressionStatement","src":"545:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"328:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"372:3:89","nodeType":"YulTypedName","src":"372:3:89","type":""},{"name":"dst","nativeSrc":"377:3:89","nodeType":"YulTypedName","src":"377:3:89","type":""},{"name":"length","nativeSrc":"382:6:89","nodeType":"YulTypedName","src":"382:6:89","type":""}],"src":"328:250:89"},{"body":{"nativeSrc":"690:893:89","nodeType":"YulBlock","src":"690:893:89","statements":[{"body":{"nativeSrc":"736:16:89","nodeType":"YulBlock","src":"736:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"745:1:89","nodeType":"YulLiteral","src":"745:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"748:1:89","nodeType":"YulLiteral","src":"748:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"738:6:89","nodeType":"YulIdentifier","src":"738:6:89"},"nativeSrc":"738:12:89","nodeType":"YulFunctionCall","src":"738:12:89"},"nativeSrc":"738:12:89","nodeType":"YulExpressionStatement","src":"738:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"711:7:89","nodeType":"YulIdentifier","src":"711:7:89"},{"name":"headStart","nativeSrc":"720:9:89","nodeType":"YulIdentifier","src":"720:9:89"}],"functionName":{"name":"sub","nativeSrc":"707:3:89","nodeType":"YulIdentifier","src":"707:3:89"},"nativeSrc":"707:23:89","nodeType":"YulFunctionCall","src":"707:23:89"},{"kind":"number","nativeSrc":"732:2:89","nodeType":"YulLiteral","src":"732:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"703:3:89","nodeType":"YulIdentifier","src":"703:3:89"},"nativeSrc":"703:32:89","nodeType":"YulFunctionCall","src":"703:32:89"},"nativeSrc":"700:52:89","nodeType":"YulIf","src":"700:52:89"},{"nativeSrc":"761:50:89","nodeType":"YulAssignment","src":"761:50:89","value":{"arguments":[{"name":"headStart","nativeSrc":"801:9:89","nodeType":"YulIdentifier","src":"801:9:89"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"771:29:89","nodeType":"YulIdentifier","src":"771:29:89"},"nativeSrc":"771:40:89","nodeType":"YulFunctionCall","src":"771:40:89"},"variableNames":[{"name":"value0","nativeSrc":"761:6:89","nodeType":"YulIdentifier","src":"761:6:89"}]},{"nativeSrc":"820:39:89","nodeType":"YulVariableDeclaration","src":"820:39:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"844:9:89","nodeType":"YulIdentifier","src":"844:9:89"},{"kind":"number","nativeSrc":"855:2:89","nodeType":"YulLiteral","src":"855:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"840:3:89","nodeType":"YulIdentifier","src":"840:3:89"},"nativeSrc":"840:18:89","nodeType":"YulFunctionCall","src":"840:18:89"}],"functionName":{"name":"mload","nativeSrc":"834:5:89","nodeType":"YulIdentifier","src":"834:5:89"},"nativeSrc":"834:25:89","nodeType":"YulFunctionCall","src":"834:25:89"},"variables":[{"name":"offset","nativeSrc":"824:6:89","nodeType":"YulTypedName","src":"824:6:89","type":""}]},{"body":{"nativeSrc":"902:16:89","nodeType":"YulBlock","src":"902:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"911:1:89","nodeType":"YulLiteral","src":"911:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"914:1:89","nodeType":"YulLiteral","src":"914:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"904:6:89","nodeType":"YulIdentifier","src":"904:6:89"},"nativeSrc":"904:12:89","nodeType":"YulFunctionCall","src":"904:12:89"},"nativeSrc":"904:12:89","nodeType":"YulExpressionStatement","src":"904:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"874:6:89","nodeType":"YulIdentifier","src":"874:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"890:2:89","nodeType":"YulLiteral","src":"890:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"894:1:89","nodeType":"YulLiteral","src":"894:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"886:3:89","nodeType":"YulIdentifier","src":"886:3:89"},"nativeSrc":"886:10:89","nodeType":"YulFunctionCall","src":"886:10:89"},{"kind":"number","nativeSrc":"898:1:89","nodeType":"YulLiteral","src":"898:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"882:3:89","nodeType":"YulIdentifier","src":"882:3:89"},"nativeSrc":"882:18:89","nodeType":"YulFunctionCall","src":"882:18:89"}],"functionName":{"name":"gt","nativeSrc":"871:2:89","nodeType":"YulIdentifier","src":"871:2:89"},"nativeSrc":"871:30:89","nodeType":"YulFunctionCall","src":"871:30:89"},"nativeSrc":"868:50:89","nodeType":"YulIf","src":"868:50:89"},{"nativeSrc":"927:32:89","nodeType":"YulVariableDeclaration","src":"927:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"941:9:89","nodeType":"YulIdentifier","src":"941:9:89"},{"name":"offset","nativeSrc":"952:6:89","nodeType":"YulIdentifier","src":"952:6:89"}],"functionName":{"name":"add","nativeSrc":"937:3:89","nodeType":"YulIdentifier","src":"937:3:89"},"nativeSrc":"937:22:89","nodeType":"YulFunctionCall","src":"937:22:89"},"variables":[{"name":"_1","nativeSrc":"931:2:89","nodeType":"YulTypedName","src":"931:2:89","type":""}]},{"body":{"nativeSrc":"1007:16:89","nodeType":"YulBlock","src":"1007:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1016:1:89","nodeType":"YulLiteral","src":"1016:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1019:1:89","nodeType":"YulLiteral","src":"1019:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1009:6:89","nodeType":"YulIdentifier","src":"1009:6:89"},"nativeSrc":"1009:12:89","nodeType":"YulFunctionCall","src":"1009:12:89"},"nativeSrc":"1009:12:89","nodeType":"YulExpressionStatement","src":"1009:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"986:2:89","nodeType":"YulIdentifier","src":"986:2:89"},{"kind":"number","nativeSrc":"990:4:89","nodeType":"YulLiteral","src":"990:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"982:3:89","nodeType":"YulIdentifier","src":"982:3:89"},"nativeSrc":"982:13:89","nodeType":"YulFunctionCall","src":"982:13:89"},{"name":"dataEnd","nativeSrc":"997:7:89","nodeType":"YulIdentifier","src":"997:7:89"}],"functionName":{"name":"slt","nativeSrc":"978:3:89","nodeType":"YulIdentifier","src":"978:3:89"},"nativeSrc":"978:27:89","nodeType":"YulFunctionCall","src":"978:27:89"}],"functionName":{"name":"iszero","nativeSrc":"971:6:89","nodeType":"YulIdentifier","src":"971:6:89"},"nativeSrc":"971:35:89","nodeType":"YulFunctionCall","src":"971:35:89"},"nativeSrc":"968:55:89","nodeType":"YulIf","src":"968:55:89"},{"nativeSrc":"1032:23:89","nodeType":"YulVariableDeclaration","src":"1032:23:89","value":{"arguments":[{"name":"_1","nativeSrc":"1052:2:89","nodeType":"YulIdentifier","src":"1052:2:89"}],"functionName":{"name":"mload","nativeSrc":"1046:5:89","nodeType":"YulIdentifier","src":"1046:5:89"},"nativeSrc":"1046:9:89","nodeType":"YulFunctionCall","src":"1046:9:89"},"variables":[{"name":"length","nativeSrc":"1036:6:89","nodeType":"YulTypedName","src":"1036:6:89","type":""}]},{"body":{"nativeSrc":"1098:22:89","nodeType":"YulBlock","src":"1098:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1100:16:89","nodeType":"YulIdentifier","src":"1100:16:89"},"nativeSrc":"1100:18:89","nodeType":"YulFunctionCall","src":"1100:18:89"},"nativeSrc":"1100:18:89","nodeType":"YulExpressionStatement","src":"1100:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1070:6:89","nodeType":"YulIdentifier","src":"1070:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1086:2:89","nodeType":"YulLiteral","src":"1086:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"1090:1:89","nodeType":"YulLiteral","src":"1090:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1082:3:89","nodeType":"YulIdentifier","src":"1082:3:89"},"nativeSrc":"1082:10:89","nodeType":"YulFunctionCall","src":"1082:10:89"},{"kind":"number","nativeSrc":"1094:1:89","nodeType":"YulLiteral","src":"1094:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1078:3:89","nodeType":"YulIdentifier","src":"1078:3:89"},"nativeSrc":"1078:18:89","nodeType":"YulFunctionCall","src":"1078:18:89"}],"functionName":{"name":"gt","nativeSrc":"1067:2:89","nodeType":"YulIdentifier","src":"1067:2:89"},"nativeSrc":"1067:30:89","nodeType":"YulFunctionCall","src":"1067:30:89"},"nativeSrc":"1064:56:89","nodeType":"YulIf","src":"1064:56:89"},{"nativeSrc":"1129:23:89","nodeType":"YulVariableDeclaration","src":"1129:23:89","value":{"arguments":[{"kind":"number","nativeSrc":"1149:2:89","nodeType":"YulLiteral","src":"1149:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1143:5:89","nodeType":"YulIdentifier","src":"1143:5:89"},"nativeSrc":"1143:9:89","nodeType":"YulFunctionCall","src":"1143:9:89"},"variables":[{"name":"memPtr","nativeSrc":"1133:6:89","nodeType":"YulTypedName","src":"1133:6:89","type":""}]},{"nativeSrc":"1161:85:89","nodeType":"YulVariableDeclaration","src":"1161:85:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"1183:6:89","nodeType":"YulIdentifier","src":"1183:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1207:6:89","nodeType":"YulIdentifier","src":"1207:6:89"},{"kind":"number","nativeSrc":"1215:4:89","nodeType":"YulLiteral","src":"1215:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1203:3:89","nodeType":"YulIdentifier","src":"1203:3:89"},"nativeSrc":"1203:17:89","nodeType":"YulFunctionCall","src":"1203:17:89"},{"arguments":[{"kind":"number","nativeSrc":"1226:2:89","nodeType":"YulLiteral","src":"1226:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1222:3:89","nodeType":"YulIdentifier","src":"1222:3:89"},"nativeSrc":"1222:7:89","nodeType":"YulFunctionCall","src":"1222:7:89"}],"functionName":{"name":"and","nativeSrc":"1199:3:89","nodeType":"YulIdentifier","src":"1199:3:89"},"nativeSrc":"1199:31:89","nodeType":"YulFunctionCall","src":"1199:31:89"},{"kind":"number","nativeSrc":"1232:2:89","nodeType":"YulLiteral","src":"1232:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1195:3:89","nodeType":"YulIdentifier","src":"1195:3:89"},"nativeSrc":"1195:40:89","nodeType":"YulFunctionCall","src":"1195:40:89"},{"arguments":[{"kind":"number","nativeSrc":"1241:2:89","nodeType":"YulLiteral","src":"1241:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1237:3:89","nodeType":"YulIdentifier","src":"1237:3:89"},"nativeSrc":"1237:7:89","nodeType":"YulFunctionCall","src":"1237:7:89"}],"functionName":{"name":"and","nativeSrc":"1191:3:89","nodeType":"YulIdentifier","src":"1191:3:89"},"nativeSrc":"1191:54:89","nodeType":"YulFunctionCall","src":"1191:54:89"}],"functionName":{"name":"add","nativeSrc":"1179:3:89","nodeType":"YulIdentifier","src":"1179:3:89"},"nativeSrc":"1179:67:89","nodeType":"YulFunctionCall","src":"1179:67:89"},"variables":[{"name":"newFreePtr","nativeSrc":"1165:10:89","nodeType":"YulTypedName","src":"1165:10:89","type":""}]},{"body":{"nativeSrc":"1321:22:89","nodeType":"YulBlock","src":"1321:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1323:16:89","nodeType":"YulIdentifier","src":"1323:16:89"},"nativeSrc":"1323:18:89","nodeType":"YulFunctionCall","src":"1323:18:89"},"nativeSrc":"1323:18:89","nodeType":"YulExpressionStatement","src":"1323:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1264:10:89","nodeType":"YulIdentifier","src":"1264:10:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1284:2:89","nodeType":"YulLiteral","src":"1284:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"1288:1:89","nodeType":"YulLiteral","src":"1288:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1280:3:89","nodeType":"YulIdentifier","src":"1280:3:89"},"nativeSrc":"1280:10:89","nodeType":"YulFunctionCall","src":"1280:10:89"},{"kind":"number","nativeSrc":"1292:1:89","nodeType":"YulLiteral","src":"1292:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1276:3:89","nodeType":"YulIdentifier","src":"1276:3:89"},"nativeSrc":"1276:18:89","nodeType":"YulFunctionCall","src":"1276:18:89"}],"functionName":{"name":"gt","nativeSrc":"1261:2:89","nodeType":"YulIdentifier","src":"1261:2:89"},"nativeSrc":"1261:34:89","nodeType":"YulFunctionCall","src":"1261:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1300:10:89","nodeType":"YulIdentifier","src":"1300:10:89"},{"name":"memPtr","nativeSrc":"1312:6:89","nodeType":"YulIdentifier","src":"1312:6:89"}],"functionName":{"name":"lt","nativeSrc":"1297:2:89","nodeType":"YulIdentifier","src":"1297:2:89"},"nativeSrc":"1297:22:89","nodeType":"YulFunctionCall","src":"1297:22:89"}],"functionName":{"name":"or","nativeSrc":"1258:2:89","nodeType":"YulIdentifier","src":"1258:2:89"},"nativeSrc":"1258:62:89","nodeType":"YulFunctionCall","src":"1258:62:89"},"nativeSrc":"1255:88:89","nodeType":"YulIf","src":"1255:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1359:2:89","nodeType":"YulLiteral","src":"1359:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1363:10:89","nodeType":"YulIdentifier","src":"1363:10:89"}],"functionName":{"name":"mstore","nativeSrc":"1352:6:89","nodeType":"YulIdentifier","src":"1352:6:89"},"nativeSrc":"1352:22:89","nodeType":"YulFunctionCall","src":"1352:22:89"},"nativeSrc":"1352:22:89","nodeType":"YulExpressionStatement","src":"1352:22:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1390:6:89","nodeType":"YulIdentifier","src":"1390:6:89"},{"name":"length","nativeSrc":"1398:6:89","nodeType":"YulIdentifier","src":"1398:6:89"}],"functionName":{"name":"mstore","nativeSrc":"1383:6:89","nodeType":"YulIdentifier","src":"1383:6:89"},"nativeSrc":"1383:22:89","nodeType":"YulFunctionCall","src":"1383:22:89"},"nativeSrc":"1383:22:89","nodeType":"YulExpressionStatement","src":"1383:22:89"},{"body":{"nativeSrc":"1455:16:89","nodeType":"YulBlock","src":"1455:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:89","nodeType":"YulLiteral","src":"1464:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:89","nodeType":"YulLiteral","src":"1467:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:89","nodeType":"YulIdentifier","src":"1457:6:89"},"nativeSrc":"1457:12:89","nodeType":"YulFunctionCall","src":"1457:12:89"},"nativeSrc":"1457:12:89","nodeType":"YulExpressionStatement","src":"1457:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1428:2:89","nodeType":"YulIdentifier","src":"1428:2:89"},{"name":"length","nativeSrc":"1432:6:89","nodeType":"YulIdentifier","src":"1432:6:89"}],"functionName":{"name":"add","nativeSrc":"1424:3:89","nodeType":"YulIdentifier","src":"1424:3:89"},"nativeSrc":"1424:15:89","nodeType":"YulFunctionCall","src":"1424:15:89"},{"kind":"number","nativeSrc":"1441:2:89","nodeType":"YulLiteral","src":"1441:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1420:3:89","nodeType":"YulIdentifier","src":"1420:3:89"},"nativeSrc":"1420:24:89","nodeType":"YulFunctionCall","src":"1420:24:89"},{"name":"dataEnd","nativeSrc":"1446:7:89","nodeType":"YulIdentifier","src":"1446:7:89"}],"functionName":{"name":"gt","nativeSrc":"1417:2:89","nodeType":"YulIdentifier","src":"1417:2:89"},"nativeSrc":"1417:37:89","nodeType":"YulFunctionCall","src":"1417:37:89"},"nativeSrc":"1414:57:89","nodeType":"YulIf","src":"1414:57:89"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1519:2:89","nodeType":"YulIdentifier","src":"1519:2:89"},{"kind":"number","nativeSrc":"1523:2:89","nodeType":"YulLiteral","src":"1523:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1515:3:89","nodeType":"YulIdentifier","src":"1515:3:89"},"nativeSrc":"1515:11:89","nodeType":"YulFunctionCall","src":"1515:11:89"},{"arguments":[{"name":"memPtr","nativeSrc":"1532:6:89","nodeType":"YulIdentifier","src":"1532:6:89"},{"kind":"number","nativeSrc":"1540:2:89","nodeType":"YulLiteral","src":"1540:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1528:3:89","nodeType":"YulIdentifier","src":"1528:3:89"},"nativeSrc":"1528:15:89","nodeType":"YulFunctionCall","src":"1528:15:89"},{"name":"length","nativeSrc":"1545:6:89","nodeType":"YulIdentifier","src":"1545:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1480:34:89","nodeType":"YulIdentifier","src":"1480:34:89"},"nativeSrc":"1480:72:89","nodeType":"YulFunctionCall","src":"1480:72:89"},"nativeSrc":"1480:72:89","nodeType":"YulExpressionStatement","src":"1480:72:89"},{"nativeSrc":"1561:16:89","nodeType":"YulAssignment","src":"1561:16:89","value":{"name":"memPtr","nativeSrc":"1571:6:89","nodeType":"YulIdentifier","src":"1571:6:89"},"variableNames":[{"name":"value1","nativeSrc":"1561:6:89","nodeType":"YulIdentifier","src":"1561:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"583:1000:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"648:9:89","nodeType":"YulTypedName","src":"648:9:89","type":""},{"name":"dataEnd","nativeSrc":"659:7:89","nodeType":"YulTypedName","src":"659:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"671:6:89","nodeType":"YulTypedName","src":"671:6:89","type":""},{"name":"value1","nativeSrc":"679:6:89","nodeType":"YulTypedName","src":"679:6:89","type":""}],"src":"583:1000:89"},{"body":{"nativeSrc":"1669:127:89","nodeType":"YulBlock","src":"1669:127:89","statements":[{"body":{"nativeSrc":"1715:16:89","nodeType":"YulBlock","src":"1715:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1724:1:89","nodeType":"YulLiteral","src":"1724:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1727:1:89","nodeType":"YulLiteral","src":"1727:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1717:6:89","nodeType":"YulIdentifier","src":"1717:6:89"},"nativeSrc":"1717:12:89","nodeType":"YulFunctionCall","src":"1717:12:89"},"nativeSrc":"1717:12:89","nodeType":"YulExpressionStatement","src":"1717:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1690:7:89","nodeType":"YulIdentifier","src":"1690:7:89"},{"name":"headStart","nativeSrc":"1699:9:89","nodeType":"YulIdentifier","src":"1699:9:89"}],"functionName":{"name":"sub","nativeSrc":"1686:3:89","nodeType":"YulIdentifier","src":"1686:3:89"},"nativeSrc":"1686:23:89","nodeType":"YulFunctionCall","src":"1686:23:89"},{"kind":"number","nativeSrc":"1711:2:89","nodeType":"YulLiteral","src":"1711:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1682:3:89","nodeType":"YulIdentifier","src":"1682:3:89"},"nativeSrc":"1682:32:89","nodeType":"YulFunctionCall","src":"1682:32:89"},"nativeSrc":"1679:52:89","nodeType":"YulIf","src":"1679:52:89"},{"nativeSrc":"1740:50:89","nodeType":"YulAssignment","src":"1740:50:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1780:9:89","nodeType":"YulIdentifier","src":"1780:9:89"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"1750:29:89","nodeType":"YulIdentifier","src":"1750:29:89"},"nativeSrc":"1750:40:89","nodeType":"YulFunctionCall","src":"1750:40:89"},"variableNames":[{"name":"value0","nativeSrc":"1740:6:89","nodeType":"YulIdentifier","src":"1740:6:89"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"1588:208:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1635:9:89","nodeType":"YulTypedName","src":"1635:9:89","type":""},{"name":"dataEnd","nativeSrc":"1646:7:89","nodeType":"YulTypedName","src":"1646:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1658:6:89","nodeType":"YulTypedName","src":"1658:6:89","type":""}],"src":"1588:208:89"},{"body":{"nativeSrc":"1902:102:89","nodeType":"YulBlock","src":"1902:102:89","statements":[{"nativeSrc":"1912:26:89","nodeType":"YulAssignment","src":"1912:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1924:9:89","nodeType":"YulIdentifier","src":"1924:9:89"},{"kind":"number","nativeSrc":"1935:2:89","nodeType":"YulLiteral","src":"1935:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1920:3:89","nodeType":"YulIdentifier","src":"1920:3:89"},"nativeSrc":"1920:18:89","nodeType":"YulFunctionCall","src":"1920:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1912:4:89","nodeType":"YulIdentifier","src":"1912:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1954:9:89","nodeType":"YulIdentifier","src":"1954:9:89"},{"arguments":[{"name":"value0","nativeSrc":"1969:6:89","nodeType":"YulIdentifier","src":"1969:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1985:3:89","nodeType":"YulLiteral","src":"1985:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1990:1:89","nodeType":"YulLiteral","src":"1990:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1981:3:89","nodeType":"YulIdentifier","src":"1981:3:89"},"nativeSrc":"1981:11:89","nodeType":"YulFunctionCall","src":"1981:11:89"},{"kind":"number","nativeSrc":"1994:1:89","nodeType":"YulLiteral","src":"1994:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1977:3:89","nodeType":"YulIdentifier","src":"1977:3:89"},"nativeSrc":"1977:19:89","nodeType":"YulFunctionCall","src":"1977:19:89"}],"functionName":{"name":"and","nativeSrc":"1965:3:89","nodeType":"YulIdentifier","src":"1965:3:89"},"nativeSrc":"1965:32:89","nodeType":"YulFunctionCall","src":"1965:32:89"}],"functionName":{"name":"mstore","nativeSrc":"1947:6:89","nodeType":"YulIdentifier","src":"1947:6:89"},"nativeSrc":"1947:51:89","nodeType":"YulFunctionCall","src":"1947:51:89"},"nativeSrc":"1947:51:89","nodeType":"YulExpressionStatement","src":"1947:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1801:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1871:9:89","nodeType":"YulTypedName","src":"1871:9:89","type":""},{"name":"value0","nativeSrc":"1882:6:89","nodeType":"YulTypedName","src":"1882:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1893:4:89","nodeType":"YulTypedName","src":"1893:4:89","type":""}],"src":"1801:203:89"},{"body":{"nativeSrc":"2146:150:89","nodeType":"YulBlock","src":"2146:150:89","statements":[{"nativeSrc":"2156:27:89","nodeType":"YulVariableDeclaration","src":"2156:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"2176:6:89","nodeType":"YulIdentifier","src":"2176:6:89"}],"functionName":{"name":"mload","nativeSrc":"2170:5:89","nodeType":"YulIdentifier","src":"2170:5:89"},"nativeSrc":"2170:13:89","nodeType":"YulFunctionCall","src":"2170:13:89"},"variables":[{"name":"length","nativeSrc":"2160:6:89","nodeType":"YulTypedName","src":"2160:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2231:6:89","nodeType":"YulIdentifier","src":"2231:6:89"},{"kind":"number","nativeSrc":"2239:4:89","nodeType":"YulLiteral","src":"2239:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2227:3:89","nodeType":"YulIdentifier","src":"2227:3:89"},"nativeSrc":"2227:17:89","nodeType":"YulFunctionCall","src":"2227:17:89"},{"name":"pos","nativeSrc":"2246:3:89","nodeType":"YulIdentifier","src":"2246:3:89"},{"name":"length","nativeSrc":"2251:6:89","nodeType":"YulIdentifier","src":"2251:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2192:34:89","nodeType":"YulIdentifier","src":"2192:34:89"},"nativeSrc":"2192:66:89","nodeType":"YulFunctionCall","src":"2192:66:89"},"nativeSrc":"2192:66:89","nodeType":"YulExpressionStatement","src":"2192:66:89"},{"nativeSrc":"2267:23:89","nodeType":"YulAssignment","src":"2267:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"2278:3:89","nodeType":"YulIdentifier","src":"2278:3:89"},{"name":"length","nativeSrc":"2283:6:89","nodeType":"YulIdentifier","src":"2283:6:89"}],"functionName":{"name":"add","nativeSrc":"2274:3:89","nodeType":"YulIdentifier","src":"2274:3:89"},"nativeSrc":"2274:16:89","nodeType":"YulFunctionCall","src":"2274:16:89"},"variableNames":[{"name":"end","nativeSrc":"2267:3:89","nodeType":"YulIdentifier","src":"2267:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"2009:287:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2122:3:89","nodeType":"YulTypedName","src":"2122:3:89","type":""},{"name":"value0","nativeSrc":"2127:6:89","nodeType":"YulTypedName","src":"2127:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2138:3:89","nodeType":"YulTypedName","src":"2138:3:89","type":""}],"src":"2009:287:89"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        let offset := mload(add(headStart, 32))\n        if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := mload(_1)\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_1, 32), add(memPtr, 32), length)\n        value1 := memPtr\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040526040516105c53803806105c583398101604081905261002291610387565b61002c828261003e565b506001600160a01b0316608052610484565b610047826100fe565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a28051156100f2576100ed826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e7919061044d565b82610211565b505050565b6100fa610288565b5050565b806001600160a01b03163b60000361013957604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b81529051600092841691635c60da1b9160048083019260209291908290030181865afa1580156101b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d9919061044d565b9050806001600160a01b03163b6000036100fa57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610130565b6060600080846001600160a01b03168460405161022e9190610468565b600060405180830381855af49150503d8060008114610269576040519150601f19603f3d011682016040523d82523d6000602084013e61026e565b606091505b50909250905061027f8583836102a9565b95945050505050565b34156102a75760405163b398979f60e01b815260040160405180910390fd5b565b6060826102be576102b982610308565b610301565b81511580156102d557506001600160a01b0384163b155b156102fe57604051639996b31560e01b81526001600160a01b0385166004820152602401610130565b50805b9392505050565b8051156103185780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80516001600160a01b038116811461034857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561037e578181015183820152602001610366565b50506000910152565b6000806040838503121561039a57600080fd5b6103a383610331565b60208401519092506001600160401b038111156103bf57600080fd5b8301601f810185136103d057600080fd5b80516001600160401b038111156103e9576103e961034d565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104175761041761034d565b60405281815282820160200187101561042f57600080fd5b610440826020830160208601610363565b8093505050509250929050565b60006020828403121561045f57600080fd5b61030182610331565b6000825161047a818460208701610363565b9190910192915050565b60805161012761049e6000396000601e01526101276000f3fe6080604052600a600c565b005b60186014601a565b60a0565b565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156079573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190609b919060c3565b905090565b3660008037600080366000845af43d6000803e80801560be573d6000f35b3d6000fd5b60006020828403121560d457600080fd5b81516001600160a01b038116811460ea57600080fd5b939250505056fea2646970667358221220f0959ca51a58dfa33f8868f1214c44e6abd5c2555618646d963c304a98aa25ac64736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x5C5 CODESIZE SUB DUP1 PUSH2 0x5C5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x387 JUMP JUMPDEST PUSH2 0x2C DUP3 DUP3 PUSH2 0x3E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x484 JUMP JUMPDEST PUSH2 0x47 DUP3 PUSH2 0xFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0x1CF3B03A6CF19FA2BABA4DF148E9DCABEDEA7F8A5C07840E207E5C089BE95D3E SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0xF2 JUMPI PUSH2 0xED DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC3 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 0xE7 SWAP2 SWAP1 PUSH2 0x44D JUMP JUMPDEST DUP3 PUSH2 0x211 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xFA PUSH2 0x288 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x139 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1933B43B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH32 0xA3F0AD74E5423AEBFD80D3EF4346578335A9A72AEAEE59FF6CB3582B35133D50 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x5C60DA1B PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP5 AND SWAP2 PUSH4 0x5C60DA1B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B5 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 0x1D9 SWAP2 SWAP1 PUSH2 0x44D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xFA JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x130 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0x468 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x269 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 0x26E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x27F DUP6 DUP4 DUP4 PUSH2 0x2A9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x2BE JUMPI PUSH2 0x2B9 DUP3 PUSH2 0x308 JUMP JUMPDEST PUSH2 0x301 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2D5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x2FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x130 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x318 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x37E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x366 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3A3 DUP4 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E9 JUMPI PUSH2 0x3E9 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x417 JUMPI PUSH2 0x417 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x440 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x363 JUMP JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x301 DUP3 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x47A DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x363 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x127 PUSH2 0x49E PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH1 0x1E ADD MSTORE PUSH2 0x127 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0xA0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH1 0x79 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 PUSH1 0x9B SWAP2 SWAP1 PUSH1 0xC3 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE SWAP6 SWAP13 0xA5 BYTE PC 0xDF LOG3 EXTCODEHASH DUP9 PUSH9 0xF1214C44E6ABD5C255 JUMP XOR PUSH5 0x6D963C304A SWAP9 0xAA 0x25 0xAC PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1116:1194:19:-:0;;;1773:147;;;;;;;;;;;;;;;;;;:::i;:::-;1838:49;1874:6;1882:4;1838:35;:49::i;:::-;-1:-1:-1;;;;;;1897:16:19;;;1116:1194;;5582:342:17;5671:21;5682:9;5671:10;:21::i;:::-;5707:34;;-1:-1:-1;;;;;5707:34:17;;;;;;;;5756:11;;:15;5752:166;;5787:71;5824:9;-1:-1:-1;;;;;5816:33:17;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5853:4;5787:28;:71::i;:::-;;5582:342;;:::o;5752:166::-;5889:18;:16;:18::i;:::-;5582:342;;:::o;4620:437::-;4681:9;-1:-1:-1;;;;;4681:21:17;;4706:1;4681:26;4677:95;;4730:31;;-1:-1:-1;;;4730:31:17;;-1:-1:-1;;;;;1965:32:89;;4730:31:17;;;1947:51:89;1920:18;;4730:31:17;;;;;;;;4677:95;4830:9;4286:66;4782:57;;-1:-1:-1;;;;;;4782:57:17;-1:-1:-1;;;;;4782:57:17;;;;;;4881:35;;;-1:-1:-1;;;4881:35:17;;;;-1:-1:-1;;4881:33:17;;;;;:35;;;;;;;;;;;;;;:33;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4850:66;;4930:20;-1:-1:-1;;;;;4930:32:17;;4966:1;4930:37;4926:125;;4990:50;;-1:-1:-1;;;4990:50:17;;-1:-1:-1;;;;;1965:32:89;;4990:50:17;;;1947:51:89;1920:18;;4990:50:17;1801:203:89;3900:253:32;3983:12;4008;4022:23;4049:6;-1:-1:-1;;;;;4049:19:32;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4007:67:32;;-1:-1:-1;4007:67:32;-1:-1:-1;4091:55:32;4118:6;4007:67;;4091:26;:55::i;:::-;4084:62;3900:253;-1:-1:-1;;;;;3900:253:32:o;6113:122:17:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:17;;;;;;;;;;;6159:70;6113:122::o;4421:582:32:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4841:17;;:22;:49;;;;-1:-1:-1;;;;;;4867:18:32;;;:23;4841:49;4837:119;;;4917:24;;-1:-1:-1;;;4917:24:32;;-1:-1:-1;;;;;1965:32:89;;4917:24:32;;;1947:51:89;1920:18;;4917:24:32;1801:203:89;4837:119:32;-1:-1:-1;4976:10:32;4589:408;4421:582;;;;;:::o;5543:487::-;5674:17;;:21;5670:354;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;-1:-1:-1;;;5994:19:32;;;;;;;;;;;14:177:89;93:13;;-1:-1:-1;;;;;135:31:89;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:89;552:16;;545:27;328:250::o;583:1000::-;671:6;679;732:2;720:9;711:7;707:23;703:32;700:52;;;748:1;745;738:12;700:52;771:40;801:9;771:40;:::i;:::-;855:2;840:18;;834:25;761:50;;-1:-1:-1;;;;;;871:30:89;;868:50;;;914:1;911;904:12;868:50;937:22;;990:4;982:13;;978:27;-1:-1:-1;968:55:89;;1019:1;1016;1009:12;968:55;1046:9;;-1:-1:-1;;;;;1067:30:89;;1064:56;;;1100:18;;:::i;:::-;1149:2;1143:9;1241:2;1203:17;;-1:-1:-1;;1199:31:89;;;1232:2;1195:40;1191:54;1179:67;;-1:-1:-1;;;;;1261:34:89;;1297:22;;;1258:62;1255:88;;;1323:18;;:::i;:::-;1359:2;1352:22;1383;;;1424:15;;;1441:2;1420:24;1417:37;-1:-1:-1;1414:57:89;;;1467:1;1464;1457:12;1414:57;1480:72;1545:6;1540:2;1532:6;1528:15;1523:2;1519;1515:11;1480:72;:::i;:::-;1571:6;1561:16;;;;;583:1000;;;;;:::o;1588:208::-;1658:6;1711:2;1699:9;1690:7;1686:23;1682:32;1679:52;;;1727:1;1724;1717:12;1679:52;1750:40;1780:9;1750:40;:::i;2009:287::-;2138:3;2176:6;2170:13;2192:66;2251:6;2246:3;2239:4;2231:6;2227:17;2192:66;:::i;:::-;2274:16;;;;;2009:287;-1:-1:-1;;2009:287:89:o;:::-;1116:1194:19;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_3731":{"entryPoint":null,"id":3731,"parameterSlots":0,"returnSlots":0},"@_delegate_3707":{"entryPoint":160,"id":3707,"parameterSlots":1,"returnSlots":0},"@_fallback_3723":{"entryPoint":12,"id":3723,"parameterSlots":0,"returnSlots":0},"@_getBeacon_3789":{"entryPoint":null,"id":3789,"parameterSlots":0,"returnSlots":1},"@_implementation_3780":{"entryPoint":26,"id":3780,"parameterSlots":0,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":195,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:89","nodeType":"YulBlock","src":"0:306:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"95:209:89","nodeType":"YulBlock","src":"95:209:89","statements":[{"body":{"nativeSrc":"141:16:89","nodeType":"YulBlock","src":"141:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:89","nodeType":"YulLiteral","src":"150:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:89","nodeType":"YulLiteral","src":"153:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:89","nodeType":"YulIdentifier","src":"143:6:89"},"nativeSrc":"143:12:89","nodeType":"YulFunctionCall","src":"143:12:89"},"nativeSrc":"143:12:89","nodeType":"YulExpressionStatement","src":"143:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:89","nodeType":"YulIdentifier","src":"116:7:89"},{"name":"headStart","nativeSrc":"125:9:89","nodeType":"YulIdentifier","src":"125:9:89"}],"functionName":{"name":"sub","nativeSrc":"112:3:89","nodeType":"YulIdentifier","src":"112:3:89"},"nativeSrc":"112:23:89","nodeType":"YulFunctionCall","src":"112:23:89"},{"kind":"number","nativeSrc":"137:2:89","nodeType":"YulLiteral","src":"137:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:89","nodeType":"YulIdentifier","src":"108:3:89"},"nativeSrc":"108:32:89","nodeType":"YulFunctionCall","src":"108:32:89"},"nativeSrc":"105:52:89","nodeType":"YulIf","src":"105:52:89"},{"nativeSrc":"166:29:89","nodeType":"YulVariableDeclaration","src":"166:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:89","nodeType":"YulIdentifier","src":"185:9:89"}],"functionName":{"name":"mload","nativeSrc":"179:5:89","nodeType":"YulIdentifier","src":"179:5:89"},"nativeSrc":"179:16:89","nodeType":"YulFunctionCall","src":"179:16:89"},"variables":[{"name":"value","nativeSrc":"170:5:89","nodeType":"YulTypedName","src":"170:5:89","type":""}]},{"body":{"nativeSrc":"258:16:89","nodeType":"YulBlock","src":"258:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:89","nodeType":"YulLiteral","src":"267:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:89","nodeType":"YulLiteral","src":"270:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:89","nodeType":"YulIdentifier","src":"260:6:89"},"nativeSrc":"260:12:89","nodeType":"YulFunctionCall","src":"260:12:89"},"nativeSrc":"260:12:89","nodeType":"YulExpressionStatement","src":"260:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:89","nodeType":"YulIdentifier","src":"217:5:89"},{"arguments":[{"name":"value","nativeSrc":"228:5:89","nodeType":"YulIdentifier","src":"228:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:89","nodeType":"YulLiteral","src":"243:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:89","nodeType":"YulLiteral","src":"248:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:89","nodeType":"YulIdentifier","src":"239:3:89"},"nativeSrc":"239:11:89","nodeType":"YulFunctionCall","src":"239:11:89"},{"kind":"number","nativeSrc":"252:1:89","nodeType":"YulLiteral","src":"252:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:89","nodeType":"YulIdentifier","src":"235:3:89"},"nativeSrc":"235:19:89","nodeType":"YulFunctionCall","src":"235:19:89"}],"functionName":{"name":"and","nativeSrc":"224:3:89","nodeType":"YulIdentifier","src":"224:3:89"},"nativeSrc":"224:31:89","nodeType":"YulFunctionCall","src":"224:31:89"}],"functionName":{"name":"eq","nativeSrc":"214:2:89","nodeType":"YulIdentifier","src":"214:2:89"},"nativeSrc":"214:42:89","nodeType":"YulFunctionCall","src":"214:42:89"}],"functionName":{"name":"iszero","nativeSrc":"207:6:89","nodeType":"YulIdentifier","src":"207:6:89"},"nativeSrc":"207:50:89","nodeType":"YulFunctionCall","src":"207:50:89"},"nativeSrc":"204:70:89","nodeType":"YulIf","src":"204:70:89"},{"nativeSrc":"283:15:89","nodeType":"YulAssignment","src":"283:15:89","value":{"name":"value","nativeSrc":"293:5:89","nodeType":"YulIdentifier","src":"293:5:89"},"variableNames":[{"name":"value0","nativeSrc":"283:6:89","nodeType":"YulIdentifier","src":"283:6:89"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:89","nodeType":"YulTypedName","src":"61:9:89","type":""},{"name":"dataEnd","nativeSrc":"72:7:89","nodeType":"YulTypedName","src":"72:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:89","nodeType":"YulTypedName","src":"84:6:89","type":""}],"src":"14:290:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"3745":[{"length":32,"start":30}]},"linkReferences":{},"object":"6080604052600a600c565b005b60186014601a565b60a0565b565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156079573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190609b919060c3565b905090565b3660008037600080366000845af43d6000803e80801560be573d6000f35b3d6000fd5b60006020828403121560d457600080fd5b81516001600160a01b038116811460ea57600080fd5b939250505056fea2646970667358221220f0959ca51a58dfa33f8868f1214c44e6abd5c2555618646d963c304a98aa25ac64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0xA0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH1 0x79 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 PUSH1 0x9B SWAP2 SWAP1 PUSH1 0xC3 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE SWAP6 SWAP13 0xA5 BYTE PC 0xDF LOG3 EXTCODEHASH DUP9 PUSH9 0xF1214C44E6ABD5C255 JUMP XOR PUSH5 0x6D963C304A SWAP9 0xAA 0x25 0xAC PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1116:1194:19:-:0;;;2649:11:18;:9;:11::i;:::-;1116:1194:19;2323:83:18;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;2023:138:19:-;2090:7;2294;-1:-1:-1;;;;;2116:36:19;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2109:45;;2023:138;:::o;949:895:18:-;1287:14;1284:1;1281;1268:34;1501:1;1498;1482:14;1479:1;1463:14;1456:5;1443:60;1577:16;1574:1;1571;1556:38;1615:6;1682:66;;;;1797:16;1794:1;1787:27;1682:66;1717:16;1714:1;1707:27;14:290:89;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:89;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:89:o"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}. The beacon address can only be set once during construction, and cannot be changed afterwards. It is stored in an immutable variable to avoid unnecessary storage reads, and also in the beacon storage slot specified by https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] so that it can be accessed externally. CAUTION: Since the beacon address can never be changed, you must ensure that you either control the beacon, or trust the beacon to not upgrade the implementation maliciously. IMPORTANT: Do not use the implementation logic to modify the beacon storage slot. Doing so would leave the proxy in an inconsistent state where the beacon storage slot does not match the beacon address.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the proxy with `beacon`. If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - `beacon` must be a contract with the interface {IBeacon}. - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol\":\"BeaconProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol\":{\"keccak256\":\"0xb719fe6bd47177169ae56e3a6300ca21cc966c649412a1d1156f02862e81beac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5207f4c145e0504ee8c81088b0eadbf9500c31ecbf26c46443f1f5076cafbf4\",\"dweb:/ipfs/QmevxdJoPzBHtcRtEQ9wtkSqhfYvqD4S4BmfEFxDrfYk3G\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {UpgradeableBeacon} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol":{"UpgradeableBeacon":{"abi":[{"inputs":[{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"BeaconInvalidImplementation","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3047":{"entryPoint":null,"id":3047,"parameterSlots":1,"returnSlots":0},"@_3839":{"entryPoint":null,"id":3839,"parameterSlots":2,"returnSlots":0},"@_setImplementation_3887":{"entryPoint":201,"id":3887,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_3143":{"entryPoint":121,"id":3143,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":329,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":357,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:699:89","nodeType":"YulBlock","src":"0:699:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"74:117:89","nodeType":"YulBlock","src":"74:117:89","statements":[{"nativeSrc":"84:22:89","nodeType":"YulAssignment","src":"84:22:89","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:89","nodeType":"YulIdentifier","src":"99:6:89"}],"functionName":{"name":"mload","nativeSrc":"93:5:89","nodeType":"YulIdentifier","src":"93:5:89"},"nativeSrc":"93:13:89","nodeType":"YulFunctionCall","src":"93:13:89"},"variableNames":[{"name":"value","nativeSrc":"84:5:89","nodeType":"YulIdentifier","src":"84:5:89"}]},{"body":{"nativeSrc":"169:16:89","nodeType":"YulBlock","src":"169:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:89","nodeType":"YulLiteral","src":"178:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:89","nodeType":"YulLiteral","src":"181:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:89","nodeType":"YulIdentifier","src":"171:6:89"},"nativeSrc":"171:12:89","nodeType":"YulFunctionCall","src":"171:12:89"},"nativeSrc":"171:12:89","nodeType":"YulExpressionStatement","src":"171:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:89","nodeType":"YulIdentifier","src":"128:5:89"},{"arguments":[{"name":"value","nativeSrc":"139:5:89","nodeType":"YulIdentifier","src":"139:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:89","nodeType":"YulLiteral","src":"154:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:89","nodeType":"YulLiteral","src":"159:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:89","nodeType":"YulIdentifier","src":"150:3:89"},"nativeSrc":"150:11:89","nodeType":"YulFunctionCall","src":"150:11:89"},{"kind":"number","nativeSrc":"163:1:89","nodeType":"YulLiteral","src":"163:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:89","nodeType":"YulIdentifier","src":"146:3:89"},"nativeSrc":"146:19:89","nodeType":"YulFunctionCall","src":"146:19:89"}],"functionName":{"name":"and","nativeSrc":"135:3:89","nodeType":"YulIdentifier","src":"135:3:89"},"nativeSrc":"135:31:89","nodeType":"YulFunctionCall","src":"135:31:89"}],"functionName":{"name":"eq","nativeSrc":"125:2:89","nodeType":"YulIdentifier","src":"125:2:89"},"nativeSrc":"125:42:89","nodeType":"YulFunctionCall","src":"125:42:89"}],"functionName":{"name":"iszero","nativeSrc":"118:6:89","nodeType":"YulIdentifier","src":"118:6:89"},"nativeSrc":"118:50:89","nodeType":"YulFunctionCall","src":"118:50:89"},"nativeSrc":"115:70:89","nodeType":"YulIf","src":"115:70:89"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:89","nodeType":"YulTypedName","src":"53:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:89","nodeType":"YulTypedName","src":"64:5:89","type":""}],"src":"14:177:89"},{"body":{"nativeSrc":"294:195:89","nodeType":"YulBlock","src":"294:195:89","statements":[{"body":{"nativeSrc":"340:16:89","nodeType":"YulBlock","src":"340:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"349:1:89","nodeType":"YulLiteral","src":"349:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"352:1:89","nodeType":"YulLiteral","src":"352:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"342:6:89","nodeType":"YulIdentifier","src":"342:6:89"},"nativeSrc":"342:12:89","nodeType":"YulFunctionCall","src":"342:12:89"},"nativeSrc":"342:12:89","nodeType":"YulExpressionStatement","src":"342:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"315:7:89","nodeType":"YulIdentifier","src":"315:7:89"},{"name":"headStart","nativeSrc":"324:9:89","nodeType":"YulIdentifier","src":"324:9:89"}],"functionName":{"name":"sub","nativeSrc":"311:3:89","nodeType":"YulIdentifier","src":"311:3:89"},"nativeSrc":"311:23:89","nodeType":"YulFunctionCall","src":"311:23:89"},{"kind":"number","nativeSrc":"336:2:89","nodeType":"YulLiteral","src":"336:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"307:3:89","nodeType":"YulIdentifier","src":"307:3:89"},"nativeSrc":"307:32:89","nodeType":"YulFunctionCall","src":"307:32:89"},"nativeSrc":"304:52:89","nodeType":"YulIf","src":"304:52:89"},{"nativeSrc":"365:50:89","nodeType":"YulAssignment","src":"365:50:89","value":{"arguments":[{"name":"headStart","nativeSrc":"405:9:89","nodeType":"YulIdentifier","src":"405:9:89"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"375:29:89","nodeType":"YulIdentifier","src":"375:29:89"},"nativeSrc":"375:40:89","nodeType":"YulFunctionCall","src":"375:40:89"},"variableNames":[{"name":"value0","nativeSrc":"365:6:89","nodeType":"YulIdentifier","src":"365:6:89"}]},{"nativeSrc":"424:59:89","nodeType":"YulAssignment","src":"424:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"468:9:89","nodeType":"YulIdentifier","src":"468:9:89"},{"kind":"number","nativeSrc":"479:2:89","nodeType":"YulLiteral","src":"479:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"464:3:89","nodeType":"YulIdentifier","src":"464:3:89"},"nativeSrc":"464:18:89","nodeType":"YulFunctionCall","src":"464:18:89"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"434:29:89","nodeType":"YulIdentifier","src":"434:29:89"},"nativeSrc":"434:49:89","nodeType":"YulFunctionCall","src":"434:49:89"},"variableNames":[{"name":"value1","nativeSrc":"424:6:89","nodeType":"YulIdentifier","src":"424:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nativeSrc":"196:293:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"252:9:89","nodeType":"YulTypedName","src":"252:9:89","type":""},{"name":"dataEnd","nativeSrc":"263:7:89","nodeType":"YulTypedName","src":"263:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"275:6:89","nodeType":"YulTypedName","src":"275:6:89","type":""},{"name":"value1","nativeSrc":"283:6:89","nodeType":"YulTypedName","src":"283:6:89","type":""}],"src":"196:293:89"},{"body":{"nativeSrc":"595:102:89","nodeType":"YulBlock","src":"595:102:89","statements":[{"nativeSrc":"605:26:89","nodeType":"YulAssignment","src":"605:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"617:9:89","nodeType":"YulIdentifier","src":"617:9:89"},{"kind":"number","nativeSrc":"628:2:89","nodeType":"YulLiteral","src":"628:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"613:3:89","nodeType":"YulIdentifier","src":"613:3:89"},"nativeSrc":"613:18:89","nodeType":"YulFunctionCall","src":"613:18:89"},"variableNames":[{"name":"tail","nativeSrc":"605:4:89","nodeType":"YulIdentifier","src":"605:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"647:9:89","nodeType":"YulIdentifier","src":"647:9:89"},{"arguments":[{"name":"value0","nativeSrc":"662:6:89","nodeType":"YulIdentifier","src":"662:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"678:3:89","nodeType":"YulLiteral","src":"678:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"683:1:89","nodeType":"YulLiteral","src":"683:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"674:3:89","nodeType":"YulIdentifier","src":"674:3:89"},"nativeSrc":"674:11:89","nodeType":"YulFunctionCall","src":"674:11:89"},{"kind":"number","nativeSrc":"687:1:89","nodeType":"YulLiteral","src":"687:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"670:3:89","nodeType":"YulIdentifier","src":"670:3:89"},"nativeSrc":"670:19:89","nodeType":"YulFunctionCall","src":"670:19:89"}],"functionName":{"name":"and","nativeSrc":"658:3:89","nodeType":"YulIdentifier","src":"658:3:89"},"nativeSrc":"658:32:89","nodeType":"YulFunctionCall","src":"658:32:89"}],"functionName":{"name":"mstore","nativeSrc":"640:6:89","nodeType":"YulIdentifier","src":"640:6:89"},"nativeSrc":"640:51:89","nodeType":"YulFunctionCall","src":"640:51:89"},"nativeSrc":"640:51:89","nodeType":"YulExpressionStatement","src":"640:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"494:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"564:9:89","nodeType":"YulTypedName","src":"564:9:89","type":""},{"name":"value0","nativeSrc":"575:6:89","nodeType":"YulTypedName","src":"575:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"586:4:89","nodeType":"YulTypedName","src":"586:4:89","type":""}],"src":"494:203:89"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161043838038061043883398101604081905261002f91610165565b806001600160a01b03811661005f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61006881610079565b50610072826100c9565b5050610198565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b6000036100ff5760405163211eb15960e21b81526001600160a01b0382166004820152602401610056565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b80516001600160a01b038116811461016057600080fd5b919050565b6000806040838503121561017857600080fd5b61018183610149565b915061018f60208401610149565b90509250929050565b610291806101a76000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a36600461022b565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f6100da565b6000546001600160a01b031661007e565b61006f6100c136600461022b565b6100ee565b6100ce61012e565b6100d78161015b565b50565b6100e261012e565b6100ec60006101db565b565b6100f661012e565b6001600160a01b03811661012557604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100d7816101db565b6000546001600160a01b031633146100ec5760405163118cdaa760e01b815233600482015260240161011c565b806001600160a01b03163b6000036101915760405163211eb15960e21b81526001600160a01b038216600482015260240161011c565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561023d57600080fd5b81356001600160a01b038116811461025457600080fd5b939250505056fea26469706673582212207f9e29c272144c167454a78a6120d9d066cbed12b713983129ffb88bb0f564af64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x438 CODESIZE SUB DUP1 PUSH2 0x438 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5F JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x68 DUP2 PUSH2 0x79 JUMP JUMPDEST POP PUSH2 0x72 DUP3 PUSH2 0xC9 JUMP JUMPDEST POP POP PUSH2 0x198 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xFF JUMPI PUSH1 0x40 MLOAD PUSH4 0x211EB159 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x56 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x181 DUP4 PUSH2 0x149 JUMP JUMPDEST SWAP2 POP PUSH2 0x18F PUSH1 0x20 DUP5 ADD PUSH2 0x149 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x291 DUP1 PUSH2 0x1A7 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 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x9A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x22B JUMP JUMPDEST PUSH2 0xC6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6F PUSH2 0xDA JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7E JUMP JUMPDEST PUSH2 0x6F PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B JUMP JUMPDEST PUSH2 0xEE JUMP JUMPDEST PUSH2 0xCE PUSH2 0x12E JUMP JUMPDEST PUSH2 0xD7 DUP2 PUSH2 0x15B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x12E JUMP JUMPDEST PUSH2 0xEC PUSH1 0x0 PUSH2 0x1DB JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xF6 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x125 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD7 DUP2 PUSH2 0x1DB JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xEC JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x11C JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x191 JUMPI PUSH1 0x40 MLOAD PUSH4 0x211EB159 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x11C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x9E29C272144C167454A78A6120D9D066CBED12B713983129FFB88BB0F564AF64 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"555:1663:21:-:0;;;1059:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1126:12;-1:-1:-1;;;;;1273:26:10;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:10;;1350:1;1322:31;;;640:51:89;613:18;;1322:31:10;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1150:35:21::1;1169:15:::0;1150:18:::1;:35::i;:::-;1059:133:::0;;555:1663;;2912:187:10;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:10;;;-1:-1:-1;;;;;;3020:17:10;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1932:284:21:-;2009:17;-1:-1:-1;;;;;2009:29:21;;2042:1;2009:34;2005:118;;2066:46;;-1:-1:-1;;;2066:46:21;;-1:-1:-1;;;;;658:32:89;;2066:46:21;;;640:51:89;613:18;;2066:46:21;494:203:89;2005:118:21;2132:15;:35;;-1:-1:-1;;;;;;2132:35:21;-1:-1:-1;;;;;2132:35:21;;;;;;;;2182:27;;;;-1:-1:-1;;2182:27:21;1932:284;:::o;14:177:89:-;93:13;;-1:-1:-1;;;;;135:31:89;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;494:203::-;555:1663:21;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_3081":{"entryPoint":302,"id":3081,"parameterSlots":0,"returnSlots":0},"@_msgSender_6640":{"entryPoint":null,"id":6640,"parameterSlots":0,"returnSlots":1},"@_setImplementation_3887":{"entryPoint":347,"id":3887,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_3143":{"entryPoint":475,"id":3143,"parameterSlots":1,"returnSlots":0},"@implementation_3848":{"entryPoint":null,"id":3848,"parameterSlots":0,"returnSlots":1},"@owner_3064":{"entryPoint":null,"id":3064,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_3095":{"entryPoint":218,"id":3095,"parameterSlots":0,"returnSlots":0},"@transferOwnership_3123":{"entryPoint":238,"id":3123,"parameterSlots":1,"returnSlots":0},"@upgradeTo_3861":{"entryPoint":198,"id":3861,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":555,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:510:89","nodeType":"YulBlock","src":"0:510:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"84:216:89","nodeType":"YulBlock","src":"84:216:89","statements":[{"body":{"nativeSrc":"130:16:89","nodeType":"YulBlock","src":"130:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"139:1:89","nodeType":"YulLiteral","src":"139:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"142:1:89","nodeType":"YulLiteral","src":"142:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"132:6:89","nodeType":"YulIdentifier","src":"132:6:89"},"nativeSrc":"132:12:89","nodeType":"YulFunctionCall","src":"132:12:89"},"nativeSrc":"132:12:89","nodeType":"YulExpressionStatement","src":"132:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"105:7:89","nodeType":"YulIdentifier","src":"105:7:89"},{"name":"headStart","nativeSrc":"114:9:89","nodeType":"YulIdentifier","src":"114:9:89"}],"functionName":{"name":"sub","nativeSrc":"101:3:89","nodeType":"YulIdentifier","src":"101:3:89"},"nativeSrc":"101:23:89","nodeType":"YulFunctionCall","src":"101:23:89"},{"kind":"number","nativeSrc":"126:2:89","nodeType":"YulLiteral","src":"126:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"97:3:89","nodeType":"YulIdentifier","src":"97:3:89"},"nativeSrc":"97:32:89","nodeType":"YulFunctionCall","src":"97:32:89"},"nativeSrc":"94:52:89","nodeType":"YulIf","src":"94:52:89"},{"nativeSrc":"155:36:89","nodeType":"YulVariableDeclaration","src":"155:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"181:9:89","nodeType":"YulIdentifier","src":"181:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"168:12:89","nodeType":"YulIdentifier","src":"168:12:89"},"nativeSrc":"168:23:89","nodeType":"YulFunctionCall","src":"168:23:89"},"variables":[{"name":"value","nativeSrc":"159:5:89","nodeType":"YulTypedName","src":"159:5:89","type":""}]},{"body":{"nativeSrc":"254:16:89","nodeType":"YulBlock","src":"254:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:89","nodeType":"YulLiteral","src":"263:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:89","nodeType":"YulLiteral","src":"266:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:89","nodeType":"YulIdentifier","src":"256:6:89"},"nativeSrc":"256:12:89","nodeType":"YulFunctionCall","src":"256:12:89"},"nativeSrc":"256:12:89","nodeType":"YulExpressionStatement","src":"256:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"213:5:89","nodeType":"YulIdentifier","src":"213:5:89"},{"arguments":[{"name":"value","nativeSrc":"224:5:89","nodeType":"YulIdentifier","src":"224:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"239:3:89","nodeType":"YulLiteral","src":"239:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"244:1:89","nodeType":"YulLiteral","src":"244:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"235:3:89","nodeType":"YulIdentifier","src":"235:3:89"},"nativeSrc":"235:11:89","nodeType":"YulFunctionCall","src":"235:11:89"},{"kind":"number","nativeSrc":"248:1:89","nodeType":"YulLiteral","src":"248:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"231:3:89","nodeType":"YulIdentifier","src":"231:3:89"},"nativeSrc":"231:19:89","nodeType":"YulFunctionCall","src":"231:19:89"}],"functionName":{"name":"and","nativeSrc":"220:3:89","nodeType":"YulIdentifier","src":"220:3:89"},"nativeSrc":"220:31:89","nodeType":"YulFunctionCall","src":"220:31:89"}],"functionName":{"name":"eq","nativeSrc":"210:2:89","nodeType":"YulIdentifier","src":"210:2:89"},"nativeSrc":"210:42:89","nodeType":"YulFunctionCall","src":"210:42:89"}],"functionName":{"name":"iszero","nativeSrc":"203:6:89","nodeType":"YulIdentifier","src":"203:6:89"},"nativeSrc":"203:50:89","nodeType":"YulFunctionCall","src":"203:50:89"},"nativeSrc":"200:70:89","nodeType":"YulIf","src":"200:70:89"},{"nativeSrc":"279:15:89","nodeType":"YulAssignment","src":"279:15:89","value":{"name":"value","nativeSrc":"289:5:89","nodeType":"YulIdentifier","src":"289:5:89"},"variableNames":[{"name":"value0","nativeSrc":"279:6:89","nodeType":"YulIdentifier","src":"279:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"14:286:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50:9:89","nodeType":"YulTypedName","src":"50:9:89","type":""},{"name":"dataEnd","nativeSrc":"61:7:89","nodeType":"YulTypedName","src":"61:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"73:6:89","nodeType":"YulTypedName","src":"73:6:89","type":""}],"src":"14:286:89"},{"body":{"nativeSrc":"406:102:89","nodeType":"YulBlock","src":"406:102:89","statements":[{"nativeSrc":"416:26:89","nodeType":"YulAssignment","src":"416:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"428:9:89","nodeType":"YulIdentifier","src":"428:9:89"},{"kind":"number","nativeSrc":"439:2:89","nodeType":"YulLiteral","src":"439:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"424:3:89","nodeType":"YulIdentifier","src":"424:3:89"},"nativeSrc":"424:18:89","nodeType":"YulFunctionCall","src":"424:18:89"},"variableNames":[{"name":"tail","nativeSrc":"416:4:89","nodeType":"YulIdentifier","src":"416:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"458:9:89","nodeType":"YulIdentifier","src":"458:9:89"},{"arguments":[{"name":"value0","nativeSrc":"473:6:89","nodeType":"YulIdentifier","src":"473:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"489:3:89","nodeType":"YulLiteral","src":"489:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"494:1:89","nodeType":"YulLiteral","src":"494:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"485:3:89","nodeType":"YulIdentifier","src":"485:3:89"},"nativeSrc":"485:11:89","nodeType":"YulFunctionCall","src":"485:11:89"},{"kind":"number","nativeSrc":"498:1:89","nodeType":"YulLiteral","src":"498:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"481:3:89","nodeType":"YulIdentifier","src":"481:3:89"},"nativeSrc":"481:19:89","nodeType":"YulFunctionCall","src":"481:19:89"}],"functionName":{"name":"and","nativeSrc":"469:3:89","nodeType":"YulIdentifier","src":"469:3:89"},"nativeSrc":"469:32:89","nodeType":"YulFunctionCall","src":"469:32:89"}],"functionName":{"name":"mstore","nativeSrc":"451:6:89","nodeType":"YulIdentifier","src":"451:6:89"},"nativeSrc":"451:51:89","nodeType":"YulFunctionCall","src":"451:51:89"},"nativeSrc":"451:51:89","nodeType":"YulExpressionStatement","src":"451:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"305:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"375:9:89","nodeType":"YulTypedName","src":"375:9:89","type":""},{"name":"value0","nativeSrc":"386:6:89","nodeType":"YulTypedName","src":"386:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"397:4:89","nodeType":"YulTypedName","src":"397:4:89","type":""}],"src":"305:203:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a36600461022b565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f6100da565b6000546001600160a01b031661007e565b61006f6100c136600461022b565b6100ee565b6100ce61012e565b6100d78161015b565b50565b6100e261012e565b6100ec60006101db565b565b6100f661012e565b6001600160a01b03811661012557604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100d7816101db565b6000546001600160a01b031633146100ec5760405163118cdaa760e01b815233600482015260240161011c565b806001600160a01b03163b6000036101915760405163211eb15960e21b81526001600160a01b038216600482015260240161011c565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561023d57600080fd5b81356001600160a01b038116811461025457600080fd5b939250505056fea26469706673582212207f9e29c272144c167454a78a6120d9d066cbed12b713983129ffb88bb0f564af64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x9A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x22B JUMP JUMPDEST PUSH2 0xC6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6F PUSH2 0xDA JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7E JUMP JUMPDEST PUSH2 0x6F PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B JUMP JUMPDEST PUSH2 0xEE JUMP JUMPDEST PUSH2 0xCE PUSH2 0x12E JUMP JUMPDEST PUSH2 0xD7 DUP2 PUSH2 0x15B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x12E JUMP JUMPDEST PUSH2 0xEC PUSH1 0x0 PUSH2 0x1DB JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xF6 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x125 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD7 DUP2 PUSH2 0x1DB JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xEC JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x11C JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x191 JUMPI PUSH1 0x40 MLOAD PUSH4 0x211EB159 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x11C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x9E29C272144C167454A78A6120D9D066CBED12B713983129FFB88BB0F564AF64 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"555:1663:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1632:125;;;;;;:::i;:::-;;:::i;:::-;;1270:103;1351:15;;-1:-1:-1;;;;;1351:15:21;1270:103;;;-1:-1:-1;;;;;469:32:89;;;451:51;;439:2;424:18;1270:103:21;;;;;;;2293:101:10;;;:::i;1638:85::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:10;1638:85;;2543:215;;;;;;:::i;:::-;;:::i;1632:125:21:-;1531:13:10;:11;:13::i;:::-;1713:37:21::1;1732:17;1713:18;:37::i;:::-;1632:125:::0;:::o;2293:101:10:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2543:215::-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:10;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:10;;2700:1:::1;2672:31;::::0;::::1;451:51:89::0;424:18;;2672:31:10::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;1796:162::-:0;1684:7;1710:6;-1:-1:-1;;;;;1710:6:10;735:10:33;1855:23:10;1851:101;;1901:40;;-1:-1:-1;;;1901:40:10;;735:10:33;1901:40:10;;;451:51:89;424:18;;1901:40:10;305:203:89;1932:284:21;2009:17;-1:-1:-1;;;;;2009:29:21;;2042:1;2009:34;2005:118;;2066:46;;-1:-1:-1;;;2066:46:21;;-1:-1:-1;;;;;469:32:89;;2066:46:21;;;451:51:89;424:18;;2066:46:21;305:203:89;2005:118:21;2132:15;:35;;-1:-1:-1;;;;;;2132:35:21;-1:-1:-1;;;;;2132:35:21;;;;;;;;2182:27;;;;-1:-1:-1;;2182:27:21;1932:284;:::o;2912:187:10:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:10;;;-1:-1:-1;;;;;;3020:17:10;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:286:89:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:89;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:89:o"},"methodIdentifiers":{"implementation()":"5c60da1b","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"BeaconInvalidImplementation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their implementation contract, which is where they will delegate all function calls. An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon.\",\"errors\":{\"BeaconInvalidImplementation(address)\":[{\"details\":\"The `implementation` of the beacon is invalid.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation returned by the beacon is changed.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Sets the address of the initial implementation, and the initial owner who can upgrade the beacon.\"},\"implementation()\":{\"details\":\"Returns the current implementation address.\"},\"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.\"},\"upgradeTo(address)\":{\"details\":\"Upgrades the beacon to a new implementation. Emits an {Upgraded} event. Requirements: - msg.sender must be the owner of the contract. - `newImplementation` must be a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol\":\"UpgradeableBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol\":{\"keccak256\":\"0x5920bac7215d12961e23b207f6e81a1d64aa4935a4469abe95b64a96a3c3007b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b34bb828c45c3a4ebf6c2c585971abf5089e61357a3818a2900c7e85b74a1299\",\"dweb:/ipfs/QmewGAzKsPXYfSjCKxuH1SekKxtdyzhdbdyxjF5gohLigt\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":3005,"contract":"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol:UpgradeableBeacon","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":3813,"contract":"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol:UpgradeableBeacon","label":"_implementation","offset":0,"slot":"1","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}}}},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\\\"MyToken\\\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":"value","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"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\":\"value\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":4165,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":4171,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":4173,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":4175,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":4177,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@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":"value","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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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\":\"value\",\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"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":"value","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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\":\"value\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` 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/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"SafeERC20FailedDecreaseAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205116383267d4d4e79a0603c2233f257ec177f623d7308e1eaddfe32e7a25b1ae64736f6c634300081c0033","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 MLOAD AND CODESIZE ORIGIN PUSH8 0xD4D4E79A0603C223 EXTCODEHASH 0x25 PUSH31 0xC177F623D7308E1EADDFE32E7A25B1AE64736F6C634300081C003300000000 ","sourceMap":"750:8692:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;750:8692:26;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205116383267d4d4e79a0603c2233f257ec177f623d7308e1eaddfe32e7a25b1ae64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MLOAD AND CODESIZE ORIGIN PUSH8 0xD4D4E79A0603C223 EXTCODEHASH 0x25 PUSH31 0xC177F623D7308E1EADDFE32E7A25B1AE64736F6C634300081C003300000000 ","sourceMap":"750:8692:26:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers around ERC-20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"errors\":{\"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09\",\"dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5205,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5207,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":5211,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_owners","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":5215,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_balances","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":5219,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_tokenApprovals","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":5225,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_operatorApprovals","offset":0,"slot":"5","type":"t_mapping(t_address,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"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC-721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or   {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC-721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC-721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or   {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol":{"ERC721Utils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204723338cabc36e62d17dbc940ee01637cf654ff76857dabfdbef4db206710e4964736f6c634300081c0033","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 SELFBALANCE 0x23 CALLER DUP13 0xAB 0xC3 PUSH15 0x62D17DBC940EE01637CF654FF76857 0xDA 0xBF 0xDB 0xEF 0x4D 0xB2 MOD PUSH18 0xE4964736F6C634300081C00330000000000 ","sourceMap":"431:1480:31:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;431:1480:31;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204723338cabc36e62d17dbc940ee01637cf654ff76857dabfdbef4db206710e4964736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE 0x23 CALLER DUP13 0xAB 0xC3 PUSH15 0x62D17DBC940EE01637CF654FF76857 0xDA 0xBF 0xDB 0xEF 0x4D 0xB2 MOD PUSH18 0xE4964736F6C634300081C00330000000000 ","sourceMap":"431:1480:31:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library that provide common ERC-721 utility functions. See https://eips.ethereum.org/EIPS/eip-721[ERC-721]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":\"ERC721Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201333407781395913d78b538b9888f1820c78688477389f7371d7ebbcb608c52d64736f6c634300081c0033","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 CALLER BLOCKHASH PUSH24 0x81395913D78B538B9888F1820C78688477389F7371D7EBBC 0xB6 ADDMOD 0xC5 0x2D PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"233:5799:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;233:5799:32;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201333407781395913d78b538b9888f1820c78688477389f7371d7ebbcb608c52d64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT CALLER BLOCKHASH PUSH24 0x81395913D78B538B9888F1820C78688477389F7371D7EBBC 0xB6 ADDMOD 0xC5 0x2D PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"233:5799:32:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Create2.sol":{"Create2":{"abi":[{"inputs":[],"name":"Create2EmptyBytecode","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a6e9c7e93aea78a99dc7b0b56f40a6fd5e6635ff79d29d9a40d8ea227816597b64736f6c634300081c0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0xE9 0xC7 0xE9 GASPRICE 0xEA PUSH25 0xA99DC7B0B56F40A6FD5E6635FF79D29D9A40D8EA227816597B PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"533:3932:34:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;533:3932:34;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a6e9c7e93aea78a99dc7b0b56f40a6fd5e6635ff79d29d9a40d8ea227816597b64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0xE9 0xC7 0xE9 GASPRICE 0xEA PUSH25 0xA99DC7B0B56F40A6FD5E6635FF79D29D9A40D8EA227816597B PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"533:3932:34:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Helper to make usage of the `CREATE2` EVM opcode easier and safer. `CREATE2` can be used to compute in advance the address where a smart contract will be deployed, which allows for interesting new mechanisms known as 'counterfactual interactions'. See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more information.\",\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Create2.sol\":\"Create2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Errors.sol":{"Errors":{"abi":[{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"MissingPrecompile","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206e0d5922a018cc1796aca29f49cc00b7ffd8988f2d37a8dd1c233a73a7f9209864736f6c634300081c0033","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 PUSH15 0xD5922A018CC1796ACA29F49CC00B7 SELFDESTRUCT 0xD8 SWAP9 DUP16 0x2D CALLDATACOPY 0xA8 0xDD SHR 0x23 GASPRICE PUSH20 0xA7F9209864736F6C634300081C00330000000000 ","sourceMap":"411:484:35:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;411:484:35;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206e0d5922a018cc1796aca29f49cc00b7ffd8988f2d37a8dd1c233a73a7f9209864736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH15 0xD5922A018CC1796ACA29F49CC00B7 SELFDESTRUCT 0xD8 SWAP9 DUP16 0x2D CALLDATACOPY 0xA8 0xDD SHR 0x23 GASPRICE PUSH20 0xA7F9209864736F6C634300081C00330000000000 ","sourceMap":"411:484:35:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"MissingPrecompile\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of common custom errors used in multiple contracts IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library. It is recommended to avoid relying on the error API for critical functionality. _Available since v5.1._\",\"errors\":{\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"MissingPrecompile(address)\":[{\"details\":\"A necessary precompile is missing.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Errors.sol\":\"Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Panic.sol":{"Panic":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220480443931a2b8e6d08b7f7f303a7c4e4fb18367fcb810a9dc62b284df191e4e064736f6c634300081c0033","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 BASEFEE DIV NUMBER SWAP4 BYTE 0x2B DUP15 PUSH14 0x8B7F7F303A7C4E4FB18367FCB81 EXP SWAP14 0xC6 0x2B 0x28 0x4D CALL SWAP2 0xE4 0xE0 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"657:1315:36:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;657:1315:36;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220480443931a2b8e6d08b7f7f303a7c4e4fb18367fcb810a9dc62b284df191e4e064736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BASEFEE DIV NUMBER SWAP4 BYTE 0x2B DUP15 PUSH14 0x8B7F7F303A7C4E4FB18367FCB81 EXP SWAP14 0xC6 0x2B 0x28 0x4D CALL SWAP2 0xE4 0xE0 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"657:1315:36:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example {      using Panic for uint256;      // Use any of the declared internal constants      function foo() { Panic.GENERIC.panic(); }      // Alternatively      function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at, consider using {ReentrancyGuardTransient} instead. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":6842,"contract":"@openzeppelin/contracts/utils/ReentrancyGuard.sol:ReentrancyGuard","label":"_status","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fd02ad865f4d4d3506835bb24d0b42df1b76c7724b68b60d7e5678d28df83b7364736f6c634300081c0033","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 REVERT MUL 0xAD DUP7 PUSH0 0x4D 0x4D CALLDATALOAD MOD DUP4 JUMPDEST 0xB2 0x4D SIGNEXTEND TIMESTAMP 0xDF SHL PUSH23 0xC7724B68B60D7E5678D28DF83B7364736F6C634300081C STOP CALLER ","sourceMap":"1407:2774:38:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1407:2774:38;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fd02ad865f4d4d3506835bb24d0b42df1b76c7724b68b60d7e5678d28df83b7364736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT MUL 0xAD DUP7 PUSH0 0x4D 0x4D CALLDATALOAD MOD DUP4 JUMPDEST 0xB2 0x4D SIGNEXTEND TIMESTAMP 0xDF SHL PUSH23 0xC7724B68B60D7E5678D28DF83B7364736F6C634300081C STOP CALLER ","sourceMap":"1407:2774:38:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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 ERC-1967 implementation slot: ```solidity contract ERC1967 {     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(newImplementation.code.length > 0);         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ecb4f0d7a62873c4f90ffd85ea78dc48de62fddc47d4bb7d2bc40b9ec27cfef464736f6c634300081c0033","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 0xEC 0xB4 CREATE 0xD7 0xA6 0x28 PUSH20 0xC4F90FFD85EA78DC48DE62FDDC47D4BB7D2BC40B SWAP15 0xC2 PUSH29 0xFEF464736F6C634300081C003300000000000000000000000000000000 ","sourceMap":"251:3680:39:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:3680:39;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ecb4f0d7a62873c4f90ffd85ea78dc48de62fddc47d4bb7d2bc40b9ec27cfef464736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC 0xB4 CREATE 0xD7 0xA6 0x28 PUSH20 0xC4F90FFD85EA78DC48DE62FDDC47D4BB7D2BC40B SWAP15 0xC2 PUSH29 0xFEF464736F6C634300081C003300000000000000000000000000000000 ","sourceMap":"251:3680:39:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/cryptography/Hashes.sol":{"Hashes":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206ae92610141b9d449c6f4c9cbf7b1c23a001e044624c4ccd40d671e029befd7a64736f6c634300081c0033","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 PUSH11 0xE92610141B9D449C6F4C9C 0xBF PUSH28 0x1C23A001E044624C4CCD40D671E029BEFD7A64736F6C634300081C00 CALLER ","sourceMap":"221:813:40:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;221:813:40;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206ae92610141b9d449c6f4c9cbf7b1c23a001e044624c4ccd40d671e029befd7a64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0xE92610141B9D449C6F4C9C 0xBF PUSH28 0x1C23A001E044624C4CCD40D671E029BEFD7A64736F6C634300081C00 CALLER ","sourceMap":"221:813:40:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library of standard hash functions. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/Hashes.sol\":\"Hashes\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x631dc1958d5308bd2d9f91190bbcde4f9ffb9d9401ce8d358c17b35f1a942bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7ef16d9a6f57eae9ab275116eaba1e8de70efd3d0e3682b1585b8f069d9c3f9\",\"dweb:/ipfs/QmR3JQHAyv4sNWnRHeiC6oaz8Bqn8rtzu5sdAqAJRtBqpj\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"MerkleProof":{"abi":[{"inputs":[],"name":"MerkleProofInvalidMultiproof","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c7df646b10bfc6aa4f3479d229ec2068566f32e7c2c1ddb3fbc835f962a0e53764736f6c634300081c0033","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 0xC7 0xDF PUSH5 0x6B10BFC6AA 0x4F CALLVALUE PUSH26 0xD229EC2068566F32E7C2C1DDB3FBC835F962A0E53764736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"1353:22982:41:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1353:22982:41;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c7df646b10bfc6aa4f3479d229ec2068566f32e7c2c1ddb3fbc835f962a0e53764736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC7 0xDF PUSH5 0x6B10BFC6AA 0x4F CALLVALUE PUSH26 0xD229EC2068566F32E7C2C1DDB3FBC835F962A0E53764736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"1353:22982:41:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MerkleProofInvalidMultiproof\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"These functions deal with verification of Merkle Tree proofs. The tree and the proofs can be generated using our https://github.com/OpenZeppelin/merkle-tree[JavaScript library]. You will find a quickstart guide in the readme. WARNING: You should avoid using leaf values that are 64 bytes long prior to hashing, or use a hash function other than keccak256 for hashing leaves. This is because the concatenation of a sorted pair of internal nodes in the Merkle tree could be reinterpreted as a leaf value. OpenZeppelin's JavaScript library generates Merkle trees that are safe against this attack out of the box. IMPORTANT: Consider memory side-effects when using custom hashing functions that access memory in an unsafe way. NOTE: This library supports proof verification for merkle trees built using custom _commutative_ hashing functions (i.e. `H(a, b) == H(b, a)`). Proving leaf inclusion in trees built using non-commutative hashing functions requires additional logic that is not supported by this library.\",\"errors\":{\"MerkleProofInvalidMultiproof()\":[{\"details\":\"The multiproof provided is not valid.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":\"MerkleProof\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x631dc1958d5308bd2d9f91190bbcde4f9ffb9d9401ce8d358c17b35f1a942bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7ef16d9a6f57eae9ab275116eaba1e8de70efd3d0e3682b1585b8f069d9c3f9\",\"dweb:/ipfs/QmR3JQHAyv4sNWnRHeiC6oaz8Bqn8rtzu5sdAqAJRtBqpj\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cb20f7331818f57669171d01c05e9360981a09eef0109f5b1278b98ffce98cb664736f6c634300081c0033","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 0xCB KECCAK256 0xF7 CALLER XOR XOR CREATE2 PUSH23 0x69171D01C05E9360981A09EEF0109F5B1278B98FFCE98C 0xB6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"281:28026:44:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;281:28026:44;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cb20f7331818f57669171d01c05e9360981a09eef0109f5b1278b98ffce98cb664736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCB KECCAK256 0xF7 CALLER XOR XOR CREATE2 PUSH23 0x69171D01C05E9360981A09EEF0109F5B1278B98FFCE98C 0xB6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"281:28026:44:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntDowncast","type":"error"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntToUint","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintToInt","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f339f8e25e68a389c2a927bb23c6cb93c79c9384ea0005062ee031ef0df1d28e64736f6c634300081c0033","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 RETURN CODECOPY 0xF8 0xE2 MCOPY PUSH9 0xA389C2A927BB23C6CB SWAP4 0xC7 SWAP13 SWAP4 DUP5 0xEA STOP SDIV MOD 0x2E 0xE0 BALANCE 0xEF 0xD CALL 0xD2 DUP15 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"769:34173:45:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;769:34173:45;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f339f8e25e68a389c2a927bb23c6cb93c79c9384ea0005062ee031ef0df1d28e64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN CODECOPY 0xF8 0xE2 MCOPY PUSH9 0xA389C2A927BB23C6CB SWAP4 0xC7 SWAP13 SWAP4 DUP5 0xEA STOP SDIV MOD 0x2E 0xE0 BALANCE 0xEF 0xD CALL 0xD2 DUP15 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"769:34173:45:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220359be74cda55339d335080ca5f6a3089ca675c8b749bb38b7043fe3d3c5b95b164736f6c634300081c0033","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 CALLDATALOAD SWAP12 0xE7 0x4C 0xDA SSTORE CALLER SWAP14 CALLER POP DUP1 0xCA PUSH0 PUSH11 0x3089CA675C8B749BB38B70 NUMBER INVALID RETURNDATASIZE EXTCODECOPY JUMPDEST SWAP6 0xB1 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"258:2354:46:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;258:2354:46;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220359be74cda55339d335080ca5f6a3089ca675c8b749bb38b7043fe3d3c5b95b164736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATALOAD SWAP12 0xE7 0x4C 0xDA SSTORE CALLER SWAP14 CALLER POP DUP1 0xCA PUSH0 PUSH11 0x3089CA675C8B749BB38B70 NUMBER INVALID RETURNDATASIZE EXTCODECOPY JUMPDEST SWAP6 0xB1 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"258:2354:46:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@uniswap/lib/contracts/libraries/TransferHelper.sol":{"TransferHelper":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200945efdcdfedf79c480ccc3c6e4d757ff97cfea9b84539040c895abdf7fef25864736f6c634300081c0033","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 MULMOD GASLIMIT 0xEF 0xDC 0xDF 0xED 0xF7 SWAP13 BASEFEE 0xC 0xCC EXTCODECOPY PUSH15 0x4D757FF97CFEA9B84539040C895ABD 0xF7 INVALID CALLCODE PC PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"183:1621:47:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;183:1621:47;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200945efdcdfedf79c480ccc3c6e4d757ff97cfea9b84539040c895abdf7fef25864736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MULMOD GASLIMIT 0xEF 0xDC 0xDF 0xED 0xF7 SWAP13 BASEFEE 0xC 0xCC EXTCODECOPY PUSH15 0x4D757FF97CFEA9B84539040C895ABD 0xF7 INVALID CALLCODE PC PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"183:1621:47:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@uniswap/lib/contracts/libraries/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@uniswap/lib/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595\",\"dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/WTAC.sol":{"WTAC":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"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":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Deposit","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Withdrawal","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":"value","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_12191":{"entryPoint":null,"id":12191,"parameterSlots":0,"returnSlots":0},"@_4194":{"entryPoint":null,"id":4194,"parameterSlots":2,"returnSlots":0},"@_6853":{"entryPoint":null,"id":6853,"parameterSlots":0,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":203,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":282,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":145,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":123,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2652:89","nodeType":"YulBlock","src":"0:2652:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"46:95:89","nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:89","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:89","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:89","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:89","nodeType":"YulIdentifier","src":"66:3:89"},"nativeSrc":"66:20:89","nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nativeSrc":"56:6:89","nodeType":"YulIdentifier","src":"56:6:89"},"nativeSrc":"56:31:89","nodeType":"YulFunctionCall","src":"56:31:89"},"nativeSrc":"56:31:89","nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:89","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:89","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:89","nodeType":"YulIdentifier","src":"96:6:89"},"nativeSrc":"96:15:89","nodeType":"YulFunctionCall","src":"96:15:89"},"nativeSrc":"96:15:89","nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:89","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:89","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:89","nodeType":"YulIdentifier","src":"120:6:89"},"nativeSrc":"120:15:89","nodeType":"YulFunctionCall","src":"120:15:89"},"nativeSrc":"120:15:89","nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nativeSrc":"14:127:89","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nativeSrc":"201:325:89","nodeType":"YulBlock","src":"201:325:89","statements":[{"nativeSrc":"211:22:89","nodeType":"YulAssignment","src":"211:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"225:1:89","nodeType":"YulLiteral","src":"225:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"228:4:89","nodeType":"YulIdentifier","src":"228:4:89"}],"functionName":{"name":"shr","nativeSrc":"221:3:89","nodeType":"YulIdentifier","src":"221:3:89"},"nativeSrc":"221:12:89","nodeType":"YulFunctionCall","src":"221:12:89"},"variableNames":[{"name":"length","nativeSrc":"211:6:89","nodeType":"YulIdentifier","src":"211:6:89"}]},{"nativeSrc":"242:38:89","nodeType":"YulVariableDeclaration","src":"242:38:89","value":{"arguments":[{"name":"data","nativeSrc":"272:4:89","nodeType":"YulIdentifier","src":"272:4:89"},{"kind":"number","nativeSrc":"278:1:89","nodeType":"YulLiteral","src":"278:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"268:3:89","nodeType":"YulIdentifier","src":"268:3:89"},"nativeSrc":"268:12:89","nodeType":"YulFunctionCall","src":"268:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"246:18:89","nodeType":"YulTypedName","src":"246:18:89","type":""}]},{"body":{"nativeSrc":"319:31:89","nodeType":"YulBlock","src":"319:31:89","statements":[{"nativeSrc":"321:27:89","nodeType":"YulAssignment","src":"321:27:89","value":{"arguments":[{"name":"length","nativeSrc":"335:6:89","nodeType":"YulIdentifier","src":"335:6:89"},{"kind":"number","nativeSrc":"343:4:89","nodeType":"YulLiteral","src":"343:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"331:3:89","nodeType":"YulIdentifier","src":"331:3:89"},"nativeSrc":"331:17:89","nodeType":"YulFunctionCall","src":"331:17:89"},"variableNames":[{"name":"length","nativeSrc":"321:6:89","nodeType":"YulIdentifier","src":"321:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"299:18:89","nodeType":"YulIdentifier","src":"299:18:89"}],"functionName":{"name":"iszero","nativeSrc":"292:6:89","nodeType":"YulIdentifier","src":"292:6:89"},"nativeSrc":"292:26:89","nodeType":"YulFunctionCall","src":"292:26:89"},"nativeSrc":"289:61:89","nodeType":"YulIf","src":"289:61:89"},{"body":{"nativeSrc":"409:111:89","nodeType":"YulBlock","src":"409:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"430:1:89","nodeType":"YulLiteral","src":"430:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"437:3:89","nodeType":"YulLiteral","src":"437:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"442:10:89","nodeType":"YulLiteral","src":"442:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"433:3:89","nodeType":"YulIdentifier","src":"433:3:89"},"nativeSrc":"433:20:89","nodeType":"YulFunctionCall","src":"433:20:89"}],"functionName":{"name":"mstore","nativeSrc":"423:6:89","nodeType":"YulIdentifier","src":"423:6:89"},"nativeSrc":"423:31:89","nodeType":"YulFunctionCall","src":"423:31:89"},"nativeSrc":"423:31:89","nodeType":"YulExpressionStatement","src":"423:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"474:1:89","nodeType":"YulLiteral","src":"474:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"477:4:89","nodeType":"YulLiteral","src":"477:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"467:6:89","nodeType":"YulIdentifier","src":"467:6:89"},"nativeSrc":"467:15:89","nodeType":"YulFunctionCall","src":"467:15:89"},"nativeSrc":"467:15:89","nodeType":"YulExpressionStatement","src":"467:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"502:1:89","nodeType":"YulLiteral","src":"502:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"505:4:89","nodeType":"YulLiteral","src":"505:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"495:6:89","nodeType":"YulIdentifier","src":"495:6:89"},"nativeSrc":"495:15:89","nodeType":"YulFunctionCall","src":"495:15:89"},"nativeSrc":"495:15:89","nodeType":"YulExpressionStatement","src":"495:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"365:18:89","nodeType":"YulIdentifier","src":"365:18:89"},{"arguments":[{"name":"length","nativeSrc":"388:6:89","nodeType":"YulIdentifier","src":"388:6:89"},{"kind":"number","nativeSrc":"396:2:89","nodeType":"YulLiteral","src":"396:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"385:2:89","nodeType":"YulIdentifier","src":"385:2:89"},"nativeSrc":"385:14:89","nodeType":"YulFunctionCall","src":"385:14:89"}],"functionName":{"name":"eq","nativeSrc":"362:2:89","nodeType":"YulIdentifier","src":"362:2:89"},"nativeSrc":"362:38:89","nodeType":"YulFunctionCall","src":"362:38:89"},"nativeSrc":"359:161:89","nodeType":"YulIf","src":"359:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"146:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"181:4:89","nodeType":"YulTypedName","src":"181:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"190:6:89","nodeType":"YulTypedName","src":"190:6:89","type":""}],"src":"146:380:89"},{"body":{"nativeSrc":"587:65:89","nodeType":"YulBlock","src":"587:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"604:1:89","nodeType":"YulLiteral","src":"604:1:89","type":"","value":"0"},{"name":"ptr","nativeSrc":"607:3:89","nodeType":"YulIdentifier","src":"607:3:89"}],"functionName":{"name":"mstore","nativeSrc":"597:6:89","nodeType":"YulIdentifier","src":"597:6:89"},"nativeSrc":"597:14:89","nodeType":"YulFunctionCall","src":"597:14:89"},"nativeSrc":"597:14:89","nodeType":"YulExpressionStatement","src":"597:14:89"},{"nativeSrc":"620:26:89","nodeType":"YulAssignment","src":"620:26:89","value":{"arguments":[{"kind":"number","nativeSrc":"638:1:89","nodeType":"YulLiteral","src":"638:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"641:4:89","nodeType":"YulLiteral","src":"641:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"628:9:89","nodeType":"YulIdentifier","src":"628:9:89"},"nativeSrc":"628:18:89","nodeType":"YulFunctionCall","src":"628:18:89"},"variableNames":[{"name":"data","nativeSrc":"620:4:89","nodeType":"YulIdentifier","src":"620:4:89"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"531:121:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"570:3:89","nodeType":"YulTypedName","src":"570:3:89","type":""}],"returnVariables":[{"name":"data","nativeSrc":"578:4:89","nodeType":"YulTypedName","src":"578:4:89","type":""}],"src":"531:121:89"},{"body":{"nativeSrc":"738:437:89","nodeType":"YulBlock","src":"738:437:89","statements":[{"body":{"nativeSrc":"771:398:89","nodeType":"YulBlock","src":"771:398:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"792:1:89","nodeType":"YulLiteral","src":"792:1:89","type":"","value":"0"},{"name":"array","nativeSrc":"795:5:89","nodeType":"YulIdentifier","src":"795:5:89"}],"functionName":{"name":"mstore","nativeSrc":"785:6:89","nodeType":"YulIdentifier","src":"785:6:89"},"nativeSrc":"785:16:89","nodeType":"YulFunctionCall","src":"785:16:89"},"nativeSrc":"785:16:89","nodeType":"YulExpressionStatement","src":"785:16:89"},{"nativeSrc":"814:30:89","nodeType":"YulVariableDeclaration","src":"814:30:89","value":{"arguments":[{"kind":"number","nativeSrc":"836:1:89","nodeType":"YulLiteral","src":"836:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"839:4:89","nodeType":"YulLiteral","src":"839:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"826:9:89","nodeType":"YulIdentifier","src":"826:9:89"},"nativeSrc":"826:18:89","nodeType":"YulFunctionCall","src":"826:18:89"},"variables":[{"name":"data","nativeSrc":"818:4:89","nodeType":"YulTypedName","src":"818:4:89","type":""}]},{"nativeSrc":"857:57:89","nodeType":"YulVariableDeclaration","src":"857:57:89","value":{"arguments":[{"name":"data","nativeSrc":"880:4:89","nodeType":"YulIdentifier","src":"880:4:89"},{"arguments":[{"kind":"number","nativeSrc":"890:1:89","nodeType":"YulLiteral","src":"890:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"897:10:89","nodeType":"YulIdentifier","src":"897:10:89"},{"kind":"number","nativeSrc":"909:2:89","nodeType":"YulLiteral","src":"909:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"893:3:89","nodeType":"YulIdentifier","src":"893:3:89"},"nativeSrc":"893:19:89","nodeType":"YulFunctionCall","src":"893:19:89"}],"functionName":{"name":"shr","nativeSrc":"886:3:89","nodeType":"YulIdentifier","src":"886:3:89"},"nativeSrc":"886:27:89","nodeType":"YulFunctionCall","src":"886:27:89"}],"functionName":{"name":"add","nativeSrc":"876:3:89","nodeType":"YulIdentifier","src":"876:3:89"},"nativeSrc":"876:38:89","nodeType":"YulFunctionCall","src":"876:38:89"},"variables":[{"name":"deleteStart","nativeSrc":"861:11:89","nodeType":"YulTypedName","src":"861:11:89","type":""}]},{"body":{"nativeSrc":"951:23:89","nodeType":"YulBlock","src":"951:23:89","statements":[{"nativeSrc":"953:19:89","nodeType":"YulAssignment","src":"953:19:89","value":{"name":"data","nativeSrc":"968:4:89","nodeType":"YulIdentifier","src":"968:4:89"},"variableNames":[{"name":"deleteStart","nativeSrc":"953:11:89","nodeType":"YulIdentifier","src":"953:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"933:10:89","nodeType":"YulIdentifier","src":"933:10:89"},{"kind":"number","nativeSrc":"945:4:89","nodeType":"YulLiteral","src":"945:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"930:2:89","nodeType":"YulIdentifier","src":"930:2:89"},"nativeSrc":"930:20:89","nodeType":"YulFunctionCall","src":"930:20:89"},"nativeSrc":"927:47:89","nodeType":"YulIf","src":"927:47:89"},{"nativeSrc":"987:41:89","nodeType":"YulVariableDeclaration","src":"987:41:89","value":{"arguments":[{"name":"data","nativeSrc":"1001:4:89","nodeType":"YulIdentifier","src":"1001:4:89"},{"arguments":[{"kind":"number","nativeSrc":"1011:1:89","nodeType":"YulLiteral","src":"1011:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"1018:3:89","nodeType":"YulIdentifier","src":"1018:3:89"},{"kind":"number","nativeSrc":"1023:2:89","nodeType":"YulLiteral","src":"1023:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1014:3:89","nodeType":"YulIdentifier","src":"1014:3:89"},"nativeSrc":"1014:12:89","nodeType":"YulFunctionCall","src":"1014:12:89"}],"functionName":{"name":"shr","nativeSrc":"1007:3:89","nodeType":"YulIdentifier","src":"1007:3:89"},"nativeSrc":"1007:20:89","nodeType":"YulFunctionCall","src":"1007:20:89"}],"functionName":{"name":"add","nativeSrc":"997:3:89","nodeType":"YulIdentifier","src":"997:3:89"},"nativeSrc":"997:31:89","nodeType":"YulFunctionCall","src":"997:31:89"},"variables":[{"name":"_1","nativeSrc":"991:2:89","nodeType":"YulTypedName","src":"991:2:89","type":""}]},{"nativeSrc":"1041:24:89","nodeType":"YulVariableDeclaration","src":"1041:24:89","value":{"name":"deleteStart","nativeSrc":"1054:11:89","nodeType":"YulIdentifier","src":"1054:11:89"},"variables":[{"name":"start","nativeSrc":"1045:5:89","nodeType":"YulTypedName","src":"1045:5:89","type":""}]},{"body":{"nativeSrc":"1139:20:89","nodeType":"YulBlock","src":"1139:20:89","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"1148:5:89","nodeType":"YulIdentifier","src":"1148:5:89"},{"kind":"number","nativeSrc":"1155:1:89","nodeType":"YulLiteral","src":"1155:1:89","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"1141:6:89","nodeType":"YulIdentifier","src":"1141:6:89"},"nativeSrc":"1141:16:89","nodeType":"YulFunctionCall","src":"1141:16:89"},"nativeSrc":"1141:16:89","nodeType":"YulExpressionStatement","src":"1141:16:89"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"1089:5:89","nodeType":"YulIdentifier","src":"1089:5:89"},{"name":"_1","nativeSrc":"1096:2:89","nodeType":"YulIdentifier","src":"1096:2:89"}],"functionName":{"name":"lt","nativeSrc":"1086:2:89","nodeType":"YulIdentifier","src":"1086:2:89"},"nativeSrc":"1086:13:89","nodeType":"YulFunctionCall","src":"1086:13:89"},"nativeSrc":"1078:81:89","nodeType":"YulForLoop","post":{"nativeSrc":"1100:26:89","nodeType":"YulBlock","src":"1100:26:89","statements":[{"nativeSrc":"1102:22:89","nodeType":"YulAssignment","src":"1102:22:89","value":{"arguments":[{"name":"start","nativeSrc":"1115:5:89","nodeType":"YulIdentifier","src":"1115:5:89"},{"kind":"number","nativeSrc":"1122:1:89","nodeType":"YulLiteral","src":"1122:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1111:3:89","nodeType":"YulIdentifier","src":"1111:3:89"},"nativeSrc":"1111:13:89","nodeType":"YulFunctionCall","src":"1111:13:89"},"variableNames":[{"name":"start","nativeSrc":"1102:5:89","nodeType":"YulIdentifier","src":"1102:5:89"}]}]},"pre":{"nativeSrc":"1082:3:89","nodeType":"YulBlock","src":"1082:3:89","statements":[]},"src":"1078:81:89"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"754:3:89","nodeType":"YulIdentifier","src":"754:3:89"},{"kind":"number","nativeSrc":"759:2:89","nodeType":"YulLiteral","src":"759:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"751:2:89","nodeType":"YulIdentifier","src":"751:2:89"},"nativeSrc":"751:11:89","nodeType":"YulFunctionCall","src":"751:11:89"},"nativeSrc":"748:421:89","nodeType":"YulIf","src":"748:421:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"657:518:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"710:5:89","nodeType":"YulTypedName","src":"710:5:89","type":""},{"name":"len","nativeSrc":"717:3:89","nodeType":"YulTypedName","src":"717:3:89","type":""},{"name":"startIndex","nativeSrc":"722:10:89","nodeType":"YulTypedName","src":"722:10:89","type":""}],"src":"657:518:89"},{"body":{"nativeSrc":"1265:81:89","nodeType":"YulBlock","src":"1265:81:89","statements":[{"nativeSrc":"1275:65:89","nodeType":"YulAssignment","src":"1275:65:89","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"1290:4:89","nodeType":"YulIdentifier","src":"1290:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1308:1:89","nodeType":"YulLiteral","src":"1308:1:89","type":"","value":"3"},{"name":"len","nativeSrc":"1311:3:89","nodeType":"YulIdentifier","src":"1311:3:89"}],"functionName":{"name":"shl","nativeSrc":"1304:3:89","nodeType":"YulIdentifier","src":"1304:3:89"},"nativeSrc":"1304:11:89","nodeType":"YulFunctionCall","src":"1304:11:89"},{"arguments":[{"kind":"number","nativeSrc":"1321:1:89","nodeType":"YulLiteral","src":"1321:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"1317:3:89","nodeType":"YulIdentifier","src":"1317:3:89"},"nativeSrc":"1317:6:89","nodeType":"YulFunctionCall","src":"1317:6:89"}],"functionName":{"name":"shr","nativeSrc":"1300:3:89","nodeType":"YulIdentifier","src":"1300:3:89"},"nativeSrc":"1300:24:89","nodeType":"YulFunctionCall","src":"1300:24:89"}],"functionName":{"name":"not","nativeSrc":"1296:3:89","nodeType":"YulIdentifier","src":"1296:3:89"},"nativeSrc":"1296:29:89","nodeType":"YulFunctionCall","src":"1296:29:89"}],"functionName":{"name":"and","nativeSrc":"1286:3:89","nodeType":"YulIdentifier","src":"1286:3:89"},"nativeSrc":"1286:40:89","nodeType":"YulFunctionCall","src":"1286:40:89"},{"arguments":[{"kind":"number","nativeSrc":"1332:1:89","nodeType":"YulLiteral","src":"1332:1:89","type":"","value":"1"},{"name":"len","nativeSrc":"1335:3:89","nodeType":"YulIdentifier","src":"1335:3:89"}],"functionName":{"name":"shl","nativeSrc":"1328:3:89","nodeType":"YulIdentifier","src":"1328:3:89"},"nativeSrc":"1328:11:89","nodeType":"YulFunctionCall","src":"1328:11:89"}],"functionName":{"name":"or","nativeSrc":"1283:2:89","nodeType":"YulIdentifier","src":"1283:2:89"},"nativeSrc":"1283:57:89","nodeType":"YulFunctionCall","src":"1283:57:89"},"variableNames":[{"name":"used","nativeSrc":"1275:4:89","nodeType":"YulIdentifier","src":"1275:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"1180:166:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1242:4:89","nodeType":"YulTypedName","src":"1242:4:89","type":""},{"name":"len","nativeSrc":"1248:3:89","nodeType":"YulTypedName","src":"1248:3:89","type":""}],"returnVariables":[{"name":"used","nativeSrc":"1256:4:89","nodeType":"YulTypedName","src":"1256:4:89","type":""}],"src":"1180:166:89"},{"body":{"nativeSrc":"1447:1203:89","nodeType":"YulBlock","src":"1447:1203:89","statements":[{"nativeSrc":"1457:24:89","nodeType":"YulVariableDeclaration","src":"1457:24:89","value":{"arguments":[{"name":"src","nativeSrc":"1477:3:89","nodeType":"YulIdentifier","src":"1477:3:89"}],"functionName":{"name":"mload","nativeSrc":"1471:5:89","nodeType":"YulIdentifier","src":"1471:5:89"},"nativeSrc":"1471:10:89","nodeType":"YulFunctionCall","src":"1471:10:89"},"variables":[{"name":"newLen","nativeSrc":"1461:6:89","nodeType":"YulTypedName","src":"1461:6:89","type":""}]},{"body":{"nativeSrc":"1524:22:89","nodeType":"YulBlock","src":"1524:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1526:16:89","nodeType":"YulIdentifier","src":"1526:16:89"},"nativeSrc":"1526:18:89","nodeType":"YulFunctionCall","src":"1526:18:89"},"nativeSrc":"1526:18:89","nodeType":"YulExpressionStatement","src":"1526:18:89"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"1496:6:89","nodeType":"YulIdentifier","src":"1496:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1512:2:89","nodeType":"YulLiteral","src":"1512:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"1516:1:89","nodeType":"YulLiteral","src":"1516:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1508:3:89","nodeType":"YulIdentifier","src":"1508:3:89"},"nativeSrc":"1508:10:89","nodeType":"YulFunctionCall","src":"1508:10:89"},{"kind":"number","nativeSrc":"1520:1:89","nodeType":"YulLiteral","src":"1520:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1504:3:89","nodeType":"YulIdentifier","src":"1504:3:89"},"nativeSrc":"1504:18:89","nodeType":"YulFunctionCall","src":"1504:18:89"}],"functionName":{"name":"gt","nativeSrc":"1493:2:89","nodeType":"YulIdentifier","src":"1493:2:89"},"nativeSrc":"1493:30:89","nodeType":"YulFunctionCall","src":"1493:30:89"},"nativeSrc":"1490:56:89","nodeType":"YulIf","src":"1490:56:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"1599:4:89","nodeType":"YulIdentifier","src":"1599:4:89"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"1637:4:89","nodeType":"YulIdentifier","src":"1637:4:89"}],"functionName":{"name":"sload","nativeSrc":"1631:5:89","nodeType":"YulIdentifier","src":"1631:5:89"},"nativeSrc":"1631:11:89","nodeType":"YulFunctionCall","src":"1631:11:89"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"1605:25:89","nodeType":"YulIdentifier","src":"1605:25:89"},"nativeSrc":"1605:38:89","nodeType":"YulFunctionCall","src":"1605:38:89"},{"name":"newLen","nativeSrc":"1645:6:89","nodeType":"YulIdentifier","src":"1645:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"1555:43:89","nodeType":"YulIdentifier","src":"1555:43:89"},"nativeSrc":"1555:97:89","nodeType":"YulFunctionCall","src":"1555:97:89"},"nativeSrc":"1555:97:89","nodeType":"YulExpressionStatement","src":"1555:97:89"},{"nativeSrc":"1661:18:89","nodeType":"YulVariableDeclaration","src":"1661:18:89","value":{"kind":"number","nativeSrc":"1678:1:89","nodeType":"YulLiteral","src":"1678:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"1665:9:89","nodeType":"YulTypedName","src":"1665:9:89","type":""}]},{"nativeSrc":"1688:17:89","nodeType":"YulAssignment","src":"1688:17:89","value":{"kind":"number","nativeSrc":"1701:4:89","nodeType":"YulLiteral","src":"1701:4:89","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"1688:9:89","nodeType":"YulIdentifier","src":"1688:9:89"}]},{"cases":[{"body":{"nativeSrc":"1751:642:89","nodeType":"YulBlock","src":"1751:642:89","statements":[{"nativeSrc":"1765:35:89","nodeType":"YulVariableDeclaration","src":"1765:35:89","value":{"arguments":[{"name":"newLen","nativeSrc":"1784:6:89","nodeType":"YulIdentifier","src":"1784:6:89"},{"arguments":[{"kind":"number","nativeSrc":"1796:2:89","nodeType":"YulLiteral","src":"1796:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1792:3:89","nodeType":"YulIdentifier","src":"1792:3:89"},"nativeSrc":"1792:7:89","nodeType":"YulFunctionCall","src":"1792:7:89"}],"functionName":{"name":"and","nativeSrc":"1780:3:89","nodeType":"YulIdentifier","src":"1780:3:89"},"nativeSrc":"1780:20:89","nodeType":"YulFunctionCall","src":"1780:20:89"},"variables":[{"name":"loopEnd","nativeSrc":"1769:7:89","nodeType":"YulTypedName","src":"1769:7:89","type":""}]},{"nativeSrc":"1813:49:89","nodeType":"YulVariableDeclaration","src":"1813:49:89","value":{"arguments":[{"name":"slot","nativeSrc":"1857:4:89","nodeType":"YulIdentifier","src":"1857:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"1827:29:89","nodeType":"YulIdentifier","src":"1827:29:89"},"nativeSrc":"1827:35:89","nodeType":"YulFunctionCall","src":"1827:35:89"},"variables":[{"name":"dstPtr","nativeSrc":"1817:6:89","nodeType":"YulTypedName","src":"1817:6:89","type":""}]},{"nativeSrc":"1875:10:89","nodeType":"YulVariableDeclaration","src":"1875:10:89","value":{"kind":"number","nativeSrc":"1884:1:89","nodeType":"YulLiteral","src":"1884:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"1879:1:89","nodeType":"YulTypedName","src":"1879:1:89","type":""}]},{"body":{"nativeSrc":"1955:165:89","nodeType":"YulBlock","src":"1955:165:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"1980:6:89","nodeType":"YulIdentifier","src":"1980:6:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"1998:3:89","nodeType":"YulIdentifier","src":"1998:3:89"},{"name":"srcOffset","nativeSrc":"2003:9:89","nodeType":"YulIdentifier","src":"2003:9:89"}],"functionName":{"name":"add","nativeSrc":"1994:3:89","nodeType":"YulIdentifier","src":"1994:3:89"},"nativeSrc":"1994:19:89","nodeType":"YulFunctionCall","src":"1994:19:89"}],"functionName":{"name":"mload","nativeSrc":"1988:5:89","nodeType":"YulIdentifier","src":"1988:5:89"},"nativeSrc":"1988:26:89","nodeType":"YulFunctionCall","src":"1988:26:89"}],"functionName":{"name":"sstore","nativeSrc":"1973:6:89","nodeType":"YulIdentifier","src":"1973:6:89"},"nativeSrc":"1973:42:89","nodeType":"YulFunctionCall","src":"1973:42:89"},"nativeSrc":"1973:42:89","nodeType":"YulExpressionStatement","src":"1973:42:89"},{"nativeSrc":"2032:24:89","nodeType":"YulAssignment","src":"2032:24:89","value":{"arguments":[{"name":"dstPtr","nativeSrc":"2046:6:89","nodeType":"YulIdentifier","src":"2046:6:89"},{"kind":"number","nativeSrc":"2054:1:89","nodeType":"YulLiteral","src":"2054:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2042:3:89","nodeType":"YulIdentifier","src":"2042:3:89"},"nativeSrc":"2042:14:89","nodeType":"YulFunctionCall","src":"2042:14:89"},"variableNames":[{"name":"dstPtr","nativeSrc":"2032:6:89","nodeType":"YulIdentifier","src":"2032:6:89"}]},{"nativeSrc":"2073:33:89","nodeType":"YulAssignment","src":"2073:33:89","value":{"arguments":[{"name":"srcOffset","nativeSrc":"2090:9:89","nodeType":"YulIdentifier","src":"2090:9:89"},{"kind":"number","nativeSrc":"2101:4:89","nodeType":"YulLiteral","src":"2101:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2086:3:89","nodeType":"YulIdentifier","src":"2086:3:89"},"nativeSrc":"2086:20:89","nodeType":"YulFunctionCall","src":"2086:20:89"},"variableNames":[{"name":"srcOffset","nativeSrc":"2073:9:89","nodeType":"YulIdentifier","src":"2073:9:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"1909:1:89","nodeType":"YulIdentifier","src":"1909:1:89"},{"name":"loopEnd","nativeSrc":"1912:7:89","nodeType":"YulIdentifier","src":"1912:7:89"}],"functionName":{"name":"lt","nativeSrc":"1906:2:89","nodeType":"YulIdentifier","src":"1906:2:89"},"nativeSrc":"1906:14:89","nodeType":"YulFunctionCall","src":"1906:14:89"},"nativeSrc":"1898:222:89","nodeType":"YulForLoop","post":{"nativeSrc":"1921:21:89","nodeType":"YulBlock","src":"1921:21:89","statements":[{"nativeSrc":"1923:17:89","nodeType":"YulAssignment","src":"1923:17:89","value":{"arguments":[{"name":"i","nativeSrc":"1932:1:89","nodeType":"YulIdentifier","src":"1932:1:89"},{"kind":"number","nativeSrc":"1935:4:89","nodeType":"YulLiteral","src":"1935:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1928:3:89","nodeType":"YulIdentifier","src":"1928:3:89"},"nativeSrc":"1928:12:89","nodeType":"YulFunctionCall","src":"1928:12:89"},"variableNames":[{"name":"i","nativeSrc":"1923:1:89","nodeType":"YulIdentifier","src":"1923:1:89"}]}]},"pre":{"nativeSrc":"1902:3:89","nodeType":"YulBlock","src":"1902:3:89","statements":[]},"src":"1898:222:89"},{"body":{"nativeSrc":"2168:166:89","nodeType":"YulBlock","src":"2168:166:89","statements":[{"nativeSrc":"2186:43:89","nodeType":"YulVariableDeclaration","src":"2186:43:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2213:3:89","nodeType":"YulIdentifier","src":"2213:3:89"},{"name":"srcOffset","nativeSrc":"2218:9:89","nodeType":"YulIdentifier","src":"2218:9:89"}],"functionName":{"name":"add","nativeSrc":"2209:3:89","nodeType":"YulIdentifier","src":"2209:3:89"},"nativeSrc":"2209:19:89","nodeType":"YulFunctionCall","src":"2209:19:89"}],"functionName":{"name":"mload","nativeSrc":"2203:5:89","nodeType":"YulIdentifier","src":"2203:5:89"},"nativeSrc":"2203:26:89","nodeType":"YulFunctionCall","src":"2203:26:89"},"variables":[{"name":"lastValue","nativeSrc":"2190:9:89","nodeType":"YulTypedName","src":"2190:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"2253:6:89","nodeType":"YulIdentifier","src":"2253:6:89"},{"arguments":[{"name":"lastValue","nativeSrc":"2265:9:89","nodeType":"YulIdentifier","src":"2265:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2292:1:89","nodeType":"YulLiteral","src":"2292:1:89","type":"","value":"3"},{"name":"newLen","nativeSrc":"2295:6:89","nodeType":"YulIdentifier","src":"2295:6:89"}],"functionName":{"name":"shl","nativeSrc":"2288:3:89","nodeType":"YulIdentifier","src":"2288:3:89"},"nativeSrc":"2288:14:89","nodeType":"YulFunctionCall","src":"2288:14:89"},{"kind":"number","nativeSrc":"2304:3:89","nodeType":"YulLiteral","src":"2304:3:89","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"2284:3:89","nodeType":"YulIdentifier","src":"2284:3:89"},"nativeSrc":"2284:24:89","nodeType":"YulFunctionCall","src":"2284:24:89"},{"arguments":[{"kind":"number","nativeSrc":"2314:1:89","nodeType":"YulLiteral","src":"2314:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2310:3:89","nodeType":"YulIdentifier","src":"2310:3:89"},"nativeSrc":"2310:6:89","nodeType":"YulFunctionCall","src":"2310:6:89"}],"functionName":{"name":"shr","nativeSrc":"2280:3:89","nodeType":"YulIdentifier","src":"2280:3:89"},"nativeSrc":"2280:37:89","nodeType":"YulFunctionCall","src":"2280:37:89"}],"functionName":{"name":"not","nativeSrc":"2276:3:89","nodeType":"YulIdentifier","src":"2276:3:89"},"nativeSrc":"2276:42:89","nodeType":"YulFunctionCall","src":"2276:42:89"}],"functionName":{"name":"and","nativeSrc":"2261:3:89","nodeType":"YulIdentifier","src":"2261:3:89"},"nativeSrc":"2261:58:89","nodeType":"YulFunctionCall","src":"2261:58:89"}],"functionName":{"name":"sstore","nativeSrc":"2246:6:89","nodeType":"YulIdentifier","src":"2246:6:89"},"nativeSrc":"2246:74:89","nodeType":"YulFunctionCall","src":"2246:74:89"},"nativeSrc":"2246:74:89","nodeType":"YulExpressionStatement","src":"2246:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"2139:7:89","nodeType":"YulIdentifier","src":"2139:7:89"},{"name":"newLen","nativeSrc":"2148:6:89","nodeType":"YulIdentifier","src":"2148:6:89"}],"functionName":{"name":"lt","nativeSrc":"2136:2:89","nodeType":"YulIdentifier","src":"2136:2:89"},"nativeSrc":"2136:19:89","nodeType":"YulFunctionCall","src":"2136:19:89"},"nativeSrc":"2133:201:89","nodeType":"YulIf","src":"2133:201:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2354:4:89","nodeType":"YulIdentifier","src":"2354:4:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2368:1:89","nodeType":"YulLiteral","src":"2368:1:89","type":"","value":"1"},{"name":"newLen","nativeSrc":"2371:6:89","nodeType":"YulIdentifier","src":"2371:6:89"}],"functionName":{"name":"shl","nativeSrc":"2364:3:89","nodeType":"YulIdentifier","src":"2364:3:89"},"nativeSrc":"2364:14:89","nodeType":"YulFunctionCall","src":"2364:14:89"},{"kind":"number","nativeSrc":"2380:1:89","nodeType":"YulLiteral","src":"2380:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2360:3:89","nodeType":"YulIdentifier","src":"2360:3:89"},"nativeSrc":"2360:22:89","nodeType":"YulFunctionCall","src":"2360:22:89"}],"functionName":{"name":"sstore","nativeSrc":"2347:6:89","nodeType":"YulIdentifier","src":"2347:6:89"},"nativeSrc":"2347:36:89","nodeType":"YulFunctionCall","src":"2347:36:89"},"nativeSrc":"2347:36:89","nodeType":"YulExpressionStatement","src":"2347:36:89"}]},"nativeSrc":"1744:649:89","nodeType":"YulCase","src":"1744:649:89","value":{"kind":"number","nativeSrc":"1749:1:89","nodeType":"YulLiteral","src":"1749:1:89","type":"","value":"1"}},{"body":{"nativeSrc":"2410:234:89","nodeType":"YulBlock","src":"2410:234:89","statements":[{"nativeSrc":"2424:14:89","nodeType":"YulVariableDeclaration","src":"2424:14:89","value":{"kind":"number","nativeSrc":"2437:1:89","nodeType":"YulLiteral","src":"2437:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2428:5:89","nodeType":"YulTypedName","src":"2428:5:89","type":""}]},{"body":{"nativeSrc":"2473:67:89","nodeType":"YulBlock","src":"2473:67:89","statements":[{"nativeSrc":"2491:35:89","nodeType":"YulAssignment","src":"2491:35:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2510:3:89","nodeType":"YulIdentifier","src":"2510:3:89"},{"name":"srcOffset","nativeSrc":"2515:9:89","nodeType":"YulIdentifier","src":"2515:9:89"}],"functionName":{"name":"add","nativeSrc":"2506:3:89","nodeType":"YulIdentifier","src":"2506:3:89"},"nativeSrc":"2506:19:89","nodeType":"YulFunctionCall","src":"2506:19:89"}],"functionName":{"name":"mload","nativeSrc":"2500:5:89","nodeType":"YulIdentifier","src":"2500:5:89"},"nativeSrc":"2500:26:89","nodeType":"YulFunctionCall","src":"2500:26:89"},"variableNames":[{"name":"value","nativeSrc":"2491:5:89","nodeType":"YulIdentifier","src":"2491:5:89"}]}]},"condition":{"name":"newLen","nativeSrc":"2454:6:89","nodeType":"YulIdentifier","src":"2454:6:89"},"nativeSrc":"2451:89:89","nodeType":"YulIf","src":"2451:89:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2560:4:89","nodeType":"YulIdentifier","src":"2560:4:89"},{"arguments":[{"name":"value","nativeSrc":"2619:5:89","nodeType":"YulIdentifier","src":"2619:5:89"},{"name":"newLen","nativeSrc":"2626:6:89","nodeType":"YulIdentifier","src":"2626:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2566:52:89","nodeType":"YulIdentifier","src":"2566:52:89"},"nativeSrc":"2566:67:89","nodeType":"YulFunctionCall","src":"2566:67:89"}],"functionName":{"name":"sstore","nativeSrc":"2553:6:89","nodeType":"YulIdentifier","src":"2553:6:89"},"nativeSrc":"2553:81:89","nodeType":"YulFunctionCall","src":"2553:81:89"},"nativeSrc":"2553:81:89","nodeType":"YulExpressionStatement","src":"2553:81:89"}]},"nativeSrc":"2402:242:89","nodeType":"YulCase","src":"2402:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"1724:6:89","nodeType":"YulIdentifier","src":"1724:6:89"},{"kind":"number","nativeSrc":"1732:2:89","nodeType":"YulLiteral","src":"1732:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"1721:2:89","nodeType":"YulIdentifier","src":"1721:2:89"},"nativeSrc":"1721:14:89","nodeType":"YulFunctionCall","src":"1721:14:89"},"nativeSrc":"1714:930:89","nodeType":"YulSwitch","src":"1714:930:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"1351:1299:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"1432:4:89","nodeType":"YulTypedName","src":"1432:4:89","type":""},{"name":"src","nativeSrc":"1438:3:89","nodeType":"YulTypedName","src":"1438:3:89","type":""}],"src":"1351:1299:89"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b506040518060400160405280600b81526020016a577261707065642054414360a81b815250604051806040016040528060048152602001635754414360e01b8152508160039081610061919061011a565b50600461006e828261011a565b50506001600555506101d8565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806100a557607f821691505b6020821081036100c557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561011557806000526020600020601f840160051c810160208510156100f25750805b601f840160051c820191505b8181101561011257600081556001016100fe565b50505b505050565b81516001600160401b038111156101335761013361007b565b610147816101418454610091565b846100cb565b6020601f82116001811461017b57600083156101635750848201515b600019600385901b1c1916600184901b178455610112565b600084815260208120601f198516915b828110156101ab578785015182556020948501946001909201910161018b565b50848210156101c95786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610a6f806101e76000396000f3fe6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce5671461016e57806370a082311461018a57806395d89b41146101c0578063a9059cbb146101d5578063d0e30db0146101f5578063dd62ed3e146101fd57600080fd5b806306fdde03146100b4578063095ea7b3146100df57806318160ddd1461010f57806323b872dd1461012e5780632e1a7d4d1461014e57600080fd5b366100af576100ad610243565b005b600080fd5b3480156100c057600080fd5b506100c96102f7565b6040516100d6919061089f565b60405180910390f35b3480156100eb57600080fd5b506100ff6100fa366004610909565b610389565b60405190151581526020016100d6565b34801561011b57600080fd5b506002545b6040519081526020016100d6565b34801561013a57600080fd5b506100ff610149366004610933565b6103a3565b34801561015a57600080fd5b506100ad610169366004610970565b6103c7565b34801561017a57600080fd5b50604051601281526020016100d6565b34801561019657600080fd5b506101206101a5366004610989565b6001600160a01b031660009081526020819052604090205490565b3480156101cc57600080fd5b506100c96104fe565b3480156101e157600080fd5b506100ff6101f0366004610909565b61050d565b6100ad610243565b34801561020957600080fd5b506101206102183660046109ab565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61024b61051b565b600034116102ac5760405162461bcd60e51b8152602060048201526024808201527f4465706f7369742076616c7565206d75737420626520677265617465722074686044820152630616e20360e41b60648201526084015b60405180910390fd5b6102b63334610545565b60405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a26102f56001600555565b565b606060038054610306906109de565b80601f0160208091040260200160405190810160405280929190818152602001828054610332906109de565b801561037f5780601f106103545761010080835404028352916020019161037f565b820191906000526020600020905b81548152906001019060200180831161036257829003601f168201915b5050505050905090565b60003361039781858561057f565b60019150505b92915050565b6000336103b1858285610591565b6103bc85858561060f565b506001949350505050565b6103cf61051b565b336000908152602081905260409020548111156104255760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016102a3565b61042f338261066e565b604051600090339083908381818185875af1925050503d8060008114610471576040519150601f19603f3d011682016040523d82523d6000602084013e610476565b606091505b50509050806104bb5760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016102a3565b60405182815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a2506104fb6001600555565b50565b606060048054610306906109de565b60003361039781858561060f565b60026005540361053e57604051633ee5aeb560e01b815260040160405180910390fd5b6002600555565b6001600160a01b03821661056f5760405163ec442f0560e01b8152600060048201526024016102a3565b61057b600083836106a0565b5050565b61058c83838360016107ca565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461060957818110156105fa57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016102a3565b610609848484840360006107ca565b50505050565b6001600160a01b03831661063957604051634b637e8f60e11b8152600060048201526024016102a3565b6001600160a01b0382166106635760405163ec442f0560e01b8152600060048201526024016102a3565b61058c8383836106a0565b6001600160a01b03821661069857604051634b637e8f60e11b8152600060048201526024016102a3565b61057b826000835b6001600160a01b0383166106cb5780600260008282546106c09190610a18565b9091555061073d9050565b6001600160a01b0383166000908152602081905260409020548181101561071e5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016102a3565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661075957600280548290039055610778565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107bd91815260200190565b60405180910390a3505050565b6001600160a01b0384166107f45760405163e602df0560e01b8152600060048201526024016102a3565b6001600160a01b03831661081e57604051634a1406b160e11b8152600060048201526024016102a3565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561060957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089191815260200190565b60405180910390a350505050565b602081526000825180602084015260005b818110156108cd57602081860181015160408684010152016108b0565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461090457600080fd5b919050565b6000806040838503121561091c57600080fd5b610925836108ed565b946020939093013593505050565b60008060006060848603121561094857600080fd5b610951846108ed565b925061095f602085016108ed565b929592945050506040919091013590565b60006020828403121561098257600080fd5b5035919050565b60006020828403121561099b57600080fd5b6109a4826108ed565b9392505050565b600080604083850312156109be57600080fd5b6109c7836108ed565b91506109d5602084016108ed565b90509250929050565b600181811c908216806109f257607f821691505b602082108103610a1257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561039d57634e487b7160e01b600052601160045260246000fdfea2646970667358221220268a753b86cadd8a05801d3d37fd36f7eece6a6cb01499b0ff96b22be0c0cc5c64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH11 0x5772617070656420544143 PUSH1 0xA8 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0x57544143 PUSH1 0xE0 SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH2 0x61 SWAP2 SWAP1 PUSH2 0x11A JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x6E DUP3 DUP3 PUSH2 0x11A JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x5 SSTORE POP PUSH2 0x1D8 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xA5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x115 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0xF2 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xFE JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x133 JUMPI PUSH2 0x133 PUSH2 0x7B JUMP JUMPDEST PUSH2 0x147 DUP2 PUSH2 0x141 DUP5 SLOAD PUSH2 0x91 JUMP JUMPDEST DUP5 PUSH2 0xCB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x17B JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x163 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x112 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AB JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x18B JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x1C9 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xA6F DUP1 PUSH2 0x1E7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xDF JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xAF JUMPI PUSH2 0xAD PUSH2 0x243 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x2F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x89F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFA CALLDATASIZE PUSH1 0x4 PUSH2 0x909 JUMP JUMPDEST PUSH2 0x389 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0x149 CALLDATASIZE PUSH1 0x4 PUSH2 0x933 JUMP JUMPDEST PUSH2 0x3A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAD PUSH2 0x169 CALLDATASIZE PUSH1 0x4 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x3C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x1A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x989 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x4FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0x1F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x909 JUMP JUMPDEST PUSH2 0x50D JUMP JUMPDEST PUSH2 0xAD PUSH2 0x243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x24B PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT PUSH2 0x2AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4465706F7369742076616C7565206D7573742062652067726561746572207468 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E203 PUSH1 0xE4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2B6 CALLER CALLVALUE PUSH2 0x545 JUMP JUMPDEST PUSH1 0x40 MLOAD CALLVALUE DUP2 MSTORE CALLER SWAP1 PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x2F5 PUSH1 0x1 PUSH1 0x5 SSTORE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x306 SWAP1 PUSH2 0x9DE 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 0x332 SWAP1 PUSH2 0x9DE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x37F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x354 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x37F 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 0x362 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x397 DUP2 DUP6 DUP6 PUSH2 0x57F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x3B1 DUP6 DUP3 DUP6 PUSH2 0x591 JUMP JUMPDEST PUSH2 0x3BC DUP6 DUP6 DUP6 PUSH2 0x60F JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3CF PUSH2 0x51B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x425 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E73756666696369656E742062616C616E6365 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x42F CALLER DUP3 PUSH2 0x66E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 CALLER SWAP1 DUP4 SWAP1 DUP4 DUP2 DUP2 DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x471 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 0x476 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x4BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x15DA5D1A191C985DD85B0819985A5B1959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0x7FCF532C15F0A6DB0BD6D0E038BEA71D30D808C7D98CB3BF7268A95BF5081B65 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH2 0x4FB PUSH1 0x1 PUSH1 0x5 SSTORE JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x306 SWAP1 PUSH2 0x9DE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x397 DUP2 DUP6 DUP6 PUSH2 0x60F JUMP JUMPDEST PUSH1 0x2 PUSH1 0x5 SLOAD SUB PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH4 0x3EE5AEB5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x56F JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x57B PUSH1 0x0 DUP4 DUP4 PUSH2 0x6A0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x58C DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x7CA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x609 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5FA JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x609 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x7CA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x639 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x663 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x58C DUP4 DUP4 DUP4 PUSH2 0x6A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x698 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x57B DUP3 PUSH1 0x0 DUP4 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6CB JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6C0 SWAP2 SWAP1 PUSH2 0xA18 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x73D SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x759 JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x778 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x7BD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x81E JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x609 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x891 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8CD JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x8B0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x91C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x925 DUP4 PUSH2 0x8ED JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x951 DUP5 PUSH2 0x8ED JUMP JUMPDEST SWAP3 POP PUSH2 0x95F PUSH1 0x20 DUP6 ADD PUSH2 0x8ED JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x982 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9A4 DUP3 PUSH2 0x8ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C7 DUP4 PUSH2 0x8ED JUMP JUMPDEST SWAP2 POP PUSH2 0x9D5 PUSH1 0x20 DUP5 ADD PUSH2 0x8ED JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x9F2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xA12 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x39D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 DUP11 PUSH22 0x3B86CADD8A05801D3D37FD36F7EECE6A6CB01499B0FF SWAP7 0xB2 0x2B 0xE0 0xC0 0xCC TLOAD PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"361:696:48:-:0;;;415:45;;;;;;;;;;1601:113:23;;;;;;;;;;;;;-1:-1:-1;;;1601:113:23;;;;;;;;;;;;;;;;-1:-1:-1;;;1601:113:23;;;1675:5;1667;:13;;;;;;:::i;:::-;-1:-1:-1;1690:7:23;:17;1700:7;1690;:17;:::i;:::-;-1:-1:-1;;1857:1:37;2061:7;:21;-1:-1:-1;361:696:48;;14:127:89;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:518::-;759:2;754:3;751:11;748:421;;;795:5;792:1;785:16;839:4;836:1;826:18;909:2;897:10;893:19;890:1;886:27;880:4;876:38;945:4;933:10;930:20;927:47;;;-1:-1:-1;968:4:89;927:47;1023:2;1018:3;1014:12;1011:1;1007:20;1001:4;997:31;987:41;;1078:81;1096:2;1089:5;1086:13;1078:81;;;1155:1;1141:16;;1122:1;1111:13;1078:81;;;1082:3;;748:421;657:518;;;:::o;1351:1299::-;1471:10;;-1:-1:-1;;;;;1493:30:89;;1490:56;;;1526:18;;:::i;:::-;1555:97;1645:6;1605:38;1637:4;1631:11;1605:38;:::i;:::-;1599:4;1555:97;:::i;:::-;1701:4;1732:2;1721:14;;1749:1;1744:649;;;;2437:1;2454:6;2451:89;;;-1:-1:-1;2506:19:89;;;2500:26;2451:89;-1:-1:-1;;1308:1:89;1304:11;;;1300:24;1296:29;1286:40;1332:1;1328:11;;;1283:57;2553:81;;1714:930;;1744:649;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1780:20:89;;;1898:222;1912:7;1909:1;1906:14;1898:222;;;1994:19;;;1988:26;1973:42;;2101:4;2086:20;;;;2054:1;2042:14;;;;1928:12;1898:222;;;1902:3;2148:6;2139:7;2136:19;2133:201;;;2209:19;;;2203:26;-1:-1:-1;;2292:1:89;2288:14;;;2304:3;2284:24;2280:37;2276:42;2261:58;2246:74;;2133:201;-1:-1:-1;;;;2380:1:89;2364:14;;;2360:22;2347:36;;-1:-1:-1;1351:1299:89:o;:::-;361:696:48;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_12198":{"entryPoint":null,"id":12198,"parameterSlots":0,"returnSlots":0},"@_approve_4548":{"entryPoint":1407,"id":4548,"parameterSlots":3,"returnSlots":0},"@_approve_4608":{"entryPoint":1994,"id":4608,"parameterSlots":4,"returnSlots":0},"@_burn_4530":{"entryPoint":1646,"id":4530,"parameterSlots":2,"returnSlots":0},"@_mint_4497":{"entryPoint":1349,"id":4497,"parameterSlots":2,"returnSlots":0},"@_msgSender_6640":{"entryPoint":null,"id":6640,"parameterSlots":0,"returnSlots":1},"@_nonReentrantAfter_6888":{"entryPoint":null,"id":6888,"parameterSlots":0,"returnSlots":0},"@_nonReentrantBefore_6880":{"entryPoint":1307,"id":6880,"parameterSlots":0,"returnSlots":0},"@_spendAllowance_4656":{"entryPoint":1425,"id":4656,"parameterSlots":3,"returnSlots":0},"@_transfer_4387":{"entryPoint":1551,"id":4387,"parameterSlots":3,"returnSlots":0},"@_update_4464":{"entryPoint":1696,"id":4464,"parameterSlots":3,"returnSlots":0},"@allowance_4284":{"entryPoint":null,"id":4284,"parameterSlots":2,"returnSlots":1},"@approve_4308":{"entryPoint":905,"id":4308,"parameterSlots":2,"returnSlots":1},"@balanceOf_4243":{"entryPoint":null,"id":4243,"parameterSlots":1,"returnSlots":1},"@decimals_4221":{"entryPoint":null,"id":4221,"parameterSlots":0,"returnSlots":1},"@deposit_12226":{"entryPoint":579,"id":12226,"parameterSlots":0,"returnSlots":0},"@name_4203":{"entryPoint":759,"id":4203,"parameterSlots":0,"returnSlots":1},"@symbol_4212":{"entryPoint":1278,"id":4212,"parameterSlots":0,"returnSlots":1},"@totalSupply_4230":{"entryPoint":null,"id":4230,"parameterSlots":0,"returnSlots":1},"@transferFrom_4340":{"entryPoint":931,"id":4340,"parameterSlots":3,"returnSlots":1},"@transfer_4267":{"entryPoint":1293,"id":4267,"parameterSlots":2,"returnSlots":1},"@withdraw_12274":{"entryPoint":967,"id":12274,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":2285,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2441,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2475,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2355,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2313,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":2416,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2207,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5ff2399ac8a8231a1fc50157a81c9b2e0c210821dea894a0fa2fae78bba239fc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2584,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2526,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:5135:89","nodeType":"YulBlock","src":"0:5135:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"135:406:89","nodeType":"YulBlock","src":"135:406:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"152:9:89","nodeType":"YulIdentifier","src":"152:9:89"},{"kind":"number","nativeSrc":"163:2:89","nodeType":"YulLiteral","src":"163:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"145:6:89","nodeType":"YulIdentifier","src":"145:6:89"},"nativeSrc":"145:21:89","nodeType":"YulFunctionCall","src":"145:21:89"},"nativeSrc":"145:21:89","nodeType":"YulExpressionStatement","src":"145:21:89"},{"nativeSrc":"175:27:89","nodeType":"YulVariableDeclaration","src":"175:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"195:6:89","nodeType":"YulIdentifier","src":"195:6:89"}],"functionName":{"name":"mload","nativeSrc":"189:5:89","nodeType":"YulIdentifier","src":"189:5:89"},"nativeSrc":"189:13:89","nodeType":"YulFunctionCall","src":"189:13:89"},"variables":[{"name":"length","nativeSrc":"179:6:89","nodeType":"YulTypedName","src":"179:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"222:9:89","nodeType":"YulIdentifier","src":"222:9:89"},{"kind":"number","nativeSrc":"233:2:89","nodeType":"YulLiteral","src":"233:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"218:3:89","nodeType":"YulIdentifier","src":"218:3:89"},"nativeSrc":"218:18:89","nodeType":"YulFunctionCall","src":"218:18:89"},{"name":"length","nativeSrc":"238:6:89","nodeType":"YulIdentifier","src":"238:6:89"}],"functionName":{"name":"mstore","nativeSrc":"211:6:89","nodeType":"YulIdentifier","src":"211:6:89"},"nativeSrc":"211:34:89","nodeType":"YulFunctionCall","src":"211:34:89"},"nativeSrc":"211:34:89","nodeType":"YulExpressionStatement","src":"211:34:89"},{"nativeSrc":"254:10:89","nodeType":"YulVariableDeclaration","src":"254:10:89","value":{"kind":"number","nativeSrc":"263:1:89","nodeType":"YulLiteral","src":"263:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"258:1:89","nodeType":"YulTypedName","src":"258:1:89","type":""}]},{"body":{"nativeSrc":"323:90:89","nodeType":"YulBlock","src":"323:90:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"352:9:89","nodeType":"YulIdentifier","src":"352:9:89"},{"name":"i","nativeSrc":"363:1:89","nodeType":"YulIdentifier","src":"363:1:89"}],"functionName":{"name":"add","nativeSrc":"348:3:89","nodeType":"YulIdentifier","src":"348:3:89"},"nativeSrc":"348:17:89","nodeType":"YulFunctionCall","src":"348:17:89"},{"kind":"number","nativeSrc":"367:2:89","nodeType":"YulLiteral","src":"367:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"344:3:89","nodeType":"YulIdentifier","src":"344:3:89"},"nativeSrc":"344:26:89","nodeType":"YulFunctionCall","src":"344:26:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"386:6:89","nodeType":"YulIdentifier","src":"386:6:89"},{"name":"i","nativeSrc":"394:1:89","nodeType":"YulIdentifier","src":"394:1:89"}],"functionName":{"name":"add","nativeSrc":"382:3:89","nodeType":"YulIdentifier","src":"382:3:89"},"nativeSrc":"382:14:89","nodeType":"YulFunctionCall","src":"382:14:89"},{"kind":"number","nativeSrc":"398:2:89","nodeType":"YulLiteral","src":"398:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"378:3:89","nodeType":"YulIdentifier","src":"378:3:89"},"nativeSrc":"378:23:89","nodeType":"YulFunctionCall","src":"378:23:89"}],"functionName":{"name":"mload","nativeSrc":"372:5:89","nodeType":"YulIdentifier","src":"372:5:89"},"nativeSrc":"372:30:89","nodeType":"YulFunctionCall","src":"372:30:89"}],"functionName":{"name":"mstore","nativeSrc":"337:6:89","nodeType":"YulIdentifier","src":"337:6:89"},"nativeSrc":"337:66:89","nodeType":"YulFunctionCall","src":"337:66:89"},"nativeSrc":"337:66:89","nodeType":"YulExpressionStatement","src":"337:66:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"284:1:89","nodeType":"YulIdentifier","src":"284:1:89"},{"name":"length","nativeSrc":"287:6:89","nodeType":"YulIdentifier","src":"287:6:89"}],"functionName":{"name":"lt","nativeSrc":"281:2:89","nodeType":"YulIdentifier","src":"281:2:89"},"nativeSrc":"281:13:89","nodeType":"YulFunctionCall","src":"281:13:89"},"nativeSrc":"273:140:89","nodeType":"YulForLoop","post":{"nativeSrc":"295:19:89","nodeType":"YulBlock","src":"295:19:89","statements":[{"nativeSrc":"297:15:89","nodeType":"YulAssignment","src":"297:15:89","value":{"arguments":[{"name":"i","nativeSrc":"306:1:89","nodeType":"YulIdentifier","src":"306:1:89"},{"kind":"number","nativeSrc":"309:2:89","nodeType":"YulLiteral","src":"309:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"302:3:89","nodeType":"YulIdentifier","src":"302:3:89"},"nativeSrc":"302:10:89","nodeType":"YulFunctionCall","src":"302:10:89"},"variableNames":[{"name":"i","nativeSrc":"297:1:89","nodeType":"YulIdentifier","src":"297:1:89"}]}]},"pre":{"nativeSrc":"277:3:89","nodeType":"YulBlock","src":"277:3:89","statements":[]},"src":"273:140:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"437:9:89","nodeType":"YulIdentifier","src":"437:9:89"},{"name":"length","nativeSrc":"448:6:89","nodeType":"YulIdentifier","src":"448:6:89"}],"functionName":{"name":"add","nativeSrc":"433:3:89","nodeType":"YulIdentifier","src":"433:3:89"},"nativeSrc":"433:22:89","nodeType":"YulFunctionCall","src":"433:22:89"},{"kind":"number","nativeSrc":"457:2:89","nodeType":"YulLiteral","src":"457:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"429:3:89","nodeType":"YulIdentifier","src":"429:3:89"},"nativeSrc":"429:31:89","nodeType":"YulFunctionCall","src":"429:31:89"},{"kind":"number","nativeSrc":"462:1:89","nodeType":"YulLiteral","src":"462:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"422:6:89","nodeType":"YulIdentifier","src":"422:6:89"},"nativeSrc":"422:42:89","nodeType":"YulFunctionCall","src":"422:42:89"},"nativeSrc":"422:42:89","nodeType":"YulExpressionStatement","src":"422:42:89"},{"nativeSrc":"473:62:89","nodeType":"YulAssignment","src":"473:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"489:9:89","nodeType":"YulIdentifier","src":"489:9:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"508:6:89","nodeType":"YulIdentifier","src":"508:6:89"},{"kind":"number","nativeSrc":"516:2:89","nodeType":"YulLiteral","src":"516:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:89","nodeType":"YulIdentifier","src":"504:3:89"},"nativeSrc":"504:15:89","nodeType":"YulFunctionCall","src":"504:15:89"},{"arguments":[{"kind":"number","nativeSrc":"525:2:89","nodeType":"YulLiteral","src":"525:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"521:3:89","nodeType":"YulIdentifier","src":"521:3:89"},"nativeSrc":"521:7:89","nodeType":"YulFunctionCall","src":"521:7:89"}],"functionName":{"name":"and","nativeSrc":"500:3:89","nodeType":"YulIdentifier","src":"500:3:89"},"nativeSrc":"500:29:89","nodeType":"YulFunctionCall","src":"500:29:89"}],"functionName":{"name":"add","nativeSrc":"485:3:89","nodeType":"YulIdentifier","src":"485:3:89"},"nativeSrc":"485:45:89","nodeType":"YulFunctionCall","src":"485:45:89"},{"kind":"number","nativeSrc":"532:2:89","nodeType":"YulLiteral","src":"532:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"481:3:89","nodeType":"YulIdentifier","src":"481:3:89"},"nativeSrc":"481:54:89","nodeType":"YulFunctionCall","src":"481:54:89"},"variableNames":[{"name":"tail","nativeSrc":"473:4:89","nodeType":"YulIdentifier","src":"473:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14:527:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"104:9:89","nodeType":"YulTypedName","src":"104:9:89","type":""},{"name":"value0","nativeSrc":"115:6:89","nodeType":"YulTypedName","src":"115:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"126:4:89","nodeType":"YulTypedName","src":"126:4:89","type":""}],"src":"14:527:89"},{"body":{"nativeSrc":"595:124:89","nodeType":"YulBlock","src":"595:124:89","statements":[{"nativeSrc":"605:29:89","nodeType":"YulAssignment","src":"605:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"627:6:89","nodeType":"YulIdentifier","src":"627:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"614:12:89","nodeType":"YulIdentifier","src":"614:12:89"},"nativeSrc":"614:20:89","nodeType":"YulFunctionCall","src":"614:20:89"},"variableNames":[{"name":"value","nativeSrc":"605:5:89","nodeType":"YulIdentifier","src":"605:5:89"}]},{"body":{"nativeSrc":"697:16:89","nodeType":"YulBlock","src":"697:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"706:1:89","nodeType":"YulLiteral","src":"706:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"709:1:89","nodeType":"YulLiteral","src":"709:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"699:6:89","nodeType":"YulIdentifier","src":"699:6:89"},"nativeSrc":"699:12:89","nodeType":"YulFunctionCall","src":"699:12:89"},"nativeSrc":"699:12:89","nodeType":"YulExpressionStatement","src":"699:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:89","nodeType":"YulIdentifier","src":"656:5:89"},{"arguments":[{"name":"value","nativeSrc":"667:5:89","nodeType":"YulIdentifier","src":"667:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"682:3:89","nodeType":"YulLiteral","src":"682:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"687:1:89","nodeType":"YulLiteral","src":"687:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"678:3:89","nodeType":"YulIdentifier","src":"678:3:89"},"nativeSrc":"678:11:89","nodeType":"YulFunctionCall","src":"678:11:89"},{"kind":"number","nativeSrc":"691:1:89","nodeType":"YulLiteral","src":"691:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"674:3:89","nodeType":"YulIdentifier","src":"674:3:89"},"nativeSrc":"674:19:89","nodeType":"YulFunctionCall","src":"674:19:89"}],"functionName":{"name":"and","nativeSrc":"663:3:89","nodeType":"YulIdentifier","src":"663:3:89"},"nativeSrc":"663:31:89","nodeType":"YulFunctionCall","src":"663:31:89"}],"functionName":{"name":"eq","nativeSrc":"653:2:89","nodeType":"YulIdentifier","src":"653:2:89"},"nativeSrc":"653:42:89","nodeType":"YulFunctionCall","src":"653:42:89"}],"functionName":{"name":"iszero","nativeSrc":"646:6:89","nodeType":"YulIdentifier","src":"646:6:89"},"nativeSrc":"646:50:89","nodeType":"YulFunctionCall","src":"646:50:89"},"nativeSrc":"643:70:89","nodeType":"YulIf","src":"643:70:89"}]},"name":"abi_decode_address","nativeSrc":"546:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"574:6:89","nodeType":"YulTypedName","src":"574:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"585:5:89","nodeType":"YulTypedName","src":"585:5:89","type":""}],"src":"546:173:89"},{"body":{"nativeSrc":"811:213:89","nodeType":"YulBlock","src":"811:213:89","statements":[{"body":{"nativeSrc":"857:16:89","nodeType":"YulBlock","src":"857:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"866:1:89","nodeType":"YulLiteral","src":"866:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"869:1:89","nodeType":"YulLiteral","src":"869:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"859:6:89","nodeType":"YulIdentifier","src":"859:6:89"},"nativeSrc":"859:12:89","nodeType":"YulFunctionCall","src":"859:12:89"},"nativeSrc":"859:12:89","nodeType":"YulExpressionStatement","src":"859:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"832:7:89","nodeType":"YulIdentifier","src":"832:7:89"},{"name":"headStart","nativeSrc":"841:9:89","nodeType":"YulIdentifier","src":"841:9:89"}],"functionName":{"name":"sub","nativeSrc":"828:3:89","nodeType":"YulIdentifier","src":"828:3:89"},"nativeSrc":"828:23:89","nodeType":"YulFunctionCall","src":"828:23:89"},{"kind":"number","nativeSrc":"853:2:89","nodeType":"YulLiteral","src":"853:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"824:3:89","nodeType":"YulIdentifier","src":"824:3:89"},"nativeSrc":"824:32:89","nodeType":"YulFunctionCall","src":"824:32:89"},"nativeSrc":"821:52:89","nodeType":"YulIf","src":"821:52:89"},{"nativeSrc":"882:39:89","nodeType":"YulAssignment","src":"882:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"911:9:89","nodeType":"YulIdentifier","src":"911:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"892:18:89","nodeType":"YulIdentifier","src":"892:18:89"},"nativeSrc":"892:29:89","nodeType":"YulFunctionCall","src":"892:29:89"},"variableNames":[{"name":"value0","nativeSrc":"882:6:89","nodeType":"YulIdentifier","src":"882:6:89"}]},{"nativeSrc":"930:14:89","nodeType":"YulVariableDeclaration","src":"930:14:89","value":{"kind":"number","nativeSrc":"943:1:89","nodeType":"YulLiteral","src":"943:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"934:5:89","nodeType":"YulTypedName","src":"934:5:89","type":""}]},{"nativeSrc":"953:41:89","nodeType":"YulAssignment","src":"953:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"979:9:89","nodeType":"YulIdentifier","src":"979:9:89"},{"kind":"number","nativeSrc":"990:2:89","nodeType":"YulLiteral","src":"990:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"975:3:89","nodeType":"YulIdentifier","src":"975:3:89"},"nativeSrc":"975:18:89","nodeType":"YulFunctionCall","src":"975:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"962:12:89","nodeType":"YulIdentifier","src":"962:12:89"},"nativeSrc":"962:32:89","nodeType":"YulFunctionCall","src":"962:32:89"},"variableNames":[{"name":"value","nativeSrc":"953:5:89","nodeType":"YulIdentifier","src":"953:5:89"}]},{"nativeSrc":"1003:15:89","nodeType":"YulAssignment","src":"1003:15:89","value":{"name":"value","nativeSrc":"1013:5:89","nodeType":"YulIdentifier","src":"1013:5:89"},"variableNames":[{"name":"value1","nativeSrc":"1003:6:89","nodeType":"YulIdentifier","src":"1003:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"724:300:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"769:9:89","nodeType":"YulTypedName","src":"769:9:89","type":""},{"name":"dataEnd","nativeSrc":"780:7:89","nodeType":"YulTypedName","src":"780:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"792:6:89","nodeType":"YulTypedName","src":"792:6:89","type":""},{"name":"value1","nativeSrc":"800:6:89","nodeType":"YulTypedName","src":"800:6:89","type":""}],"src":"724:300:89"},{"body":{"nativeSrc":"1124:92:89","nodeType":"YulBlock","src":"1124:92:89","statements":[{"nativeSrc":"1134:26:89","nodeType":"YulAssignment","src":"1134:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1146:9:89","nodeType":"YulIdentifier","src":"1146:9:89"},{"kind":"number","nativeSrc":"1157:2:89","nodeType":"YulLiteral","src":"1157:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1142:3:89","nodeType":"YulIdentifier","src":"1142:3:89"},"nativeSrc":"1142:18:89","nodeType":"YulFunctionCall","src":"1142:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1134:4:89","nodeType":"YulIdentifier","src":"1134:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1176:9:89","nodeType":"YulIdentifier","src":"1176:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1201:6:89","nodeType":"YulIdentifier","src":"1201:6:89"}],"functionName":{"name":"iszero","nativeSrc":"1194:6:89","nodeType":"YulIdentifier","src":"1194:6:89"},"nativeSrc":"1194:14:89","nodeType":"YulFunctionCall","src":"1194:14:89"}],"functionName":{"name":"iszero","nativeSrc":"1187:6:89","nodeType":"YulIdentifier","src":"1187:6:89"},"nativeSrc":"1187:22:89","nodeType":"YulFunctionCall","src":"1187:22:89"}],"functionName":{"name":"mstore","nativeSrc":"1169:6:89","nodeType":"YulIdentifier","src":"1169:6:89"},"nativeSrc":"1169:41:89","nodeType":"YulFunctionCall","src":"1169:41:89"},"nativeSrc":"1169:41:89","nodeType":"YulExpressionStatement","src":"1169:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1029:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1093:9:89","nodeType":"YulTypedName","src":"1093:9:89","type":""},{"name":"value0","nativeSrc":"1104:6:89","nodeType":"YulTypedName","src":"1104:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1115:4:89","nodeType":"YulTypedName","src":"1115:4:89","type":""}],"src":"1029:187:89"},{"body":{"nativeSrc":"1322:76:89","nodeType":"YulBlock","src":"1322:76:89","statements":[{"nativeSrc":"1332:26:89","nodeType":"YulAssignment","src":"1332:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1344:9:89","nodeType":"YulIdentifier","src":"1344:9:89"},{"kind":"number","nativeSrc":"1355:2:89","nodeType":"YulLiteral","src":"1355:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1340:3:89","nodeType":"YulIdentifier","src":"1340:3:89"},"nativeSrc":"1340:18:89","nodeType":"YulFunctionCall","src":"1340:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1332:4:89","nodeType":"YulIdentifier","src":"1332:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1374:9:89","nodeType":"YulIdentifier","src":"1374:9:89"},{"name":"value0","nativeSrc":"1385:6:89","nodeType":"YulIdentifier","src":"1385:6:89"}],"functionName":{"name":"mstore","nativeSrc":"1367:6:89","nodeType":"YulIdentifier","src":"1367:6:89"},"nativeSrc":"1367:25:89","nodeType":"YulFunctionCall","src":"1367:25:89"},"nativeSrc":"1367:25:89","nodeType":"YulExpressionStatement","src":"1367:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1221:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1291:9:89","nodeType":"YulTypedName","src":"1291:9:89","type":""},{"name":"value0","nativeSrc":"1302:6:89","nodeType":"YulTypedName","src":"1302:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1313:4:89","nodeType":"YulTypedName","src":"1313:4:89","type":""}],"src":"1221:177:89"},{"body":{"nativeSrc":"1507:270:89","nodeType":"YulBlock","src":"1507:270:89","statements":[{"body":{"nativeSrc":"1553:16:89","nodeType":"YulBlock","src":"1553:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1562:1:89","nodeType":"YulLiteral","src":"1562:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1565:1:89","nodeType":"YulLiteral","src":"1565:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1555:6:89","nodeType":"YulIdentifier","src":"1555:6:89"},"nativeSrc":"1555:12:89","nodeType":"YulFunctionCall","src":"1555:12:89"},"nativeSrc":"1555:12:89","nodeType":"YulExpressionStatement","src":"1555:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1528:7:89","nodeType":"YulIdentifier","src":"1528:7:89"},{"name":"headStart","nativeSrc":"1537:9:89","nodeType":"YulIdentifier","src":"1537:9:89"}],"functionName":{"name":"sub","nativeSrc":"1524:3:89","nodeType":"YulIdentifier","src":"1524:3:89"},"nativeSrc":"1524:23:89","nodeType":"YulFunctionCall","src":"1524:23:89"},{"kind":"number","nativeSrc":"1549:2:89","nodeType":"YulLiteral","src":"1549:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1520:3:89","nodeType":"YulIdentifier","src":"1520:3:89"},"nativeSrc":"1520:32:89","nodeType":"YulFunctionCall","src":"1520:32:89"},"nativeSrc":"1517:52:89","nodeType":"YulIf","src":"1517:52:89"},{"nativeSrc":"1578:39:89","nodeType":"YulAssignment","src":"1578:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1607:9:89","nodeType":"YulIdentifier","src":"1607:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1588:18:89","nodeType":"YulIdentifier","src":"1588:18:89"},"nativeSrc":"1588:29:89","nodeType":"YulFunctionCall","src":"1588:29:89"},"variableNames":[{"name":"value0","nativeSrc":"1578:6:89","nodeType":"YulIdentifier","src":"1578:6:89"}]},{"nativeSrc":"1626:48:89","nodeType":"YulAssignment","src":"1626:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1659:9:89","nodeType":"YulIdentifier","src":"1659:9:89"},{"kind":"number","nativeSrc":"1670:2:89","nodeType":"YulLiteral","src":"1670:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1655:3:89","nodeType":"YulIdentifier","src":"1655:3:89"},"nativeSrc":"1655:18:89","nodeType":"YulFunctionCall","src":"1655:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1636:18:89","nodeType":"YulIdentifier","src":"1636:18:89"},"nativeSrc":"1636:38:89","nodeType":"YulFunctionCall","src":"1636:38:89"},"variableNames":[{"name":"value1","nativeSrc":"1626:6:89","nodeType":"YulIdentifier","src":"1626:6:89"}]},{"nativeSrc":"1683:14:89","nodeType":"YulVariableDeclaration","src":"1683:14:89","value":{"kind":"number","nativeSrc":"1696:1:89","nodeType":"YulLiteral","src":"1696:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1687:5:89","nodeType":"YulTypedName","src":"1687:5:89","type":""}]},{"nativeSrc":"1706:41:89","nodeType":"YulAssignment","src":"1706:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1732:9:89","nodeType":"YulIdentifier","src":"1732:9:89"},{"kind":"number","nativeSrc":"1743:2:89","nodeType":"YulLiteral","src":"1743:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1728:3:89","nodeType":"YulIdentifier","src":"1728:3:89"},"nativeSrc":"1728:18:89","nodeType":"YulFunctionCall","src":"1728:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1715:12:89","nodeType":"YulIdentifier","src":"1715:12:89"},"nativeSrc":"1715:32:89","nodeType":"YulFunctionCall","src":"1715:32:89"},"variableNames":[{"name":"value","nativeSrc":"1706:5:89","nodeType":"YulIdentifier","src":"1706:5:89"}]},{"nativeSrc":"1756:15:89","nodeType":"YulAssignment","src":"1756:15:89","value":{"name":"value","nativeSrc":"1766:5:89","nodeType":"YulIdentifier","src":"1766:5:89"},"variableNames":[{"name":"value2","nativeSrc":"1756:6:89","nodeType":"YulIdentifier","src":"1756:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"1403:374:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1457:9:89","nodeType":"YulTypedName","src":"1457:9:89","type":""},{"name":"dataEnd","nativeSrc":"1468:7:89","nodeType":"YulTypedName","src":"1468:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1480:6:89","nodeType":"YulTypedName","src":"1480:6:89","type":""},{"name":"value1","nativeSrc":"1488:6:89","nodeType":"YulTypedName","src":"1488:6:89","type":""},{"name":"value2","nativeSrc":"1496:6:89","nodeType":"YulTypedName","src":"1496:6:89","type":""}],"src":"1403:374:89"},{"body":{"nativeSrc":"1852:156:89","nodeType":"YulBlock","src":"1852:156:89","statements":[{"body":{"nativeSrc":"1898:16:89","nodeType":"YulBlock","src":"1898:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1907:1:89","nodeType":"YulLiteral","src":"1907:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1910:1:89","nodeType":"YulLiteral","src":"1910:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1900:6:89","nodeType":"YulIdentifier","src":"1900:6:89"},"nativeSrc":"1900:12:89","nodeType":"YulFunctionCall","src":"1900:12:89"},"nativeSrc":"1900:12:89","nodeType":"YulExpressionStatement","src":"1900:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1873:7:89","nodeType":"YulIdentifier","src":"1873:7:89"},{"name":"headStart","nativeSrc":"1882:9:89","nodeType":"YulIdentifier","src":"1882:9:89"}],"functionName":{"name":"sub","nativeSrc":"1869:3:89","nodeType":"YulIdentifier","src":"1869:3:89"},"nativeSrc":"1869:23:89","nodeType":"YulFunctionCall","src":"1869:23:89"},{"kind":"number","nativeSrc":"1894:2:89","nodeType":"YulLiteral","src":"1894:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1865:3:89","nodeType":"YulIdentifier","src":"1865:3:89"},"nativeSrc":"1865:32:89","nodeType":"YulFunctionCall","src":"1865:32:89"},"nativeSrc":"1862:52:89","nodeType":"YulIf","src":"1862:52:89"},{"nativeSrc":"1923:14:89","nodeType":"YulVariableDeclaration","src":"1923:14:89","value":{"kind":"number","nativeSrc":"1936:1:89","nodeType":"YulLiteral","src":"1936:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1927:5:89","nodeType":"YulTypedName","src":"1927:5:89","type":""}]},{"nativeSrc":"1946:32:89","nodeType":"YulAssignment","src":"1946:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1968:9:89","nodeType":"YulIdentifier","src":"1968:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1955:12:89","nodeType":"YulIdentifier","src":"1955:12:89"},"nativeSrc":"1955:23:89","nodeType":"YulFunctionCall","src":"1955:23:89"},"variableNames":[{"name":"value","nativeSrc":"1946:5:89","nodeType":"YulIdentifier","src":"1946:5:89"}]},{"nativeSrc":"1987:15:89","nodeType":"YulAssignment","src":"1987:15:89","value":{"name":"value","nativeSrc":"1997:5:89","nodeType":"YulIdentifier","src":"1997:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1987:6:89","nodeType":"YulIdentifier","src":"1987:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1782:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1818:9:89","nodeType":"YulTypedName","src":"1818:9:89","type":""},{"name":"dataEnd","nativeSrc":"1829:7:89","nodeType":"YulTypedName","src":"1829:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1841:6:89","nodeType":"YulTypedName","src":"1841:6:89","type":""}],"src":"1782:226:89"},{"body":{"nativeSrc":"2110:87:89","nodeType":"YulBlock","src":"2110:87:89","statements":[{"nativeSrc":"2120:26:89","nodeType":"YulAssignment","src":"2120:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2132:9:89","nodeType":"YulIdentifier","src":"2132:9:89"},{"kind":"number","nativeSrc":"2143:2:89","nodeType":"YulLiteral","src":"2143:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2128:3:89","nodeType":"YulIdentifier","src":"2128:3:89"},"nativeSrc":"2128:18:89","nodeType":"YulFunctionCall","src":"2128:18:89"},"variableNames":[{"name":"tail","nativeSrc":"2120:4:89","nodeType":"YulIdentifier","src":"2120:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2162:9:89","nodeType":"YulIdentifier","src":"2162:9:89"},{"arguments":[{"name":"value0","nativeSrc":"2177:6:89","nodeType":"YulIdentifier","src":"2177:6:89"},{"kind":"number","nativeSrc":"2185:4:89","nodeType":"YulLiteral","src":"2185:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2173:3:89","nodeType":"YulIdentifier","src":"2173:3:89"},"nativeSrc":"2173:17:89","nodeType":"YulFunctionCall","src":"2173:17:89"}],"functionName":{"name":"mstore","nativeSrc":"2155:6:89","nodeType":"YulIdentifier","src":"2155:6:89"},"nativeSrc":"2155:36:89","nodeType":"YulFunctionCall","src":"2155:36:89"},"nativeSrc":"2155:36:89","nodeType":"YulExpressionStatement","src":"2155:36:89"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"2013:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2079:9:89","nodeType":"YulTypedName","src":"2079:9:89","type":""},{"name":"value0","nativeSrc":"2090:6:89","nodeType":"YulTypedName","src":"2090:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2101:4:89","nodeType":"YulTypedName","src":"2101:4:89","type":""}],"src":"2013:184:89"},{"body":{"nativeSrc":"2272:116:89","nodeType":"YulBlock","src":"2272:116:89","statements":[{"body":{"nativeSrc":"2318:16:89","nodeType":"YulBlock","src":"2318:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2327:1:89","nodeType":"YulLiteral","src":"2327:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2330:1:89","nodeType":"YulLiteral","src":"2330:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2320:6:89","nodeType":"YulIdentifier","src":"2320:6:89"},"nativeSrc":"2320:12:89","nodeType":"YulFunctionCall","src":"2320:12:89"},"nativeSrc":"2320:12:89","nodeType":"YulExpressionStatement","src":"2320:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2293:7:89","nodeType":"YulIdentifier","src":"2293:7:89"},{"name":"headStart","nativeSrc":"2302:9:89","nodeType":"YulIdentifier","src":"2302:9:89"}],"functionName":{"name":"sub","nativeSrc":"2289:3:89","nodeType":"YulIdentifier","src":"2289:3:89"},"nativeSrc":"2289:23:89","nodeType":"YulFunctionCall","src":"2289:23:89"},{"kind":"number","nativeSrc":"2314:2:89","nodeType":"YulLiteral","src":"2314:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2285:3:89","nodeType":"YulIdentifier","src":"2285:3:89"},"nativeSrc":"2285:32:89","nodeType":"YulFunctionCall","src":"2285:32:89"},"nativeSrc":"2282:52:89","nodeType":"YulIf","src":"2282:52:89"},{"nativeSrc":"2343:39:89","nodeType":"YulAssignment","src":"2343:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2372:9:89","nodeType":"YulIdentifier","src":"2372:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2353:18:89","nodeType":"YulIdentifier","src":"2353:18:89"},"nativeSrc":"2353:29:89","nodeType":"YulFunctionCall","src":"2353:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2343:6:89","nodeType":"YulIdentifier","src":"2343:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2202:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2238:9:89","nodeType":"YulTypedName","src":"2238:9:89","type":""},{"name":"dataEnd","nativeSrc":"2249:7:89","nodeType":"YulTypedName","src":"2249:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2261:6:89","nodeType":"YulTypedName","src":"2261:6:89","type":""}],"src":"2202:186:89"},{"body":{"nativeSrc":"2480:173:89","nodeType":"YulBlock","src":"2480:173:89","statements":[{"body":{"nativeSrc":"2526:16:89","nodeType":"YulBlock","src":"2526:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2535:1:89","nodeType":"YulLiteral","src":"2535:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2538:1:89","nodeType":"YulLiteral","src":"2538:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2528:6:89","nodeType":"YulIdentifier","src":"2528:6:89"},"nativeSrc":"2528:12:89","nodeType":"YulFunctionCall","src":"2528:12:89"},"nativeSrc":"2528:12:89","nodeType":"YulExpressionStatement","src":"2528:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2501:7:89","nodeType":"YulIdentifier","src":"2501:7:89"},{"name":"headStart","nativeSrc":"2510:9:89","nodeType":"YulIdentifier","src":"2510:9:89"}],"functionName":{"name":"sub","nativeSrc":"2497:3:89","nodeType":"YulIdentifier","src":"2497:3:89"},"nativeSrc":"2497:23:89","nodeType":"YulFunctionCall","src":"2497:23:89"},{"kind":"number","nativeSrc":"2522:2:89","nodeType":"YulLiteral","src":"2522:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2493:3:89","nodeType":"YulIdentifier","src":"2493:3:89"},"nativeSrc":"2493:32:89","nodeType":"YulFunctionCall","src":"2493:32:89"},"nativeSrc":"2490:52:89","nodeType":"YulIf","src":"2490:52:89"},{"nativeSrc":"2551:39:89","nodeType":"YulAssignment","src":"2551:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2580:9:89","nodeType":"YulIdentifier","src":"2580:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2561:18:89","nodeType":"YulIdentifier","src":"2561:18:89"},"nativeSrc":"2561:29:89","nodeType":"YulFunctionCall","src":"2561:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2551:6:89","nodeType":"YulIdentifier","src":"2551:6:89"}]},{"nativeSrc":"2599:48:89","nodeType":"YulAssignment","src":"2599:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2632:9:89","nodeType":"YulIdentifier","src":"2632:9:89"},{"kind":"number","nativeSrc":"2643:2:89","nodeType":"YulLiteral","src":"2643:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2628:3:89","nodeType":"YulIdentifier","src":"2628:3:89"},"nativeSrc":"2628:18:89","nodeType":"YulFunctionCall","src":"2628:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2609:18:89","nodeType":"YulIdentifier","src":"2609:18:89"},"nativeSrc":"2609:38:89","nodeType":"YulFunctionCall","src":"2609:38:89"},"variableNames":[{"name":"value1","nativeSrc":"2599:6:89","nodeType":"YulIdentifier","src":"2599:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"2393:260:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2438:9:89","nodeType":"YulTypedName","src":"2438:9:89","type":""},{"name":"dataEnd","nativeSrc":"2449:7:89","nodeType":"YulTypedName","src":"2449:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2461:6:89","nodeType":"YulTypedName","src":"2461:6:89","type":""},{"name":"value1","nativeSrc":"2469:6:89","nodeType":"YulTypedName","src":"2469:6:89","type":""}],"src":"2393:260:89"},{"body":{"nativeSrc":"2832:226:89","nodeType":"YulBlock","src":"2832:226:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2849:9:89","nodeType":"YulIdentifier","src":"2849:9:89"},{"kind":"number","nativeSrc":"2860:2:89","nodeType":"YulLiteral","src":"2860:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2842:6:89","nodeType":"YulIdentifier","src":"2842:6:89"},"nativeSrc":"2842:21:89","nodeType":"YulFunctionCall","src":"2842:21:89"},"nativeSrc":"2842:21:89","nodeType":"YulExpressionStatement","src":"2842:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2883:9:89","nodeType":"YulIdentifier","src":"2883:9:89"},{"kind":"number","nativeSrc":"2894:2:89","nodeType":"YulLiteral","src":"2894:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2879:3:89","nodeType":"YulIdentifier","src":"2879:3:89"},"nativeSrc":"2879:18:89","nodeType":"YulFunctionCall","src":"2879:18:89"},{"kind":"number","nativeSrc":"2899:2:89","nodeType":"YulLiteral","src":"2899:2:89","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"2872:6:89","nodeType":"YulIdentifier","src":"2872:6:89"},"nativeSrc":"2872:30:89","nodeType":"YulFunctionCall","src":"2872:30:89"},"nativeSrc":"2872:30:89","nodeType":"YulExpressionStatement","src":"2872:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2922:9:89","nodeType":"YulIdentifier","src":"2922:9:89"},{"kind":"number","nativeSrc":"2933:2:89","nodeType":"YulLiteral","src":"2933:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2918:3:89","nodeType":"YulIdentifier","src":"2918:3:89"},"nativeSrc":"2918:18:89","nodeType":"YulFunctionCall","src":"2918:18:89"},{"hexValue":"4465706f7369742076616c7565206d7573742062652067726561746572207468","kind":"string","nativeSrc":"2938:34:89","nodeType":"YulLiteral","src":"2938:34:89","type":"","value":"Deposit value must be greater th"}],"functionName":{"name":"mstore","nativeSrc":"2911:6:89","nodeType":"YulIdentifier","src":"2911:6:89"},"nativeSrc":"2911:62:89","nodeType":"YulFunctionCall","src":"2911:62:89"},"nativeSrc":"2911:62:89","nodeType":"YulExpressionStatement","src":"2911:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2993:9:89","nodeType":"YulIdentifier","src":"2993:9:89"},{"kind":"number","nativeSrc":"3004:2:89","nodeType":"YulLiteral","src":"3004:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2989:3:89","nodeType":"YulIdentifier","src":"2989:3:89"},"nativeSrc":"2989:18:89","nodeType":"YulFunctionCall","src":"2989:18:89"},{"hexValue":"616e2030","kind":"string","nativeSrc":"3009:6:89","nodeType":"YulLiteral","src":"3009:6:89","type":"","value":"an 0"}],"functionName":{"name":"mstore","nativeSrc":"2982:6:89","nodeType":"YulIdentifier","src":"2982:6:89"},"nativeSrc":"2982:34:89","nodeType":"YulFunctionCall","src":"2982:34:89"},"nativeSrc":"2982:34:89","nodeType":"YulExpressionStatement","src":"2982:34:89"},{"nativeSrc":"3025:27:89","nodeType":"YulAssignment","src":"3025:27:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3037:9:89","nodeType":"YulIdentifier","src":"3037:9:89"},{"kind":"number","nativeSrc":"3048:3:89","nodeType":"YulLiteral","src":"3048:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3033:3:89","nodeType":"YulIdentifier","src":"3033:3:89"},"nativeSrc":"3033:19:89","nodeType":"YulFunctionCall","src":"3033:19:89"},"variableNames":[{"name":"tail","nativeSrc":"3025:4:89","nodeType":"YulIdentifier","src":"3025:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_5ff2399ac8a8231a1fc50157a81c9b2e0c210821dea894a0fa2fae78bba239fc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2658:400:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2809:9:89","nodeType":"YulTypedName","src":"2809:9:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2823:4:89","nodeType":"YulTypedName","src":"2823:4:89","type":""}],"src":"2658:400:89"},{"body":{"nativeSrc":"3118:325:89","nodeType":"YulBlock","src":"3118:325:89","statements":[{"nativeSrc":"3128:22:89","nodeType":"YulAssignment","src":"3128:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"3142:1:89","nodeType":"YulLiteral","src":"3142:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"3145:4:89","nodeType":"YulIdentifier","src":"3145:4:89"}],"functionName":{"name":"shr","nativeSrc":"3138:3:89","nodeType":"YulIdentifier","src":"3138:3:89"},"nativeSrc":"3138:12:89","nodeType":"YulFunctionCall","src":"3138:12:89"},"variableNames":[{"name":"length","nativeSrc":"3128:6:89","nodeType":"YulIdentifier","src":"3128:6:89"}]},{"nativeSrc":"3159:38:89","nodeType":"YulVariableDeclaration","src":"3159:38:89","value":{"arguments":[{"name":"data","nativeSrc":"3189:4:89","nodeType":"YulIdentifier","src":"3189:4:89"},{"kind":"number","nativeSrc":"3195:1:89","nodeType":"YulLiteral","src":"3195:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"3185:3:89","nodeType":"YulIdentifier","src":"3185:3:89"},"nativeSrc":"3185:12:89","nodeType":"YulFunctionCall","src":"3185:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"3163:18:89","nodeType":"YulTypedName","src":"3163:18:89","type":""}]},{"body":{"nativeSrc":"3236:31:89","nodeType":"YulBlock","src":"3236:31:89","statements":[{"nativeSrc":"3238:27:89","nodeType":"YulAssignment","src":"3238:27:89","value":{"arguments":[{"name":"length","nativeSrc":"3252:6:89","nodeType":"YulIdentifier","src":"3252:6:89"},{"kind":"number","nativeSrc":"3260:4:89","nodeType":"YulLiteral","src":"3260:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"3248:3:89","nodeType":"YulIdentifier","src":"3248:3:89"},"nativeSrc":"3248:17:89","nodeType":"YulFunctionCall","src":"3248:17:89"},"variableNames":[{"name":"length","nativeSrc":"3238:6:89","nodeType":"YulIdentifier","src":"3238:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"3216:18:89","nodeType":"YulIdentifier","src":"3216:18:89"}],"functionName":{"name":"iszero","nativeSrc":"3209:6:89","nodeType":"YulIdentifier","src":"3209:6:89"},"nativeSrc":"3209:26:89","nodeType":"YulFunctionCall","src":"3209:26:89"},"nativeSrc":"3206:61:89","nodeType":"YulIf","src":"3206:61:89"},{"body":{"nativeSrc":"3326:111:89","nodeType":"YulBlock","src":"3326:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3347:1:89","nodeType":"YulLiteral","src":"3347:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3354:3:89","nodeType":"YulLiteral","src":"3354:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"3359:10:89","nodeType":"YulLiteral","src":"3359:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3350:3:89","nodeType":"YulIdentifier","src":"3350:3:89"},"nativeSrc":"3350:20:89","nodeType":"YulFunctionCall","src":"3350:20:89"}],"functionName":{"name":"mstore","nativeSrc":"3340:6:89","nodeType":"YulIdentifier","src":"3340:6:89"},"nativeSrc":"3340:31:89","nodeType":"YulFunctionCall","src":"3340:31:89"},"nativeSrc":"3340:31:89","nodeType":"YulExpressionStatement","src":"3340:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3391:1:89","nodeType":"YulLiteral","src":"3391:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"3394:4:89","nodeType":"YulLiteral","src":"3394:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"3384:6:89","nodeType":"YulIdentifier","src":"3384:6:89"},"nativeSrc":"3384:15:89","nodeType":"YulFunctionCall","src":"3384:15:89"},"nativeSrc":"3384:15:89","nodeType":"YulExpressionStatement","src":"3384:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3419:1:89","nodeType":"YulLiteral","src":"3419:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3422:4:89","nodeType":"YulLiteral","src":"3422:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3412:6:89","nodeType":"YulIdentifier","src":"3412:6:89"},"nativeSrc":"3412:15:89","nodeType":"YulFunctionCall","src":"3412:15:89"},"nativeSrc":"3412:15:89","nodeType":"YulExpressionStatement","src":"3412:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"3282:18:89","nodeType":"YulIdentifier","src":"3282:18:89"},{"arguments":[{"name":"length","nativeSrc":"3305:6:89","nodeType":"YulIdentifier","src":"3305:6:89"},{"kind":"number","nativeSrc":"3313:2:89","nodeType":"YulLiteral","src":"3313:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"3302:2:89","nodeType":"YulIdentifier","src":"3302:2:89"},"nativeSrc":"3302:14:89","nodeType":"YulFunctionCall","src":"3302:14:89"}],"functionName":{"name":"eq","nativeSrc":"3279:2:89","nodeType":"YulIdentifier","src":"3279:2:89"},"nativeSrc":"3279:38:89","nodeType":"YulFunctionCall","src":"3279:38:89"},"nativeSrc":"3276:161:89","nodeType":"YulIf","src":"3276:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"3063:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3098:4:89","nodeType":"YulTypedName","src":"3098:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3107:6:89","nodeType":"YulTypedName","src":"3107:6:89","type":""}],"src":"3063:380:89"},{"body":{"nativeSrc":"3622:170:89","nodeType":"YulBlock","src":"3622:170:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3639:9:89","nodeType":"YulIdentifier","src":"3639:9:89"},{"kind":"number","nativeSrc":"3650:2:89","nodeType":"YulLiteral","src":"3650:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3632:6:89","nodeType":"YulIdentifier","src":"3632:6:89"},"nativeSrc":"3632:21:89","nodeType":"YulFunctionCall","src":"3632:21:89"},"nativeSrc":"3632:21:89","nodeType":"YulExpressionStatement","src":"3632:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3673:9:89","nodeType":"YulIdentifier","src":"3673:9:89"},{"kind":"number","nativeSrc":"3684:2:89","nodeType":"YulLiteral","src":"3684:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3669:3:89","nodeType":"YulIdentifier","src":"3669:3:89"},"nativeSrc":"3669:18:89","nodeType":"YulFunctionCall","src":"3669:18:89"},{"kind":"number","nativeSrc":"3689:2:89","nodeType":"YulLiteral","src":"3689:2:89","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"3662:6:89","nodeType":"YulIdentifier","src":"3662:6:89"},"nativeSrc":"3662:30:89","nodeType":"YulFunctionCall","src":"3662:30:89"},"nativeSrc":"3662:30:89","nodeType":"YulExpressionStatement","src":"3662:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3712:9:89","nodeType":"YulIdentifier","src":"3712:9:89"},{"kind":"number","nativeSrc":"3723:2:89","nodeType":"YulLiteral","src":"3723:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3708:3:89","nodeType":"YulIdentifier","src":"3708:3:89"},"nativeSrc":"3708:18:89","nodeType":"YulFunctionCall","src":"3708:18:89"},{"hexValue":"496e73756666696369656e742062616c616e6365","kind":"string","nativeSrc":"3728:22:89","nodeType":"YulLiteral","src":"3728:22:89","type":"","value":"Insufficient balance"}],"functionName":{"name":"mstore","nativeSrc":"3701:6:89","nodeType":"YulIdentifier","src":"3701:6:89"},"nativeSrc":"3701:50:89","nodeType":"YulFunctionCall","src":"3701:50:89"},"nativeSrc":"3701:50:89","nodeType":"YulExpressionStatement","src":"3701:50:89"},{"nativeSrc":"3760:26:89","nodeType":"YulAssignment","src":"3760:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3772:9:89","nodeType":"YulIdentifier","src":"3772:9:89"},{"kind":"number","nativeSrc":"3783:2:89","nodeType":"YulLiteral","src":"3783:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3768:3:89","nodeType":"YulIdentifier","src":"3768:3:89"},"nativeSrc":"3768:18:89","nodeType":"YulFunctionCall","src":"3768:18:89"},"variableNames":[{"name":"tail","nativeSrc":"3760:4:89","nodeType":"YulIdentifier","src":"3760:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3448:344:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3599:9:89","nodeType":"YulTypedName","src":"3599:9:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3613:4:89","nodeType":"YulTypedName","src":"3613:4:89","type":""}],"src":"3448:344:89"},{"body":{"nativeSrc":"3988:14:89","nodeType":"YulBlock","src":"3988:14:89","statements":[{"nativeSrc":"3990:10:89","nodeType":"YulAssignment","src":"3990:10:89","value":{"name":"pos","nativeSrc":"3997:3:89","nodeType":"YulIdentifier","src":"3997:3:89"},"variableNames":[{"name":"end","nativeSrc":"3990:3:89","nodeType":"YulIdentifier","src":"3990:3:89"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3797:205:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3972:3:89","nodeType":"YulTypedName","src":"3972:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3980:3:89","nodeType":"YulTypedName","src":"3980:3:89","type":""}],"src":"3797:205:89"},{"body":{"nativeSrc":"4181:167:89","nodeType":"YulBlock","src":"4181:167:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4198:9:89","nodeType":"YulIdentifier","src":"4198:9:89"},{"kind":"number","nativeSrc":"4209:2:89","nodeType":"YulLiteral","src":"4209:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4191:6:89","nodeType":"YulIdentifier","src":"4191:6:89"},"nativeSrc":"4191:21:89","nodeType":"YulFunctionCall","src":"4191:21:89"},"nativeSrc":"4191:21:89","nodeType":"YulExpressionStatement","src":"4191:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4232:9:89","nodeType":"YulIdentifier","src":"4232:9:89"},{"kind":"number","nativeSrc":"4243:2:89","nodeType":"YulLiteral","src":"4243:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4228:3:89","nodeType":"YulIdentifier","src":"4228:3:89"},"nativeSrc":"4228:18:89","nodeType":"YulFunctionCall","src":"4228:18:89"},{"kind":"number","nativeSrc":"4248:2:89","nodeType":"YulLiteral","src":"4248:2:89","type":"","value":"17"}],"functionName":{"name":"mstore","nativeSrc":"4221:6:89","nodeType":"YulIdentifier","src":"4221:6:89"},"nativeSrc":"4221:30:89","nodeType":"YulFunctionCall","src":"4221:30:89"},"nativeSrc":"4221:30:89","nodeType":"YulExpressionStatement","src":"4221:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4271:9:89","nodeType":"YulIdentifier","src":"4271:9:89"},{"kind":"number","nativeSrc":"4282:2:89","nodeType":"YulLiteral","src":"4282:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4267:3:89","nodeType":"YulIdentifier","src":"4267:3:89"},"nativeSrc":"4267:18:89","nodeType":"YulFunctionCall","src":"4267:18:89"},{"hexValue":"5769746864726177616c206661696c6564","kind":"string","nativeSrc":"4287:19:89","nodeType":"YulLiteral","src":"4287:19:89","type":"","value":"Withdrawal failed"}],"functionName":{"name":"mstore","nativeSrc":"4260:6:89","nodeType":"YulIdentifier","src":"4260:6:89"},"nativeSrc":"4260:47:89","nodeType":"YulFunctionCall","src":"4260:47:89"},"nativeSrc":"4260:47:89","nodeType":"YulExpressionStatement","src":"4260:47:89"},{"nativeSrc":"4316:26:89","nodeType":"YulAssignment","src":"4316:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4328:9:89","nodeType":"YulIdentifier","src":"4328:9:89"},{"kind":"number","nativeSrc":"4339:2:89","nodeType":"YulLiteral","src":"4339:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4324:3:89","nodeType":"YulIdentifier","src":"4324:3:89"},"nativeSrc":"4324:18:89","nodeType":"YulFunctionCall","src":"4324:18:89"},"variableNames":[{"name":"tail","nativeSrc":"4316:4:89","nodeType":"YulIdentifier","src":"4316:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4007:341:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4158:9:89","nodeType":"YulTypedName","src":"4158:9:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4172:4:89","nodeType":"YulTypedName","src":"4172:4:89","type":""}],"src":"4007:341:89"},{"body":{"nativeSrc":"4454:102:89","nodeType":"YulBlock","src":"4454:102:89","statements":[{"nativeSrc":"4464:26:89","nodeType":"YulAssignment","src":"4464:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4476:9:89","nodeType":"YulIdentifier","src":"4476:9:89"},{"kind":"number","nativeSrc":"4487:2:89","nodeType":"YulLiteral","src":"4487:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4472:3:89","nodeType":"YulIdentifier","src":"4472:3:89"},"nativeSrc":"4472:18:89","nodeType":"YulFunctionCall","src":"4472:18:89"},"variableNames":[{"name":"tail","nativeSrc":"4464:4:89","nodeType":"YulIdentifier","src":"4464:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4506:9:89","nodeType":"YulIdentifier","src":"4506:9:89"},{"arguments":[{"name":"value0","nativeSrc":"4521:6:89","nodeType":"YulIdentifier","src":"4521:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4537:3:89","nodeType":"YulLiteral","src":"4537:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"4542:1:89","nodeType":"YulLiteral","src":"4542:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4533:3:89","nodeType":"YulIdentifier","src":"4533:3:89"},"nativeSrc":"4533:11:89","nodeType":"YulFunctionCall","src":"4533:11:89"},{"kind":"number","nativeSrc":"4546:1:89","nodeType":"YulLiteral","src":"4546:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4529:3:89","nodeType":"YulIdentifier","src":"4529:3:89"},"nativeSrc":"4529:19:89","nodeType":"YulFunctionCall","src":"4529:19:89"}],"functionName":{"name":"and","nativeSrc":"4517:3:89","nodeType":"YulIdentifier","src":"4517:3:89"},"nativeSrc":"4517:32:89","nodeType":"YulFunctionCall","src":"4517:32:89"}],"functionName":{"name":"mstore","nativeSrc":"4499:6:89","nodeType":"YulIdentifier","src":"4499:6:89"},"nativeSrc":"4499:51:89","nodeType":"YulFunctionCall","src":"4499:51:89"},"nativeSrc":"4499:51:89","nodeType":"YulExpressionStatement","src":"4499:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4353:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4423:9:89","nodeType":"YulTypedName","src":"4423:9:89","type":""},{"name":"value0","nativeSrc":"4434:6:89","nodeType":"YulTypedName","src":"4434:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4445:4:89","nodeType":"YulTypedName","src":"4445:4:89","type":""}],"src":"4353:203:89"},{"body":{"nativeSrc":"4718:188:89","nodeType":"YulBlock","src":"4718:188:89","statements":[{"nativeSrc":"4728:26:89","nodeType":"YulAssignment","src":"4728:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4740:9:89","nodeType":"YulIdentifier","src":"4740:9:89"},{"kind":"number","nativeSrc":"4751:2:89","nodeType":"YulLiteral","src":"4751:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4736:3:89","nodeType":"YulIdentifier","src":"4736:3:89"},"nativeSrc":"4736:18:89","nodeType":"YulFunctionCall","src":"4736:18:89"},"variableNames":[{"name":"tail","nativeSrc":"4728:4:89","nodeType":"YulIdentifier","src":"4728:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4770:9:89","nodeType":"YulIdentifier","src":"4770:9:89"},{"arguments":[{"name":"value0","nativeSrc":"4785:6:89","nodeType":"YulIdentifier","src":"4785:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4801:3:89","nodeType":"YulLiteral","src":"4801:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"4806:1:89","nodeType":"YulLiteral","src":"4806:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4797:3:89","nodeType":"YulIdentifier","src":"4797:3:89"},"nativeSrc":"4797:11:89","nodeType":"YulFunctionCall","src":"4797:11:89"},{"kind":"number","nativeSrc":"4810:1:89","nodeType":"YulLiteral","src":"4810:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4793:3:89","nodeType":"YulIdentifier","src":"4793:3:89"},"nativeSrc":"4793:19:89","nodeType":"YulFunctionCall","src":"4793:19:89"}],"functionName":{"name":"and","nativeSrc":"4781:3:89","nodeType":"YulIdentifier","src":"4781:3:89"},"nativeSrc":"4781:32:89","nodeType":"YulFunctionCall","src":"4781:32:89"}],"functionName":{"name":"mstore","nativeSrc":"4763:6:89","nodeType":"YulIdentifier","src":"4763:6:89"},"nativeSrc":"4763:51:89","nodeType":"YulFunctionCall","src":"4763:51:89"},"nativeSrc":"4763:51:89","nodeType":"YulExpressionStatement","src":"4763:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4834:9:89","nodeType":"YulIdentifier","src":"4834:9:89"},{"kind":"number","nativeSrc":"4845:2:89","nodeType":"YulLiteral","src":"4845:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4830:3:89","nodeType":"YulIdentifier","src":"4830:3:89"},"nativeSrc":"4830:18:89","nodeType":"YulFunctionCall","src":"4830:18:89"},{"name":"value1","nativeSrc":"4850:6:89","nodeType":"YulIdentifier","src":"4850:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4823:6:89","nodeType":"YulIdentifier","src":"4823:6:89"},"nativeSrc":"4823:34:89","nodeType":"YulFunctionCall","src":"4823:34:89"},"nativeSrc":"4823:34:89","nodeType":"YulExpressionStatement","src":"4823:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4877:9:89","nodeType":"YulIdentifier","src":"4877:9:89"},{"kind":"number","nativeSrc":"4888:2:89","nodeType":"YulLiteral","src":"4888:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4873:3:89","nodeType":"YulIdentifier","src":"4873:3:89"},"nativeSrc":"4873:18:89","nodeType":"YulFunctionCall","src":"4873:18:89"},{"name":"value2","nativeSrc":"4893:6:89","nodeType":"YulIdentifier","src":"4893:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4866:6:89","nodeType":"YulIdentifier","src":"4866:6:89"},"nativeSrc":"4866:34:89","nodeType":"YulFunctionCall","src":"4866:34:89"},"nativeSrc":"4866:34:89","nodeType":"YulExpressionStatement","src":"4866:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"4561:345:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4671:9:89","nodeType":"YulTypedName","src":"4671:9:89","type":""},{"name":"value2","nativeSrc":"4682:6:89","nodeType":"YulTypedName","src":"4682:6:89","type":""},{"name":"value1","nativeSrc":"4690:6:89","nodeType":"YulTypedName","src":"4690:6:89","type":""},{"name":"value0","nativeSrc":"4698:6:89","nodeType":"YulTypedName","src":"4698:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4709:4:89","nodeType":"YulTypedName","src":"4709:4:89","type":""}],"src":"4561:345:89"},{"body":{"nativeSrc":"4959:174:89","nodeType":"YulBlock","src":"4959:174:89","statements":[{"nativeSrc":"4969:16:89","nodeType":"YulAssignment","src":"4969:16:89","value":{"arguments":[{"name":"x","nativeSrc":"4980:1:89","nodeType":"YulIdentifier","src":"4980:1:89"},{"name":"y","nativeSrc":"4983:1:89","nodeType":"YulIdentifier","src":"4983:1:89"}],"functionName":{"name":"add","nativeSrc":"4976:3:89","nodeType":"YulIdentifier","src":"4976:3:89"},"nativeSrc":"4976:9:89","nodeType":"YulFunctionCall","src":"4976:9:89"},"variableNames":[{"name":"sum","nativeSrc":"4969:3:89","nodeType":"YulIdentifier","src":"4969:3:89"}]},{"body":{"nativeSrc":"5016:111:89","nodeType":"YulBlock","src":"5016:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5037:1:89","nodeType":"YulLiteral","src":"5037:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5044:3:89","nodeType":"YulLiteral","src":"5044:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"5049:10:89","nodeType":"YulLiteral","src":"5049:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5040:3:89","nodeType":"YulIdentifier","src":"5040:3:89"},"nativeSrc":"5040:20:89","nodeType":"YulFunctionCall","src":"5040:20:89"}],"functionName":{"name":"mstore","nativeSrc":"5030:6:89","nodeType":"YulIdentifier","src":"5030:6:89"},"nativeSrc":"5030:31:89","nodeType":"YulFunctionCall","src":"5030:31:89"},"nativeSrc":"5030:31:89","nodeType":"YulExpressionStatement","src":"5030:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5081:1:89","nodeType":"YulLiteral","src":"5081:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"5084:4:89","nodeType":"YulLiteral","src":"5084:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5074:6:89","nodeType":"YulIdentifier","src":"5074:6:89"},"nativeSrc":"5074:15:89","nodeType":"YulFunctionCall","src":"5074:15:89"},"nativeSrc":"5074:15:89","nodeType":"YulExpressionStatement","src":"5074:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5109:1:89","nodeType":"YulLiteral","src":"5109:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5112:4:89","nodeType":"YulLiteral","src":"5112:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5102:6:89","nodeType":"YulIdentifier","src":"5102:6:89"},"nativeSrc":"5102:15:89","nodeType":"YulFunctionCall","src":"5102:15:89"},"nativeSrc":"5102:15:89","nodeType":"YulExpressionStatement","src":"5102:15:89"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"5000:1:89","nodeType":"YulIdentifier","src":"5000:1:89"},{"name":"sum","nativeSrc":"5003:3:89","nodeType":"YulIdentifier","src":"5003:3:89"}],"functionName":{"name":"gt","nativeSrc":"4997:2:89","nodeType":"YulIdentifier","src":"4997:2:89"},"nativeSrc":"4997:10:89","nodeType":"YulFunctionCall","src":"4997:10:89"},"nativeSrc":"4994:133:89","nodeType":"YulIf","src":"4994:133:89"}]},"name":"checked_add_t_uint256","nativeSrc":"4911:222:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4942:1:89","nodeType":"YulTypedName","src":"4942:1:89","type":""},{"name":"y","nativeSrc":"4945:1:89","nodeType":"YulTypedName","src":"4945:1:89","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"4951:3:89","nodeType":"YulTypedName","src":"4951:3:89","type":""}],"src":"4911:222:89"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), 32)))\n        }\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_5ff2399ac8a8231a1fc50157a81c9b2e0c210821dea894a0fa2fae78bba239fc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Deposit value must be greater th\")\n        mstore(add(headStart, 96), \"an 0\")\n        tail := add(headStart, 128)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Insufficient balance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    { end := pos }\n    function abi_encode_tuple_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"Withdrawal failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce5671461016e57806370a082311461018a57806395d89b41146101c0578063a9059cbb146101d5578063d0e30db0146101f5578063dd62ed3e146101fd57600080fd5b806306fdde03146100b4578063095ea7b3146100df57806318160ddd1461010f57806323b872dd1461012e5780632e1a7d4d1461014e57600080fd5b366100af576100ad610243565b005b600080fd5b3480156100c057600080fd5b506100c96102f7565b6040516100d6919061089f565b60405180910390f35b3480156100eb57600080fd5b506100ff6100fa366004610909565b610389565b60405190151581526020016100d6565b34801561011b57600080fd5b506002545b6040519081526020016100d6565b34801561013a57600080fd5b506100ff610149366004610933565b6103a3565b34801561015a57600080fd5b506100ad610169366004610970565b6103c7565b34801561017a57600080fd5b50604051601281526020016100d6565b34801561019657600080fd5b506101206101a5366004610989565b6001600160a01b031660009081526020819052604090205490565b3480156101cc57600080fd5b506100c96104fe565b3480156101e157600080fd5b506100ff6101f0366004610909565b61050d565b6100ad610243565b34801561020957600080fd5b506101206102183660046109ab565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61024b61051b565b600034116102ac5760405162461bcd60e51b8152602060048201526024808201527f4465706f7369742076616c7565206d75737420626520677265617465722074686044820152630616e20360e41b60648201526084015b60405180910390fd5b6102b63334610545565b60405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a26102f56001600555565b565b606060038054610306906109de565b80601f0160208091040260200160405190810160405280929190818152602001828054610332906109de565b801561037f5780601f106103545761010080835404028352916020019161037f565b820191906000526020600020905b81548152906001019060200180831161036257829003601f168201915b5050505050905090565b60003361039781858561057f565b60019150505b92915050565b6000336103b1858285610591565b6103bc85858561060f565b506001949350505050565b6103cf61051b565b336000908152602081905260409020548111156104255760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016102a3565b61042f338261066e565b604051600090339083908381818185875af1925050503d8060008114610471576040519150601f19603f3d011682016040523d82523d6000602084013e610476565b606091505b50509050806104bb5760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016102a3565b60405182815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a2506104fb6001600555565b50565b606060048054610306906109de565b60003361039781858561060f565b60026005540361053e57604051633ee5aeb560e01b815260040160405180910390fd5b6002600555565b6001600160a01b03821661056f5760405163ec442f0560e01b8152600060048201526024016102a3565b61057b600083836106a0565b5050565b61058c83838360016107ca565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461060957818110156105fa57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016102a3565b610609848484840360006107ca565b50505050565b6001600160a01b03831661063957604051634b637e8f60e11b8152600060048201526024016102a3565b6001600160a01b0382166106635760405163ec442f0560e01b8152600060048201526024016102a3565b61058c8383836106a0565b6001600160a01b03821661069857604051634b637e8f60e11b8152600060048201526024016102a3565b61057b826000835b6001600160a01b0383166106cb5780600260008282546106c09190610a18565b9091555061073d9050565b6001600160a01b0383166000908152602081905260409020548181101561071e5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016102a3565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661075957600280548290039055610778565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107bd91815260200190565b60405180910390a3505050565b6001600160a01b0384166107f45760405163e602df0560e01b8152600060048201526024016102a3565b6001600160a01b03831661081e57604051634a1406b160e11b8152600060048201526024016102a3565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561060957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089191815260200190565b60405180910390a350505050565b602081526000825180602084015260005b818110156108cd57602081860181015160408684010152016108b0565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461090457600080fd5b919050565b6000806040838503121561091c57600080fd5b610925836108ed565b946020939093013593505050565b60008060006060848603121561094857600080fd5b610951846108ed565b925061095f602085016108ed565b929592945050506040919091013590565b60006020828403121561098257600080fd5b5035919050565b60006020828403121561099b57600080fd5b6109a4826108ed565b9392505050565b600080604083850312156109be57600080fd5b6109c7836108ed565b91506109d5602084016108ed565b90509250929050565b600181811c908216806109f257607f821691505b602082108103610a1257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561039d57634e487b7160e01b600052601160045260246000fdfea2646970667358221220268a753b86cadd8a05801d3d37fd36f7eece6a6cb01499b0ff96b22be0c0cc5c64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x313CE567 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xDF JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xAF JUMPI PUSH2 0xAD PUSH2 0x243 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x2F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x89F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFA CALLDATASIZE PUSH1 0x4 PUSH2 0x909 JUMP JUMPDEST PUSH2 0x389 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0x149 CALLDATASIZE PUSH1 0x4 PUSH2 0x933 JUMP JUMPDEST PUSH2 0x3A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAD PUSH2 0x169 CALLDATASIZE PUSH1 0x4 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x3C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x1A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x989 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x4FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0x1F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x909 JUMP JUMPDEST PUSH2 0x50D JUMP JUMPDEST PUSH2 0xAD PUSH2 0x243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x24B PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT PUSH2 0x2AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4465706F7369742076616C7565206D7573742062652067726561746572207468 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E203 PUSH1 0xE4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2B6 CALLER CALLVALUE PUSH2 0x545 JUMP JUMPDEST PUSH1 0x40 MLOAD CALLVALUE DUP2 MSTORE CALLER SWAP1 PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x2F5 PUSH1 0x1 PUSH1 0x5 SSTORE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x306 SWAP1 PUSH2 0x9DE 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 0x332 SWAP1 PUSH2 0x9DE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x37F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x354 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x37F 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 0x362 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x397 DUP2 DUP6 DUP6 PUSH2 0x57F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x3B1 DUP6 DUP3 DUP6 PUSH2 0x591 JUMP JUMPDEST PUSH2 0x3BC DUP6 DUP6 DUP6 PUSH2 0x60F JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3CF PUSH2 0x51B JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x425 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E73756666696369656E742062616C616E6365 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x42F CALLER DUP3 PUSH2 0x66E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 CALLER SWAP1 DUP4 SWAP1 DUP4 DUP2 DUP2 DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x471 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 0x476 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x4BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x15DA5D1A191C985DD85B0819985A5B1959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE CALLER SWAP1 PUSH32 0x7FCF532C15F0A6DB0BD6D0E038BEA71D30D808C7D98CB3BF7268A95BF5081B65 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH2 0x4FB PUSH1 0x1 PUSH1 0x5 SSTORE JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x306 SWAP1 PUSH2 0x9DE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x397 DUP2 DUP6 DUP6 PUSH2 0x60F JUMP JUMPDEST PUSH1 0x2 PUSH1 0x5 SLOAD SUB PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH4 0x3EE5AEB5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x56F JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x57B PUSH1 0x0 DUP4 DUP4 PUSH2 0x6A0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x58C DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x7CA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x609 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5FA JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x609 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x7CA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x639 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x663 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x58C DUP4 DUP4 DUP4 PUSH2 0x6A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x698 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x57B DUP3 PUSH1 0x0 DUP4 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6CB JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6C0 SWAP2 SWAP1 PUSH2 0xA18 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x73D SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x759 JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x778 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x7BD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x81E JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x609 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x891 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8CD JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x8B0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x91C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x925 DUP4 PUSH2 0x8ED JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x951 DUP5 PUSH2 0x8ED JUMP JUMPDEST SWAP3 POP PUSH2 0x95F PUSH1 0x20 DUP6 ADD PUSH2 0x8ED JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x982 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9A4 DUP3 PUSH2 0x8ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C7 DUP4 PUSH2 0x8ED JUMP JUMPDEST SWAP2 POP PUSH2 0x9D5 PUSH1 0x20 DUP5 ADD PUSH2 0x8ED JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x9F2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xA12 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x39D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 DUP11 PUSH22 0x3B86CADD8A05801D3D37FD36F7EECE6A6CB01499B0FF SWAP7 0xB2 0x2B 0xE0 0xC0 0xCC TLOAD PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"361:696:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;503:9;:7;:9::i;:::-;361:696;;;;;1779:89:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;-1:-1:-1;3998:186:23;;;;;:::i;:::-;;:::i;:::-;;;1194:14:89;;1187:22;1169:41;;1157:2;1142:18;3998:186:23;1029:187:89;2849:97:23;;;;;;;;;;-1:-1:-1;2927:12:23;;2849:97;;;1367:25:89;;;1355:2;1340:18;2849:97:23;1221:177:89;4776:244:23;;;;;;;;;;-1:-1:-1;4776:244:23;;;;;:::i;:::-;;:::i;740:315:48:-;;;;;;;;;;-1:-1:-1;740:315:48;;;;;:::i;:::-;;:::i;2707:82:23:-;;;;;;;;;;-1:-1:-1;2707:82:23;;2780:2;2155:36:89;;2143:2;2128:18;2707:82:23;2013:184:89;3004:116:23;;;;;;;;;;-1:-1:-1;3004:116:23;;;;;:::i;:::-;-1:-1:-1;;;;;3095:18:23;3069:7;3095:18;;;;;;;;;;;;3004:116;1981:93;;;;;;;;;;;;;:::i;3315:178::-;;;;;;;;;;-1:-1:-1;3315:178:23;;;;;:::i;:::-;;:::i;525:209:48:-;;;:::i;3551:140:23:-;;;;;;;;;;-1:-1:-1;3551:140:23;;;;;:::i;:::-;-1:-1:-1;;;;;3657:18:23;;;3631:7;3657:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3551:140;525:209:48;2500:21:37;:19;:21::i;:::-;602:1:48::1;590:9;:13;582:62;;;::::0;-1:-1:-1;;;582:62:48;;2860:2:89;582:62:48::1;::::0;::::1;2842:21:89::0;2899:2;2879:18;;;2872:30;2938:34;2918:18;;;2911:62;-1:-1:-1;;;2989:18:89;;;2982:34;3033:19;;582:62:48::1;;;;;;;;;654:28;660:10;672:9;654:5;:28::i;:::-;697:30;::::0;717:9:::1;1367:25:89::0;;705:10:48::1;::::0;697:30:::1;::::0;1355:2:89;1340:18;697:30:48::1;;;;;;;2542:20:37::0;1857:1;3068:7;:21;2888:208;2542:20;525:209:48:o;1779:89:23:-;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;735:10:33;4125:31:23;735:10:33;4141:7:23;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;;:::o;4776:244::-;4863:4;735:10:33;4919:37:23;4935:4;735:10:33;4950:5:23;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;-1:-1:-1;5009:4:23;;4776:244;-1:-1:-1;;;;4776:244:23:o;740:315:48:-;2500:21:37;:19;:21::i;:::-;816:10:48::1;3069:7:23::0;3095:18;;;;;;;;;;;831:3:48;-1:-1:-1;806:28:48::1;798:61;;;::::0;-1:-1:-1;;;798:61:48;;3650:2:89;798:61:48::1;::::0;::::1;3632:21:89::0;3689:2;3669:18;;;3662:30;-1:-1:-1;;;3708:18:89;;;3701:50;3768:18;;798:61:48::1;3448:344:89::0;798:61:48::1;869:22;875:10;887:3;869:5;:22::i;:::-;919:40;::::0;902:12:::1;::::0;927:10:::1;::::0;951:3;;902:12;919:40;902:12;919:40;951:3;927:10;919:40:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;901:58;;;977:7;969:37;;;::::0;-1:-1:-1;;;969:37:48;;4209:2:89;969:37:48::1;::::0;::::1;4191:21:89::0;4248:2;4228:18;;;4221:30;-1:-1:-1;;;4267:18:89;;;4260:47;4324:18;;969:37:48::1;4007:341:89::0;969:37:48::1;1021:27;::::0;1367:25:89;;;1032:10:48::1;::::0;1021:27:::1;::::0;1355:2:89;1340:18;1021:27:48::1;;;;;;;788:267;2542:20:37::0;1857:1;3068:7;:21;2888:208;2542:20;740:315:48;:::o;1981:93:23:-;2028:13;2060:7;2053:14;;;;;:::i;3315:178::-;3384:4;735:10:33;3438:27:23;735:10:33;3455:2:23;3459:5;3438:9;:27::i;2575:307:37:-;1899:1;2702:7;;:18;2698:86;;2743:30;;-1:-1:-1;;;2743:30:37;;;;;;;;;;;2698:86;1899:1;2858:7;:17;2575:307::o;7458:208:23:-;-1:-1:-1;;;;;7528:21:23;;7524:91;;7572:32;;-1:-1:-1;;;7572:32:23;;7601:1;7572:32;;;4499:51:89;4472:18;;7572:32:23;4353:203:89;7524:91:23;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;8726:128::-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;-1:-1:-1;;;;;3657:18:23;;;10514:24;3657:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10580:37:23;;10576:310;;10656:5;10637:16;:24;10633:130;;;10688:60;;-1:-1:-1;;;10688:60:23;;-1:-1:-1;;;;;4781:32:89;;10688:60:23;;;4763:51:89;4830:18;;;4823:34;;;4873:18;;;4866:34;;;4736:18;;10688:60:23;4561:345:89;10633:130:23;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10504:388;10415:477;;;:::o;5393:300::-;-1:-1:-1;;;;;5476:18:23;;5472:86;;5517:30;;-1:-1:-1;;;5517:30:23;;5544:1;5517:30;;;4499:51:89;4472:18;;5517:30:23;4353:203:89;5472:86:23;-1:-1:-1;;;;;5571:16:23;;5567:86;;5610:32;;-1:-1:-1;;;5610:32:23;;5639:1;5610:32;;;4499:51:89;4472:18;;5610:32:23;4353:203:89;5567:86:23;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;7984:206::-;-1:-1:-1;;;;;8054:21:23;;8050:89;;8098:30;;-1:-1:-1;;;8098:30:23;;8125:1;8098:30;;;4499:51:89;4472:18;;8098:30:23;4353:203:89;8050:89:23;8148:35;8156:7;8173:1;8177:5;6008:1107;-1:-1:-1;;;;;6097:18:23;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6093:540:23;;-1:-1:-1;6093:540:23;;-1:-1:-1;;;;;6307:15:23;;6285:19;6307:15;;;;;;;;;;;6340:19;;;6336:115;;;6386:50;;-1:-1:-1;;;6386:50:23;;-1:-1:-1;;;;;4781:32:89;;6386:50:23;;;4763:51:89;4830:18;;;4823:34;;;4873:18;;;4866:34;;;4736:18;;6386:50:23;4561:345:89;6336:115:23;-1:-1:-1;;;;;6571:15:23;;:9;:15;;;;;;;;;;6589:19;;;;6571:37;;6093:540;-1:-1:-1;;;;;6647:16:23;;6643:425;;6810:12;:21;;;;;;;6643:425;;;-1:-1:-1;;;;;7021:13:23;;:9;:13;;;;;;;;;;:22;;;;;;6643:425;7098:2;-1:-1:-1;;;;;7083:25:23;7092:4;-1:-1:-1;;;;;7083:25:23;;7102:5;7083:25;;;;1367::89;;1355:2;1340:18;;1221:177;7083:25:23;;;;;;;;6008:1107;;;:::o;9701:432::-;-1:-1:-1;;;;;9813:19:23;;9809:89;;9855:32;;-1:-1:-1;;;9855:32:23;;9884:1;9855:32;;;4499:51:89;4472:18;;9855:32:23;4353:203:89;9809:89:23;-1:-1:-1;;;;;9911:21:23;;9907:90;;9955:31;;-1:-1:-1;;;9955:31:23;;9983:1;9955:31;;;4499:51:89;4472:18;;9955:31:23;4353:203:89;9907:90:23;-1:-1:-1;;;;;10006:18:23;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10051:76;;;;10101:7;-1:-1:-1;;;;;10085:31:23;10094:5;-1:-1:-1;;;;;10085:31:23;;10110:5;10085:31;;;;1367:25:89;;1355:2;1340:18;;1221:177;10085:31:23;;;;;;;;9701:432;;;;:::o;14:527:89:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;263:1;273:140;287:6;284:1;281:13;273:140;;;398:2;382:14;;;378:23;;372:30;367:2;348:17;;;344:26;337:66;302:10;273:140;;;277:3;462:1;457:2;448:6;437:9;433:22;429:31;422:42;532:2;525;521:7;516:2;508:6;504:15;500:29;489:9;485:45;481:54;473:62;;;14:527;;;;:::o;546:173::-;614:20;;-1:-1:-1;;;;;663:31:89;;653:42;;643:70;;709:1;706;699:12;643:70;546:173;;;:::o;724:300::-;792:6;800;853:2;841:9;832:7;828:23;824:32;821:52;;;869:1;866;859:12;821:52;892:29;911:9;892:29;:::i;:::-;882:39;990:2;975:18;;;;962:32;;-1:-1:-1;;;724:300:89:o;1403:374::-;1480:6;1488;1496;1549:2;1537:9;1528:7;1524:23;1520:32;1517:52;;;1565:1;1562;1555:12;1517:52;1588:29;1607:9;1588:29;:::i;:::-;1578:39;;1636:38;1670:2;1659:9;1655:18;1636:38;:::i;:::-;1403:374;;1626:48;;-1:-1:-1;;;1743:2:89;1728:18;;;;1715:32;;1403:374::o;1782:226::-;1841:6;1894:2;1882:9;1873:7;1869:23;1865:32;1862:52;;;1910:1;1907;1900:12;1862:52;-1:-1:-1;1955:23:89;;1782:226;-1:-1:-1;1782:226:89:o;2202:186::-;2261:6;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;2353:29;2372:9;2353:29;:::i;:::-;2343:39;2202:186;-1:-1:-1;;;2202:186:89:o;2393:260::-;2461:6;2469;2522:2;2510:9;2501:7;2497:23;2493:32;2490:52;;;2538:1;2535;2528:12;2490:52;2561:29;2580:9;2561:29;:::i;:::-;2551:39;;2609:38;2643:2;2632:9;2628:18;2609:38;:::i;:::-;2599:48;;2393:260;;;;;:::o;3063:380::-;3142:1;3138:12;;;;3185;;;3206:61;;3260:4;3252:6;3248:17;3238:27;;3206:61;3313:2;3305:6;3302:14;3282:18;3279:38;3276:161;;3359:10;3354:3;3350:20;3347:1;3340:31;3394:4;3391:1;3384:15;3422:4;3419:1;3412:15;3276:161;;3063:380;;;:::o;4911:222::-;4976:9;;;4997:10;;;4994:133;;;5049:10;5044:3;5040:20;5037:1;5030:31;5084:4;5081:1;5074:15;5112:4;5109:1;5102:15"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"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\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"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\":\"value\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"TAC\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"title\":\"Wrapped TAC contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Wrapped TAC token contract over ERC20\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/WTAC.sol\":\"WTAC\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"contracts/WTAC.sol\":{\"keccak256\":\"0x41369fa4e8f03ba7747cea0cf1d019159630d2d0d828ea27c1c7c63203b57d85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://450d0c2041d960579bd61371995ee2088df983ab04d505d25f8e18e41919340e\",\"dweb:/ipfs/QmUSTVcWSuSuurWMtWgYZ5tTHHsmsfv7ZGHpDbggch1Sfp\"]},\"contracts/interfaces/IWTAC.sol\":{\"keccak256\":\"0x3b860c804660ce600b22230e4ef1b6d49bd557381b883fbdc1e90e9e4a930cbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79f037d94e000bc09342232eadcf4030940519d95309b9ddb83f08e44c5d9251\",\"dweb:/ipfs/QmdMSQTUTCLdiCtRSjpY9MCKUuD8haH44mwUBPzroCL3d5\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":4165,"contract":"contracts/WTAC.sol:WTAC","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":4171,"contract":"contracts/WTAC.sol:WTAC","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":4173,"contract":"contracts/WTAC.sol:WTAC","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":4175,"contract":"contracts/WTAC.sol:WTAC","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":4177,"contract":"contracts/WTAC.sol:WTAC","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":6842,"contract":"contracts/WTAC.sol:WTAC","label":"_status","offset":0,"slot":"5","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/core/Consensus.sol":{"Consensus":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"}],"name":"GroupAlreadyAdded","type":"error"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"}],"name":"GroupDoesntExist","type":"error"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"}],"name":"GroupIsNotEmpty","type":"error"},{"inputs":[],"name":"InvalidGroupId","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"OnlyGroupAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"voter","type":"address"}],"name":"OnlyVoter","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"},{"internalType":"address","name":"voter","type":"address"}],"name":"VoterAlreadyAdded","type":"error"},{"inputs":[{"internalType":"address","name":"voter","type":"address"}],"name":"VoterAlreadyRemoved","type":"error"},{"inputs":[{"internalType":"address","name":"voter","type":"address"}],"name":"VoterAlreadyVoted","type":"error"},{"inputs":[],"name":"VotingIsNotActive","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint64","name":"prevMessageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"messageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"prevEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"currEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"nextVotingTime","type":"uint64"}],"indexed":false,"internalType":"struct EpochInfo","name":"epochInfo","type":"tuple"}],"name":"ConsensusEpochStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"currEpochStartTime","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"ConsensusReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"groupId","type":"bytes32"}],"name":"GroupAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"groupId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"voterAddress","type":"address"}],"name":"VoterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"voterAddress","type":"address"}],"name":"VoterRemoved","type":"event"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EPOCH_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"_roots","outputs":[{"internalType":"uint256","name":"validUntil","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"},{"internalType":"address","name":"adminAddress","type":"address"}],"name":"addGroup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"},{"internalType":"address","name":"voterAddress","type":"address"}],"name":"addVoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"checkMerkleRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"bytes32","name":"groupId","type":"bytes32"}],"name":"consensusVotesNumber","outputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentEpochInfo","outputs":[{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint64","name":"prevMessageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"messageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"prevEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"currEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"nextVotingTime","type":"uint64"}],"internalType":"struct EpochInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGroups","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getValue","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"}],"name":"groupsAdmins","outputs":[{"internalType":"address","name":"admin","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"address","name":"","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"}],"name":"inGroupVotersNum","outputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"},{"internalType":"address","name":"settingsAddress","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"}],"name":"removeGroup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"voterAddress","type":"address"}],"name":"removeVoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"},{"internalType":"address","name":"newAdminAddress","type":"address"}],"name":"setGroupAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalGroups","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalVoters","outputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint64","name":"messageCollectEndTime","type":"uint64"},{"internalType":"bytes32","name":"newRoot","type":"bytes32"}],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"voter","type":"address"}],"name":"voterToGroupId","outputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a060405230608052348015601357600080fd5b506080516128b361003d60003960008181611b1b01528181611b440152611c9501526128b36000f3fe6080604052600436106101ee5760003560e01c806352d1902d1161010d578063a217fddf116100a0578063c61163451161006f578063c611634514610624578063c72b517614610644578063c75f289314610666578063d547741f1461067b578063ef65792d1461069b57600080fd5b8063a217fddf14610564578063a278881c14610579578063ad3cb1cc146105c4578063babc394f1461060257600080fd5b806386c1ff68116100dc57806386c1ff681461048e57806391d14854146104ae5780639af37ad3146104ce5780639e031bec1461051657600080fd5b806352d1902d146104155780635f5300ff1461042a57806365d8dd341461043f578063814964f01461045f57600080fd5b80632a0acc6a1161018557806336568abe1161015457806336568abe146103a257806343273213146103c2578063485cc955146103e25780634f1ef2861461040257600080fd5b80632a0acc6a146103295780632f2ff15d1461034b578063304895f11461036b57806331f449001461038d57600080fd5b80631cc4ca7b116101c15780631cc4ca7b146102b257806320965255146102c7578063248a9ca3146102dc57806326678e5d146102fc57600080fd5b806301ffc9a7146101f357806304fab6e1146102285780630a514cf21461024a5780631477046614610285575b600080fd5b3480156101ff57600080fd5b5061021361020e366004612352565b6106bb565b60405190151581526020015b60405180910390f35b34801561023457600080fd5b50610248610243366004612398565b6106f2565b005b34801561025657600080fd5b506102776102653660046123c4565b60066020526000908152604090205481565b60405190815260200161021f565b34801561029157600080fd5b506102776102a03660046123df565b60076020526000908152604090205481565b3480156102be57600080fd5b50610248610788565b3480156102d357600080fd5b50600b54610277565b3480156102e857600080fd5b506102776102f73660046123df565b610862565b34801561030857600080fd5b506102776103173660046123df565b600a6020526000908152604090205481565b34801561033557600080fd5b5061027760008051602061281e83398151915281565b34801561035757600080fd5b50610248610366366004612398565b610884565b34801561037757600080fd5b506102776000805160206127de83398151915281565b34801561039957600080fd5b506102486108a6565b3480156103ae57600080fd5b506102486103bd366004612398565b6108e6565b3480156103ce57600080fd5b506102486103dd3660046123df565b61091e565b3480156103ee57600080fd5b506102486103fd3660046123f8565b610abb565b6102486104103660046124c5565b610c52565b34801561042157600080fd5b50610277610c71565b34801561043657600080fd5b50610277610c8e565b34801561044b57600080fd5b5061024861045a366004612398565b610ce6565b34801561046b57600080fd5b5061021361047a3660046123df565b6000908152600a6020526040902054421090565b34801561049a57600080fd5b506102486104a93660046123c4565b610e71565b3480156104ba57600080fd5b506102136104c9366004612398565b610fb5565b3480156104da57600080fd5b506102776104e9366004612512565b81516020818401810180516008825292820194820194909420919093529091526000908152604090205481565b34801561052257600080fd5b5061054c6105313660046123df565b6002602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161021f565b34801561057057600080fd5b50610277600081565b34801561058557600080fd5b50610213610594366004612556565b81516020818401810180516009825292820194820194909420919093529091526000908152604090205460ff1681565b3480156105d057600080fd5b506105f5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161021f91906125be565b34801561060e57600080fd5b50610617610fed565b60405161021f91906125f1565b34801561063057600080fd5b5061024861063f366004612677565b61107c565b34801561065057600080fd5b50610659611398565b60405161021f91906126a3565b34801561067257600080fd5b50600354610277565b34801561068757600080fd5b50610248610696366004612398565b6113f0565b3480156106a757600080fd5b506102486106b6366004612398565b61140c565b60006001600160e01b03198216637965db0b60e01b14806106ec57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526002602052604090205482906001600160a01b031633146107325760405163798042a560e01b81523360048201526024015b60405180910390fd5b6001600160a01b0382166107595760405163d92e233d60e01b815260040160405180910390fd5b5060009182526002602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000805160206127de8339815191526107a081611640565b600054604051630e31818560e11b81527f4f27e928da73627e3874c3712f79e2e58f25a77db3929917088d7d5014f08604600482015242916001600160a01b031690631c63030a90602401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c91906126e6565b600c546108499190600160c01b90046001600160401b0316612719565b6001600160401b03161161085f5761085f61164a565b50565b600090815260008051602061283e833981519152602052604090206001015490565b61088d82610862565b61089681611640565b6108a083836118e9565b50505050565b60008051602061285e833981519152546001600160401b0316156108dc5760405162dc149f60e41b815260040160405180910390fd5b6108e461198e565b565b6001600160a01b038116331461090f5760405163334bd91960e11b815260040160405180910390fd5b6109198282611a29565b505050565b60008051602061281e83398151915261093681611640565b8161095457604051631b47388560e11b815260040160405180910390fd5b6000828152600260205260409020546001600160a01b031661098c576040516349fa563160e11b815260048101839052602401610729565b600082815260076020526040902054156109bc576040516316809dd760e21b815260048101839052602401610729565b600082815260026020526040812080546001600160a01b03191690556003546001600160401b038111156109f2576109f2612422565b604051908082528060200260200182016040528015610a1b578160200160208202803683370190505b5090506000805b600354811015610aa1578460038281548110610a4057610a40612738565b906000526020600020015414610a995760038181548110610a6357610a63612738565b9060005260206000200154838380610a7a9061274e565b945081518110610a8c57610a8c612738565b6020026020010181815250505b600101610a22565b818352610ab360036020850184612294565b505050505050565b60008051602061285e8339815191528054600160401b810460ff1615906001600160401b0316600081158015610aee5750825b90506000826001600160401b03166001148015610b0a5750303b155b905081158015610b18575080155b15610b365760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b6057845460ff60401b1916600160401b1785555b610b68611aa5565b610b70611aa5565b600080546001600160a01b0319166001600160a01b038816179055610ba360008051602061281e83398151915280611aad565b610bc96000805160206127de83398151915260008051602061281e833981519152611aad565b610be160008051602061281e833981519152886118e9565b50610bfa6000805160206127de833981519152886118e9565b50610c0361164a565b8315610c4957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610c5a611b10565b610c6382611bb5565b610c6d8282611bcd565b5050565b6000610c7b611c8a565b506000805160206127fe83398151915290565b6000805b600354811015610ce2576007600060038381548110610cb357610cb3612738565b906000526020600020015481526020019081526020016000205482610cd89190612767565b9150600101610c92565b5090565b60008051602061281e833981519152610cfe81611640565b82610d1c57604051631b47388560e11b815260040160405180910390fd5b6001600160a01b038216610d435760405163d92e233d60e01b815260040160405180910390fd5b6000838152600260205260409020546001600160a01b031615610d7c5760405163dfdfbc2d60e01b815260048101849052602401610729565b60005b600154811015610dd8578360018281548110610d9d57610d9d612738565b90600052602060002090600202016000015403610dd05760405163dfdfbc2d60e01b815260048101859052602401610729565b600101610d7f565b5050604080518082019091529182526001600160a01b039081166020830190815260018054808201825560009190915292517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6600290940293840155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf790920180546001600160a01b03191692909116919091179055565b6001600160a01b038082166000908152600660209081526040808320548084526002909252909120549091163314610ebe5760405163798042a560e01b8152336004820152602401610729565b60005b600554811015610f2e57826001600160a01b031660058281548110610ee857610ee8612738565b6000918252602090912001546001600160a01b031603610f265760405163f9a5ac4b60e01b81526001600160a01b0384166004820152602401610729565b600101610ec1565b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384169081179091556040519081527fa14a79af012d1756818f9bd59ccfc9ad185a71df86b9392d9059d9e6faf6d644906020015b60405180910390a15050565b600091825260008051602061283e833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c081018252600b548152600c546001600160401b038082166020840152600160401b8204811693830193909352600160801b810483166060830152600160c01b900482166080820152600d5490911660a082015290565b336000908152600660205260409020546110ab5760405163e051520960e01b8152336004820152602401610729565b600d546001600160401b0390811690831610610c6d57600d546001600160401b03164210156110ed5760405163179e70af60e21b815260040160405180910390fd5b6040516001600160c01b031960c084901b1660208201526028810182905260009060480160408051601f19818403018152908290529150339060099061113490849061277a565b90815260408051602092819003830190206001600160a01b0384166000908152925290205460ff1615611185576040516327ead06f60e01b81526001600160a01b0382166004820152602401610729565b6001600160a01b0381166000908152600660205260409020546111a9908390611cd3565b156111b45750505050565b6008826040516111c4919061277a565b90815260408051602092819003830190206001600160a01b038416600090815260068452828120548152925281208054916111fe8361274e565b91905055506001600983604051611215919061277a565b90815260408051602092819003830190206001600160a01b038516600090815292529020805460ff191691151591909117905561125182611dec565b156108a057600b839055600c8054600160401b8082046001600160401b039081166fffffffffffffffffffffffffffffffff199093169290921791871602179055600054604051630e31818560e11b81527f30d9b452ee51929ed46b0efac730a78ccd37a793a5acf24feda636390b21051660048201526001600160a01b0390911690631c63030a90602401602060405180830381865afa1580156112fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131e91906126e6565b611331906001600160401b031642612767565b6000848152600a602090815260409182902092909255600c548151600160c01b9091046001600160401b031681529182018590527fccdf41482c7267f877a85c0080dfcb5b0312bb8e08facbdf733b545447b0f9cc910160405180910390a16108a061164a565b606060038054806020026020016040519081016040528092919081815260200182805480156113e657602002820191906000526020600020905b8154815260200190600101908083116113d2575b5050505050905090565b6113f982610862565b61140281611640565b6108a08383611a29565b60008281526002602052604090205482906001600160a01b031633146114475760405163798042a560e01b8152336004820152602401610729565b6001600160a01b03821661146e5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038216600090815260066020526040902054156114cb576001600160a01b038216600081815260066020526040908190205490516329a0e73760e21b815260048101919091526024810191909152604401610729565b60005b60045481101561156f57826001600160a01b0316600482815481106114f5576114f5612738565b60009182526020909120600160029092020101546001600160a01b031603611567576004818154811061152a5761152a612738565b60009182526020909120600290910201546040516329a0e73760e21b815260048101919091526001600160a01b0384166024820152604401610729565b6001016114ce565b506040805180820182528481526001600160a01b0384811660208084018281526004805460018101825560009190915294517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b600290960295860155517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c90940180546001600160a01b03191694909316939093179091558251868152918201527ff2c5d250e7f5e3d0a00af1ab95adfe8fa8da11ad3c6bd195b6cd09688ba317bb910160405180910390a1505050565b61085f8133611f16565b60005b6001548110156116bc576116b46001828154811061166d5761166d612738565b9060005260206000209060020201600001546001838154811061169257611692612738565b60009182526020909120600160029092020101546001600160a01b0316611f4f565b60010161164d565b6116c8600160006122db565b5060005b60045481101561173b57611733600482815481106116ec576116ec612738565b9060005260206000209060020201600001546004838154811061171157611711612738565b60009182526020909120600160029092020101546001600160a01b0316611fce565b6001016116cc565b611747600460006122db565b5060005b60055481101561178d576117856005828154811061176b5761176b612738565b6000918252602090912001546001600160a01b031661202d565b60010161174b565b611799600560006122fc565b50600c80546fffffffffffffffffffffffffffffffff8116600160c01b918290046001600160401b03908116600160801b026001600160c01b03169190911742919091169190910217905560008054604051630e31818560e11b81527fb85db7dee54693d742881af46464432adde0803726a71dd9f6234a601792cf9a600482015282916001600160a01b031690631c63030a90602401602060405180830381865afa15801561184d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187191906126e6565b600c54909150611892908290600160c01b90046001600160401b0316612719565b600d805467ffffffffffffffff19166001600160401b03929092169190911790557f8972e12e089a1ae976976f71bea607670287871127b417136bf394b144082d346118dc610fed565b604051610fa991906125f1565b600060008051602061283e8339815191526119048484610fb5565b611984576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561193a3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106ec565b60009150506106ec565b60008051602061285e8339815191528054600160401b900460ff16156119c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161461085f57805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b600060008051602061283e833981519152611a448484610fb5565b15611984576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106ec565b6108e4612085565b60008051602061283e8339815191526000611ac784610862565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611b9757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b8b6000805160206127fe833981519152546001600160a01b031690565b6001600160a01b031614155b156108e45760405163703e46dd60e11b815260040160405180910390fd5b60008051602061281e833981519152610c6d81611640565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c27575060408051601f3d908101601f19168201909252611c2491810190612796565b60015b611c4f57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610729565b6000805160206127fe8339815191528114611c8057604051632a87526960e21b815260048101829052602401610729565b61091983836120bc565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108e45760405163703e46dd60e11b815260040160405180910390fd5b6000818152600760205260408120548103611cf0575060006106ec565b6000828152600760205260408082205482549151630e31818560e11b81527f7f409c90678ce93e65834482eacce2014a08dd7ce43a3ec31af5320a72db7a62600482015290916001600160a01b031690631c63030a90602401602060405180830381865afa158015611d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8a91906126e6565b6001600160401b0316611d9d91906127af565b9050806103e8600886604051611db3919061277a565b9081526020016040518091039020600086815260200190815260200160002054611ddd91906127af565b106119845760019150506106ec565b60035460008054604051630e31818560e11b81527f4974a2122f752ac8bcaeec9beacd1bb419a4c873fda1aa7058360e08c5c9401c60048201529192839283926001600160a01b031690631c63030a90602401602060405180830381865afa158015611e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8091906126e6565b6001600160401b0316611e9391906127af565b905060005b600354811015611f0b57611ec98560038381548110611eb957611eb9612738565b9060005260206000200154611cd3565b611ed4576000611ed7565b60015b611ee49060ff1684612767565b925081611ef36103e8856127af565b10611f0357506001949350505050565b600101611e98565b506000949350505050565b611f208282610fb5565b610c6d5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610729565b6000828152600260205260409020546001600160a01b031615611f70575050565b600082815260026020526040812080546001600160a01b0319166001600160a01b0393909316929092179091556003805460018101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0155565b6001600160a01b03811660009081526006602052604090205415611ff0575050565b6001600160a01b0381166000908152600660209081526040808320859055848352600790915281208054916120248361274e565b91905055505050565b6001600160a01b03811660009081526006602052604090205461204d5750565b6001600160a01b03811660009081526006602090815260408083208054908490558084526007909252822080549192612024836127c6565b60008051602061285e83398151915254600160401b900460ff166108e457604051631afcd79f60e31b815260040160405180910390fd5b6120c582612112565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561210a576109198282612177565b610c6d6121ed565b806001600160a01b03163b60000361214857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610729565b6000805160206127fe83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051612194919061277a565b600060405180830381855af49150503d80600081146121cf576040519150601f19603f3d011682016040523d82523d6000602084013e6121d4565b606091505b50915091506121e485838361220c565b95945050505050565b34156108e45760405163b398979f60e01b815260040160405180910390fd5b6060826122215761221c8261226b565b612264565b815115801561223857506001600160a01b0384163b155b1561226157604051639996b31560e01b81526001600160a01b0385166004820152602401610729565b50805b9392505050565b80511561227b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b8280548282559060005260206000209081019282156122cf579160200282015b828111156122cf5782518255916020019190600101906122b4565b50610ce2929150612316565b508054600082556002029060005260206000209081019061085f919061232b565b508054600082559060005260206000209081019061085f91905b5b80821115610ce25760008155600101612317565b5b80821115610ce257600081556001810180546001600160a01b031916905560020161232c565b60006020828403121561236457600080fd5b81356001600160e01b03198116811461226457600080fd5b80356001600160a01b038116811461239357600080fd5b919050565b600080604083850312156123ab57600080fd5b823591506123bb6020840161237c565b90509250929050565b6000602082840312156123d657600080fd5b6122648261237c565b6000602082840312156123f157600080fd5b5035919050565b6000806040838503121561240b57600080fd5b6124148361237c565b91506123bb6020840161237c565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261244957600080fd5b81356001600160401b0381111561246257612462612422565b604051601f8201601f19908116603f011681016001600160401b038111828210171561249057612490612422565b6040528181528382016020018510156124a857600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156124d857600080fd5b6124e18361237c565b915060208301356001600160401b038111156124fc57600080fd5b61250885828601612438565b9150509250929050565b6000806040838503121561252557600080fd5b82356001600160401b0381111561253b57600080fd5b61254785828601612438565b95602094909401359450505050565b6000806040838503121561256957600080fd5b82356001600160401b0381111561257f57600080fd5b61258b85828601612438565b9250506123bb6020840161237c565b60005b838110156125b557818101518382015260200161259d565b50506000910152565b60208152600082518060208401526125dd81604085016020870161259a565b601f01601f19169190910160400192915050565b600060c082019050825182526001600160401b0360208401511660208301526001600160401b0360408401511660408301526001600160401b0360608401511660608301526001600160401b0360808401511660808301526001600160401b0360a08401511660a083015292915050565b6001600160401b038116811461085f57600080fd5b6000806040838503121561268a57600080fd5b823561269581612662565b946020939093013593505050565b602080825282518282018190526000918401906040840190835b818110156126db5783518352602093840193909201916001016126bd565b509095945050505050565b6000602082840312156126f857600080fd5b815161226481612662565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381811683821601908111156106ec576106ec612703565b634e487b7160e01b600052603260045260246000fd5b60006001820161276057612760612703565b5060010190565b808201808211156106ec576106ec612703565b6000825161278c81846020870161259a565b9190910192915050565b6000602082840312156127a857600080fd5b5051919050565b80820281158282048414176106ec576106ec612703565b6000816127d5576127d5612703565b50600019019056febb98d3582351a85c7e45e5d913a683b101fd521ef4e097faf6539a7475de6f4d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204194dd6cca33318b1ea5262712db0104e76eb4563553fff422bd6f80f656876664736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x28B3 PUSH2 0x3D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1B1B ADD MSTORE DUP2 DUP2 PUSH2 0x1B44 ADD MSTORE PUSH2 0x1C95 ADD MSTORE PUSH2 0x28B3 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1EE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xC6116345 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC6116345 EQ PUSH2 0x624 JUMPI DUP1 PUSH4 0xC72B5176 EQ PUSH2 0x644 JUMPI DUP1 PUSH4 0xC75F2893 EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xEF65792D EQ PUSH2 0x69B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x564 JUMPI DUP1 PUSH4 0xA278881C EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x5C4 JUMPI DUP1 PUSH4 0xBABC394F EQ PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x86C1FF68 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x86C1FF68 EQ PUSH2 0x48E JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x9AF37AD3 EQ PUSH2 0x4CE JUMPI DUP1 PUSH4 0x9E031BEC EQ PUSH2 0x516 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x52D1902D EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x5F5300FF EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0x65D8DD34 EQ PUSH2 0x43F JUMPI DUP1 PUSH4 0x814964F0 EQ PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A0ACC6A GT PUSH2 0x185 JUMPI DUP1 PUSH4 0x36568ABE GT PUSH2 0x154 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0x43273213 EQ PUSH2 0x3C2 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x402 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x304895F1 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x31F44900 EQ PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1CC4CA7B GT PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x1CC4CA7B EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0x20965255 EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x26678E5D EQ PUSH2 0x2FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x4FAB6E1 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0xA514CF2 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x14770466 EQ PUSH2 0x285 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x20E CALLDATASIZE PUSH1 0x4 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x6F2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x23C4 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x2A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x788 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x277 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x2F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH2 0x862 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x317 CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x884 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x8A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x3BD CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x8E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x3DD CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH2 0x91E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x3FD CALLDATASIZE PUSH1 0x4 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0xABB JUMP JUMPDEST PUSH2 0x248 PUSH2 0x410 CALLDATASIZE PUSH1 0x4 PUSH2 0x24C5 JUMP JUMPDEST PUSH2 0xC52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0xC71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0xC8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x45A CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0xCE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP LT SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x4A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x23C4 JUMP JUMPDEST PUSH2 0xE71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x4C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0xFB5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x4E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2512 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP2 DUP5 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x8 DUP3 MSTORE SWAP3 DUP3 ADD SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 KECCAK256 SWAP2 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54C PUSH2 0x531 CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x570 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x2556 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP2 DUP5 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x9 DUP3 MSTORE SWAP3 DUP3 ADD SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 KECCAK256 SWAP2 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x25BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x617 PUSH2 0xFED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x25F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x630 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x63F CALLDATASIZE PUSH1 0x4 PUSH2 0x2677 JUMP JUMPDEST PUSH2 0x107C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x659 PUSH2 0x1398 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x26A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x277 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x696 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x13F0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x6B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x140C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6EC JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x732 JUMPI PUSH1 0x40 MLOAD PUSH4 0x798042A5 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x759 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD92E233D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x7A0 DUP2 PUSH2 0x1640 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0x4F27E928DA73627E3874C3712F79E2E58F25A77DB3929917088D7D5014F08604 PUSH1 0x4 DUP3 ADD MSTORE TIMESTAMP SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x808 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 0x82C SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x849 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2719 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND GT PUSH2 0x85F JUMPI PUSH2 0x85F PUSH2 0x164A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x88D DUP3 PUSH2 0x862 JUMP JUMPDEST PUSH2 0x896 DUP2 PUSH2 0x1640 JUMP JUMPDEST PUSH2 0x8A0 DUP4 DUP4 PUSH2 0x18E9 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x285E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO PUSH2 0x8DC JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E4 PUSH2 0x198E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x90F JUMPI PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x919 DUP3 DUP3 PUSH2 0x1A29 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x936 DUP2 PUSH2 0x1640 JUMP JUMPDEST DUP2 PUSH2 0x954 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B473885 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x98C JUMPI PUSH1 0x40 MLOAD PUSH4 0x49FA5631 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x9BC JUMPI PUSH1 0x40 MLOAD PUSH4 0x16809DD7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x9F2 JUMPI PUSH2 0x9F2 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA1B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0xAA1 JUMPI DUP5 PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xA40 JUMPI PUSH2 0xA40 PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD EQ PUSH2 0xA99 JUMPI PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA63 JUMPI PUSH2 0xA63 PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP4 DUP4 DUP1 PUSH2 0xA7A SWAP1 PUSH2 0x274E JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA8C JUMPI PUSH2 0xA8C PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA22 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH2 0xAB3 PUSH1 0x3 PUSH1 0x20 DUP6 ADD DUP5 PUSH2 0x2294 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x285E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0xAEE JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xB0A JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xB18 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xB36 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xB60 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xB68 PUSH2 0x1AA5 JUMP JUMPDEST PUSH2 0xB70 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE PUSH2 0xBA3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x1AAD JUMP JUMPDEST PUSH2 0xBC9 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AAD JUMP JUMPDEST PUSH2 0xBE1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP9 PUSH2 0x18E9 JUMP JUMPDEST POP PUSH2 0xBFA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP9 PUSH2 0x18E9 JUMP JUMPDEST POP PUSH2 0xC03 PUSH2 0x164A JUMP JUMPDEST DUP4 ISZERO PUSH2 0xC49 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC5A PUSH2 0x1B10 JUMP JUMPDEST PUSH2 0xC63 DUP3 PUSH2 0x1BB5 JUMP JUMPDEST PUSH2 0xC6D DUP3 DUP3 PUSH2 0x1BCD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH2 0x1C8A JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27FE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0xCE2 JUMPI PUSH1 0x7 PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xCB3 JUMPI PUSH2 0xCB3 PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 PUSH2 0xCD8 SWAP2 SWAP1 PUSH2 0x2767 JUMP JUMPDEST SWAP2 POP PUSH1 0x1 ADD PUSH2 0xC92 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xCFE DUP2 PUSH2 0x1640 JUMP JUMPDEST DUP3 PUSH2 0xD1C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B473885 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xD43 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD92E233D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xDFDFBC2D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 SLOAD DUP2 LT ISZERO PUSH2 0xDD8 JUMPI DUP4 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD9D JUMPI PUSH2 0xD9D PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD SUB PUSH2 0xDD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDFDFBC2D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xD7F JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x20 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE SWAP3 MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF6 PUSH1 0x2 SWAP1 SWAP5 MUL SWAP4 DUP5 ADD SSTORE MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF7 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP1 DUP5 MSTORE PUSH1 0x2 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 AND CALLER EQ PUSH2 0xEBE JUMPI PUSH1 0x40 MLOAD PUSH4 0x798042A5 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x5 SLOAD DUP2 LT ISZERO PUSH2 0xF2E JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x5 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xEE8 JUMPI PUSH2 0xEE8 PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xF26 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF9A5AC4B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xEC1 JUMP JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xA14A79AF012D1756818F9BD59CCFC9AD185A71DF86B9392D9059D9E6FAF6D644 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0xB SLOAD DUP2 MSTORE PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV DUP3 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xD SLOAD SWAP1 SWAP2 AND PUSH1 0xA0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10AB JUMPI PUSH1 0x40 MLOAD PUSH4 0xE0515209 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND LT PUSH2 0xC6D JUMPI PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP LT ISZERO PUSH2 0x10ED JUMPI PUSH1 0x40 MLOAD PUSH4 0x179E70AF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT PUSH1 0xC0 DUP5 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x28 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE SWAP2 POP CALLER SWAP1 PUSH1 0x9 SWAP1 PUSH2 0x1134 SWAP1 DUP5 SWAP1 PUSH2 0x277A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1185 JUMPI PUSH1 0x40 MLOAD PUSH4 0x27EAD06F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x11A9 SWAP1 DUP4 SWAP1 PUSH2 0x1CD3 JUMP JUMPDEST ISZERO PUSH2 0x11B4 JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP3 PUSH1 0x40 MLOAD PUSH2 0x11C4 SWAP2 SWAP1 PUSH2 0x277A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 DUP5 MSTORE DUP3 DUP2 KECCAK256 SLOAD DUP2 MSTORE SWAP3 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x11FE DUP4 PUSH2 0x274E JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1215 SWAP2 SWAP1 PUSH2 0x277A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1251 DUP3 PUSH2 0x1DEC JUMP JUMPDEST ISZERO PUSH2 0x8A0 JUMPI PUSH1 0xB DUP4 SWAP1 SSTORE PUSH1 0xC DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP1 DUP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 DUP8 AND MUL OR SWAP1 SSTORE PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0x30D9B452EE51929ED46B0EFAC730A78CCD37A793A5ACF24FEDA636390B210516 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12FA 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 0x131E SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH2 0x1331 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x2767 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xC SLOAD DUP2 MLOAD PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH32 0xCCDF41482C7267F877A85C0080DFCB5B0312BB8E08FACBDF733B545447B0F9CC SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x8A0 PUSH2 0x164A JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x13E6 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x13D2 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x13F9 DUP3 PUSH2 0x862 JUMP JUMPDEST PUSH2 0x1402 DUP2 PUSH2 0x1640 JUMP JUMPDEST PUSH2 0x8A0 DUP4 DUP4 PUSH2 0x1A29 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1447 JUMPI PUSH1 0x40 MLOAD PUSH4 0x798042A5 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x146E JUMPI PUSH1 0x40 MLOAD PUSH4 0xD92E233D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x14CB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x29A0E737 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x4 SLOAD DUP2 LT ISZERO PUSH2 0x156F JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x14F5 JUMPI PUSH2 0x14F5 PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x2 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x1567 JUMPI PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x152A JUMPI PUSH2 0x152A PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x29A0E737 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x14CE JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP5 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD DUP3 DUP2 MSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE SWAP5 MLOAD PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B PUSH1 0x2 SWAP1 SWAP7 MUL SWAP6 DUP7 ADD SSTORE MLOAD PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19C SWAP1 SWAP5 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP5 SWAP1 SWAP4 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP7 DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0xF2C5D250E7F5E3D0A00AF1AB95ADFE8FA8DA11AD3C6BD195B6CD09688BA317BB SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x85F DUP2 CALLER PUSH2 0x1F16 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 SLOAD DUP2 LT ISZERO PUSH2 0x16BC JUMPI PUSH2 0x16B4 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x166D JUMPI PUSH2 0x166D PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD PUSH1 0x1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1692 JUMPI PUSH2 0x1692 PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x2 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x164D JUMP JUMPDEST PUSH2 0x16C8 PUSH1 0x1 PUSH1 0x0 PUSH2 0x22DB JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH1 0x4 SLOAD DUP2 LT ISZERO PUSH2 0x173B JUMPI PUSH2 0x1733 PUSH1 0x4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x16EC JUMPI PUSH2 0x16EC PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD PUSH1 0x4 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1711 JUMPI PUSH2 0x1711 PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x2 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FCE JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x16CC JUMP JUMPDEST PUSH2 0x1747 PUSH1 0x4 PUSH1 0x0 PUSH2 0x22DB JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH1 0x5 SLOAD DUP2 LT ISZERO PUSH2 0x178D JUMPI PUSH2 0x1785 PUSH1 0x5 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x176B JUMPI PUSH2 0x176B PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x202D JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x174B JUMP JUMPDEST PUSH2 0x1799 PUSH1 0x5 PUSH1 0x0 PUSH2 0x22FC JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 DUP3 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND SWAP2 SWAP1 SWAP2 OR TIMESTAMP SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 MUL OR SWAP1 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0xB85DB7DEE54693D742881AF46464432ADDE0803726A71DD9F6234A601792CF9A PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x184D 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 0x1871 SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH1 0xC SLOAD SWAP1 SWAP2 POP PUSH2 0x1892 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2719 JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x8972E12E089A1AE976976F71BEA607670287871127B417136BF394B144082D34 PUSH2 0x18DC PUSH2 0xFED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFA9 SWAP2 SWAP1 PUSH2 0x25F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1904 DUP5 DUP5 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0x1984 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x193A CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x285E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x19C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0x85F JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1A44 DUP5 DUP5 PUSH2 0xFB5 JUMP JUMPDEST ISZERO PUSH2 0x1984 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP8 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST PUSH2 0x8E4 PUSH2 0x2085 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 PUSH2 0x1AC7 DUP5 PUSH2 0x862 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP7 SWAP1 SSTORE MLOAD SWAP2 SWAP3 POP DUP5 SWAP2 DUP4 SWAP2 DUP8 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x1B97 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B8B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27FE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x8E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC6D DUP2 PUSH2 0x1640 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1C27 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1C24 SWAP2 DUP2 ADD SWAP1 PUSH2 0x2796 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1C4F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27FE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x1C80 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH2 0x919 DUP4 DUP4 PUSH2 0x20BC JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x8E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SUB PUSH2 0x1CF0 JUMPI POP PUSH1 0x0 PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP3 SLOAD SWAP2 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0x7F409C90678CE93E65834482EACCE2014A08DD7CE43A3EC31AF5320A72DB7A62 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D66 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 0x1D8A SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x1D9D SWAP2 SWAP1 PUSH2 0x27AF JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x3E8 PUSH1 0x8 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1DB3 SWAP2 SWAP1 PUSH2 0x277A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1DDD SWAP2 SWAP1 PUSH2 0x27AF JUMP JUMPDEST LT PUSH2 0x1984 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0x4974A2122F752AC8BCAEEC9BEACD1BB419A4C873FDA1AA7058360E08C5C9401C PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E5C 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 0x1E80 SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x1E93 SWAP2 SWAP1 PUSH2 0x27AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0x1F0B JUMPI PUSH2 0x1EC9 DUP6 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1EB9 JUMPI PUSH2 0x1EB9 PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH2 0x1CD3 JUMP JUMPDEST PUSH2 0x1ED4 JUMPI PUSH1 0x0 PUSH2 0x1ED7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1EE4 SWAP1 PUSH1 0xFF AND DUP5 PUSH2 0x2767 JUMP JUMPDEST SWAP3 POP DUP2 PUSH2 0x1EF3 PUSH2 0x3E8 DUP6 PUSH2 0x27AF JUMP JUMPDEST LT PUSH2 0x1F03 JUMPI POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1E98 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1F20 DUP3 DUP3 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xC6D JUMPI PUSH1 0x40 MLOAD PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1F70 JUMPI POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1FF0 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x2024 DUP4 PUSH2 0x274E JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x204D JUMPI POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD SWAP1 DUP5 SWAP1 SSTORE DUP1 DUP5 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 PUSH2 0x2024 DUP4 PUSH2 0x27C6 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x285E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x8E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x20C5 DUP3 PUSH2 0x2112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x210A JUMPI PUSH2 0x919 DUP3 DUP3 PUSH2 0x2177 JUMP JUMPDEST PUSH2 0xC6D PUSH2 0x21ED JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x2148 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27FE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2194 SWAP2 SWAP1 PUSH2 0x277A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x21CF 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 0x21D4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x21E4 DUP6 DUP4 DUP4 PUSH2 0x220C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x8E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x2221 JUMPI PUSH2 0x221C DUP3 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x2264 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2238 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x2261 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x227B JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x22CF JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x22CF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x22B4 JUMP JUMPDEST POP PUSH2 0xCE2 SWAP3 SWAP2 POP PUSH2 0x2316 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x2 MUL SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x85F SWAP2 SWAP1 PUSH2 0x232B JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x85F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xCE2 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2317 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xCE2 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x2 ADD PUSH2 0x232C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x23BB PUSH1 0x20 DUP5 ADD PUSH2 0x237C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2264 DUP3 PUSH2 0x237C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x240B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2414 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP2 POP PUSH2 0x23BB PUSH1 0x20 DUP5 ADD PUSH2 0x237C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2462 JUMPI PUSH2 0x2462 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2490 JUMPI PUSH2 0x2490 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x24A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E1 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2508 DUP6 DUP3 DUP7 ADD PUSH2 0x2438 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x253B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2547 DUP6 DUP3 DUP7 ADD PUSH2 0x2438 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2569 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x257F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x258B DUP6 DUP3 DUP7 ADD PUSH2 0x2438 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x23BB PUSH1 0x20 DUP5 ADD PUSH2 0x237C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25B5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x259D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x25DD DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x259A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x40 DUP5 ADD MLOAD AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x60 DUP5 ADD MLOAD AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x80 DUP5 ADD MLOAD AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0xA0 DUP5 ADD MLOAD AND PUSH1 0xA0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x268A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2695 DUP2 PUSH2 0x2662 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 ADD SWAP1 PUSH1 0x40 DUP5 ADD SWAP1 DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x26DB JUMPI DUP4 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x26BD JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2264 DUP2 PUSH2 0x2662 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x6EC JUMPI PUSH2 0x6EC PUSH2 0x2703 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x2760 JUMPI PUSH2 0x2760 PUSH2 0x2703 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6EC JUMPI PUSH2 0x6EC PUSH2 0x2703 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x278C DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x259A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6EC JUMPI PUSH2 0x6EC PUSH2 0x2703 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x27D5 JUMPI PUSH2 0x27D5 PUSH2 0x2703 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP INVALID 0xBB SWAP9 0xD3 PC 0x23 MLOAD 0xA8 TLOAD PUSH31 0x45E5D913A683B101FD521EF4E097FAF6539A7475DE6F4D360894A13BA1A321 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCDF8B4C520FFE197C5343C6 CREATE2 0xAE 0xC5 SWAP6 PUSH17 0x151EF9A492F2C624FD45DDDE6135EC4202 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP CREATE 0xC5 PUSH31 0x16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00A264 PUSH10 0x706673582212204194DD PUSH13 0xCA33318B1EA5262712DB0104E7 PUSH15 0xB4563553FFF422BD6F80F656876664 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"664:12740:49:-:0;;;1171:4:4;1128:48;;664:12740:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ADMIN_12371":{"entryPoint":null,"id":12371,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_28":{"entryPoint":null,"id":28,"parameterSlots":0,"returnSlots":0},"@EPOCH_MANAGER_12376":{"entryPoint":null,"id":12376,"parameterSlots":0,"returnSlots":0},"@UPGRADE_INTERFACE_VERSION_972":{"entryPoint":null,"id":972,"parameterSlots":0,"returnSlots":0},"@__AccessControl_init_63":{"entryPoint":6821,"id":63,"parameterSlots":0,"returnSlots":0},"@__UUPSUpgradeable_init_1002":{"entryPoint":null,"id":1002,"parameterSlots":0,"returnSlots":0},"@_addGroup_12653":{"entryPoint":8015,"id":12653,"parameterSlots":2,"returnSlots":0},"@_addVoter_12891":{"entryPoint":8142,"id":12891,"parameterSlots":2,"returnSlots":0},"@_authorizeUpgrade_12506":{"entryPoint":7093,"id":12506,"parameterSlots":1,"returnSlots":0},"@_checkConsensus_13078":{"entryPoint":7660,"id":13078,"parameterSlots":1,"returnSlots":1},"@_checkInGroupConsensus_13019":{"entryPoint":7379,"id":13019,"parameterSlots":2,"returnSlots":1},"@_checkInitializing_870":{"entryPoint":8325,"id":870,"parameterSlots":0,"returnSlots":0},"@_checkNonPayable_3695":{"entryPoint":8685,"id":3695,"parameterSlots":0,"returnSlots":0},"@_checkNotDelegated_1078":{"entryPoint":7306,"id":1078,"parameterSlots":0,"returnSlots":0},"@_checkProxy_1062":{"entryPoint":6928,"id":1062,"parameterSlots":0,"returnSlots":0},"@_checkRole_129":{"entryPoint":5696,"id":129,"parameterSlots":1,"returnSlots":0},"@_checkRole_150":{"entryPoint":7958,"id":150,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_916":{"entryPoint":6542,"id":916,"parameterSlots":0,"returnSlots":0},"@_getAccessControlStorage_46":{"entryPoint":null,"id":46,"parameterSlots":0,"returnSlots":1},"@_getInitializableStorage_947":{"entryPoint":null,"id":947,"parameterSlots":0,"returnSlots":1},"@_getInitializedVersion_927":{"entryPoint":null,"id":927,"parameterSlots":0,"returnSlots":1},"@_grantRole_315":{"entryPoint":6377,"id":315,"parameterSlots":2,"returnSlots":1},"@_isInitializing_938":{"entryPoint":null,"id":938,"parameterSlots":0,"returnSlots":1},"@_msgSender_2855":{"entryPoint":null,"id":2855,"parameterSlots":0,"returnSlots":1},"@_removeVoter_12972":{"entryPoint":8237,"id":12972,"parameterSlots":1,"returnSlots":0},"@_revert_6627":{"entryPoint":8811,"id":6627,"parameterSlots":1,"returnSlots":0},"@_revokeRole_361":{"entryPoint":6697,"id":361,"parameterSlots":2,"returnSlots":1},"@_roots_12438":{"entryPoint":null,"id":12438,"parameterSlots":0,"returnSlots":0},"@_setImplementation_3475":{"entryPoint":8466,"id":3475,"parameterSlots":1,"returnSlots":0},"@_setRoleAdmin_268":{"entryPoint":6829,"id":268,"parameterSlots":2,"returnSlots":0},"@_startEpoch_13325":{"entryPoint":5706,"id":13325,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_1129":{"entryPoint":7117,"id":1129,"parameterSlots":2,"returnSlots":0},"@addGroup_12623":{"entryPoint":3302,"id":12623,"parameterSlots":2,"returnSlots":0},"@addVoter_12862":{"entryPoint":5132,"id":12862,"parameterSlots":2,"returnSlots":0},"@checkMerkleRoot_13412":{"entryPoint":null,"id":13412,"parameterSlots":1,"returnSlots":1},"@consensusVotesNumber_12427":{"entryPoint":null,"id":12427,"parameterSlots":0,"returnSlots":0},"@disableInitializers_16246":{"entryPoint":2214,"id":16246,"parameterSlots":0,"returnSlots":0},"@forceEpoch_13210":{"entryPoint":1928,"id":13210,"parameterSlots":0,"returnSlots":0},"@functionDelegateCall_6545":{"entryPoint":8567,"id":6545,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_6935":{"entryPoint":null,"id":6935,"parameterSlots":1,"returnSlots":1},"@getCurrentEpochInfo_13342":{"entryPoint":4077,"id":13342,"parameterSlots":0,"returnSlots":1},"@getGroups_13361":{"entryPoint":5016,"id":13361,"parameterSlots":0,"returnSlots":1},"@getImplementation_3448":{"entryPoint":null,"id":3448,"parameterSlots":0,"returnSlots":1},"@getRoleAdmin_171":{"entryPoint":2146,"id":171,"parameterSlots":1,"returnSlots":1},"@getValue_13397":{"entryPoint":null,"id":13397,"parameterSlots":0,"returnSlots":1},"@grantRole_190":{"entryPoint":2180,"id":190,"parameterSlots":2,"returnSlots":0},"@groupsAdmins_12394":{"entryPoint":null,"id":12394,"parameterSlots":0,"returnSlots":0},"@hasRole_116":{"entryPoint":4021,"id":116,"parameterSlots":2,"returnSlots":1},"@hasVoted_12434":{"entryPoint":null,"id":12434,"parameterSlots":0,"returnSlots":0},"@inGroupVotersNum_12420":{"entryPoint":null,"id":12420,"parameterSlots":0,"returnSlots":0},"@initialize_12496":{"entryPoint":2747,"id":12496,"parameterSlots":2,"returnSlots":0},"@proxiableUUID_1020":{"entryPoint":3185,"id":1020,"parameterSlots":0,"returnSlots":1},"@removeGroup_12754":{"entryPoint":2334,"id":12754,"parameterSlots":1,"returnSlots":0},"@removeVoter_12936":{"entryPoint":3697,"id":12936,"parameterSlots":1,"returnSlots":0},"@renounceRole_232":{"entryPoint":2278,"id":232,"parameterSlots":2,"returnSlots":0},"@revokeRole_209":{"entryPoint":5104,"id":209,"parameterSlots":2,"returnSlots":0},"@setGroupAdmin_12782":{"entryPoint":1778,"id":12782,"parameterSlots":2,"returnSlots":0},"@supportsInterface_2912":{"entryPoint":null,"id":2912,"parameterSlots":1,"returnSlots":1},"@supportsInterface_91":{"entryPoint":1723,"id":91,"parameterSlots":1,"returnSlots":1},"@totalGroups_13352":{"entryPoint":null,"id":13352,"parameterSlots":0,"returnSlots":1},"@totalVoters_13389":{"entryPoint":3214,"id":13389,"parameterSlots":0,"returnSlots":1},"@upgradeToAndCall_1040":{"entryPoint":3154,"id":1040,"parameterSlots":2,"returnSlots":0},"@upgradeToAndCall_3511":{"entryPoint":8380,"id":3511,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_6585":{"entryPoint":8716,"id":6585,"parameterSlots":3,"returnSlots":1},"@vote_13188":{"entryPoint":4220,"id":13188,"parameterSlots":2,"returnSlots":0},"@voterToGroupId_12415":{"entryPoint":null,"id":12415,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":9084,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes":{"entryPoint":9272,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9156,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":9208,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":9413,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32":{"entryPoint":9183,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":10134,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":9112,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":9042,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptrt_address":{"entryPoint":9558,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptrt_bytes32":{"entryPoint":9490,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint64_fromMemory":{"entryPoint":9958,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint64t_bytes32":{"entryPoint":9847,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10106,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint64_t_bytes32__to_t_uint64_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":9891,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9662,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_EpochInfo_$16098_memory_ptr__to_t_struct$_EpochInfo_$16098_memory_ptr__fromStack_reversed":{"entryPoint":9713,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_bytes32__to_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10087,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint64":{"entryPoint":10009,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":10159,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":9626,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":10182,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":10062,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":9987,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":10040,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9250,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_uint64":{"entryPoint":9826,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10123:89","nodeType":"YulBlock","src":"0:10123:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"83:217:89","nodeType":"YulBlock","src":"83:217:89","statements":[{"body":{"nativeSrc":"129:16:89","nodeType":"YulBlock","src":"129:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:89","nodeType":"YulLiteral","src":"138:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:89","nodeType":"YulLiteral","src":"141:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:89","nodeType":"YulIdentifier","src":"131:6:89"},"nativeSrc":"131:12:89","nodeType":"YulFunctionCall","src":"131:12:89"},"nativeSrc":"131:12:89","nodeType":"YulExpressionStatement","src":"131:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:89","nodeType":"YulIdentifier","src":"104:7:89"},{"name":"headStart","nativeSrc":"113:9:89","nodeType":"YulIdentifier","src":"113:9:89"}],"functionName":{"name":"sub","nativeSrc":"100:3:89","nodeType":"YulIdentifier","src":"100:3:89"},"nativeSrc":"100:23:89","nodeType":"YulFunctionCall","src":"100:23:89"},{"kind":"number","nativeSrc":"125:2:89","nodeType":"YulLiteral","src":"125:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:89","nodeType":"YulIdentifier","src":"96:3:89"},"nativeSrc":"96:32:89","nodeType":"YulFunctionCall","src":"96:32:89"},"nativeSrc":"93:52:89","nodeType":"YulIf","src":"93:52:89"},{"nativeSrc":"154:36:89","nodeType":"YulVariableDeclaration","src":"154:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:89","nodeType":"YulIdentifier","src":"180:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:89","nodeType":"YulIdentifier","src":"167:12:89"},"nativeSrc":"167:23:89","nodeType":"YulFunctionCall","src":"167:23:89"},"variables":[{"name":"value","nativeSrc":"158:5:89","nodeType":"YulTypedName","src":"158:5:89","type":""}]},{"body":{"nativeSrc":"254:16:89","nodeType":"YulBlock","src":"254:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:89","nodeType":"YulLiteral","src":"263:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:89","nodeType":"YulLiteral","src":"266:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:89","nodeType":"YulIdentifier","src":"256:6:89"},"nativeSrc":"256:12:89","nodeType":"YulFunctionCall","src":"256:12:89"},"nativeSrc":"256:12:89","nodeType":"YulExpressionStatement","src":"256:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:89","nodeType":"YulIdentifier","src":"212:5:89"},{"arguments":[{"name":"value","nativeSrc":"223:5:89","nodeType":"YulIdentifier","src":"223:5:89"},{"arguments":[{"kind":"number","nativeSrc":"234:3:89","nodeType":"YulLiteral","src":"234:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:89","nodeType":"YulLiteral","src":"239:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:89","nodeType":"YulIdentifier","src":"230:3:89"},"nativeSrc":"230:20:89","nodeType":"YulFunctionCall","src":"230:20:89"}],"functionName":{"name":"and","nativeSrc":"219:3:89","nodeType":"YulIdentifier","src":"219:3:89"},"nativeSrc":"219:32:89","nodeType":"YulFunctionCall","src":"219:32:89"}],"functionName":{"name":"eq","nativeSrc":"209:2:89","nodeType":"YulIdentifier","src":"209:2:89"},"nativeSrc":"209:43:89","nodeType":"YulFunctionCall","src":"209:43:89"}],"functionName":{"name":"iszero","nativeSrc":"202:6:89","nodeType":"YulIdentifier","src":"202:6:89"},"nativeSrc":"202:51:89","nodeType":"YulFunctionCall","src":"202:51:89"},"nativeSrc":"199:71:89","nodeType":"YulIf","src":"199:71:89"},{"nativeSrc":"279:15:89","nodeType":"YulAssignment","src":"279:15:89","value":{"name":"value","nativeSrc":"289:5:89","nodeType":"YulIdentifier","src":"289:5:89"},"variableNames":[{"name":"value0","nativeSrc":"279:6:89","nodeType":"YulIdentifier","src":"279:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:89","nodeType":"YulTypedName","src":"49:9:89","type":""},{"name":"dataEnd","nativeSrc":"60:7:89","nodeType":"YulTypedName","src":"60:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:89","nodeType":"YulTypedName","src":"72:6:89","type":""}],"src":"14:286:89"},{"body":{"nativeSrc":"400:92:89","nodeType":"YulBlock","src":"400:92:89","statements":[{"nativeSrc":"410:26:89","nodeType":"YulAssignment","src":"410:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:89","nodeType":"YulIdentifier","src":"422:9:89"},{"kind":"number","nativeSrc":"433:2:89","nodeType":"YulLiteral","src":"433:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:89","nodeType":"YulIdentifier","src":"418:3:89"},"nativeSrc":"418:18:89","nodeType":"YulFunctionCall","src":"418:18:89"},"variableNames":[{"name":"tail","nativeSrc":"410:4:89","nodeType":"YulIdentifier","src":"410:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:89","nodeType":"YulIdentifier","src":"452:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:89","nodeType":"YulIdentifier","src":"477:6:89"}],"functionName":{"name":"iszero","nativeSrc":"470:6:89","nodeType":"YulIdentifier","src":"470:6:89"},"nativeSrc":"470:14:89","nodeType":"YulFunctionCall","src":"470:14:89"}],"functionName":{"name":"iszero","nativeSrc":"463:6:89","nodeType":"YulIdentifier","src":"463:6:89"},"nativeSrc":"463:22:89","nodeType":"YulFunctionCall","src":"463:22:89"}],"functionName":{"name":"mstore","nativeSrc":"445:6:89","nodeType":"YulIdentifier","src":"445:6:89"},"nativeSrc":"445:41:89","nodeType":"YulFunctionCall","src":"445:41:89"},"nativeSrc":"445:41:89","nodeType":"YulExpressionStatement","src":"445:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:89","nodeType":"YulTypedName","src":"369:9:89","type":""},{"name":"value0","nativeSrc":"380:6:89","nodeType":"YulTypedName","src":"380:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:89","nodeType":"YulTypedName","src":"391:4:89","type":""}],"src":"305:187:89"},{"body":{"nativeSrc":"546:124:89","nodeType":"YulBlock","src":"546:124:89","statements":[{"nativeSrc":"556:29:89","nodeType":"YulAssignment","src":"556:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"578:6:89","nodeType":"YulIdentifier","src":"578:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"565:12:89","nodeType":"YulIdentifier","src":"565:12:89"},"nativeSrc":"565:20:89","nodeType":"YulFunctionCall","src":"565:20:89"},"variableNames":[{"name":"value","nativeSrc":"556:5:89","nodeType":"YulIdentifier","src":"556:5:89"}]},{"body":{"nativeSrc":"648:16:89","nodeType":"YulBlock","src":"648:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"657:1:89","nodeType":"YulLiteral","src":"657:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"660:1:89","nodeType":"YulLiteral","src":"660:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"650:6:89","nodeType":"YulIdentifier","src":"650:6:89"},"nativeSrc":"650:12:89","nodeType":"YulFunctionCall","src":"650:12:89"},"nativeSrc":"650:12:89","nodeType":"YulExpressionStatement","src":"650:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"607:5:89","nodeType":"YulIdentifier","src":"607:5:89"},{"arguments":[{"name":"value","nativeSrc":"618:5:89","nodeType":"YulIdentifier","src":"618:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"633:3:89","nodeType":"YulLiteral","src":"633:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"638:1:89","nodeType":"YulLiteral","src":"638:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"629:3:89","nodeType":"YulIdentifier","src":"629:3:89"},"nativeSrc":"629:11:89","nodeType":"YulFunctionCall","src":"629:11:89"},{"kind":"number","nativeSrc":"642:1:89","nodeType":"YulLiteral","src":"642:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"625:3:89","nodeType":"YulIdentifier","src":"625:3:89"},"nativeSrc":"625:19:89","nodeType":"YulFunctionCall","src":"625:19:89"}],"functionName":{"name":"and","nativeSrc":"614:3:89","nodeType":"YulIdentifier","src":"614:3:89"},"nativeSrc":"614:31:89","nodeType":"YulFunctionCall","src":"614:31:89"}],"functionName":{"name":"eq","nativeSrc":"604:2:89","nodeType":"YulIdentifier","src":"604:2:89"},"nativeSrc":"604:42:89","nodeType":"YulFunctionCall","src":"604:42:89"}],"functionName":{"name":"iszero","nativeSrc":"597:6:89","nodeType":"YulIdentifier","src":"597:6:89"},"nativeSrc":"597:50:89","nodeType":"YulFunctionCall","src":"597:50:89"},"nativeSrc":"594:70:89","nodeType":"YulIf","src":"594:70:89"}]},"name":"abi_decode_address","nativeSrc":"497:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"525:6:89","nodeType":"YulTypedName","src":"525:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"536:5:89","nodeType":"YulTypedName","src":"536:5:89","type":""}],"src":"497:173:89"},{"body":{"nativeSrc":"762:213:89","nodeType":"YulBlock","src":"762:213:89","statements":[{"body":{"nativeSrc":"808:16:89","nodeType":"YulBlock","src":"808:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"817:1:89","nodeType":"YulLiteral","src":"817:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"820:1:89","nodeType":"YulLiteral","src":"820:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"810:6:89","nodeType":"YulIdentifier","src":"810:6:89"},"nativeSrc":"810:12:89","nodeType":"YulFunctionCall","src":"810:12:89"},"nativeSrc":"810:12:89","nodeType":"YulExpressionStatement","src":"810:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"783:7:89","nodeType":"YulIdentifier","src":"783:7:89"},{"name":"headStart","nativeSrc":"792:9:89","nodeType":"YulIdentifier","src":"792:9:89"}],"functionName":{"name":"sub","nativeSrc":"779:3:89","nodeType":"YulIdentifier","src":"779:3:89"},"nativeSrc":"779:23:89","nodeType":"YulFunctionCall","src":"779:23:89"},{"kind":"number","nativeSrc":"804:2:89","nodeType":"YulLiteral","src":"804:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"775:3:89","nodeType":"YulIdentifier","src":"775:3:89"},"nativeSrc":"775:32:89","nodeType":"YulFunctionCall","src":"775:32:89"},"nativeSrc":"772:52:89","nodeType":"YulIf","src":"772:52:89"},{"nativeSrc":"833:14:89","nodeType":"YulVariableDeclaration","src":"833:14:89","value":{"kind":"number","nativeSrc":"846:1:89","nodeType":"YulLiteral","src":"846:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"837:5:89","nodeType":"YulTypedName","src":"837:5:89","type":""}]},{"nativeSrc":"856:32:89","nodeType":"YulAssignment","src":"856:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"878:9:89","nodeType":"YulIdentifier","src":"878:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"865:12:89","nodeType":"YulIdentifier","src":"865:12:89"},"nativeSrc":"865:23:89","nodeType":"YulFunctionCall","src":"865:23:89"},"variableNames":[{"name":"value","nativeSrc":"856:5:89","nodeType":"YulIdentifier","src":"856:5:89"}]},{"nativeSrc":"897:15:89","nodeType":"YulAssignment","src":"897:15:89","value":{"name":"value","nativeSrc":"907:5:89","nodeType":"YulIdentifier","src":"907:5:89"},"variableNames":[{"name":"value0","nativeSrc":"897:6:89","nodeType":"YulIdentifier","src":"897:6:89"}]},{"nativeSrc":"921:48:89","nodeType":"YulAssignment","src":"921:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"954:9:89","nodeType":"YulIdentifier","src":"954:9:89"},{"kind":"number","nativeSrc":"965:2:89","nodeType":"YulLiteral","src":"965:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"950:3:89","nodeType":"YulIdentifier","src":"950:3:89"},"nativeSrc":"950:18:89","nodeType":"YulFunctionCall","src":"950:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"931:18:89","nodeType":"YulIdentifier","src":"931:18:89"},"nativeSrc":"931:38:89","nodeType":"YulFunctionCall","src":"931:38:89"},"variableNames":[{"name":"value1","nativeSrc":"921:6:89","nodeType":"YulIdentifier","src":"921:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"675:300:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"720:9:89","nodeType":"YulTypedName","src":"720:9:89","type":""},{"name":"dataEnd","nativeSrc":"731:7:89","nodeType":"YulTypedName","src":"731:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"743:6:89","nodeType":"YulTypedName","src":"743:6:89","type":""},{"name":"value1","nativeSrc":"751:6:89","nodeType":"YulTypedName","src":"751:6:89","type":""}],"src":"675:300:89"},{"body":{"nativeSrc":"1050:116:89","nodeType":"YulBlock","src":"1050:116:89","statements":[{"body":{"nativeSrc":"1096:16:89","nodeType":"YulBlock","src":"1096:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1105:1:89","nodeType":"YulLiteral","src":"1105:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1108:1:89","nodeType":"YulLiteral","src":"1108:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1098:6:89","nodeType":"YulIdentifier","src":"1098:6:89"},"nativeSrc":"1098:12:89","nodeType":"YulFunctionCall","src":"1098:12:89"},"nativeSrc":"1098:12:89","nodeType":"YulExpressionStatement","src":"1098:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1071:7:89","nodeType":"YulIdentifier","src":"1071:7:89"},{"name":"headStart","nativeSrc":"1080:9:89","nodeType":"YulIdentifier","src":"1080:9:89"}],"functionName":{"name":"sub","nativeSrc":"1067:3:89","nodeType":"YulIdentifier","src":"1067:3:89"},"nativeSrc":"1067:23:89","nodeType":"YulFunctionCall","src":"1067:23:89"},{"kind":"number","nativeSrc":"1092:2:89","nodeType":"YulLiteral","src":"1092:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1063:3:89","nodeType":"YulIdentifier","src":"1063:3:89"},"nativeSrc":"1063:32:89","nodeType":"YulFunctionCall","src":"1063:32:89"},"nativeSrc":"1060:52:89","nodeType":"YulIf","src":"1060:52:89"},{"nativeSrc":"1121:39:89","nodeType":"YulAssignment","src":"1121:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1150:9:89","nodeType":"YulIdentifier","src":"1150:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1131:18:89","nodeType":"YulIdentifier","src":"1131:18:89"},"nativeSrc":"1131:29:89","nodeType":"YulFunctionCall","src":"1131:29:89"},"variableNames":[{"name":"value0","nativeSrc":"1121:6:89","nodeType":"YulIdentifier","src":"1121:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"980:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1016:9:89","nodeType":"YulTypedName","src":"1016:9:89","type":""},{"name":"dataEnd","nativeSrc":"1027:7:89","nodeType":"YulTypedName","src":"1027:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1039:6:89","nodeType":"YulTypedName","src":"1039:6:89","type":""}],"src":"980:186:89"},{"body":{"nativeSrc":"1272:76:89","nodeType":"YulBlock","src":"1272:76:89","statements":[{"nativeSrc":"1282:26:89","nodeType":"YulAssignment","src":"1282:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1294:9:89","nodeType":"YulIdentifier","src":"1294:9:89"},{"kind":"number","nativeSrc":"1305:2:89","nodeType":"YulLiteral","src":"1305:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1290:3:89","nodeType":"YulIdentifier","src":"1290:3:89"},"nativeSrc":"1290:18:89","nodeType":"YulFunctionCall","src":"1290:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1282:4:89","nodeType":"YulIdentifier","src":"1282:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1324:9:89","nodeType":"YulIdentifier","src":"1324:9:89"},{"name":"value0","nativeSrc":"1335:6:89","nodeType":"YulIdentifier","src":"1335:6:89"}],"functionName":{"name":"mstore","nativeSrc":"1317:6:89","nodeType":"YulIdentifier","src":"1317:6:89"},"nativeSrc":"1317:25:89","nodeType":"YulFunctionCall","src":"1317:25:89"},"nativeSrc":"1317:25:89","nodeType":"YulExpressionStatement","src":"1317:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"1171:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1241:9:89","nodeType":"YulTypedName","src":"1241:9:89","type":""},{"name":"value0","nativeSrc":"1252:6:89","nodeType":"YulTypedName","src":"1252:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1263:4:89","nodeType":"YulTypedName","src":"1263:4:89","type":""}],"src":"1171:177:89"},{"body":{"nativeSrc":"1423:156:89","nodeType":"YulBlock","src":"1423:156:89","statements":[{"body":{"nativeSrc":"1469:16:89","nodeType":"YulBlock","src":"1469:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1478:1:89","nodeType":"YulLiteral","src":"1478:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1481:1:89","nodeType":"YulLiteral","src":"1481:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1471:6:89","nodeType":"YulIdentifier","src":"1471:6:89"},"nativeSrc":"1471:12:89","nodeType":"YulFunctionCall","src":"1471:12:89"},"nativeSrc":"1471:12:89","nodeType":"YulExpressionStatement","src":"1471:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1444:7:89","nodeType":"YulIdentifier","src":"1444:7:89"},{"name":"headStart","nativeSrc":"1453:9:89","nodeType":"YulIdentifier","src":"1453:9:89"}],"functionName":{"name":"sub","nativeSrc":"1440:3:89","nodeType":"YulIdentifier","src":"1440:3:89"},"nativeSrc":"1440:23:89","nodeType":"YulFunctionCall","src":"1440:23:89"},{"kind":"number","nativeSrc":"1465:2:89","nodeType":"YulLiteral","src":"1465:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1436:3:89","nodeType":"YulIdentifier","src":"1436:3:89"},"nativeSrc":"1436:32:89","nodeType":"YulFunctionCall","src":"1436:32:89"},"nativeSrc":"1433:52:89","nodeType":"YulIf","src":"1433:52:89"},{"nativeSrc":"1494:14:89","nodeType":"YulVariableDeclaration","src":"1494:14:89","value":{"kind":"number","nativeSrc":"1507:1:89","nodeType":"YulLiteral","src":"1507:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1498:5:89","nodeType":"YulTypedName","src":"1498:5:89","type":""}]},{"nativeSrc":"1517:32:89","nodeType":"YulAssignment","src":"1517:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1539:9:89","nodeType":"YulIdentifier","src":"1539:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1526:12:89","nodeType":"YulIdentifier","src":"1526:12:89"},"nativeSrc":"1526:23:89","nodeType":"YulFunctionCall","src":"1526:23:89"},"variableNames":[{"name":"value","nativeSrc":"1517:5:89","nodeType":"YulIdentifier","src":"1517:5:89"}]},{"nativeSrc":"1558:15:89","nodeType":"YulAssignment","src":"1558:15:89","value":{"name":"value","nativeSrc":"1568:5:89","nodeType":"YulIdentifier","src":"1568:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1558:6:89","nodeType":"YulIdentifier","src":"1558:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"1353:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1389:9:89","nodeType":"YulTypedName","src":"1389:9:89","type":""},{"name":"dataEnd","nativeSrc":"1400:7:89","nodeType":"YulTypedName","src":"1400:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1412:6:89","nodeType":"YulTypedName","src":"1412:6:89","type":""}],"src":"1353:226:89"},{"body":{"nativeSrc":"1685:76:89","nodeType":"YulBlock","src":"1685:76:89","statements":[{"nativeSrc":"1695:26:89","nodeType":"YulAssignment","src":"1695:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1707:9:89","nodeType":"YulIdentifier","src":"1707:9:89"},{"kind":"number","nativeSrc":"1718:2:89","nodeType":"YulLiteral","src":"1718:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1703:3:89","nodeType":"YulIdentifier","src":"1703:3:89"},"nativeSrc":"1703:18:89","nodeType":"YulFunctionCall","src":"1703:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1695:4:89","nodeType":"YulIdentifier","src":"1695:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1737:9:89","nodeType":"YulIdentifier","src":"1737:9:89"},{"name":"value0","nativeSrc":"1748:6:89","nodeType":"YulIdentifier","src":"1748:6:89"}],"functionName":{"name":"mstore","nativeSrc":"1730:6:89","nodeType":"YulIdentifier","src":"1730:6:89"},"nativeSrc":"1730:25:89","nodeType":"YulFunctionCall","src":"1730:25:89"},"nativeSrc":"1730:25:89","nodeType":"YulExpressionStatement","src":"1730:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1584:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1654:9:89","nodeType":"YulTypedName","src":"1654:9:89","type":""},{"name":"value0","nativeSrc":"1665:6:89","nodeType":"YulTypedName","src":"1665:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1676:4:89","nodeType":"YulTypedName","src":"1676:4:89","type":""}],"src":"1584:177:89"},{"body":{"nativeSrc":"1853:173:89","nodeType":"YulBlock","src":"1853:173:89","statements":[{"body":{"nativeSrc":"1899:16:89","nodeType":"YulBlock","src":"1899:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1908:1:89","nodeType":"YulLiteral","src":"1908:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1911:1:89","nodeType":"YulLiteral","src":"1911:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1901:6:89","nodeType":"YulIdentifier","src":"1901:6:89"},"nativeSrc":"1901:12:89","nodeType":"YulFunctionCall","src":"1901:12:89"},"nativeSrc":"1901:12:89","nodeType":"YulExpressionStatement","src":"1901:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1874:7:89","nodeType":"YulIdentifier","src":"1874:7:89"},{"name":"headStart","nativeSrc":"1883:9:89","nodeType":"YulIdentifier","src":"1883:9:89"}],"functionName":{"name":"sub","nativeSrc":"1870:3:89","nodeType":"YulIdentifier","src":"1870:3:89"},"nativeSrc":"1870:23:89","nodeType":"YulFunctionCall","src":"1870:23:89"},{"kind":"number","nativeSrc":"1895:2:89","nodeType":"YulLiteral","src":"1895:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1866:3:89","nodeType":"YulIdentifier","src":"1866:3:89"},"nativeSrc":"1866:32:89","nodeType":"YulFunctionCall","src":"1866:32:89"},"nativeSrc":"1863:52:89","nodeType":"YulIf","src":"1863:52:89"},{"nativeSrc":"1924:39:89","nodeType":"YulAssignment","src":"1924:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1953:9:89","nodeType":"YulIdentifier","src":"1953:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1934:18:89","nodeType":"YulIdentifier","src":"1934:18:89"},"nativeSrc":"1934:29:89","nodeType":"YulFunctionCall","src":"1934:29:89"},"variableNames":[{"name":"value0","nativeSrc":"1924:6:89","nodeType":"YulIdentifier","src":"1924:6:89"}]},{"nativeSrc":"1972:48:89","nodeType":"YulAssignment","src":"1972:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2005:9:89","nodeType":"YulIdentifier","src":"2005:9:89"},{"kind":"number","nativeSrc":"2016:2:89","nodeType":"YulLiteral","src":"2016:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2001:3:89","nodeType":"YulIdentifier","src":"2001:3:89"},"nativeSrc":"2001:18:89","nodeType":"YulFunctionCall","src":"2001:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1982:18:89","nodeType":"YulIdentifier","src":"1982:18:89"},"nativeSrc":"1982:38:89","nodeType":"YulFunctionCall","src":"1982:38:89"},"variableNames":[{"name":"value1","nativeSrc":"1972:6:89","nodeType":"YulIdentifier","src":"1972:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"1766:260:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1811:9:89","nodeType":"YulTypedName","src":"1811:9:89","type":""},{"name":"dataEnd","nativeSrc":"1822:7:89","nodeType":"YulTypedName","src":"1822:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1834:6:89","nodeType":"YulTypedName","src":"1834:6:89","type":""},{"name":"value1","nativeSrc":"1842:6:89","nodeType":"YulTypedName","src":"1842:6:89","type":""}],"src":"1766:260:89"},{"body":{"nativeSrc":"2063:95:89","nodeType":"YulBlock","src":"2063:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2080:1:89","nodeType":"YulLiteral","src":"2080:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2087:3:89","nodeType":"YulLiteral","src":"2087:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"2092:10:89","nodeType":"YulLiteral","src":"2092:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2083:3:89","nodeType":"YulIdentifier","src":"2083:3:89"},"nativeSrc":"2083:20:89","nodeType":"YulFunctionCall","src":"2083:20:89"}],"functionName":{"name":"mstore","nativeSrc":"2073:6:89","nodeType":"YulIdentifier","src":"2073:6:89"},"nativeSrc":"2073:31:89","nodeType":"YulFunctionCall","src":"2073:31:89"},"nativeSrc":"2073:31:89","nodeType":"YulExpressionStatement","src":"2073:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2120:1:89","nodeType":"YulLiteral","src":"2120:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"2123:4:89","nodeType":"YulLiteral","src":"2123:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2113:6:89","nodeType":"YulIdentifier","src":"2113:6:89"},"nativeSrc":"2113:15:89","nodeType":"YulFunctionCall","src":"2113:15:89"},"nativeSrc":"2113:15:89","nodeType":"YulExpressionStatement","src":"2113:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2144:1:89","nodeType":"YulLiteral","src":"2144:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2147:4:89","nodeType":"YulLiteral","src":"2147:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2137:6:89","nodeType":"YulIdentifier","src":"2137:6:89"},"nativeSrc":"2137:15:89","nodeType":"YulFunctionCall","src":"2137:15:89"},"nativeSrc":"2137:15:89","nodeType":"YulExpressionStatement","src":"2137:15:89"}]},"name":"panic_error_0x41","nativeSrc":"2031:127:89","nodeType":"YulFunctionDefinition","src":"2031:127:89"},{"body":{"nativeSrc":"2215:673:89","nodeType":"YulBlock","src":"2215:673:89","statements":[{"body":{"nativeSrc":"2264:16:89","nodeType":"YulBlock","src":"2264:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2273:1:89","nodeType":"YulLiteral","src":"2273:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2276:1:89","nodeType":"YulLiteral","src":"2276:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2266:6:89","nodeType":"YulIdentifier","src":"2266:6:89"},"nativeSrc":"2266:12:89","nodeType":"YulFunctionCall","src":"2266:12:89"},"nativeSrc":"2266:12:89","nodeType":"YulExpressionStatement","src":"2266:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2243:6:89","nodeType":"YulIdentifier","src":"2243:6:89"},{"kind":"number","nativeSrc":"2251:4:89","nodeType":"YulLiteral","src":"2251:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2239:3:89","nodeType":"YulIdentifier","src":"2239:3:89"},"nativeSrc":"2239:17:89","nodeType":"YulFunctionCall","src":"2239:17:89"},{"name":"end","nativeSrc":"2258:3:89","nodeType":"YulIdentifier","src":"2258:3:89"}],"functionName":{"name":"slt","nativeSrc":"2235:3:89","nodeType":"YulIdentifier","src":"2235:3:89"},"nativeSrc":"2235:27:89","nodeType":"YulFunctionCall","src":"2235:27:89"}],"functionName":{"name":"iszero","nativeSrc":"2228:6:89","nodeType":"YulIdentifier","src":"2228:6:89"},"nativeSrc":"2228:35:89","nodeType":"YulFunctionCall","src":"2228:35:89"},"nativeSrc":"2225:55:89","nodeType":"YulIf","src":"2225:55:89"},{"nativeSrc":"2289:34:89","nodeType":"YulVariableDeclaration","src":"2289:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"2316:6:89","nodeType":"YulIdentifier","src":"2316:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"2303:12:89","nodeType":"YulIdentifier","src":"2303:12:89"},"nativeSrc":"2303:20:89","nodeType":"YulFunctionCall","src":"2303:20:89"},"variables":[{"name":"length","nativeSrc":"2293:6:89","nodeType":"YulTypedName","src":"2293:6:89","type":""}]},{"body":{"nativeSrc":"2366:22:89","nodeType":"YulBlock","src":"2366:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2368:16:89","nodeType":"YulIdentifier","src":"2368:16:89"},"nativeSrc":"2368:18:89","nodeType":"YulFunctionCall","src":"2368:18:89"},"nativeSrc":"2368:18:89","nodeType":"YulExpressionStatement","src":"2368:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2338:6:89","nodeType":"YulIdentifier","src":"2338:6:89"},{"kind":"number","nativeSrc":"2346:18:89","nodeType":"YulLiteral","src":"2346:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2335:2:89","nodeType":"YulIdentifier","src":"2335:2:89"},"nativeSrc":"2335:30:89","nodeType":"YulFunctionCall","src":"2335:30:89"},"nativeSrc":"2332:56:89","nodeType":"YulIf","src":"2332:56:89"},{"nativeSrc":"2397:23:89","nodeType":"YulVariableDeclaration","src":"2397:23:89","value":{"arguments":[{"kind":"number","nativeSrc":"2417:2:89","nodeType":"YulLiteral","src":"2417:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2411:5:89","nodeType":"YulIdentifier","src":"2411:5:89"},"nativeSrc":"2411:9:89","nodeType":"YulFunctionCall","src":"2411:9:89"},"variables":[{"name":"memPtr","nativeSrc":"2401:6:89","nodeType":"YulTypedName","src":"2401:6:89","type":""}]},{"nativeSrc":"2429:85:89","nodeType":"YulVariableDeclaration","src":"2429:85:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"2451:6:89","nodeType":"YulIdentifier","src":"2451:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2475:6:89","nodeType":"YulIdentifier","src":"2475:6:89"},{"kind":"number","nativeSrc":"2483:4:89","nodeType":"YulLiteral","src":"2483:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2471:3:89","nodeType":"YulIdentifier","src":"2471:3:89"},"nativeSrc":"2471:17:89","nodeType":"YulFunctionCall","src":"2471:17:89"},{"arguments":[{"kind":"number","nativeSrc":"2494:2:89","nodeType":"YulLiteral","src":"2494:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2490:3:89","nodeType":"YulIdentifier","src":"2490:3:89"},"nativeSrc":"2490:7:89","nodeType":"YulFunctionCall","src":"2490:7:89"}],"functionName":{"name":"and","nativeSrc":"2467:3:89","nodeType":"YulIdentifier","src":"2467:3:89"},"nativeSrc":"2467:31:89","nodeType":"YulFunctionCall","src":"2467:31:89"},{"kind":"number","nativeSrc":"2500:2:89","nodeType":"YulLiteral","src":"2500:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"2463:3:89","nodeType":"YulIdentifier","src":"2463:3:89"},"nativeSrc":"2463:40:89","nodeType":"YulFunctionCall","src":"2463:40:89"},{"arguments":[{"kind":"number","nativeSrc":"2509:2:89","nodeType":"YulLiteral","src":"2509:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2505:3:89","nodeType":"YulIdentifier","src":"2505:3:89"},"nativeSrc":"2505:7:89","nodeType":"YulFunctionCall","src":"2505:7:89"}],"functionName":{"name":"and","nativeSrc":"2459:3:89","nodeType":"YulIdentifier","src":"2459:3:89"},"nativeSrc":"2459:54:89","nodeType":"YulFunctionCall","src":"2459:54:89"}],"functionName":{"name":"add","nativeSrc":"2447:3:89","nodeType":"YulIdentifier","src":"2447:3:89"},"nativeSrc":"2447:67:89","nodeType":"YulFunctionCall","src":"2447:67:89"},"variables":[{"name":"newFreePtr","nativeSrc":"2433:10:89","nodeType":"YulTypedName","src":"2433:10:89","type":""}]},{"body":{"nativeSrc":"2589:22:89","nodeType":"YulBlock","src":"2589:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2591:16:89","nodeType":"YulIdentifier","src":"2591:16:89"},"nativeSrc":"2591:18:89","nodeType":"YulFunctionCall","src":"2591:18:89"},"nativeSrc":"2591:18:89","nodeType":"YulExpressionStatement","src":"2591:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2532:10:89","nodeType":"YulIdentifier","src":"2532:10:89"},{"kind":"number","nativeSrc":"2544:18:89","nodeType":"YulLiteral","src":"2544:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2529:2:89","nodeType":"YulIdentifier","src":"2529:2:89"},"nativeSrc":"2529:34:89","nodeType":"YulFunctionCall","src":"2529:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2568:10:89","nodeType":"YulIdentifier","src":"2568:10:89"},{"name":"memPtr","nativeSrc":"2580:6:89","nodeType":"YulIdentifier","src":"2580:6:89"}],"functionName":{"name":"lt","nativeSrc":"2565:2:89","nodeType":"YulIdentifier","src":"2565:2:89"},"nativeSrc":"2565:22:89","nodeType":"YulFunctionCall","src":"2565:22:89"}],"functionName":{"name":"or","nativeSrc":"2526:2:89","nodeType":"YulIdentifier","src":"2526:2:89"},"nativeSrc":"2526:62:89","nodeType":"YulFunctionCall","src":"2526:62:89"},"nativeSrc":"2523:88:89","nodeType":"YulIf","src":"2523:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2627:2:89","nodeType":"YulLiteral","src":"2627:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2631:10:89","nodeType":"YulIdentifier","src":"2631:10:89"}],"functionName":{"name":"mstore","nativeSrc":"2620:6:89","nodeType":"YulIdentifier","src":"2620:6:89"},"nativeSrc":"2620:22:89","nodeType":"YulFunctionCall","src":"2620:22:89"},"nativeSrc":"2620:22:89","nodeType":"YulExpressionStatement","src":"2620:22:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2658:6:89","nodeType":"YulIdentifier","src":"2658:6:89"},{"name":"length","nativeSrc":"2666:6:89","nodeType":"YulIdentifier","src":"2666:6:89"}],"functionName":{"name":"mstore","nativeSrc":"2651:6:89","nodeType":"YulIdentifier","src":"2651:6:89"},"nativeSrc":"2651:22:89","nodeType":"YulFunctionCall","src":"2651:22:89"},"nativeSrc":"2651:22:89","nodeType":"YulExpressionStatement","src":"2651:22:89"},{"body":{"nativeSrc":"2725:16:89","nodeType":"YulBlock","src":"2725:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2734:1:89","nodeType":"YulLiteral","src":"2734:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2737:1:89","nodeType":"YulLiteral","src":"2737:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2727:6:89","nodeType":"YulIdentifier","src":"2727:6:89"},"nativeSrc":"2727:12:89","nodeType":"YulFunctionCall","src":"2727:12:89"},"nativeSrc":"2727:12:89","nodeType":"YulExpressionStatement","src":"2727:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2696:6:89","nodeType":"YulIdentifier","src":"2696:6:89"},{"name":"length","nativeSrc":"2704:6:89","nodeType":"YulIdentifier","src":"2704:6:89"}],"functionName":{"name":"add","nativeSrc":"2692:3:89","nodeType":"YulIdentifier","src":"2692:3:89"},"nativeSrc":"2692:19:89","nodeType":"YulFunctionCall","src":"2692:19:89"},{"kind":"number","nativeSrc":"2713:4:89","nodeType":"YulLiteral","src":"2713:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2688:3:89","nodeType":"YulIdentifier","src":"2688:3:89"},"nativeSrc":"2688:30:89","nodeType":"YulFunctionCall","src":"2688:30:89"},{"name":"end","nativeSrc":"2720:3:89","nodeType":"YulIdentifier","src":"2720:3:89"}],"functionName":{"name":"gt","nativeSrc":"2685:2:89","nodeType":"YulIdentifier","src":"2685:2:89"},"nativeSrc":"2685:39:89","nodeType":"YulFunctionCall","src":"2685:39:89"},"nativeSrc":"2682:59:89","nodeType":"YulIf","src":"2682:59:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2767:6:89","nodeType":"YulIdentifier","src":"2767:6:89"},{"kind":"number","nativeSrc":"2775:4:89","nodeType":"YulLiteral","src":"2775:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2763:3:89","nodeType":"YulIdentifier","src":"2763:3:89"},"nativeSrc":"2763:17:89","nodeType":"YulFunctionCall","src":"2763:17:89"},{"arguments":[{"name":"offset","nativeSrc":"2786:6:89","nodeType":"YulIdentifier","src":"2786:6:89"},{"kind":"number","nativeSrc":"2794:4:89","nodeType":"YulLiteral","src":"2794:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2782:3:89","nodeType":"YulIdentifier","src":"2782:3:89"},"nativeSrc":"2782:17:89","nodeType":"YulFunctionCall","src":"2782:17:89"},{"name":"length","nativeSrc":"2801:6:89","nodeType":"YulIdentifier","src":"2801:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"2750:12:89","nodeType":"YulIdentifier","src":"2750:12:89"},"nativeSrc":"2750:58:89","nodeType":"YulFunctionCall","src":"2750:58:89"},"nativeSrc":"2750:58:89","nodeType":"YulExpressionStatement","src":"2750:58:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2832:6:89","nodeType":"YulIdentifier","src":"2832:6:89"},{"name":"length","nativeSrc":"2840:6:89","nodeType":"YulIdentifier","src":"2840:6:89"}],"functionName":{"name":"add","nativeSrc":"2828:3:89","nodeType":"YulIdentifier","src":"2828:3:89"},"nativeSrc":"2828:19:89","nodeType":"YulFunctionCall","src":"2828:19:89"},{"kind":"number","nativeSrc":"2849:4:89","nodeType":"YulLiteral","src":"2849:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2824:3:89","nodeType":"YulIdentifier","src":"2824:3:89"},"nativeSrc":"2824:30:89","nodeType":"YulFunctionCall","src":"2824:30:89"},{"kind":"number","nativeSrc":"2856:1:89","nodeType":"YulLiteral","src":"2856:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2817:6:89","nodeType":"YulIdentifier","src":"2817:6:89"},"nativeSrc":"2817:41:89","nodeType":"YulFunctionCall","src":"2817:41:89"},"nativeSrc":"2817:41:89","nodeType":"YulExpressionStatement","src":"2817:41:89"},{"nativeSrc":"2867:15:89","nodeType":"YulAssignment","src":"2867:15:89","value":{"name":"memPtr","nativeSrc":"2876:6:89","nodeType":"YulIdentifier","src":"2876:6:89"},"variableNames":[{"name":"array","nativeSrc":"2867:5:89","nodeType":"YulIdentifier","src":"2867:5:89"}]}]},"name":"abi_decode_bytes","nativeSrc":"2163:725:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2189:6:89","nodeType":"YulTypedName","src":"2189:6:89","type":""},{"name":"end","nativeSrc":"2197:3:89","nodeType":"YulTypedName","src":"2197:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2205:5:89","nodeType":"YulTypedName","src":"2205:5:89","type":""}],"src":"2163:725:89"},{"body":{"nativeSrc":"2989:298:89","nodeType":"YulBlock","src":"2989:298:89","statements":[{"body":{"nativeSrc":"3035:16:89","nodeType":"YulBlock","src":"3035:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3044:1:89","nodeType":"YulLiteral","src":"3044:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3047:1:89","nodeType":"YulLiteral","src":"3047:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3037:6:89","nodeType":"YulIdentifier","src":"3037:6:89"},"nativeSrc":"3037:12:89","nodeType":"YulFunctionCall","src":"3037:12:89"},"nativeSrc":"3037:12:89","nodeType":"YulExpressionStatement","src":"3037:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3010:7:89","nodeType":"YulIdentifier","src":"3010:7:89"},{"name":"headStart","nativeSrc":"3019:9:89","nodeType":"YulIdentifier","src":"3019:9:89"}],"functionName":{"name":"sub","nativeSrc":"3006:3:89","nodeType":"YulIdentifier","src":"3006:3:89"},"nativeSrc":"3006:23:89","nodeType":"YulFunctionCall","src":"3006:23:89"},{"kind":"number","nativeSrc":"3031:2:89","nodeType":"YulLiteral","src":"3031:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3002:3:89","nodeType":"YulIdentifier","src":"3002:3:89"},"nativeSrc":"3002:32:89","nodeType":"YulFunctionCall","src":"3002:32:89"},"nativeSrc":"2999:52:89","nodeType":"YulIf","src":"2999:52:89"},{"nativeSrc":"3060:39:89","nodeType":"YulAssignment","src":"3060:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3089:9:89","nodeType":"YulIdentifier","src":"3089:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3070:18:89","nodeType":"YulIdentifier","src":"3070:18:89"},"nativeSrc":"3070:29:89","nodeType":"YulFunctionCall","src":"3070:29:89"},"variableNames":[{"name":"value0","nativeSrc":"3060:6:89","nodeType":"YulIdentifier","src":"3060:6:89"}]},{"nativeSrc":"3108:46:89","nodeType":"YulVariableDeclaration","src":"3108:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3139:9:89","nodeType":"YulIdentifier","src":"3139:9:89"},{"kind":"number","nativeSrc":"3150:2:89","nodeType":"YulLiteral","src":"3150:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3135:3:89","nodeType":"YulIdentifier","src":"3135:3:89"},"nativeSrc":"3135:18:89","nodeType":"YulFunctionCall","src":"3135:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3122:12:89","nodeType":"YulIdentifier","src":"3122:12:89"},"nativeSrc":"3122:32:89","nodeType":"YulFunctionCall","src":"3122:32:89"},"variables":[{"name":"offset","nativeSrc":"3112:6:89","nodeType":"YulTypedName","src":"3112:6:89","type":""}]},{"body":{"nativeSrc":"3197:16:89","nodeType":"YulBlock","src":"3197:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3206:1:89","nodeType":"YulLiteral","src":"3206:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3209:1:89","nodeType":"YulLiteral","src":"3209:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3199:6:89","nodeType":"YulIdentifier","src":"3199:6:89"},"nativeSrc":"3199:12:89","nodeType":"YulFunctionCall","src":"3199:12:89"},"nativeSrc":"3199:12:89","nodeType":"YulExpressionStatement","src":"3199:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3169:6:89","nodeType":"YulIdentifier","src":"3169:6:89"},{"kind":"number","nativeSrc":"3177:18:89","nodeType":"YulLiteral","src":"3177:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3166:2:89","nodeType":"YulIdentifier","src":"3166:2:89"},"nativeSrc":"3166:30:89","nodeType":"YulFunctionCall","src":"3166:30:89"},"nativeSrc":"3163:50:89","nodeType":"YulIf","src":"3163:50:89"},{"nativeSrc":"3222:59:89","nodeType":"YulAssignment","src":"3222:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3253:9:89","nodeType":"YulIdentifier","src":"3253:9:89"},{"name":"offset","nativeSrc":"3264:6:89","nodeType":"YulIdentifier","src":"3264:6:89"}],"functionName":{"name":"add","nativeSrc":"3249:3:89","nodeType":"YulIdentifier","src":"3249:3:89"},"nativeSrc":"3249:22:89","nodeType":"YulFunctionCall","src":"3249:22:89"},{"name":"dataEnd","nativeSrc":"3273:7:89","nodeType":"YulIdentifier","src":"3273:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"3232:16:89","nodeType":"YulIdentifier","src":"3232:16:89"},"nativeSrc":"3232:49:89","nodeType":"YulFunctionCall","src":"3232:49:89"},"variableNames":[{"name":"value1","nativeSrc":"3222:6:89","nodeType":"YulIdentifier","src":"3222:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"2893:394:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2947:9:89","nodeType":"YulTypedName","src":"2947:9:89","type":""},{"name":"dataEnd","nativeSrc":"2958:7:89","nodeType":"YulTypedName","src":"2958:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2970:6:89","nodeType":"YulTypedName","src":"2970:6:89","type":""},{"name":"value1","nativeSrc":"2978:6:89","nodeType":"YulTypedName","src":"2978:6:89","type":""}],"src":"2893:394:89"},{"body":{"nativeSrc":"3388:338:89","nodeType":"YulBlock","src":"3388:338:89","statements":[{"body":{"nativeSrc":"3434:16:89","nodeType":"YulBlock","src":"3434:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3443:1:89","nodeType":"YulLiteral","src":"3443:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3446:1:89","nodeType":"YulLiteral","src":"3446:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3436:6:89","nodeType":"YulIdentifier","src":"3436:6:89"},"nativeSrc":"3436:12:89","nodeType":"YulFunctionCall","src":"3436:12:89"},"nativeSrc":"3436:12:89","nodeType":"YulExpressionStatement","src":"3436:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3409:7:89","nodeType":"YulIdentifier","src":"3409:7:89"},{"name":"headStart","nativeSrc":"3418:9:89","nodeType":"YulIdentifier","src":"3418:9:89"}],"functionName":{"name":"sub","nativeSrc":"3405:3:89","nodeType":"YulIdentifier","src":"3405:3:89"},"nativeSrc":"3405:23:89","nodeType":"YulFunctionCall","src":"3405:23:89"},{"kind":"number","nativeSrc":"3430:2:89","nodeType":"YulLiteral","src":"3430:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3401:3:89","nodeType":"YulIdentifier","src":"3401:3:89"},"nativeSrc":"3401:32:89","nodeType":"YulFunctionCall","src":"3401:32:89"},"nativeSrc":"3398:52:89","nodeType":"YulIf","src":"3398:52:89"},{"nativeSrc":"3459:37:89","nodeType":"YulVariableDeclaration","src":"3459:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3486:9:89","nodeType":"YulIdentifier","src":"3486:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3473:12:89","nodeType":"YulIdentifier","src":"3473:12:89"},"nativeSrc":"3473:23:89","nodeType":"YulFunctionCall","src":"3473:23:89"},"variables":[{"name":"offset","nativeSrc":"3463:6:89","nodeType":"YulTypedName","src":"3463:6:89","type":""}]},{"body":{"nativeSrc":"3539:16:89","nodeType":"YulBlock","src":"3539:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3548:1:89","nodeType":"YulLiteral","src":"3548:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3551:1:89","nodeType":"YulLiteral","src":"3551:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3541:6:89","nodeType":"YulIdentifier","src":"3541:6:89"},"nativeSrc":"3541:12:89","nodeType":"YulFunctionCall","src":"3541:12:89"},"nativeSrc":"3541:12:89","nodeType":"YulExpressionStatement","src":"3541:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3511:6:89","nodeType":"YulIdentifier","src":"3511:6:89"},{"kind":"number","nativeSrc":"3519:18:89","nodeType":"YulLiteral","src":"3519:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3508:2:89","nodeType":"YulIdentifier","src":"3508:2:89"},"nativeSrc":"3508:30:89","nodeType":"YulFunctionCall","src":"3508:30:89"},"nativeSrc":"3505:50:89","nodeType":"YulIf","src":"3505:50:89"},{"nativeSrc":"3564:59:89","nodeType":"YulAssignment","src":"3564:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3595:9:89","nodeType":"YulIdentifier","src":"3595:9:89"},{"name":"offset","nativeSrc":"3606:6:89","nodeType":"YulIdentifier","src":"3606:6:89"}],"functionName":{"name":"add","nativeSrc":"3591:3:89","nodeType":"YulIdentifier","src":"3591:3:89"},"nativeSrc":"3591:22:89","nodeType":"YulFunctionCall","src":"3591:22:89"},{"name":"dataEnd","nativeSrc":"3615:7:89","nodeType":"YulIdentifier","src":"3615:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"3574:16:89","nodeType":"YulIdentifier","src":"3574:16:89"},"nativeSrc":"3574:49:89","nodeType":"YulFunctionCall","src":"3574:49:89"},"variableNames":[{"name":"value0","nativeSrc":"3564:6:89","nodeType":"YulIdentifier","src":"3564:6:89"}]},{"nativeSrc":"3632:14:89","nodeType":"YulVariableDeclaration","src":"3632:14:89","value":{"kind":"number","nativeSrc":"3645:1:89","nodeType":"YulLiteral","src":"3645:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3636:5:89","nodeType":"YulTypedName","src":"3636:5:89","type":""}]},{"nativeSrc":"3655:41:89","nodeType":"YulAssignment","src":"3655:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3681:9:89","nodeType":"YulIdentifier","src":"3681:9:89"},{"kind":"number","nativeSrc":"3692:2:89","nodeType":"YulLiteral","src":"3692:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3677:3:89","nodeType":"YulIdentifier","src":"3677:3:89"},"nativeSrc":"3677:18:89","nodeType":"YulFunctionCall","src":"3677:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3664:12:89","nodeType":"YulIdentifier","src":"3664:12:89"},"nativeSrc":"3664:32:89","nodeType":"YulFunctionCall","src":"3664:32:89"},"variableNames":[{"name":"value","nativeSrc":"3655:5:89","nodeType":"YulIdentifier","src":"3655:5:89"}]},{"nativeSrc":"3705:15:89","nodeType":"YulAssignment","src":"3705:15:89","value":{"name":"value","nativeSrc":"3715:5:89","nodeType":"YulIdentifier","src":"3715:5:89"},"variableNames":[{"name":"value1","nativeSrc":"3705:6:89","nodeType":"YulIdentifier","src":"3705:6:89"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_bytes32","nativeSrc":"3292:434:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3346:9:89","nodeType":"YulTypedName","src":"3346:9:89","type":""},{"name":"dataEnd","nativeSrc":"3357:7:89","nodeType":"YulTypedName","src":"3357:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3369:6:89","nodeType":"YulTypedName","src":"3369:6:89","type":""},{"name":"value1","nativeSrc":"3377:6:89","nodeType":"YulTypedName","src":"3377:6:89","type":""}],"src":"3292:434:89"},{"body":{"nativeSrc":"3832:102:89","nodeType":"YulBlock","src":"3832:102:89","statements":[{"nativeSrc":"3842:26:89","nodeType":"YulAssignment","src":"3842:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3854:9:89","nodeType":"YulIdentifier","src":"3854:9:89"},{"kind":"number","nativeSrc":"3865:2:89","nodeType":"YulLiteral","src":"3865:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3850:3:89","nodeType":"YulIdentifier","src":"3850:3:89"},"nativeSrc":"3850:18:89","nodeType":"YulFunctionCall","src":"3850:18:89"},"variableNames":[{"name":"tail","nativeSrc":"3842:4:89","nodeType":"YulIdentifier","src":"3842:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3884:9:89","nodeType":"YulIdentifier","src":"3884:9:89"},{"arguments":[{"name":"value0","nativeSrc":"3899:6:89","nodeType":"YulIdentifier","src":"3899:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3915:3:89","nodeType":"YulLiteral","src":"3915:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"3920:1:89","nodeType":"YulLiteral","src":"3920:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3911:3:89","nodeType":"YulIdentifier","src":"3911:3:89"},"nativeSrc":"3911:11:89","nodeType":"YulFunctionCall","src":"3911:11:89"},{"kind":"number","nativeSrc":"3924:1:89","nodeType":"YulLiteral","src":"3924:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3907:3:89","nodeType":"YulIdentifier","src":"3907:3:89"},"nativeSrc":"3907:19:89","nodeType":"YulFunctionCall","src":"3907:19:89"}],"functionName":{"name":"and","nativeSrc":"3895:3:89","nodeType":"YulIdentifier","src":"3895:3:89"},"nativeSrc":"3895:32:89","nodeType":"YulFunctionCall","src":"3895:32:89"}],"functionName":{"name":"mstore","nativeSrc":"3877:6:89","nodeType":"YulIdentifier","src":"3877:6:89"},"nativeSrc":"3877:51:89","nodeType":"YulFunctionCall","src":"3877:51:89"},"nativeSrc":"3877:51:89","nodeType":"YulExpressionStatement","src":"3877:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3731:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3801:9:89","nodeType":"YulTypedName","src":"3801:9:89","type":""},{"name":"value0","nativeSrc":"3812:6:89","nodeType":"YulTypedName","src":"3812:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3823:4:89","nodeType":"YulTypedName","src":"3823:4:89","type":""}],"src":"3731:203:89"},{"body":{"nativeSrc":"4035:298:89","nodeType":"YulBlock","src":"4035:298:89","statements":[{"body":{"nativeSrc":"4081:16:89","nodeType":"YulBlock","src":"4081:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4090:1:89","nodeType":"YulLiteral","src":"4090:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4093:1:89","nodeType":"YulLiteral","src":"4093:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4083:6:89","nodeType":"YulIdentifier","src":"4083:6:89"},"nativeSrc":"4083:12:89","nodeType":"YulFunctionCall","src":"4083:12:89"},"nativeSrc":"4083:12:89","nodeType":"YulExpressionStatement","src":"4083:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4056:7:89","nodeType":"YulIdentifier","src":"4056:7:89"},{"name":"headStart","nativeSrc":"4065:9:89","nodeType":"YulIdentifier","src":"4065:9:89"}],"functionName":{"name":"sub","nativeSrc":"4052:3:89","nodeType":"YulIdentifier","src":"4052:3:89"},"nativeSrc":"4052:23:89","nodeType":"YulFunctionCall","src":"4052:23:89"},{"kind":"number","nativeSrc":"4077:2:89","nodeType":"YulLiteral","src":"4077:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4048:3:89","nodeType":"YulIdentifier","src":"4048:3:89"},"nativeSrc":"4048:32:89","nodeType":"YulFunctionCall","src":"4048:32:89"},"nativeSrc":"4045:52:89","nodeType":"YulIf","src":"4045:52:89"},{"nativeSrc":"4106:37:89","nodeType":"YulVariableDeclaration","src":"4106:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4133:9:89","nodeType":"YulIdentifier","src":"4133:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"4120:12:89","nodeType":"YulIdentifier","src":"4120:12:89"},"nativeSrc":"4120:23:89","nodeType":"YulFunctionCall","src":"4120:23:89"},"variables":[{"name":"offset","nativeSrc":"4110:6:89","nodeType":"YulTypedName","src":"4110:6:89","type":""}]},{"body":{"nativeSrc":"4186:16:89","nodeType":"YulBlock","src":"4186:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4195:1:89","nodeType":"YulLiteral","src":"4195:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4198:1:89","nodeType":"YulLiteral","src":"4198:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4188:6:89","nodeType":"YulIdentifier","src":"4188:6:89"},"nativeSrc":"4188:12:89","nodeType":"YulFunctionCall","src":"4188:12:89"},"nativeSrc":"4188:12:89","nodeType":"YulExpressionStatement","src":"4188:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4158:6:89","nodeType":"YulIdentifier","src":"4158:6:89"},{"kind":"number","nativeSrc":"4166:18:89","nodeType":"YulLiteral","src":"4166:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4155:2:89","nodeType":"YulIdentifier","src":"4155:2:89"},"nativeSrc":"4155:30:89","nodeType":"YulFunctionCall","src":"4155:30:89"},"nativeSrc":"4152:50:89","nodeType":"YulIf","src":"4152:50:89"},{"nativeSrc":"4211:59:89","nodeType":"YulAssignment","src":"4211:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4242:9:89","nodeType":"YulIdentifier","src":"4242:9:89"},{"name":"offset","nativeSrc":"4253:6:89","nodeType":"YulIdentifier","src":"4253:6:89"}],"functionName":{"name":"add","nativeSrc":"4238:3:89","nodeType":"YulIdentifier","src":"4238:3:89"},"nativeSrc":"4238:22:89","nodeType":"YulFunctionCall","src":"4238:22:89"},{"name":"dataEnd","nativeSrc":"4262:7:89","nodeType":"YulIdentifier","src":"4262:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"4221:16:89","nodeType":"YulIdentifier","src":"4221:16:89"},"nativeSrc":"4221:49:89","nodeType":"YulFunctionCall","src":"4221:49:89"},"variableNames":[{"name":"value0","nativeSrc":"4211:6:89","nodeType":"YulIdentifier","src":"4211:6:89"}]},{"nativeSrc":"4279:48:89","nodeType":"YulAssignment","src":"4279:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4312:9:89","nodeType":"YulIdentifier","src":"4312:9:89"},{"kind":"number","nativeSrc":"4323:2:89","nodeType":"YulLiteral","src":"4323:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4308:3:89","nodeType":"YulIdentifier","src":"4308:3:89"},"nativeSrc":"4308:18:89","nodeType":"YulFunctionCall","src":"4308:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4289:18:89","nodeType":"YulIdentifier","src":"4289:18:89"},"nativeSrc":"4289:38:89","nodeType":"YulFunctionCall","src":"4289:38:89"},"variableNames":[{"name":"value1","nativeSrc":"4279:6:89","nodeType":"YulIdentifier","src":"4279:6:89"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_address","nativeSrc":"3939:394:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3993:9:89","nodeType":"YulTypedName","src":"3993:9:89","type":""},{"name":"dataEnd","nativeSrc":"4004:7:89","nodeType":"YulTypedName","src":"4004:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4016:6:89","nodeType":"YulTypedName","src":"4016:6:89","type":""},{"name":"value1","nativeSrc":"4024:6:89","nodeType":"YulTypedName","src":"4024:6:89","type":""}],"src":"3939:394:89"},{"body":{"nativeSrc":"4404:184:89","nodeType":"YulBlock","src":"4404:184:89","statements":[{"nativeSrc":"4414:10:89","nodeType":"YulVariableDeclaration","src":"4414:10:89","value":{"kind":"number","nativeSrc":"4423:1:89","nodeType":"YulLiteral","src":"4423:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4418:1:89","nodeType":"YulTypedName","src":"4418:1:89","type":""}]},{"body":{"nativeSrc":"4483:63:89","nodeType":"YulBlock","src":"4483:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4508:3:89","nodeType":"YulIdentifier","src":"4508:3:89"},{"name":"i","nativeSrc":"4513:1:89","nodeType":"YulIdentifier","src":"4513:1:89"}],"functionName":{"name":"add","nativeSrc":"4504:3:89","nodeType":"YulIdentifier","src":"4504:3:89"},"nativeSrc":"4504:11:89","nodeType":"YulFunctionCall","src":"4504:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4527:3:89","nodeType":"YulIdentifier","src":"4527:3:89"},{"name":"i","nativeSrc":"4532:1:89","nodeType":"YulIdentifier","src":"4532:1:89"}],"functionName":{"name":"add","nativeSrc":"4523:3:89","nodeType":"YulIdentifier","src":"4523:3:89"},"nativeSrc":"4523:11:89","nodeType":"YulFunctionCall","src":"4523:11:89"}],"functionName":{"name":"mload","nativeSrc":"4517:5:89","nodeType":"YulIdentifier","src":"4517:5:89"},"nativeSrc":"4517:18:89","nodeType":"YulFunctionCall","src":"4517:18:89"}],"functionName":{"name":"mstore","nativeSrc":"4497:6:89","nodeType":"YulIdentifier","src":"4497:6:89"},"nativeSrc":"4497:39:89","nodeType":"YulFunctionCall","src":"4497:39:89"},"nativeSrc":"4497:39:89","nodeType":"YulExpressionStatement","src":"4497:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4444:1:89","nodeType":"YulIdentifier","src":"4444:1:89"},{"name":"length","nativeSrc":"4447:6:89","nodeType":"YulIdentifier","src":"4447:6:89"}],"functionName":{"name":"lt","nativeSrc":"4441:2:89","nodeType":"YulIdentifier","src":"4441:2:89"},"nativeSrc":"4441:13:89","nodeType":"YulFunctionCall","src":"4441:13:89"},"nativeSrc":"4433:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"4455:19:89","nodeType":"YulBlock","src":"4455:19:89","statements":[{"nativeSrc":"4457:15:89","nodeType":"YulAssignment","src":"4457:15:89","value":{"arguments":[{"name":"i","nativeSrc":"4466:1:89","nodeType":"YulIdentifier","src":"4466:1:89"},{"kind":"number","nativeSrc":"4469:2:89","nodeType":"YulLiteral","src":"4469:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4462:3:89","nodeType":"YulIdentifier","src":"4462:3:89"},"nativeSrc":"4462:10:89","nodeType":"YulFunctionCall","src":"4462:10:89"},"variableNames":[{"name":"i","nativeSrc":"4457:1:89","nodeType":"YulIdentifier","src":"4457:1:89"}]}]},"pre":{"nativeSrc":"4437:3:89","nodeType":"YulBlock","src":"4437:3:89","statements":[]},"src":"4433:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4566:3:89","nodeType":"YulIdentifier","src":"4566:3:89"},{"name":"length","nativeSrc":"4571:6:89","nodeType":"YulIdentifier","src":"4571:6:89"}],"functionName":{"name":"add","nativeSrc":"4562:3:89","nodeType":"YulIdentifier","src":"4562:3:89"},"nativeSrc":"4562:16:89","nodeType":"YulFunctionCall","src":"4562:16:89"},{"kind":"number","nativeSrc":"4580:1:89","nodeType":"YulLiteral","src":"4580:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4555:6:89","nodeType":"YulIdentifier","src":"4555:6:89"},"nativeSrc":"4555:27:89","nodeType":"YulFunctionCall","src":"4555:27:89"},"nativeSrc":"4555:27:89","nodeType":"YulExpressionStatement","src":"4555:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4338:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4382:3:89","nodeType":"YulTypedName","src":"4382:3:89","type":""},{"name":"dst","nativeSrc":"4387:3:89","nodeType":"YulTypedName","src":"4387:3:89","type":""},{"name":"length","nativeSrc":"4392:6:89","nodeType":"YulTypedName","src":"4392:6:89","type":""}],"src":"4338:250:89"},{"body":{"nativeSrc":"4714:275:89","nodeType":"YulBlock","src":"4714:275:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4731:9:89","nodeType":"YulIdentifier","src":"4731:9:89"},{"kind":"number","nativeSrc":"4742:2:89","nodeType":"YulLiteral","src":"4742:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4724:6:89","nodeType":"YulIdentifier","src":"4724:6:89"},"nativeSrc":"4724:21:89","nodeType":"YulFunctionCall","src":"4724:21:89"},"nativeSrc":"4724:21:89","nodeType":"YulExpressionStatement","src":"4724:21:89"},{"nativeSrc":"4754:27:89","nodeType":"YulVariableDeclaration","src":"4754:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"4774:6:89","nodeType":"YulIdentifier","src":"4774:6:89"}],"functionName":{"name":"mload","nativeSrc":"4768:5:89","nodeType":"YulIdentifier","src":"4768:5:89"},"nativeSrc":"4768:13:89","nodeType":"YulFunctionCall","src":"4768:13:89"},"variables":[{"name":"length","nativeSrc":"4758:6:89","nodeType":"YulTypedName","src":"4758:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4801:9:89","nodeType":"YulIdentifier","src":"4801:9:89"},{"kind":"number","nativeSrc":"4812:2:89","nodeType":"YulLiteral","src":"4812:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4797:3:89","nodeType":"YulIdentifier","src":"4797:3:89"},"nativeSrc":"4797:18:89","nodeType":"YulFunctionCall","src":"4797:18:89"},{"name":"length","nativeSrc":"4817:6:89","nodeType":"YulIdentifier","src":"4817:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4790:6:89","nodeType":"YulIdentifier","src":"4790:6:89"},"nativeSrc":"4790:34:89","nodeType":"YulFunctionCall","src":"4790:34:89"},"nativeSrc":"4790:34:89","nodeType":"YulExpressionStatement","src":"4790:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4872:6:89","nodeType":"YulIdentifier","src":"4872:6:89"},{"kind":"number","nativeSrc":"4880:2:89","nodeType":"YulLiteral","src":"4880:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4868:3:89","nodeType":"YulIdentifier","src":"4868:3:89"},"nativeSrc":"4868:15:89","nodeType":"YulFunctionCall","src":"4868:15:89"},{"arguments":[{"name":"headStart","nativeSrc":"4889:9:89","nodeType":"YulIdentifier","src":"4889:9:89"},{"kind":"number","nativeSrc":"4900:2:89","nodeType":"YulLiteral","src":"4900:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4885:3:89","nodeType":"YulIdentifier","src":"4885:3:89"},"nativeSrc":"4885:18:89","nodeType":"YulFunctionCall","src":"4885:18:89"},{"name":"length","nativeSrc":"4905:6:89","nodeType":"YulIdentifier","src":"4905:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4833:34:89","nodeType":"YulIdentifier","src":"4833:34:89"},"nativeSrc":"4833:79:89","nodeType":"YulFunctionCall","src":"4833:79:89"},"nativeSrc":"4833:79:89","nodeType":"YulExpressionStatement","src":"4833:79:89"},{"nativeSrc":"4921:62:89","nodeType":"YulAssignment","src":"4921:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4937:9:89","nodeType":"YulIdentifier","src":"4937:9:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4956:6:89","nodeType":"YulIdentifier","src":"4956:6:89"},{"kind":"number","nativeSrc":"4964:2:89","nodeType":"YulLiteral","src":"4964:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4952:3:89","nodeType":"YulIdentifier","src":"4952:3:89"},"nativeSrc":"4952:15:89","nodeType":"YulFunctionCall","src":"4952:15:89"},{"arguments":[{"kind":"number","nativeSrc":"4973:2:89","nodeType":"YulLiteral","src":"4973:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4969:3:89","nodeType":"YulIdentifier","src":"4969:3:89"},"nativeSrc":"4969:7:89","nodeType":"YulFunctionCall","src":"4969:7:89"}],"functionName":{"name":"and","nativeSrc":"4948:3:89","nodeType":"YulIdentifier","src":"4948:3:89"},"nativeSrc":"4948:29:89","nodeType":"YulFunctionCall","src":"4948:29:89"}],"functionName":{"name":"add","nativeSrc":"4933:3:89","nodeType":"YulIdentifier","src":"4933:3:89"},"nativeSrc":"4933:45:89","nodeType":"YulFunctionCall","src":"4933:45:89"},{"kind":"number","nativeSrc":"4980:2:89","nodeType":"YulLiteral","src":"4980:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4929:3:89","nodeType":"YulIdentifier","src":"4929:3:89"},"nativeSrc":"4929:54:89","nodeType":"YulFunctionCall","src":"4929:54:89"},"variableNames":[{"name":"tail","nativeSrc":"4921:4:89","nodeType":"YulIdentifier","src":"4921:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4593:396:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4683:9:89","nodeType":"YulTypedName","src":"4683:9:89","type":""},{"name":"value0","nativeSrc":"4694:6:89","nodeType":"YulTypedName","src":"4694:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4705:4:89","nodeType":"YulTypedName","src":"4705:4:89","type":""}],"src":"4593:396:89"},{"body":{"nativeSrc":"5151:524:89","nodeType":"YulBlock","src":"5151:524:89","statements":[{"nativeSrc":"5161:27:89","nodeType":"YulAssignment","src":"5161:27:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5173:9:89","nodeType":"YulIdentifier","src":"5173:9:89"},{"kind":"number","nativeSrc":"5184:3:89","nodeType":"YulLiteral","src":"5184:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"5169:3:89","nodeType":"YulIdentifier","src":"5169:3:89"},"nativeSrc":"5169:19:89","nodeType":"YulFunctionCall","src":"5169:19:89"},"variableNames":[{"name":"tail","nativeSrc":"5161:4:89","nodeType":"YulIdentifier","src":"5161:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5204:9:89","nodeType":"YulIdentifier","src":"5204:9:89"},{"arguments":[{"name":"value0","nativeSrc":"5221:6:89","nodeType":"YulIdentifier","src":"5221:6:89"}],"functionName":{"name":"mload","nativeSrc":"5215:5:89","nodeType":"YulIdentifier","src":"5215:5:89"},"nativeSrc":"5215:13:89","nodeType":"YulFunctionCall","src":"5215:13:89"}],"functionName":{"name":"mstore","nativeSrc":"5197:6:89","nodeType":"YulIdentifier","src":"5197:6:89"},"nativeSrc":"5197:32:89","nodeType":"YulFunctionCall","src":"5197:32:89"},"nativeSrc":"5197:32:89","nodeType":"YulExpressionStatement","src":"5197:32:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5249:9:89","nodeType":"YulIdentifier","src":"5249:9:89"},{"kind":"number","nativeSrc":"5260:4:89","nodeType":"YulLiteral","src":"5260:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5245:3:89","nodeType":"YulIdentifier","src":"5245:3:89"},"nativeSrc":"5245:20:89","nodeType":"YulFunctionCall","src":"5245:20:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5281:6:89","nodeType":"YulIdentifier","src":"5281:6:89"},{"kind":"number","nativeSrc":"5289:4:89","nodeType":"YulLiteral","src":"5289:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5277:3:89","nodeType":"YulIdentifier","src":"5277:3:89"},"nativeSrc":"5277:17:89","nodeType":"YulFunctionCall","src":"5277:17:89"}],"functionName":{"name":"mload","nativeSrc":"5271:5:89","nodeType":"YulIdentifier","src":"5271:5:89"},"nativeSrc":"5271:24:89","nodeType":"YulFunctionCall","src":"5271:24:89"},{"kind":"number","nativeSrc":"5297:18:89","nodeType":"YulLiteral","src":"5297:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5267:3:89","nodeType":"YulIdentifier","src":"5267:3:89"},"nativeSrc":"5267:49:89","nodeType":"YulFunctionCall","src":"5267:49:89"}],"functionName":{"name":"mstore","nativeSrc":"5238:6:89","nodeType":"YulIdentifier","src":"5238:6:89"},"nativeSrc":"5238:79:89","nodeType":"YulFunctionCall","src":"5238:79:89"},"nativeSrc":"5238:79:89","nodeType":"YulExpressionStatement","src":"5238:79:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5337:9:89","nodeType":"YulIdentifier","src":"5337:9:89"},{"kind":"number","nativeSrc":"5348:4:89","nodeType":"YulLiteral","src":"5348:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5333:3:89","nodeType":"YulIdentifier","src":"5333:3:89"},"nativeSrc":"5333:20:89","nodeType":"YulFunctionCall","src":"5333:20:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5369:6:89","nodeType":"YulIdentifier","src":"5369:6:89"},{"kind":"number","nativeSrc":"5377:4:89","nodeType":"YulLiteral","src":"5377:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5365:3:89","nodeType":"YulIdentifier","src":"5365:3:89"},"nativeSrc":"5365:17:89","nodeType":"YulFunctionCall","src":"5365:17:89"}],"functionName":{"name":"mload","nativeSrc":"5359:5:89","nodeType":"YulIdentifier","src":"5359:5:89"},"nativeSrc":"5359:24:89","nodeType":"YulFunctionCall","src":"5359:24:89"},{"kind":"number","nativeSrc":"5385:18:89","nodeType":"YulLiteral","src":"5385:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5355:3:89","nodeType":"YulIdentifier","src":"5355:3:89"},"nativeSrc":"5355:49:89","nodeType":"YulFunctionCall","src":"5355:49:89"}],"functionName":{"name":"mstore","nativeSrc":"5326:6:89","nodeType":"YulIdentifier","src":"5326:6:89"},"nativeSrc":"5326:79:89","nodeType":"YulFunctionCall","src":"5326:79:89"},"nativeSrc":"5326:79:89","nodeType":"YulExpressionStatement","src":"5326:79:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5425:9:89","nodeType":"YulIdentifier","src":"5425:9:89"},{"kind":"number","nativeSrc":"5436:4:89","nodeType":"YulLiteral","src":"5436:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5421:3:89","nodeType":"YulIdentifier","src":"5421:3:89"},"nativeSrc":"5421:20:89","nodeType":"YulFunctionCall","src":"5421:20:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5457:6:89","nodeType":"YulIdentifier","src":"5457:6:89"},{"kind":"number","nativeSrc":"5465:4:89","nodeType":"YulLiteral","src":"5465:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5453:3:89","nodeType":"YulIdentifier","src":"5453:3:89"},"nativeSrc":"5453:17:89","nodeType":"YulFunctionCall","src":"5453:17:89"}],"functionName":{"name":"mload","nativeSrc":"5447:5:89","nodeType":"YulIdentifier","src":"5447:5:89"},"nativeSrc":"5447:24:89","nodeType":"YulFunctionCall","src":"5447:24:89"},{"kind":"number","nativeSrc":"5473:18:89","nodeType":"YulLiteral","src":"5473:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5443:3:89","nodeType":"YulIdentifier","src":"5443:3:89"},"nativeSrc":"5443:49:89","nodeType":"YulFunctionCall","src":"5443:49:89"}],"functionName":{"name":"mstore","nativeSrc":"5414:6:89","nodeType":"YulIdentifier","src":"5414:6:89"},"nativeSrc":"5414:79:89","nodeType":"YulFunctionCall","src":"5414:79:89"},"nativeSrc":"5414:79:89","nodeType":"YulExpressionStatement","src":"5414:79:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5513:9:89","nodeType":"YulIdentifier","src":"5513:9:89"},{"kind":"number","nativeSrc":"5524:4:89","nodeType":"YulLiteral","src":"5524:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"5509:3:89","nodeType":"YulIdentifier","src":"5509:3:89"},"nativeSrc":"5509:20:89","nodeType":"YulFunctionCall","src":"5509:20:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5545:6:89","nodeType":"YulIdentifier","src":"5545:6:89"},{"kind":"number","nativeSrc":"5553:4:89","nodeType":"YulLiteral","src":"5553:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"5541:3:89","nodeType":"YulIdentifier","src":"5541:3:89"},"nativeSrc":"5541:17:89","nodeType":"YulFunctionCall","src":"5541:17:89"}],"functionName":{"name":"mload","nativeSrc":"5535:5:89","nodeType":"YulIdentifier","src":"5535:5:89"},"nativeSrc":"5535:24:89","nodeType":"YulFunctionCall","src":"5535:24:89"},{"kind":"number","nativeSrc":"5561:18:89","nodeType":"YulLiteral","src":"5561:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5531:3:89","nodeType":"YulIdentifier","src":"5531:3:89"},"nativeSrc":"5531:49:89","nodeType":"YulFunctionCall","src":"5531:49:89"}],"functionName":{"name":"mstore","nativeSrc":"5502:6:89","nodeType":"YulIdentifier","src":"5502:6:89"},"nativeSrc":"5502:79:89","nodeType":"YulFunctionCall","src":"5502:79:89"},"nativeSrc":"5502:79:89","nodeType":"YulExpressionStatement","src":"5502:79:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5601:9:89","nodeType":"YulIdentifier","src":"5601:9:89"},{"kind":"number","nativeSrc":"5612:4:89","nodeType":"YulLiteral","src":"5612:4:89","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"5597:3:89","nodeType":"YulIdentifier","src":"5597:3:89"},"nativeSrc":"5597:20:89","nodeType":"YulFunctionCall","src":"5597:20:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5633:6:89","nodeType":"YulIdentifier","src":"5633:6:89"},{"kind":"number","nativeSrc":"5641:4:89","nodeType":"YulLiteral","src":"5641:4:89","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"5629:3:89","nodeType":"YulIdentifier","src":"5629:3:89"},"nativeSrc":"5629:17:89","nodeType":"YulFunctionCall","src":"5629:17:89"}],"functionName":{"name":"mload","nativeSrc":"5623:5:89","nodeType":"YulIdentifier","src":"5623:5:89"},"nativeSrc":"5623:24:89","nodeType":"YulFunctionCall","src":"5623:24:89"},{"kind":"number","nativeSrc":"5649:18:89","nodeType":"YulLiteral","src":"5649:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5619:3:89","nodeType":"YulIdentifier","src":"5619:3:89"},"nativeSrc":"5619:49:89","nodeType":"YulFunctionCall","src":"5619:49:89"}],"functionName":{"name":"mstore","nativeSrc":"5590:6:89","nodeType":"YulIdentifier","src":"5590:6:89"},"nativeSrc":"5590:79:89","nodeType":"YulFunctionCall","src":"5590:79:89"},"nativeSrc":"5590:79:89","nodeType":"YulExpressionStatement","src":"5590:79:89"}]},"name":"abi_encode_tuple_t_struct$_EpochInfo_$16098_memory_ptr__to_t_struct$_EpochInfo_$16098_memory_ptr__fromStack_reversed","nativeSrc":"4994:681:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5120:9:89","nodeType":"YulTypedName","src":"5120:9:89","type":""},{"name":"value0","nativeSrc":"5131:6:89","nodeType":"YulTypedName","src":"5131:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5142:4:89","nodeType":"YulTypedName","src":"5142:4:89","type":""}],"src":"4994:681:89"},{"body":{"nativeSrc":"5724:85:89","nodeType":"YulBlock","src":"5724:85:89","statements":[{"body":{"nativeSrc":"5787:16:89","nodeType":"YulBlock","src":"5787:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5796:1:89","nodeType":"YulLiteral","src":"5796:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5799:1:89","nodeType":"YulLiteral","src":"5799:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5789:6:89","nodeType":"YulIdentifier","src":"5789:6:89"},"nativeSrc":"5789:12:89","nodeType":"YulFunctionCall","src":"5789:12:89"},"nativeSrc":"5789:12:89","nodeType":"YulExpressionStatement","src":"5789:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5747:5:89","nodeType":"YulIdentifier","src":"5747:5:89"},{"arguments":[{"name":"value","nativeSrc":"5758:5:89","nodeType":"YulIdentifier","src":"5758:5:89"},{"kind":"number","nativeSrc":"5765:18:89","nodeType":"YulLiteral","src":"5765:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5754:3:89","nodeType":"YulIdentifier","src":"5754:3:89"},"nativeSrc":"5754:30:89","nodeType":"YulFunctionCall","src":"5754:30:89"}],"functionName":{"name":"eq","nativeSrc":"5744:2:89","nodeType":"YulIdentifier","src":"5744:2:89"},"nativeSrc":"5744:41:89","nodeType":"YulFunctionCall","src":"5744:41:89"}],"functionName":{"name":"iszero","nativeSrc":"5737:6:89","nodeType":"YulIdentifier","src":"5737:6:89"},"nativeSrc":"5737:49:89","nodeType":"YulFunctionCall","src":"5737:49:89"},"nativeSrc":"5734:69:89","nodeType":"YulIf","src":"5734:69:89"}]},"name":"validator_revert_uint64","nativeSrc":"5680:129:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5713:5:89","nodeType":"YulTypedName","src":"5713:5:89","type":""}],"src":"5680:129:89"},{"body":{"nativeSrc":"5900:279:89","nodeType":"YulBlock","src":"5900:279:89","statements":[{"body":{"nativeSrc":"5946:16:89","nodeType":"YulBlock","src":"5946:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5955:1:89","nodeType":"YulLiteral","src":"5955:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5958:1:89","nodeType":"YulLiteral","src":"5958:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5948:6:89","nodeType":"YulIdentifier","src":"5948:6:89"},"nativeSrc":"5948:12:89","nodeType":"YulFunctionCall","src":"5948:12:89"},"nativeSrc":"5948:12:89","nodeType":"YulExpressionStatement","src":"5948:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5921:7:89","nodeType":"YulIdentifier","src":"5921:7:89"},{"name":"headStart","nativeSrc":"5930:9:89","nodeType":"YulIdentifier","src":"5930:9:89"}],"functionName":{"name":"sub","nativeSrc":"5917:3:89","nodeType":"YulIdentifier","src":"5917:3:89"},"nativeSrc":"5917:23:89","nodeType":"YulFunctionCall","src":"5917:23:89"},{"kind":"number","nativeSrc":"5942:2:89","nodeType":"YulLiteral","src":"5942:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5913:3:89","nodeType":"YulIdentifier","src":"5913:3:89"},"nativeSrc":"5913:32:89","nodeType":"YulFunctionCall","src":"5913:32:89"},"nativeSrc":"5910:52:89","nodeType":"YulIf","src":"5910:52:89"},{"nativeSrc":"5971:36:89","nodeType":"YulVariableDeclaration","src":"5971:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5997:9:89","nodeType":"YulIdentifier","src":"5997:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"5984:12:89","nodeType":"YulIdentifier","src":"5984:12:89"},"nativeSrc":"5984:23:89","nodeType":"YulFunctionCall","src":"5984:23:89"},"variables":[{"name":"value","nativeSrc":"5975:5:89","nodeType":"YulTypedName","src":"5975:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6040:5:89","nodeType":"YulIdentifier","src":"6040:5:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"6016:23:89","nodeType":"YulIdentifier","src":"6016:23:89"},"nativeSrc":"6016:30:89","nodeType":"YulFunctionCall","src":"6016:30:89"},"nativeSrc":"6016:30:89","nodeType":"YulExpressionStatement","src":"6016:30:89"},{"nativeSrc":"6055:15:89","nodeType":"YulAssignment","src":"6055:15:89","value":{"name":"value","nativeSrc":"6065:5:89","nodeType":"YulIdentifier","src":"6065:5:89"},"variableNames":[{"name":"value0","nativeSrc":"6055:6:89","nodeType":"YulIdentifier","src":"6055:6:89"}]},{"nativeSrc":"6079:16:89","nodeType":"YulVariableDeclaration","src":"6079:16:89","value":{"kind":"number","nativeSrc":"6094:1:89","nodeType":"YulLiteral","src":"6094:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"6083:7:89","nodeType":"YulTypedName","src":"6083:7:89","type":""}]},{"nativeSrc":"6104:43:89","nodeType":"YulAssignment","src":"6104:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6132:9:89","nodeType":"YulIdentifier","src":"6132:9:89"},{"kind":"number","nativeSrc":"6143:2:89","nodeType":"YulLiteral","src":"6143:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6128:3:89","nodeType":"YulIdentifier","src":"6128:3:89"},"nativeSrc":"6128:18:89","nodeType":"YulFunctionCall","src":"6128:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"6115:12:89","nodeType":"YulIdentifier","src":"6115:12:89"},"nativeSrc":"6115:32:89","nodeType":"YulFunctionCall","src":"6115:32:89"},"variableNames":[{"name":"value_1","nativeSrc":"6104:7:89","nodeType":"YulIdentifier","src":"6104:7:89"}]},{"nativeSrc":"6156:17:89","nodeType":"YulAssignment","src":"6156:17:89","value":{"name":"value_1","nativeSrc":"6166:7:89","nodeType":"YulIdentifier","src":"6166:7:89"},"variableNames":[{"name":"value1","nativeSrc":"6156:6:89","nodeType":"YulIdentifier","src":"6156:6:89"}]}]},"name":"abi_decode_tuple_t_uint64t_bytes32","nativeSrc":"5814:365:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5858:9:89","nodeType":"YulTypedName","src":"5858:9:89","type":""},{"name":"dataEnd","nativeSrc":"5869:7:89","nodeType":"YulTypedName","src":"5869:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5881:6:89","nodeType":"YulTypedName","src":"5881:6:89","type":""},{"name":"value1","nativeSrc":"5889:6:89","nodeType":"YulTypedName","src":"5889:6:89","type":""}],"src":"5814:365:89"},{"body":{"nativeSrc":"6335:460:89","nodeType":"YulBlock","src":"6335:460:89","statements":[{"nativeSrc":"6345:32:89","nodeType":"YulVariableDeclaration","src":"6345:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6363:9:89","nodeType":"YulIdentifier","src":"6363:9:89"},{"kind":"number","nativeSrc":"6374:2:89","nodeType":"YulLiteral","src":"6374:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6359:3:89","nodeType":"YulIdentifier","src":"6359:3:89"},"nativeSrc":"6359:18:89","nodeType":"YulFunctionCall","src":"6359:18:89"},"variables":[{"name":"tail_1","nativeSrc":"6349:6:89","nodeType":"YulTypedName","src":"6349:6:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6393:9:89","nodeType":"YulIdentifier","src":"6393:9:89"},{"kind":"number","nativeSrc":"6404:2:89","nodeType":"YulLiteral","src":"6404:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6386:6:89","nodeType":"YulIdentifier","src":"6386:6:89"},"nativeSrc":"6386:21:89","nodeType":"YulFunctionCall","src":"6386:21:89"},"nativeSrc":"6386:21:89","nodeType":"YulExpressionStatement","src":"6386:21:89"},{"nativeSrc":"6416:17:89","nodeType":"YulVariableDeclaration","src":"6416:17:89","value":{"name":"tail_1","nativeSrc":"6427:6:89","nodeType":"YulIdentifier","src":"6427:6:89"},"variables":[{"name":"pos","nativeSrc":"6420:3:89","nodeType":"YulTypedName","src":"6420:3:89","type":""}]},{"nativeSrc":"6442:27:89","nodeType":"YulVariableDeclaration","src":"6442:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"6462:6:89","nodeType":"YulIdentifier","src":"6462:6:89"}],"functionName":{"name":"mload","nativeSrc":"6456:5:89","nodeType":"YulIdentifier","src":"6456:5:89"},"nativeSrc":"6456:13:89","nodeType":"YulFunctionCall","src":"6456:13:89"},"variables":[{"name":"length","nativeSrc":"6446:6:89","nodeType":"YulTypedName","src":"6446:6:89","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"6485:6:89","nodeType":"YulIdentifier","src":"6485:6:89"},{"name":"length","nativeSrc":"6493:6:89","nodeType":"YulIdentifier","src":"6493:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6478:6:89","nodeType":"YulIdentifier","src":"6478:6:89"},"nativeSrc":"6478:22:89","nodeType":"YulFunctionCall","src":"6478:22:89"},"nativeSrc":"6478:22:89","nodeType":"YulExpressionStatement","src":"6478:22:89"},{"nativeSrc":"6509:25:89","nodeType":"YulAssignment","src":"6509:25:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6520:9:89","nodeType":"YulIdentifier","src":"6520:9:89"},{"kind":"number","nativeSrc":"6531:2:89","nodeType":"YulLiteral","src":"6531:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6516:3:89","nodeType":"YulIdentifier","src":"6516:3:89"},"nativeSrc":"6516:18:89","nodeType":"YulFunctionCall","src":"6516:18:89"},"variableNames":[{"name":"pos","nativeSrc":"6509:3:89","nodeType":"YulIdentifier","src":"6509:3:89"}]},{"nativeSrc":"6543:29:89","nodeType":"YulVariableDeclaration","src":"6543:29:89","value":{"arguments":[{"name":"value0","nativeSrc":"6561:6:89","nodeType":"YulIdentifier","src":"6561:6:89"},{"kind":"number","nativeSrc":"6569:2:89","nodeType":"YulLiteral","src":"6569:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6557:3:89","nodeType":"YulIdentifier","src":"6557:3:89"},"nativeSrc":"6557:15:89","nodeType":"YulFunctionCall","src":"6557:15:89"},"variables":[{"name":"srcPtr","nativeSrc":"6547:6:89","nodeType":"YulTypedName","src":"6547:6:89","type":""}]},{"nativeSrc":"6581:10:89","nodeType":"YulVariableDeclaration","src":"6581:10:89","value":{"kind":"number","nativeSrc":"6590:1:89","nodeType":"YulLiteral","src":"6590:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"6585:1:89","nodeType":"YulTypedName","src":"6585:1:89","type":""}]},{"body":{"nativeSrc":"6649:120:89","nodeType":"YulBlock","src":"6649:120:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6670:3:89","nodeType":"YulIdentifier","src":"6670:3:89"},{"arguments":[{"name":"srcPtr","nativeSrc":"6681:6:89","nodeType":"YulIdentifier","src":"6681:6:89"}],"functionName":{"name":"mload","nativeSrc":"6675:5:89","nodeType":"YulIdentifier","src":"6675:5:89"},"nativeSrc":"6675:13:89","nodeType":"YulFunctionCall","src":"6675:13:89"}],"functionName":{"name":"mstore","nativeSrc":"6663:6:89","nodeType":"YulIdentifier","src":"6663:6:89"},"nativeSrc":"6663:26:89","nodeType":"YulFunctionCall","src":"6663:26:89"},"nativeSrc":"6663:26:89","nodeType":"YulExpressionStatement","src":"6663:26:89"},{"nativeSrc":"6702:19:89","nodeType":"YulAssignment","src":"6702:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"6713:3:89","nodeType":"YulIdentifier","src":"6713:3:89"},{"kind":"number","nativeSrc":"6718:2:89","nodeType":"YulLiteral","src":"6718:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6709:3:89","nodeType":"YulIdentifier","src":"6709:3:89"},"nativeSrc":"6709:12:89","nodeType":"YulFunctionCall","src":"6709:12:89"},"variableNames":[{"name":"pos","nativeSrc":"6702:3:89","nodeType":"YulIdentifier","src":"6702:3:89"}]},{"nativeSrc":"6734:25:89","nodeType":"YulAssignment","src":"6734:25:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"6748:6:89","nodeType":"YulIdentifier","src":"6748:6:89"},{"kind":"number","nativeSrc":"6756:2:89","nodeType":"YulLiteral","src":"6756:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6744:3:89","nodeType":"YulIdentifier","src":"6744:3:89"},"nativeSrc":"6744:15:89","nodeType":"YulFunctionCall","src":"6744:15:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"6734:6:89","nodeType":"YulIdentifier","src":"6734:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6611:1:89","nodeType":"YulIdentifier","src":"6611:1:89"},{"name":"length","nativeSrc":"6614:6:89","nodeType":"YulIdentifier","src":"6614:6:89"}],"functionName":{"name":"lt","nativeSrc":"6608:2:89","nodeType":"YulIdentifier","src":"6608:2:89"},"nativeSrc":"6608:13:89","nodeType":"YulFunctionCall","src":"6608:13:89"},"nativeSrc":"6600:169:89","nodeType":"YulForLoop","post":{"nativeSrc":"6622:18:89","nodeType":"YulBlock","src":"6622:18:89","statements":[{"nativeSrc":"6624:14:89","nodeType":"YulAssignment","src":"6624:14:89","value":{"arguments":[{"name":"i","nativeSrc":"6633:1:89","nodeType":"YulIdentifier","src":"6633:1:89"},{"kind":"number","nativeSrc":"6636:1:89","nodeType":"YulLiteral","src":"6636:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6629:3:89","nodeType":"YulIdentifier","src":"6629:3:89"},"nativeSrc":"6629:9:89","nodeType":"YulFunctionCall","src":"6629:9:89"},"variableNames":[{"name":"i","nativeSrc":"6624:1:89","nodeType":"YulIdentifier","src":"6624:1:89"}]}]},"pre":{"nativeSrc":"6604:3:89","nodeType":"YulBlock","src":"6604:3:89","statements":[]},"src":"6600:169:89"},{"nativeSrc":"6778:11:89","nodeType":"YulAssignment","src":"6778:11:89","value":{"name":"pos","nativeSrc":"6786:3:89","nodeType":"YulIdentifier","src":"6786:3:89"},"variableNames":[{"name":"tail","nativeSrc":"6778:4:89","nodeType":"YulIdentifier","src":"6778:4:89"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"6184:611:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6304:9:89","nodeType":"YulTypedName","src":"6304:9:89","type":""},{"name":"value0","nativeSrc":"6315:6:89","nodeType":"YulTypedName","src":"6315:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6326:4:89","nodeType":"YulTypedName","src":"6326:4:89","type":""}],"src":"6184:611:89"},{"body":{"nativeSrc":"6880:169:89","nodeType":"YulBlock","src":"6880:169:89","statements":[{"body":{"nativeSrc":"6926:16:89","nodeType":"YulBlock","src":"6926:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6935:1:89","nodeType":"YulLiteral","src":"6935:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6938:1:89","nodeType":"YulLiteral","src":"6938:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6928:6:89","nodeType":"YulIdentifier","src":"6928:6:89"},"nativeSrc":"6928:12:89","nodeType":"YulFunctionCall","src":"6928:12:89"},"nativeSrc":"6928:12:89","nodeType":"YulExpressionStatement","src":"6928:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6901:7:89","nodeType":"YulIdentifier","src":"6901:7:89"},{"name":"headStart","nativeSrc":"6910:9:89","nodeType":"YulIdentifier","src":"6910:9:89"}],"functionName":{"name":"sub","nativeSrc":"6897:3:89","nodeType":"YulIdentifier","src":"6897:3:89"},"nativeSrc":"6897:23:89","nodeType":"YulFunctionCall","src":"6897:23:89"},{"kind":"number","nativeSrc":"6922:2:89","nodeType":"YulLiteral","src":"6922:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6893:3:89","nodeType":"YulIdentifier","src":"6893:3:89"},"nativeSrc":"6893:32:89","nodeType":"YulFunctionCall","src":"6893:32:89"},"nativeSrc":"6890:52:89","nodeType":"YulIf","src":"6890:52:89"},{"nativeSrc":"6951:29:89","nodeType":"YulVariableDeclaration","src":"6951:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6970:9:89","nodeType":"YulIdentifier","src":"6970:9:89"}],"functionName":{"name":"mload","nativeSrc":"6964:5:89","nodeType":"YulIdentifier","src":"6964:5:89"},"nativeSrc":"6964:16:89","nodeType":"YulFunctionCall","src":"6964:16:89"},"variables":[{"name":"value","nativeSrc":"6955:5:89","nodeType":"YulTypedName","src":"6955:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7013:5:89","nodeType":"YulIdentifier","src":"7013:5:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"6989:23:89","nodeType":"YulIdentifier","src":"6989:23:89"},"nativeSrc":"6989:30:89","nodeType":"YulFunctionCall","src":"6989:30:89"},"nativeSrc":"6989:30:89","nodeType":"YulExpressionStatement","src":"6989:30:89"},{"nativeSrc":"7028:15:89","nodeType":"YulAssignment","src":"7028:15:89","value":{"name":"value","nativeSrc":"7038:5:89","nodeType":"YulIdentifier","src":"7038:5:89"},"variableNames":[{"name":"value0","nativeSrc":"7028:6:89","nodeType":"YulIdentifier","src":"7028:6:89"}]}]},"name":"abi_decode_tuple_t_uint64_fromMemory","nativeSrc":"6800:249:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6846:9:89","nodeType":"YulTypedName","src":"6846:9:89","type":""},{"name":"dataEnd","nativeSrc":"6857:7:89","nodeType":"YulTypedName","src":"6857:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6869:6:89","nodeType":"YulTypedName","src":"6869:6:89","type":""}],"src":"6800:249:89"},{"body":{"nativeSrc":"7086:95:89","nodeType":"YulBlock","src":"7086:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7103:1:89","nodeType":"YulLiteral","src":"7103:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"7110:3:89","nodeType":"YulLiteral","src":"7110:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"7115:10:89","nodeType":"YulLiteral","src":"7115:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"7106:3:89","nodeType":"YulIdentifier","src":"7106:3:89"},"nativeSrc":"7106:20:89","nodeType":"YulFunctionCall","src":"7106:20:89"}],"functionName":{"name":"mstore","nativeSrc":"7096:6:89","nodeType":"YulIdentifier","src":"7096:6:89"},"nativeSrc":"7096:31:89","nodeType":"YulFunctionCall","src":"7096:31:89"},"nativeSrc":"7096:31:89","nodeType":"YulExpressionStatement","src":"7096:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7143:1:89","nodeType":"YulLiteral","src":"7143:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"7146:4:89","nodeType":"YulLiteral","src":"7146:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7136:6:89","nodeType":"YulIdentifier","src":"7136:6:89"},"nativeSrc":"7136:15:89","nodeType":"YulFunctionCall","src":"7136:15:89"},"nativeSrc":"7136:15:89","nodeType":"YulExpressionStatement","src":"7136:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7167:1:89","nodeType":"YulLiteral","src":"7167:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7170:4:89","nodeType":"YulLiteral","src":"7170:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7160:6:89","nodeType":"YulIdentifier","src":"7160:6:89"},"nativeSrc":"7160:15:89","nodeType":"YulFunctionCall","src":"7160:15:89"},"nativeSrc":"7160:15:89","nodeType":"YulExpressionStatement","src":"7160:15:89"}]},"name":"panic_error_0x11","nativeSrc":"7054:127:89","nodeType":"YulFunctionDefinition","src":"7054:127:89"},{"body":{"nativeSrc":"7233:144:89","nodeType":"YulBlock","src":"7233:144:89","statements":[{"nativeSrc":"7243:66:89","nodeType":"YulAssignment","src":"7243:66:89","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7258:1:89","nodeType":"YulIdentifier","src":"7258:1:89"},{"kind":"number","nativeSrc":"7261:18:89","nodeType":"YulLiteral","src":"7261:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7254:3:89","nodeType":"YulIdentifier","src":"7254:3:89"},"nativeSrc":"7254:26:89","nodeType":"YulFunctionCall","src":"7254:26:89"},{"arguments":[{"name":"y","nativeSrc":"7286:1:89","nodeType":"YulIdentifier","src":"7286:1:89"},{"kind":"number","nativeSrc":"7289:18:89","nodeType":"YulLiteral","src":"7289:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7282:3:89","nodeType":"YulIdentifier","src":"7282:3:89"},"nativeSrc":"7282:26:89","nodeType":"YulFunctionCall","src":"7282:26:89"}],"functionName":{"name":"add","nativeSrc":"7250:3:89","nodeType":"YulIdentifier","src":"7250:3:89"},"nativeSrc":"7250:59:89","nodeType":"YulFunctionCall","src":"7250:59:89"},"variableNames":[{"name":"sum","nativeSrc":"7243:3:89","nodeType":"YulIdentifier","src":"7243:3:89"}]},{"body":{"nativeSrc":"7349:22:89","nodeType":"YulBlock","src":"7349:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7351:16:89","nodeType":"YulIdentifier","src":"7351:16:89"},"nativeSrc":"7351:18:89","nodeType":"YulFunctionCall","src":"7351:18:89"},"nativeSrc":"7351:18:89","nodeType":"YulExpressionStatement","src":"7351:18:89"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"7324:3:89","nodeType":"YulIdentifier","src":"7324:3:89"},{"kind":"number","nativeSrc":"7329:18:89","nodeType":"YulLiteral","src":"7329:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7321:2:89","nodeType":"YulIdentifier","src":"7321:2:89"},"nativeSrc":"7321:27:89","nodeType":"YulFunctionCall","src":"7321:27:89"},"nativeSrc":"7318:53:89","nodeType":"YulIf","src":"7318:53:89"}]},"name":"checked_add_t_uint64","nativeSrc":"7186:191:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7216:1:89","nodeType":"YulTypedName","src":"7216:1:89","type":""},{"name":"y","nativeSrc":"7219:1:89","nodeType":"YulTypedName","src":"7219:1:89","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7225:3:89","nodeType":"YulTypedName","src":"7225:3:89","type":""}],"src":"7186:191:89"},{"body":{"nativeSrc":"7414:95:89","nodeType":"YulBlock","src":"7414:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7431:1:89","nodeType":"YulLiteral","src":"7431:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"7438:3:89","nodeType":"YulLiteral","src":"7438:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"7443:10:89","nodeType":"YulLiteral","src":"7443:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"7434:3:89","nodeType":"YulIdentifier","src":"7434:3:89"},"nativeSrc":"7434:20:89","nodeType":"YulFunctionCall","src":"7434:20:89"}],"functionName":{"name":"mstore","nativeSrc":"7424:6:89","nodeType":"YulIdentifier","src":"7424:6:89"},"nativeSrc":"7424:31:89","nodeType":"YulFunctionCall","src":"7424:31:89"},"nativeSrc":"7424:31:89","nodeType":"YulExpressionStatement","src":"7424:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7471:1:89","nodeType":"YulLiteral","src":"7471:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"7474:4:89","nodeType":"YulLiteral","src":"7474:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7464:6:89","nodeType":"YulIdentifier","src":"7464:6:89"},"nativeSrc":"7464:15:89","nodeType":"YulFunctionCall","src":"7464:15:89"},"nativeSrc":"7464:15:89","nodeType":"YulExpressionStatement","src":"7464:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7495:1:89","nodeType":"YulLiteral","src":"7495:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7498:4:89","nodeType":"YulLiteral","src":"7498:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7488:6:89","nodeType":"YulIdentifier","src":"7488:6:89"},"nativeSrc":"7488:15:89","nodeType":"YulFunctionCall","src":"7488:15:89"},"nativeSrc":"7488:15:89","nodeType":"YulExpressionStatement","src":"7488:15:89"}]},"name":"panic_error_0x32","nativeSrc":"7382:127:89","nodeType":"YulFunctionDefinition","src":"7382:127:89"},{"body":{"nativeSrc":"7561:88:89","nodeType":"YulBlock","src":"7561:88:89","statements":[{"body":{"nativeSrc":"7592:22:89","nodeType":"YulBlock","src":"7592:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7594:16:89","nodeType":"YulIdentifier","src":"7594:16:89"},"nativeSrc":"7594:18:89","nodeType":"YulFunctionCall","src":"7594:18:89"},"nativeSrc":"7594:18:89","nodeType":"YulExpressionStatement","src":"7594:18:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"7577:5:89","nodeType":"YulIdentifier","src":"7577:5:89"},{"arguments":[{"kind":"number","nativeSrc":"7588:1:89","nodeType":"YulLiteral","src":"7588:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7584:3:89","nodeType":"YulIdentifier","src":"7584:3:89"},"nativeSrc":"7584:6:89","nodeType":"YulFunctionCall","src":"7584:6:89"}],"functionName":{"name":"eq","nativeSrc":"7574:2:89","nodeType":"YulIdentifier","src":"7574:2:89"},"nativeSrc":"7574:17:89","nodeType":"YulFunctionCall","src":"7574:17:89"},"nativeSrc":"7571:43:89","nodeType":"YulIf","src":"7571:43:89"},{"nativeSrc":"7623:20:89","nodeType":"YulAssignment","src":"7623:20:89","value":{"arguments":[{"name":"value","nativeSrc":"7634:5:89","nodeType":"YulIdentifier","src":"7634:5:89"},{"kind":"number","nativeSrc":"7641:1:89","nodeType":"YulLiteral","src":"7641:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7630:3:89","nodeType":"YulIdentifier","src":"7630:3:89"},"nativeSrc":"7630:13:89","nodeType":"YulFunctionCall","src":"7630:13:89"},"variableNames":[{"name":"ret","nativeSrc":"7623:3:89","nodeType":"YulIdentifier","src":"7623:3:89"}]}]},"name":"increment_t_uint256","nativeSrc":"7514:135:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7543:5:89","nodeType":"YulTypedName","src":"7543:5:89","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"7553:3:89","nodeType":"YulTypedName","src":"7553:3:89","type":""}],"src":"7514:135:89"},{"body":{"nativeSrc":"7762:101:89","nodeType":"YulBlock","src":"7762:101:89","statements":[{"nativeSrc":"7772:26:89","nodeType":"YulAssignment","src":"7772:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7784:9:89","nodeType":"YulIdentifier","src":"7784:9:89"},{"kind":"number","nativeSrc":"7795:2:89","nodeType":"YulLiteral","src":"7795:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7780:3:89","nodeType":"YulIdentifier","src":"7780:3:89"},"nativeSrc":"7780:18:89","nodeType":"YulFunctionCall","src":"7780:18:89"},"variableNames":[{"name":"tail","nativeSrc":"7772:4:89","nodeType":"YulIdentifier","src":"7772:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7814:9:89","nodeType":"YulIdentifier","src":"7814:9:89"},{"arguments":[{"name":"value0","nativeSrc":"7829:6:89","nodeType":"YulIdentifier","src":"7829:6:89"},{"kind":"number","nativeSrc":"7837:18:89","nodeType":"YulLiteral","src":"7837:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7825:3:89","nodeType":"YulIdentifier","src":"7825:3:89"},"nativeSrc":"7825:31:89","nodeType":"YulFunctionCall","src":"7825:31:89"}],"functionName":{"name":"mstore","nativeSrc":"7807:6:89","nodeType":"YulIdentifier","src":"7807:6:89"},"nativeSrc":"7807:50:89","nodeType":"YulFunctionCall","src":"7807:50:89"},"nativeSrc":"7807:50:89","nodeType":"YulExpressionStatement","src":"7807:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"7654:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7731:9:89","nodeType":"YulTypedName","src":"7731:9:89","type":""},{"name":"value0","nativeSrc":"7742:6:89","nodeType":"YulTypedName","src":"7742:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7753:4:89","nodeType":"YulTypedName","src":"7753:4:89","type":""}],"src":"7654:209:89"},{"body":{"nativeSrc":"7916:77:89","nodeType":"YulBlock","src":"7916:77:89","statements":[{"nativeSrc":"7926:16:89","nodeType":"YulAssignment","src":"7926:16:89","value":{"arguments":[{"name":"x","nativeSrc":"7937:1:89","nodeType":"YulIdentifier","src":"7937:1:89"},{"name":"y","nativeSrc":"7940:1:89","nodeType":"YulIdentifier","src":"7940:1:89"}],"functionName":{"name":"add","nativeSrc":"7933:3:89","nodeType":"YulIdentifier","src":"7933:3:89"},"nativeSrc":"7933:9:89","nodeType":"YulFunctionCall","src":"7933:9:89"},"variableNames":[{"name":"sum","nativeSrc":"7926:3:89","nodeType":"YulIdentifier","src":"7926:3:89"}]},{"body":{"nativeSrc":"7965:22:89","nodeType":"YulBlock","src":"7965:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7967:16:89","nodeType":"YulIdentifier","src":"7967:16:89"},"nativeSrc":"7967:18:89","nodeType":"YulFunctionCall","src":"7967:18:89"},"nativeSrc":"7967:18:89","nodeType":"YulExpressionStatement","src":"7967:18:89"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7957:1:89","nodeType":"YulIdentifier","src":"7957:1:89"},{"name":"sum","nativeSrc":"7960:3:89","nodeType":"YulIdentifier","src":"7960:3:89"}],"functionName":{"name":"gt","nativeSrc":"7954:2:89","nodeType":"YulIdentifier","src":"7954:2:89"},"nativeSrc":"7954:10:89","nodeType":"YulFunctionCall","src":"7954:10:89"},"nativeSrc":"7951:36:89","nodeType":"YulIf","src":"7951:36:89"}]},"name":"checked_add_t_uint256","nativeSrc":"7868:125:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7899:1:89","nodeType":"YulTypedName","src":"7899:1:89","type":""},{"name":"y","nativeSrc":"7902:1:89","nodeType":"YulTypedName","src":"7902:1:89","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7908:3:89","nodeType":"YulTypedName","src":"7908:3:89","type":""}],"src":"7868:125:89"},{"body":{"nativeSrc":"8143:144:89","nodeType":"YulBlock","src":"8143:144:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8160:3:89","nodeType":"YulIdentifier","src":"8160:3:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8173:3:89","nodeType":"YulLiteral","src":"8173:3:89","type":"","value":"192"},{"name":"value0","nativeSrc":"8178:6:89","nodeType":"YulIdentifier","src":"8178:6:89"}],"functionName":{"name":"shl","nativeSrc":"8169:3:89","nodeType":"YulIdentifier","src":"8169:3:89"},"nativeSrc":"8169:16:89","nodeType":"YulFunctionCall","src":"8169:16:89"},{"arguments":[{"kind":"number","nativeSrc":"8191:3:89","nodeType":"YulLiteral","src":"8191:3:89","type":"","value":"192"},{"kind":"number","nativeSrc":"8196:18:89","nodeType":"YulLiteral","src":"8196:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"shl","nativeSrc":"8187:3:89","nodeType":"YulIdentifier","src":"8187:3:89"},"nativeSrc":"8187:28:89","nodeType":"YulFunctionCall","src":"8187:28:89"}],"functionName":{"name":"and","nativeSrc":"8165:3:89","nodeType":"YulIdentifier","src":"8165:3:89"},"nativeSrc":"8165:51:89","nodeType":"YulFunctionCall","src":"8165:51:89"}],"functionName":{"name":"mstore","nativeSrc":"8153:6:89","nodeType":"YulIdentifier","src":"8153:6:89"},"nativeSrc":"8153:64:89","nodeType":"YulFunctionCall","src":"8153:64:89"},"nativeSrc":"8153:64:89","nodeType":"YulExpressionStatement","src":"8153:64:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"8237:3:89","nodeType":"YulIdentifier","src":"8237:3:89"},{"kind":"number","nativeSrc":"8242:1:89","nodeType":"YulLiteral","src":"8242:1:89","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"8233:3:89","nodeType":"YulIdentifier","src":"8233:3:89"},"nativeSrc":"8233:11:89","nodeType":"YulFunctionCall","src":"8233:11:89"},{"name":"value1","nativeSrc":"8246:6:89","nodeType":"YulIdentifier","src":"8246:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8226:6:89","nodeType":"YulIdentifier","src":"8226:6:89"},"nativeSrc":"8226:27:89","nodeType":"YulFunctionCall","src":"8226:27:89"},"nativeSrc":"8226:27:89","nodeType":"YulExpressionStatement","src":"8226:27:89"},{"nativeSrc":"8262:19:89","nodeType":"YulAssignment","src":"8262:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"8273:3:89","nodeType":"YulIdentifier","src":"8273:3:89"},{"kind":"number","nativeSrc":"8278:2:89","nodeType":"YulLiteral","src":"8278:2:89","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"8269:3:89","nodeType":"YulIdentifier","src":"8269:3:89"},"nativeSrc":"8269:12:89","nodeType":"YulFunctionCall","src":"8269:12:89"},"variableNames":[{"name":"end","nativeSrc":"8262:3:89","nodeType":"YulIdentifier","src":"8262:3:89"}]}]},"name":"abi_encode_tuple_packed_t_uint64_t_bytes32__to_t_uint64_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"7998:289:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8111:3:89","nodeType":"YulTypedName","src":"8111:3:89","type":""},{"name":"value1","nativeSrc":"8116:6:89","nodeType":"YulTypedName","src":"8116:6:89","type":""},{"name":"value0","nativeSrc":"8124:6:89","nodeType":"YulTypedName","src":"8124:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8135:3:89","nodeType":"YulTypedName","src":"8135:3:89","type":""}],"src":"7998:289:89"},{"body":{"nativeSrc":"8429:150:89","nodeType":"YulBlock","src":"8429:150:89","statements":[{"nativeSrc":"8439:27:89","nodeType":"YulVariableDeclaration","src":"8439:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"8459:6:89","nodeType":"YulIdentifier","src":"8459:6:89"}],"functionName":{"name":"mload","nativeSrc":"8453:5:89","nodeType":"YulIdentifier","src":"8453:5:89"},"nativeSrc":"8453:13:89","nodeType":"YulFunctionCall","src":"8453:13:89"},"variables":[{"name":"length","nativeSrc":"8443:6:89","nodeType":"YulTypedName","src":"8443:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"8514:6:89","nodeType":"YulIdentifier","src":"8514:6:89"},{"kind":"number","nativeSrc":"8522:4:89","nodeType":"YulLiteral","src":"8522:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8510:3:89","nodeType":"YulIdentifier","src":"8510:3:89"},"nativeSrc":"8510:17:89","nodeType":"YulFunctionCall","src":"8510:17:89"},{"name":"pos","nativeSrc":"8529:3:89","nodeType":"YulIdentifier","src":"8529:3:89"},{"name":"length","nativeSrc":"8534:6:89","nodeType":"YulIdentifier","src":"8534:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8475:34:89","nodeType":"YulIdentifier","src":"8475:34:89"},"nativeSrc":"8475:66:89","nodeType":"YulFunctionCall","src":"8475:66:89"},"nativeSrc":"8475:66:89","nodeType":"YulExpressionStatement","src":"8475:66:89"},{"nativeSrc":"8550:23:89","nodeType":"YulAssignment","src":"8550:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"8561:3:89","nodeType":"YulIdentifier","src":"8561:3:89"},{"name":"length","nativeSrc":"8566:6:89","nodeType":"YulIdentifier","src":"8566:6:89"}],"functionName":{"name":"add","nativeSrc":"8557:3:89","nodeType":"YulIdentifier","src":"8557:3:89"},"nativeSrc":"8557:16:89","nodeType":"YulFunctionCall","src":"8557:16:89"},"variableNames":[{"name":"end","nativeSrc":"8550:3:89","nodeType":"YulIdentifier","src":"8550:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"8292:287:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8405:3:89","nodeType":"YulTypedName","src":"8405:3:89","type":""},{"name":"value0","nativeSrc":"8410:6:89","nodeType":"YulTypedName","src":"8410:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8421:3:89","nodeType":"YulTypedName","src":"8421:3:89","type":""}],"src":"8292:287:89"},{"body":{"nativeSrc":"8711:144:89","nodeType":"YulBlock","src":"8711:144:89","statements":[{"nativeSrc":"8721:26:89","nodeType":"YulAssignment","src":"8721:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8733:9:89","nodeType":"YulIdentifier","src":"8733:9:89"},{"kind":"number","nativeSrc":"8744:2:89","nodeType":"YulLiteral","src":"8744:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8729:3:89","nodeType":"YulIdentifier","src":"8729:3:89"},"nativeSrc":"8729:18:89","nodeType":"YulFunctionCall","src":"8729:18:89"},"variableNames":[{"name":"tail","nativeSrc":"8721:4:89","nodeType":"YulIdentifier","src":"8721:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8763:9:89","nodeType":"YulIdentifier","src":"8763:9:89"},{"arguments":[{"name":"value0","nativeSrc":"8778:6:89","nodeType":"YulIdentifier","src":"8778:6:89"},{"kind":"number","nativeSrc":"8786:18:89","nodeType":"YulLiteral","src":"8786:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8774:3:89","nodeType":"YulIdentifier","src":"8774:3:89"},"nativeSrc":"8774:31:89","nodeType":"YulFunctionCall","src":"8774:31:89"}],"functionName":{"name":"mstore","nativeSrc":"8756:6:89","nodeType":"YulIdentifier","src":"8756:6:89"},"nativeSrc":"8756:50:89","nodeType":"YulFunctionCall","src":"8756:50:89"},"nativeSrc":"8756:50:89","nodeType":"YulExpressionStatement","src":"8756:50:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8826:9:89","nodeType":"YulIdentifier","src":"8826:9:89"},{"kind":"number","nativeSrc":"8837:2:89","nodeType":"YulLiteral","src":"8837:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8822:3:89","nodeType":"YulIdentifier","src":"8822:3:89"},"nativeSrc":"8822:18:89","nodeType":"YulFunctionCall","src":"8822:18:89"},{"name":"value1","nativeSrc":"8842:6:89","nodeType":"YulIdentifier","src":"8842:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8815:6:89","nodeType":"YulIdentifier","src":"8815:6:89"},"nativeSrc":"8815:34:89","nodeType":"YulFunctionCall","src":"8815:34:89"},"nativeSrc":"8815:34:89","nodeType":"YulExpressionStatement","src":"8815:34:89"}]},"name":"abi_encode_tuple_t_uint64_t_bytes32__to_t_uint64_t_bytes32__fromStack_reversed","nativeSrc":"8584:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8672:9:89","nodeType":"YulTypedName","src":"8672:9:89","type":""},{"name":"value1","nativeSrc":"8683:6:89","nodeType":"YulTypedName","src":"8683:6:89","type":""},{"name":"value0","nativeSrc":"8691:6:89","nodeType":"YulTypedName","src":"8691:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8702:4:89","nodeType":"YulTypedName","src":"8702:4:89","type":""}],"src":"8584:271:89"},{"body":{"nativeSrc":"8989:145:89","nodeType":"YulBlock","src":"8989:145:89","statements":[{"nativeSrc":"8999:26:89","nodeType":"YulAssignment","src":"8999:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9011:9:89","nodeType":"YulIdentifier","src":"9011:9:89"},{"kind":"number","nativeSrc":"9022:2:89","nodeType":"YulLiteral","src":"9022:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9007:3:89","nodeType":"YulIdentifier","src":"9007:3:89"},"nativeSrc":"9007:18:89","nodeType":"YulFunctionCall","src":"9007:18:89"},"variableNames":[{"name":"tail","nativeSrc":"8999:4:89","nodeType":"YulIdentifier","src":"8999:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9041:9:89","nodeType":"YulIdentifier","src":"9041:9:89"},{"name":"value0","nativeSrc":"9052:6:89","nodeType":"YulIdentifier","src":"9052:6:89"}],"functionName":{"name":"mstore","nativeSrc":"9034:6:89","nodeType":"YulIdentifier","src":"9034:6:89"},"nativeSrc":"9034:25:89","nodeType":"YulFunctionCall","src":"9034:25:89"},"nativeSrc":"9034:25:89","nodeType":"YulExpressionStatement","src":"9034:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9079:9:89","nodeType":"YulIdentifier","src":"9079:9:89"},{"kind":"number","nativeSrc":"9090:2:89","nodeType":"YulLiteral","src":"9090:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9075:3:89","nodeType":"YulIdentifier","src":"9075:3:89"},"nativeSrc":"9075:18:89","nodeType":"YulFunctionCall","src":"9075:18:89"},{"arguments":[{"name":"value1","nativeSrc":"9099:6:89","nodeType":"YulIdentifier","src":"9099:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9115:3:89","nodeType":"YulLiteral","src":"9115:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"9120:1:89","nodeType":"YulLiteral","src":"9120:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9111:3:89","nodeType":"YulIdentifier","src":"9111:3:89"},"nativeSrc":"9111:11:89","nodeType":"YulFunctionCall","src":"9111:11:89"},{"kind":"number","nativeSrc":"9124:1:89","nodeType":"YulLiteral","src":"9124:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9107:3:89","nodeType":"YulIdentifier","src":"9107:3:89"},"nativeSrc":"9107:19:89","nodeType":"YulFunctionCall","src":"9107:19:89"}],"functionName":{"name":"and","nativeSrc":"9095:3:89","nodeType":"YulIdentifier","src":"9095:3:89"},"nativeSrc":"9095:32:89","nodeType":"YulFunctionCall","src":"9095:32:89"}],"functionName":{"name":"mstore","nativeSrc":"9068:6:89","nodeType":"YulIdentifier","src":"9068:6:89"},"nativeSrc":"9068:60:89","nodeType":"YulFunctionCall","src":"9068:60:89"},"nativeSrc":"9068:60:89","nodeType":"YulExpressionStatement","src":"9068:60:89"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nativeSrc":"8860:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8950:9:89","nodeType":"YulTypedName","src":"8950:9:89","type":""},{"name":"value1","nativeSrc":"8961:6:89","nodeType":"YulTypedName","src":"8961:6:89","type":""},{"name":"value0","nativeSrc":"8969:6:89","nodeType":"YulTypedName","src":"8969:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8980:4:89","nodeType":"YulTypedName","src":"8980:4:89","type":""}],"src":"8860:274:89"},{"body":{"nativeSrc":"9238:101:89","nodeType":"YulBlock","src":"9238:101:89","statements":[{"nativeSrc":"9248:26:89","nodeType":"YulAssignment","src":"9248:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9260:9:89","nodeType":"YulIdentifier","src":"9260:9:89"},{"kind":"number","nativeSrc":"9271:2:89","nodeType":"YulLiteral","src":"9271:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9256:3:89","nodeType":"YulIdentifier","src":"9256:3:89"},"nativeSrc":"9256:18:89","nodeType":"YulFunctionCall","src":"9256:18:89"},"variableNames":[{"name":"tail","nativeSrc":"9248:4:89","nodeType":"YulIdentifier","src":"9248:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9290:9:89","nodeType":"YulIdentifier","src":"9290:9:89"},{"arguments":[{"name":"value0","nativeSrc":"9305:6:89","nodeType":"YulIdentifier","src":"9305:6:89"},{"kind":"number","nativeSrc":"9313:18:89","nodeType":"YulLiteral","src":"9313:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9301:3:89","nodeType":"YulIdentifier","src":"9301:3:89"},"nativeSrc":"9301:31:89","nodeType":"YulFunctionCall","src":"9301:31:89"}],"functionName":{"name":"mstore","nativeSrc":"9283:6:89","nodeType":"YulIdentifier","src":"9283:6:89"},"nativeSrc":"9283:50:89","nodeType":"YulFunctionCall","src":"9283:50:89"},"nativeSrc":"9283:50:89","nodeType":"YulExpressionStatement","src":"9283:50:89"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"9139:200:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9207:9:89","nodeType":"YulTypedName","src":"9207:9:89","type":""},{"name":"value0","nativeSrc":"9218:6:89","nodeType":"YulTypedName","src":"9218:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9229:4:89","nodeType":"YulTypedName","src":"9229:4:89","type":""}],"src":"9139:200:89"},{"body":{"nativeSrc":"9425:103:89","nodeType":"YulBlock","src":"9425:103:89","statements":[{"body":{"nativeSrc":"9471:16:89","nodeType":"YulBlock","src":"9471:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9480:1:89","nodeType":"YulLiteral","src":"9480:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9483:1:89","nodeType":"YulLiteral","src":"9483:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9473:6:89","nodeType":"YulIdentifier","src":"9473:6:89"},"nativeSrc":"9473:12:89","nodeType":"YulFunctionCall","src":"9473:12:89"},"nativeSrc":"9473:12:89","nodeType":"YulExpressionStatement","src":"9473:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9446:7:89","nodeType":"YulIdentifier","src":"9446:7:89"},{"name":"headStart","nativeSrc":"9455:9:89","nodeType":"YulIdentifier","src":"9455:9:89"}],"functionName":{"name":"sub","nativeSrc":"9442:3:89","nodeType":"YulIdentifier","src":"9442:3:89"},"nativeSrc":"9442:23:89","nodeType":"YulFunctionCall","src":"9442:23:89"},{"kind":"number","nativeSrc":"9467:2:89","nodeType":"YulLiteral","src":"9467:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9438:3:89","nodeType":"YulIdentifier","src":"9438:3:89"},"nativeSrc":"9438:32:89","nodeType":"YulFunctionCall","src":"9438:32:89"},"nativeSrc":"9435:52:89","nodeType":"YulIf","src":"9435:52:89"},{"nativeSrc":"9496:26:89","nodeType":"YulAssignment","src":"9496:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9512:9:89","nodeType":"YulIdentifier","src":"9512:9:89"}],"functionName":{"name":"mload","nativeSrc":"9506:5:89","nodeType":"YulIdentifier","src":"9506:5:89"},"nativeSrc":"9506:16:89","nodeType":"YulFunctionCall","src":"9506:16:89"},"variableNames":[{"name":"value0","nativeSrc":"9496:6:89","nodeType":"YulIdentifier","src":"9496:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"9344:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9391:9:89","nodeType":"YulTypedName","src":"9391:9:89","type":""},{"name":"dataEnd","nativeSrc":"9402:7:89","nodeType":"YulTypedName","src":"9402:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9414:6:89","nodeType":"YulTypedName","src":"9414:6:89","type":""}],"src":"9344:184:89"},{"body":{"nativeSrc":"9585:116:89","nodeType":"YulBlock","src":"9585:116:89","statements":[{"nativeSrc":"9595:20:89","nodeType":"YulAssignment","src":"9595:20:89","value":{"arguments":[{"name":"x","nativeSrc":"9610:1:89","nodeType":"YulIdentifier","src":"9610:1:89"},{"name":"y","nativeSrc":"9613:1:89","nodeType":"YulIdentifier","src":"9613:1:89"}],"functionName":{"name":"mul","nativeSrc":"9606:3:89","nodeType":"YulIdentifier","src":"9606:3:89"},"nativeSrc":"9606:9:89","nodeType":"YulFunctionCall","src":"9606:9:89"},"variableNames":[{"name":"product","nativeSrc":"9595:7:89","nodeType":"YulIdentifier","src":"9595:7:89"}]},{"body":{"nativeSrc":"9673:22:89","nodeType":"YulBlock","src":"9673:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9675:16:89","nodeType":"YulIdentifier","src":"9675:16:89"},"nativeSrc":"9675:18:89","nodeType":"YulFunctionCall","src":"9675:18:89"},"nativeSrc":"9675:18:89","nodeType":"YulExpressionStatement","src":"9675:18:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"9644:1:89","nodeType":"YulIdentifier","src":"9644:1:89"}],"functionName":{"name":"iszero","nativeSrc":"9637:6:89","nodeType":"YulIdentifier","src":"9637:6:89"},"nativeSrc":"9637:9:89","nodeType":"YulFunctionCall","src":"9637:9:89"},{"arguments":[{"name":"y","nativeSrc":"9651:1:89","nodeType":"YulIdentifier","src":"9651:1:89"},{"arguments":[{"name":"product","nativeSrc":"9658:7:89","nodeType":"YulIdentifier","src":"9658:7:89"},{"name":"x","nativeSrc":"9667:1:89","nodeType":"YulIdentifier","src":"9667:1:89"}],"functionName":{"name":"div","nativeSrc":"9654:3:89","nodeType":"YulIdentifier","src":"9654:3:89"},"nativeSrc":"9654:15:89","nodeType":"YulFunctionCall","src":"9654:15:89"}],"functionName":{"name":"eq","nativeSrc":"9648:2:89","nodeType":"YulIdentifier","src":"9648:2:89"},"nativeSrc":"9648:22:89","nodeType":"YulFunctionCall","src":"9648:22:89"}],"functionName":{"name":"or","nativeSrc":"9634:2:89","nodeType":"YulIdentifier","src":"9634:2:89"},"nativeSrc":"9634:37:89","nodeType":"YulFunctionCall","src":"9634:37:89"}],"functionName":{"name":"iszero","nativeSrc":"9627:6:89","nodeType":"YulIdentifier","src":"9627:6:89"},"nativeSrc":"9627:45:89","nodeType":"YulFunctionCall","src":"9627:45:89"},"nativeSrc":"9624:71:89","nodeType":"YulIf","src":"9624:71:89"}]},"name":"checked_mul_t_uint256","nativeSrc":"9533:168:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9564:1:89","nodeType":"YulTypedName","src":"9564:1:89","type":""},{"name":"y","nativeSrc":"9567:1:89","nodeType":"YulTypedName","src":"9567:1:89","type":""}],"returnVariables":[{"name":"product","nativeSrc":"9573:7:89","nodeType":"YulTypedName","src":"9573:7:89","type":""}],"src":"9533:168:89"},{"body":{"nativeSrc":"9835:145:89","nodeType":"YulBlock","src":"9835:145:89","statements":[{"nativeSrc":"9845:26:89","nodeType":"YulAssignment","src":"9845:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9857:9:89","nodeType":"YulIdentifier","src":"9857:9:89"},{"kind":"number","nativeSrc":"9868:2:89","nodeType":"YulLiteral","src":"9868:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9853:3:89","nodeType":"YulIdentifier","src":"9853:3:89"},"nativeSrc":"9853:18:89","nodeType":"YulFunctionCall","src":"9853:18:89"},"variableNames":[{"name":"tail","nativeSrc":"9845:4:89","nodeType":"YulIdentifier","src":"9845:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9887:9:89","nodeType":"YulIdentifier","src":"9887:9:89"},{"arguments":[{"name":"value0","nativeSrc":"9902:6:89","nodeType":"YulIdentifier","src":"9902:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9918:3:89","nodeType":"YulLiteral","src":"9918:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"9923:1:89","nodeType":"YulLiteral","src":"9923:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9914:3:89","nodeType":"YulIdentifier","src":"9914:3:89"},"nativeSrc":"9914:11:89","nodeType":"YulFunctionCall","src":"9914:11:89"},{"kind":"number","nativeSrc":"9927:1:89","nodeType":"YulLiteral","src":"9927:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9910:3:89","nodeType":"YulIdentifier","src":"9910:3:89"},"nativeSrc":"9910:19:89","nodeType":"YulFunctionCall","src":"9910:19:89"}],"functionName":{"name":"and","nativeSrc":"9898:3:89","nodeType":"YulIdentifier","src":"9898:3:89"},"nativeSrc":"9898:32:89","nodeType":"YulFunctionCall","src":"9898:32:89"}],"functionName":{"name":"mstore","nativeSrc":"9880:6:89","nodeType":"YulIdentifier","src":"9880:6:89"},"nativeSrc":"9880:51:89","nodeType":"YulFunctionCall","src":"9880:51:89"},"nativeSrc":"9880:51:89","nodeType":"YulExpressionStatement","src":"9880:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9951:9:89","nodeType":"YulIdentifier","src":"9951:9:89"},{"kind":"number","nativeSrc":"9962:2:89","nodeType":"YulLiteral","src":"9962:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9947:3:89","nodeType":"YulIdentifier","src":"9947:3:89"},"nativeSrc":"9947:18:89","nodeType":"YulFunctionCall","src":"9947:18:89"},{"name":"value1","nativeSrc":"9967:6:89","nodeType":"YulIdentifier","src":"9967:6:89"}],"functionName":{"name":"mstore","nativeSrc":"9940:6:89","nodeType":"YulIdentifier","src":"9940:6:89"},"nativeSrc":"9940:34:89","nodeType":"YulFunctionCall","src":"9940:34:89"},"nativeSrc":"9940:34:89","nodeType":"YulExpressionStatement","src":"9940:34:89"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"9706:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9796:9:89","nodeType":"YulTypedName","src":"9796:9:89","type":""},{"name":"value1","nativeSrc":"9807:6:89","nodeType":"YulTypedName","src":"9807:6:89","type":""},{"name":"value0","nativeSrc":"9815:6:89","nodeType":"YulTypedName","src":"9815:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9826:4:89","nodeType":"YulTypedName","src":"9826:4:89","type":""}],"src":"9706:274:89"},{"body":{"nativeSrc":"10032:89:89","nodeType":"YulBlock","src":"10032:89:89","statements":[{"body":{"nativeSrc":"10059:22:89","nodeType":"YulBlock","src":"10059:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10061:16:89","nodeType":"YulIdentifier","src":"10061:16:89"},"nativeSrc":"10061:18:89","nodeType":"YulFunctionCall","src":"10061:18:89"},"nativeSrc":"10061:18:89","nodeType":"YulExpressionStatement","src":"10061:18:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"10052:5:89","nodeType":"YulIdentifier","src":"10052:5:89"}],"functionName":{"name":"iszero","nativeSrc":"10045:6:89","nodeType":"YulIdentifier","src":"10045:6:89"},"nativeSrc":"10045:13:89","nodeType":"YulFunctionCall","src":"10045:13:89"},"nativeSrc":"10042:39:89","nodeType":"YulIf","src":"10042:39:89"},{"nativeSrc":"10090:25:89","nodeType":"YulAssignment","src":"10090:25:89","value":{"arguments":[{"name":"value","nativeSrc":"10101:5:89","nodeType":"YulIdentifier","src":"10101:5:89"},{"arguments":[{"kind":"number","nativeSrc":"10112:1:89","nodeType":"YulLiteral","src":"10112:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"10108:3:89","nodeType":"YulIdentifier","src":"10108:3:89"},"nativeSrc":"10108:6:89","nodeType":"YulFunctionCall","src":"10108:6:89"}],"functionName":{"name":"add","nativeSrc":"10097:3:89","nodeType":"YulIdentifier","src":"10097:3:89"},"nativeSrc":"10097:18:89","nodeType":"YulFunctionCall","src":"10097:18:89"},"variableNames":[{"name":"ret","nativeSrc":"10090:3:89","nodeType":"YulIdentifier","src":"10090:3:89"}]}]},"name":"decrement_t_uint256","nativeSrc":"9985:136:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10014:5:89","nodeType":"YulTypedName","src":"10014:5:89","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"10024:3:89","nodeType":"YulTypedName","src":"10024:3:89","type":""}],"src":"9985:136:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_bytes_memory_ptrt_bytes32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_bytes_memory_ptrt_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_struct$_EpochInfo_$16098_memory_ptr__to_t_struct$_EpochInfo_$16098_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 192)\n        mstore(headStart, mload(value0))\n        mstore(add(headStart, 0x20), and(mload(add(value0, 0x20)), 0xffffffffffffffff))\n        mstore(add(headStart, 0x40), and(mload(add(value0, 0x40)), 0xffffffffffffffff))\n        mstore(add(headStart, 0x60), and(mload(add(value0, 0x60)), 0xffffffffffffffff))\n        mstore(add(headStart, 0x80), and(mload(add(value0, 0x80)), 0xffffffffffffffff))\n        mstore(add(headStart, 0xa0), and(mload(add(value0, 0xa0)), 0xffffffffffffffff))\n    }\n    function validator_revert_uint64(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint64t_bytes32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint64(value)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, 32)\n            srcPtr := add(srcPtr, 32)\n        }\n        tail := pos\n    }\n    function abi_decode_tuple_t_uint64_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_uint64(value)\n        value0 := value\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint64(x, y) -> sum\n    {\n        sum := add(and(x, 0xffffffffffffffff), and(y, 0xffffffffffffffff))\n        if gt(sum, 0xffffffffffffffff) { panic_error_0x11() }\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_packed_t_uint64_t_bytes32__to_t_uint64_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, and(shl(192, value0), shl(192, 0xffffffffffffffff)))\n        mstore(add(pos, 8), value1)\n        end := add(pos, 40)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_uint64_t_bytes32__to_t_uint64_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"968":[{"length":32,"start":6939},{"length":32,"start":6980},{"length":32,"start":7317}]},"linkReferences":{},"object":"6080604052600436106101ee5760003560e01c806352d1902d1161010d578063a217fddf116100a0578063c61163451161006f578063c611634514610624578063c72b517614610644578063c75f289314610666578063d547741f1461067b578063ef65792d1461069b57600080fd5b8063a217fddf14610564578063a278881c14610579578063ad3cb1cc146105c4578063babc394f1461060257600080fd5b806386c1ff68116100dc57806386c1ff681461048e57806391d14854146104ae5780639af37ad3146104ce5780639e031bec1461051657600080fd5b806352d1902d146104155780635f5300ff1461042a57806365d8dd341461043f578063814964f01461045f57600080fd5b80632a0acc6a1161018557806336568abe1161015457806336568abe146103a257806343273213146103c2578063485cc955146103e25780634f1ef2861461040257600080fd5b80632a0acc6a146103295780632f2ff15d1461034b578063304895f11461036b57806331f449001461038d57600080fd5b80631cc4ca7b116101c15780631cc4ca7b146102b257806320965255146102c7578063248a9ca3146102dc57806326678e5d146102fc57600080fd5b806301ffc9a7146101f357806304fab6e1146102285780630a514cf21461024a5780631477046614610285575b600080fd5b3480156101ff57600080fd5b5061021361020e366004612352565b6106bb565b60405190151581526020015b60405180910390f35b34801561023457600080fd5b50610248610243366004612398565b6106f2565b005b34801561025657600080fd5b506102776102653660046123c4565b60066020526000908152604090205481565b60405190815260200161021f565b34801561029157600080fd5b506102776102a03660046123df565b60076020526000908152604090205481565b3480156102be57600080fd5b50610248610788565b3480156102d357600080fd5b50600b54610277565b3480156102e857600080fd5b506102776102f73660046123df565b610862565b34801561030857600080fd5b506102776103173660046123df565b600a6020526000908152604090205481565b34801561033557600080fd5b5061027760008051602061281e83398151915281565b34801561035757600080fd5b50610248610366366004612398565b610884565b34801561037757600080fd5b506102776000805160206127de83398151915281565b34801561039957600080fd5b506102486108a6565b3480156103ae57600080fd5b506102486103bd366004612398565b6108e6565b3480156103ce57600080fd5b506102486103dd3660046123df565b61091e565b3480156103ee57600080fd5b506102486103fd3660046123f8565b610abb565b6102486104103660046124c5565b610c52565b34801561042157600080fd5b50610277610c71565b34801561043657600080fd5b50610277610c8e565b34801561044b57600080fd5b5061024861045a366004612398565b610ce6565b34801561046b57600080fd5b5061021361047a3660046123df565b6000908152600a6020526040902054421090565b34801561049a57600080fd5b506102486104a93660046123c4565b610e71565b3480156104ba57600080fd5b506102136104c9366004612398565b610fb5565b3480156104da57600080fd5b506102776104e9366004612512565b81516020818401810180516008825292820194820194909420919093529091526000908152604090205481565b34801561052257600080fd5b5061054c6105313660046123df565b6002602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161021f565b34801561057057600080fd5b50610277600081565b34801561058557600080fd5b50610213610594366004612556565b81516020818401810180516009825292820194820194909420919093529091526000908152604090205460ff1681565b3480156105d057600080fd5b506105f5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161021f91906125be565b34801561060e57600080fd5b50610617610fed565b60405161021f91906125f1565b34801561063057600080fd5b5061024861063f366004612677565b61107c565b34801561065057600080fd5b50610659611398565b60405161021f91906126a3565b34801561067257600080fd5b50600354610277565b34801561068757600080fd5b50610248610696366004612398565b6113f0565b3480156106a757600080fd5b506102486106b6366004612398565b61140c565b60006001600160e01b03198216637965db0b60e01b14806106ec57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526002602052604090205482906001600160a01b031633146107325760405163798042a560e01b81523360048201526024015b60405180910390fd5b6001600160a01b0382166107595760405163d92e233d60e01b815260040160405180910390fd5b5060009182526002602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000805160206127de8339815191526107a081611640565b600054604051630e31818560e11b81527f4f27e928da73627e3874c3712f79e2e58f25a77db3929917088d7d5014f08604600482015242916001600160a01b031690631c63030a90602401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c91906126e6565b600c546108499190600160c01b90046001600160401b0316612719565b6001600160401b03161161085f5761085f61164a565b50565b600090815260008051602061283e833981519152602052604090206001015490565b61088d82610862565b61089681611640565b6108a083836118e9565b50505050565b60008051602061285e833981519152546001600160401b0316156108dc5760405162dc149f60e41b815260040160405180910390fd5b6108e461198e565b565b6001600160a01b038116331461090f5760405163334bd91960e11b815260040160405180910390fd5b6109198282611a29565b505050565b60008051602061281e83398151915261093681611640565b8161095457604051631b47388560e11b815260040160405180910390fd5b6000828152600260205260409020546001600160a01b031661098c576040516349fa563160e11b815260048101839052602401610729565b600082815260076020526040902054156109bc576040516316809dd760e21b815260048101839052602401610729565b600082815260026020526040812080546001600160a01b03191690556003546001600160401b038111156109f2576109f2612422565b604051908082528060200260200182016040528015610a1b578160200160208202803683370190505b5090506000805b600354811015610aa1578460038281548110610a4057610a40612738565b906000526020600020015414610a995760038181548110610a6357610a63612738565b9060005260206000200154838380610a7a9061274e565b945081518110610a8c57610a8c612738565b6020026020010181815250505b600101610a22565b818352610ab360036020850184612294565b505050505050565b60008051602061285e8339815191528054600160401b810460ff1615906001600160401b0316600081158015610aee5750825b90506000826001600160401b03166001148015610b0a5750303b155b905081158015610b18575080155b15610b365760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b6057845460ff60401b1916600160401b1785555b610b68611aa5565b610b70611aa5565b600080546001600160a01b0319166001600160a01b038816179055610ba360008051602061281e83398151915280611aad565b610bc96000805160206127de83398151915260008051602061281e833981519152611aad565b610be160008051602061281e833981519152886118e9565b50610bfa6000805160206127de833981519152886118e9565b50610c0361164a565b8315610c4957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610c5a611b10565b610c6382611bb5565b610c6d8282611bcd565b5050565b6000610c7b611c8a565b506000805160206127fe83398151915290565b6000805b600354811015610ce2576007600060038381548110610cb357610cb3612738565b906000526020600020015481526020019081526020016000205482610cd89190612767565b9150600101610c92565b5090565b60008051602061281e833981519152610cfe81611640565b82610d1c57604051631b47388560e11b815260040160405180910390fd5b6001600160a01b038216610d435760405163d92e233d60e01b815260040160405180910390fd5b6000838152600260205260409020546001600160a01b031615610d7c5760405163dfdfbc2d60e01b815260048101849052602401610729565b60005b600154811015610dd8578360018281548110610d9d57610d9d612738565b90600052602060002090600202016000015403610dd05760405163dfdfbc2d60e01b815260048101859052602401610729565b600101610d7f565b5050604080518082019091529182526001600160a01b039081166020830190815260018054808201825560009190915292517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6600290940293840155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf790920180546001600160a01b03191692909116919091179055565b6001600160a01b038082166000908152600660209081526040808320548084526002909252909120549091163314610ebe5760405163798042a560e01b8152336004820152602401610729565b60005b600554811015610f2e57826001600160a01b031660058281548110610ee857610ee8612738565b6000918252602090912001546001600160a01b031603610f265760405163f9a5ac4b60e01b81526001600160a01b0384166004820152602401610729565b600101610ec1565b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384169081179091556040519081527fa14a79af012d1756818f9bd59ccfc9ad185a71df86b9392d9059d9e6faf6d644906020015b60405180910390a15050565b600091825260008051602061283e833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c081018252600b548152600c546001600160401b038082166020840152600160401b8204811693830193909352600160801b810483166060830152600160c01b900482166080820152600d5490911660a082015290565b336000908152600660205260409020546110ab5760405163e051520960e01b8152336004820152602401610729565b600d546001600160401b0390811690831610610c6d57600d546001600160401b03164210156110ed5760405163179e70af60e21b815260040160405180910390fd5b6040516001600160c01b031960c084901b1660208201526028810182905260009060480160408051601f19818403018152908290529150339060099061113490849061277a565b90815260408051602092819003830190206001600160a01b0384166000908152925290205460ff1615611185576040516327ead06f60e01b81526001600160a01b0382166004820152602401610729565b6001600160a01b0381166000908152600660205260409020546111a9908390611cd3565b156111b45750505050565b6008826040516111c4919061277a565b90815260408051602092819003830190206001600160a01b038416600090815260068452828120548152925281208054916111fe8361274e565b91905055506001600983604051611215919061277a565b90815260408051602092819003830190206001600160a01b038516600090815292529020805460ff191691151591909117905561125182611dec565b156108a057600b839055600c8054600160401b8082046001600160401b039081166fffffffffffffffffffffffffffffffff199093169290921791871602179055600054604051630e31818560e11b81527f30d9b452ee51929ed46b0efac730a78ccd37a793a5acf24feda636390b21051660048201526001600160a01b0390911690631c63030a90602401602060405180830381865afa1580156112fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131e91906126e6565b611331906001600160401b031642612767565b6000848152600a602090815260409182902092909255600c548151600160c01b9091046001600160401b031681529182018590527fccdf41482c7267f877a85c0080dfcb5b0312bb8e08facbdf733b545447b0f9cc910160405180910390a16108a061164a565b606060038054806020026020016040519081016040528092919081815260200182805480156113e657602002820191906000526020600020905b8154815260200190600101908083116113d2575b5050505050905090565b6113f982610862565b61140281611640565b6108a08383611a29565b60008281526002602052604090205482906001600160a01b031633146114475760405163798042a560e01b8152336004820152602401610729565b6001600160a01b03821661146e5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038216600090815260066020526040902054156114cb576001600160a01b038216600081815260066020526040908190205490516329a0e73760e21b815260048101919091526024810191909152604401610729565b60005b60045481101561156f57826001600160a01b0316600482815481106114f5576114f5612738565b60009182526020909120600160029092020101546001600160a01b031603611567576004818154811061152a5761152a612738565b60009182526020909120600290910201546040516329a0e73760e21b815260048101919091526001600160a01b0384166024820152604401610729565b6001016114ce565b506040805180820182528481526001600160a01b0384811660208084018281526004805460018101825560009190915294517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b600290960295860155517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c90940180546001600160a01b03191694909316939093179091558251868152918201527ff2c5d250e7f5e3d0a00af1ab95adfe8fa8da11ad3c6bd195b6cd09688ba317bb910160405180910390a1505050565b61085f8133611f16565b60005b6001548110156116bc576116b46001828154811061166d5761166d612738565b9060005260206000209060020201600001546001838154811061169257611692612738565b60009182526020909120600160029092020101546001600160a01b0316611f4f565b60010161164d565b6116c8600160006122db565b5060005b60045481101561173b57611733600482815481106116ec576116ec612738565b9060005260206000209060020201600001546004838154811061171157611711612738565b60009182526020909120600160029092020101546001600160a01b0316611fce565b6001016116cc565b611747600460006122db565b5060005b60055481101561178d576117856005828154811061176b5761176b612738565b6000918252602090912001546001600160a01b031661202d565b60010161174b565b611799600560006122fc565b50600c80546fffffffffffffffffffffffffffffffff8116600160c01b918290046001600160401b03908116600160801b026001600160c01b03169190911742919091169190910217905560008054604051630e31818560e11b81527fb85db7dee54693d742881af46464432adde0803726a71dd9f6234a601792cf9a600482015282916001600160a01b031690631c63030a90602401602060405180830381865afa15801561184d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187191906126e6565b600c54909150611892908290600160c01b90046001600160401b0316612719565b600d805467ffffffffffffffff19166001600160401b03929092169190911790557f8972e12e089a1ae976976f71bea607670287871127b417136bf394b144082d346118dc610fed565b604051610fa991906125f1565b600060008051602061283e8339815191526119048484610fb5565b611984576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561193a3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106ec565b60009150506106ec565b60008051602061285e8339815191528054600160401b900460ff16156119c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161461085f57805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b600060008051602061283e833981519152611a448484610fb5565b15611984576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106ec565b6108e4612085565b60008051602061283e8339815191526000611ac784610862565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611b9757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b8b6000805160206127fe833981519152546001600160a01b031690565b6001600160a01b031614155b156108e45760405163703e46dd60e11b815260040160405180910390fd5b60008051602061281e833981519152610c6d81611640565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c27575060408051601f3d908101601f19168201909252611c2491810190612796565b60015b611c4f57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610729565b6000805160206127fe8339815191528114611c8057604051632a87526960e21b815260048101829052602401610729565b61091983836120bc565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108e45760405163703e46dd60e11b815260040160405180910390fd5b6000818152600760205260408120548103611cf0575060006106ec565b6000828152600760205260408082205482549151630e31818560e11b81527f7f409c90678ce93e65834482eacce2014a08dd7ce43a3ec31af5320a72db7a62600482015290916001600160a01b031690631c63030a90602401602060405180830381865afa158015611d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8a91906126e6565b6001600160401b0316611d9d91906127af565b9050806103e8600886604051611db3919061277a565b9081526020016040518091039020600086815260200190815260200160002054611ddd91906127af565b106119845760019150506106ec565b60035460008054604051630e31818560e11b81527f4974a2122f752ac8bcaeec9beacd1bb419a4c873fda1aa7058360e08c5c9401c60048201529192839283926001600160a01b031690631c63030a90602401602060405180830381865afa158015611e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8091906126e6565b6001600160401b0316611e9391906127af565b905060005b600354811015611f0b57611ec98560038381548110611eb957611eb9612738565b9060005260206000200154611cd3565b611ed4576000611ed7565b60015b611ee49060ff1684612767565b925081611ef36103e8856127af565b10611f0357506001949350505050565b600101611e98565b506000949350505050565b611f208282610fb5565b610c6d5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610729565b6000828152600260205260409020546001600160a01b031615611f70575050565b600082815260026020526040812080546001600160a01b0319166001600160a01b0393909316929092179091556003805460018101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0155565b6001600160a01b03811660009081526006602052604090205415611ff0575050565b6001600160a01b0381166000908152600660209081526040808320859055848352600790915281208054916120248361274e565b91905055505050565b6001600160a01b03811660009081526006602052604090205461204d5750565b6001600160a01b03811660009081526006602090815260408083208054908490558084526007909252822080549192612024836127c6565b60008051602061285e83398151915254600160401b900460ff166108e457604051631afcd79f60e31b815260040160405180910390fd5b6120c582612112565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561210a576109198282612177565b610c6d6121ed565b806001600160a01b03163b60000361214857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610729565b6000805160206127fe83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051612194919061277a565b600060405180830381855af49150503d80600081146121cf576040519150601f19603f3d011682016040523d82523d6000602084013e6121d4565b606091505b50915091506121e485838361220c565b95945050505050565b34156108e45760405163b398979f60e01b815260040160405180910390fd5b6060826122215761221c8261226b565b612264565b815115801561223857506001600160a01b0384163b155b1561226157604051639996b31560e01b81526001600160a01b0385166004820152602401610729565b50805b9392505050565b80511561227b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b8280548282559060005260206000209081019282156122cf579160200282015b828111156122cf5782518255916020019190600101906122b4565b50610ce2929150612316565b508054600082556002029060005260206000209081019061085f919061232b565b508054600082559060005260206000209081019061085f91905b5b80821115610ce25760008155600101612317565b5b80821115610ce257600081556001810180546001600160a01b031916905560020161232c565b60006020828403121561236457600080fd5b81356001600160e01b03198116811461226457600080fd5b80356001600160a01b038116811461239357600080fd5b919050565b600080604083850312156123ab57600080fd5b823591506123bb6020840161237c565b90509250929050565b6000602082840312156123d657600080fd5b6122648261237c565b6000602082840312156123f157600080fd5b5035919050565b6000806040838503121561240b57600080fd5b6124148361237c565b91506123bb6020840161237c565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261244957600080fd5b81356001600160401b0381111561246257612462612422565b604051601f8201601f19908116603f011681016001600160401b038111828210171561249057612490612422565b6040528181528382016020018510156124a857600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156124d857600080fd5b6124e18361237c565b915060208301356001600160401b038111156124fc57600080fd5b61250885828601612438565b9150509250929050565b6000806040838503121561252557600080fd5b82356001600160401b0381111561253b57600080fd5b61254785828601612438565b95602094909401359450505050565b6000806040838503121561256957600080fd5b82356001600160401b0381111561257f57600080fd5b61258b85828601612438565b9250506123bb6020840161237c565b60005b838110156125b557818101518382015260200161259d565b50506000910152565b60208152600082518060208401526125dd81604085016020870161259a565b601f01601f19169190910160400192915050565b600060c082019050825182526001600160401b0360208401511660208301526001600160401b0360408401511660408301526001600160401b0360608401511660608301526001600160401b0360808401511660808301526001600160401b0360a08401511660a083015292915050565b6001600160401b038116811461085f57600080fd5b6000806040838503121561268a57600080fd5b823561269581612662565b946020939093013593505050565b602080825282518282018190526000918401906040840190835b818110156126db5783518352602093840193909201916001016126bd565b509095945050505050565b6000602082840312156126f857600080fd5b815161226481612662565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381811683821601908111156106ec576106ec612703565b634e487b7160e01b600052603260045260246000fd5b60006001820161276057612760612703565b5060010190565b808201808211156106ec576106ec612703565b6000825161278c81846020870161259a565b9190910192915050565b6000602082840312156127a857600080fd5b5051919050565b80820281158282048414176106ec576106ec612703565b6000816127d5576127d5612703565b50600019019056febb98d3582351a85c7e45e5d913a683b101fd521ef4e097faf6539a7475de6f4d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204194dd6cca33318b1ea5262712db0104e76eb4563553fff422bd6f80f656876664736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1EE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xC6116345 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xC6116345 EQ PUSH2 0x624 JUMPI DUP1 PUSH4 0xC72B5176 EQ PUSH2 0x644 JUMPI DUP1 PUSH4 0xC75F2893 EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xEF65792D EQ PUSH2 0x69B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x564 JUMPI DUP1 PUSH4 0xA278881C EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x5C4 JUMPI DUP1 PUSH4 0xBABC394F EQ PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x86C1FF68 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x86C1FF68 EQ PUSH2 0x48E JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x9AF37AD3 EQ PUSH2 0x4CE JUMPI DUP1 PUSH4 0x9E031BEC EQ PUSH2 0x516 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x52D1902D EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x5F5300FF EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0x65D8DD34 EQ PUSH2 0x43F JUMPI DUP1 PUSH4 0x814964F0 EQ PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A0ACC6A GT PUSH2 0x185 JUMPI DUP1 PUSH4 0x36568ABE GT PUSH2 0x154 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0x43273213 EQ PUSH2 0x3C2 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x402 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x304895F1 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x31F44900 EQ PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1CC4CA7B GT PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x1CC4CA7B EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0x20965255 EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x26678E5D EQ PUSH2 0x2FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x4FAB6E1 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0xA514CF2 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x14770466 EQ PUSH2 0x285 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x20E CALLDATASIZE PUSH1 0x4 PUSH2 0x2352 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x6F2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x23C4 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x2A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x788 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x277 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x2F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH2 0x862 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x317 CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x884 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x8A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x3BD CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x8E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x3DD CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH2 0x91E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x3FD CALLDATASIZE PUSH1 0x4 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0xABB JUMP JUMPDEST PUSH2 0x248 PUSH2 0x410 CALLDATASIZE PUSH1 0x4 PUSH2 0x24C5 JUMP JUMPDEST PUSH2 0xC52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0xC71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0xC8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x45A CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0xCE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD TIMESTAMP LT SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x4A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x23C4 JUMP JUMPDEST PUSH2 0xE71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x4C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0xFB5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x4E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2512 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP2 DUP5 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x8 DUP3 MSTORE SWAP3 DUP3 ADD SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 KECCAK256 SWAP2 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54C PUSH2 0x531 CALLDATASIZE PUSH1 0x4 PUSH2 0x23DF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x570 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x277 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x2556 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP2 DUP5 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x9 DUP3 MSTORE SWAP3 DUP3 ADD SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 KECCAK256 SWAP2 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x25BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x617 PUSH2 0xFED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x25F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x630 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x63F CALLDATASIZE PUSH1 0x4 PUSH2 0x2677 JUMP JUMPDEST PUSH2 0x107C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x659 PUSH2 0x1398 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x26A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x277 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x696 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x13F0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x6B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x140C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6EC JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x732 JUMPI PUSH1 0x40 MLOAD PUSH4 0x798042A5 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x759 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD92E233D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x7A0 DUP2 PUSH2 0x1640 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0x4F27E928DA73627E3874C3712F79E2E58F25A77DB3929917088D7D5014F08604 PUSH1 0x4 DUP3 ADD MSTORE TIMESTAMP SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x808 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 0x82C SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x849 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2719 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND GT PUSH2 0x85F JUMPI PUSH2 0x85F PUSH2 0x164A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x88D DUP3 PUSH2 0x862 JUMP JUMPDEST PUSH2 0x896 DUP2 PUSH2 0x1640 JUMP JUMPDEST PUSH2 0x8A0 DUP4 DUP4 PUSH2 0x18E9 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x285E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO PUSH2 0x8DC JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E4 PUSH2 0x198E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x90F JUMPI PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x919 DUP3 DUP3 PUSH2 0x1A29 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x936 DUP2 PUSH2 0x1640 JUMP JUMPDEST DUP2 PUSH2 0x954 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B473885 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x98C JUMPI PUSH1 0x40 MLOAD PUSH4 0x49FA5631 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x9BC JUMPI PUSH1 0x40 MLOAD PUSH4 0x16809DD7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x9F2 JUMPI PUSH2 0x9F2 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA1B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0xAA1 JUMPI DUP5 PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xA40 JUMPI PUSH2 0xA40 PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD EQ PUSH2 0xA99 JUMPI PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA63 JUMPI PUSH2 0xA63 PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP4 DUP4 DUP1 PUSH2 0xA7A SWAP1 PUSH2 0x274E JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA8C JUMPI PUSH2 0xA8C PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA22 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH2 0xAB3 PUSH1 0x3 PUSH1 0x20 DUP6 ADD DUP5 PUSH2 0x2294 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x285E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0xAEE JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xB0A JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xB18 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xB36 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xB60 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xB68 PUSH2 0x1AA5 JUMP JUMPDEST PUSH2 0xB70 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE PUSH2 0xBA3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x1AAD JUMP JUMPDEST PUSH2 0xBC9 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AAD JUMP JUMPDEST PUSH2 0xBE1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP9 PUSH2 0x18E9 JUMP JUMPDEST POP PUSH2 0xBFA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP9 PUSH2 0x18E9 JUMP JUMPDEST POP PUSH2 0xC03 PUSH2 0x164A JUMP JUMPDEST DUP4 ISZERO PUSH2 0xC49 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC5A PUSH2 0x1B10 JUMP JUMPDEST PUSH2 0xC63 DUP3 PUSH2 0x1BB5 JUMP JUMPDEST PUSH2 0xC6D DUP3 DUP3 PUSH2 0x1BCD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH2 0x1C8A JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27FE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0xCE2 JUMPI PUSH1 0x7 PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xCB3 JUMPI PUSH2 0xCB3 PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 PUSH2 0xCD8 SWAP2 SWAP1 PUSH2 0x2767 JUMP JUMPDEST SWAP2 POP PUSH1 0x1 ADD PUSH2 0xC92 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xCFE DUP2 PUSH2 0x1640 JUMP JUMPDEST DUP3 PUSH2 0xD1C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B473885 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xD43 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD92E233D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xDFDFBC2D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 SLOAD DUP2 LT ISZERO PUSH2 0xDD8 JUMPI DUP4 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD9D JUMPI PUSH2 0xD9D PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD SUB PUSH2 0xDD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDFDFBC2D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xD7F JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x20 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE SWAP3 MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF6 PUSH1 0x2 SWAP1 SWAP5 MUL SWAP4 DUP5 ADD SSTORE MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF7 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP1 DUP5 MSTORE PUSH1 0x2 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 AND CALLER EQ PUSH2 0xEBE JUMPI PUSH1 0x40 MLOAD PUSH4 0x798042A5 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x5 SLOAD DUP2 LT ISZERO PUSH2 0xF2E JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x5 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xEE8 JUMPI PUSH2 0xEE8 PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xF26 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF9A5AC4B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xEC1 JUMP JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xA14A79AF012D1756818F9BD59CCFC9AD185A71DF86B9392D9059D9E6FAF6D644 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0xB SLOAD DUP2 MSTORE PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV DUP3 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xD SLOAD SWAP1 SWAP2 AND PUSH1 0xA0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x10AB JUMPI PUSH1 0x40 MLOAD PUSH4 0xE0515209 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND LT PUSH2 0xC6D JUMPI PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP LT ISZERO PUSH2 0x10ED JUMPI PUSH1 0x40 MLOAD PUSH4 0x179E70AF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT PUSH1 0xC0 DUP5 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x28 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE SWAP2 POP CALLER SWAP1 PUSH1 0x9 SWAP1 PUSH2 0x1134 SWAP1 DUP5 SWAP1 PUSH2 0x277A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1185 JUMPI PUSH1 0x40 MLOAD PUSH4 0x27EAD06F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x11A9 SWAP1 DUP4 SWAP1 PUSH2 0x1CD3 JUMP JUMPDEST ISZERO PUSH2 0x11B4 JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP3 PUSH1 0x40 MLOAD PUSH2 0x11C4 SWAP2 SWAP1 PUSH2 0x277A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 DUP5 MSTORE DUP3 DUP2 KECCAK256 SLOAD DUP2 MSTORE SWAP3 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x11FE DUP4 PUSH2 0x274E JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x9 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1215 SWAP2 SWAP1 PUSH2 0x277A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1251 DUP3 PUSH2 0x1DEC JUMP JUMPDEST ISZERO PUSH2 0x8A0 JUMPI PUSH1 0xB DUP4 SWAP1 SSTORE PUSH1 0xC DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP1 DUP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 DUP8 AND MUL OR SWAP1 SSTORE PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0x30D9B452EE51929ED46B0EFAC730A78CCD37A793A5ACF24FEDA636390B210516 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12FA 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 0x131E SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH2 0x1331 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x2767 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xC SLOAD DUP2 MLOAD PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH32 0xCCDF41482C7267F877A85C0080DFCB5B0312BB8E08FACBDF733B545447B0F9CC SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x8A0 PUSH2 0x164A JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x13E6 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x13D2 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x13F9 DUP3 PUSH2 0x862 JUMP JUMPDEST PUSH2 0x1402 DUP2 PUSH2 0x1640 JUMP JUMPDEST PUSH2 0x8A0 DUP4 DUP4 PUSH2 0x1A29 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1447 JUMPI PUSH1 0x40 MLOAD PUSH4 0x798042A5 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x146E JUMPI PUSH1 0x40 MLOAD PUSH4 0xD92E233D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x14CB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x29A0E737 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x4 SLOAD DUP2 LT ISZERO PUSH2 0x156F JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x14F5 JUMPI PUSH2 0x14F5 PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x2 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x1567 JUMPI PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x152A JUMPI PUSH2 0x152A PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x29A0E737 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x14CE JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP5 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD DUP3 DUP2 MSTORE PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE SWAP5 MLOAD PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B PUSH1 0x2 SWAP1 SWAP7 MUL SWAP6 DUP7 ADD SSTORE MLOAD PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19C SWAP1 SWAP5 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP5 SWAP1 SWAP4 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP7 DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0xF2C5D250E7F5E3D0A00AF1AB95ADFE8FA8DA11AD3C6BD195B6CD09688BA317BB SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x85F DUP2 CALLER PUSH2 0x1F16 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 SLOAD DUP2 LT ISZERO PUSH2 0x16BC JUMPI PUSH2 0x16B4 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x166D JUMPI PUSH2 0x166D PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD PUSH1 0x1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1692 JUMPI PUSH2 0x1692 PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x2 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F4F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x164D JUMP JUMPDEST PUSH2 0x16C8 PUSH1 0x1 PUSH1 0x0 PUSH2 0x22DB JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH1 0x4 SLOAD DUP2 LT ISZERO PUSH2 0x173B JUMPI PUSH2 0x1733 PUSH1 0x4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x16EC JUMPI PUSH2 0x16EC PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD PUSH1 0x4 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1711 JUMPI PUSH2 0x1711 PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x2 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FCE JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x16CC JUMP JUMPDEST PUSH2 0x1747 PUSH1 0x4 PUSH1 0x0 PUSH2 0x22DB JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH1 0x5 SLOAD DUP2 LT ISZERO PUSH2 0x178D JUMPI PUSH2 0x1785 PUSH1 0x5 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x176B JUMPI PUSH2 0x176B PUSH2 0x2738 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x202D JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x174B JUMP JUMPDEST PUSH2 0x1799 PUSH1 0x5 PUSH1 0x0 PUSH2 0x22FC JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 DUP3 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND SWAP2 SWAP1 SWAP2 OR TIMESTAMP SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 MUL OR SWAP1 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0xB85DB7DEE54693D742881AF46464432ADDE0803726A71DD9F6234A601792CF9A PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x184D 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 0x1871 SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH1 0xC SLOAD SWAP1 SWAP2 POP PUSH2 0x1892 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2719 JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x8972E12E089A1AE976976F71BEA607670287871127B417136BF394B144082D34 PUSH2 0x18DC PUSH2 0xFED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFA9 SWAP2 SWAP1 PUSH2 0x25F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1904 DUP5 DUP5 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0x1984 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x193A CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x285E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x19C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0x85F JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1A44 DUP5 DUP5 PUSH2 0xFB5 JUMP JUMPDEST ISZERO PUSH2 0x1984 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP8 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST PUSH2 0x8E4 PUSH2 0x2085 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 PUSH2 0x1AC7 DUP5 PUSH2 0x862 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP7 SWAP1 SSTORE MLOAD SWAP2 SWAP3 POP DUP5 SWAP2 DUP4 SWAP2 DUP8 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x1B97 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B8B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27FE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x8E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x281E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC6D DUP2 PUSH2 0x1640 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1C27 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1C24 SWAP2 DUP2 ADD SWAP1 PUSH2 0x2796 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1C4F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27FE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x1C80 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH2 0x919 DUP4 DUP4 PUSH2 0x20BC JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x8E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SUB PUSH2 0x1CF0 JUMPI POP PUSH1 0x0 PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP3 SLOAD SWAP2 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0x7F409C90678CE93E65834482EACCE2014A08DD7CE43A3EC31AF5320A72DB7A62 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D66 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 0x1D8A SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x1D9D SWAP2 SWAP1 PUSH2 0x27AF JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x3E8 PUSH1 0x8 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1DB3 SWAP2 SWAP1 PUSH2 0x277A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1DDD SWAP2 SWAP1 PUSH2 0x27AF JUMP JUMPDEST LT PUSH2 0x1984 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE318185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH32 0x4974A2122F752AC8BCAEEC9BEACD1BB419A4C873FDA1AA7058360E08C5C9401C PUSH1 0x4 DUP3 ADD MSTORE SWAP2 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1C63030A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E5C 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 0x1E80 SWAP2 SWAP1 PUSH2 0x26E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x1E93 SWAP2 SWAP1 PUSH2 0x27AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0x1F0B JUMPI PUSH2 0x1EC9 DUP6 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1EB9 JUMPI PUSH2 0x1EB9 PUSH2 0x2738 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH2 0x1CD3 JUMP JUMPDEST PUSH2 0x1ED4 JUMPI PUSH1 0x0 PUSH2 0x1ED7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1EE4 SWAP1 PUSH1 0xFF AND DUP5 PUSH2 0x2767 JUMP JUMPDEST SWAP3 POP DUP2 PUSH2 0x1EF3 PUSH2 0x3E8 DUP6 PUSH2 0x27AF JUMP JUMPDEST LT PUSH2 0x1F03 JUMPI POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1E98 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1F20 DUP3 DUP3 PUSH2 0xFB5 JUMP JUMPDEST PUSH2 0xC6D JUMPI PUSH1 0x40 MLOAD PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1F70 JUMPI POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1FF0 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x2024 DUP4 PUSH2 0x274E JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x204D JUMPI POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD SWAP1 DUP5 SWAP1 SSTORE DUP1 DUP5 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 PUSH2 0x2024 DUP4 PUSH2 0x27C6 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x285E DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x8E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x20C5 DUP3 PUSH2 0x2112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x210A JUMPI PUSH2 0x919 DUP3 DUP3 PUSH2 0x2177 JUMP JUMPDEST PUSH2 0xC6D PUSH2 0x21ED JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x2148 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x27FE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2194 SWAP2 SWAP1 PUSH2 0x277A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x21CF 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 0x21D4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x21E4 DUP6 DUP4 DUP4 PUSH2 0x220C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x8E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x2221 JUMPI PUSH2 0x221C DUP3 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x2264 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2238 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x2261 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x729 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x227B JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x22CF JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x22CF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x22B4 JUMP JUMPDEST POP PUSH2 0xCE2 SWAP3 SWAP2 POP PUSH2 0x2316 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x2 MUL SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x85F SWAP2 SWAP1 PUSH2 0x232B JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x85F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xCE2 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2317 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xCE2 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x2 ADD PUSH2 0x232C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x23BB PUSH1 0x20 DUP5 ADD PUSH2 0x237C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2264 DUP3 PUSH2 0x237C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x240B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2414 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP2 POP PUSH2 0x23BB PUSH1 0x20 DUP5 ADD PUSH2 0x237C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2462 JUMPI PUSH2 0x2462 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2490 JUMPI PUSH2 0x2490 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x24A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E1 DUP4 PUSH2 0x237C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2508 DUP6 DUP3 DUP7 ADD PUSH2 0x2438 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x253B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2547 DUP6 DUP3 DUP7 ADD PUSH2 0x2438 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2569 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x257F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x258B DUP6 DUP3 DUP7 ADD PUSH2 0x2438 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x23BB PUSH1 0x20 DUP5 ADD PUSH2 0x237C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25B5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x259D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x25DD DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x259A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x40 DUP5 ADD MLOAD AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x60 DUP5 ADD MLOAD AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x80 DUP5 ADD MLOAD AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0xA0 DUP5 ADD MLOAD AND PUSH1 0xA0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x268A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2695 DUP2 PUSH2 0x2662 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 ADD SWAP1 PUSH1 0x40 DUP5 ADD SWAP1 DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x26DB JUMPI DUP4 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x26BD JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2264 DUP2 PUSH2 0x2662 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x6EC JUMPI PUSH2 0x6EC PUSH2 0x2703 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x2760 JUMPI PUSH2 0x2760 PUSH2 0x2703 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6EC JUMPI PUSH2 0x6EC PUSH2 0x2703 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x278C DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x259A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6EC JUMPI PUSH2 0x6EC PUSH2 0x2703 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x27D5 JUMPI PUSH2 0x27D5 PUSH2 0x2703 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP INVALID 0xBB SWAP9 0xD3 PC 0x23 MLOAD 0xA8 TLOAD PUSH31 0x45E5D913A683B101FD521EF4E097FAF6539A7475DE6F4D360894A13BA1A321 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCDF8B4C520FFE197C5343C6 CREATE2 0xAE 0xC5 SWAP6 PUSH17 0x151EF9A492F2C624FD45DDDE6135EC4202 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP CREATE 0xC5 PUSH31 0x16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00A264 PUSH10 0x706673582212204194DD PUSH13 0xCA33318B1EA5262712DB0104E7 PUSH15 0xB4563553FFF422BD6F80F656876664 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"664:12740:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:202:0;;;;;;;;;;-1:-1:-1;3443:202:0;;;;;:::i;:::-;;:::i;:::-;;;470:14:89;;463:22;445:41;;433:2;418:18;3443:202:0;;;;;;;;6290:219:49;;;;;;;;;;-1:-1:-1;6290:219:49;;;;;:::i;:::-;;:::i;:::-;;2311:63;;;;;;;;;;-1:-1:-1;2311:63:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1317:25:89;;;1305:2;1290:18;2311:63:49;1171:177:89;2456:63:49;;;;;;;;;;-1:-1:-1;2456:63:49;;;;;:::i;:::-;;;;;;;;;;;;;;10727:222;;;;;;;;;;;;;:::i;13178:86::-;;;;;;;;;;-1:-1:-1;13245:12:49;;13178:86;;4759:191:0;;;;;;;;;;-1:-1:-1;4759:191:0;;;;;:::i;:::-;;:::i;2974:57:49:-;;;;;;;;;;-1:-1:-1;2974:57:49;;;;;:::i;:::-;;;;;;;;;;;;;;1535:50;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1535:50:49;;5246:136:0;;;;;;;;;;-1:-1:-1;5246:136:0;;;;;:::i;:::-;;:::i;1591:66:49:-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1591:66:49;;378:175:53;;;;;;;;;;;;;:::i;6348:245:0:-;;;;;;;;;;-1:-1:-1;6348:245:0;;;;;:::i;:::-;;:::i;5444:710:49:-;;;;;;;;;;-1:-1:-1;5444:710:49;;;;;:::i;:::-;;:::i;3507:404::-;;;;;;;;;;-1:-1:-1;3507:404:49;;;;;:::i;:::-;;:::i;4161:214:4:-;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;12974:198:49:-;;;;;;;;;;;;;:::i;4537:532::-;;;;;;;;;;-1:-1:-1;4537:532:49;;;;;:::i;:::-;;:::i;13270:132::-;;;;;;;;;;-1:-1:-1;13270:132:49;;;;;:::i;:::-;13336:4;13359:18;;;:6;:18;;;;;;13380:15;-1:-1:-1;13359:36:49;13270:132;7589:375;;;;;;;;;;-1:-1:-1;7589:375:49;;;;;:::i;:::-;;:::i;3732:207:0:-;;;;;;;;;;-1:-1:-1;3732:207:0;;;;;:::i;:::-;;:::i;2660:92:49:-;;;;;;;;;;-1:-1:-1;2660:92:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2660:92:49;;;;;;;;;1945:61;;;;;;;;;;-1:-1:-1;1945:61:49;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1945:61:49;;;;;;-1:-1:-1;;;;;3895:32:89;;;3877:51;;3865:2;3850:18;1945:61:49;3731:203:89;2317:49:0;;;;;;;;;;-1:-1:-1;2317:49:0;2362:4;2317:49;;2858:65:49;;;;;;;;;;-1:-1:-1;2858:65:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2858:65:49;;;;;;;;;;;1819:58:4;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:4;;;;;;;;;;;;:::i;12116:430:49:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9550:1171::-;;;;;;;;;;-1:-1:-1;9550:1171:49;;;;;:::i;:::-;;:::i;12762:92::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12667:89::-;;;;;;;;;;-1:-1:-1;12734:8:49;:15;12667:89;;5662:138:0;;;;;;;;;;-1:-1:-1;5662:138:0;;;;;:::i;:::-;;:::i;6643:610:49:-;;;;;;;;;;-1:-1:-1;6643:610:49;;;;;:::i;:::-;;:::i;3443:202:0:-;3528:4;-1:-1:-1;;;;;;3551:47:0;;-1:-1:-1;;;3551:47:0;;:87;;-1:-1:-1;;;;;;;;;;1134:40:8;;;3602:36:0;3544:94;3443:202;-1:-1:-1;;3443:202:0:o;6290:219:49:-;4315:21;;;;:12;:21;;;;;;6379:7;;-1:-1:-1;;;;;4315:21:49;4340:10;4315:35;4311:74;;4359:26;;-1:-1:-1;;;4359:26:49;;4374:10;4359:26;;;3877:51:89;3850:18;;4359:26:49;;;;;;;;4311:74;-1:-1:-1;;;;;6402:29:49;::::1;6398:55;;6440:13;;-1:-1:-1::0;;;6440:13:49::1;;;;;;;;;;;6398:55;-1:-1:-1::0;6463:21:49::1;::::0;;;:12:::1;:21;::::0;;;;;:39;;-1:-1:-1;;;;;;6463:39:49::1;-1:-1:-1::0;;;;;6463:39:49;;::::1;::::0;;;::::1;::::0;;6290:219::o;10727:222::-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;10818:9:49::1;::::0;:66:::1;::::0;-1:-1:-1;;;10818:66:49;;1457:39:69::1;10818:66:49;::::0;::::1;1317:25:89::0;10888:15:49::1;::::0;-1:-1:-1;;;;;10818:9:49::1;::::0;:24:::1;::::0;1290:18:89;;10818:66:49::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10796:19;::::0;:88:::1;::::0;;-1:-1:-1;;;10796:19:49;::::1;-1:-1:-1::0;;;;;10796:19:49::1;:88;:::i;:::-;-1:-1:-1::0;;;;;10796:107:49::1;;10792:151;;10919:13;:11;:13::i;:::-;10727:222:::0;:::o;4759:191:0:-;4824:7;4919:14;;;-1:-1:-1;;;;;;;;;;;4919:14:0;;;;;:24;;;;4759:191::o;5246:136::-;5320:18;5333:4;5320:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5350:25:::1;5361:4;5367:7;5350:10;:25::i;:::-;;5246:136:::0;;;:::o;378:175:53:-;-1:-1:-1;;;;;;;;;;;8325:39:3;-1:-1:-1;;;;;8325:39:3;432:29:53;428:87;;484:20;;-1:-1:-1;;;484:20:53;;;;;;;;;;;428:87;524:22;:20;:22::i;:::-;378:175::o;6348:245:0:-;-1:-1:-1;;;;;6441:34:0;;966:10:7;6441:34:0;6437:102;;6498:30;;-1:-1:-1;;;6498:30:0;;;;;;;;;;;6437:102;6549:37;6561:4;6567:18;6549:11;:37::i;:::-;;6348:245;;:::o;5444:710:49:-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;5521:7:49;5517:50:::1;;5551:16;;-1:-1:-1::0;;;5551:16:49::1;;;;;;;;;;;5517:50;5614:1;5581:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;5581:21:49::1;5577:73;;5625:25;::::0;-1:-1:-1;;;5625:25:49;;::::1;::::0;::::1;1317::89::0;;;1290:18;;5625:25:49::1;1171:177:89::0;5577:73:49::1;5664:25;::::0;;;:16:::1;:25;::::0;;;;;:30;5660:67:::1;;5703:24;::::0;-1:-1:-1;;;5703:24:49;;::::1;::::0;::::1;1317:25:89::0;;;1290:18;;5703:24:49::1;1171:177:89::0;5660:67:49::1;5770:1;5738:21:::0;;;:12:::1;:21;::::0;;;;:34;;-1:-1:-1;;;;;;5738:34:49::1;::::0;;5826:8:::1;:15:::0;-1:-1:-1;;;;;5812:30:49;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;5812:30:49::1;;5783:59;;5852:6;5868::::0;5884:172:::1;5895:8;:15:::0;5891:19;::::1;5884:172;;;5945:7;5930:8;5939:1;5930:11;;;;;;;;:::i;:::-;;;;;;;;;:22;5926:89;;5989:8;5998:1;5989:11;;;;;;;;:::i;:::-;;;;;;;;;5972:9;5982:3;;;;;:::i;:::-;;;5972:14;;;;;;;;:::i;:::-;;;;;;:28;;;::::0;::::1;5926:89;6040:3;;5884:172;;;6088:20:::0;;;6127::::1;:8;:20;::::0;::::1;6106:1:::0;6127:20:::1;:::i;:::-;;5507:647;;;5444:710:::0;;:::o;3507:404::-;-1:-1:-1;;;;;;;;;;;4302:15:3;;-1:-1:-1;;;4302:15:3;;;;4301:16;;-1:-1:-1;;;;;4348:14:3;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:3;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:3;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:3;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:3;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:3;-1:-1:-1;;;5013:22:3;;;4979:67;3603:22:49::1;:20;:22::i;:::-;3635:24;:22;:24::i;:::-;3669:9;:38:::0;;-1:-1:-1;;;;;;3669:38:49::1;-1:-1:-1::0;;;;;3669:38:49;::::1;;::::0;;3718:27:::1;-1:-1:-1::0;;;;;;;;;;;1567:18:49;3718:13:::1;:27::i;:::-;3755:35;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;3755:13:49::1;:35::i;:::-;3800:31;-1:-1:-1::0;;;;;;;;;;;3818:12:49::1;3800:10;:31::i;:::-;;3841:39;-1:-1:-1::0;;;;;;;;;;;3867:12:49::1;3841:10;:39::i;:::-;;3891:13;:11;:13::i;:::-;5070:14:3::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:3;;;5142:14;;-1:-1:-1;7807:50:89;;5142:14:3;;7795:2:89;7780:18;5142:14:3;;;;;;;5066:101;4092:1081;;;;;3507:404:49;;:::o;4161:214:4:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;3708:134::-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:4;:::o;12974:198:49:-;13018:11;13045:6;13041:125;13057:8;:15;13053:19;;13041:125;;;13095:16;:29;13112:8;13121:1;13112:11;;;;;;;;:::i;:::-;;;;;;;;;13095:29;;;;;;;;;;;;13088:36;;;;;:::i;:::-;;-1:-1:-1;13150:3:49;;13041:125;;;;12974:198;:::o;4537:532::-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;4633:7:49;4629:50:::1;;4663:16;;-1:-1:-1::0;;;4663:16:49::1;;;;;;;;;;;4629:50;-1:-1:-1::0;;;;;4693:26:49;::::1;4689:52;;4728:13;;-1:-1:-1::0;;;4728:13:49::1;;;;;;;;;;;4689:52;4788:1;4755:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;4755:21:49::1;:35:::0;4751:74:::1;;4799:26;::::0;-1:-1:-1;;;4799:26:49;;::::1;::::0;::::1;1317:25:89::0;;;1290:18;;4799:26:49::1;1171:177:89::0;4751:74:49::1;4841:6;4836:166;4853:11;:18:::0;4849:22;::::1;4836:166;;;4918:7;4892:11;4904:1;4892:14;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;;:33:::0;4888:72:::1;;4934:26;::::0;-1:-1:-1;;;4934:26:49;;::::1;::::0;::::1;1317:25:89::0;;;1290:18;;4934:26:49::1;1171:177:89::0;4888:72:49::1;4986:3;;4836:166;;;-1:-1:-1::0;;5029:32:49::1;::::0;;;;::::1;::::0;;;;;;-1:-1:-1;;;;;5029:32:49;;::::1;;::::0;::::1;::::0;;;5012:11:::1;:50:::0;;;;::::1;::::0;;-1:-1:-1;5012:50:49;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;;;;;;5012:50:49::1;::::0;;;::::1;::::0;;;::::1;::::0;;4537:532::o;7589:375::-;-1:-1:-1;;;;;7656:28:49;;;;;;;:14;:28;;;;;;;;;4315:21;;;:12;:21;;;;;;;7656:28;;4315:21;4340:10;4315:35;4311:74;;4359:26;;-1:-1:-1;;;4359:26:49;;4374:10;4359:26;;;3877:51:89;3850:18;;4359:26:49;3731:203:89;4311:74:49;7701:6:::1;7696:176;7713:14;:21:::0;7709:25;::::1;7696:176;;;7776:12;-1:-1:-1::0;;;;;7755:33:49::1;:14;7770:1;7755:17;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;7755:17:49::1;:33:::0;7751:79:::1;;7797:33;::::0;-1:-1:-1;;;7797:33:49;;-1:-1:-1;;;;;3895:32:89;;7797:33:49::1;::::0;::::1;3877:51:89::0;3850:18;;7797:33:49::1;3731:203:89::0;7751:79:49::1;7856:3;;7696:176;;;-1:-1:-1::0;7882:14:49::1;:33:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;7882:33:49;;;;;::::1;::::0;;-1:-1:-1;;;;;;7882:33:49::1;-1:-1:-1::0;;;;;7882:33:49;::::1;::::0;;::::1;::::0;;;7931:26:::1;::::0;3877:51:89;;;7931:26:49::1;::::0;3865:2:89;3850:18;7931:26:49::1;;;;;;;;7589:375:::0;;:::o;3732:207:0:-;3809:4;3901:14;;;-1:-1:-1;;;;;;;;;;;3901:14:0;;;;;;;;-1:-1:-1;;;;;3901:31:0;;;;;;;;;;;;;;;3732:207::o;12116:430:49:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12203:336:49;;;;;;;;12239:12;;12203:336;;12292:26;;-1:-1:-1;;;;;12292:26:49;;;12203:336;;;;-1:-1:-1;;;12355:22:49;;;;12203:336;;;;;;;-1:-1:-1;;;12411:19:49;;;;12203:336;;;;-1:-1:-1;;;12464:19:49;;;;12203:336;;;;12513:15;;;;;12203:336;;;;;12116:430::o;9550:1171::-;4109:10;4132:1;4094:26;;;:14;:26;;;;;;4090:74;;4143:21;;-1:-1:-1;;;4143:21:49;;4153:10;4143:21;;;3877:51:89;3850:18;;4143:21:49;3731:203:89;4090:74:49;9713:15:::1;::::0;-1:-1:-1;;;;;9713:15:49;;::::1;9689:39:::0;;::::1;;9730:7;9685:52;9808:15;::::0;-1:-1:-1;;;;;9808:15:49::1;9790;:33;9786:65;;;9832:19;;-1:-1:-1::0;;;9832:19:49::1;;;;;;;;;;;9786:65;9883:48;::::0;-1:-1:-1;;;;;;8191:3:89;8169:16;;;8165:51;9883:48:49::1;::::0;::::1;8153:64:89::0;8233:11;;;8226:27;;;9862:18:49::1;::::0;8269:12:89;;9883:48:49::1;::::0;;-1:-1:-1;;9883:48:49;;::::1;::::0;;;;;;;;-1:-1:-1;9957:10:49::1;::::0;10027:8:::1;::::0;:15:::1;::::0;9883:48;;10027:15:::1;:::i;:::-;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;;;;;10027:22:49;::::1;;::::0;;;;;;;;::::1;;10023:59;;;10058:24;::::0;-1:-1:-1;;;10058:24:49;;-1:-1:-1;;;;;3895:32:89;;10058:24:49::1;::::0;::::1;3877:51:89::0;3850:18;;10058:24:49::1;3731:203:89::0;10023:59:49::1;-1:-1:-1::0;;;;;10165:21:49;::::1;;::::0;;;:14:::1;:21;::::0;;;;;10135:52:::1;::::0;10158:5;;10135:22:::1;:52::i;:::-;10131:65;;;10189:7;;4161:214:4::0;;:::o;10131:65:49:-:1;10206:20;10227:5;10206:27;;;;;;:::i;:::-;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;;;;;10234:21:49;::::1;10206:50;10234:21:::0;;;:14:::1;:21:::0;;;;;;10206:50;;;;;;:52;;;::::1;::::0;::::1;:::i;:::-;;;;;;10293:4;10268:8;10277:5;10268:15;;;;;;:::i;:::-;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;;;;;10268:22:49;::::1;;::::0;;;;;;;:29;;-1:-1:-1;;10268:29:49::1;::::0;::::1;;::::0;;;::::1;::::0;;10312:22:::1;10328:5:::0;10312:15:::1;:22::i;:::-;10308:407;;;10350:12;:22:::0;;;10415::::1;::::0;;-1:-1:-1;;;10415:22:49;;::::1;-1:-1:-1::0;;;;;10415:22:49;;::::1;-1:-1:-1::0;;10451:46:49;;;;;;;;;::::1;;;::::0;;-1:-1:-1;10547:9:49;:65:::1;::::0;-1:-1:-1;;;10547:65:49;;1361:39:69::1;10547:65:49;::::0;::::1;1317:25:89::0;-1:-1:-1;;;;;10547:9:49;;::::1;::::0;:24:::1;::::0;1290:18:89;;10547:65:49::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10529:83;::::0;-1:-1:-1;;;;;10529:83:49::1;:15;:83;:::i;:::-;10511:15;::::0;;;:6:::1;:15;::::0;;;;;;;;:101;;;;10648:19:::1;::::0;10631:46;;-1:-1:-1;;;10648:19:49;;::::1;-1:-1:-1::0;;;;;10648:19:49::1;8756:50:89::0;;8822:18;;;8815:34;;;10631:46:49::1;::::0;8729:18:89;10631:46:49::1;;;;;;;10691:13;:11;:13::i;12762:92::-:0;12804:16;12839:8;12832:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12762:92;:::o;5662:138:0:-;5737:18;5750:4;5737:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5767:26:::1;5779:4;5785:7;5767:11;:26::i;6643:610:49:-:0;4315:21;;;;:12;:21;;;;;;6724:7;;-1:-1:-1;;;;;4315:21:49;4340:10;4315:35;4311:74;;4359:26;;-1:-1:-1;;;4359:26:49;;4374:10;4359:26;;;3877:51:89;3850:18;;4359:26:49;3731:203:89;4311:74:49;-1:-1:-1;;;;;6747:26:49;::::1;6743:52;;6782:13;;-1:-1:-1::0;;;6782:13:49::1;;;;;;;;;;;6743:52;-1:-1:-1::0;;;;;6809:28:49;::::1;6849:1;6809:28:::0;;;:14:::1;:28;::::0;;;;;:42;6805:116:::1;;-1:-1:-1::0;;;;;6878:28:49;::::1;;::::0;;;:14:::1;:28;::::0;;;;;;;6860:61;;-1:-1:-1;;;6860:61:49;;::::1;::::0;::::1;9034:25:89::0;;;;9075:18;;;9068:60;;;;9007:18;;6860:61:49::1;8860:274:89::0;6805:116:49::1;6937:6;6932:205;6949:11;:18:::0;6945:22;::::1;6932:205;;;7019:12;-1:-1:-1::0;;;;;6988:43:49::1;:11;7000:1;6988:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:27:::1;:14;::::0;;::::1;;:27;::::0;-1:-1:-1;;;;;6988:27:49::1;:43:::0;6984:111:::1;;7058:11;7070:1;7058:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:22:::0;7040:55:::1;::::0;-1:-1:-1;;;7040:55:49;;::::1;::::0;::::1;9034:25:89::0;;;;-1:-1:-1;;;;;9095:32:89;;9075:18;;;9068:60;9007:18;;7040:55:49::1;8860:274:89::0;6984:111:49::1;7121:3;;6932:205;;;-1:-1:-1::0;7164:32:49::1;::::0;;;;::::1;::::0;;;;;-1:-1:-1;;;;;7164:32:49;;::::1;;::::0;;::::1;::::0;;;7147:11:::1;:50:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;7147:50:49;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;;;;;;7147:50:49::1;::::0;;;::::1;::::0;;;::::1;::::0;;;7213:33;;9034:25:89;;;9075:18;;;9068:60;7213:33:49::1;::::0;9007:18:89;7213:33:49::1;;;;;;;6643:610:::0;;;:::o;4148:103:0:-;4214:30;4225:4;966:10:7;4214::0;:30::i;11069:958:49:-;11112:6;11129:143;11140:11;:18;11136:22;;11129:143;;;11175:55;11185:11;11197:1;11185:14;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;;11209:11;11221:1;11209:14;;;;;;;;:::i;:::-;;;;;;;;;:20;:14;;;;;:20;;-1:-1:-1;;;;;11209:20:49;11175:9;:55::i;:::-;11256:3;;11129:143;;;11281:18;11288:11;;11281:18;:::i;:::-;-1:-1:-1;11309:8:49;11328:149;11339:11;:18;11335:22;;11328:149;;;11374:62;11384:11;11396:1;11384:14;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;;11408:11;11420:1;11408:14;;;;;;;;:::i;:::-;;;;;;;;;:27;:14;;;;;:27;;-1:-1:-1;;;;;11408:27:49;11374:9;:62::i;:::-;11461:3;;11328:149;;;11486:18;11493:11;;11486:18;:::i;:::-;-1:-1:-1;11514:8:49;11533:122;11544:14;:21;11540:25;;11533:122;;;11582:31;11595:14;11610:1;11595:17;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;11595:17:49;11582:12;:31::i;:::-;11639:3;;11533:122;;;11664:21;11671:14;;11664:21;:::i;:::-;-1:-1:-1;11736:19:49;;;11765:45;;;-1:-1:-1;;;11736:19:49;;;;-1:-1:-1;;;;;11736:19:49;;;-1:-1:-1;;;11714:41:49;-1:-1:-1;;;;;11765:45:49;;;;;11794:15;11765:45;;;;;;;;;;;-1:-1:-1;11841:9:49;;:59;;-1:-1:-1;;;11841:59:49;;1189:33:69;11841:59:49;;;1317:25:89;-1:-1:-1;;;;;;;11841:9:49;;:24;;1290:18:89;;11841:59:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11928:19;;11821:79;;-1:-1:-1;11928:32:49;;11821:79;;-1:-1:-1;;;11928:19:49;;-1:-1:-1;;;;;11928:19:49;:32;:::i;:::-;11910:15;:50;;-1:-1:-1;;11910:50:49;-1:-1:-1;;;;;11910:50:49;;;;;;;;;;11976:44;11998:21;:19;:21::i;:::-;11976:44;;;;;;:::i;7270:387:0:-;7347:4;-1:-1:-1;;;;;;;;;;;7437:22:0;7445:4;7451:7;7437;:22::i;:::-;7432:219;;7475:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7475:31:0;;;;;;;;;:38;;-1:-1:-1;;7475:38:0;7509:4;7475:38;;;7559:12;966:10:7;;887:96;7559:12:0;-1:-1:-1;;;;;7532:40:0;7550:7;-1:-1:-1;;;;;7532:40:0;7544:4;7532:40;;;;;;;;;;7593:4;7586:11;;;;;7432:219;7635:5;7628:12;;;;;7711:422:3;-1:-1:-1;;;;;;;;;;;7900:15:3;;-1:-1:-1;;;7900:15:3;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:3;;;;;;;;;;;7896:76;7985:14;;-1:-1:-1;;;;;7985:14:3;;;:34;7981:146;;8035:33;;-1:-1:-1;;8035:33:3;-1:-1:-1;;;;;8035:33:3;;;;;8087:29;;7807:50:89;;;8087:29:3;;7795:2:89;7780:18;8087:29:3;;;;;;;7760:373;7711:422::o;7892:388:0:-;7970:4;-1:-1:-1;;;;;;;;;;;8059:22:0;8067:4;8073:7;8059;:22::i;:::-;8055:219;;;8131:5;8097:14;;;;;;;;;;;-1:-1:-1;;;;;8097:31:0;;;;;;;;;;:39;;-1:-1:-1;;8097:39:0;;;8155:40;966:10:7;;8097:14:0;;8155:40;;8131:5;8155:40;8216:4;8209:11;;;;;3231:65;6931:20:3;:18;:20::i;6718:318:0:-;-1:-1:-1;;;;;;;;;;;6801:30:0;6898:18;6911:4;6898:12;:18::i;:::-;6926:8;:14;;;;;;;;;;;:24;;:36;;;6977:52;6870:46;;-1:-1:-1;6953:9:0;;6870:46;;6935:4;;6977:52;;6926:8;6977:52;6791:245;;6718:318;;:::o;4603:312:4:-;4683:4;-1:-1:-1;;;;;4692:6:4;4675:23;;;:120;;;4789:6;-1:-1:-1;;;;;4753:42:4;:32;-1:-1:-1;;;;;;;;;;;1519:53:17;-1:-1:-1;;;;;1519:53:17;;1441:138;4753:32:4;-1:-1:-1;;;;;4753:42:4;;;4675:120;4658:251;;;4869:29;;-1:-1:-1;;;4869:29:4;;;;;;;;;;;3917:72:49;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;6057:538:4:-;6174:17;-1:-1:-1;;;;;6156:50:4;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6156:52:4;;;;;;;;-1:-1:-1;;6156:52:4;;;;;;;;;;;;:::i;:::-;;;6152:437;;6518:60;;-1:-1:-1;;;6518:60:4;;-1:-1:-1;;;;;3895:32:89;;6518:60:4;;;3877:51:89;3850:18;;6518:60:4;3731:203:89;6152:437:4;-1:-1:-1;;;;;;;;;;;6250:40:4;;6246:120;;6317:34;;-1:-1:-1;;;6317:34:4;;;;;1317:25:89;;;1290:18;;6317:34:4;1171:177:89;6246:120:4;6379:54;6409:17;6428:4;6379:29;:54::i;5032:213::-;5106:4;-1:-1:-1;;;;;5115:6:4;5098:23;;5094:145;;5199:29;;-1:-1:-1;;;5199:29:4;;;;;;;;;;;8245:490:49;8337:4;8357:25;;;:16;:25;;;;;;:30;;8353:48;;-1:-1:-1;8396:5:49;8389:12;;8353:48;8412:19;8513:25;;;:16;:25;;;;;;;8434:9;;:76;;-1:-1:-1;;;8434:76:49;;1091:48:69;8434:76:49;;;1317:25:89;8513::49;;-1:-1:-1;;;;;8434:9:49;;:24;;1290:18:89;;8434:76:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8434:104:49;;;;;:::i;:::-;8412:126;;8626:14;130:4:69;8552:20:49;8573:5;8552:27;;;;;;:::i;:::-;;;;;;;;;;;;;:36;8580:7;8552:36;;;;;;;;;;;;:70;;;;:::i;:::-;:88;8548:181;;8663:4;8656:11;;;;;8741:625;8962:8;:15;8809:4;8885:9;;:74;;-1:-1:-1;;;8885:74:49;;977:47:69;8885:74:49;;;1317:25:89;8809:4:49;;;;;;-1:-1:-1;;;;;8885:9:49;;:24;;1290:18:89;;8885:74:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8885:92:49;;;;;:::i;:::-;8863:114;;8993:6;8988:350;9005:8;:15;9001:19;;8988:350;;;9108:42;9131:5;9138:8;9147:1;9138:11;;;;;;;;:::i;:::-;;;;;;;;;9108:22;:42::i;:::-;:50;;9157:1;9108:50;;;9153:1;9108:50;9081:77;;;;;;:::i;:::-;;-1:-1:-1;9237:14:49;9176:57;130:4:69;9081:77:49;9176:57;:::i;:::-;:75;9172:125;;-1:-1:-1;9278:4:49;;8741:625;-1:-1:-1;;;;8741:625:49:o;9172:125::-;9322:3;;8988:350;;;-1:-1:-1;9354:5:49;;8741:625;-1:-1:-1;;;;8741:625:49:o;4381:197:0:-;4469:22;4477:4;4483:7;4469;:22::i;:::-;4464:108;;4514:47;;-1:-1:-1;;;4514:47:0;;-1:-1:-1;;;;;9898:32:89;;4514:47:0;;;9880:51:89;9947:18;;;9940:34;;;9853:18;;4514:47:0;9706:274:89;5075:209:49;5189:1;5156:21;;;:12;:21;;;;;;-1:-1:-1;;;;;5156:21:49;:35;5152:48;;5075:209;;:::o;5152:48::-;5209:21;;;;:12;:21;;;;;:36;;-1:-1:-1;;;;;;5209:36:49;-1:-1:-1;;;;;5209:36:49;;;;;;;;;;;5255:8;:22;;-1:-1:-1;5255:22:49;;;;;;;;;5075:209::o;7259:223::-;-1:-1:-1;;;;;7340:28:49;;7380:1;7340:28;;;:14;:28;;;;;;:42;7336:55;;7259:223;;:::o;7336:55::-;-1:-1:-1;;;;;7400:28:49;;;;;;:14;:28;;;;;;;;:38;;;7448:25;;;:16;:25;;;;;:27;;;;;;:::i;:::-;;;;;;7259:223;;:::o;7970:269::-;-1:-1:-1;;;;;8037:28:49;;8077:1;8037:28;;;:14;:28;;;;;;8033:55;;7970:269;:::o;8033:55::-;-1:-1:-1;;;;;8116:28:49;;8098:15;8116:28;;;:14;:28;;;;;;;;;;8154:41;;;;8205:25;;;:16;:25;;;;;:27;;8116:28;;8205:27;;;:::i;7084:141:3:-;-1:-1:-1;;;;;;;;;;;8560:40:3;-1:-1:-1;;;8560:40:3;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:3;;;;;;;;;;;2264:344:17;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:17;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;1671:281::-;1748:17;-1:-1:-1;;;;;1748:29:17;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:17;;-1:-1:-1;;;;;3895:32:89;;1805:47:17;;;3877:51:89;3850:18;;1805:47:17;3731:203:89;1744:119:17;-1:-1:-1;;;;;;;;;;;1872:73:17;;-1:-1:-1;;;;;;1872:73:17;-1:-1:-1;;;;;1872:73:17;;;;;;;;;;1671:281::o;3900:253:32:-;3983:12;4008;4022:23;4049:6;-1:-1:-1;;;;;4049:19:32;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;3900:253;-1:-1:-1;;;;;3900:253:32:o;6113:122:17:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:17;;;;;;;;;;;4421:582:32;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4841:17;;:22;:49;;;;-1:-1:-1;;;;;;4867:18:32;;;:23;4841:49;4837:119;;;4917:24;;-1:-1:-1;;;4917:24:32;;-1:-1:-1;;;;;3895:32:89;;4917:24:32;;;3877:51:89;3850:18;;4917:24:32;3731:203:89;4837:119:32;-1:-1:-1;4976:10:32;4589:408;4421:582;;;;;:::o;5543:487::-;5674:17;;:21;5670:354;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;-1:-1:-1;;;5994:19:32;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:286:89;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:89;;209:43;;199:71;;266:1;263;256:12;497:173;565:20;;-1:-1:-1;;;;;614:31:89;;604:42;;594:70;;660:1;657;650:12;594:70;497:173;;;:::o;675:300::-;743:6;751;804:2;792:9;783:7;779:23;775:32;772:52;;;820:1;817;810:12;772:52;865:23;;;-1:-1:-1;931:38:89;965:2;950:18;;931:38;:::i;:::-;921:48;;675:300;;;;;:::o;980:186::-;1039:6;1092:2;1080:9;1071:7;1067:23;1063:32;1060:52;;;1108:1;1105;1098:12;1060:52;1131:29;1150:9;1131:29;:::i;1353:226::-;1412:6;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;-1:-1:-1;1526:23:89;;1353:226;-1:-1:-1;1353:226:89:o;1766:260::-;1834:6;1842;1895:2;1883:9;1874:7;1870:23;1866:32;1863:52;;;1911:1;1908;1901:12;1863:52;1934:29;1953:9;1934:29;:::i;:::-;1924:39;;1982:38;2016:2;2005:9;2001:18;1982:38;:::i;2031:127::-;2092:10;2087:3;2083:20;2080:1;2073:31;2123:4;2120:1;2113:15;2147:4;2144:1;2137:15;2163:725;2205:5;2258:3;2251:4;2243:6;2239:17;2235:27;2225:55;;2276:1;2273;2266:12;2225:55;2316:6;2303:20;-1:-1:-1;;;;;2338:6:89;2335:30;2332:56;;;2368:18;;:::i;:::-;2417:2;2411:9;2509:2;2471:17;;-1:-1:-1;;2467:31:89;;;2500:2;2463:40;2459:54;2447:67;;-1:-1:-1;;;;;2529:34:89;;2565:22;;;2526:62;2523:88;;;2591:18;;:::i;:::-;2627:2;2620:22;2651;;;2692:19;;;2713:4;2688:30;2685:39;-1:-1:-1;2682:59:89;;;2737:1;2734;2727:12;2682:59;2801:6;2794:4;2786:6;2782:17;2775:4;2767:6;2763:17;2750:58;2856:1;2828:19;;;2849:4;2824:30;2817:41;;;;2832:6;2163:725;-1:-1:-1;;;2163:725:89:o;2893:394::-;2970:6;2978;3031:2;3019:9;3010:7;3006:23;3002:32;2999:52;;;3047:1;3044;3037:12;2999:52;3070:29;3089:9;3070:29;:::i;:::-;3060:39;;3150:2;3139:9;3135:18;3122:32;-1:-1:-1;;;;;3169:6:89;3166:30;3163:50;;;3209:1;3206;3199:12;3163:50;3232:49;3273:7;3264:6;3253:9;3249:22;3232:49;:::i;:::-;3222:59;;;2893:394;;;;;:::o;3292:434::-;3369:6;3377;3430:2;3418:9;3409:7;3405:23;3401:32;3398:52;;;3446:1;3443;3436:12;3398:52;3486:9;3473:23;-1:-1:-1;;;;;3511:6:89;3508:30;3505:50;;;3551:1;3548;3541:12;3505:50;3574:49;3615:7;3606:6;3595:9;3591:22;3574:49;:::i;:::-;3564:59;3692:2;3677:18;;;;3664:32;;-1:-1:-1;;;;3292:434:89:o;3939:394::-;4016:6;4024;4077:2;4065:9;4056:7;4052:23;4048:32;4045:52;;;4093:1;4090;4083:12;4045:52;4133:9;4120:23;-1:-1:-1;;;;;4158:6:89;4155:30;4152:50;;;4198:1;4195;4188:12;4152:50;4221:49;4262:7;4253:6;4242:9;4238:22;4221:49;:::i;:::-;4211:59;;;4289:38;4323:2;4312:9;4308:18;4289:38;:::i;4338:250::-;4423:1;4433:113;4447:6;4444:1;4441:13;4433:113;;;4523:11;;;4517:18;4504:11;;;4497:39;4469:2;4462:10;4433:113;;;-1:-1:-1;;4580:1:89;4562:16;;4555:27;4338:250::o;4593:396::-;4742:2;4731:9;4724:21;4705:4;4774:6;4768:13;4817:6;4812:2;4801:9;4797:18;4790:34;4833:79;4905:6;4900:2;4889:9;4885:18;4880:2;4872:6;4868:15;4833:79;:::i;:::-;4973:2;4952:15;-1:-1:-1;;4948:29:89;4933:45;;;;4980:2;4929:54;;4593:396;-1:-1:-1;;4593:396:89:o;4994:681::-;5142:4;5184:3;5173:9;5169:19;5161:27;;5221:6;5215:13;5204:9;5197:32;-1:-1:-1;;;;;5289:4:89;5281:6;5277:17;5271:24;5267:49;5260:4;5249:9;5245:20;5238:79;-1:-1:-1;;;;;5377:4:89;5369:6;5365:17;5359:24;5355:49;5348:4;5337:9;5333:20;5326:79;-1:-1:-1;;;;;5465:4:89;5457:6;5453:17;5447:24;5443:49;5436:4;5425:9;5421:20;5414:79;-1:-1:-1;;;;;5553:4:89;5545:6;5541:17;5535:24;5531:49;5524:4;5513:9;5509:20;5502:79;-1:-1:-1;;;;;5641:4:89;5633:6;5629:17;5623:24;5619:49;5612:4;5601:9;5597:20;5590:79;4994:681;;;;:::o;5680:129::-;-1:-1:-1;;;;;5758:5:89;5754:30;5747:5;5744:41;5734:69;;5799:1;5796;5789:12;5814:365;5881:6;5889;5942:2;5930:9;5921:7;5917:23;5913:32;5910:52;;;5958:1;5955;5948:12;5910:52;5997:9;5984:23;6016:30;6040:5;6016:30;:::i;:::-;6065:5;6143:2;6128:18;;;;6115:32;;-1:-1:-1;;;5814:365:89:o;6184:611::-;6374:2;6386:21;;;6456:13;;6359:18;;;6478:22;;;6326:4;;6557:15;;;6531:2;6516:18;;;6326:4;6600:169;6614:6;6611:1;6608:13;6600:169;;;6675:13;;6663:26;;6718:2;6744:15;;;;6709:12;;;;6636:1;6629:9;6600:169;;;-1:-1:-1;6786:3:89;;6184:611;-1:-1:-1;;;;;6184:611:89:o;6800:249::-;6869:6;6922:2;6910:9;6901:7;6897:23;6893:32;6890:52;;;6938:1;6935;6928:12;6890:52;6970:9;6964:16;6989:30;7013:5;6989:30;:::i;7054:127::-;7115:10;7110:3;7106:20;7103:1;7096:31;7146:4;7143:1;7136:15;7170:4;7167:1;7160:15;7186:191;-1:-1:-1;;;;;7254:26:89;;;7282;;;7250:59;;7321:27;;7318:53;;;7351:18;;:::i;7382:127::-;7443:10;7438:3;7434:20;7431:1;7424:31;7474:4;7471:1;7464:15;7498:4;7495:1;7488:15;7514:135;7553:3;7574:17;;;7571:43;;7594:18;;:::i;:::-;-1:-1:-1;7641:1:89;7630:13;;7514:135::o;7868:125::-;7933:9;;;7954:10;;;7951:36;;;7967:18;;:::i;8292:287::-;8421:3;8459:6;8453:13;8475:66;8534:6;8529:3;8522:4;8514:6;8510:17;8475:66;:::i;:::-;8557:16;;;;;8292:287;-1:-1:-1;;8292:287:89:o;9344:184::-;9414:6;9467:2;9455:9;9446:7;9442:23;9438:32;9435:52;;;9483:1;9480;9473:12;9435:52;-1:-1:-1;9506:16:89;;9344:184;-1:-1:-1;9344:184:89:o;9533:168::-;9606:9;;;9637;;9654:15;;;9648:22;;9634:37;9624:71;;9675:18;;:::i;9985:136::-;10024:3;10052:5;10042:39;;10061:18;;:::i;:::-;-1:-1:-1;;;10097:18:89;;9985:136::o"},"methodIdentifiers":{"ADMIN()":"2a0acc6a","DEFAULT_ADMIN_ROLE()":"a217fddf","EPOCH_MANAGER()":"304895f1","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","_roots(bytes32)":"26678e5d","addGroup(bytes32,address)":"65d8dd34","addVoter(bytes32,address)":"ef65792d","checkMerkleRoot(bytes32)":"814964f0","consensusVotesNumber(bytes,bytes32)":"9af37ad3","disableInitializers()":"31f44900","forceEpoch()":"1cc4ca7b","getCurrentEpochInfo()":"babc394f","getGroups()":"c72b5176","getRoleAdmin(bytes32)":"248a9ca3","getValue()":"20965255","grantRole(bytes32,address)":"2f2ff15d","groupsAdmins(bytes32)":"9e031bec","hasRole(bytes32,address)":"91d14854","hasVoted(bytes,address)":"a278881c","inGroupVotersNum(bytes32)":"14770466","initialize(address,address)":"485cc955","proxiableUUID()":"52d1902d","removeGroup(bytes32)":"43273213","removeVoter(address)":"86c1ff68","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setGroupAdmin(bytes32,address)":"04fab6e1","supportsInterface(bytes4)":"01ffc9a7","totalGroups()":"c75f2893","totalVoters()":"5f5300ff","upgradeToAndCall(address,bytes)":"4f1ef286","vote(uint64,bytes32)":"c6116345","voterToGroupId(address)":"0a514cf2"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"}],\"name\":\"GroupAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"}],\"name\":\"GroupDoesntExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"}],\"name\":\"GroupIsNotEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidGroupId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"OnlyGroupAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"OnlyVoter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"VoterAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"VoterAlreadyRemoved\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"VoterAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VotingIsNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"prevMessageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"currEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextVotingTime\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct EpochInfo\",\"name\":\"epochInfo\",\"type\":\"tuple\"}],\"name\":\"ConsensusEpochStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"currEpochStartTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"ConsensusReached\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"}],\"name\":\"GroupAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voterAddress\",\"type\":\"address\"}],\"name\":\"VoterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voterAddress\",\"type\":\"address\"}],\"name\":\"VoterRemoved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EPOCH_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"_roots\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validUntil\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"adminAddress\",\"type\":\"address\"}],\"name\":\"addGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"voterAddress\",\"type\":\"address\"}],\"name\":\"addVoter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"checkMerkleRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"}],\"name\":\"consensusVotesNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"forceEpoch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentEpochInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"prevMessageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"currEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextVotingTime\",\"type\":\"uint64\"}],\"internalType\":\"struct EpochInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGroups\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"}],\"name\":\"groupsAdmins\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"}],\"name\":\"inGroupVotersNum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adminAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"settingsAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"}],\"name\":\"removeGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voterAddress\",\"type\":\"address\"}],\"name\":\"removeVoter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newAdminAddress\",\"type\":\"address\"}],\"name\":\"setGroupAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalGroups\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalVoters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"newRoot\",\"type\":\"bytes32\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"voterToGroupId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"addGroup(bytes32,address)\":{\"details\":\"Add new voter's group\",\"params\":{\"adminAddress\":\"group admin address\",\"groupId\":\"group id\"}},\"addVoter(bytes32,address)\":{\"details\":\"Adds a new voter.\",\"params\":{\"groupId\":\"voter group id\",\"voterAddress\":\"voter evm address\"}},\"checkMerkleRoot(bytes32)\":{\"details\":\"Checks if merkle root is valid.\",\"params\":{\"merkleRoot\":\"Merkle root.\"},\"returns\":{\"_0\":\"bool True if merkle root is valid, false otherwise.\"}},\"getCurrentEpochInfo()\":{\"details\":\"Returns current epoch info.\",\"returns\":{\"_0\":\"Epoch info.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getValue()\":{\"details\":\"Gets the current (last selected) value.\",\"returns\":{\"_0\":\"bytes32 Current (last selected) value.\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address,address)\":{\"details\":\"Initializer function to initialize the contract with initial state.\",\"params\":{\"adminAddress\":\"Admin address.\",\"settingsAddress\":\"Settings contract address.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"removeGroup(bytes32)\":{\"details\":\"removing of existing group remove only if group is empty (no voters in group)\",\"params\":{\"groupId\":\"group id to remove\"}},\"removeVoter(address)\":{\"details\":\"Remove voter.\",\"params\":{\"voterAddress\":\"Address of the voter to remove.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setGroupAdmin(bytes32,address)\":{\"params\":{\"groupId\":\"group id\",\"newAdminAddress\":\"new admin address\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalGroups()\":{\"details\":\"Gets total number of active gropus.\",\"returns\":{\"_0\":\"uint Total number of active groups.\"}},\"totalVoters()\":{\"details\":\"Gets total number of active voters.\",\"returns\":{\"num\":\"Total number of active voters.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"vote(uint64,bytes32)\":{\"details\":\"Vote for a new root value.\",\"params\":{\"messageCollectEndTime\":\"Message collect end time for current vote.\",\"newRoot\":\"New root to vote for.\"}}},\"stateVariables\":{\"_settings\":{\"details\":\"contract with protocol settings\"},\"consensusVotesNumber\":{\"details\":\"EVM consensus votes number for each groupvalue = abi.encodePacked(evmEpochNum,evmMerkleRoot);\"},\"groupIds\":{\"details\":\"array, contains each group id\"},\"groupsAdmins\":{\"details\":\"map with group's admin addresses\"},\"hasVoted\":{\"details\":\"EVM and TVM consensus voters wich has already voted for specified value\"},\"inGroupVotersNum\":{\"details\":\"mapping of total number of voters on each group\"},\"voterToGroupId\":{\"details\":\"mapping of voter's group id\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setGroupAdmin(bytes32,address)\":{\"notice\":\"Set new group admin address\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Consensus.sol\":\"Consensus\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"contracts/core/Consensus.sol\":{\"keccak256\":\"0xb818c0a8f5073bc9379a9a64dca7542e183c3e40611dacc5075265bd63df6205\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65817bbc273c9b76c6b12583e0c782fd9f0be4bc3de7330e09248915f8631cec\",\"dweb:/ipfs/QmVPDwYqnzUn6WVwbsa2xaLvAwDtBMjMKG2bRdZWgowQ74\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/TacInitializable.sol\":{\"keccak256\":\"0x1a60834ac4652782e16392d639235d96e1675970c507b8b6d2db9c8644b50941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ab364d4d3e4ea4d477132e98eeac8142d54d208440c7a73fd78138990fc2db5\",\"dweb:/ipfs/QmfRaaiGh4xFE2aDVHQiB57fE2rmu6c6m6vdHGXqKay62C\"]},\"contracts/interfaces/IConsensus.sol\":{\"keccak256\":\"0x4eca288e0f5adbb4014dffa67f4e22826ec2de858c574f7588d9cd88ceda3e65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a839f1bfeaa8518b6850e79bd524b571d642b325d5b27c78a8bb8d83295ee491\",\"dweb:/ipfs/QmcpFf8DhoNZ5sxfF4A4rsRnG5BmqYg2bPgey5g56iUUNp\"]},\"contracts/interfaces/ISettings.sol\":{\"keccak256\":\"0x046f20ecb6bf3a96d87c04715fe0206003b4adc89d42a6f4ce42ddf8d0f798fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec9b5ae056914ee154fd32057c3f76d5baad103741844da950fad1eeae5735e9\",\"dweb:/ipfs/QmPC85c95Q61mWS8BHcCn5JL3N7dgHbLLD6F8zUYSDZQop\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/libs/SettingsConstants.sol\":{\"keccak256\":\"0x43d823f76c580dd90dd0ab04455088a61c2126a4d9e4bac290e4481c54252b21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cec8f837e82e4c8766bb081d9b17e2664c533d72e72a76f6d4d23a594a63bdd3\",\"dweb:/ipfs/QmStGaGDxmHA5JtWQKpy9f84gYHGaT7qhv4ExnkoocSMJC\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":12380,"contract":"contracts/core/Consensus.sol:Consensus","label":"_settings","offset":0,"slot":"0","type":"t_contract(ISettings)17536"},{"astId":12389,"contract":"contracts/core/Consensus.sol:Consensus","label":"groupsToAdd","offset":0,"slot":"1","type":"t_array(t_struct(GroupInfo)12385_storage)dyn_storage"},{"astId":12394,"contract":"contracts/core/Consensus.sol:Consensus","label":"groupsAdmins","offset":0,"slot":"2","type":"t_mapping(t_bytes32,t_address)"},{"astId":12398,"contract":"contracts/core/Consensus.sol:Consensus","label":"groupIds","offset":0,"slot":"3","type":"t_array(t_bytes32)dyn_storage"},{"astId":12407,"contract":"contracts/core/Consensus.sol:Consensus","label":"votersToAdd","offset":0,"slot":"4","type":"t_array(t_struct(VoterInfo)12403_storage)dyn_storage"},{"astId":12410,"contract":"contracts/core/Consensus.sol:Consensus","label":"votersToRemove","offset":0,"slot":"5","type":"t_array(t_address)dyn_storage"},{"astId":12415,"contract":"contracts/core/Consensus.sol:Consensus","label":"voterToGroupId","offset":0,"slot":"6","type":"t_mapping(t_address,t_bytes32)"},{"astId":12420,"contract":"contracts/core/Consensus.sol:Consensus","label":"inGroupVotersNum","offset":0,"slot":"7","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":12427,"contract":"contracts/core/Consensus.sol:Consensus","label":"consensusVotesNumber","offset":0,"slot":"8","type":"t_mapping(t_bytes_memory_ptr,t_mapping(t_bytes32,t_uint256))"},{"astId":12434,"contract":"contracts/core/Consensus.sol:Consensus","label":"hasVoted","offset":0,"slot":"9","type":"t_mapping(t_bytes_memory_ptr,t_mapping(t_address,t_bool))"},{"astId":12438,"contract":"contracts/core/Consensus.sol:Consensus","label":"_roots","offset":0,"slot":"10","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":12440,"contract":"contracts/core/Consensus.sol:Consensus","label":"_currentRoot","offset":0,"slot":"11","type":"t_bytes32"},{"astId":12442,"contract":"contracts/core/Consensus.sol:Consensus","label":"_prevMessageCollectEndTime","offset":0,"slot":"12","type":"t_uint64"},{"astId":12444,"contract":"contracts/core/Consensus.sol:Consensus","label":"_messageCollectEndTime","offset":8,"slot":"12","type":"t_uint64"},{"astId":12446,"contract":"contracts/core/Consensus.sol:Consensus","label":"_prevEpochStartTime","offset":16,"slot":"12","type":"t_uint64"},{"astId":12448,"contract":"contracts/core/Consensus.sol:Consensus","label":"_currEpochStartTime","offset":24,"slot":"12","type":"t_uint64"},{"astId":12450,"contract":"contracts/core/Consensus.sol:Consensus","label":"_nextVotingTime","offset":0,"slot":"13","type":"t_uint64"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"base":"t_address","encoding":"dynamic_array","label":"address[]","numberOfBytes":"32"},"t_array(t_bytes32)dyn_storage":{"base":"t_bytes32","encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32"},"t_array(t_struct(GroupInfo)12385_storage)dyn_storage":{"base":"t_struct(GroupInfo)12385_storage","encoding":"dynamic_array","label":"struct Consensus.GroupInfo[]","numberOfBytes":"32"},"t_array(t_struct(VoterInfo)12403_storage)dyn_storage":{"base":"t_struct(VoterInfo)12403_storage","encoding":"dynamic_array","label":"struct Consensus.VoterInfo[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(ISettings)17536":{"encoding":"inplace","label":"contract ISettings","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_bytes32)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(GroupInfo)12385_storage":{"encoding":"inplace","label":"struct Consensus.GroupInfo","members":[{"astId":12382,"contract":"contracts/core/Consensus.sol:Consensus","label":"groupId","offset":0,"slot":"0","type":"t_bytes32"},{"astId":12384,"contract":"contracts/core/Consensus.sol:Consensus","label":"admin","offset":0,"slot":"1","type":"t_address"}],"numberOfBytes":"64"},"t_struct(VoterInfo)12403_storage":{"encoding":"inplace","label":"struct Consensus.VoterInfo","members":[{"astId":12400,"contract":"contracts/core/Consensus.sol:Consensus","label":"groupId","offset":0,"slot":"0","type":"t_bytes32"},{"astId":12402,"contract":"contracts/core/Consensus.sol:Consensus","label":"voterAddress","offset":0,"slot":"1","type":"t_address"}],"numberOfBytes":"64"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"contracts/core/CrossChainLayer.sol":{"CrossChainLayer":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"AppLayerCallError","type":"error"},{"inputs":[],"name":"AppLayerUnexpectedError","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BridgeAmountToBig","type":"error"},{"inputs":[{"internalType":"uint256","name":"locked","type":"uint256"},{"internalType":"uint256","name":"toUnlock","type":"uint256"}],"name":"CantUnlockNative","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"origin","type":"address"}],"name":"ExecutorIsNotValid","type":"error"},{"inputs":[],"name":"ExtraDataIsNotSupported","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"attached","type":"uint256"}],"name":"InsufficientFeeAmount","type":"error"},{"inputs":[{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"attached","type":"uint256"}],"name":"InsufficientNativeAttached","type":"error"},{"inputs":[{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"name":"InsufficientProtocolFeeBalance","type":"error"},{"inputs":[{"internalType":"uint256","name":"version","type":"uint256"}],"name":"InvalidInMessageVersion","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidMerkleProof","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"InvalidNFTInterface","type":"error"},{"inputs":[{"internalType":"uint256","name":"version","type":"uint256"}],"name":"InvalidOutMessageVersion","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"version","type":"uint256"}],"name":"InvalidProxyVersion","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"version","type":"uint256"}],"name":"InvalidProxyVersion","type":"error"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"MessageAlreadyProcessed","type":"error"},{"inputs":[{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"NativeFeeTransferError","type":"error"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"NativeTrasferError","type":"error"},{"inputs":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint256","name":"gasLeft","type":"uint256"}],"name":"NotEnoughGas","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"OnlySelfCall","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"ProxyCallError","type":"error"},{"inputs":[],"name":"RecursiveMessageProcessing","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"SimulationFailedError","type":"error"},{"inputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"result","type":"bytes"}],"name":"SimulationFinished","type":"error"},{"inputs":[],"name":"SimulationIsNotInProgress","type":"error"},{"inputs":[],"name":"SimulationRecursiveCall","type":"error"},{"inputs":[],"name":"SimulationUnexpectedError","type":"error"},{"inputs":[],"name":"SimulationUnexpectedSuccess","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"TargetIsNotTacProxy","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"TargetIsNotTacProxy","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"TokenNotExist","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"inputs":[],"name":"ZeroFeeSetting","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"operationId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"AppLayerCallErrorEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"operationId","type":"bytes32"}],"name":"InMessageProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"shardsKey","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"operationId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"callerAddress","type":"address"},{"indexed":false,"internalType":"string","name":"targetAddress","type":"string"},{"indexed":false,"internalType":"string","name":"payload","type":"string"},{"indexed":false,"internalType":"uint256","name":"protocolFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"executorFee","type":"uint256"},{"indexed":false,"internalType":"string[]","name":"tvmValidExecutors","type":"string[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false,"internalType":"struct TokenAmount[]","name":"tokensBurned","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false,"internalType":"struct TokenAmount[]","name":"tokensLocked","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false,"internalType":"struct NFTAmount[]","name":"nftsBurned","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false,"internalType":"struct NFTAmount[]","name":"nftsLocked","type":"tuple[]"}],"name":"OutMessageProcessed","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":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"address","name":"callerAddress","type":"address"},{"internalType":"string","name":"targetAddress","type":"string"},{"internalType":"string","name":"payload","type":"string"},{"internalType":"uint256","name":"protocolFee","type":"uint256"},{"internalType":"uint256","name":"executorFee","type":"uint256"},{"internalType":"string[]","name":"tvmValidExecutors","type":"string[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"tokensBurned","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"tokensLocked","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"nftsBurned","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"nftsLocked","type":"tuple[]"}],"indexed":false,"internalType":"struct CrossChainLayer.OutMessageProcessedEventStruct[]","name":"outMessages","type":"tuple[]"}],"name":"SimulationSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"NATIVE_TOKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"string","name":"methodName","type":"string"},{"internalType":"bytes","name":"arguments","type":"bytes"},{"internalType":"string","name":"caller","type":"string"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount","name":"evmExecutorFee","type":"tuple"},{"internalType":"address[]","name":"evmValidExecutors","type":"address[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"mint","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"unlock","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo[]","name":"meta","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"mintNFT","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"unlockNFT","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo[]","name":"metaNFT","type":"tuple[]"}],"internalType":"struct VersionLib.UnionInMessage","name":"message","type":"tuple"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"name":"appLayerContext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCollectedProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"getInMessageState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"},{"internalType":"address","name":"consensusAddress","type":"address"}],"name":"initialize","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":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageVersion","type":"uint256"},{"internalType":"bytes","name":"encodedMessage","type":"bytes"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"address","name":"feeReceiver","type":"address"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"name":"receiveMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageVersion","type":"uint256"},{"internalType":"bytes","name":"encodedMessage","type":"bytes"}],"name":"sendMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenUtils","type":"address"}],"name":"setTokenUtils","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"string","name":"methodName","type":"string"},{"internalType":"bytes","name":"arguments","type":"bytes"},{"internalType":"string","name":"caller","type":"string"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount","name":"evmExecutorFee","type":"tuple"},{"internalType":"address[]","name":"evmValidExecutors","type":"address[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"mint","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"unlock","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo[]","name":"meta","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"mintNFT","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"unlockNFT","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo[]","name":"metaNFT","type":"tuple[]"}],"internalType":"struct VersionLib.UnionInMessage","name":"message","type":"tuple"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"name":"simulateAppLayerContext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageVersion","type":"uint256"},{"internalType":"bytes","name":"encodedMessage","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"bool","name":"withMessages","type":"bool"}],"name":"simulateReceiveMessage","outputs":[{"internalType":"bool","name":"simulationStatus","type":"bool"},{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"address","name":"callerAddress","type":"address"},{"internalType":"string","name":"targetAddress","type":"string"},{"internalType":"string","name":"payload","type":"string"},{"internalType":"uint256","name":"protocolFee","type":"uint256"},{"internalType":"uint256","name":"executorFee","type":"uint256"},{"internalType":"string[]","name":"tvmValidExecutors","type":"string[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"tokensBurned","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"tokensLocked","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"nftsBurned","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"nftsLocked","type":"tuple[]"}],"internalType":"struct CrossChainLayer.OutMessageProcessedEventStruct[]","name":"outMessages","type":"tuple[]"},{"internalType":"bytes","name":"errorReason","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a060405230608052348015601357600080fd5b50608051615dee61003d60003960008181611b9b01528181611bc40152611d050152615dee6000f3fe6080604052600436106101355760003560e01c80638421adc8116100ab578063ad3cb1cc1161006f578063ad3cb1cc1461034b578063b42156bd14610389578063df2ebdbb1461039e578063e289adcd146103c6578063e30c3978146103d9578063f2fde38b146103ee57600080fd5b80638421adc8146102a95780638da5cb5b146102c95780639856869d146102f6578063a5a4103114610316578063abe13ef71461032b57600080fd5b80634f1ef286116100fd5780634f1ef286146101e957806352d1902d146101fc5780635a1789311461021f578063715018a61461025f578063787dce3d1461027457806379ba50971461029457600080fd5b80630efbc1811461013a5780633029a8811461017257806331f4490014610194578063485cc955146101a95780634d3a2a8c146101c9575b600080fd5b34801561014657600080fd5b5061015a6101553660046135c3565b61040e565b60405161016993929190613935565b60405180910390f35b34801561017e57600080fd5b5061019261018d36600461396c565b61070d565b005b3480156101a057600080fd5b506101926108e1565b3480156101b557600080fd5b506101926101c43660046139fe565b610921565b3480156101d557600080fd5b506101926101e4366004613a37565b610a41565b6101926101f7366004613bfe565b610b2d565b34801561020857600080fd5b50610211610b4c565b604051908152602001610169565b34801561022b57600080fd5b5061024f61023a366004613c4d565b60009081526004602052604090205460ff1690565b6040519015158152602001610169565b34801561026b57600080fd5b50610192610b69565b34801561028057600080fd5b5061019261028f366004613c4d565b610b7b565b3480156102a057600080fd5b50610192610ba9565b3480156102b557600080fd5b506101926102c436600461396c565b610bf1565b3480156102d557600080fd5b506102de610def565b6040516001600160a01b039091168152602001610169565b34801561030257600080fd5b50610192610311366004613c66565b610e24565b34801561032257600080fd5b50600854610211565b34801561033757600080fd5b50610192610346366004613c83565b610e64565b34801561035757600080fd5b5061037c604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101699190613d42565b34801561039557600080fd5b50600954610211565b3480156103aa57600080fd5b506102de73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6101926103d4366004613d55565b61103b565b3480156103e557600080fd5b506102de611456565b3480156103fa57600080fd5b50610192610409366004613c66565b61147f565b60006060808260055460ff16600281111561042b5761042b613d87565b14610449576040516308f5dbab60e31b815260040160405180910390fd5b8715610468576040516311921c1b60e01b815260040160405180910390fd5b8361047f576005805460ff1916600117905561048d565b6005805460ff191660021790555b600687905560006104a18d8d8d8a8a611504565b91505080604001516002819055506001600360006101000a81548160ff021916908315150217905550600080306001600160a01b0316633029a88160e01b848e8e6040516024016104f493929190613f58565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516105329190614134565b6000604051808303816000865af19150503d806000811461056f576040519150601f19603f3d011682016040523d82523d6000602084013e610574565b606091505b50915091508115610598576040516358a5fb7760e11b815260040160405180910390fd5b6000806105a4836117e5565b90925090506001600160e01b0319821663018ba8e960e01b146105da57604051634447e5bf60e11b815260040160405180910390fd5b6060818060200190518101906105f09190614180565b9099509050881561066c57600260055460ff16600281111561061457610614613d87565b03610667578080602001905181019061062d91906143f8565b97507f063f8c5c03902eb1e7a093a110bf896f2032e999efb1328f8248bd9c5286668a8860405161065e9190614645565b60405180910390a15b6106d3565b805160000361068e57604051634447e5bf60e11b815260040160405180910390fd5b955085600160055460ff1660028111156106aa576106aa613d87565b036106d35786604051636e511a8560e01b81526004016106ca9190613d42565b60405180910390fd5b50506005805460ff19908116909155600060068190556003805490921690915560025550949e939d50919b50919950505050505050505050565b33301461073057604051600162ab40b560e01b0319815260040160405180910390fd5b600060055460ff16600281111561074957610749613d87565b03610767576040516303d363a160e51b815260040160405180910390fd5b6107ac61077384614cce565b610781610140860186614cda565b600081811061079257610792614d23565b90506020020160208101906107a79190613c66565b61185d565b600080306001600160a01b0316638421adc860e01b8686866040516024016107d6939291906150f9565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516108149190614134565b6000604051808303816000865af19150503d8060008114610851576040519150601f19603f3d011682016040523d82523d6000602084013e610856565b606091505b509150915081156108c3576060600260055460ff16600281111561087c5761087c613d87565b036108a557600760405160200161089391906154d7565b60405160208183030381529060405290505b60018160405163018ba8e960e01b81526004016106ca929190615625565b60008160405163018ba8e960e01b81526004016106ca929190615625565b600080516020615d99833981519152546001600160401b0316156109175760405162dc149f60e41b815260040160405180910390fd5b61091f611aaa565b565b600080516020615d998339815191528054600160401b810460ff1615906001600160401b03166000811580156109545750825b90506000826001600160401b031660011480156109705750303b155b90508115801561097e575080155b1561099c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109c657845460ff60401b1916600160401b1785555b6109ce611b45565b6109d787611b4d565b600180546001600160a01b0319166001600160a01b0388161790558315610a3857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610a49611b5e565b6001600160a01b0382161580610a5d575080155b15610a6757600080fd5b600954811115610a985760095460405163024693af60e11b81526106ca918391600401918252602082015260400190565b600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610ae6576040519150601f19603f3d011682016040523d82523d6000602084013e610aeb565b606091505b509150915081610b105780604051636629334b60e11b81526004016106ca9190613d42565b8260096000828254610b22919061565e565b909155505050505050565b610b35611b90565b610b3e82611c35565b610b488282611c3d565b5050565b6000610b56611cfa565b50600080516020615d7983398151915290565b610b71611b5e565b61091f6000611d43565b610b83611b5e565b80600003610ba457604051637ade8cab60e01b815260040160405180910390fd5b600855565b3380610bb3611456565b6001600160a01b031614610be55760405163118cdaa760e01b81526001600160a01b03821660048201526024016106ca565b610bee81611d43565b50565b333014610c1457604051600162ab40b560e01b0319815260040160405180910390fd5b6000610c1f84611d7b565b90506000610c3360a0860160808701613c66565b6001600160a01b031614610de95760016060610c5260a0870187615671565b159050610d5a576000610c66878787612122565b90506000610c7760a0890189615671565b604051610c859291906156b7565b60405190819003902082610c9c60c08b018b615671565b604051602401610cae939291906156c7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610cf260a0890160808a01613c66565b6001600160a01b03168582604051610d0a9190614134565b60006040518083038185875af1925050503d8060008114610d47576040519150601f19603f3d011682016040523d82523d6000602084013e610d4c565b606091505b509094509250610dc6915050565b8215610dc657610d7060a0870160808801613c66565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610dba576040519150601f19603f3d011682016040523d82523d6000602084013e610dbf565b606091505b5090925090505b81610de65780604051634bc182c760e01b81526004016106ca9190613d42565b50505b50505050565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b610e2c611b5e565b6000546001600160a01b031615610e4257600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b8015610e83576040516311921c1b60e01b815260040160405180910390fd5b600080610e938a8a8a8a8a611504565b91509150610ea1818661185d565b6040808201516002556003805460ff19166001179055516000908190309063108435b960e31b90610eda9086908a908a90602401613f58565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f189190614134565b6000604051808303816000865af19150503d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b509150915081610fc8578051600003610f8657604051636c80903f60e11b815260040160405180910390fd5b7fd5af3a2c6eb49b701b4449e8e15dcaadba325f81791fea3dad1aaedd2b8322a9836040015182604051610fbb9291906156ed565b60405180910390a1611006565b7f456b8aa9be4f9cf3aca41804e224f98be7be2e03613745106623cfe38ba353808360400151604051610ffd91815260200190565b60405180910390a15b5050506000908152600460205260408120805460ff199081166001179091556003805490911690556002555050505050505050565b6000611048848484612347565b90506000806000806110598561243e565b6003549397509195509350915060009060ff161561107657506002545b600260055460ff16600281111561108f5761108f613d87565b036113e657600780546001810182556000919091528651600c9091027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180546001600160401b0390931667ffffffffffffffff199093169290921782557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68981018390557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a810180546001600160a01b0319163317905560208801517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b9091019061117b908261574d565b5060408701516004820190611190908261574d565b50606087015160058201556080870151600682015560005b8760a001515181101561120157816007018860a0015182815181106111cf576111cf614d23565b602090810291909101810151825460018101845560009384529190922001906111f8908261574d565b506001016111a8565b5060005b8651811015611274578160080187828151811061122457611224614d23565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b039092169190911781559101519082015501611205565b5060005b85518110156112e7578160090186828151811061129757611297614d23565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b039092169190911781559101519082015501611278565b5060005b84518110156113655781600a0185828151811061130a5761130a614d23565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b03909216919091178155918101518284015560400151600290910155016112eb565b5060005b83518110156113e35781600b0184828151811061138857611388614d23565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b0390921691909117815591810151828401556040015160029091015501611369565b50505b7f0a97a8e7dbc39c9d683a5009b6f74ad8cc9eff62dbe7c695d6317b727dd32dd58660000151823389602001518a604001518b606001518c608001518d60a001518d8d8d8d6040516114439c9b9a9998979695949392919061580b565b60405180910390a1505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610e14565b611487611b5e565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556114cb610def565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b600061150e61349d565b60005a60035490915060ff16156115385760405163e0ecfe2560e01b815260040160405180910390fd5b86866040516115489291906156b7565b6040805191829003822060208301520160408051601f1981840301815291815281516020928301206000818152600490935291205490935060ff1615156001036115a85760405163398560f160e11b8152600481018490526024016106ca565b6115bb6115b68686866129ff565b612a41565b6115d85760405163582f497d60e11b815260040160405180910390fd5b6115e3888888612ae0565b9150600060055460ff1660028111156115fe576115fe613d87565b03611649578082602001516001600160401b03161115611649576020820151604051634c32b10560e11b81526001600160401b039091166004820152602481018290526044016106ca565b6001546040805163babc394f60e01b815290516000926001600160a01b03169163babc394f9160048083019260c09291908290030181865afa158015611693573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b791906158e3565b905060008160000151826080015185604001516040516020016116fa9392919092835260c09190911b6001600160c01b0319166020830152602882015260480190565b6040516020818303038152906040528051906020012090506000846101200151518260001c6117299190615986565b90506000856101200151828151811061174457611744614d23565b602002602001015190506000600281111561176157611761613d87565b60055460ff16600281111561177857611778613d87565b14801561178e57506001600160a01b0381163314155b80156117a357506001600160a01b0381163214155b156117d657604080870151905163287bd02560e11b815260048101919091523360248201523260448201526064016106ca565b50505050509550959350505050565b600060606020830151915060048351036040519150808252602081018201604052602484016020830160005b60208406840381101561182e578281015182820152602001611811565b50601f83168015611854578084038381015160001960208490036101000a011916908301525b50505050915091565b60005b82610180015151811015611979576000836101800151828151811061188757611887614d23565b6020908102919091010151600054606082015160405163130d191f60e11b81529293506001600160a01b039091169163261a323e916118c891600401613d42565b602060405180830381865afa1580156118e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190991906159a8565b61197057600054604051631963202b60e01b81526001600160a01b0390911690631963202b9061193d9084906004016159c5565b600060405180830381600087803b15801561195757600080fd5b505af115801561196b573d6000803e3d6000fd5b505050505b50600101611860565b5060005b826101e0015151811015611a96576000836101e0015182815181106119a4576119a4614d23565b6020908102919091010151600054606082015160405163130d191f60e11b81529293506001600160a01b039091169163261a323e916119e591600401613d42565b602060405180830381865afa158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2691906159a8565b611a8d57600054604051631adc56db60e01b81526001600160a01b0390911690631adc56db90611a5a9084906004016159d8565b600060405180830381600087803b158015611a7457600080fd5b505af1158015611a88573d6000803e3d6000fd5b505050505b5060010161197d565b611aa583610100015183612bf1565b505050565b600080516020615d998339815191528054600160401b900460ff1615611ae35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614610bee57805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b61091f612c62565b611b55612c62565b610bee81612c99565b33611b67610def565b6001600160a01b03161461091f5760405163118cdaa760e01b81523360048201526024016106ca565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611c1757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c0b600080516020615d79833981519152546001600160a01b031690565b6001600160a01b031614155b1561091f5760405163703e46dd60e11b815260040160405180910390fd5b610bee611b5e565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c97575060408051601f3d908101601f19168201909252611c94918101906159eb565b60015b611cbf57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016106ca565b600080516020615d798339815191528114611cf057604051632a87526960e21b8152600481018290526024016106ca565b611aa58383612ccb565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461091f5760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610b4882612d21565b6000805b611d8d610160840184615a04565b9050811015611ead5736611da5610160850185615a04565b83818110611db557611db5614d23565b6000546040909102929092019250506001600160a01b031663f6a3d24e611ddf6020840184613c66565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4791906159a8565b611e7d57611e586020820182613c66565b60405163f33436af60e01b81526001600160a01b0390911660048201526024016106ca565b611ea4611e8f36839003830183615a4d565b611e9f60a0870160808801613c66565b612bf1565b50600101611d7f565b5060005b611ebf610180840184615a04565b9050811015611f675736611ed7610180850185615a04565b83818110611ee757611ee7614d23565b60400291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9050611f146020830183613c66565b6001600160a01b031603611f3757611f30602082013584615a69565b9250611f5e565b611f5e611f4936839003830183615a4d565b611f5960a0870160808801613c66565b612d92565b50600101611eb1565b8115611f9b574782811015611f99576040516335b9bf5b60e01b815260048101829052602481018490526044016106ca565b505b5060005b611fad6101c0840184615a7c565b90508110156120a85736611fc56101c0850185615a7c565b83818110611fd557611fd5614d23565b6000546060909102929092019250506001600160a01b031663f6a3d24e611fff6020840184613c66565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206791906159a8565b61207857611e586020820182613c66565b61209f61208a36839003830183615ac4565b61209a60a0870160808801613c66565b612dba565b50600101611f9f565b5060005b6120ba6101e0840184615a7c565b905081101561211c57366120d26101e0850185615a7c565b838181106120e2576120e2614d23565b9050606002019050612113818036038101906120fe9190615ac4565b61210e60a0870160808801613c66565b612ea3565b506001016120ac565b50919050565b606060008061213760a0870160808801613c66565b60408051600481526024810182526020810180516001600160e01b03166303639b8b60e21b17905290516001600160a01b0392909216916121789190614134565b600060405180830381855afa9150503d80600081146121b3576040519150601f19603f3d011682016040523d82523d6000602084013e6121b8565b606091505b50915091508115806121c957508051155b15612203576121de60a0870160808801613c66565b604051630553ea0d60e31b81526001600160a01b0390911660048201526024016106ca565b60008180602001905181019061221991906159eb565b905080600103612301576040805160a081019091528061223c60208a018a615ae0565b6001600160401b031681526060808a013560208301526040808b0135908301520161226a60e08a018a615671565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8a018190048102820181019092528881529181019190899089908190840183828082843760009201919091525050509152506040516122eb9190602001615afd565b604051602081830303815290604052935061233d565b61231160a0880160808901613c66565b604051635dddf46360e01b81526001600160a01b039091166004820152602481018290526044016106ca565b5050509392505050565b61239860405180610100016040528060006001600160401b03168152602001606081526020016060815260200160008152602001600081526020016060815260200160608152602001606081525090565b8360010361241b5760006123ae83850185615bdf565b905060405180610100016040528082600001516001600160401b03168152602001826020015181526020018260400151815260200182606001518152602001826080015181526020018260a0015181526020018260c0015181526020018260e00151815250915050612437565b60405163082bb94160e01b8152600481018590526024016106ca565b9392505050565b6060806060808460c00151516001600160401b0381111561246157612461613a63565b6040519080825280602002602001820160405280156124a657816020015b604080518082019091526000808252602082015281526020019060019003908161247f5790505b5093508460c001515160016124bb9190615a69565b6001600160401b038111156124d2576124d2613a63565b60405190808252806020026020018201604052801561251757816020015b60408051808201909152600080825260208201528152602001906001900390816124f05790505b50925060008060005b8760c00151518310156126875760008860c00151848151811061254557612545614d23565b6020026020010151905080602001516000036125675750600190920191612520565b600160801b8160200151106125a7578051602082015160405163bde1a95560e01b81526001600160a01b03909216600483015260248201526044016106ca565b6000548151604051637b51e92760e11b81526001600160a01b03918216600482015291169063f6a3d24e90602401602060405180830381865afa1580156125f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261691906159a8565b1561264d5761262481612f50565b8088838151811061263757612637614d23565b602090810291909101015260019091019061267b565b61265681612fe7565b8087848151811061266957612669614d23565b60209081029190910101526001909201915b50600190920191612520565b600354349060ff1661273557600854896060015110156126cb5760085460608a0151604051630961b65b60e41b8152600481019290925260248201526044016106ca565b600089606001518a608001516126e19190615a69565b90508082101561270c57604051626ba64f60e51b8152600481018290523460248201526044016106ca565b612716818361565e565b915089606001516009600082825461272e9190615a69565b9091555050505b80156127d257600160801b811061277c5760405163bde1a95560e01b815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6004820152602481018290526044016106ca565b604051806040016040528073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168152602001828152508784815181106127c0576127c0614d23565b60209081029190910101526001909201915b90875290855260e08701515160009250829182916001600160401b038111156127fd576127fd613a63565b60405190808252806020026020018201604052801561285b57816020015b612848604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b81526020019060019003908161281b5790505b5095508860e00151516001600160401b0381111561287b5761287b613a63565b6040519080825280602002602001820160405280156128d957816020015b6128c6604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816128995790505b5094505b8860e00151518410156129ef5760008960e00151858151811061290257612902614d23565b60209081029190910101516000548151604051637b51e92760e11b81526001600160a01b039182166004820152929350169063f6a3d24e90602401602060405180830381865afa15801561295a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297e91906159a8565b156129b55761298c81613011565b8087858151811061299f5761299f614d23565b60209081029190910101526001909301926129e3565b6129be8161314d565b808684815181106129d1576129d1614d23565b60209081029190910101526001909201915b506001909301926128dd565b5090845282525092949193509190565b600081815b84811015612a3857612a2e82878784818110612a2257612a22614d23565b905060200201356131fa565b9150600101612a04565b50949350505050565b60008060055460ff166002811115612a5b57612a5b613d87565b03612ad357600154604051630814964f60e41b8152600481018490526001600160a01b039091169063814964f090602401602060405180830381865afa158015612aa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acd91906159a8565b92915050565b506006541490565b919050565b612ae861349d565b83600103612bd5576000612afe83850185615d20565b905060405180610200016040528082600001516001600160401b0316815260200182602001516001600160401b03168152602001826040015181526020018260600151815260200182608001516001600160a01b031681526020018260a0015181526020018260c0015181526020018260e00151815260200182610100015181526020018261012001518152602001826101400151815260200182610160015181526020018261018001518152602001826101a001518152602001826101c001518152602001826101e00151815250915050612437565b604051632c4ed5b360e11b8152600481018590526024016106ca565b602082015115610b4857815160208301516040516340c10f1960e01b81526001600160a01b03848116600483015260248201929092529116906340c10f19906044015b600060405180830381600087803b158015612c4e57600080fd5b505af1158015610de6573d6000803e3d6000fd5b600080516020615d9983398151915254600160401b900460ff1661091f57604051631afcd79f60e31b815260040160405180910390fd5b612ca1612c62565b6001600160a01b038116610be557604051631e4fbdf760e01b8152600060048201526024016106ca565b612cd482613226565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612d1957611aa5828261328b565b610b48613301565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b602082015115610b485760208201518251610b48916001600160a01b03909116908390613320565b81516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2c91906159a8565b15612e7c5781516020830151604051638832e6e360e01b81526001600160a01b03848116600483015260248201929092526060604482015260006064820152911690638832e6e390608401612c34565b8151604051630b985cbb60e21b81526001600160a01b0390911660048201526024016106ca565b81516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1591906159a8565b15612e7c5781516020830151604051632142170760e11b81526001600160a01b03909216916342842e0e91612c349130918691600401615d54565b602081015115610bee5760208101518151612f7a916001600160a01b03909116903390309061337f565b80516020820151604051632770a7eb60e21b815230600482015260248101919091526001600160a01b0390911690639dc29fac906044015b600060405180830381600087803b158015612fcc57600080fd5b505af1158015612fe0573d6000803e3d6000fd5b5050505050565b602081015115610bee5760208101518151610bee916001600160a01b03909116903390309061337f565b80516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa15801561305f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308391906159a8565b1561312657805160208201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd916130be9133913091600401615d54565b600060405180830381600087803b1580156130d857600080fd5b505af11580156130ec573d6000803e3d6000fd5b505082516020840151604051630852cd8d60e31b81526001600160a01b0390921693506342966c689250612fb29160040190815260200190565b8051604051630b985cbb60e21b81526001600160a01b0390911660048201526024016106ca565b80516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa15801561319b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bf91906159a8565b1561312657805160208201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd91612fb29133913091600401615d54565b6000818310613216576000828152602084905260409020612437565b5060009182526020526040902090565b806001600160a01b03163b60000361325c57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016106ca565b600080516020615d7983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516132a89190614134565b600060405180830381855af49150503d80600081146132e3576040519150601f19603f3d011682016040523d82523d6000602084013e6132e8565b606091505b50915091506132f88583836133a7565b95945050505050565b341561091f5760405163b398979f60e01b815260040160405180910390fd5b6040516001600160a01b03838116602483015260448201839052611aa591859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613403565b610de984856001600160a01b03166323b872dd86868660405160240161334d93929190615d54565b6060826133bc576133b782613474565b612437565b81511580156133d357506001600160a01b0384163b155b156133fc57604051639996b31560e01b81526001600160a01b03851660048201526024016106ca565b5080612437565b600080602060008451602086016000885af180613426576040513d6000823e3d81fd5b50506000513d9150811561343e57806001141561344b565b6001600160a01b0384163b155b15610de957604051635274afe760e01b81526001600160a01b03851660048201526024016106ca565b8051156134845780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60408051610200810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c0840181905260e08401528351808501909452818452830152906101008201908152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b60008083601f84011261353b57600080fd5b5081356001600160401b0381111561355257600080fd5b60208301915083602082850101111561356a57600080fd5b9250929050565b60008083601f84011261358357600080fd5b5081356001600160401b0381111561359a57600080fd5b6020830191508360208260051b850101111561356a57600080fd5b8015158114610bee57600080fd5b600080600080600080600080600060c08a8c0312156135e157600080fd5b8935985060208a01356001600160401b038111156135fe57600080fd5b61360a8c828d01613529565b90995097505060408a01356001600160401b0381111561362957600080fd5b6136358c828d01613529565b90975095505060608a0135935060808a01356001600160401b0381111561365b57600080fd5b6136678c828d01613571565b90945092505060a08a013561367b816135b5565b809150509295985092959850929598565b60005b838110156136a757818101518382015260200161368f565b50506000910152565b600081518084526136c881602086016020860161368c565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b8381101561372c57601f198584030188526137168383516136b0565b60209889019890935091909101906001016136fa565b50909695505050505050565b600081518084526020840193506020830160005b828110156137885761377286835180516001600160a01b03168252602090810151910152565b604095909501946020919091019060010161374c565b5093949350505050565b600081518084526020840193506020830160005b8281101561378857815180516001600160a01b031687526020808201519088015260409081015190870152606086019550602091909101906001016137a6565b600082825180855260208501945060208160051b8301016020850160005b8381101561372c57848303601f19018852815180516001600160401b0316845260208101516020850152604081015161384860408601826001600160a01b03169052565b50606081015161018060608601526138646101808601826136b0565b90506080820151858203608087015261387d82826136b0565b91505060a082015160a086015260c082015160c086015260e082015185820360e08701526138ab82826136dc565b9150506101008201518582036101008701526138c78282613738565b9150506101208201518582036101208701526138e38282613738565b9150506101408201518582036101408701526138ff8282613792565b915050610160820151915084810361016086015261391d8183613792565b60209a8b019a90955093909301925050600101613804565b831515815260606020820152600061395060608301856137e6565b828103604084015261396281856136b0565b9695505050505050565b60008060006040848603121561398157600080fd5b83356001600160401b0381111561399757600080fd5b840161022081870312156139aa57600080fd5b925060208401356001600160401b038111156139c557600080fd5b6139d186828701613529565b9497909650939450505050565b6001600160a01b0381168114610bee57600080fd5b8035612adb816139de565b60008060408385031215613a1157600080fd5b8235613a1c816139de565b91506020830135613a2c816139de565b809150509250929050565b60008060408385031215613a4a57600080fd5b8235613a55816139de565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613a9b57613a9b613a63565b60405290565b604051606081016001600160401b0381118282101715613a9b57613a9b613a63565b60405161018081016001600160401b0381118282101715613a9b57613a9b613a63565b604051608081016001600160401b0381118282101715613a9b57613a9b613a63565b60405161020081016001600160401b0381118282101715613a9b57613a9b613a63565b60405161010081016001600160401b0381118282101715613a9b57613a9b613a63565b604051601f8201601f191681016001600160401b0381118282101715613b7657613b76613a63565b604052919050565b60006001600160401b03821115613b9757613b97613a63565b50601f01601f191660200190565b600082601f830112613bb657600080fd5b8135602083016000613bcf613bca84613b7e565b613b4e565b9050828152858383011115613be357600080fd5b82826020830137600092810160200192909252509392505050565b60008060408385031215613c1157600080fd5b8235613c1c816139de565b915060208301356001600160401b03811115613c3757600080fd5b613c4385828601613ba5565b9150509250929050565b600060208284031215613c5f57600080fd5b5035919050565b600060208284031215613c7857600080fd5b8135612437816139de565b60008060008060008060008060a0898b031215613c9f57600080fd5b8835975060208901356001600160401b03811115613cbc57600080fd5b613cc88b828c01613529565b90985096505060408901356001600160401b03811115613ce757600080fd5b613cf38b828c01613571565b9096509450506060890135613d07816139de565b925060808901356001600160401b03811115613d2257600080fd5b613d2e8b828c01613529565b999c989b5096995094979396929594505050565b60208152600061243760208301846136b0565b600080600060408486031215613d6a57600080fd5b8335925060208401356001600160401b038111156139c557600080fd5b634e487b7160e01b600052602160045260246000fd5b600081518084526020840193506020830160005b828110156137885781516001600160a01b0316865260209586019590910190600101613db1565b6000815160808452613ded60808501826136b0565b905060208301518482036020860152613e0682826136b0565b91505060ff6040840151166040850152606083015184820360608601526132f882826136b0565b600082825180855260208501945060208160051b8301016020850160005b8381101561372c57601f19858403018852613e67838351613dd8565b6020988901989093509190910190600101613e4b565b6000815160808452613e9260808501826136b0565b905060208301518482036020860152613eab82826136b0565b91505060408301518482036040860152613ec582826136b0565b915050606083015184820360608601526132f882826136b0565b600082825180855260208501945060208160051b8301016020850160005b8381101561372c57601f19858403018852613f19838351613e7d565b6020988901989093509190910190600101613efd565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152613f726040820185516001600160401b03169052565b60006020850151613f8e60608401826001600160401b03169052565b5060408501516080830152606085015160a08301526080850151613fbd60c08401826001600160a01b03169052565b5060a085015161022060e0840152613fd96102608401826136b0565b905060c0860151603f1984830301610100850152613ff782826136b0565b91505060e0860151603f198483030161012085015261401682826136b0565b91505061010086015161404061014085018280516001600160a01b03168252602090810151910152565b50610120860151838203603f190161018085015261405e8282613d9d565b915050610140860151603f19848303016101a085015261407e8282613738565b915050610160860151603f19848303016101c085015261409e8282613738565b915050610180860151603f19848303016101e08501526140be8282613e2d565b9150506101a0860151603f19848303016102008501526140de8282613792565b9150506101c0860151603f19848303016102208501526140fe8282613792565b9150506101e0860151603f198483030161024085015261411e8282613edf565b9150508281036020840152613962818587613f2f565b6000825161414681846020870161368c565b9190910192915050565b600061415e613bca84613b7e565b905082815283838301111561417257600080fd5b61243783602083018461368c565b6000806040838503121561419357600080fd5b825161419e816135b5565b60208401519092506001600160401b038111156141ba57600080fd5b8301601f810185136141cb57600080fd5b613c4385825160208401614150565b60006001600160401b038211156141f3576141f3613a63565b5060051b60200190565b6001600160401b0381168114610bee57600080fd5b8051612adb816141fd565b8051612adb816139de565b600082601f83011261423957600080fd5b61243783835160208501614150565b600082601f83011261425957600080fd5b8151614267613bca826141da565b8082825260208201915060208360051b86010192508583111561428957600080fd5b602085015b838110156142ca5780516001600160401b038111156142ac57600080fd5b6142bb886020838a0101614228565b8452506020928301920161428e565b5095945050505050565b600082601f8301126142e557600080fd5b81516142f3613bca826141da565b8082825260208201915060208360061b86010192508583111561431557600080fd5b602085015b838110156142ca576040818803121561433257600080fd5b61433a613a79565b8151614345816139de565b815260208281015181830152908452929092019160400161431a565b600082601f83011261437257600080fd5b8151614380613bca826141da565b808282526020820191506020606084028601019250858311156143a257600080fd5b602085015b838110156142ca57606081880312156143bf57600080fd5b6143c7613aa1565b81516143d2816139de565b8152602082810151818301526040808401519083015290845292909201916060016143a7565b60006020828403121561440a57600080fd5b81516001600160401b0381111561442057600080fd5b8201601f8101841361443157600080fd5b805161443f613bca826141da565b8082825260208201915060208360051b85010192508683111561446157600080fd5b602084015b8381101561463a5780516001600160401b0381111561448457600080fd5b8501610180818a03601f1901121561449b57600080fd5b6144a3613ac3565b6144af60208301614212565b8152604082015160208201526144c76060830161421d565b604082015260808201516001600160401b038111156144e557600080fd5b6144f48b602083860101614228565b60608301525060a08201516001600160401b0381111561451357600080fd5b6145228b602083860101614228565b60808301525060c08281015160a083015260e0830151908201526101008201516001600160401b0381111561455657600080fd5b6145658b602083860101614248565b60e0830152506101208201516001600160401b0381111561458557600080fd5b6145948b6020838601016142d4565b610100830152506101408201516001600160401b038111156145b557600080fd5b6145c48b6020838601016142d4565b610120830152506101608201516001600160401b038111156145e557600080fd5b6145f48b602083860101614361565b610140830152506101808201516001600160401b0381111561461557600080fd5b6146248b602083860101614361565b6101608301525084525060209283019201614466565b509695505050505050565b60208152600061243760208301846137e6565b8035612adb816141fd565b60006040828403121561467557600080fd5b61467d613a79565b9050813561468a816139de565b815260209182013591810191909152919050565b600082601f8301126146af57600080fd5b81356146bd613bca826141da565b8082825260208201915060208360051b8601019250858311156146df57600080fd5b602085015b838110156142ca5780356146f7816139de565b8352602092830192016146e4565b600082601f83011261471657600080fd5b8135614724613bca826141da565b8082825260208201915060208360061b86010192508583111561474657600080fd5b602085015b838110156142ca5761475d8782614663565b835260209092019160400161474b565b803560ff81168114612adb57600080fd5b600082601f83011261478f57600080fd5b813561479d613bca826141da565b8082825260208201915060208360051b8601019250858311156147bf57600080fd5b602085015b838110156142ca5780356001600160401b038111156147e257600080fd5b86016080818903601f190112156147f857600080fd5b614800613ae6565b60208201356001600160401b0381111561481957600080fd5b6148288a602083860101613ba5565b82525060408201356001600160401b0381111561484457600080fd5b6148538a602083860101613ba5565b6020830152506148656060830161476d565b604082015260808201356001600160401b0381111561488357600080fd5b6148928a602083860101613ba5565b606083015250845250602092830192016147c4565b6000606082840312156148b957600080fd5b6148c1613aa1565b905081356148ce816139de565b81526020828101359082015260409182013591810191909152919050565b600082601f8301126148fd57600080fd5b813561490b613bca826141da565b8082825260208201915060206060840286010192508583111561492d57600080fd5b602085015b838110156142ca5761494487826148a7565b8352602090920191606001614932565b600082601f83011261496557600080fd5b8135614973613bca826141da565b8082825260208201915060208360051b86010192508583111561499557600080fd5b602085015b838110156142ca5780356001600160401b038111156149b857600080fd5b86016080818903601f190112156149ce57600080fd5b6149d6613ae6565b60208201356001600160401b038111156149ef57600080fd5b6149fe8a602083860101613ba5565b82525060408201356001600160401b03811115614a1a57600080fd5b614a298a602083860101613ba5565b60208301525060608201356001600160401b03811115614a4857600080fd5b614a578a602083860101613ba5565b60408301525060808201356001600160401b03811115614a7657600080fd5b614a858a602083860101613ba5565b6060830152508452506020928301920161499a565b60006102208284031215614aad57600080fd5b614ab5613b08565b9050614ac082614658565b8152614ace60208301614658565b60208201526040828101359082015260608083013590820152614af3608083016139f3565b608082015260a08201356001600160401b03811115614b1157600080fd5b614b1d84828501613ba5565b60a08301525060c08201356001600160401b03811115614b3c57600080fd5b614b4884828501613ba5565b60c08301525060e08201356001600160401b03811115614b6757600080fd5b614b7384828501613ba5565b60e083015250614b87836101008401614663565b6101008201526101408201356001600160401b03811115614ba757600080fd5b614bb38482850161469e565b610120830152506101608201356001600160401b03811115614bd457600080fd5b614be084828501614705565b610140830152506101808201356001600160401b03811115614c0157600080fd5b614c0d84828501614705565b610160830152506101a08201356001600160401b03811115614c2e57600080fd5b614c3a8482850161477e565b610180830152506101c08201356001600160401b03811115614c5b57600080fd5b614c67848285016148ec565b6101a0830152506101e08201356001600160401b03811115614c8857600080fd5b614c94848285016148ec565b6101c0830152506102008201356001600160401b03811115614cb557600080fd5b614cc184828501614954565b6101e08301525092915050565b6000612acd3683614a9a565b6000808335601e19843603018112614cf157600080fd5b8301803591506001600160401b03821115614d0b57600080fd5b6020019150600581901b360382131561356a57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112614d5057600080fd5b83016020810192503590506001600160401b03811115614d6f57600080fd5b80360382131561356a57600080fd5b8035614d89816139de565b6001600160a01b03168252602090810135910152565b6000808335601e19843603018112614db657600080fd5b83016020810192503590506001600160401b03811115614dd557600080fd5b8060051b360382131561356a57600080fd5b81835260208301925060008160005b84811015613788578135614e09816139de565b6001600160a01b031686526020958601959190910190600101614df6565b6000808335601e19843603018112614e3e57600080fd5b83016020810192503590506001600160401b03811115614e5d57600080fd5b8060061b360382131561356a57600080fd5b81835260208301925060008160005b8481101561378857614e908683614d7e565b6040958601959190910190600101614e7e565b60008235607e19833603018112614eb957600080fd5b90910192915050565b60008383855260208501945060208460051b8201018360005b8681101561372c57838303601f19018852614ef68287614ea3565b614f008182614d39565b60808652614f12608087018284613f2f565b915050614f226020830183614d39565b8683036020880152614f35838284613f2f565b9250505060ff614f476040840161476d565b166040860152614f5a6060830183614d39565b92508582036060870152614f6f828483613f2f565b60209b8c019b9096509490940193505050600101614edb565b6000808335601e19843603018112614f9f57600080fd5b83016020810192503590506001600160401b03811115614fbe57600080fd5b60608102360382131561356a57600080fd5b81835260208301925060008160005b84811015613788578135614ff2816139de565b6001600160a01b03168652602082810135908701526040808301359087015260609586019590910190600101614fdf565b60008383855260208501945060208460051b8201018360005b8681101561372c57838303601f190188526150578287614ea3565b6150618182614d39565b60808652615073608087018284613f2f565b9150506150836020830183614d39565b8683036020880152615096838284613f2f565b925050506150a76040830183614d39565b86830360408801526150ba838284613f2f565b925050506150cb6060830183614d39565b925085820360608701526150e0828483613f2f565b60209b8c019b909650949094019350505060010161503c565b6040815261511a6040820161510d86614658565b6001600160401b03169052565b600061512860208601614658565b6001600160401b0381166060840152506040850135608083810191909152606086013560a084015261515b9086016139f3565b6001600160a01b031660c083015261517660a0860186614d39565b61022060e085015261518d61026085018284613f2f565b91505061519d60c0870187614d39565b848303603f19016101008601526151b5838284613f2f565b925050506151c660e0870187614d39565b848303603f19016101208601526151de838284613f2f565b925050506151f461014084016101008801614d7e565b615202610140870187614d9f565b848303603f190161018086015261521a838284614de7565b9250505061522c610160870187614e27565b848303603f19016101a0860152615244838284614e6f565b92505050615256610180870187614e27565b848303603f19016101c086015261526e838284614e6f565b925050506152806101a0870187614d9f565b848303603f19016101e0860152615298838284614ec2565b925050506152aa6101c0870187614f88565b848303603f19016102008601526152c2838284614fd0565b925050506152d46101e0870187614f88565b848303603f19016102208601526152ec838284614fd0565b925050506152fe610200870187614d9f565b848303603f1901610240860152615316838284615023565b925050508281036020840152613962818587613f2f565b600181811c9082168061534157607f821691505b60208210810361211c57634e487b7160e01b600052602260045260246000fd5b6000815461536e8161532d565b80855260018216801561538857600181146153a4576153db565b60ff1983166020870152602082151560051b87010193506153db565b84600052602060002060005b838110156153d25781546020828a0101526001820191506020810190506153b0565b87016020019450505b50505092915050565b600082825480855260208501945060208160051b83010184600052602060002060005b8381101561372c57848303601f190188526154228383615361565b60209890980197925060019182019101615407565b6000815480845260208401935082600052602060002060005b828110156137885781546001600160a01b03168652600182810154602088015260409096019560029092019101615450565b6000815480845260208401935082600052602060002060005b828110156137885781546001600160a01b031686526001828101546020880152600283015460408801526060909601956003909201910161549b565b6000602082016020835280845480835260408501915060408160051b860101925085600052602060002060005b8281101561561957603f1987860301845261552a8561510d84546001600160401b031690565b6001820154602086015260028201546001600160a01b031660408601526101806060860181905261556090860160038401615361565b85810360808701526155758160048501615361565b9050600583015460a0870152600683015460c087015285810360e08701526155a081600785016153e4565b90508581036101008701526155b88160088501615437565b90508581036101208701526155d08160098501615437565b90508581036101408701526155e881600a8501615482565b905085810361016087015261560081600b8501615482565b95505060209390930192600c9190910190600101615504565b50929695505050505050565b821515815260406020820152600061564060408301846136b0565b949350505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115612acd57612acd615648565b6000808335601e1984360301811261568857600080fd5b8301803591506001600160401b038211156156a257600080fd5b60200191503681900382131561356a57600080fd5b8183823760009101908152919050565b6040815260006156da60408301866136b0565b8281036020840152613962818587613f2f565b82815260406020820152600061564060408301846136b0565b601f821115611aa557806000526020600020601f840160051c8101602085101561572d5750805b601f840160051c820191505b81811015612fe05760008155600101615739565b81516001600160401b0381111561576657615766613a63565b61577a81615774845461532d565b84615706565b6020601f8211600181146157ae57600083156157965750848201515b600019600385901b1c1916600184901b178455612fe0565b600084815260208120601f198516915b828110156157de57878501518255602094850194600190920191016157be565b50848210156157fc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6001600160401b038d1681528b6020820152615832604082018c6001600160a01b03169052565b6101806060820152600061584a61018083018c6136b0565b828103608084015261585c818c6136b0565b90508960a08401528860c084015282810360e084015261587c81896136dc565b90508281036101008401526158918188613738565b90508281036101208401526158a68187613738565b90508281036101408401526158bb8186613792565b90508281036101608401526158d08185613792565b9f9e505050505050505050505050505050565b600060c08284031280156158f657600080fd5b5060405160c081016001600160401b038111828210171561591957615919613a63565b60405282518152602083015161592e816141fd565b60208201526040830151615941816141fd565b60408201526060830151615954816141fd565b60608201526080830151615967816141fd565b608082015260a083015161597a816141fd565b60a08201529392505050565b6000826159a357634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156159ba57600080fd5b8151612437816135b5565b6020815260006124376020830184613dd8565b6020815260006124376020830184613e7d565b6000602082840312156159fd57600080fd5b5051919050565b6000808335601e19843603018112615a1b57600080fd5b8301803591506001600160401b03821115615a3557600080fd5b6020019150600681901b360382131561356a57600080fd5b600060408284031215615a5f57600080fd5b6124378383614663565b80820180821115612acd57612acd615648565b6000808335601e19843603018112615a9357600080fd5b8301803591506001600160401b03821115615aad57600080fd5b602001915060608102360382131561356a57600080fd5b600060608284031215615ad657600080fd5b61243783836148a7565b600060208284031215615af257600080fd5b8135612437816141fd565b602081526001600160401b03825116602082015260208201516040820152604082015160608201526000606083015160a06080840152615b4060c08401826136b0565b90506080840151601f198483030160a08501526132f882826136b0565b600082601f830112615b6e57600080fd5b8135615b7c613bca826141da565b8082825260208201915060208360051b860101925085831115615b9e57600080fd5b602085015b838110156142ca5780356001600160401b03811115615bc157600080fd5b615bd0886020838a0101613ba5565b84525060209283019201615ba3565b600060208284031215615bf157600080fd5b81356001600160401b03811115615c0757600080fd5b82016101008185031215615c1a57600080fd5b615c22613b2b565b615c2b82614658565b815260208201356001600160401b03811115615c4657600080fd5b615c5286828501613ba5565b60208301525060408201356001600160401b03811115615c7157600080fd5b615c7d86828501613ba5565b604083015250606082810135908201526080808301359082015260a08201356001600160401b03811115615cb057600080fd5b615cbc86828501615b5d565b60a08301525060c08201356001600160401b03811115615cdb57600080fd5b615ce786828501614705565b60c08301525060e08201356001600160401b03811115615d0657600080fd5b615d12868285016148ec565b60e083015250949350505050565b600060208284031215615d3257600080fd5b81356001600160401b03811115615d4857600080fd5b61564084828501614a9a565b6001600160a01b03938416815291909216602082015260408101919091526060019056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b87aeeca7c160b50b61024f1f8783d84f8761468e0014f4551b41acbc32fe08564736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x5DEE PUSH2 0x3D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1B9B ADD MSTORE DUP2 DUP2 PUSH2 0x1BC4 ADD MSTORE PUSH2 0x1D05 ADD MSTORE PUSH2 0x5DEE PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x135 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8421ADC8 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xAD3CB1CC GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0xB42156BD EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0xDF2EBDBB EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0xE289ADCD EQ PUSH2 0x3C6 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x3D9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8421ADC8 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x9856869D EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0xA5A41031 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xABE13EF7 EQ PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4F1EF286 GT PUSH2 0xFD JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0x5A178931 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x787DCE3D EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xEFBC181 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x3029A881 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x31F44900 EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x4D3A2A8C EQ PUSH2 0x1C9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x35C3 JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x169 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3935 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x396C JUMP JUMPDEST PUSH2 0x70D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x8E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x39FE JUMP JUMPDEST PUSH2 0x921 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A37 JUMP JUMPDEST PUSH2 0xA41 JUMP JUMPDEST PUSH2 0x192 PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3BFE JUMP JUMPDEST PUSH2 0xB2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x211 PUSH2 0xB4C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0x3C4D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0xB69 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x3C4D JUMP JUMPDEST PUSH2 0xB7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0xBA9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x396C JUMP JUMPDEST PUSH2 0xBF1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xDEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0xE24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x322 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x8 SLOAD PUSH2 0x211 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x346 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C83 JUMP JUMPDEST PUSH2 0xE64 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x169 SWAP2 SWAP1 PUSH2 0x3D42 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x211 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 JUMP JUMPDEST PUSH2 0x192 PUSH2 0x3D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D55 JUMP JUMPDEST PUSH2 0x103B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1456 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x409 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x147F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x42B JUMPI PUSH2 0x42B PUSH2 0x3D87 JUMP JUMPDEST EQ PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8F5DBAB PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP8 ISZERO PUSH2 0x468 JUMPI PUSH1 0x40 MLOAD PUSH4 0x11921C1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH2 0x47F JUMPI PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x48D JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x6 DUP8 SWAP1 SSTORE PUSH1 0x0 PUSH2 0x4A1 DUP14 DUP14 DUP14 DUP11 DUP11 PUSH2 0x1504 JUMP JUMPDEST SWAP2 POP POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3029A881 PUSH1 0xE0 SHL DUP5 DUP15 DUP15 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x4F4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F58 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 0x532 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x56F 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 0x574 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x598 JUMPI PUSH1 0x40 MLOAD PUSH4 0x58A5FB77 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x5A4 DUP4 PUSH2 0x17E5 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x18BA8E9 PUSH1 0xE0 SHL EQ PUSH2 0x5DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x4447E5BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x5F0 SWAP2 SWAP1 PUSH2 0x4180 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP1 POP DUP9 ISZERO PUSH2 0x66C JUMPI PUSH1 0x2 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x614 JUMPI PUSH2 0x614 PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x667 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x62D SWAP2 SWAP1 PUSH2 0x43F8 JUMP JUMPDEST SWAP8 POP PUSH32 0x63F8C5C03902EB1E7A093A110BF896F2032E999EFB1328F8248BD9C5286668A DUP9 PUSH1 0x40 MLOAD PUSH2 0x65E SWAP2 SWAP1 PUSH2 0x4645 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST PUSH2 0x6D3 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x68E JUMPI PUSH1 0x40 MLOAD PUSH4 0x4447E5BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6AA JUMPI PUSH2 0x6AA PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x6D3 JUMPI DUP7 PUSH1 0x40 MLOAD PUSH4 0x6E511A85 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x3D42 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x0 PUSH1 0x6 DUP2 SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND SWAP1 SWAP2 SSTORE PUSH1 0x2 SSTORE POP SWAP5 SWAP15 SWAP4 SWAP14 POP SWAP2 SWAP12 POP SWAP2 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x730 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xAB40B5 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x749 JUMPI PUSH2 0x749 PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x767 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3D363A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7AC PUSH2 0x773 DUP5 PUSH2 0x4CCE JUMP JUMPDEST PUSH2 0x781 PUSH2 0x140 DUP7 ADD DUP7 PUSH2 0x4CDA JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x792 JUMPI PUSH2 0x792 PUSH2 0x4D23 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7A7 SWAP2 SWAP1 PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x185D JUMP JUMPDEST PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8421ADC8 PUSH1 0xE0 SHL DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x7D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x50F9 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 0x814 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x851 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 0x856 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x60 PUSH1 0x2 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x87C JUMPI PUSH2 0x87C PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x8A5 JUMPI PUSH1 0x7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x893 SWAP2 SWAP1 PUSH2 0x54D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x40 MLOAD PUSH4 0x18BA8E9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH4 0x18BA8E9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D99 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO PUSH2 0x917 JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x91F PUSH2 0x1AAA JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D99 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x970 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x97E JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x99C JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x9C6 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x9CE PUSH2 0x1B45 JUMP JUMPDEST PUSH2 0x9D7 DUP8 PUSH2 0x1B4D JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0xA38 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA49 PUSH2 0x1B5E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 PUSH2 0xA5D JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xA67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x9 SLOAD DUP2 GT ISZERO PUSH2 0xA98 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24693AF PUSH1 0xE1 SHL DUP2 MSTORE PUSH2 0x6CA SWAP2 DUP4 SWAP2 PUSH1 0x4 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xAE6 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 0xAEB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xB10 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH4 0x6629334B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x3D42 JUMP JUMPDEST DUP3 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB22 SWAP2 SWAP1 PUSH2 0x565E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xB35 PUSH2 0x1B90 JUMP JUMPDEST PUSH2 0xB3E DUP3 PUSH2 0x1C35 JUMP JUMPDEST PUSH2 0xB48 DUP3 DUP3 PUSH2 0x1C3D JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB56 PUSH2 0x1CFA JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D79 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0xB71 PUSH2 0x1B5E JUMP JUMPDEST PUSH2 0x91F PUSH1 0x0 PUSH2 0x1D43 JUMP JUMPDEST PUSH2 0xB83 PUSH2 0x1B5E JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0xBA4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7ADE8CAB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 SSTORE JUMP JUMPDEST CALLER DUP1 PUSH2 0xBB3 PUSH2 0x1456 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBE5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0xBEE DUP2 PUSH2 0x1D43 JUMP JUMPDEST POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xC14 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xAB40B5 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC1F DUP5 PUSH2 0x1D7B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xC33 PUSH1 0xA0 DUP7 ADD PUSH1 0x80 DUP8 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDE9 JUMPI PUSH1 0x1 PUSH1 0x60 PUSH2 0xC52 PUSH1 0xA0 DUP8 ADD DUP8 PUSH2 0x5671 JUMP JUMPDEST ISZERO SWAP1 POP PUSH2 0xD5A JUMPI PUSH1 0x0 PUSH2 0xC66 DUP8 DUP8 DUP8 PUSH2 0x2122 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xC77 PUSH1 0xA0 DUP10 ADD DUP10 PUSH2 0x5671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC85 SWAP3 SWAP2 SWAP1 PUSH2 0x56B7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 KECCAK256 DUP3 PUSH2 0xC9C PUSH1 0xC0 DUP12 ADD DUP12 PUSH2 0x5671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xCAE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x56C7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0xCF2 PUSH1 0xA0 DUP10 ADD PUSH1 0x80 DUP11 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xD0A SWAP2 SWAP1 PUSH2 0x4134 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 0xD47 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 0xD4C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP5 POP SWAP3 POP PUSH2 0xDC6 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO PUSH2 0xDC6 JUMPI PUSH2 0xD70 PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xDBA 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 0xDBF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP JUMPDEST DUP2 PUSH2 0xDE6 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH4 0x4BC182C7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x3D42 JUMP JUMPDEST POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE2C PUSH2 0x1B5E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xE42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE83 JUMPI PUSH1 0x40 MLOAD PUSH4 0x11921C1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE93 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x1504 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xEA1 DUP2 DUP7 PUSH2 0x185D JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 ADDRESS SWAP1 PUSH4 0x108435B9 PUSH1 0xE3 SHL SWAP1 PUSH2 0xEDA SWAP1 DUP7 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x24 ADD PUSH2 0x3F58 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 0xF18 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xF55 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 0xF5A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xFC8 JUMPI DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xF86 JUMPI PUSH1 0x40 MLOAD PUSH4 0x6C80903F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xD5AF3A2C6EB49B701B4449E8E15DCAADBA325F81791FEA3DAD1AAEDD2B8322A9 DUP4 PUSH1 0x40 ADD MLOAD DUP3 PUSH1 0x40 MLOAD PUSH2 0xFBB SWAP3 SWAP2 SWAP1 PUSH2 0x56ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x1006 JUMP JUMPDEST PUSH32 0x456B8AA9BE4F9CF3ACA41804E224F98BE7BE2E03613745106623CFE38BA35380 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xFFD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x1 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x2 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1048 DUP5 DUP5 DUP5 PUSH2 0x2347 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1059 DUP6 PUSH2 0x243E JUMP JUMPDEST PUSH1 0x3 SLOAD SWAP4 SWAP8 POP SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x1076 JUMPI POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x2 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108F PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x13E6 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP7 MLOAD PUSH1 0xC SWAP1 SWAP2 MUL PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP4 AND PUSH8 0xFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR DUP3 SSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C689 DUP2 ADD DUP4 SWAP1 SSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C68A DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x20 DUP9 ADD MLOAD PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C68B SWAP1 SWAP2 ADD SWAP1 PUSH2 0x117B SWAP1 DUP3 PUSH2 0x574D JUMP JUMPDEST POP PUSH1 0x40 DUP8 ADD MLOAD PUSH1 0x4 DUP3 ADD SWAP1 PUSH2 0x1190 SWAP1 DUP3 PUSH2 0x574D JUMP JUMPDEST POP PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x80 DUP8 ADD MLOAD PUSH1 0x6 DUP3 ADD SSTORE PUSH1 0x0 JUMPDEST DUP8 PUSH1 0xA0 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x1201 JUMPI DUP2 PUSH1 0x7 ADD DUP9 PUSH1 0xA0 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x11CF JUMPI PUSH2 0x11CF PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP2 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE SWAP2 SWAP1 SWAP3 KECCAK256 ADD SWAP1 PUSH2 0x11F8 SWAP1 DUP3 PUSH2 0x574D JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x11A8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0x1274 JUMPI DUP2 PUSH1 0x8 ADD DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1224 JUMPI PUSH2 0x1224 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP2 ADD MLOAD SWAP1 DUP3 ADD SSTORE ADD PUSH2 0x1205 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0x12E7 JUMPI DUP2 PUSH1 0x9 ADD DUP7 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1297 JUMPI PUSH2 0x1297 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP2 ADD MLOAD SWAP1 DUP3 ADD SSTORE ADD PUSH2 0x1278 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1365 JUMPI DUP2 PUSH1 0xA ADD DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x130A JUMPI PUSH2 0x130A PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP2 DUP2 ADD MLOAD DUP3 DUP5 ADD SSTORE PUSH1 0x40 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE ADD PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x13E3 JUMPI DUP2 PUSH1 0xB ADD DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1388 JUMPI PUSH2 0x1388 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP2 DUP2 ADD MLOAD DUP3 DUP5 ADD SSTORE PUSH1 0x40 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE ADD PUSH2 0x1369 JUMP JUMPDEST POP POP JUMPDEST PUSH32 0xA97A8E7DBC39C9D683A5009B6F74AD8CC9EFF62DBE7C695D6317B727DD32DD5 DUP7 PUSH1 0x0 ADD MLOAD DUP3 CALLER DUP10 PUSH1 0x20 ADD MLOAD DUP11 PUSH1 0x40 ADD MLOAD DUP12 PUSH1 0x60 ADD MLOAD DUP13 PUSH1 0x80 ADD MLOAD DUP14 PUSH1 0xA0 ADD MLOAD DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x1443 SWAP13 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x580B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x1487 PUSH2 0x1B5E JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR DUP3 SSTORE PUSH2 0x14CB PUSH2 0xDEF 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 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x150E PUSH2 0x349D JUMP JUMPDEST PUSH1 0x0 GAS PUSH1 0x3 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x1538 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE0ECFE25 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1548 SWAP3 SWAP2 SWAP1 PUSH2 0x56B7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP4 POP PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 SUB PUSH2 0x15A8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x398560F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x15BB PUSH2 0x15B6 DUP7 DUP7 DUP7 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x2A41 JUMP JUMPDEST PUSH2 0x15D8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x582F497D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15E3 DUP9 DUP9 DUP9 PUSH2 0x2AE0 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x15FE JUMPI PUSH2 0x15FE PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x1649 JUMPI DUP1 DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x4C32B105 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xBABC394F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xBABC394F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0xC0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1693 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 0x16B7 SWAP2 SWAP1 PUSH2 0x58E3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x80 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16FA SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0xC0 SWAP2 SWAP1 SWAP2 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x28 DUP3 ADD MSTORE PUSH1 0x48 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP5 PUSH2 0x120 ADD MLOAD MLOAD DUP3 PUSH1 0x0 SHR PUSH2 0x1729 SWAP2 SWAP1 PUSH2 0x5986 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP6 PUSH2 0x120 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1744 JUMPI PUSH2 0x1744 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1761 JUMPI PUSH2 0x1761 PUSH2 0x3D87 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1778 JUMPI PUSH2 0x1778 PUSH2 0x3D87 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x178E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x17A3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ORIGIN EQ ISZERO JUMPDEST ISZERO PUSH2 0x17D6 JUMPI PUSH1 0x40 DUP1 DUP8 ADD MLOAD SWAP1 MLOAD PUSH4 0x287BD025 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE ORIGIN PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6CA JUMP JUMPDEST POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x20 DUP4 ADD MLOAD SWAP2 POP PUSH1 0x4 DUP4 MLOAD SUB PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x24 DUP5 ADD PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST PUSH1 0x20 DUP5 MOD DUP5 SUB DUP2 LT ISZERO PUSH2 0x182E JUMPI DUP3 DUP2 ADD MLOAD DUP3 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1811 JUMP JUMPDEST POP PUSH1 0x1F DUP4 AND DUP1 ISZERO PUSH2 0x1854 JUMPI DUP1 DUP5 SUB DUP4 DUP2 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP5 SWAP1 SUB PUSH2 0x100 EXP ADD NOT AND SWAP1 DUP4 ADD MSTORE JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 PUSH2 0x180 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x1979 JUMPI PUSH1 0x0 DUP4 PUSH2 0x180 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1887 JUMPI PUSH2 0x1887 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x0 SLOAD PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x130D191F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x261A323E SWAP2 PUSH2 0x18C8 SWAP2 PUSH1 0x4 ADD PUSH2 0x3D42 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18E5 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 0x1909 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST PUSH2 0x1970 JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1963202B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1963202B SWAP1 PUSH2 0x193D SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x59C5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1957 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x196B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1860 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 PUSH2 0x1E0 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x1A96 JUMPI PUSH1 0x0 DUP4 PUSH2 0x1E0 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19A4 JUMPI PUSH2 0x19A4 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x0 SLOAD PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x130D191F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x261A323E SWAP2 PUSH2 0x19E5 SWAP2 PUSH1 0x4 ADD PUSH2 0x3D42 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A02 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 0x1A26 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST PUSH2 0x1A8D JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1ADC56DB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1ADC56DB SWAP1 PUSH2 0x1A5A SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x59D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x197D JUMP JUMPDEST PUSH2 0x1AA5 DUP4 PUSH2 0x100 ADD MLOAD DUP4 PUSH2 0x2BF1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D99 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1AE3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0xBEE JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x91F PUSH2 0x2C62 JUMP JUMPDEST PUSH2 0x1B55 PUSH2 0x2C62 JUMP JUMPDEST PUSH2 0xBEE DUP2 PUSH2 0x2C99 JUMP JUMPDEST CALLER PUSH2 0x1B67 PUSH2 0xDEF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x1C17 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1C0B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D79 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEE PUSH2 0x1B5E JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1C97 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1C94 SWAP2 DUP2 ADD SWAP1 PUSH2 0x59EB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1CBF JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D79 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x1CF0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x1AA5 DUP4 DUP4 PUSH2 0x2CCB JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH2 0xB48 DUP3 PUSH2 0x2D21 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH2 0x1D8D PUSH2 0x160 DUP5 ADD DUP5 PUSH2 0x5A04 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x1EAD JUMPI CALLDATASIZE PUSH2 0x1DA5 PUSH2 0x160 DUP6 ADD DUP6 PUSH2 0x5A04 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x1DB5 JUMPI PUSH2 0x1DB5 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 SWAP1 SWAP2 MUL SWAP3 SWAP1 SWAP3 ADD SWAP3 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF6A3D24E PUSH2 0x1DDF PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E23 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 0x1E47 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST PUSH2 0x1E7D JUMPI PUSH2 0x1E58 PUSH1 0x20 DUP3 ADD DUP3 PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xF33436AF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x1EA4 PUSH2 0x1E8F CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x5A4D JUMP JUMPDEST PUSH2 0x1E9F PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x2BF1 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1D7F JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH2 0x1EBF PUSH2 0x180 DUP5 ADD DUP5 PUSH2 0x5A04 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x1F67 JUMPI CALLDATASIZE PUSH2 0x1ED7 PUSH2 0x180 DUP6 ADD DUP6 PUSH2 0x5A04 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x1EE7 JUMPI PUSH2 0x1EE7 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x40 MUL SWAP2 SWAP1 SWAP2 ADD SWAP2 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP1 POP PUSH2 0x1F14 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x1F37 JUMPI PUSH2 0x1F30 PUSH1 0x20 DUP3 ADD CALLDATALOAD DUP5 PUSH2 0x5A69 JUMP JUMPDEST SWAP3 POP PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x1F5E PUSH2 0x1F49 CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x5A4D JUMP JUMPDEST PUSH2 0x1F59 PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x2D92 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1EB1 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1F9B JUMPI SELFBALANCE DUP3 DUP2 LT ISZERO PUSH2 0x1F99 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35B9BF5B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST POP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH2 0x1FAD PUSH2 0x1C0 DUP5 ADD DUP5 PUSH2 0x5A7C JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x20A8 JUMPI CALLDATASIZE PUSH2 0x1FC5 PUSH2 0x1C0 DUP6 ADD DUP6 PUSH2 0x5A7C JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x1FD5 JUMPI PUSH2 0x1FD5 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 SWAP2 MUL SWAP3 SWAP1 SWAP3 ADD SWAP3 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF6A3D24E PUSH2 0x1FFF PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2043 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 0x2067 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST PUSH2 0x2078 JUMPI PUSH2 0x1E58 PUSH1 0x20 DUP3 ADD DUP3 PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x209F PUSH2 0x208A CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x5AC4 JUMP JUMPDEST PUSH2 0x209A PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x2DBA JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1F9F JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH2 0x20BA PUSH2 0x1E0 DUP5 ADD DUP5 PUSH2 0x5A7C JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x211C JUMPI CALLDATASIZE PUSH2 0x20D2 PUSH2 0x1E0 DUP6 ADD DUP6 PUSH2 0x5A7C JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x20E2 JUMPI PUSH2 0x20E2 PUSH2 0x4D23 JUMP JUMPDEST SWAP1 POP PUSH1 0x60 MUL ADD SWAP1 POP PUSH2 0x2113 DUP2 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20FE SWAP2 SWAP1 PUSH2 0x5AC4 JUMP JUMPDEST PUSH2 0x210E PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x2EA3 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x20AC JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH2 0x2137 PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x3639B8B PUSH1 0xE2 SHL OR SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH2 0x2178 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x21B3 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 0x21B8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 ISZERO DUP1 PUSH2 0x21C9 JUMPI POP DUP1 MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x2203 JUMPI PUSH2 0x21DE PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x553EA0D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2219 SWAP2 SWAP1 PUSH2 0x59EB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 SUB PUSH2 0x2301 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x223C PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0x5AE0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x60 DUP1 DUP11 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP12 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE ADD PUSH2 0x226A PUSH1 0xE0 DUP11 ADD DUP11 PUSH2 0x5671 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP1 DUP3 MSTORE POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP PUSH1 0x40 MLOAD PUSH2 0x22EB SWAP2 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AFD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 POP PUSH2 0x233D JUMP JUMPDEST PUSH2 0x2311 PUSH1 0xA0 DUP9 ADD PUSH1 0x80 DUP10 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5DDDF463 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2398 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP4 PUSH1 0x1 SUB PUSH2 0x241B JUMPI PUSH1 0x0 PUSH2 0x23AE DUP4 DUP6 ADD DUP6 PUSH2 0x5BDF JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xA0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xE0 ADD MLOAD DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x2437 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x82BB941 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 DUP5 PUSH1 0xC0 ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2461 JUMPI PUSH2 0x2461 PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x24A6 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x247F JUMPI SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0xC0 ADD MLOAD MLOAD PUSH1 0x1 PUSH2 0x24BB SWAP2 SWAP1 PUSH2 0x5A69 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D2 JUMPI PUSH2 0x24D2 PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2517 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x24F0 JUMPI SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 DUP1 PUSH1 0x0 JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD MLOAD DUP4 LT ISZERO PUSH2 0x2687 JUMPI PUSH1 0x0 DUP9 PUSH1 0xC0 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x2545 JUMPI PUSH2 0x2545 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SUB PUSH2 0x2567 JUMPI POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2520 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x80 SHL DUP2 PUSH1 0x20 ADD MLOAD LT PUSH2 0x25A7 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xBDE1A955 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x7B51E927 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xF6A3D24E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25F2 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 0x2616 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x264D JUMPI PUSH2 0x2624 DUP2 PUSH2 0x2F50 JUMP JUMPDEST DUP1 DUP9 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x2637 JUMPI PUSH2 0x2637 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x267B JUMP JUMPDEST PUSH2 0x2656 DUP2 PUSH2 0x2FE7 JUMP JUMPDEST DUP1 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x2669 JUMPI PUSH2 0x2669 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2520 JUMP JUMPDEST PUSH1 0x3 SLOAD CALLVALUE SWAP1 PUSH1 0xFF AND PUSH2 0x2735 JUMPI PUSH1 0x8 SLOAD DUP10 PUSH1 0x60 ADD MLOAD LT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x8 SLOAD PUSH1 0x60 DUP11 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x961B65B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 DUP10 PUSH1 0x60 ADD MLOAD DUP11 PUSH1 0x80 ADD MLOAD PUSH2 0x26E1 SWAP2 SWAP1 PUSH2 0x5A69 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 LT ISZERO PUSH2 0x270C JUMPI PUSH1 0x40 MLOAD PUSH3 0x6BA64F PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE CALLVALUE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x2716 DUP2 DUP4 PUSH2 0x565E JUMP JUMPDEST SWAP2 POP DUP10 PUSH1 0x60 ADD MLOAD PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x272E SWAP2 SWAP1 PUSH2 0x5A69 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMPDEST DUP1 ISZERO PUSH2 0x27D2 JUMPI PUSH1 0x1 PUSH1 0x80 SHL DUP2 LT PUSH2 0x277C JUMPI PUSH1 0x40 MLOAD PUSH4 0xBDE1A955 PUSH1 0xE0 SHL DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x27C0 JUMPI PUSH2 0x27C0 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST SWAP1 DUP8 MSTORE SWAP1 DUP6 MSTORE PUSH1 0xE0 DUP8 ADD MLOAD MLOAD PUSH1 0x0 SWAP3 POP DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x27FD JUMPI PUSH2 0x27FD PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x285B JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x2848 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x281B JUMPI SWAP1 POP JUMPDEST POP SWAP6 POP DUP9 PUSH1 0xE0 ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x28D9 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x28C6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x2899 JUMPI SWAP1 POP JUMPDEST POP SWAP5 POP JUMPDEST DUP9 PUSH1 0xE0 ADD MLOAD MLOAD DUP5 LT ISZERO PUSH2 0x29EF JUMPI PUSH1 0x0 DUP10 PUSH1 0xE0 ADD MLOAD DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x2902 JUMPI PUSH2 0x2902 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x0 SLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x7B51E927 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 SWAP4 POP AND SWAP1 PUSH4 0xF6A3D24E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x295A 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 0x297E SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x29B5 JUMPI PUSH2 0x298C DUP2 PUSH2 0x3011 JUMP JUMPDEST DUP1 DUP8 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x299F JUMPI PUSH2 0x299F PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 PUSH2 0x29E3 JUMP JUMPDEST PUSH2 0x29BE DUP2 PUSH2 0x314D JUMP JUMPDEST DUP1 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x29D1 JUMPI PUSH2 0x29D1 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 PUSH2 0x28DD JUMP JUMPDEST POP SWAP1 DUP5 MSTORE DUP3 MSTORE POP SWAP3 SWAP5 SWAP2 SWAP4 POP SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2A38 JUMPI PUSH2 0x2A2E DUP3 DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x2A22 JUMPI PUSH2 0x2A22 PUSH2 0x4D23 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x31FA JUMP JUMPDEST SWAP2 POP PUSH1 0x1 ADD PUSH2 0x2A04 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2A5B JUMPI PUSH2 0x2A5B PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x2AD3 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x814964F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x814964F0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AA9 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 0x2ACD SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST POP PUSH1 0x6 SLOAD EQ SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2AE8 PUSH2 0x349D JUMP JUMPDEST DUP4 PUSH1 0x1 SUB PUSH2 0x2BD5 JUMPI PUSH1 0x0 PUSH2 0x2AFE DUP4 DUP6 ADD DUP6 PUSH2 0x5D20 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x200 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xA0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xE0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x100 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x120 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x140 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x160 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x180 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x1A0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x1C0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x1E0 ADD MLOAD DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x2437 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2C4ED5B3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD ISZERO PUSH2 0xB48 JUMPI DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 AND SWAP1 PUSH4 0x40C10F19 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDE6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D99 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CA1 PUSH2 0x2C62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xBE5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x2CD4 DUP3 PUSH2 0x3226 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x2D19 JUMPI PUSH2 0x1AA5 DUP3 DUP3 PUSH2 0x328B JUMP JUMPDEST PUSH2 0xB48 PUSH2 0x3301 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD ISZERO PUSH2 0xB48 JUMPI PUSH1 0x20 DUP3 ADD MLOAD DUP3 MLOAD PUSH2 0xB48 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH2 0x3320 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E08 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 0x2E2C SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x2E7C JUMPI DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x8832E6E3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x8832E6E3 SWAP1 PUSH1 0x84 ADD PUSH2 0x2C34 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0xB985CBB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EF1 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 0x2F15 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x2E7C JUMPI DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x42842E0E SWAP2 PUSH2 0x2C34 SWAP2 ADDRESS SWAP2 DUP7 SWAP2 PUSH1 0x4 ADD PUSH2 0x5D54 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD ISZERO PUSH2 0xBEE JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x2F7A SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 CALLER SWAP1 ADDRESS SWAP1 PUSH2 0x337F JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x2770A7EB PUSH1 0xE2 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x9DC29FAC SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD ISZERO PUSH2 0xBEE JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0xBEE SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 CALLER SWAP1 ADDRESS SWAP1 PUSH2 0x337F JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x305F 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 0x3083 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x3126 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x23B872DD SWAP2 PUSH2 0x30BE SWAP2 CALLER SWAP2 ADDRESS SWAP2 PUSH1 0x4 ADD PUSH2 0x5D54 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP4 POP PUSH4 0x42966C68 SWAP3 POP PUSH2 0x2FB2 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD PUSH4 0xB985CBB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x319B 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 0x31BF SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x3126 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x23B872DD SWAP2 PUSH2 0x2FB2 SWAP2 CALLER SWAP2 ADDRESS SWAP2 PUSH1 0x4 ADD PUSH2 0x5D54 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x3216 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x2437 JUMP JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x325C JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D79 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x32A8 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x32E3 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 0x32E8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x32F8 DUP6 DUP4 DUP4 PUSH2 0x33A7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x1AA5 SWAP2 DUP6 SWAP2 DUP3 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x3403 JUMP JUMPDEST PUSH2 0xDE9 DUP5 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x334D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5D54 JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x33BC JUMPI PUSH2 0x33B7 DUP3 PUSH2 0x3474 JUMP JUMPDEST PUSH2 0x2437 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x33D3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x33FC JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST POP DUP1 PUSH2 0x2437 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH1 0x0 DUP9 GAS CALL DUP1 PUSH2 0x3426 JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST POP POP PUSH1 0x0 MLOAD RETURNDATASIZE SWAP2 POP DUP2 ISZERO PUSH2 0x343E JUMPI DUP1 PUSH1 0x1 EQ ISZERO PUSH2 0x344B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0xDE9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x3484 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x200 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP5 ADD DUP4 SWAP1 MSTORE PUSH1 0xA0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xC0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xE0 DUP5 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE DUP2 DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH2 0x100 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x353B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3583 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x359A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x35E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 CALLDATALOAD SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x35FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x360A DUP13 DUP3 DUP14 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP POP PUSH1 0x40 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3629 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3635 DUP13 DUP3 DUP14 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x365B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3667 DUP13 DUP3 DUP14 ADD PUSH2 0x3571 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD PUSH2 0x367B DUP2 PUSH2 0x35B5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x36A7 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x368F JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x36C8 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x368C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x3716 DUP4 DUP4 MLOAD PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x36FA JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI PUSH2 0x3772 DUP7 DUP4 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x40 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x374C JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD SWAP1 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 DUP2 ADD MLOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x60 DUP7 ADD SWAP6 POP PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x37A6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI DUP5 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH2 0x3848 PUSH1 0x40 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH2 0x180 PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x3864 PUSH2 0x180 DUP7 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH1 0x80 DUP8 ADD MSTORE PUSH2 0x387D DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0xC0 DUP7 ADD MSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH1 0xE0 DUP8 ADD MSTORE PUSH2 0x38AB DUP3 DUP3 PUSH2 0x36DC JUMP JUMPDEST SWAP2 POP POP PUSH2 0x100 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH2 0x100 DUP8 ADD MSTORE PUSH2 0x38C7 DUP3 DUP3 PUSH2 0x3738 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x120 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH2 0x120 DUP8 ADD MSTORE PUSH2 0x38E3 DUP3 DUP3 PUSH2 0x3738 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x140 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH2 0x140 DUP8 ADD MSTORE PUSH2 0x38FF DUP3 DUP3 PUSH2 0x3792 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x160 DUP3 ADD MLOAD SWAP2 POP DUP5 DUP2 SUB PUSH2 0x160 DUP7 ADD MSTORE PUSH2 0x391D DUP2 DUP4 PUSH2 0x3792 JUMP JUMPDEST PUSH1 0x20 SWAP11 DUP12 ADD SWAP11 SWAP1 SWAP6 POP SWAP4 SWAP1 SWAP4 ADD SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3804 JUMP JUMPDEST DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3950 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x37E6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3962 DUP2 DUP6 PUSH2 0x36B0 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3981 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3997 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH2 0x220 DUP2 DUP8 SUB SLT ISZERO PUSH2 0x39AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x39C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39D1 DUP7 DUP3 DUP8 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2ADB DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3A1C DUP2 PUSH2 0x39DE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3A2C DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3A55 DUP2 PUSH2 0x39DE JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 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 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x180 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x200 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3B76 JUMPI PUSH2 0x3B76 PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3B97 JUMPI PUSH2 0x3B97 PUSH2 0x3A63 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3BB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 PUSH2 0x3BCF PUSH2 0x3BCA DUP5 PUSH2 0x3B7E JUMP JUMPDEST PUSH2 0x3B4E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x3BE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3C1C DUP2 PUSH2 0x39DE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3C37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C43 DUP6 DUP3 DUP7 ADD PUSH2 0x3BA5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2437 DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x3C9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3CBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CC8 DUP12 DUP3 DUP13 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3CE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CF3 DUP12 DUP3 DUP13 ADD PUSH2 0x3571 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH2 0x3D07 DUP2 PUSH2 0x39DE JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D2E DUP12 DUP3 DUP13 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2437 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x39C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3DB1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x80 DUP5 MSTORE PUSH2 0x3DED PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3E06 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF PUSH1 0x40 DUP5 ADD MLOAD AND PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x32F8 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x3E67 DUP4 DUP4 MLOAD PUSH2 0x3DD8 JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3E4B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x80 DUP5 MSTORE PUSH2 0x3E92 PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3EAB DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x3EC5 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x32F8 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x3F19 DUP4 DUP4 MLOAD PUSH2 0x3E7D JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3EFD JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH2 0x3F72 PUSH1 0x40 DUP3 ADD DUP6 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x3F8E PUSH1 0x60 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH2 0x3FBD PUSH1 0xC0 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH2 0x220 PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x3FD9 PUSH2 0x260 DUP5 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0xC0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x3FF7 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x120 DUP6 ADD MSTORE PUSH2 0x4016 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x100 DUP7 ADD MLOAD PUSH2 0x4040 PUSH2 0x140 DUP6 ADD DUP3 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST POP PUSH2 0x120 DUP7 ADD MLOAD DUP4 DUP3 SUB PUSH1 0x3F NOT ADD PUSH2 0x180 DUP6 ADD MSTORE PUSH2 0x405E DUP3 DUP3 PUSH2 0x3D9D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x140 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x1A0 DUP6 ADD MSTORE PUSH2 0x407E DUP3 DUP3 PUSH2 0x3738 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x160 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x1C0 DUP6 ADD MSTORE PUSH2 0x409E DUP3 DUP3 PUSH2 0x3738 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x180 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x1E0 DUP6 ADD MSTORE PUSH2 0x40BE DUP3 DUP3 PUSH2 0x3E2D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1A0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x200 DUP6 ADD MSTORE PUSH2 0x40DE DUP3 DUP3 PUSH2 0x3792 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1C0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x220 DUP6 ADD MSTORE PUSH2 0x40FE DUP3 DUP3 PUSH2 0x3792 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1E0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x240 DUP6 ADD MSTORE PUSH2 0x411E DUP3 DUP3 PUSH2 0x3EDF JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3962 DUP2 DUP6 DUP8 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4146 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x368C JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x415E PUSH2 0x3BCA DUP5 PUSH2 0x3B7E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x4172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2437 DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x368C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x419E DUP2 PUSH2 0x35B5 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x41CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C43 DUP6 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4150 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x41F3 JUMPI PUSH2 0x41F3 PUSH2 0x3A63 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2ADB DUP2 PUSH2 0x41FD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2ADB DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2437 DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x4150 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4267 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x4289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x42AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x42BB DUP9 PUSH1 0x20 DUP4 DUP11 ADD ADD PUSH2 0x4228 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x428E JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x42F3 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x6 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x4315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI PUSH1 0x40 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x4332 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x433A PUSH2 0x3A79 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x4345 DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD MLOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP5 MSTORE SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x40 ADD PUSH2 0x431A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4380 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 PUSH1 0x60 DUP5 MUL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x43A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI PUSH1 0x60 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x43BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43C7 PUSH2 0x3AA1 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x43D2 DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD MLOAD DUP2 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE SWAP1 DUP5 MSTORE SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x440A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4420 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x4431 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x443F PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP6 ADD ADD SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x4461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x463A JUMPI DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH2 0x180 DUP2 DUP11 SUB PUSH1 0x1F NOT ADD SLT ISZERO PUSH2 0x449B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x44A3 PUSH2 0x3AC3 JUMP JUMPDEST PUSH2 0x44AF PUSH1 0x20 DUP4 ADD PUSH2 0x4212 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x44C7 PUSH1 0x60 DUP4 ADD PUSH2 0x421D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x44E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x44F4 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4228 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4522 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4228 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP3 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4565 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4248 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x120 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4594 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x42D4 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x45B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45C4 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x42D4 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x45E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45F4 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4361 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x180 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4615 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4624 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4361 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x4466 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2437 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x37E6 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2ADB DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4675 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x467D PUSH2 0x3A79 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x468A DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 SWAP2 DUP3 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x46AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x46BD PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x46DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 CALLDATALOAD PUSH2 0x46F7 DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x46E4 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4724 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x6 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x4746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI PUSH2 0x475D DUP8 DUP3 PUSH2 0x4663 JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x40 ADD PUSH2 0x474B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2ADB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x478F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x479D PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x47BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x47E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 ADD PUSH1 0x80 DUP2 DUP10 SUB PUSH1 0x1F NOT ADD SLT ISZERO PUSH2 0x47F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4800 PUSH2 0x3AE6 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4819 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4828 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4844 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4853 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH2 0x4865 PUSH1 0x60 DUP4 ADD PUSH2 0x476D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4883 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4892 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x47C4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48C1 PUSH2 0x3AA1 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x48CE DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 SWAP2 DUP3 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x48FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x490B PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 PUSH1 0x60 DUP5 MUL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x492D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI PUSH2 0x4944 DUP8 DUP3 PUSH2 0x48A7 JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0x4932 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4965 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4973 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x4995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x49B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 ADD PUSH1 0x80 DUP2 DUP10 SUB PUSH1 0x1F NOT ADD SLT ISZERO PUSH2 0x49CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x49D6 PUSH2 0x3AE6 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x49EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x49FE DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4A1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A29 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A57 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4A76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A85 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x499A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x220 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4AAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4AB5 PUSH2 0x3B08 JUMP JUMPDEST SWAP1 POP PUSH2 0x4AC0 DUP3 PUSH2 0x4658 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x4ACE PUSH1 0x20 DUP4 ADD PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x4AF3 PUSH1 0x80 DUP4 ADD PUSH2 0x39F3 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4B11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4B1D DUP5 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4B3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4B48 DUP5 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4B67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4B73 DUP5 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x4B87 DUP4 PUSH2 0x100 DUP5 ADD PUSH2 0x4663 JUMP JUMPDEST PUSH2 0x100 DUP3 ADD MSTORE PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4BA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4BB3 DUP5 DUP3 DUP6 ADD PUSH2 0x469E JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4BE0 DUP5 DUP3 DUP6 ADD PUSH2 0x4705 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x180 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4C01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C0D DUP5 DUP3 DUP6 ADD PUSH2 0x4705 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP PUSH2 0x1A0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4C2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C3A DUP5 DUP3 DUP6 ADD PUSH2 0x477E JUMP JUMPDEST PUSH2 0x180 DUP4 ADD MSTORE POP PUSH2 0x1C0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4C5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C67 DUP5 DUP3 DUP6 ADD PUSH2 0x48EC JUMP JUMPDEST PUSH2 0x1A0 DUP4 ADD MSTORE POP PUSH2 0x1E0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C94 DUP5 DUP3 DUP6 ADD PUSH2 0x48EC JUMP JUMPDEST PUSH2 0x1C0 DUP4 ADD MSTORE POP PUSH2 0x200 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4CB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4CC1 DUP5 DUP3 DUP6 ADD PUSH2 0x4954 JUMP JUMPDEST PUSH2 0x1E0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ACD CALLDATASIZE DUP4 PUSH2 0x4A9A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4CF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x5 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4D50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4D6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x4D89 DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD CALLDATALOAD SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4DB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4DD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x5 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 CALLDATALOAD PUSH2 0x4E09 DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4DF6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4E3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4E5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x6 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x3788 JUMPI PUSH2 0x4E90 DUP7 DUP4 PUSH2 0x4D7E JUMP JUMPDEST PUSH1 0x40 SWAP6 DUP7 ADD SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4E7E JUMP JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x7E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4EB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP3 ADD ADD DUP4 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x372C JUMPI DUP4 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x4EF6 DUP3 DUP8 PUSH2 0x4EA3 JUMP JUMPDEST PUSH2 0x4F00 DUP2 DUP3 PUSH2 0x4D39 JUMP JUMPDEST PUSH1 0x80 DUP7 MSTORE PUSH2 0x4F12 PUSH1 0x80 DUP8 ADD DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP2 POP POP PUSH2 0x4F22 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x20 DUP9 ADD MSTORE PUSH2 0x4F35 DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH1 0xFF PUSH2 0x4F47 PUSH1 0x40 DUP5 ADD PUSH2 0x476D JUMP JUMPDEST AND PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x4F5A PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST SWAP3 POP DUP6 DUP3 SUB PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x4F6F DUP3 DUP5 DUP4 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0x20 SWAP12 DUP13 ADD SWAP12 SWAP1 SWAP7 POP SWAP5 SWAP1 SWAP5 ADD SWAP4 POP POP POP PUSH1 0x1 ADD PUSH2 0x4EDB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4F9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4FBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP2 MUL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 CALLDATALOAD PUSH2 0x4FF2 DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x60 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4FDF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP3 ADD ADD DUP4 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x372C JUMPI DUP4 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x5057 DUP3 DUP8 PUSH2 0x4EA3 JUMP JUMPDEST PUSH2 0x5061 DUP2 DUP3 PUSH2 0x4D39 JUMP JUMPDEST PUSH1 0x80 DUP7 MSTORE PUSH2 0x5073 PUSH1 0x80 DUP8 ADD DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5083 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x20 DUP9 ADD MSTORE PUSH2 0x5096 DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x50A7 PUSH1 0x40 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x40 DUP9 ADD MSTORE PUSH2 0x50BA DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x50CB PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST SWAP3 POP DUP6 DUP3 SUB PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x50E0 DUP3 DUP5 DUP4 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0x20 SWAP12 DUP13 ADD SWAP12 SWAP1 SWAP7 POP SWAP5 SWAP1 SWAP5 ADD SWAP4 POP POP POP PUSH1 0x1 ADD PUSH2 0x503C JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH2 0x511A PUSH1 0x40 DUP3 ADD PUSH2 0x510D DUP7 PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5128 PUSH1 0x20 DUP7 ADD PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x80 DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x515B SWAP1 DUP7 ADD PUSH2 0x39F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x5176 PUSH1 0xA0 DUP7 ADD DUP7 PUSH2 0x4D39 JUMP JUMPDEST PUSH2 0x220 PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x518D PUSH2 0x260 DUP6 ADD DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP2 POP POP PUSH2 0x519D PUSH1 0xC0 DUP8 ADD DUP8 PUSH2 0x4D39 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x51B5 DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x51C6 PUSH1 0xE0 DUP8 ADD DUP8 PUSH2 0x4D39 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x120 DUP7 ADD MSTORE PUSH2 0x51DE DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x51F4 PUSH2 0x140 DUP5 ADD PUSH2 0x100 DUP9 ADD PUSH2 0x4D7E JUMP JUMPDEST PUSH2 0x5202 PUSH2 0x140 DUP8 ADD DUP8 PUSH2 0x4D9F JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x180 DUP7 ADD MSTORE PUSH2 0x521A DUP4 DUP3 DUP5 PUSH2 0x4DE7 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x522C PUSH2 0x160 DUP8 ADD DUP8 PUSH2 0x4E27 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x1A0 DUP7 ADD MSTORE PUSH2 0x5244 DUP4 DUP3 DUP5 PUSH2 0x4E6F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x5256 PUSH2 0x180 DUP8 ADD DUP8 PUSH2 0x4E27 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x1C0 DUP7 ADD MSTORE PUSH2 0x526E DUP4 DUP3 DUP5 PUSH2 0x4E6F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x5280 PUSH2 0x1A0 DUP8 ADD DUP8 PUSH2 0x4D9F JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x1E0 DUP7 ADD MSTORE PUSH2 0x5298 DUP4 DUP3 DUP5 PUSH2 0x4EC2 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x52AA PUSH2 0x1C0 DUP8 ADD DUP8 PUSH2 0x4F88 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x200 DUP7 ADD MSTORE PUSH2 0x52C2 DUP4 DUP3 DUP5 PUSH2 0x4FD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x52D4 PUSH2 0x1E0 DUP8 ADD DUP8 PUSH2 0x4F88 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x220 DUP7 ADD MSTORE PUSH2 0x52EC DUP4 DUP3 DUP5 PUSH2 0x4FD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x52FE PUSH2 0x200 DUP8 ADD DUP8 PUSH2 0x4D9F JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x240 DUP7 ADD MSTORE PUSH2 0x5316 DUP4 DUP3 DUP5 PUSH2 0x5023 JUMP JUMPDEST SWAP3 POP POP POP DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3962 DUP2 DUP6 DUP8 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x5341 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x211C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x536E DUP2 PUSH2 0x532D JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x1 DUP3 AND DUP1 ISZERO PUSH2 0x5388 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x53A4 JUMPI PUSH2 0x53DB JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND PUSH1 0x20 DUP8 ADD MSTORE PUSH1 0x20 DUP3 ISZERO ISZERO PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP PUSH2 0x53DB JUMP JUMPDEST DUP5 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x53D2 JUMPI DUP2 SLOAD PUSH1 0x20 DUP3 DUP11 ADD ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x53B0 JUMP JUMPDEST DUP8 ADD PUSH1 0x20 ADD SWAP5 POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD DUP5 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI DUP5 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x5422 DUP4 DUP4 PUSH2 0x5361 JUMP JUMPDEST PUSH1 0x20 SWAP9 SWAP1 SWAP9 ADD SWAP8 SWAP3 POP PUSH1 0x1 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x5407 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP DUP3 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x1 DUP3 DUP2 ADD SLOAD PUSH1 0x20 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 SWAP7 ADD SWAP6 PUSH1 0x2 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x5450 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP DUP3 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x1 DUP3 DUP2 ADD SLOAD PUSH1 0x20 DUP9 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 DUP9 ADD MSTORE PUSH1 0x60 SWAP1 SWAP7 ADD SWAP6 PUSH1 0x3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x549B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 SLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5619 JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x552A DUP6 PUSH2 0x510D DUP5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x180 PUSH1 0x60 DUP7 ADD DUP2 SWAP1 MSTORE PUSH2 0x5560 SWAP1 DUP7 ADD PUSH1 0x3 DUP5 ADD PUSH2 0x5361 JUMP JUMPDEST DUP6 DUP2 SUB PUSH1 0x80 DUP8 ADD MSTORE PUSH2 0x5575 DUP2 PUSH1 0x4 DUP6 ADD PUSH2 0x5361 JUMP JUMPDEST SWAP1 POP PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0xA0 DUP8 ADD MSTORE PUSH1 0x6 DUP4 ADD SLOAD PUSH1 0xC0 DUP8 ADD MSTORE DUP6 DUP2 SUB PUSH1 0xE0 DUP8 ADD MSTORE PUSH2 0x55A0 DUP2 PUSH1 0x7 DUP6 ADD PUSH2 0x53E4 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 SUB PUSH2 0x100 DUP8 ADD MSTORE PUSH2 0x55B8 DUP2 PUSH1 0x8 DUP6 ADD PUSH2 0x5437 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 SUB PUSH2 0x120 DUP8 ADD MSTORE PUSH2 0x55D0 DUP2 PUSH1 0x9 DUP6 ADD PUSH2 0x5437 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 SUB PUSH2 0x140 DUP8 ADD MSTORE PUSH2 0x55E8 DUP2 PUSH1 0xA DUP6 ADD PUSH2 0x5482 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 SUB PUSH2 0x160 DUP8 ADD MSTORE PUSH2 0x5600 DUP2 PUSH1 0xB DUP6 ADD PUSH2 0x5482 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0xC SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x5504 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5640 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x36B0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2ACD JUMPI PUSH2 0x2ACD PUSH2 0x5648 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x5688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x56A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x56DA PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x36B0 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3962 DUP2 DUP6 DUP8 PUSH2 0x3F2F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5640 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1AA5 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x572D JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2FE0 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x5739 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5766 JUMPI PUSH2 0x5766 PUSH2 0x3A63 JUMP JUMPDEST PUSH2 0x577A DUP2 PUSH2 0x5774 DUP5 SLOAD PUSH2 0x532D JUMP JUMPDEST DUP5 PUSH2 0x5706 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x57AE JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x5796 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x2FE0 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x57DE JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x57BE JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x57FC JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP14 AND DUP2 MSTORE DUP12 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x5832 PUSH1 0x40 DUP3 ADD DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x180 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x584A PUSH2 0x180 DUP4 ADD DUP13 PUSH2 0x36B0 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x585C DUP2 DUP13 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP DUP10 PUSH1 0xA0 DUP5 ADD MSTORE DUP9 PUSH1 0xC0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x587C DUP2 DUP10 PUSH2 0x36DC JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x5891 DUP2 DUP9 PUSH2 0x3738 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH2 0x120 DUP5 ADD MSTORE PUSH2 0x58A6 DUP2 DUP8 PUSH2 0x3738 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH2 0x140 DUP5 ADD MSTORE PUSH2 0x58BB DUP2 DUP7 PUSH2 0x3792 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH2 0x160 DUP5 ADD MSTORE PUSH2 0x58D0 DUP2 DUP6 PUSH2 0x3792 JUMP JUMPDEST SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x58F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0xC0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5919 JUMPI PUSH2 0x5919 PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x592E DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x5941 DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x5954 DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x5967 DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x597A DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x59A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x59BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2437 DUP2 PUSH2 0x35B5 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2437 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3DD8 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2437 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3E7D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x59FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x5A1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x5A35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x6 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2437 DUP4 DUP4 PUSH2 0x4663 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2ACD JUMPI PUSH2 0x2ACD PUSH2 0x5648 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x5A93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x5AAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x60 DUP2 MUL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2437 DUP4 DUP4 PUSH2 0x48A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2437 DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 MLOAD AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xA0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x5B40 PUSH1 0xC0 DUP5 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x32F8 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5B7C PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x5B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5BC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5BD0 DUP9 PUSH1 0x20 DUP4 DUP11 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x5BA3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x100 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x5C1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C22 PUSH2 0x3B2B JUMP JUMPDEST PUSH2 0x5C2B DUP3 PUSH2 0x4658 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C52 DUP7 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C7D DUP7 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5CB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5CBC DUP7 DUP3 DUP6 ADD PUSH2 0x5B5D JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5CDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5CE7 DUP7 DUP3 DUP6 ADD PUSH2 0x4705 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5D06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5D12 DUP7 DUP3 DUP6 ADD PUSH2 0x48EC JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5D48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5640 DUP5 DUP3 DUP6 ADD PUSH2 0x4A9A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCF0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 PUSH27 0xEECA7C160B50B61024F1F8783D84F8761468E0014F4551B41ACBC3 0x2F 0xE0 DUP6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1014:27475:50:-:0;;;1171:4:4;1128:48;;1014:27475:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@NATIVE_TOKEN_ADDRESS_13625":{"entryPoint":null,"id":13625,"parameterSlots":0,"returnSlots":0},"@UPGRADE_INTERFACE_VERSION_972":{"entryPoint":null,"id":972,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_554":{"entryPoint":6989,"id":554,"parameterSlots":1,"returnSlots":0},"@__Ownable_init_unchained_581":{"entryPoint":11417,"id":581,"parameterSlots":1,"returnSlots":0},"@__UUPSUpgradeable_init_1002":{"entryPoint":6981,"id":1002,"parameterSlots":0,"returnSlots":0},"@_authorizeUpgrade_13733":{"entryPoint":7221,"id":13733,"parameterSlots":1,"returnSlots":0},"@_callOptionalReturn_5130":{"entryPoint":13315,"id":5130,"parameterSlots":2,"returnSlots":0},"@_checkInMessage_14027":{"entryPoint":5380,"id":14027,"parameterSlots":5,"returnSlots":2},"@_checkInitializing_870":{"entryPoint":11362,"id":870,"parameterSlots":0,"returnSlots":0},"@_checkMerkleRoot_13874":{"entryPoint":10817,"id":13874,"parameterSlots":1,"returnSlots":1},"@_checkNonPayable_3695":{"entryPoint":13057,"id":3695,"parameterSlots":0,"returnSlots":0},"@_checkNotDelegated_1078":{"entryPoint":7418,"id":1078,"parameterSlots":0,"returnSlots":0},"@_checkOwner_622":{"entryPoint":7006,"id":622,"parameterSlots":0,"returnSlots":0},"@_checkProxy_1062":{"entryPoint":7056,"id":1062,"parameterSlots":0,"returnSlots":0},"@_decodeCustomError_13850":{"entryPoint":6117,"id":13850,"parameterSlots":1,"returnSlots":2},"@_disableInitializers_916":{"entryPoint":6826,"id":916,"parameterSlots":0,"returnSlots":0},"@_efficientKeccak256_7383":{"entryPoint":null,"id":7383,"parameterSlots":2,"returnSlots":1},"@_getInitializableStorage_947":{"entryPoint":null,"id":947,"parameterSlots":0,"returnSlots":1},"@_getInitializedVersion_927":{"entryPoint":null,"id":927,"parameterSlots":0,"returnSlots":1},"@_getOwnable2StepStorage_388":{"entryPoint":null,"id":388,"parameterSlots":0,"returnSlots":1},"@_getOwnableStorage_525":{"entryPoint":null,"id":525,"parameterSlots":0,"returnSlots":1},"@_isInitializing_938":{"entryPoint":null,"id":938,"parameterSlots":0,"returnSlots":1},"@_msgSender_2855":{"entryPoint":null,"id":2855,"parameterSlots":0,"returnSlots":1},"@_preprocessInMessage_14116":{"entryPoint":6237,"id":14116,"parameterSlots":2,"returnSlots":0},"@_processInMessageTokens_14306":{"entryPoint":7547,"id":14306,"parameterSlots":1,"returnSlots":1},"@_processOutMessageTokens_14614":{"entryPoint":9278,"id":14614,"parameterSlots":1,"returnSlots":4},"@_revert_6627":{"entryPoint":13428,"id":6627,"parameterSlots":1,"returnSlots":0},"@_setImplementation_3475":{"entryPoint":12838,"id":3475,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_474":{"entryPoint":7491,"id":474,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_693":{"entryPoint":11553,"id":693,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCallUUPS_1129":{"entryPoint":7229,"id":1129,"parameterSlots":2,"returnSlots":0},"@acceptOwnership_498":{"entryPoint":2985,"id":498,"parameterSlots":0,"returnSlots":0},"@appLayerContext_15133":{"entryPoint":3057,"id":15133,"parameterSlots":3,"returnSlots":0},"@burnNFT_18034":{"entryPoint":12305,"id":18034,"parameterSlots":1,"returnSlots":0},"@burn_17916":{"entryPoint":12112,"id":17916,"parameterSlots":1,"returnSlots":0},"@commutativeKeccak256_7371":{"entryPoint":12794,"id":7371,"parameterSlots":2,"returnSlots":1},"@decodeInMessage_18286":{"entryPoint":10976,"id":18286,"parameterSlots":3,"returnSlots":1},"@decodeOutMessage_18336":{"entryPoint":9031,"id":18336,"parameterSlots":3,"returnSlots":1},"@disableInitializers_16246":{"entryPoint":2273,"id":16246,"parameterSlots":0,"returnSlots":0},"@functionDelegateCall_6545":{"entryPoint":12939,"id":6545,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_6935":{"entryPoint":null,"id":6935,"parameterSlots":1,"returnSlots":1},"@getCollectedProtocolFee_15420":{"entryPoint":null,"id":15420,"parameterSlots":0,"returnSlots":1},"@getImplementation_3448":{"entryPoint":null,"id":3448,"parameterSlots":0,"returnSlots":1},"@getInMessageState_15402":{"entryPoint":null,"id":15402,"parameterSlots":1,"returnSlots":1},"@getProtocolFee_15411":{"entryPoint":null,"id":15411,"parameterSlots":0,"returnSlots":1},"@initialize_13724":{"entryPoint":2337,"id":13724,"parameterSlots":2,"returnSlots":0},"@lockNFT_18117":{"entryPoint":12621,"id":18117,"parameterSlots":1,"returnSlots":0},"@lock_17945":{"entryPoint":12263,"id":17945,"parameterSlots":1,"returnSlots":0},"@mintNFT_17984":{"entryPoint":11706,"id":17984,"parameterSlots":2,"returnSlots":0},"@mint_17848":{"entryPoint":11249,"id":17848,"parameterSlots":2,"returnSlots":0},"@owner_605":{"entryPoint":3567,"id":605,"parameterSlots":0,"returnSlots":1},"@pendingOwner_422":{"entryPoint":5206,"id":422,"parameterSlots":0,"returnSlots":1},"@prepareTacHeader_18418":{"entryPoint":8482,"id":18418,"parameterSlots":3,"returnSlots":1},"@processProofCalldata_7598":{"entryPoint":10751,"id":7598,"parameterSlots":3,"returnSlots":1},"@proxiableUUID_1020":{"entryPoint":2892,"id":1020,"parameterSlots":0,"returnSlots":1},"@receiveMessage_15010":{"entryPoint":3684,"id":15010,"parameterSlots":8,"returnSlots":0},"@renounceOwnership_636":{"entryPoint":2921,"id":636,"parameterSlots":0,"returnSlots":0},"@safeTransferFrom_4835":{"entryPoint":13183,"id":4835,"parameterSlots":4,"returnSlots":0},"@safeTransfer_4808":{"entryPoint":13088,"id":4808,"parameterSlots":3,"returnSlots":0},"@sendMessage_15389":{"entryPoint":4155,"id":15389,"parameterSlots":3,"returnSlots":0},"@setProtocolFee_13781":{"entryPoint":2939,"id":13781,"parameterSlots":1,"returnSlots":0},"@setTokenUtils_13761":{"entryPoint":3620,"id":13761,"parameterSlots":1,"returnSlots":0},"@simulateAppLayerContext_14904":{"entryPoint":1805,"id":14904,"parameterSlots":3,"returnSlots":0},"@simulateReceiveMessage_14818":{"entryPoint":1038,"id":14818,"parameterSlots":9,"returnSlots":3},"@transferOwnership_450":{"entryPoint":5247,"id":450,"parameterSlots":1,"returnSlots":0},"@unlockNFT_18076":{"entryPoint":11939,"id":18076,"parameterSlots":2,"returnSlots":0},"@unlock_17874":{"entryPoint":11666,"id":17874,"parameterSlots":2,"returnSlots":0},"@upgradeToAndCall_1040":{"entryPoint":2861,"id":1040,"parameterSlots":2,"returnSlots":0},"@upgradeToAndCall_3511":{"entryPoint":11467,"id":3511,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_6585":{"entryPoint":13223,"id":6585,"parameterSlots":3,"returnSlots":1},"@withdrawProtocolFee_13839":{"entryPoint":2625,"id":13839,"parameterSlots":2,"returnSlots":0},"abi_decode_address":{"entryPoint":14835,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":16925,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn":{"entryPoint":18078,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_bytes32_dyn_calldata":{"entryPoint":13681,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_array_string_dyn":{"entryPoint":23389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_string_dyn_fromMemory":{"entryPoint":16968,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_NFTAmount_dyn":{"entryPoint":18668,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_NFTAmount_dyn_fromMemory":{"entryPoint":17249,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_NFTInfo_dyn":{"entryPoint":18772,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_TokenAmount_dyn":{"entryPoint":18181,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_TokenAmount_dyn_fromMemory":{"entryPoint":17108,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_TokenInfo_dyn":{"entryPoint":18302,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_bytes_fromMemory":{"entryPoint":16720,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes":{"entryPoint":15269,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":13609,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_string_fromMemory":{"entryPoint":16936,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_NFTAmount":{"entryPoint":18599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_TokenAmount":{"entryPoint":18019,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_UnionInMessage":{"entryPoint":19098,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":15462,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_uint256":{"entryPoint":14903,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_address":{"entryPoint":14846,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":15358,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_fromMemory":{"entryPoint":17400,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":22952,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_boolt_bytes_memory_ptr_fromMemory":{"entryPoint":16768,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32":{"entryPoint":15437,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":23019,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_EpochInfo_$16098_memory_ptr_fromMemory":{"entryPoint":22755,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InMessageV1_$16055_memory_ptr":{"entryPoint":23840,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_NFTAmount_$16007_memory_ptr":{"entryPoint":23236,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr":{"entryPoint":23519,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_TokenAmount_$15999_memory_ptr":{"entryPoint":23117,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_UnionInMessage_$18197_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":14700,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_bytes_calldata_ptr":{"entryPoint":15701,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256t_bytes_calldata_ptrt_array$_t_bytes32_$dyn_calldata_ptrt_addresst_bytes_calldata_ptr":{"entryPoint":15491,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptrt_bytes32t_array$_t_bytes32_$dyn_calldata_ptrt_bool":{"entryPoint":13763,"id":null,"parameterSlots":2,"returnSlots":9},"abi_decode_tuple_t_uint64":{"entryPoint":23264,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint64":{"entryPoint":18008,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64_fromMemory":{"entryPoint":16914,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint8":{"entryPoint":18285,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encodeUpdatedPos_struct_NFTAmount":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_array_address_dyn":{"entryPoint":15773,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_address_dyn_calldata":{"entryPoint":19943,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_string_dyn":{"entryPoint":14044,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_string_storage_dyn":{"entryPoint":21476,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_NFTAmount_calldata_dyn_calldata":{"entryPoint":20432,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_struct_NFTAmount_dyn":{"entryPoint":14226,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_NFTAmount_storage_dyn":{"entryPoint":21634,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_NFTInfo_calldata_dyn_calldata":{"entryPoint":20515,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_struct_NFTInfo_dyn":{"entryPoint":16095,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_OutMessageProcessedEventStruct_dyn":{"entryPoint":14310,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_TokenAmount_calldata_dyn_calldata":{"entryPoint":20079,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_struct_TokenAmount_dyn":{"entryPoint":14136,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_TokenAmount_storage_dyn":{"entryPoint":21559,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_TokenInfo_calldata_dyn_calldata":{"entryPoint":20162,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_struct_TokenInfo_dyn":{"entryPoint":15917,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":16175,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_string":{"entryPoint":14000,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_storage":{"entryPoint":21345,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_NFTInfo":{"entryPoint":15997,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_TokenAmount":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_TokenAmount_calldata":{"entryPoint":19838,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_TokenInfo":{"entryPoint":15832,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes32_t_uint64_t_bytes32__to_t_bytes32_t_uint64_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":22199,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":16692,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":23892,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":17989,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage__to_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":21719,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_bool_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":14645,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":22053,"id":null,"parameterSlots":3,"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_address_t_address__to_t_bytes32_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":22253,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":22215,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":15682,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_NFTInfo_$15993_memory_ptr__to_t_struct$_NFTInfo_$15993_memory_ptr__fromStack_reversed":{"entryPoint":23000,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr__to_t_struct$_TacHeaderV1_$16110_memory_ptr__fromStack_reversed":{"entryPoint":23293,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_TokenInfo_$15983_memory_ptr__to_t_struct$_TokenInfo_$15983_memory_ptr__fromStack_reversed":{"entryPoint":22981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_UnionInMessage_$18197_calldata_ptr_t_bytes_calldata_ptr__to_t_struct$_UnionInMessage_$18197_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20729,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_struct$_UnionInMessage_$18197_memory_ptr_t_bytes_calldata_ptr__to_t_struct$_UnionInMessage_$18197_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":16216,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_bytes32_t_address_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_uint256_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr__to_t_uint64_t_bytes32_t_address_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_uint256_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":22539,"id":null,"parameterSlots":13,"returnSlots":1},"abi_encode_tuple_t_uint64_t_uint256__to_t_uint64_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_uint64":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"access_calldata_tail_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":19674,"id":null,"parameterSlots":2,"returnSlots":2},"access_calldata_tail_t_array$_t_struct$_NFTAmount_$16007_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":23164,"id":null,"parameterSlots":2,"returnSlots":2},"access_calldata_tail_t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":23044,"id":null,"parameterSlots":2,"returnSlots":2},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"access_calldata_tail_t_string_calldata_ptr":{"entryPoint":22129,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":15182,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_9694":{"entryPoint":14969,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_9697":{"entryPoint":15009,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_9701":{"entryPoint":15043,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_9705":{"entryPoint":15078,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_9710":{"entryPoint":15112,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_9714":{"entryPoint":15147,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn":{"entryPoint":16858,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":15230,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_array_struct_OutMessageProcessedEventStruct_storage_dyn":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_access_array_address_dyn_calldata":{"entryPoint":19871,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_access_array_struct_NFTAmount_calldata_dyn_calldata":{"entryPoint":20360,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_access_array_struct_TokenAmount_calldata_dyn_calldata":{"entryPoint":20007,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_access_string_calldata":{"entryPoint":19769,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_access_struct_TokenInfo_calldata":{"entryPoint":20131,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":23145,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":22110,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":22278,"id":null,"parameterSlots":3,"returnSlots":0},"convert_t_struct$_UnionInMessage_$18197_calldata_ptr_to_t_struct$_UnionInMessage_$18197_memory_ptr":{"entryPoint":19662,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":22349,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":13964,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":21293,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_uint64":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"mod_t_uint256":{"entryPoint":22918,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":22088,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":15751,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":19747,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":14947,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":14814,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":13749,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint64":{"entryPoint":16893,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:78149:89","nodeType":"YulBlock","src":"0:78149:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"86:275:89","nodeType":"YulBlock","src":"86:275:89","statements":[{"body":{"nativeSrc":"135:16:89","nodeType":"YulBlock","src":"135:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"144:1:89","nodeType":"YulLiteral","src":"144:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"147:1:89","nodeType":"YulLiteral","src":"147:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"137:6:89","nodeType":"YulIdentifier","src":"137:6:89"},"nativeSrc":"137:12:89","nodeType":"YulFunctionCall","src":"137:12:89"},"nativeSrc":"137:12:89","nodeType":"YulExpressionStatement","src":"137:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"114:6:89","nodeType":"YulIdentifier","src":"114:6:89"},{"kind":"number","nativeSrc":"122:4:89","nodeType":"YulLiteral","src":"122:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"110:3:89","nodeType":"YulIdentifier","src":"110:3:89"},"nativeSrc":"110:17:89","nodeType":"YulFunctionCall","src":"110:17:89"},{"name":"end","nativeSrc":"129:3:89","nodeType":"YulIdentifier","src":"129:3:89"}],"functionName":{"name":"slt","nativeSrc":"106:3:89","nodeType":"YulIdentifier","src":"106:3:89"},"nativeSrc":"106:27:89","nodeType":"YulFunctionCall","src":"106:27:89"}],"functionName":{"name":"iszero","nativeSrc":"99:6:89","nodeType":"YulIdentifier","src":"99:6:89"},"nativeSrc":"99:35:89","nodeType":"YulFunctionCall","src":"99:35:89"},"nativeSrc":"96:55:89","nodeType":"YulIf","src":"96:55:89"},{"nativeSrc":"160:30:89","nodeType":"YulAssignment","src":"160:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"183:6:89","nodeType":"YulIdentifier","src":"183:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"170:12:89","nodeType":"YulIdentifier","src":"170:12:89"},"nativeSrc":"170:20:89","nodeType":"YulFunctionCall","src":"170:20:89"},"variableNames":[{"name":"length","nativeSrc":"160:6:89","nodeType":"YulIdentifier","src":"160:6:89"}]},{"body":{"nativeSrc":"233:16:89","nodeType":"YulBlock","src":"233:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"242:1:89","nodeType":"YulLiteral","src":"242:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"245:1:89","nodeType":"YulLiteral","src":"245:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"235:6:89","nodeType":"YulIdentifier","src":"235:6:89"},"nativeSrc":"235:12:89","nodeType":"YulFunctionCall","src":"235:12:89"},"nativeSrc":"235:12:89","nodeType":"YulExpressionStatement","src":"235:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"205:6:89","nodeType":"YulIdentifier","src":"205:6:89"},{"kind":"number","nativeSrc":"213:18:89","nodeType":"YulLiteral","src":"213:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"202:2:89","nodeType":"YulIdentifier","src":"202:2:89"},"nativeSrc":"202:30:89","nodeType":"YulFunctionCall","src":"202:30:89"},"nativeSrc":"199:50:89","nodeType":"YulIf","src":"199:50:89"},{"nativeSrc":"258:29:89","nodeType":"YulAssignment","src":"258:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"274:6:89","nodeType":"YulIdentifier","src":"274:6:89"},{"kind":"number","nativeSrc":"282:4:89","nodeType":"YulLiteral","src":"282:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"270:3:89","nodeType":"YulIdentifier","src":"270:3:89"},"nativeSrc":"270:17:89","nodeType":"YulFunctionCall","src":"270:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"258:8:89","nodeType":"YulIdentifier","src":"258:8:89"}]},{"body":{"nativeSrc":"339:16:89","nodeType":"YulBlock","src":"339:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"348:1:89","nodeType":"YulLiteral","src":"348:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"351:1:89","nodeType":"YulLiteral","src":"351:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"341:6:89","nodeType":"YulIdentifier","src":"341:6:89"},"nativeSrc":"341:12:89","nodeType":"YulFunctionCall","src":"341:12:89"},"nativeSrc":"341:12:89","nodeType":"YulExpressionStatement","src":"341:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"310:6:89","nodeType":"YulIdentifier","src":"310:6:89"},{"name":"length","nativeSrc":"318:6:89","nodeType":"YulIdentifier","src":"318:6:89"}],"functionName":{"name":"add","nativeSrc":"306:3:89","nodeType":"YulIdentifier","src":"306:3:89"},"nativeSrc":"306:19:89","nodeType":"YulFunctionCall","src":"306:19:89"},{"kind":"number","nativeSrc":"327:4:89","nodeType":"YulLiteral","src":"327:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"302:3:89","nodeType":"YulIdentifier","src":"302:3:89"},"nativeSrc":"302:30:89","nodeType":"YulFunctionCall","src":"302:30:89"},{"name":"end","nativeSrc":"334:3:89","nodeType":"YulIdentifier","src":"334:3:89"}],"functionName":{"name":"gt","nativeSrc":"299:2:89","nodeType":"YulIdentifier","src":"299:2:89"},"nativeSrc":"299:39:89","nodeType":"YulFunctionCall","src":"299:39:89"},"nativeSrc":"296:59:89","nodeType":"YulIf","src":"296:59:89"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"14:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"49:6:89","nodeType":"YulTypedName","src":"49:6:89","type":""},{"name":"end","nativeSrc":"57:3:89","nodeType":"YulTypedName","src":"57:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"65:8:89","nodeType":"YulTypedName","src":"65:8:89","type":""},{"name":"length","nativeSrc":"75:6:89","nodeType":"YulTypedName","src":"75:6:89","type":""}],"src":"14:347:89"},{"body":{"nativeSrc":"450:283:89","nodeType":"YulBlock","src":"450:283:89","statements":[{"body":{"nativeSrc":"499:16:89","nodeType":"YulBlock","src":"499:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"508:1:89","nodeType":"YulLiteral","src":"508:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"511:1:89","nodeType":"YulLiteral","src":"511:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"501:6:89","nodeType":"YulIdentifier","src":"501:6:89"},"nativeSrc":"501:12:89","nodeType":"YulFunctionCall","src":"501:12:89"},"nativeSrc":"501:12:89","nodeType":"YulExpressionStatement","src":"501:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"478:6:89","nodeType":"YulIdentifier","src":"478:6:89"},{"kind":"number","nativeSrc":"486:4:89","nodeType":"YulLiteral","src":"486:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"474:3:89","nodeType":"YulIdentifier","src":"474:3:89"},"nativeSrc":"474:17:89","nodeType":"YulFunctionCall","src":"474:17:89"},{"name":"end","nativeSrc":"493:3:89","nodeType":"YulIdentifier","src":"493:3:89"}],"functionName":{"name":"slt","nativeSrc":"470:3:89","nodeType":"YulIdentifier","src":"470:3:89"},"nativeSrc":"470:27:89","nodeType":"YulFunctionCall","src":"470:27:89"}],"functionName":{"name":"iszero","nativeSrc":"463:6:89","nodeType":"YulIdentifier","src":"463:6:89"},"nativeSrc":"463:35:89","nodeType":"YulFunctionCall","src":"463:35:89"},"nativeSrc":"460:55:89","nodeType":"YulIf","src":"460:55:89"},{"nativeSrc":"524:30:89","nodeType":"YulAssignment","src":"524:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"547:6:89","nodeType":"YulIdentifier","src":"547:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"534:12:89","nodeType":"YulIdentifier","src":"534:12:89"},"nativeSrc":"534:20:89","nodeType":"YulFunctionCall","src":"534:20:89"},"variableNames":[{"name":"length","nativeSrc":"524:6:89","nodeType":"YulIdentifier","src":"524:6:89"}]},{"body":{"nativeSrc":"597:16:89","nodeType":"YulBlock","src":"597:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"606:1:89","nodeType":"YulLiteral","src":"606:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"609:1:89","nodeType":"YulLiteral","src":"609:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"599:6:89","nodeType":"YulIdentifier","src":"599:6:89"},"nativeSrc":"599:12:89","nodeType":"YulFunctionCall","src":"599:12:89"},"nativeSrc":"599:12:89","nodeType":"YulExpressionStatement","src":"599:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"569:6:89","nodeType":"YulIdentifier","src":"569:6:89"},{"kind":"number","nativeSrc":"577:18:89","nodeType":"YulLiteral","src":"577:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"566:2:89","nodeType":"YulIdentifier","src":"566:2:89"},"nativeSrc":"566:30:89","nodeType":"YulFunctionCall","src":"566:30:89"},"nativeSrc":"563:50:89","nodeType":"YulIf","src":"563:50:89"},{"nativeSrc":"622:29:89","nodeType":"YulAssignment","src":"622:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"638:6:89","nodeType":"YulIdentifier","src":"638:6:89"},{"kind":"number","nativeSrc":"646:4:89","nodeType":"YulLiteral","src":"646:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"634:3:89","nodeType":"YulIdentifier","src":"634:3:89"},"nativeSrc":"634:17:89","nodeType":"YulFunctionCall","src":"634:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"622:8:89","nodeType":"YulIdentifier","src":"622:8:89"}]},{"body":{"nativeSrc":"711:16:89","nodeType":"YulBlock","src":"711:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"720:1:89","nodeType":"YulLiteral","src":"720:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"723:1:89","nodeType":"YulLiteral","src":"723:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"713:6:89","nodeType":"YulIdentifier","src":"713:6:89"},"nativeSrc":"713:12:89","nodeType":"YulFunctionCall","src":"713:12:89"},"nativeSrc":"713:12:89","nodeType":"YulExpressionStatement","src":"713:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"674:6:89","nodeType":"YulIdentifier","src":"674:6:89"},{"arguments":[{"kind":"number","nativeSrc":"686:1:89","nodeType":"YulLiteral","src":"686:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"689:6:89","nodeType":"YulIdentifier","src":"689:6:89"}],"functionName":{"name":"shl","nativeSrc":"682:3:89","nodeType":"YulIdentifier","src":"682:3:89"},"nativeSrc":"682:14:89","nodeType":"YulFunctionCall","src":"682:14:89"}],"functionName":{"name":"add","nativeSrc":"670:3:89","nodeType":"YulIdentifier","src":"670:3:89"},"nativeSrc":"670:27:89","nodeType":"YulFunctionCall","src":"670:27:89"},{"kind":"number","nativeSrc":"699:4:89","nodeType":"YulLiteral","src":"699:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"666:3:89","nodeType":"YulIdentifier","src":"666:3:89"},"nativeSrc":"666:38:89","nodeType":"YulFunctionCall","src":"666:38:89"},{"name":"end","nativeSrc":"706:3:89","nodeType":"YulIdentifier","src":"706:3:89"}],"functionName":{"name":"gt","nativeSrc":"663:2:89","nodeType":"YulIdentifier","src":"663:2:89"},"nativeSrc":"663:47:89","nodeType":"YulFunctionCall","src":"663:47:89"},"nativeSrc":"660:67:89","nodeType":"YulIf","src":"660:67:89"}]},"name":"abi_decode_array_bytes32_dyn_calldata","nativeSrc":"366:367:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"413:6:89","nodeType":"YulTypedName","src":"413:6:89","type":""},{"name":"end","nativeSrc":"421:3:89","nodeType":"YulTypedName","src":"421:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"429:8:89","nodeType":"YulTypedName","src":"429:8:89","type":""},{"name":"length","nativeSrc":"439:6:89","nodeType":"YulTypedName","src":"439:6:89","type":""}],"src":"366:367:89"},{"body":{"nativeSrc":"780:76:89","nodeType":"YulBlock","src":"780:76:89","statements":[{"body":{"nativeSrc":"834:16:89","nodeType":"YulBlock","src":"834:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"843:1:89","nodeType":"YulLiteral","src":"843:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"846:1:89","nodeType":"YulLiteral","src":"846:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"836:6:89","nodeType":"YulIdentifier","src":"836:6:89"},"nativeSrc":"836:12:89","nodeType":"YulFunctionCall","src":"836:12:89"},"nativeSrc":"836:12:89","nodeType":"YulExpressionStatement","src":"836:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"803:5:89","nodeType":"YulIdentifier","src":"803:5:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"824:5:89","nodeType":"YulIdentifier","src":"824:5:89"}],"functionName":{"name":"iszero","nativeSrc":"817:6:89","nodeType":"YulIdentifier","src":"817:6:89"},"nativeSrc":"817:13:89","nodeType":"YulFunctionCall","src":"817:13:89"}],"functionName":{"name":"iszero","nativeSrc":"810:6:89","nodeType":"YulIdentifier","src":"810:6:89"},"nativeSrc":"810:21:89","nodeType":"YulFunctionCall","src":"810:21:89"}],"functionName":{"name":"eq","nativeSrc":"800:2:89","nodeType":"YulIdentifier","src":"800:2:89"},"nativeSrc":"800:32:89","nodeType":"YulFunctionCall","src":"800:32:89"}],"functionName":{"name":"iszero","nativeSrc":"793:6:89","nodeType":"YulIdentifier","src":"793:6:89"},"nativeSrc":"793:40:89","nodeType":"YulFunctionCall","src":"793:40:89"},"nativeSrc":"790:60:89","nodeType":"YulIf","src":"790:60:89"}]},"name":"validator_revert_bool","nativeSrc":"738:118:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"769:5:89","nodeType":"YulTypedName","src":"769:5:89","type":""}],"src":"738:118:89"},{"body":{"nativeSrc":"1086:1190:89","nodeType":"YulBlock","src":"1086:1190:89","statements":[{"body":{"nativeSrc":"1133:16:89","nodeType":"YulBlock","src":"1133:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1142:1:89","nodeType":"YulLiteral","src":"1142:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1145:1:89","nodeType":"YulLiteral","src":"1145:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1135:6:89","nodeType":"YulIdentifier","src":"1135:6:89"},"nativeSrc":"1135:12:89","nodeType":"YulFunctionCall","src":"1135:12:89"},"nativeSrc":"1135:12:89","nodeType":"YulExpressionStatement","src":"1135:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1107:7:89","nodeType":"YulIdentifier","src":"1107:7:89"},{"name":"headStart","nativeSrc":"1116:9:89","nodeType":"YulIdentifier","src":"1116:9:89"}],"functionName":{"name":"sub","nativeSrc":"1103:3:89","nodeType":"YulIdentifier","src":"1103:3:89"},"nativeSrc":"1103:23:89","nodeType":"YulFunctionCall","src":"1103:23:89"},{"kind":"number","nativeSrc":"1128:3:89","nodeType":"YulLiteral","src":"1128:3:89","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"1099:3:89","nodeType":"YulIdentifier","src":"1099:3:89"},"nativeSrc":"1099:33:89","nodeType":"YulFunctionCall","src":"1099:33:89"},"nativeSrc":"1096:53:89","nodeType":"YulIf","src":"1096:53:89"},{"nativeSrc":"1158:14:89","nodeType":"YulVariableDeclaration","src":"1158:14:89","value":{"kind":"number","nativeSrc":"1171:1:89","nodeType":"YulLiteral","src":"1171:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1162:5:89","nodeType":"YulTypedName","src":"1162:5:89","type":""}]},{"nativeSrc":"1181:32:89","nodeType":"YulAssignment","src":"1181:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1203:9:89","nodeType":"YulIdentifier","src":"1203:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1190:12:89","nodeType":"YulIdentifier","src":"1190:12:89"},"nativeSrc":"1190:23:89","nodeType":"YulFunctionCall","src":"1190:23:89"},"variableNames":[{"name":"value","nativeSrc":"1181:5:89","nodeType":"YulIdentifier","src":"1181:5:89"}]},{"nativeSrc":"1222:15:89","nodeType":"YulAssignment","src":"1222:15:89","value":{"name":"value","nativeSrc":"1232:5:89","nodeType":"YulIdentifier","src":"1232:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1222:6:89","nodeType":"YulIdentifier","src":"1222:6:89"}]},{"nativeSrc":"1246:46:89","nodeType":"YulVariableDeclaration","src":"1246:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1277:9:89","nodeType":"YulIdentifier","src":"1277:9:89"},{"kind":"number","nativeSrc":"1288:2:89","nodeType":"YulLiteral","src":"1288:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1273:3:89","nodeType":"YulIdentifier","src":"1273:3:89"},"nativeSrc":"1273:18:89","nodeType":"YulFunctionCall","src":"1273:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1260:12:89","nodeType":"YulIdentifier","src":"1260:12:89"},"nativeSrc":"1260:32:89","nodeType":"YulFunctionCall","src":"1260:32:89"},"variables":[{"name":"offset","nativeSrc":"1250:6:89","nodeType":"YulTypedName","src":"1250:6:89","type":""}]},{"body":{"nativeSrc":"1335:16:89","nodeType":"YulBlock","src":"1335:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1344:1:89","nodeType":"YulLiteral","src":"1344:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1347:1:89","nodeType":"YulLiteral","src":"1347:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1337:6:89","nodeType":"YulIdentifier","src":"1337:6:89"},"nativeSrc":"1337:12:89","nodeType":"YulFunctionCall","src":"1337:12:89"},"nativeSrc":"1337:12:89","nodeType":"YulExpressionStatement","src":"1337:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1307:6:89","nodeType":"YulIdentifier","src":"1307:6:89"},{"kind":"number","nativeSrc":"1315:18:89","nodeType":"YulLiteral","src":"1315:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1304:2:89","nodeType":"YulIdentifier","src":"1304:2:89"},"nativeSrc":"1304:30:89","nodeType":"YulFunctionCall","src":"1304:30:89"},"nativeSrc":"1301:50:89","nodeType":"YulIf","src":"1301:50:89"},{"nativeSrc":"1360:84:89","nodeType":"YulVariableDeclaration","src":"1360:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1416:9:89","nodeType":"YulIdentifier","src":"1416:9:89"},{"name":"offset","nativeSrc":"1427:6:89","nodeType":"YulIdentifier","src":"1427:6:89"}],"functionName":{"name":"add","nativeSrc":"1412:3:89","nodeType":"YulIdentifier","src":"1412:3:89"},"nativeSrc":"1412:22:89","nodeType":"YulFunctionCall","src":"1412:22:89"},{"name":"dataEnd","nativeSrc":"1436:7:89","nodeType":"YulIdentifier","src":"1436:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1386:25:89","nodeType":"YulIdentifier","src":"1386:25:89"},"nativeSrc":"1386:58:89","nodeType":"YulFunctionCall","src":"1386:58:89"},"variables":[{"name":"value1_1","nativeSrc":"1364:8:89","nodeType":"YulTypedName","src":"1364:8:89","type":""},{"name":"value2_1","nativeSrc":"1374:8:89","nodeType":"YulTypedName","src":"1374:8:89","type":""}]},{"nativeSrc":"1453:18:89","nodeType":"YulAssignment","src":"1453:18:89","value":{"name":"value1_1","nativeSrc":"1463:8:89","nodeType":"YulIdentifier","src":"1463:8:89"},"variableNames":[{"name":"value1","nativeSrc":"1453:6:89","nodeType":"YulIdentifier","src":"1453:6:89"}]},{"nativeSrc":"1480:18:89","nodeType":"YulAssignment","src":"1480:18:89","value":{"name":"value2_1","nativeSrc":"1490:8:89","nodeType":"YulIdentifier","src":"1490:8:89"},"variableNames":[{"name":"value2","nativeSrc":"1480:6:89","nodeType":"YulIdentifier","src":"1480:6:89"}]},{"nativeSrc":"1507:48:89","nodeType":"YulVariableDeclaration","src":"1507:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1540:9:89","nodeType":"YulIdentifier","src":"1540:9:89"},{"kind":"number","nativeSrc":"1551:2:89","nodeType":"YulLiteral","src":"1551:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1536:3:89","nodeType":"YulIdentifier","src":"1536:3:89"},"nativeSrc":"1536:18:89","nodeType":"YulFunctionCall","src":"1536:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1523:12:89","nodeType":"YulIdentifier","src":"1523:12:89"},"nativeSrc":"1523:32:89","nodeType":"YulFunctionCall","src":"1523:32:89"},"variables":[{"name":"offset_1","nativeSrc":"1511:8:89","nodeType":"YulTypedName","src":"1511:8:89","type":""}]},{"body":{"nativeSrc":"1600:16:89","nodeType":"YulBlock","src":"1600:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1609:1:89","nodeType":"YulLiteral","src":"1609:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1612:1:89","nodeType":"YulLiteral","src":"1612:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1602:6:89","nodeType":"YulIdentifier","src":"1602:6:89"},"nativeSrc":"1602:12:89","nodeType":"YulFunctionCall","src":"1602:12:89"},"nativeSrc":"1602:12:89","nodeType":"YulExpressionStatement","src":"1602:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1570:8:89","nodeType":"YulIdentifier","src":"1570:8:89"},{"kind":"number","nativeSrc":"1580:18:89","nodeType":"YulLiteral","src":"1580:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1567:2:89","nodeType":"YulIdentifier","src":"1567:2:89"},"nativeSrc":"1567:32:89","nodeType":"YulFunctionCall","src":"1567:32:89"},"nativeSrc":"1564:52:89","nodeType":"YulIf","src":"1564:52:89"},{"nativeSrc":"1625:86:89","nodeType":"YulVariableDeclaration","src":"1625:86:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1681:9:89","nodeType":"YulIdentifier","src":"1681:9:89"},{"name":"offset_1","nativeSrc":"1692:8:89","nodeType":"YulIdentifier","src":"1692:8:89"}],"functionName":{"name":"add","nativeSrc":"1677:3:89","nodeType":"YulIdentifier","src":"1677:3:89"},"nativeSrc":"1677:24:89","nodeType":"YulFunctionCall","src":"1677:24:89"},{"name":"dataEnd","nativeSrc":"1703:7:89","nodeType":"YulIdentifier","src":"1703:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1651:25:89","nodeType":"YulIdentifier","src":"1651:25:89"},"nativeSrc":"1651:60:89","nodeType":"YulFunctionCall","src":"1651:60:89"},"variables":[{"name":"value3_1","nativeSrc":"1629:8:89","nodeType":"YulTypedName","src":"1629:8:89","type":""},{"name":"value4_1","nativeSrc":"1639:8:89","nodeType":"YulTypedName","src":"1639:8:89","type":""}]},{"nativeSrc":"1720:18:89","nodeType":"YulAssignment","src":"1720:18:89","value":{"name":"value3_1","nativeSrc":"1730:8:89","nodeType":"YulIdentifier","src":"1730:8:89"},"variableNames":[{"name":"value3","nativeSrc":"1720:6:89","nodeType":"YulIdentifier","src":"1720:6:89"}]},{"nativeSrc":"1747:18:89","nodeType":"YulAssignment","src":"1747:18:89","value":{"name":"value4_1","nativeSrc":"1757:8:89","nodeType":"YulIdentifier","src":"1757:8:89"},"variableNames":[{"name":"value4","nativeSrc":"1747:6:89","nodeType":"YulIdentifier","src":"1747:6:89"}]},{"nativeSrc":"1774:16:89","nodeType":"YulVariableDeclaration","src":"1774:16:89","value":{"kind":"number","nativeSrc":"1789:1:89","nodeType":"YulLiteral","src":"1789:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"1778:7:89","nodeType":"YulTypedName","src":"1778:7:89","type":""}]},{"nativeSrc":"1799:43:89","nodeType":"YulAssignment","src":"1799:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1827:9:89","nodeType":"YulIdentifier","src":"1827:9:89"},{"kind":"number","nativeSrc":"1838:2:89","nodeType":"YulLiteral","src":"1838:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1823:3:89","nodeType":"YulIdentifier","src":"1823:3:89"},"nativeSrc":"1823:18:89","nodeType":"YulFunctionCall","src":"1823:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1810:12:89","nodeType":"YulIdentifier","src":"1810:12:89"},"nativeSrc":"1810:32:89","nodeType":"YulFunctionCall","src":"1810:32:89"},"variableNames":[{"name":"value_1","nativeSrc":"1799:7:89","nodeType":"YulIdentifier","src":"1799:7:89"}]},{"nativeSrc":"1851:17:89","nodeType":"YulAssignment","src":"1851:17:89","value":{"name":"value_1","nativeSrc":"1861:7:89","nodeType":"YulIdentifier","src":"1861:7:89"},"variableNames":[{"name":"value5","nativeSrc":"1851:6:89","nodeType":"YulIdentifier","src":"1851:6:89"}]},{"nativeSrc":"1877:49:89","nodeType":"YulVariableDeclaration","src":"1877:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1910:9:89","nodeType":"YulIdentifier","src":"1910:9:89"},{"kind":"number","nativeSrc":"1921:3:89","nodeType":"YulLiteral","src":"1921:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1906:3:89","nodeType":"YulIdentifier","src":"1906:3:89"},"nativeSrc":"1906:19:89","nodeType":"YulFunctionCall","src":"1906:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"1893:12:89","nodeType":"YulIdentifier","src":"1893:12:89"},"nativeSrc":"1893:33:89","nodeType":"YulFunctionCall","src":"1893:33:89"},"variables":[{"name":"offset_2","nativeSrc":"1881:8:89","nodeType":"YulTypedName","src":"1881:8:89","type":""}]},{"body":{"nativeSrc":"1971:16:89","nodeType":"YulBlock","src":"1971:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1980:1:89","nodeType":"YulLiteral","src":"1980:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1983:1:89","nodeType":"YulLiteral","src":"1983:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1973:6:89","nodeType":"YulIdentifier","src":"1973:6:89"},"nativeSrc":"1973:12:89","nodeType":"YulFunctionCall","src":"1973:12:89"},"nativeSrc":"1973:12:89","nodeType":"YulExpressionStatement","src":"1973:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"1941:8:89","nodeType":"YulIdentifier","src":"1941:8:89"},{"kind":"number","nativeSrc":"1951:18:89","nodeType":"YulLiteral","src":"1951:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1938:2:89","nodeType":"YulIdentifier","src":"1938:2:89"},"nativeSrc":"1938:32:89","nodeType":"YulFunctionCall","src":"1938:32:89"},"nativeSrc":"1935:52:89","nodeType":"YulIf","src":"1935:52:89"},{"nativeSrc":"1996:98:89","nodeType":"YulVariableDeclaration","src":"1996:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2064:9:89","nodeType":"YulIdentifier","src":"2064:9:89"},{"name":"offset_2","nativeSrc":"2075:8:89","nodeType":"YulIdentifier","src":"2075:8:89"}],"functionName":{"name":"add","nativeSrc":"2060:3:89","nodeType":"YulIdentifier","src":"2060:3:89"},"nativeSrc":"2060:24:89","nodeType":"YulFunctionCall","src":"2060:24:89"},{"name":"dataEnd","nativeSrc":"2086:7:89","nodeType":"YulIdentifier","src":"2086:7:89"}],"functionName":{"name":"abi_decode_array_bytes32_dyn_calldata","nativeSrc":"2022:37:89","nodeType":"YulIdentifier","src":"2022:37:89"},"nativeSrc":"2022:72:89","nodeType":"YulFunctionCall","src":"2022:72:89"},"variables":[{"name":"value6_1","nativeSrc":"2000:8:89","nodeType":"YulTypedName","src":"2000:8:89","type":""},{"name":"value7_1","nativeSrc":"2010:8:89","nodeType":"YulTypedName","src":"2010:8:89","type":""}]},{"nativeSrc":"2103:18:89","nodeType":"YulAssignment","src":"2103:18:89","value":{"name":"value6_1","nativeSrc":"2113:8:89","nodeType":"YulIdentifier","src":"2113:8:89"},"variableNames":[{"name":"value6","nativeSrc":"2103:6:89","nodeType":"YulIdentifier","src":"2103:6:89"}]},{"nativeSrc":"2130:18:89","nodeType":"YulAssignment","src":"2130:18:89","value":{"name":"value7_1","nativeSrc":"2140:8:89","nodeType":"YulIdentifier","src":"2140:8:89"},"variableNames":[{"name":"value7","nativeSrc":"2130:6:89","nodeType":"YulIdentifier","src":"2130:6:89"}]},{"nativeSrc":"2157:48:89","nodeType":"YulVariableDeclaration","src":"2157:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2189:9:89","nodeType":"YulIdentifier","src":"2189:9:89"},{"kind":"number","nativeSrc":"2200:3:89","nodeType":"YulLiteral","src":"2200:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"2185:3:89","nodeType":"YulIdentifier","src":"2185:3:89"},"nativeSrc":"2185:19:89","nodeType":"YulFunctionCall","src":"2185:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"2172:12:89","nodeType":"YulIdentifier","src":"2172:12:89"},"nativeSrc":"2172:33:89","nodeType":"YulFunctionCall","src":"2172:33:89"},"variables":[{"name":"value_2","nativeSrc":"2161:7:89","nodeType":"YulTypedName","src":"2161:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"2236:7:89","nodeType":"YulIdentifier","src":"2236:7:89"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"2214:21:89","nodeType":"YulIdentifier","src":"2214:21:89"},"nativeSrc":"2214:30:89","nodeType":"YulFunctionCall","src":"2214:30:89"},"nativeSrc":"2214:30:89","nodeType":"YulExpressionStatement","src":"2214:30:89"},{"nativeSrc":"2253:17:89","nodeType":"YulAssignment","src":"2253:17:89","value":{"name":"value_2","nativeSrc":"2263:7:89","nodeType":"YulIdentifier","src":"2263:7:89"},"variableNames":[{"name":"value8","nativeSrc":"2253:6:89","nodeType":"YulIdentifier","src":"2253:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptrt_bytes32t_array$_t_bytes32_$dyn_calldata_ptrt_bool","nativeSrc":"861:1415:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"988:9:89","nodeType":"YulTypedName","src":"988:9:89","type":""},{"name":"dataEnd","nativeSrc":"999:7:89","nodeType":"YulTypedName","src":"999:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1011:6:89","nodeType":"YulTypedName","src":"1011:6:89","type":""},{"name":"value1","nativeSrc":"1019:6:89","nodeType":"YulTypedName","src":"1019:6:89","type":""},{"name":"value2","nativeSrc":"1027:6:89","nodeType":"YulTypedName","src":"1027:6:89","type":""},{"name":"value3","nativeSrc":"1035:6:89","nodeType":"YulTypedName","src":"1035:6:89","type":""},{"name":"value4","nativeSrc":"1043:6:89","nodeType":"YulTypedName","src":"1043:6:89","type":""},{"name":"value5","nativeSrc":"1051:6:89","nodeType":"YulTypedName","src":"1051:6:89","type":""},{"name":"value6","nativeSrc":"1059:6:89","nodeType":"YulTypedName","src":"1059:6:89","type":""},{"name":"value7","nativeSrc":"1067:6:89","nodeType":"YulTypedName","src":"1067:6:89","type":""},{"name":"value8","nativeSrc":"1075:6:89","nodeType":"YulTypedName","src":"1075:6:89","type":""}],"src":"861:1415:89"},{"body":{"nativeSrc":"2324:59:89","nodeType":"YulBlock","src":"2324:59:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2341:3:89","nodeType":"YulIdentifier","src":"2341:3:89"},{"arguments":[{"name":"value","nativeSrc":"2350:5:89","nodeType":"YulIdentifier","src":"2350:5:89"},{"kind":"number","nativeSrc":"2357:18:89","nodeType":"YulLiteral","src":"2357:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2346:3:89","nodeType":"YulIdentifier","src":"2346:3:89"},"nativeSrc":"2346:30:89","nodeType":"YulFunctionCall","src":"2346:30:89"}],"functionName":{"name":"mstore","nativeSrc":"2334:6:89","nodeType":"YulIdentifier","src":"2334:6:89"},"nativeSrc":"2334:43:89","nodeType":"YulFunctionCall","src":"2334:43:89"},"nativeSrc":"2334:43:89","nodeType":"YulExpressionStatement","src":"2334:43:89"}]},"name":"abi_encode_uint64","nativeSrc":"2281:102:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2308:5:89","nodeType":"YulTypedName","src":"2308:5:89","type":""},{"name":"pos","nativeSrc":"2315:3:89","nodeType":"YulTypedName","src":"2315:3:89","type":""}],"src":"2281:102:89"},{"body":{"nativeSrc":"2432:60:89","nodeType":"YulBlock","src":"2432:60:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2449:3:89","nodeType":"YulIdentifier","src":"2449:3:89"},{"arguments":[{"name":"value","nativeSrc":"2458:5:89","nodeType":"YulIdentifier","src":"2458:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2473:3:89","nodeType":"YulLiteral","src":"2473:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"2478:1:89","nodeType":"YulLiteral","src":"2478:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2469:3:89","nodeType":"YulIdentifier","src":"2469:3:89"},"nativeSrc":"2469:11:89","nodeType":"YulFunctionCall","src":"2469:11:89"},{"kind":"number","nativeSrc":"2482:1:89","nodeType":"YulLiteral","src":"2482:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2465:3:89","nodeType":"YulIdentifier","src":"2465:3:89"},"nativeSrc":"2465:19:89","nodeType":"YulFunctionCall","src":"2465:19:89"}],"functionName":{"name":"and","nativeSrc":"2454:3:89","nodeType":"YulIdentifier","src":"2454:3:89"},"nativeSrc":"2454:31:89","nodeType":"YulFunctionCall","src":"2454:31:89"}],"functionName":{"name":"mstore","nativeSrc":"2442:6:89","nodeType":"YulIdentifier","src":"2442:6:89"},"nativeSrc":"2442:44:89","nodeType":"YulFunctionCall","src":"2442:44:89"},"nativeSrc":"2442:44:89","nodeType":"YulExpressionStatement","src":"2442:44:89"}]},"name":"abi_encode_address","nativeSrc":"2388:104:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2416:5:89","nodeType":"YulTypedName","src":"2416:5:89","type":""},{"name":"pos","nativeSrc":"2423:3:89","nodeType":"YulTypedName","src":"2423:3:89","type":""}],"src":"2388:104:89"},{"body":{"nativeSrc":"2563:184:89","nodeType":"YulBlock","src":"2563:184:89","statements":[{"nativeSrc":"2573:10:89","nodeType":"YulVariableDeclaration","src":"2573:10:89","value":{"kind":"number","nativeSrc":"2582:1:89","nodeType":"YulLiteral","src":"2582:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2577:1:89","nodeType":"YulTypedName","src":"2577:1:89","type":""}]},{"body":{"nativeSrc":"2642:63:89","nodeType":"YulBlock","src":"2642:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2667:3:89","nodeType":"YulIdentifier","src":"2667:3:89"},{"name":"i","nativeSrc":"2672:1:89","nodeType":"YulIdentifier","src":"2672:1:89"}],"functionName":{"name":"add","nativeSrc":"2663:3:89","nodeType":"YulIdentifier","src":"2663:3:89"},"nativeSrc":"2663:11:89","nodeType":"YulFunctionCall","src":"2663:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2686:3:89","nodeType":"YulIdentifier","src":"2686:3:89"},{"name":"i","nativeSrc":"2691:1:89","nodeType":"YulIdentifier","src":"2691:1:89"}],"functionName":{"name":"add","nativeSrc":"2682:3:89","nodeType":"YulIdentifier","src":"2682:3:89"},"nativeSrc":"2682:11:89","nodeType":"YulFunctionCall","src":"2682:11:89"}],"functionName":{"name":"mload","nativeSrc":"2676:5:89","nodeType":"YulIdentifier","src":"2676:5:89"},"nativeSrc":"2676:18:89","nodeType":"YulFunctionCall","src":"2676:18:89"}],"functionName":{"name":"mstore","nativeSrc":"2656:6:89","nodeType":"YulIdentifier","src":"2656:6:89"},"nativeSrc":"2656:39:89","nodeType":"YulFunctionCall","src":"2656:39:89"},"nativeSrc":"2656:39:89","nodeType":"YulExpressionStatement","src":"2656:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2603:1:89","nodeType":"YulIdentifier","src":"2603:1:89"},{"name":"length","nativeSrc":"2606:6:89","nodeType":"YulIdentifier","src":"2606:6:89"}],"functionName":{"name":"lt","nativeSrc":"2600:2:89","nodeType":"YulIdentifier","src":"2600:2:89"},"nativeSrc":"2600:13:89","nodeType":"YulFunctionCall","src":"2600:13:89"},"nativeSrc":"2592:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"2614:19:89","nodeType":"YulBlock","src":"2614:19:89","statements":[{"nativeSrc":"2616:15:89","nodeType":"YulAssignment","src":"2616:15:89","value":{"arguments":[{"name":"i","nativeSrc":"2625:1:89","nodeType":"YulIdentifier","src":"2625:1:89"},{"kind":"number","nativeSrc":"2628:2:89","nodeType":"YulLiteral","src":"2628:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2621:3:89","nodeType":"YulIdentifier","src":"2621:3:89"},"nativeSrc":"2621:10:89","nodeType":"YulFunctionCall","src":"2621:10:89"},"variableNames":[{"name":"i","nativeSrc":"2616:1:89","nodeType":"YulIdentifier","src":"2616:1:89"}]}]},"pre":{"nativeSrc":"2596:3:89","nodeType":"YulBlock","src":"2596:3:89","statements":[]},"src":"2592:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2725:3:89","nodeType":"YulIdentifier","src":"2725:3:89"},{"name":"length","nativeSrc":"2730:6:89","nodeType":"YulIdentifier","src":"2730:6:89"}],"functionName":{"name":"add","nativeSrc":"2721:3:89","nodeType":"YulIdentifier","src":"2721:3:89"},"nativeSrc":"2721:16:89","nodeType":"YulFunctionCall","src":"2721:16:89"},{"kind":"number","nativeSrc":"2739:1:89","nodeType":"YulLiteral","src":"2739:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2714:6:89","nodeType":"YulIdentifier","src":"2714:6:89"},"nativeSrc":"2714:27:89","nodeType":"YulFunctionCall","src":"2714:27:89"},"nativeSrc":"2714:27:89","nodeType":"YulExpressionStatement","src":"2714:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2497:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2541:3:89","nodeType":"YulTypedName","src":"2541:3:89","type":""},{"name":"dst","nativeSrc":"2546:3:89","nodeType":"YulTypedName","src":"2546:3:89","type":""},{"name":"length","nativeSrc":"2551:6:89","nodeType":"YulTypedName","src":"2551:6:89","type":""}],"src":"2497:250:89"},{"body":{"nativeSrc":"2802:221:89","nodeType":"YulBlock","src":"2802:221:89","statements":[{"nativeSrc":"2812:26:89","nodeType":"YulVariableDeclaration","src":"2812:26:89","value":{"arguments":[{"name":"value","nativeSrc":"2832:5:89","nodeType":"YulIdentifier","src":"2832:5:89"}],"functionName":{"name":"mload","nativeSrc":"2826:5:89","nodeType":"YulIdentifier","src":"2826:5:89"},"nativeSrc":"2826:12:89","nodeType":"YulFunctionCall","src":"2826:12:89"},"variables":[{"name":"length","nativeSrc":"2816:6:89","nodeType":"YulTypedName","src":"2816:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2854:3:89","nodeType":"YulIdentifier","src":"2854:3:89"},{"name":"length","nativeSrc":"2859:6:89","nodeType":"YulIdentifier","src":"2859:6:89"}],"functionName":{"name":"mstore","nativeSrc":"2847:6:89","nodeType":"YulIdentifier","src":"2847:6:89"},"nativeSrc":"2847:19:89","nodeType":"YulFunctionCall","src":"2847:19:89"},"nativeSrc":"2847:19:89","nodeType":"YulExpressionStatement","src":"2847:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2914:5:89","nodeType":"YulIdentifier","src":"2914:5:89"},{"kind":"number","nativeSrc":"2921:4:89","nodeType":"YulLiteral","src":"2921:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2910:3:89","nodeType":"YulIdentifier","src":"2910:3:89"},"nativeSrc":"2910:16:89","nodeType":"YulFunctionCall","src":"2910:16:89"},{"arguments":[{"name":"pos","nativeSrc":"2932:3:89","nodeType":"YulIdentifier","src":"2932:3:89"},{"kind":"number","nativeSrc":"2937:4:89","nodeType":"YulLiteral","src":"2937:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2928:3:89","nodeType":"YulIdentifier","src":"2928:3:89"},"nativeSrc":"2928:14:89","nodeType":"YulFunctionCall","src":"2928:14:89"},{"name":"length","nativeSrc":"2944:6:89","nodeType":"YulIdentifier","src":"2944:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2875:34:89","nodeType":"YulIdentifier","src":"2875:34:89"},"nativeSrc":"2875:76:89","nodeType":"YulFunctionCall","src":"2875:76:89"},"nativeSrc":"2875:76:89","nodeType":"YulExpressionStatement","src":"2875:76:89"},{"nativeSrc":"2960:57:89","nodeType":"YulAssignment","src":"2960:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2975:3:89","nodeType":"YulIdentifier","src":"2975:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2988:6:89","nodeType":"YulIdentifier","src":"2988:6:89"},{"kind":"number","nativeSrc":"2996:2:89","nodeType":"YulLiteral","src":"2996:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2984:3:89","nodeType":"YulIdentifier","src":"2984:3:89"},"nativeSrc":"2984:15:89","nodeType":"YulFunctionCall","src":"2984:15:89"},{"arguments":[{"kind":"number","nativeSrc":"3005:2:89","nodeType":"YulLiteral","src":"3005:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3001:3:89","nodeType":"YulIdentifier","src":"3001:3:89"},"nativeSrc":"3001:7:89","nodeType":"YulFunctionCall","src":"3001:7:89"}],"functionName":{"name":"and","nativeSrc":"2980:3:89","nodeType":"YulIdentifier","src":"2980:3:89"},"nativeSrc":"2980:29:89","nodeType":"YulFunctionCall","src":"2980:29:89"}],"functionName":{"name":"add","nativeSrc":"2971:3:89","nodeType":"YulIdentifier","src":"2971:3:89"},"nativeSrc":"2971:39:89","nodeType":"YulFunctionCall","src":"2971:39:89"},{"kind":"number","nativeSrc":"3012:4:89","nodeType":"YulLiteral","src":"3012:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2967:3:89","nodeType":"YulIdentifier","src":"2967:3:89"},"nativeSrc":"2967:50:89","nodeType":"YulFunctionCall","src":"2967:50:89"},"variableNames":[{"name":"end","nativeSrc":"2960:3:89","nodeType":"YulIdentifier","src":"2960:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"2752:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2779:5:89","nodeType":"YulTypedName","src":"2779:5:89","type":""},{"name":"pos","nativeSrc":"2786:3:89","nodeType":"YulTypedName","src":"2786:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2794:3:89","nodeType":"YulTypedName","src":"2794:3:89","type":""}],"src":"2752:271:89"},{"body":{"nativeSrc":"3088:519:89","nodeType":"YulBlock","src":"3088:519:89","statements":[{"nativeSrc":"3098:16:89","nodeType":"YulVariableDeclaration","src":"3098:16:89","value":{"name":"pos","nativeSrc":"3111:3:89","nodeType":"YulIdentifier","src":"3111:3:89"},"variables":[{"name":"pos_1","nativeSrc":"3102:5:89","nodeType":"YulTypedName","src":"3102:5:89","type":""}]},{"nativeSrc":"3123:26:89","nodeType":"YulVariableDeclaration","src":"3123:26:89","value":{"arguments":[{"name":"value","nativeSrc":"3143:5:89","nodeType":"YulIdentifier","src":"3143:5:89"}],"functionName":{"name":"mload","nativeSrc":"3137:5:89","nodeType":"YulIdentifier","src":"3137:5:89"},"nativeSrc":"3137:12:89","nodeType":"YulFunctionCall","src":"3137:12:89"},"variables":[{"name":"length","nativeSrc":"3127:6:89","nodeType":"YulTypedName","src":"3127:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3165:3:89","nodeType":"YulIdentifier","src":"3165:3:89"},{"name":"length","nativeSrc":"3170:6:89","nodeType":"YulIdentifier","src":"3170:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3158:6:89","nodeType":"YulIdentifier","src":"3158:6:89"},"nativeSrc":"3158:19:89","nodeType":"YulFunctionCall","src":"3158:19:89"},"nativeSrc":"3158:19:89","nodeType":"YulExpressionStatement","src":"3158:19:89"},{"nativeSrc":"3186:21:89","nodeType":"YulAssignment","src":"3186:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"3197:3:89","nodeType":"YulIdentifier","src":"3197:3:89"},{"kind":"number","nativeSrc":"3202:4:89","nodeType":"YulLiteral","src":"3202:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3193:3:89","nodeType":"YulIdentifier","src":"3193:3:89"},"nativeSrc":"3193:14:89","nodeType":"YulFunctionCall","src":"3193:14:89"},"variableNames":[{"name":"pos","nativeSrc":"3186:3:89","nodeType":"YulIdentifier","src":"3186:3:89"}]},{"nativeSrc":"3216:49:89","nodeType":"YulVariableDeclaration","src":"3216:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"3236:5:89","nodeType":"YulIdentifier","src":"3236:5:89"},{"arguments":[{"kind":"number","nativeSrc":"3247:1:89","nodeType":"YulLiteral","src":"3247:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"3250:6:89","nodeType":"YulIdentifier","src":"3250:6:89"}],"functionName":{"name":"shl","nativeSrc":"3243:3:89","nodeType":"YulIdentifier","src":"3243:3:89"},"nativeSrc":"3243:14:89","nodeType":"YulFunctionCall","src":"3243:14:89"}],"functionName":{"name":"add","nativeSrc":"3232:3:89","nodeType":"YulIdentifier","src":"3232:3:89"},"nativeSrc":"3232:26:89","nodeType":"YulFunctionCall","src":"3232:26:89"},{"kind":"number","nativeSrc":"3260:4:89","nodeType":"YulLiteral","src":"3260:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3228:3:89","nodeType":"YulIdentifier","src":"3228:3:89"},"nativeSrc":"3228:37:89","nodeType":"YulFunctionCall","src":"3228:37:89"},"variables":[{"name":"tail","nativeSrc":"3220:4:89","nodeType":"YulTypedName","src":"3220:4:89","type":""}]},{"nativeSrc":"3274:30:89","nodeType":"YulVariableDeclaration","src":"3274:30:89","value":{"arguments":[{"name":"value","nativeSrc":"3292:5:89","nodeType":"YulIdentifier","src":"3292:5:89"},{"kind":"number","nativeSrc":"3299:4:89","nodeType":"YulLiteral","src":"3299:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3288:3:89","nodeType":"YulIdentifier","src":"3288:3:89"},"nativeSrc":"3288:16:89","nodeType":"YulFunctionCall","src":"3288:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"3278:6:89","nodeType":"YulTypedName","src":"3278:6:89","type":""}]},{"nativeSrc":"3313:10:89","nodeType":"YulVariableDeclaration","src":"3313:10:89","value":{"kind":"number","nativeSrc":"3322:1:89","nodeType":"YulLiteral","src":"3322:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3317:1:89","nodeType":"YulTypedName","src":"3317:1:89","type":""}]},{"body":{"nativeSrc":"3381:200:89","nodeType":"YulBlock","src":"3381:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3402:3:89","nodeType":"YulIdentifier","src":"3402:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"3415:4:89","nodeType":"YulIdentifier","src":"3415:4:89"},{"name":"pos_1","nativeSrc":"3421:5:89","nodeType":"YulIdentifier","src":"3421:5:89"}],"functionName":{"name":"sub","nativeSrc":"3411:3:89","nodeType":"YulIdentifier","src":"3411:3:89"},"nativeSrc":"3411:16:89","nodeType":"YulFunctionCall","src":"3411:16:89"},{"arguments":[{"kind":"number","nativeSrc":"3433:2:89","nodeType":"YulLiteral","src":"3433:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3429:3:89","nodeType":"YulIdentifier","src":"3429:3:89"},"nativeSrc":"3429:7:89","nodeType":"YulFunctionCall","src":"3429:7:89"}],"functionName":{"name":"add","nativeSrc":"3407:3:89","nodeType":"YulIdentifier","src":"3407:3:89"},"nativeSrc":"3407:30:89","nodeType":"YulFunctionCall","src":"3407:30:89"}],"functionName":{"name":"mstore","nativeSrc":"3395:6:89","nodeType":"YulIdentifier","src":"3395:6:89"},"nativeSrc":"3395:43:89","nodeType":"YulFunctionCall","src":"3395:43:89"},"nativeSrc":"3395:43:89","nodeType":"YulExpressionStatement","src":"3395:43:89"},{"nativeSrc":"3451:46:89","nodeType":"YulAssignment","src":"3451:46:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"3483:6:89","nodeType":"YulIdentifier","src":"3483:6:89"}],"functionName":{"name":"mload","nativeSrc":"3477:5:89","nodeType":"YulIdentifier","src":"3477:5:89"},"nativeSrc":"3477:13:89","nodeType":"YulFunctionCall","src":"3477:13:89"},{"name":"tail","nativeSrc":"3492:4:89","nodeType":"YulIdentifier","src":"3492:4:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"3459:17:89","nodeType":"YulIdentifier","src":"3459:17:89"},"nativeSrc":"3459:38:89","nodeType":"YulFunctionCall","src":"3459:38:89"},"variableNames":[{"name":"tail","nativeSrc":"3451:4:89","nodeType":"YulIdentifier","src":"3451:4:89"}]},{"nativeSrc":"3510:27:89","nodeType":"YulAssignment","src":"3510:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"3524:6:89","nodeType":"YulIdentifier","src":"3524:6:89"},{"kind":"number","nativeSrc":"3532:4:89","nodeType":"YulLiteral","src":"3532:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3520:3:89","nodeType":"YulIdentifier","src":"3520:3:89"},"nativeSrc":"3520:17:89","nodeType":"YulFunctionCall","src":"3520:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"3510:6:89","nodeType":"YulIdentifier","src":"3510:6:89"}]},{"nativeSrc":"3550:21:89","nodeType":"YulAssignment","src":"3550:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"3561:3:89","nodeType":"YulIdentifier","src":"3561:3:89"},{"kind":"number","nativeSrc":"3566:4:89","nodeType":"YulLiteral","src":"3566:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3557:3:89","nodeType":"YulIdentifier","src":"3557:3:89"},"nativeSrc":"3557:14:89","nodeType":"YulFunctionCall","src":"3557:14:89"},"variableNames":[{"name":"pos","nativeSrc":"3550:3:89","nodeType":"YulIdentifier","src":"3550:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3343:1:89","nodeType":"YulIdentifier","src":"3343:1:89"},{"name":"length","nativeSrc":"3346:6:89","nodeType":"YulIdentifier","src":"3346:6:89"}],"functionName":{"name":"lt","nativeSrc":"3340:2:89","nodeType":"YulIdentifier","src":"3340:2:89"},"nativeSrc":"3340:13:89","nodeType":"YulFunctionCall","src":"3340:13:89"},"nativeSrc":"3332:249:89","nodeType":"YulForLoop","post":{"nativeSrc":"3354:18:89","nodeType":"YulBlock","src":"3354:18:89","statements":[{"nativeSrc":"3356:14:89","nodeType":"YulAssignment","src":"3356:14:89","value":{"arguments":[{"name":"i","nativeSrc":"3365:1:89","nodeType":"YulIdentifier","src":"3365:1:89"},{"kind":"number","nativeSrc":"3368:1:89","nodeType":"YulLiteral","src":"3368:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3361:3:89","nodeType":"YulIdentifier","src":"3361:3:89"},"nativeSrc":"3361:9:89","nodeType":"YulFunctionCall","src":"3361:9:89"},"variableNames":[{"name":"i","nativeSrc":"3356:1:89","nodeType":"YulIdentifier","src":"3356:1:89"}]}]},"pre":{"nativeSrc":"3336:3:89","nodeType":"YulBlock","src":"3336:3:89","statements":[]},"src":"3332:249:89"},{"nativeSrc":"3590:11:89","nodeType":"YulAssignment","src":"3590:11:89","value":{"name":"tail","nativeSrc":"3597:4:89","nodeType":"YulIdentifier","src":"3597:4:89"},"variableNames":[{"name":"end","nativeSrc":"3590:3:89","nodeType":"YulIdentifier","src":"3590:3:89"}]}]},"name":"abi_encode_array_string_dyn","nativeSrc":"3028:579:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3065:5:89","nodeType":"YulTypedName","src":"3065:5:89","type":""},{"name":"pos","nativeSrc":"3072:3:89","nodeType":"YulTypedName","src":"3072:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3080:3:89","nodeType":"YulTypedName","src":"3080:3:89","type":""}],"src":"3028:579:89"},{"body":{"nativeSrc":"3667:123:89","nodeType":"YulBlock","src":"3667:123:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3684:3:89","nodeType":"YulIdentifier","src":"3684:3:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3699:5:89","nodeType":"YulIdentifier","src":"3699:5:89"}],"functionName":{"name":"mload","nativeSrc":"3693:5:89","nodeType":"YulIdentifier","src":"3693:5:89"},"nativeSrc":"3693:12:89","nodeType":"YulFunctionCall","src":"3693:12:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3715:3:89","nodeType":"YulLiteral","src":"3715:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"3720:1:89","nodeType":"YulLiteral","src":"3720:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3711:3:89","nodeType":"YulIdentifier","src":"3711:3:89"},"nativeSrc":"3711:11:89","nodeType":"YulFunctionCall","src":"3711:11:89"},{"kind":"number","nativeSrc":"3724:1:89","nodeType":"YulLiteral","src":"3724:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3707:3:89","nodeType":"YulIdentifier","src":"3707:3:89"},"nativeSrc":"3707:19:89","nodeType":"YulFunctionCall","src":"3707:19:89"}],"functionName":{"name":"and","nativeSrc":"3689:3:89","nodeType":"YulIdentifier","src":"3689:3:89"},"nativeSrc":"3689:38:89","nodeType":"YulFunctionCall","src":"3689:38:89"}],"functionName":{"name":"mstore","nativeSrc":"3677:6:89","nodeType":"YulIdentifier","src":"3677:6:89"},"nativeSrc":"3677:51:89","nodeType":"YulFunctionCall","src":"3677:51:89"},"nativeSrc":"3677:51:89","nodeType":"YulExpressionStatement","src":"3677:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3748:3:89","nodeType":"YulIdentifier","src":"3748:3:89"},{"kind":"number","nativeSrc":"3753:4:89","nodeType":"YulLiteral","src":"3753:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3744:3:89","nodeType":"YulIdentifier","src":"3744:3:89"},"nativeSrc":"3744:14:89","nodeType":"YulFunctionCall","src":"3744:14:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3770:5:89","nodeType":"YulIdentifier","src":"3770:5:89"},{"kind":"number","nativeSrc":"3777:4:89","nodeType":"YulLiteral","src":"3777:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3766:3:89","nodeType":"YulIdentifier","src":"3766:3:89"},"nativeSrc":"3766:16:89","nodeType":"YulFunctionCall","src":"3766:16:89"}],"functionName":{"name":"mload","nativeSrc":"3760:5:89","nodeType":"YulIdentifier","src":"3760:5:89"},"nativeSrc":"3760:23:89","nodeType":"YulFunctionCall","src":"3760:23:89"}],"functionName":{"name":"mstore","nativeSrc":"3737:6:89","nodeType":"YulIdentifier","src":"3737:6:89"},"nativeSrc":"3737:47:89","nodeType":"YulFunctionCall","src":"3737:47:89"},"nativeSrc":"3737:47:89","nodeType":"YulExpressionStatement","src":"3737:47:89"}]},"name":"abi_encode_struct_TokenAmount","nativeSrc":"3612:178:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3651:5:89","nodeType":"YulTypedName","src":"3651:5:89","type":""},{"name":"pos","nativeSrc":"3658:3:89","nodeType":"YulTypedName","src":"3658:3:89","type":""}],"src":"3612:178:89"},{"body":{"nativeSrc":"3867:382:89","nodeType":"YulBlock","src":"3867:382:89","statements":[{"nativeSrc":"3877:26:89","nodeType":"YulVariableDeclaration","src":"3877:26:89","value":{"arguments":[{"name":"value","nativeSrc":"3897:5:89","nodeType":"YulIdentifier","src":"3897:5:89"}],"functionName":{"name":"mload","nativeSrc":"3891:5:89","nodeType":"YulIdentifier","src":"3891:5:89"},"nativeSrc":"3891:12:89","nodeType":"YulFunctionCall","src":"3891:12:89"},"variables":[{"name":"length","nativeSrc":"3881:6:89","nodeType":"YulTypedName","src":"3881:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3919:3:89","nodeType":"YulIdentifier","src":"3919:3:89"},{"name":"length","nativeSrc":"3924:6:89","nodeType":"YulIdentifier","src":"3924:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3912:6:89","nodeType":"YulIdentifier","src":"3912:6:89"},"nativeSrc":"3912:19:89","nodeType":"YulFunctionCall","src":"3912:19:89"},"nativeSrc":"3912:19:89","nodeType":"YulExpressionStatement","src":"3912:19:89"},{"nativeSrc":"3940:21:89","nodeType":"YulAssignment","src":"3940:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"3951:3:89","nodeType":"YulIdentifier","src":"3951:3:89"},{"kind":"number","nativeSrc":"3956:4:89","nodeType":"YulLiteral","src":"3956:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3947:3:89","nodeType":"YulIdentifier","src":"3947:3:89"},"nativeSrc":"3947:14:89","nodeType":"YulFunctionCall","src":"3947:14:89"},"variableNames":[{"name":"pos","nativeSrc":"3940:3:89","nodeType":"YulIdentifier","src":"3940:3:89"}]},{"nativeSrc":"3970:30:89","nodeType":"YulVariableDeclaration","src":"3970:30:89","value":{"arguments":[{"name":"value","nativeSrc":"3988:5:89","nodeType":"YulIdentifier","src":"3988:5:89"},{"kind":"number","nativeSrc":"3995:4:89","nodeType":"YulLiteral","src":"3995:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3984:3:89","nodeType":"YulIdentifier","src":"3984:3:89"},"nativeSrc":"3984:16:89","nodeType":"YulFunctionCall","src":"3984:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"3974:6:89","nodeType":"YulTypedName","src":"3974:6:89","type":""}]},{"nativeSrc":"4009:10:89","nodeType":"YulVariableDeclaration","src":"4009:10:89","value":{"kind":"number","nativeSrc":"4018:1:89","nodeType":"YulLiteral","src":"4018:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4013:1:89","nodeType":"YulTypedName","src":"4013:1:89","type":""}]},{"body":{"nativeSrc":"4077:147:89","nodeType":"YulBlock","src":"4077:147:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"4127:6:89","nodeType":"YulIdentifier","src":"4127:6:89"}],"functionName":{"name":"mload","nativeSrc":"4121:5:89","nodeType":"YulIdentifier","src":"4121:5:89"},"nativeSrc":"4121:13:89","nodeType":"YulFunctionCall","src":"4121:13:89"},{"name":"pos","nativeSrc":"4136:3:89","nodeType":"YulIdentifier","src":"4136:3:89"}],"functionName":{"name":"abi_encode_struct_TokenAmount","nativeSrc":"4091:29:89","nodeType":"YulIdentifier","src":"4091:29:89"},"nativeSrc":"4091:49:89","nodeType":"YulFunctionCall","src":"4091:49:89"},"nativeSrc":"4091:49:89","nodeType":"YulExpressionStatement","src":"4091:49:89"},{"nativeSrc":"4153:21:89","nodeType":"YulAssignment","src":"4153:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"4164:3:89","nodeType":"YulIdentifier","src":"4164:3:89"},{"kind":"number","nativeSrc":"4169:4:89","nodeType":"YulLiteral","src":"4169:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"4160:3:89","nodeType":"YulIdentifier","src":"4160:3:89"},"nativeSrc":"4160:14:89","nodeType":"YulFunctionCall","src":"4160:14:89"},"variableNames":[{"name":"pos","nativeSrc":"4153:3:89","nodeType":"YulIdentifier","src":"4153:3:89"}]},{"nativeSrc":"4187:27:89","nodeType":"YulAssignment","src":"4187:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4201:6:89","nodeType":"YulIdentifier","src":"4201:6:89"},{"kind":"number","nativeSrc":"4209:4:89","nodeType":"YulLiteral","src":"4209:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4197:3:89","nodeType":"YulIdentifier","src":"4197:3:89"},"nativeSrc":"4197:17:89","nodeType":"YulFunctionCall","src":"4197:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"4187:6:89","nodeType":"YulIdentifier","src":"4187:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4039:1:89","nodeType":"YulIdentifier","src":"4039:1:89"},{"name":"length","nativeSrc":"4042:6:89","nodeType":"YulIdentifier","src":"4042:6:89"}],"functionName":{"name":"lt","nativeSrc":"4036:2:89","nodeType":"YulIdentifier","src":"4036:2:89"},"nativeSrc":"4036:13:89","nodeType":"YulFunctionCall","src":"4036:13:89"},"nativeSrc":"4028:196:89","nodeType":"YulForLoop","post":{"nativeSrc":"4050:18:89","nodeType":"YulBlock","src":"4050:18:89","statements":[{"nativeSrc":"4052:14:89","nodeType":"YulAssignment","src":"4052:14:89","value":{"arguments":[{"name":"i","nativeSrc":"4061:1:89","nodeType":"YulIdentifier","src":"4061:1:89"},{"kind":"number","nativeSrc":"4064:1:89","nodeType":"YulLiteral","src":"4064:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4057:3:89","nodeType":"YulIdentifier","src":"4057:3:89"},"nativeSrc":"4057:9:89","nodeType":"YulFunctionCall","src":"4057:9:89"},"variableNames":[{"name":"i","nativeSrc":"4052:1:89","nodeType":"YulIdentifier","src":"4052:1:89"}]}]},"pre":{"nativeSrc":"4032:3:89","nodeType":"YulBlock","src":"4032:3:89","statements":[]},"src":"4028:196:89"},{"nativeSrc":"4233:10:89","nodeType":"YulAssignment","src":"4233:10:89","value":{"name":"pos","nativeSrc":"4240:3:89","nodeType":"YulIdentifier","src":"4240:3:89"},"variableNames":[{"name":"end","nativeSrc":"4233:3:89","nodeType":"YulIdentifier","src":"4233:3:89"}]}]},"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"3795:454:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3844:5:89","nodeType":"YulTypedName","src":"3844:5:89","type":""},{"name":"pos","nativeSrc":"3851:3:89","nodeType":"YulTypedName","src":"3851:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3859:3:89","nodeType":"YulTypedName","src":"3859:3:89","type":""}],"src":"3795:454:89"},{"body":{"nativeSrc":"4332:219:89","nodeType":"YulBlock","src":"4332:219:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4349:3:89","nodeType":"YulIdentifier","src":"4349:3:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4364:6:89","nodeType":"YulIdentifier","src":"4364:6:89"}],"functionName":{"name":"mload","nativeSrc":"4358:5:89","nodeType":"YulIdentifier","src":"4358:5:89"},"nativeSrc":"4358:13:89","nodeType":"YulFunctionCall","src":"4358:13:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4381:3:89","nodeType":"YulLiteral","src":"4381:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"4386:1:89","nodeType":"YulLiteral","src":"4386:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4377:3:89","nodeType":"YulIdentifier","src":"4377:3:89"},"nativeSrc":"4377:11:89","nodeType":"YulFunctionCall","src":"4377:11:89"},{"kind":"number","nativeSrc":"4390:1:89","nodeType":"YulLiteral","src":"4390:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4373:3:89","nodeType":"YulIdentifier","src":"4373:3:89"},"nativeSrc":"4373:19:89","nodeType":"YulFunctionCall","src":"4373:19:89"}],"functionName":{"name":"and","nativeSrc":"4354:3:89","nodeType":"YulIdentifier","src":"4354:3:89"},"nativeSrc":"4354:39:89","nodeType":"YulFunctionCall","src":"4354:39:89"}],"functionName":{"name":"mstore","nativeSrc":"4342:6:89","nodeType":"YulIdentifier","src":"4342:6:89"},"nativeSrc":"4342:52:89","nodeType":"YulFunctionCall","src":"4342:52:89"},"nativeSrc":"4342:52:89","nodeType":"YulExpressionStatement","src":"4342:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4414:3:89","nodeType":"YulIdentifier","src":"4414:3:89"},{"kind":"number","nativeSrc":"4419:4:89","nodeType":"YulLiteral","src":"4419:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4410:3:89","nodeType":"YulIdentifier","src":"4410:3:89"},"nativeSrc":"4410:14:89","nodeType":"YulFunctionCall","src":"4410:14:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4436:6:89","nodeType":"YulIdentifier","src":"4436:6:89"},{"kind":"number","nativeSrc":"4444:4:89","nodeType":"YulLiteral","src":"4444:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4432:3:89","nodeType":"YulIdentifier","src":"4432:3:89"},"nativeSrc":"4432:17:89","nodeType":"YulFunctionCall","src":"4432:17:89"}],"functionName":{"name":"mload","nativeSrc":"4426:5:89","nodeType":"YulIdentifier","src":"4426:5:89"},"nativeSrc":"4426:24:89","nodeType":"YulFunctionCall","src":"4426:24:89"}],"functionName":{"name":"mstore","nativeSrc":"4403:6:89","nodeType":"YulIdentifier","src":"4403:6:89"},"nativeSrc":"4403:48:89","nodeType":"YulFunctionCall","src":"4403:48:89"},"nativeSrc":"4403:48:89","nodeType":"YulExpressionStatement","src":"4403:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4471:3:89","nodeType":"YulIdentifier","src":"4471:3:89"},{"kind":"number","nativeSrc":"4476:4:89","nodeType":"YulLiteral","src":"4476:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"4467:3:89","nodeType":"YulIdentifier","src":"4467:3:89"},"nativeSrc":"4467:14:89","nodeType":"YulFunctionCall","src":"4467:14:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4493:6:89","nodeType":"YulIdentifier","src":"4493:6:89"},{"kind":"number","nativeSrc":"4501:4:89","nodeType":"YulLiteral","src":"4501:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"4489:3:89","nodeType":"YulIdentifier","src":"4489:3:89"},"nativeSrc":"4489:17:89","nodeType":"YulFunctionCall","src":"4489:17:89"}],"functionName":{"name":"mload","nativeSrc":"4483:5:89","nodeType":"YulIdentifier","src":"4483:5:89"},"nativeSrc":"4483:24:89","nodeType":"YulFunctionCall","src":"4483:24:89"}],"functionName":{"name":"mstore","nativeSrc":"4460:6:89","nodeType":"YulIdentifier","src":"4460:6:89"},"nativeSrc":"4460:48:89","nodeType":"YulFunctionCall","src":"4460:48:89"},"nativeSrc":"4460:48:89","nodeType":"YulExpressionStatement","src":"4460:48:89"},{"nativeSrc":"4517:28:89","nodeType":"YulAssignment","src":"4517:28:89","value":{"arguments":[{"name":"pos","nativeSrc":"4535:3:89","nodeType":"YulIdentifier","src":"4535:3:89"},{"kind":"number","nativeSrc":"4540:4:89","nodeType":"YulLiteral","src":"4540:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"4531:3:89","nodeType":"YulIdentifier","src":"4531:3:89"},"nativeSrc":"4531:14:89","nodeType":"YulFunctionCall","src":"4531:14:89"},"variableNames":[{"name":"updatedPos","nativeSrc":"4517:10:89","nodeType":"YulIdentifier","src":"4517:10:89"}]}]},"name":"abi_encodeUpdatedPos_struct_NFTAmount","nativeSrc":"4254:297:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"4301:6:89","nodeType":"YulTypedName","src":"4301:6:89","type":""},{"name":"pos","nativeSrc":"4309:3:89","nodeType":"YulTypedName","src":"4309:3:89","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"4317:10:89","nodeType":"YulTypedName","src":"4317:10:89","type":""}],"src":"4254:297:89"},{"body":{"nativeSrc":"4626:363:89","nodeType":"YulBlock","src":"4626:363:89","statements":[{"nativeSrc":"4636:26:89","nodeType":"YulVariableDeclaration","src":"4636:26:89","value":{"arguments":[{"name":"value","nativeSrc":"4656:5:89","nodeType":"YulIdentifier","src":"4656:5:89"}],"functionName":{"name":"mload","nativeSrc":"4650:5:89","nodeType":"YulIdentifier","src":"4650:5:89"},"nativeSrc":"4650:12:89","nodeType":"YulFunctionCall","src":"4650:12:89"},"variables":[{"name":"length","nativeSrc":"4640:6:89","nodeType":"YulTypedName","src":"4640:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4678:3:89","nodeType":"YulIdentifier","src":"4678:3:89"},{"name":"length","nativeSrc":"4683:6:89","nodeType":"YulIdentifier","src":"4683:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4671:6:89","nodeType":"YulIdentifier","src":"4671:6:89"},"nativeSrc":"4671:19:89","nodeType":"YulFunctionCall","src":"4671:19:89"},"nativeSrc":"4671:19:89","nodeType":"YulExpressionStatement","src":"4671:19:89"},{"nativeSrc":"4699:21:89","nodeType":"YulAssignment","src":"4699:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"4710:3:89","nodeType":"YulIdentifier","src":"4710:3:89"},{"kind":"number","nativeSrc":"4715:4:89","nodeType":"YulLiteral","src":"4715:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4706:3:89","nodeType":"YulIdentifier","src":"4706:3:89"},"nativeSrc":"4706:14:89","nodeType":"YulFunctionCall","src":"4706:14:89"},"variableNames":[{"name":"pos","nativeSrc":"4699:3:89","nodeType":"YulIdentifier","src":"4699:3:89"}]},{"nativeSrc":"4729:30:89","nodeType":"YulVariableDeclaration","src":"4729:30:89","value":{"arguments":[{"name":"value","nativeSrc":"4747:5:89","nodeType":"YulIdentifier","src":"4747:5:89"},{"kind":"number","nativeSrc":"4754:4:89","nodeType":"YulLiteral","src":"4754:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4743:3:89","nodeType":"YulIdentifier","src":"4743:3:89"},"nativeSrc":"4743:16:89","nodeType":"YulFunctionCall","src":"4743:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"4733:6:89","nodeType":"YulTypedName","src":"4733:6:89","type":""}]},{"nativeSrc":"4768:10:89","nodeType":"YulVariableDeclaration","src":"4768:10:89","value":{"kind":"number","nativeSrc":"4777:1:89","nodeType":"YulLiteral","src":"4777:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4772:1:89","nodeType":"YulTypedName","src":"4772:1:89","type":""}]},{"body":{"nativeSrc":"4836:128:89","nodeType":"YulBlock","src":"4836:128:89","statements":[{"nativeSrc":"4850:64:89","nodeType":"YulAssignment","src":"4850:64:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"4901:6:89","nodeType":"YulIdentifier","src":"4901:6:89"}],"functionName":{"name":"mload","nativeSrc":"4895:5:89","nodeType":"YulIdentifier","src":"4895:5:89"},"nativeSrc":"4895:13:89","nodeType":"YulFunctionCall","src":"4895:13:89"},{"name":"pos","nativeSrc":"4910:3:89","nodeType":"YulIdentifier","src":"4910:3:89"}],"functionName":{"name":"abi_encodeUpdatedPos_struct_NFTAmount","nativeSrc":"4857:37:89","nodeType":"YulIdentifier","src":"4857:37:89"},"nativeSrc":"4857:57:89","nodeType":"YulFunctionCall","src":"4857:57:89"},"variableNames":[{"name":"pos","nativeSrc":"4850:3:89","nodeType":"YulIdentifier","src":"4850:3:89"}]},{"nativeSrc":"4927:27:89","nodeType":"YulAssignment","src":"4927:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4941:6:89","nodeType":"YulIdentifier","src":"4941:6:89"},{"kind":"number","nativeSrc":"4949:4:89","nodeType":"YulLiteral","src":"4949:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4937:3:89","nodeType":"YulIdentifier","src":"4937:3:89"},"nativeSrc":"4937:17:89","nodeType":"YulFunctionCall","src":"4937:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"4927:6:89","nodeType":"YulIdentifier","src":"4927:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4798:1:89","nodeType":"YulIdentifier","src":"4798:1:89"},{"name":"length","nativeSrc":"4801:6:89","nodeType":"YulIdentifier","src":"4801:6:89"}],"functionName":{"name":"lt","nativeSrc":"4795:2:89","nodeType":"YulIdentifier","src":"4795:2:89"},"nativeSrc":"4795:13:89","nodeType":"YulFunctionCall","src":"4795:13:89"},"nativeSrc":"4787:177:89","nodeType":"YulForLoop","post":{"nativeSrc":"4809:18:89","nodeType":"YulBlock","src":"4809:18:89","statements":[{"nativeSrc":"4811:14:89","nodeType":"YulAssignment","src":"4811:14:89","value":{"arguments":[{"name":"i","nativeSrc":"4820:1:89","nodeType":"YulIdentifier","src":"4820:1:89"},{"kind":"number","nativeSrc":"4823:1:89","nodeType":"YulLiteral","src":"4823:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4816:3:89","nodeType":"YulIdentifier","src":"4816:3:89"},"nativeSrc":"4816:9:89","nodeType":"YulFunctionCall","src":"4816:9:89"},"variableNames":[{"name":"i","nativeSrc":"4811:1:89","nodeType":"YulIdentifier","src":"4811:1:89"}]}]},"pre":{"nativeSrc":"4791:3:89","nodeType":"YulBlock","src":"4791:3:89","statements":[]},"src":"4787:177:89"},{"nativeSrc":"4973:10:89","nodeType":"YulAssignment","src":"4973:10:89","value":{"name":"pos","nativeSrc":"4980:3:89","nodeType":"YulIdentifier","src":"4980:3:89"},"variableNames":[{"name":"end","nativeSrc":"4973:3:89","nodeType":"YulIdentifier","src":"4973:3:89"}]}]},"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"4556:433:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4603:5:89","nodeType":"YulTypedName","src":"4603:5:89","type":""},{"name":"pos","nativeSrc":"4610:3:89","nodeType":"YulTypedName","src":"4610:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4618:3:89","nodeType":"YulTypedName","src":"4618:3:89","type":""}],"src":"4556:433:89"},{"body":{"nativeSrc":"5085:2182:89","nodeType":"YulBlock","src":"5085:2182:89","statements":[{"nativeSrc":"5095:16:89","nodeType":"YulVariableDeclaration","src":"5095:16:89","value":{"name":"pos","nativeSrc":"5108:3:89","nodeType":"YulIdentifier","src":"5108:3:89"},"variables":[{"name":"pos_1","nativeSrc":"5099:5:89","nodeType":"YulTypedName","src":"5099:5:89","type":""}]},{"nativeSrc":"5120:26:89","nodeType":"YulVariableDeclaration","src":"5120:26:89","value":{"arguments":[{"name":"value","nativeSrc":"5140:5:89","nodeType":"YulIdentifier","src":"5140:5:89"}],"functionName":{"name":"mload","nativeSrc":"5134:5:89","nodeType":"YulIdentifier","src":"5134:5:89"},"nativeSrc":"5134:12:89","nodeType":"YulFunctionCall","src":"5134:12:89"},"variables":[{"name":"length","nativeSrc":"5124:6:89","nodeType":"YulTypedName","src":"5124:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5162:3:89","nodeType":"YulIdentifier","src":"5162:3:89"},{"name":"length","nativeSrc":"5167:6:89","nodeType":"YulIdentifier","src":"5167:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5155:6:89","nodeType":"YulIdentifier","src":"5155:6:89"},"nativeSrc":"5155:19:89","nodeType":"YulFunctionCall","src":"5155:19:89"},"nativeSrc":"5155:19:89","nodeType":"YulExpressionStatement","src":"5155:19:89"},{"nativeSrc":"5183:21:89","nodeType":"YulAssignment","src":"5183:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"5194:3:89","nodeType":"YulIdentifier","src":"5194:3:89"},{"kind":"number","nativeSrc":"5199:4:89","nodeType":"YulLiteral","src":"5199:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5190:3:89","nodeType":"YulIdentifier","src":"5190:3:89"},"nativeSrc":"5190:14:89","nodeType":"YulFunctionCall","src":"5190:14:89"},"variableNames":[{"name":"pos","nativeSrc":"5183:3:89","nodeType":"YulIdentifier","src":"5183:3:89"}]},{"nativeSrc":"5213:49:89","nodeType":"YulVariableDeclaration","src":"5213:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"5233:5:89","nodeType":"YulIdentifier","src":"5233:5:89"},{"arguments":[{"kind":"number","nativeSrc":"5244:1:89","nodeType":"YulLiteral","src":"5244:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"5247:6:89","nodeType":"YulIdentifier","src":"5247:6:89"}],"functionName":{"name":"shl","nativeSrc":"5240:3:89","nodeType":"YulIdentifier","src":"5240:3:89"},"nativeSrc":"5240:14:89","nodeType":"YulFunctionCall","src":"5240:14:89"}],"functionName":{"name":"add","nativeSrc":"5229:3:89","nodeType":"YulIdentifier","src":"5229:3:89"},"nativeSrc":"5229:26:89","nodeType":"YulFunctionCall","src":"5229:26:89"},{"kind":"number","nativeSrc":"5257:4:89","nodeType":"YulLiteral","src":"5257:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5225:3:89","nodeType":"YulIdentifier","src":"5225:3:89"},"nativeSrc":"5225:37:89","nodeType":"YulFunctionCall","src":"5225:37:89"},"variables":[{"name":"tail","nativeSrc":"5217:4:89","nodeType":"YulTypedName","src":"5217:4:89","type":""}]},{"nativeSrc":"5271:30:89","nodeType":"YulVariableDeclaration","src":"5271:30:89","value":{"arguments":[{"name":"value","nativeSrc":"5289:5:89","nodeType":"YulIdentifier","src":"5289:5:89"},{"kind":"number","nativeSrc":"5296:4:89","nodeType":"YulLiteral","src":"5296:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5285:3:89","nodeType":"YulIdentifier","src":"5285:3:89"},"nativeSrc":"5285:16:89","nodeType":"YulFunctionCall","src":"5285:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"5275:6:89","nodeType":"YulTypedName","src":"5275:6:89","type":""}]},{"nativeSrc":"5310:10:89","nodeType":"YulVariableDeclaration","src":"5310:10:89","value":{"kind":"number","nativeSrc":"5319:1:89","nodeType":"YulLiteral","src":"5319:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5314:1:89","nodeType":"YulTypedName","src":"5314:1:89","type":""}]},{"body":{"nativeSrc":"5378:1863:89","nodeType":"YulBlock","src":"5378:1863:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5399:3:89","nodeType":"YulIdentifier","src":"5399:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"5412:4:89","nodeType":"YulIdentifier","src":"5412:4:89"},{"name":"pos_1","nativeSrc":"5418:5:89","nodeType":"YulIdentifier","src":"5418:5:89"}],"functionName":{"name":"sub","nativeSrc":"5408:3:89","nodeType":"YulIdentifier","src":"5408:3:89"},"nativeSrc":"5408:16:89","nodeType":"YulFunctionCall","src":"5408:16:89"},{"arguments":[{"kind":"number","nativeSrc":"5430:2:89","nodeType":"YulLiteral","src":"5430:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5426:3:89","nodeType":"YulIdentifier","src":"5426:3:89"},"nativeSrc":"5426:7:89","nodeType":"YulFunctionCall","src":"5426:7:89"}],"functionName":{"name":"add","nativeSrc":"5404:3:89","nodeType":"YulIdentifier","src":"5404:3:89"},"nativeSrc":"5404:30:89","nodeType":"YulFunctionCall","src":"5404:30:89"}],"functionName":{"name":"mstore","nativeSrc":"5392:6:89","nodeType":"YulIdentifier","src":"5392:6:89"},"nativeSrc":"5392:43:89","nodeType":"YulFunctionCall","src":"5392:43:89"},"nativeSrc":"5392:43:89","nodeType":"YulExpressionStatement","src":"5392:43:89"},{"nativeSrc":"5448:23:89","nodeType":"YulVariableDeclaration","src":"5448:23:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"5464:6:89","nodeType":"YulIdentifier","src":"5464:6:89"}],"functionName":{"name":"mload","nativeSrc":"5458:5:89","nodeType":"YulIdentifier","src":"5458:5:89"},"nativeSrc":"5458:13:89","nodeType":"YulFunctionCall","src":"5458:13:89"},"variables":[{"name":"_1","nativeSrc":"5452:2:89","nodeType":"YulTypedName","src":"5452:2:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5508:2:89","nodeType":"YulIdentifier","src":"5508:2:89"}],"functionName":{"name":"mload","nativeSrc":"5502:5:89","nodeType":"YulIdentifier","src":"5502:5:89"},"nativeSrc":"5502:9:89","nodeType":"YulFunctionCall","src":"5502:9:89"},{"name":"tail","nativeSrc":"5513:4:89","nodeType":"YulIdentifier","src":"5513:4:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"5484:17:89","nodeType":"YulIdentifier","src":"5484:17:89"},"nativeSrc":"5484:34:89","nodeType":"YulFunctionCall","src":"5484:34:89"},"nativeSrc":"5484:34:89","nodeType":"YulExpressionStatement","src":"5484:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"5542:4:89","nodeType":"YulIdentifier","src":"5542:4:89"},{"kind":"number","nativeSrc":"5548:4:89","nodeType":"YulLiteral","src":"5548:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5538:3:89","nodeType":"YulIdentifier","src":"5538:3:89"},"nativeSrc":"5538:15:89","nodeType":"YulFunctionCall","src":"5538:15:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5565:2:89","nodeType":"YulIdentifier","src":"5565:2:89"},{"kind":"number","nativeSrc":"5569:4:89","nodeType":"YulLiteral","src":"5569:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5561:3:89","nodeType":"YulIdentifier","src":"5561:3:89"},"nativeSrc":"5561:13:89","nodeType":"YulFunctionCall","src":"5561:13:89"}],"functionName":{"name":"mload","nativeSrc":"5555:5:89","nodeType":"YulIdentifier","src":"5555:5:89"},"nativeSrc":"5555:20:89","nodeType":"YulFunctionCall","src":"5555:20:89"}],"functionName":{"name":"mstore","nativeSrc":"5531:6:89","nodeType":"YulIdentifier","src":"5531:6:89"},"nativeSrc":"5531:45:89","nodeType":"YulFunctionCall","src":"5531:45:89"},"nativeSrc":"5531:45:89","nodeType":"YulExpressionStatement","src":"5531:45:89"},{"nativeSrc":"5589:40:89","nodeType":"YulVariableDeclaration","src":"5589:40:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5619:2:89","nodeType":"YulIdentifier","src":"5619:2:89"},{"kind":"number","nativeSrc":"5623:4:89","nodeType":"YulLiteral","src":"5623:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5615:3:89","nodeType":"YulIdentifier","src":"5615:3:89"},"nativeSrc":"5615:13:89","nodeType":"YulFunctionCall","src":"5615:13:89"}],"functionName":{"name":"mload","nativeSrc":"5609:5:89","nodeType":"YulIdentifier","src":"5609:5:89"},"nativeSrc":"5609:20:89","nodeType":"YulFunctionCall","src":"5609:20:89"},"variables":[{"name":"memberValue0","nativeSrc":"5593:12:89","nodeType":"YulTypedName","src":"5593:12:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5661:12:89","nodeType":"YulIdentifier","src":"5661:12:89"},{"arguments":[{"name":"tail","nativeSrc":"5679:4:89","nodeType":"YulIdentifier","src":"5679:4:89"},{"kind":"number","nativeSrc":"5685:4:89","nodeType":"YulLiteral","src":"5685:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5675:3:89","nodeType":"YulIdentifier","src":"5675:3:89"},"nativeSrc":"5675:15:89","nodeType":"YulFunctionCall","src":"5675:15:89"}],"functionName":{"name":"abi_encode_address","nativeSrc":"5642:18:89","nodeType":"YulIdentifier","src":"5642:18:89"},"nativeSrc":"5642:49:89","nodeType":"YulFunctionCall","src":"5642:49:89"},"nativeSrc":"5642:49:89","nodeType":"YulExpressionStatement","src":"5642:49:89"},{"nativeSrc":"5704:42:89","nodeType":"YulVariableDeclaration","src":"5704:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5736:2:89","nodeType":"YulIdentifier","src":"5736:2:89"},{"kind":"number","nativeSrc":"5740:4:89","nodeType":"YulLiteral","src":"5740:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5732:3:89","nodeType":"YulIdentifier","src":"5732:3:89"},"nativeSrc":"5732:13:89","nodeType":"YulFunctionCall","src":"5732:13:89"}],"functionName":{"name":"mload","nativeSrc":"5726:5:89","nodeType":"YulIdentifier","src":"5726:5:89"},"nativeSrc":"5726:20:89","nodeType":"YulFunctionCall","src":"5726:20:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"5708:14:89","nodeType":"YulTypedName","src":"5708:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"5770:4:89","nodeType":"YulIdentifier","src":"5770:4:89"},{"kind":"number","nativeSrc":"5776:4:89","nodeType":"YulLiteral","src":"5776:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5766:3:89","nodeType":"YulIdentifier","src":"5766:3:89"},"nativeSrc":"5766:15:89","nodeType":"YulFunctionCall","src":"5766:15:89"},{"kind":"number","nativeSrc":"5783:6:89","nodeType":"YulLiteral","src":"5783:6:89","type":"","value":"0x0180"}],"functionName":{"name":"mstore","nativeSrc":"5759:6:89","nodeType":"YulIdentifier","src":"5759:6:89"},"nativeSrc":"5759:31:89","nodeType":"YulFunctionCall","src":"5759:31:89"},"nativeSrc":"5759:31:89","nodeType":"YulExpressionStatement","src":"5759:31:89"},{"nativeSrc":"5803:66:89","nodeType":"YulVariableDeclaration","src":"5803:66:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"5835:14:89","nodeType":"YulIdentifier","src":"5835:14:89"},{"arguments":[{"name":"tail","nativeSrc":"5855:4:89","nodeType":"YulIdentifier","src":"5855:4:89"},{"kind":"number","nativeSrc":"5861:6:89","nodeType":"YulLiteral","src":"5861:6:89","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"5851:3:89","nodeType":"YulIdentifier","src":"5851:3:89"},"nativeSrc":"5851:17:89","nodeType":"YulFunctionCall","src":"5851:17:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5817:17:89","nodeType":"YulIdentifier","src":"5817:17:89"},"nativeSrc":"5817:52:89","nodeType":"YulFunctionCall","src":"5817:52:89"},"variables":[{"name":"tail_1","nativeSrc":"5807:6:89","nodeType":"YulTypedName","src":"5807:6:89","type":""}]},{"nativeSrc":"5882:42:89","nodeType":"YulVariableDeclaration","src":"5882:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5914:2:89","nodeType":"YulIdentifier","src":"5914:2:89"},{"kind":"number","nativeSrc":"5918:4:89","nodeType":"YulLiteral","src":"5918:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"5910:3:89","nodeType":"YulIdentifier","src":"5910:3:89"},"nativeSrc":"5910:13:89","nodeType":"YulFunctionCall","src":"5910:13:89"}],"functionName":{"name":"mload","nativeSrc":"5904:5:89","nodeType":"YulIdentifier","src":"5904:5:89"},"nativeSrc":"5904:20:89","nodeType":"YulFunctionCall","src":"5904:20:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"5886:14:89","nodeType":"YulTypedName","src":"5886:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"5948:4:89","nodeType":"YulIdentifier","src":"5948:4:89"},{"kind":"number","nativeSrc":"5954:4:89","nodeType":"YulLiteral","src":"5954:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"5944:3:89","nodeType":"YulIdentifier","src":"5944:3:89"},"nativeSrc":"5944:15:89","nodeType":"YulFunctionCall","src":"5944:15:89"},{"arguments":[{"name":"tail_1","nativeSrc":"5965:6:89","nodeType":"YulIdentifier","src":"5965:6:89"},{"name":"tail","nativeSrc":"5973:4:89","nodeType":"YulIdentifier","src":"5973:4:89"}],"functionName":{"name":"sub","nativeSrc":"5961:3:89","nodeType":"YulIdentifier","src":"5961:3:89"},"nativeSrc":"5961:17:89","nodeType":"YulFunctionCall","src":"5961:17:89"}],"functionName":{"name":"mstore","nativeSrc":"5937:6:89","nodeType":"YulIdentifier","src":"5937:6:89"},"nativeSrc":"5937:42:89","nodeType":"YulFunctionCall","src":"5937:42:89"},"nativeSrc":"5937:42:89","nodeType":"YulExpressionStatement","src":"5937:42:89"},{"nativeSrc":"5992:55:89","nodeType":"YulVariableDeclaration","src":"5992:55:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"6024:14:89","nodeType":"YulIdentifier","src":"6024:14:89"},{"name":"tail_1","nativeSrc":"6040:6:89","nodeType":"YulIdentifier","src":"6040:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"6006:17:89","nodeType":"YulIdentifier","src":"6006:17:89"},"nativeSrc":"6006:41:89","nodeType":"YulFunctionCall","src":"6006:41:89"},"variables":[{"name":"tail_2","nativeSrc":"5996:6:89","nodeType":"YulTypedName","src":"5996:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"6071:4:89","nodeType":"YulIdentifier","src":"6071:4:89"},{"kind":"number","nativeSrc":"6077:4:89","nodeType":"YulLiteral","src":"6077:4:89","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"6067:3:89","nodeType":"YulIdentifier","src":"6067:3:89"},"nativeSrc":"6067:15:89","nodeType":"YulFunctionCall","src":"6067:15:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6094:2:89","nodeType":"YulIdentifier","src":"6094:2:89"},{"kind":"number","nativeSrc":"6098:4:89","nodeType":"YulLiteral","src":"6098:4:89","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"6090:3:89","nodeType":"YulIdentifier","src":"6090:3:89"},"nativeSrc":"6090:13:89","nodeType":"YulFunctionCall","src":"6090:13:89"}],"functionName":{"name":"mload","nativeSrc":"6084:5:89","nodeType":"YulIdentifier","src":"6084:5:89"},"nativeSrc":"6084:20:89","nodeType":"YulFunctionCall","src":"6084:20:89"}],"functionName":{"name":"mstore","nativeSrc":"6060:6:89","nodeType":"YulIdentifier","src":"6060:6:89"},"nativeSrc":"6060:45:89","nodeType":"YulFunctionCall","src":"6060:45:89"},"nativeSrc":"6060:45:89","nodeType":"YulExpressionStatement","src":"6060:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"6129:4:89","nodeType":"YulIdentifier","src":"6129:4:89"},{"kind":"number","nativeSrc":"6135:4:89","nodeType":"YulLiteral","src":"6135:4:89","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"6125:3:89","nodeType":"YulIdentifier","src":"6125:3:89"},"nativeSrc":"6125:15:89","nodeType":"YulFunctionCall","src":"6125:15:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6152:2:89","nodeType":"YulIdentifier","src":"6152:2:89"},{"kind":"number","nativeSrc":"6156:4:89","nodeType":"YulLiteral","src":"6156:4:89","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"6148:3:89","nodeType":"YulIdentifier","src":"6148:3:89"},"nativeSrc":"6148:13:89","nodeType":"YulFunctionCall","src":"6148:13:89"}],"functionName":{"name":"mload","nativeSrc":"6142:5:89","nodeType":"YulIdentifier","src":"6142:5:89"},"nativeSrc":"6142:20:89","nodeType":"YulFunctionCall","src":"6142:20:89"}],"functionName":{"name":"mstore","nativeSrc":"6118:6:89","nodeType":"YulIdentifier","src":"6118:6:89"},"nativeSrc":"6118:45:89","nodeType":"YulFunctionCall","src":"6118:45:89"},"nativeSrc":"6118:45:89","nodeType":"YulExpressionStatement","src":"6118:45:89"},{"nativeSrc":"6176:42:89","nodeType":"YulVariableDeclaration","src":"6176:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6208:2:89","nodeType":"YulIdentifier","src":"6208:2:89"},{"kind":"number","nativeSrc":"6212:4:89","nodeType":"YulLiteral","src":"6212:4:89","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"6204:3:89","nodeType":"YulIdentifier","src":"6204:3:89"},"nativeSrc":"6204:13:89","nodeType":"YulFunctionCall","src":"6204:13:89"}],"functionName":{"name":"mload","nativeSrc":"6198:5:89","nodeType":"YulIdentifier","src":"6198:5:89"},"nativeSrc":"6198:20:89","nodeType":"YulFunctionCall","src":"6198:20:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"6180:14:89","nodeType":"YulTypedName","src":"6180:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"6242:4:89","nodeType":"YulIdentifier","src":"6242:4:89"},{"kind":"number","nativeSrc":"6248:4:89","nodeType":"YulLiteral","src":"6248:4:89","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"6238:3:89","nodeType":"YulIdentifier","src":"6238:3:89"},"nativeSrc":"6238:15:89","nodeType":"YulFunctionCall","src":"6238:15:89"},{"arguments":[{"name":"tail_2","nativeSrc":"6259:6:89","nodeType":"YulIdentifier","src":"6259:6:89"},{"name":"tail","nativeSrc":"6267:4:89","nodeType":"YulIdentifier","src":"6267:4:89"}],"functionName":{"name":"sub","nativeSrc":"6255:3:89","nodeType":"YulIdentifier","src":"6255:3:89"},"nativeSrc":"6255:17:89","nodeType":"YulFunctionCall","src":"6255:17:89"}],"functionName":{"name":"mstore","nativeSrc":"6231:6:89","nodeType":"YulIdentifier","src":"6231:6:89"},"nativeSrc":"6231:42:89","nodeType":"YulFunctionCall","src":"6231:42:89"},"nativeSrc":"6231:42:89","nodeType":"YulExpressionStatement","src":"6231:42:89"},{"nativeSrc":"6286:65:89","nodeType":"YulVariableDeclaration","src":"6286:65:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"6328:14:89","nodeType":"YulIdentifier","src":"6328:14:89"},{"name":"tail_2","nativeSrc":"6344:6:89","nodeType":"YulIdentifier","src":"6344:6:89"}],"functionName":{"name":"abi_encode_array_string_dyn","nativeSrc":"6300:27:89","nodeType":"YulIdentifier","src":"6300:27:89"},"nativeSrc":"6300:51:89","nodeType":"YulFunctionCall","src":"6300:51:89"},"variables":[{"name":"tail_3","nativeSrc":"6290:6:89","nodeType":"YulTypedName","src":"6290:6:89","type":""}]},{"nativeSrc":"6364:44:89","nodeType":"YulVariableDeclaration","src":"6364:44:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6396:2:89","nodeType":"YulIdentifier","src":"6396:2:89"},{"kind":"number","nativeSrc":"6400:6:89","nodeType":"YulLiteral","src":"6400:6:89","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"6392:3:89","nodeType":"YulIdentifier","src":"6392:3:89"},"nativeSrc":"6392:15:89","nodeType":"YulFunctionCall","src":"6392:15:89"}],"functionName":{"name":"mload","nativeSrc":"6386:5:89","nodeType":"YulIdentifier","src":"6386:5:89"},"nativeSrc":"6386:22:89","nodeType":"YulFunctionCall","src":"6386:22:89"},"variables":[{"name":"memberValue0_4","nativeSrc":"6368:14:89","nodeType":"YulTypedName","src":"6368:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"6432:4:89","nodeType":"YulIdentifier","src":"6432:4:89"},{"kind":"number","nativeSrc":"6438:6:89","nodeType":"YulLiteral","src":"6438:6:89","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"6428:3:89","nodeType":"YulIdentifier","src":"6428:3:89"},"nativeSrc":"6428:17:89","nodeType":"YulFunctionCall","src":"6428:17:89"},{"arguments":[{"name":"tail_3","nativeSrc":"6451:6:89","nodeType":"YulIdentifier","src":"6451:6:89"},{"name":"tail","nativeSrc":"6459:4:89","nodeType":"YulIdentifier","src":"6459:4:89"}],"functionName":{"name":"sub","nativeSrc":"6447:3:89","nodeType":"YulIdentifier","src":"6447:3:89"},"nativeSrc":"6447:17:89","nodeType":"YulFunctionCall","src":"6447:17:89"}],"functionName":{"name":"mstore","nativeSrc":"6421:6:89","nodeType":"YulIdentifier","src":"6421:6:89"},"nativeSrc":"6421:44:89","nodeType":"YulFunctionCall","src":"6421:44:89"},"nativeSrc":"6421:44:89","nodeType":"YulExpressionStatement","src":"6421:44:89"},{"nativeSrc":"6478:77:89","nodeType":"YulVariableDeclaration","src":"6478:77:89","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"6532:14:89","nodeType":"YulIdentifier","src":"6532:14:89"},{"name":"tail_3","nativeSrc":"6548:6:89","nodeType":"YulIdentifier","src":"6548:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"6492:39:89","nodeType":"YulIdentifier","src":"6492:39:89"},"nativeSrc":"6492:63:89","nodeType":"YulFunctionCall","src":"6492:63:89"},"variables":[{"name":"tail_4","nativeSrc":"6482:6:89","nodeType":"YulTypedName","src":"6482:6:89","type":""}]},{"nativeSrc":"6568:44:89","nodeType":"YulVariableDeclaration","src":"6568:44:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6600:2:89","nodeType":"YulIdentifier","src":"6600:2:89"},{"kind":"number","nativeSrc":"6604:6:89","nodeType":"YulLiteral","src":"6604:6:89","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"6596:3:89","nodeType":"YulIdentifier","src":"6596:3:89"},"nativeSrc":"6596:15:89","nodeType":"YulFunctionCall","src":"6596:15:89"}],"functionName":{"name":"mload","nativeSrc":"6590:5:89","nodeType":"YulIdentifier","src":"6590:5:89"},"nativeSrc":"6590:22:89","nodeType":"YulFunctionCall","src":"6590:22:89"},"variables":[{"name":"memberValue0_5","nativeSrc":"6572:14:89","nodeType":"YulTypedName","src":"6572:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"6636:4:89","nodeType":"YulIdentifier","src":"6636:4:89"},{"kind":"number","nativeSrc":"6642:6:89","nodeType":"YulLiteral","src":"6642:6:89","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"6632:3:89","nodeType":"YulIdentifier","src":"6632:3:89"},"nativeSrc":"6632:17:89","nodeType":"YulFunctionCall","src":"6632:17:89"},{"arguments":[{"name":"tail_4","nativeSrc":"6655:6:89","nodeType":"YulIdentifier","src":"6655:6:89"},{"name":"tail","nativeSrc":"6663:4:89","nodeType":"YulIdentifier","src":"6663:4:89"}],"functionName":{"name":"sub","nativeSrc":"6651:3:89","nodeType":"YulIdentifier","src":"6651:3:89"},"nativeSrc":"6651:17:89","nodeType":"YulFunctionCall","src":"6651:17:89"}],"functionName":{"name":"mstore","nativeSrc":"6625:6:89","nodeType":"YulIdentifier","src":"6625:6:89"},"nativeSrc":"6625:44:89","nodeType":"YulFunctionCall","src":"6625:44:89"},"nativeSrc":"6625:44:89","nodeType":"YulExpressionStatement","src":"6625:44:89"},{"nativeSrc":"6682:77:89","nodeType":"YulVariableDeclaration","src":"6682:77:89","value":{"arguments":[{"name":"memberValue0_5","nativeSrc":"6736:14:89","nodeType":"YulIdentifier","src":"6736:14:89"},{"name":"tail_4","nativeSrc":"6752:6:89","nodeType":"YulIdentifier","src":"6752:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"6696:39:89","nodeType":"YulIdentifier","src":"6696:39:89"},"nativeSrc":"6696:63:89","nodeType":"YulFunctionCall","src":"6696:63:89"},"variables":[{"name":"tail_5","nativeSrc":"6686:6:89","nodeType":"YulTypedName","src":"6686:6:89","type":""}]},{"nativeSrc":"6772:44:89","nodeType":"YulVariableDeclaration","src":"6772:44:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6804:2:89","nodeType":"YulIdentifier","src":"6804:2:89"},{"kind":"number","nativeSrc":"6808:6:89","nodeType":"YulLiteral","src":"6808:6:89","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"6800:3:89","nodeType":"YulIdentifier","src":"6800:3:89"},"nativeSrc":"6800:15:89","nodeType":"YulFunctionCall","src":"6800:15:89"}],"functionName":{"name":"mload","nativeSrc":"6794:5:89","nodeType":"YulIdentifier","src":"6794:5:89"},"nativeSrc":"6794:22:89","nodeType":"YulFunctionCall","src":"6794:22:89"},"variables":[{"name":"memberValue0_6","nativeSrc":"6776:14:89","nodeType":"YulTypedName","src":"6776:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"6840:4:89","nodeType":"YulIdentifier","src":"6840:4:89"},{"kind":"number","nativeSrc":"6846:6:89","nodeType":"YulLiteral","src":"6846:6:89","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"6836:3:89","nodeType":"YulIdentifier","src":"6836:3:89"},"nativeSrc":"6836:17:89","nodeType":"YulFunctionCall","src":"6836:17:89"},{"arguments":[{"name":"tail_5","nativeSrc":"6859:6:89","nodeType":"YulIdentifier","src":"6859:6:89"},{"name":"tail","nativeSrc":"6867:4:89","nodeType":"YulIdentifier","src":"6867:4:89"}],"functionName":{"name":"sub","nativeSrc":"6855:3:89","nodeType":"YulIdentifier","src":"6855:3:89"},"nativeSrc":"6855:17:89","nodeType":"YulFunctionCall","src":"6855:17:89"}],"functionName":{"name":"mstore","nativeSrc":"6829:6:89","nodeType":"YulIdentifier","src":"6829:6:89"},"nativeSrc":"6829:44:89","nodeType":"YulFunctionCall","src":"6829:44:89"},"nativeSrc":"6829:44:89","nodeType":"YulExpressionStatement","src":"6829:44:89"},{"nativeSrc":"6886:75:89","nodeType":"YulVariableDeclaration","src":"6886:75:89","value":{"arguments":[{"name":"memberValue0_6","nativeSrc":"6938:14:89","nodeType":"YulIdentifier","src":"6938:14:89"},{"name":"tail_5","nativeSrc":"6954:6:89","nodeType":"YulIdentifier","src":"6954:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"6900:37:89","nodeType":"YulIdentifier","src":"6900:37:89"},"nativeSrc":"6900:61:89","nodeType":"YulFunctionCall","src":"6900:61:89"},"variables":[{"name":"tail_6","nativeSrc":"6890:6:89","nodeType":"YulTypedName","src":"6890:6:89","type":""}]},{"nativeSrc":"6974:44:89","nodeType":"YulVariableDeclaration","src":"6974:44:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"7006:2:89","nodeType":"YulIdentifier","src":"7006:2:89"},{"kind":"number","nativeSrc":"7010:6:89","nodeType":"YulLiteral","src":"7010:6:89","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"7002:3:89","nodeType":"YulIdentifier","src":"7002:3:89"},"nativeSrc":"7002:15:89","nodeType":"YulFunctionCall","src":"7002:15:89"}],"functionName":{"name":"mload","nativeSrc":"6996:5:89","nodeType":"YulIdentifier","src":"6996:5:89"},"nativeSrc":"6996:22:89","nodeType":"YulFunctionCall","src":"6996:22:89"},"variables":[{"name":"memberValue0_7","nativeSrc":"6978:14:89","nodeType":"YulTypedName","src":"6978:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"7042:4:89","nodeType":"YulIdentifier","src":"7042:4:89"},{"kind":"number","nativeSrc":"7048:6:89","nodeType":"YulLiteral","src":"7048:6:89","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"7038:3:89","nodeType":"YulIdentifier","src":"7038:3:89"},"nativeSrc":"7038:17:89","nodeType":"YulFunctionCall","src":"7038:17:89"},{"arguments":[{"name":"tail_6","nativeSrc":"7061:6:89","nodeType":"YulIdentifier","src":"7061:6:89"},{"name":"tail","nativeSrc":"7069:4:89","nodeType":"YulIdentifier","src":"7069:4:89"}],"functionName":{"name":"sub","nativeSrc":"7057:3:89","nodeType":"YulIdentifier","src":"7057:3:89"},"nativeSrc":"7057:17:89","nodeType":"YulFunctionCall","src":"7057:17:89"}],"functionName":{"name":"mstore","nativeSrc":"7031:6:89","nodeType":"YulIdentifier","src":"7031:6:89"},"nativeSrc":"7031:44:89","nodeType":"YulFunctionCall","src":"7031:44:89"},"nativeSrc":"7031:44:89","nodeType":"YulExpressionStatement","src":"7031:44:89"},{"nativeSrc":"7088:69:89","nodeType":"YulAssignment","src":"7088:69:89","value":{"arguments":[{"name":"memberValue0_7","nativeSrc":"7134:14:89","nodeType":"YulIdentifier","src":"7134:14:89"},{"name":"tail_6","nativeSrc":"7150:6:89","nodeType":"YulIdentifier","src":"7150:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"7096:37:89","nodeType":"YulIdentifier","src":"7096:37:89"},"nativeSrc":"7096:61:89","nodeType":"YulFunctionCall","src":"7096:61:89"},"variableNames":[{"name":"tail","nativeSrc":"7088:4:89","nodeType":"YulIdentifier","src":"7088:4:89"}]},{"nativeSrc":"7170:27:89","nodeType":"YulAssignment","src":"7170:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"7184:6:89","nodeType":"YulIdentifier","src":"7184:6:89"},{"kind":"number","nativeSrc":"7192:4:89","nodeType":"YulLiteral","src":"7192:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7180:3:89","nodeType":"YulIdentifier","src":"7180:3:89"},"nativeSrc":"7180:17:89","nodeType":"YulFunctionCall","src":"7180:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"7170:6:89","nodeType":"YulIdentifier","src":"7170:6:89"}]},{"nativeSrc":"7210:21:89","nodeType":"YulAssignment","src":"7210:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"7221:3:89","nodeType":"YulIdentifier","src":"7221:3:89"},{"kind":"number","nativeSrc":"7226:4:89","nodeType":"YulLiteral","src":"7226:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7217:3:89","nodeType":"YulIdentifier","src":"7217:3:89"},"nativeSrc":"7217:14:89","nodeType":"YulFunctionCall","src":"7217:14:89"},"variableNames":[{"name":"pos","nativeSrc":"7210:3:89","nodeType":"YulIdentifier","src":"7210:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5340:1:89","nodeType":"YulIdentifier","src":"5340:1:89"},{"name":"length","nativeSrc":"5343:6:89","nodeType":"YulIdentifier","src":"5343:6:89"}],"functionName":{"name":"lt","nativeSrc":"5337:2:89","nodeType":"YulIdentifier","src":"5337:2:89"},"nativeSrc":"5337:13:89","nodeType":"YulFunctionCall","src":"5337:13:89"},"nativeSrc":"5329:1912:89","nodeType":"YulForLoop","post":{"nativeSrc":"5351:18:89","nodeType":"YulBlock","src":"5351:18:89","statements":[{"nativeSrc":"5353:14:89","nodeType":"YulAssignment","src":"5353:14:89","value":{"arguments":[{"name":"i","nativeSrc":"5362:1:89","nodeType":"YulIdentifier","src":"5362:1:89"},{"kind":"number","nativeSrc":"5365:1:89","nodeType":"YulLiteral","src":"5365:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5358:3:89","nodeType":"YulIdentifier","src":"5358:3:89"},"nativeSrc":"5358:9:89","nodeType":"YulFunctionCall","src":"5358:9:89"},"variableNames":[{"name":"i","nativeSrc":"5353:1:89","nodeType":"YulIdentifier","src":"5353:1:89"}]}]},"pre":{"nativeSrc":"5333:3:89","nodeType":"YulBlock","src":"5333:3:89","statements":[]},"src":"5329:1912:89"},{"nativeSrc":"7250:11:89","nodeType":"YulAssignment","src":"7250:11:89","value":{"name":"tail","nativeSrc":"7257:4:89","nodeType":"YulIdentifier","src":"7257:4:89"},"variableNames":[{"name":"end","nativeSrc":"7250:3:89","nodeType":"YulIdentifier","src":"7250:3:89"}]}]},"name":"abi_encode_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"4994:2273:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5062:5:89","nodeType":"YulTypedName","src":"5062:5:89","type":""},{"name":"pos","nativeSrc":"5069:3:89","nodeType":"YulTypedName","src":"5069:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5077:3:89","nodeType":"YulTypedName","src":"5077:3:89","type":""}],"src":"4994:2273:89"},{"body":{"nativeSrc":"7589:314:89","nodeType":"YulBlock","src":"7589:314:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7606:9:89","nodeType":"YulIdentifier","src":"7606:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"7631:6:89","nodeType":"YulIdentifier","src":"7631:6:89"}],"functionName":{"name":"iszero","nativeSrc":"7624:6:89","nodeType":"YulIdentifier","src":"7624:6:89"},"nativeSrc":"7624:14:89","nodeType":"YulFunctionCall","src":"7624:14:89"}],"functionName":{"name":"iszero","nativeSrc":"7617:6:89","nodeType":"YulIdentifier","src":"7617:6:89"},"nativeSrc":"7617:22:89","nodeType":"YulFunctionCall","src":"7617:22:89"}],"functionName":{"name":"mstore","nativeSrc":"7599:6:89","nodeType":"YulIdentifier","src":"7599:6:89"},"nativeSrc":"7599:41:89","nodeType":"YulFunctionCall","src":"7599:41:89"},"nativeSrc":"7599:41:89","nodeType":"YulExpressionStatement","src":"7599:41:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7660:9:89","nodeType":"YulIdentifier","src":"7660:9:89"},{"kind":"number","nativeSrc":"7671:2:89","nodeType":"YulLiteral","src":"7671:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7656:3:89","nodeType":"YulIdentifier","src":"7656:3:89"},"nativeSrc":"7656:18:89","nodeType":"YulFunctionCall","src":"7656:18:89"},{"kind":"number","nativeSrc":"7676:2:89","nodeType":"YulLiteral","src":"7676:2:89","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"7649:6:89","nodeType":"YulIdentifier","src":"7649:6:89"},"nativeSrc":"7649:30:89","nodeType":"YulFunctionCall","src":"7649:30:89"},"nativeSrc":"7649:30:89","nodeType":"YulExpressionStatement","src":"7649:30:89"},{"nativeSrc":"7688:100:89","nodeType":"YulVariableDeclaration","src":"7688:100:89","value":{"arguments":[{"name":"value1","nativeSrc":"7761:6:89","nodeType":"YulIdentifier","src":"7761:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"7773:9:89","nodeType":"YulIdentifier","src":"7773:9:89"},{"kind":"number","nativeSrc":"7784:2:89","nodeType":"YulLiteral","src":"7784:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7769:3:89","nodeType":"YulIdentifier","src":"7769:3:89"},"nativeSrc":"7769:18:89","nodeType":"YulFunctionCall","src":"7769:18:89"}],"functionName":{"name":"abi_encode_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"7702:58:89","nodeType":"YulIdentifier","src":"7702:58:89"},"nativeSrc":"7702:86:89","nodeType":"YulFunctionCall","src":"7702:86:89"},"variables":[{"name":"tail_1","nativeSrc":"7692:6:89","nodeType":"YulTypedName","src":"7692:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7808:9:89","nodeType":"YulIdentifier","src":"7808:9:89"},{"kind":"number","nativeSrc":"7819:2:89","nodeType":"YulLiteral","src":"7819:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7804:3:89","nodeType":"YulIdentifier","src":"7804:3:89"},"nativeSrc":"7804:18:89","nodeType":"YulFunctionCall","src":"7804:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"7828:6:89","nodeType":"YulIdentifier","src":"7828:6:89"},{"name":"headStart","nativeSrc":"7836:9:89","nodeType":"YulIdentifier","src":"7836:9:89"}],"functionName":{"name":"sub","nativeSrc":"7824:3:89","nodeType":"YulIdentifier","src":"7824:3:89"},"nativeSrc":"7824:22:89","nodeType":"YulFunctionCall","src":"7824:22:89"}],"functionName":{"name":"mstore","nativeSrc":"7797:6:89","nodeType":"YulIdentifier","src":"7797:6:89"},"nativeSrc":"7797:50:89","nodeType":"YulFunctionCall","src":"7797:50:89"},"nativeSrc":"7797:50:89","nodeType":"YulExpressionStatement","src":"7797:50:89"},{"nativeSrc":"7856:41:89","nodeType":"YulAssignment","src":"7856:41:89","value":{"arguments":[{"name":"value2","nativeSrc":"7882:6:89","nodeType":"YulIdentifier","src":"7882:6:89"},{"name":"tail_1","nativeSrc":"7890:6:89","nodeType":"YulIdentifier","src":"7890:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"7864:17:89","nodeType":"YulIdentifier","src":"7864:17:89"},"nativeSrc":"7864:33:89","nodeType":"YulFunctionCall","src":"7864:33:89"},"variableNames":[{"name":"tail","nativeSrc":"7856:4:89","nodeType":"YulIdentifier","src":"7856:4:89"}]}]},"name":"abi_encode_tuple_t_bool_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_bool_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7272:631:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7542:9:89","nodeType":"YulTypedName","src":"7542:9:89","type":""},{"name":"value2","nativeSrc":"7553:6:89","nodeType":"YulTypedName","src":"7553:6:89","type":""},{"name":"value1","nativeSrc":"7561:6:89","nodeType":"YulTypedName","src":"7561:6:89","type":""},{"name":"value0","nativeSrc":"7569:6:89","nodeType":"YulTypedName","src":"7569:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7580:4:89","nodeType":"YulTypedName","src":"7580:4:89","type":""}],"src":"7272:631:89"},{"body":{"nativeSrc":"8049:557:89","nodeType":"YulBlock","src":"8049:557:89","statements":[{"body":{"nativeSrc":"8095:16:89","nodeType":"YulBlock","src":"8095:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8104:1:89","nodeType":"YulLiteral","src":"8104:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8107:1:89","nodeType":"YulLiteral","src":"8107:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8097:6:89","nodeType":"YulIdentifier","src":"8097:6:89"},"nativeSrc":"8097:12:89","nodeType":"YulFunctionCall","src":"8097:12:89"},"nativeSrc":"8097:12:89","nodeType":"YulExpressionStatement","src":"8097:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8070:7:89","nodeType":"YulIdentifier","src":"8070:7:89"},{"name":"headStart","nativeSrc":"8079:9:89","nodeType":"YulIdentifier","src":"8079:9:89"}],"functionName":{"name":"sub","nativeSrc":"8066:3:89","nodeType":"YulIdentifier","src":"8066:3:89"},"nativeSrc":"8066:23:89","nodeType":"YulFunctionCall","src":"8066:23:89"},{"kind":"number","nativeSrc":"8091:2:89","nodeType":"YulLiteral","src":"8091:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8062:3:89","nodeType":"YulIdentifier","src":"8062:3:89"},"nativeSrc":"8062:32:89","nodeType":"YulFunctionCall","src":"8062:32:89"},"nativeSrc":"8059:52:89","nodeType":"YulIf","src":"8059:52:89"},{"nativeSrc":"8120:37:89","nodeType":"YulVariableDeclaration","src":"8120:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8147:9:89","nodeType":"YulIdentifier","src":"8147:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"8134:12:89","nodeType":"YulIdentifier","src":"8134:12:89"},"nativeSrc":"8134:23:89","nodeType":"YulFunctionCall","src":"8134:23:89"},"variables":[{"name":"offset","nativeSrc":"8124:6:89","nodeType":"YulTypedName","src":"8124:6:89","type":""}]},{"body":{"nativeSrc":"8200:16:89","nodeType":"YulBlock","src":"8200:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8209:1:89","nodeType":"YulLiteral","src":"8209:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8212:1:89","nodeType":"YulLiteral","src":"8212:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8202:6:89","nodeType":"YulIdentifier","src":"8202:6:89"},"nativeSrc":"8202:12:89","nodeType":"YulFunctionCall","src":"8202:12:89"},"nativeSrc":"8202:12:89","nodeType":"YulExpressionStatement","src":"8202:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8172:6:89","nodeType":"YulIdentifier","src":"8172:6:89"},{"kind":"number","nativeSrc":"8180:18:89","nodeType":"YulLiteral","src":"8180:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8169:2:89","nodeType":"YulIdentifier","src":"8169:2:89"},"nativeSrc":"8169:30:89","nodeType":"YulFunctionCall","src":"8169:30:89"},"nativeSrc":"8166:50:89","nodeType":"YulIf","src":"8166:50:89"},{"nativeSrc":"8225:32:89","nodeType":"YulVariableDeclaration","src":"8225:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8239:9:89","nodeType":"YulIdentifier","src":"8239:9:89"},{"name":"offset","nativeSrc":"8250:6:89","nodeType":"YulIdentifier","src":"8250:6:89"}],"functionName":{"name":"add","nativeSrc":"8235:3:89","nodeType":"YulIdentifier","src":"8235:3:89"},"nativeSrc":"8235:22:89","nodeType":"YulFunctionCall","src":"8235:22:89"},"variables":[{"name":"_1","nativeSrc":"8229:2:89","nodeType":"YulTypedName","src":"8229:2:89","type":""}]},{"body":{"nativeSrc":"8296:16:89","nodeType":"YulBlock","src":"8296:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8305:1:89","nodeType":"YulLiteral","src":"8305:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8308:1:89","nodeType":"YulLiteral","src":"8308:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8298:6:89","nodeType":"YulIdentifier","src":"8298:6:89"},"nativeSrc":"8298:12:89","nodeType":"YulFunctionCall","src":"8298:12:89"},"nativeSrc":"8298:12:89","nodeType":"YulExpressionStatement","src":"8298:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8277:7:89","nodeType":"YulIdentifier","src":"8277:7:89"},{"name":"_1","nativeSrc":"8286:2:89","nodeType":"YulIdentifier","src":"8286:2:89"}],"functionName":{"name":"sub","nativeSrc":"8273:3:89","nodeType":"YulIdentifier","src":"8273:3:89"},"nativeSrc":"8273:16:89","nodeType":"YulFunctionCall","src":"8273:16:89"},{"kind":"number","nativeSrc":"8291:3:89","nodeType":"YulLiteral","src":"8291:3:89","type":"","value":"544"}],"functionName":{"name":"slt","nativeSrc":"8269:3:89","nodeType":"YulIdentifier","src":"8269:3:89"},"nativeSrc":"8269:26:89","nodeType":"YulFunctionCall","src":"8269:26:89"},"nativeSrc":"8266:46:89","nodeType":"YulIf","src":"8266:46:89"},{"nativeSrc":"8321:12:89","nodeType":"YulAssignment","src":"8321:12:89","value":{"name":"_1","nativeSrc":"8331:2:89","nodeType":"YulIdentifier","src":"8331:2:89"},"variableNames":[{"name":"value0","nativeSrc":"8321:6:89","nodeType":"YulIdentifier","src":"8321:6:89"}]},{"nativeSrc":"8342:48:89","nodeType":"YulVariableDeclaration","src":"8342:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8375:9:89","nodeType":"YulIdentifier","src":"8375:9:89"},{"kind":"number","nativeSrc":"8386:2:89","nodeType":"YulLiteral","src":"8386:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8371:3:89","nodeType":"YulIdentifier","src":"8371:3:89"},"nativeSrc":"8371:18:89","nodeType":"YulFunctionCall","src":"8371:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"8358:12:89","nodeType":"YulIdentifier","src":"8358:12:89"},"nativeSrc":"8358:32:89","nodeType":"YulFunctionCall","src":"8358:32:89"},"variables":[{"name":"offset_1","nativeSrc":"8346:8:89","nodeType":"YulTypedName","src":"8346:8:89","type":""}]},{"body":{"nativeSrc":"8435:16:89","nodeType":"YulBlock","src":"8435:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8444:1:89","nodeType":"YulLiteral","src":"8444:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8447:1:89","nodeType":"YulLiteral","src":"8447:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8437:6:89","nodeType":"YulIdentifier","src":"8437:6:89"},"nativeSrc":"8437:12:89","nodeType":"YulFunctionCall","src":"8437:12:89"},"nativeSrc":"8437:12:89","nodeType":"YulExpressionStatement","src":"8437:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"8405:8:89","nodeType":"YulIdentifier","src":"8405:8:89"},{"kind":"number","nativeSrc":"8415:18:89","nodeType":"YulLiteral","src":"8415:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8402:2:89","nodeType":"YulIdentifier","src":"8402:2:89"},"nativeSrc":"8402:32:89","nodeType":"YulFunctionCall","src":"8402:32:89"},"nativeSrc":"8399:52:89","nodeType":"YulIf","src":"8399:52:89"},{"nativeSrc":"8460:86:89","nodeType":"YulVariableDeclaration","src":"8460:86:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8516:9:89","nodeType":"YulIdentifier","src":"8516:9:89"},{"name":"offset_1","nativeSrc":"8527:8:89","nodeType":"YulIdentifier","src":"8527:8:89"}],"functionName":{"name":"add","nativeSrc":"8512:3:89","nodeType":"YulIdentifier","src":"8512:3:89"},"nativeSrc":"8512:24:89","nodeType":"YulFunctionCall","src":"8512:24:89"},{"name":"dataEnd","nativeSrc":"8538:7:89","nodeType":"YulIdentifier","src":"8538:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8486:25:89","nodeType":"YulIdentifier","src":"8486:25:89"},"nativeSrc":"8486:60:89","nodeType":"YulFunctionCall","src":"8486:60:89"},"variables":[{"name":"value1_1","nativeSrc":"8464:8:89","nodeType":"YulTypedName","src":"8464:8:89","type":""},{"name":"value2_1","nativeSrc":"8474:8:89","nodeType":"YulTypedName","src":"8474:8:89","type":""}]},{"nativeSrc":"8555:18:89","nodeType":"YulAssignment","src":"8555:18:89","value":{"name":"value1_1","nativeSrc":"8565:8:89","nodeType":"YulIdentifier","src":"8565:8:89"},"variableNames":[{"name":"value1","nativeSrc":"8555:6:89","nodeType":"YulIdentifier","src":"8555:6:89"}]},{"nativeSrc":"8582:18:89","nodeType":"YulAssignment","src":"8582:18:89","value":{"name":"value2_1","nativeSrc":"8592:8:89","nodeType":"YulIdentifier","src":"8592:8:89"},"variableNames":[{"name":"value2","nativeSrc":"8582:6:89","nodeType":"YulIdentifier","src":"8582:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_UnionInMessage_$18197_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"7908:698:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7999:9:89","nodeType":"YulTypedName","src":"7999:9:89","type":""},{"name":"dataEnd","nativeSrc":"8010:7:89","nodeType":"YulTypedName","src":"8010:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8022:6:89","nodeType":"YulTypedName","src":"8022:6:89","type":""},{"name":"value1","nativeSrc":"8030:6:89","nodeType":"YulTypedName","src":"8030:6:89","type":""},{"name":"value2","nativeSrc":"8038:6:89","nodeType":"YulTypedName","src":"8038:6:89","type":""}],"src":"7908:698:89"},{"body":{"nativeSrc":"8656:86:89","nodeType":"YulBlock","src":"8656:86:89","statements":[{"body":{"nativeSrc":"8720:16:89","nodeType":"YulBlock","src":"8720:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8729:1:89","nodeType":"YulLiteral","src":"8729:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8732:1:89","nodeType":"YulLiteral","src":"8732:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8722:6:89","nodeType":"YulIdentifier","src":"8722:6:89"},"nativeSrc":"8722:12:89","nodeType":"YulFunctionCall","src":"8722:12:89"},"nativeSrc":"8722:12:89","nodeType":"YulExpressionStatement","src":"8722:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8679:5:89","nodeType":"YulIdentifier","src":"8679:5:89"},{"arguments":[{"name":"value","nativeSrc":"8690:5:89","nodeType":"YulIdentifier","src":"8690:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8705:3:89","nodeType":"YulLiteral","src":"8705:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"8710:1:89","nodeType":"YulLiteral","src":"8710:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8701:3:89","nodeType":"YulIdentifier","src":"8701:3:89"},"nativeSrc":"8701:11:89","nodeType":"YulFunctionCall","src":"8701:11:89"},{"kind":"number","nativeSrc":"8714:1:89","nodeType":"YulLiteral","src":"8714:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8697:3:89","nodeType":"YulIdentifier","src":"8697:3:89"},"nativeSrc":"8697:19:89","nodeType":"YulFunctionCall","src":"8697:19:89"}],"functionName":{"name":"and","nativeSrc":"8686:3:89","nodeType":"YulIdentifier","src":"8686:3:89"},"nativeSrc":"8686:31:89","nodeType":"YulFunctionCall","src":"8686:31:89"}],"functionName":{"name":"eq","nativeSrc":"8676:2:89","nodeType":"YulIdentifier","src":"8676:2:89"},"nativeSrc":"8676:42:89","nodeType":"YulFunctionCall","src":"8676:42:89"}],"functionName":{"name":"iszero","nativeSrc":"8669:6:89","nodeType":"YulIdentifier","src":"8669:6:89"},"nativeSrc":"8669:50:89","nodeType":"YulFunctionCall","src":"8669:50:89"},"nativeSrc":"8666:70:89","nodeType":"YulIf","src":"8666:70:89"}]},"name":"validator_revert_address","nativeSrc":"8611:131:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8645:5:89","nodeType":"YulTypedName","src":"8645:5:89","type":""}],"src":"8611:131:89"},{"body":{"nativeSrc":"8796:85:89","nodeType":"YulBlock","src":"8796:85:89","statements":[{"nativeSrc":"8806:29:89","nodeType":"YulAssignment","src":"8806:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"8828:6:89","nodeType":"YulIdentifier","src":"8828:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"8815:12:89","nodeType":"YulIdentifier","src":"8815:12:89"},"nativeSrc":"8815:20:89","nodeType":"YulFunctionCall","src":"8815:20:89"},"variableNames":[{"name":"value","nativeSrc":"8806:5:89","nodeType":"YulIdentifier","src":"8806:5:89"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8869:5:89","nodeType":"YulIdentifier","src":"8869:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8844:24:89","nodeType":"YulIdentifier","src":"8844:24:89"},"nativeSrc":"8844:31:89","nodeType":"YulFunctionCall","src":"8844:31:89"},"nativeSrc":"8844:31:89","nodeType":"YulExpressionStatement","src":"8844:31:89"}]},"name":"abi_decode_address","nativeSrc":"8747:134:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8775:6:89","nodeType":"YulTypedName","src":"8775:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8786:5:89","nodeType":"YulTypedName","src":"8786:5:89","type":""}],"src":"8747:134:89"},{"body":{"nativeSrc":"8973:301:89","nodeType":"YulBlock","src":"8973:301:89","statements":[{"body":{"nativeSrc":"9019:16:89","nodeType":"YulBlock","src":"9019:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9028:1:89","nodeType":"YulLiteral","src":"9028:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9031:1:89","nodeType":"YulLiteral","src":"9031:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9021:6:89","nodeType":"YulIdentifier","src":"9021:6:89"},"nativeSrc":"9021:12:89","nodeType":"YulFunctionCall","src":"9021:12:89"},"nativeSrc":"9021:12:89","nodeType":"YulExpressionStatement","src":"9021:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8994:7:89","nodeType":"YulIdentifier","src":"8994:7:89"},{"name":"headStart","nativeSrc":"9003:9:89","nodeType":"YulIdentifier","src":"9003:9:89"}],"functionName":{"name":"sub","nativeSrc":"8990:3:89","nodeType":"YulIdentifier","src":"8990:3:89"},"nativeSrc":"8990:23:89","nodeType":"YulFunctionCall","src":"8990:23:89"},{"kind":"number","nativeSrc":"9015:2:89","nodeType":"YulLiteral","src":"9015:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8986:3:89","nodeType":"YulIdentifier","src":"8986:3:89"},"nativeSrc":"8986:32:89","nodeType":"YulFunctionCall","src":"8986:32:89"},"nativeSrc":"8983:52:89","nodeType":"YulIf","src":"8983:52:89"},{"nativeSrc":"9044:36:89","nodeType":"YulVariableDeclaration","src":"9044:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9070:9:89","nodeType":"YulIdentifier","src":"9070:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"9057:12:89","nodeType":"YulIdentifier","src":"9057:12:89"},"nativeSrc":"9057:23:89","nodeType":"YulFunctionCall","src":"9057:23:89"},"variables":[{"name":"value","nativeSrc":"9048:5:89","nodeType":"YulTypedName","src":"9048:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9114:5:89","nodeType":"YulIdentifier","src":"9114:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9089:24:89","nodeType":"YulIdentifier","src":"9089:24:89"},"nativeSrc":"9089:31:89","nodeType":"YulFunctionCall","src":"9089:31:89"},"nativeSrc":"9089:31:89","nodeType":"YulExpressionStatement","src":"9089:31:89"},{"nativeSrc":"9129:15:89","nodeType":"YulAssignment","src":"9129:15:89","value":{"name":"value","nativeSrc":"9139:5:89","nodeType":"YulIdentifier","src":"9139:5:89"},"variableNames":[{"name":"value0","nativeSrc":"9129:6:89","nodeType":"YulIdentifier","src":"9129:6:89"}]},{"nativeSrc":"9153:47:89","nodeType":"YulVariableDeclaration","src":"9153:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9185:9:89","nodeType":"YulIdentifier","src":"9185:9:89"},{"kind":"number","nativeSrc":"9196:2:89","nodeType":"YulLiteral","src":"9196:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9181:3:89","nodeType":"YulIdentifier","src":"9181:3:89"},"nativeSrc":"9181:18:89","nodeType":"YulFunctionCall","src":"9181:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"9168:12:89","nodeType":"YulIdentifier","src":"9168:12:89"},"nativeSrc":"9168:32:89","nodeType":"YulFunctionCall","src":"9168:32:89"},"variables":[{"name":"value_1","nativeSrc":"9157:7:89","nodeType":"YulTypedName","src":"9157:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"9234:7:89","nodeType":"YulIdentifier","src":"9234:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9209:24:89","nodeType":"YulIdentifier","src":"9209:24:89"},"nativeSrc":"9209:33:89","nodeType":"YulFunctionCall","src":"9209:33:89"},"nativeSrc":"9209:33:89","nodeType":"YulExpressionStatement","src":"9209:33:89"},{"nativeSrc":"9251:17:89","nodeType":"YulAssignment","src":"9251:17:89","value":{"name":"value_1","nativeSrc":"9261:7:89","nodeType":"YulIdentifier","src":"9261:7:89"},"variableNames":[{"name":"value1","nativeSrc":"9251:6:89","nodeType":"YulIdentifier","src":"9251:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"8886:388:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8931:9:89","nodeType":"YulTypedName","src":"8931:9:89","type":""},{"name":"dataEnd","nativeSrc":"8942:7:89","nodeType":"YulTypedName","src":"8942:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8954:6:89","nodeType":"YulTypedName","src":"8954:6:89","type":""},{"name":"value1","nativeSrc":"8962:6:89","nodeType":"YulTypedName","src":"8962:6:89","type":""}],"src":"8886:388:89"},{"body":{"nativeSrc":"9374:280:89","nodeType":"YulBlock","src":"9374:280:89","statements":[{"body":{"nativeSrc":"9420:16:89","nodeType":"YulBlock","src":"9420:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9429:1:89","nodeType":"YulLiteral","src":"9429:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9432:1:89","nodeType":"YulLiteral","src":"9432:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9422:6:89","nodeType":"YulIdentifier","src":"9422:6:89"},"nativeSrc":"9422:12:89","nodeType":"YulFunctionCall","src":"9422:12:89"},"nativeSrc":"9422:12:89","nodeType":"YulExpressionStatement","src":"9422:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9395:7:89","nodeType":"YulIdentifier","src":"9395:7:89"},{"name":"headStart","nativeSrc":"9404:9:89","nodeType":"YulIdentifier","src":"9404:9:89"}],"functionName":{"name":"sub","nativeSrc":"9391:3:89","nodeType":"YulIdentifier","src":"9391:3:89"},"nativeSrc":"9391:23:89","nodeType":"YulFunctionCall","src":"9391:23:89"},{"kind":"number","nativeSrc":"9416:2:89","nodeType":"YulLiteral","src":"9416:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9387:3:89","nodeType":"YulIdentifier","src":"9387:3:89"},"nativeSrc":"9387:32:89","nodeType":"YulFunctionCall","src":"9387:32:89"},"nativeSrc":"9384:52:89","nodeType":"YulIf","src":"9384:52:89"},{"nativeSrc":"9445:36:89","nodeType":"YulVariableDeclaration","src":"9445:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9471:9:89","nodeType":"YulIdentifier","src":"9471:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"9458:12:89","nodeType":"YulIdentifier","src":"9458:12:89"},"nativeSrc":"9458:23:89","nodeType":"YulFunctionCall","src":"9458:23:89"},"variables":[{"name":"value","nativeSrc":"9449:5:89","nodeType":"YulTypedName","src":"9449:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9515:5:89","nodeType":"YulIdentifier","src":"9515:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9490:24:89","nodeType":"YulIdentifier","src":"9490:24:89"},"nativeSrc":"9490:31:89","nodeType":"YulFunctionCall","src":"9490:31:89"},"nativeSrc":"9490:31:89","nodeType":"YulExpressionStatement","src":"9490:31:89"},{"nativeSrc":"9530:15:89","nodeType":"YulAssignment","src":"9530:15:89","value":{"name":"value","nativeSrc":"9540:5:89","nodeType":"YulIdentifier","src":"9540:5:89"},"variableNames":[{"name":"value0","nativeSrc":"9530:6:89","nodeType":"YulIdentifier","src":"9530:6:89"}]},{"nativeSrc":"9554:16:89","nodeType":"YulVariableDeclaration","src":"9554:16:89","value":{"kind":"number","nativeSrc":"9569:1:89","nodeType":"YulLiteral","src":"9569:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9558:7:89","nodeType":"YulTypedName","src":"9558:7:89","type":""}]},{"nativeSrc":"9579:43:89","nodeType":"YulAssignment","src":"9579:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9607:9:89","nodeType":"YulIdentifier","src":"9607:9:89"},{"kind":"number","nativeSrc":"9618:2:89","nodeType":"YulLiteral","src":"9618:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9603:3:89","nodeType":"YulIdentifier","src":"9603:3:89"},"nativeSrc":"9603:18:89","nodeType":"YulFunctionCall","src":"9603:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"9590:12:89","nodeType":"YulIdentifier","src":"9590:12:89"},"nativeSrc":"9590:32:89","nodeType":"YulFunctionCall","src":"9590:32:89"},"variableNames":[{"name":"value_1","nativeSrc":"9579:7:89","nodeType":"YulIdentifier","src":"9579:7:89"}]},{"nativeSrc":"9631:17:89","nodeType":"YulAssignment","src":"9631:17:89","value":{"name":"value_1","nativeSrc":"9641:7:89","nodeType":"YulIdentifier","src":"9641:7:89"},"variableNames":[{"name":"value1","nativeSrc":"9631:6:89","nodeType":"YulIdentifier","src":"9631:6:89"}]}]},"name":"abi_decode_tuple_t_address_payablet_uint256","nativeSrc":"9279:375:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9332:9:89","nodeType":"YulTypedName","src":"9332:9:89","type":""},{"name":"dataEnd","nativeSrc":"9343:7:89","nodeType":"YulTypedName","src":"9343:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9355:6:89","nodeType":"YulTypedName","src":"9355:6:89","type":""},{"name":"value1","nativeSrc":"9363:6:89","nodeType":"YulTypedName","src":"9363:6:89","type":""}],"src":"9279:375:89"},{"body":{"nativeSrc":"9691:95:89","nodeType":"YulBlock","src":"9691:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9708:1:89","nodeType":"YulLiteral","src":"9708:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"9715:3:89","nodeType":"YulLiteral","src":"9715:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"9720:10:89","nodeType":"YulLiteral","src":"9720:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"9711:3:89","nodeType":"YulIdentifier","src":"9711:3:89"},"nativeSrc":"9711:20:89","nodeType":"YulFunctionCall","src":"9711:20:89"}],"functionName":{"name":"mstore","nativeSrc":"9701:6:89","nodeType":"YulIdentifier","src":"9701:6:89"},"nativeSrc":"9701:31:89","nodeType":"YulFunctionCall","src":"9701:31:89"},"nativeSrc":"9701:31:89","nodeType":"YulExpressionStatement","src":"9701:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9748:1:89","nodeType":"YulLiteral","src":"9748:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"9751:4:89","nodeType":"YulLiteral","src":"9751:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9741:6:89","nodeType":"YulIdentifier","src":"9741:6:89"},"nativeSrc":"9741:15:89","nodeType":"YulFunctionCall","src":"9741:15:89"},"nativeSrc":"9741:15:89","nodeType":"YulExpressionStatement","src":"9741:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9772:1:89","nodeType":"YulLiteral","src":"9772:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9775:4:89","nodeType":"YulLiteral","src":"9775:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9765:6:89","nodeType":"YulIdentifier","src":"9765:6:89"},"nativeSrc":"9765:15:89","nodeType":"YulFunctionCall","src":"9765:15:89"},"nativeSrc":"9765:15:89","nodeType":"YulExpressionStatement","src":"9765:15:89"}]},"name":"panic_error_0x41","nativeSrc":"9659:127:89","nodeType":"YulFunctionDefinition","src":"9659:127:89"},{"body":{"nativeSrc":"9837:211:89","nodeType":"YulBlock","src":"9837:211:89","statements":[{"nativeSrc":"9847:21:89","nodeType":"YulAssignment","src":"9847:21:89","value":{"arguments":[{"kind":"number","nativeSrc":"9863:4:89","nodeType":"YulLiteral","src":"9863:4:89","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9857:5:89","nodeType":"YulIdentifier","src":"9857:5:89"},"nativeSrc":"9857:11:89","nodeType":"YulFunctionCall","src":"9857:11:89"},"variableNames":[{"name":"memPtr","nativeSrc":"9847:6:89","nodeType":"YulIdentifier","src":"9847:6:89"}]},{"nativeSrc":"9877:35:89","nodeType":"YulVariableDeclaration","src":"9877:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"9899:6:89","nodeType":"YulIdentifier","src":"9899:6:89"},{"kind":"number","nativeSrc":"9907:4:89","nodeType":"YulLiteral","src":"9907:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9895:3:89","nodeType":"YulIdentifier","src":"9895:3:89"},"nativeSrc":"9895:17:89","nodeType":"YulFunctionCall","src":"9895:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"9881:10:89","nodeType":"YulTypedName","src":"9881:10:89","type":""}]},{"body":{"nativeSrc":"9987:22:89","nodeType":"YulBlock","src":"9987:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9989:16:89","nodeType":"YulIdentifier","src":"9989:16:89"},"nativeSrc":"9989:18:89","nodeType":"YulFunctionCall","src":"9989:18:89"},"nativeSrc":"9989:18:89","nodeType":"YulExpressionStatement","src":"9989:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"9930:10:89","nodeType":"YulIdentifier","src":"9930:10:89"},{"kind":"number","nativeSrc":"9942:18:89","nodeType":"YulLiteral","src":"9942:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9927:2:89","nodeType":"YulIdentifier","src":"9927:2:89"},"nativeSrc":"9927:34:89","nodeType":"YulFunctionCall","src":"9927:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"9966:10:89","nodeType":"YulIdentifier","src":"9966:10:89"},{"name":"memPtr","nativeSrc":"9978:6:89","nodeType":"YulIdentifier","src":"9978:6:89"}],"functionName":{"name":"lt","nativeSrc":"9963:2:89","nodeType":"YulIdentifier","src":"9963:2:89"},"nativeSrc":"9963:22:89","nodeType":"YulFunctionCall","src":"9963:22:89"}],"functionName":{"name":"or","nativeSrc":"9924:2:89","nodeType":"YulIdentifier","src":"9924:2:89"},"nativeSrc":"9924:62:89","nodeType":"YulFunctionCall","src":"9924:62:89"},"nativeSrc":"9921:88:89","nodeType":"YulIf","src":"9921:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10025:4:89","nodeType":"YulLiteral","src":"10025:4:89","type":"","value":"0x40"},{"name":"newFreePtr","nativeSrc":"10031:10:89","nodeType":"YulIdentifier","src":"10031:10:89"}],"functionName":{"name":"mstore","nativeSrc":"10018:6:89","nodeType":"YulIdentifier","src":"10018:6:89"},"nativeSrc":"10018:24:89","nodeType":"YulFunctionCall","src":"10018:24:89"},"nativeSrc":"10018:24:89","nodeType":"YulExpressionStatement","src":"10018:24:89"}]},"name":"allocate_memory_9694","nativeSrc":"9791:257:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"9826:6:89","nodeType":"YulTypedName","src":"9826:6:89","type":""}],"src":"9791:257:89"},{"body":{"nativeSrc":"10099:207:89","nodeType":"YulBlock","src":"10099:207:89","statements":[{"nativeSrc":"10109:19:89","nodeType":"YulAssignment","src":"10109:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"10125:2:89","nodeType":"YulLiteral","src":"10125:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"10119:5:89","nodeType":"YulIdentifier","src":"10119:5:89"},"nativeSrc":"10119:9:89","nodeType":"YulFunctionCall","src":"10119:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"10109:6:89","nodeType":"YulIdentifier","src":"10109:6:89"}]},{"nativeSrc":"10137:35:89","nodeType":"YulVariableDeclaration","src":"10137:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"10159:6:89","nodeType":"YulIdentifier","src":"10159:6:89"},{"kind":"number","nativeSrc":"10167:4:89","nodeType":"YulLiteral","src":"10167:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10155:3:89","nodeType":"YulIdentifier","src":"10155:3:89"},"nativeSrc":"10155:17:89","nodeType":"YulFunctionCall","src":"10155:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"10141:10:89","nodeType":"YulTypedName","src":"10141:10:89","type":""}]},{"body":{"nativeSrc":"10247:22:89","nodeType":"YulBlock","src":"10247:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10249:16:89","nodeType":"YulIdentifier","src":"10249:16:89"},"nativeSrc":"10249:18:89","nodeType":"YulFunctionCall","src":"10249:18:89"},"nativeSrc":"10249:18:89","nodeType":"YulExpressionStatement","src":"10249:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10190:10:89","nodeType":"YulIdentifier","src":"10190:10:89"},{"kind":"number","nativeSrc":"10202:18:89","nodeType":"YulLiteral","src":"10202:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10187:2:89","nodeType":"YulIdentifier","src":"10187:2:89"},"nativeSrc":"10187:34:89","nodeType":"YulFunctionCall","src":"10187:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10226:10:89","nodeType":"YulIdentifier","src":"10226:10:89"},{"name":"memPtr","nativeSrc":"10238:6:89","nodeType":"YulIdentifier","src":"10238:6:89"}],"functionName":{"name":"lt","nativeSrc":"10223:2:89","nodeType":"YulIdentifier","src":"10223:2:89"},"nativeSrc":"10223:22:89","nodeType":"YulFunctionCall","src":"10223:22:89"}],"functionName":{"name":"or","nativeSrc":"10184:2:89","nodeType":"YulIdentifier","src":"10184:2:89"},"nativeSrc":"10184:62:89","nodeType":"YulFunctionCall","src":"10184:62:89"},"nativeSrc":"10181:88:89","nodeType":"YulIf","src":"10181:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10285:2:89","nodeType":"YulLiteral","src":"10285:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10289:10:89","nodeType":"YulIdentifier","src":"10289:10:89"}],"functionName":{"name":"mstore","nativeSrc":"10278:6:89","nodeType":"YulIdentifier","src":"10278:6:89"},"nativeSrc":"10278:22:89","nodeType":"YulFunctionCall","src":"10278:22:89"},"nativeSrc":"10278:22:89","nodeType":"YulExpressionStatement","src":"10278:22:89"}]},"name":"allocate_memory_9697","nativeSrc":"10053:253:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"10088:6:89","nodeType":"YulTypedName","src":"10088:6:89","type":""}],"src":"10053:253:89"},{"body":{"nativeSrc":"10357:209:89","nodeType":"YulBlock","src":"10357:209:89","statements":[{"nativeSrc":"10367:19:89","nodeType":"YulAssignment","src":"10367:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"10383:2:89","nodeType":"YulLiteral","src":"10383:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"10377:5:89","nodeType":"YulIdentifier","src":"10377:5:89"},"nativeSrc":"10377:9:89","nodeType":"YulFunctionCall","src":"10377:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"10367:6:89","nodeType":"YulIdentifier","src":"10367:6:89"}]},{"nativeSrc":"10395:37:89","nodeType":"YulVariableDeclaration","src":"10395:37:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"10417:6:89","nodeType":"YulIdentifier","src":"10417:6:89"},{"kind":"number","nativeSrc":"10425:6:89","nodeType":"YulLiteral","src":"10425:6:89","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"10413:3:89","nodeType":"YulIdentifier","src":"10413:3:89"},"nativeSrc":"10413:19:89","nodeType":"YulFunctionCall","src":"10413:19:89"},"variables":[{"name":"newFreePtr","nativeSrc":"10399:10:89","nodeType":"YulTypedName","src":"10399:10:89","type":""}]},{"body":{"nativeSrc":"10507:22:89","nodeType":"YulBlock","src":"10507:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10509:16:89","nodeType":"YulIdentifier","src":"10509:16:89"},"nativeSrc":"10509:18:89","nodeType":"YulFunctionCall","src":"10509:18:89"},"nativeSrc":"10509:18:89","nodeType":"YulExpressionStatement","src":"10509:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10450:10:89","nodeType":"YulIdentifier","src":"10450:10:89"},{"kind":"number","nativeSrc":"10462:18:89","nodeType":"YulLiteral","src":"10462:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10447:2:89","nodeType":"YulIdentifier","src":"10447:2:89"},"nativeSrc":"10447:34:89","nodeType":"YulFunctionCall","src":"10447:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10486:10:89","nodeType":"YulIdentifier","src":"10486:10:89"},{"name":"memPtr","nativeSrc":"10498:6:89","nodeType":"YulIdentifier","src":"10498:6:89"}],"functionName":{"name":"lt","nativeSrc":"10483:2:89","nodeType":"YulIdentifier","src":"10483:2:89"},"nativeSrc":"10483:22:89","nodeType":"YulFunctionCall","src":"10483:22:89"}],"functionName":{"name":"or","nativeSrc":"10444:2:89","nodeType":"YulIdentifier","src":"10444:2:89"},"nativeSrc":"10444:62:89","nodeType":"YulFunctionCall","src":"10444:62:89"},"nativeSrc":"10441:88:89","nodeType":"YulIf","src":"10441:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10545:2:89","nodeType":"YulLiteral","src":"10545:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10549:10:89","nodeType":"YulIdentifier","src":"10549:10:89"}],"functionName":{"name":"mstore","nativeSrc":"10538:6:89","nodeType":"YulIdentifier","src":"10538:6:89"},"nativeSrc":"10538:22:89","nodeType":"YulFunctionCall","src":"10538:22:89"},"nativeSrc":"10538:22:89","nodeType":"YulExpressionStatement","src":"10538:22:89"}]},"name":"allocate_memory_9701","nativeSrc":"10311:255:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"10346:6:89","nodeType":"YulTypedName","src":"10346:6:89","type":""}],"src":"10311:255:89"},{"body":{"nativeSrc":"10617:207:89","nodeType":"YulBlock","src":"10617:207:89","statements":[{"nativeSrc":"10627:19:89","nodeType":"YulAssignment","src":"10627:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"10643:2:89","nodeType":"YulLiteral","src":"10643:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"10637:5:89","nodeType":"YulIdentifier","src":"10637:5:89"},"nativeSrc":"10637:9:89","nodeType":"YulFunctionCall","src":"10637:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"10627:6:89","nodeType":"YulIdentifier","src":"10627:6:89"}]},{"nativeSrc":"10655:35:89","nodeType":"YulVariableDeclaration","src":"10655:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"10677:6:89","nodeType":"YulIdentifier","src":"10677:6:89"},{"kind":"number","nativeSrc":"10685:4:89","nodeType":"YulLiteral","src":"10685:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10673:3:89","nodeType":"YulIdentifier","src":"10673:3:89"},"nativeSrc":"10673:17:89","nodeType":"YulFunctionCall","src":"10673:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"10659:10:89","nodeType":"YulTypedName","src":"10659:10:89","type":""}]},{"body":{"nativeSrc":"10765:22:89","nodeType":"YulBlock","src":"10765:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10767:16:89","nodeType":"YulIdentifier","src":"10767:16:89"},"nativeSrc":"10767:18:89","nodeType":"YulFunctionCall","src":"10767:18:89"},"nativeSrc":"10767:18:89","nodeType":"YulExpressionStatement","src":"10767:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10708:10:89","nodeType":"YulIdentifier","src":"10708:10:89"},{"kind":"number","nativeSrc":"10720:18:89","nodeType":"YulLiteral","src":"10720:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10705:2:89","nodeType":"YulIdentifier","src":"10705:2:89"},"nativeSrc":"10705:34:89","nodeType":"YulFunctionCall","src":"10705:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10744:10:89","nodeType":"YulIdentifier","src":"10744:10:89"},{"name":"memPtr","nativeSrc":"10756:6:89","nodeType":"YulIdentifier","src":"10756:6:89"}],"functionName":{"name":"lt","nativeSrc":"10741:2:89","nodeType":"YulIdentifier","src":"10741:2:89"},"nativeSrc":"10741:22:89","nodeType":"YulFunctionCall","src":"10741:22:89"}],"functionName":{"name":"or","nativeSrc":"10702:2:89","nodeType":"YulIdentifier","src":"10702:2:89"},"nativeSrc":"10702:62:89","nodeType":"YulFunctionCall","src":"10702:62:89"},"nativeSrc":"10699:88:89","nodeType":"YulIf","src":"10699:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10803:2:89","nodeType":"YulLiteral","src":"10803:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10807:10:89","nodeType":"YulIdentifier","src":"10807:10:89"}],"functionName":{"name":"mstore","nativeSrc":"10796:6:89","nodeType":"YulIdentifier","src":"10796:6:89"},"nativeSrc":"10796:22:89","nodeType":"YulFunctionCall","src":"10796:22:89"},"nativeSrc":"10796:22:89","nodeType":"YulExpressionStatement","src":"10796:22:89"}]},"name":"allocate_memory_9705","nativeSrc":"10571:253:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"10606:6:89","nodeType":"YulTypedName","src":"10606:6:89","type":""}],"src":"10571:253:89"},{"body":{"nativeSrc":"10875:209:89","nodeType":"YulBlock","src":"10875:209:89","statements":[{"nativeSrc":"10885:19:89","nodeType":"YulAssignment","src":"10885:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"10901:2:89","nodeType":"YulLiteral","src":"10901:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"10895:5:89","nodeType":"YulIdentifier","src":"10895:5:89"},"nativeSrc":"10895:9:89","nodeType":"YulFunctionCall","src":"10895:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"10885:6:89","nodeType":"YulIdentifier","src":"10885:6:89"}]},{"nativeSrc":"10913:37:89","nodeType":"YulVariableDeclaration","src":"10913:37:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"10935:6:89","nodeType":"YulIdentifier","src":"10935:6:89"},{"kind":"number","nativeSrc":"10943:6:89","nodeType":"YulLiteral","src":"10943:6:89","type":"","value":"0x0200"}],"functionName":{"name":"add","nativeSrc":"10931:3:89","nodeType":"YulIdentifier","src":"10931:3:89"},"nativeSrc":"10931:19:89","nodeType":"YulFunctionCall","src":"10931:19:89"},"variables":[{"name":"newFreePtr","nativeSrc":"10917:10:89","nodeType":"YulTypedName","src":"10917:10:89","type":""}]},{"body":{"nativeSrc":"11025:22:89","nodeType":"YulBlock","src":"11025:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11027:16:89","nodeType":"YulIdentifier","src":"11027:16:89"},"nativeSrc":"11027:18:89","nodeType":"YulFunctionCall","src":"11027:18:89"},"nativeSrc":"11027:18:89","nodeType":"YulExpressionStatement","src":"11027:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10968:10:89","nodeType":"YulIdentifier","src":"10968:10:89"},{"kind":"number","nativeSrc":"10980:18:89","nodeType":"YulLiteral","src":"10980:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10965:2:89","nodeType":"YulIdentifier","src":"10965:2:89"},"nativeSrc":"10965:34:89","nodeType":"YulFunctionCall","src":"10965:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"11004:10:89","nodeType":"YulIdentifier","src":"11004:10:89"},{"name":"memPtr","nativeSrc":"11016:6:89","nodeType":"YulIdentifier","src":"11016:6:89"}],"functionName":{"name":"lt","nativeSrc":"11001:2:89","nodeType":"YulIdentifier","src":"11001:2:89"},"nativeSrc":"11001:22:89","nodeType":"YulFunctionCall","src":"11001:22:89"}],"functionName":{"name":"or","nativeSrc":"10962:2:89","nodeType":"YulIdentifier","src":"10962:2:89"},"nativeSrc":"10962:62:89","nodeType":"YulFunctionCall","src":"10962:62:89"},"nativeSrc":"10959:88:89","nodeType":"YulIf","src":"10959:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11063:2:89","nodeType":"YulLiteral","src":"11063:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"11067:10:89","nodeType":"YulIdentifier","src":"11067:10:89"}],"functionName":{"name":"mstore","nativeSrc":"11056:6:89","nodeType":"YulIdentifier","src":"11056:6:89"},"nativeSrc":"11056:22:89","nodeType":"YulFunctionCall","src":"11056:22:89"},"nativeSrc":"11056:22:89","nodeType":"YulExpressionStatement","src":"11056:22:89"}]},"name":"allocate_memory_9710","nativeSrc":"10829:255:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"10864:6:89","nodeType":"YulTypedName","src":"10864:6:89","type":""}],"src":"10829:255:89"},{"body":{"nativeSrc":"11135:209:89","nodeType":"YulBlock","src":"11135:209:89","statements":[{"nativeSrc":"11145:19:89","nodeType":"YulAssignment","src":"11145:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"11161:2:89","nodeType":"YulLiteral","src":"11161:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"11155:5:89","nodeType":"YulIdentifier","src":"11155:5:89"},"nativeSrc":"11155:9:89","nodeType":"YulFunctionCall","src":"11155:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"11145:6:89","nodeType":"YulIdentifier","src":"11145:6:89"}]},{"nativeSrc":"11173:37:89","nodeType":"YulVariableDeclaration","src":"11173:37:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"11195:6:89","nodeType":"YulIdentifier","src":"11195:6:89"},{"kind":"number","nativeSrc":"11203:6:89","nodeType":"YulLiteral","src":"11203:6:89","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"11191:3:89","nodeType":"YulIdentifier","src":"11191:3:89"},"nativeSrc":"11191:19:89","nodeType":"YulFunctionCall","src":"11191:19:89"},"variables":[{"name":"newFreePtr","nativeSrc":"11177:10:89","nodeType":"YulTypedName","src":"11177:10:89","type":""}]},{"body":{"nativeSrc":"11285:22:89","nodeType":"YulBlock","src":"11285:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11287:16:89","nodeType":"YulIdentifier","src":"11287:16:89"},"nativeSrc":"11287:18:89","nodeType":"YulFunctionCall","src":"11287:18:89"},"nativeSrc":"11287:18:89","nodeType":"YulExpressionStatement","src":"11287:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"11228:10:89","nodeType":"YulIdentifier","src":"11228:10:89"},{"kind":"number","nativeSrc":"11240:18:89","nodeType":"YulLiteral","src":"11240:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11225:2:89","nodeType":"YulIdentifier","src":"11225:2:89"},"nativeSrc":"11225:34:89","nodeType":"YulFunctionCall","src":"11225:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"11264:10:89","nodeType":"YulIdentifier","src":"11264:10:89"},{"name":"memPtr","nativeSrc":"11276:6:89","nodeType":"YulIdentifier","src":"11276:6:89"}],"functionName":{"name":"lt","nativeSrc":"11261:2:89","nodeType":"YulIdentifier","src":"11261:2:89"},"nativeSrc":"11261:22:89","nodeType":"YulFunctionCall","src":"11261:22:89"}],"functionName":{"name":"or","nativeSrc":"11222:2:89","nodeType":"YulIdentifier","src":"11222:2:89"},"nativeSrc":"11222:62:89","nodeType":"YulFunctionCall","src":"11222:62:89"},"nativeSrc":"11219:88:89","nodeType":"YulIf","src":"11219:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11323:2:89","nodeType":"YulLiteral","src":"11323:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"11327:10:89","nodeType":"YulIdentifier","src":"11327:10:89"}],"functionName":{"name":"mstore","nativeSrc":"11316:6:89","nodeType":"YulIdentifier","src":"11316:6:89"},"nativeSrc":"11316:22:89","nodeType":"YulFunctionCall","src":"11316:22:89"},"nativeSrc":"11316:22:89","nodeType":"YulExpressionStatement","src":"11316:22:89"}]},"name":"allocate_memory_9714","nativeSrc":"11089:255:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"11124:6:89","nodeType":"YulTypedName","src":"11124:6:89","type":""}],"src":"11089:255:89"},{"body":{"nativeSrc":"11394:230:89","nodeType":"YulBlock","src":"11394:230:89","statements":[{"nativeSrc":"11404:19:89","nodeType":"YulAssignment","src":"11404:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"11420:2:89","nodeType":"YulLiteral","src":"11420:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"11414:5:89","nodeType":"YulIdentifier","src":"11414:5:89"},"nativeSrc":"11414:9:89","nodeType":"YulFunctionCall","src":"11414:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"11404:6:89","nodeType":"YulIdentifier","src":"11404:6:89"}]},{"nativeSrc":"11432:58:89","nodeType":"YulVariableDeclaration","src":"11432:58:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"11454:6:89","nodeType":"YulIdentifier","src":"11454:6:89"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"11470:4:89","nodeType":"YulIdentifier","src":"11470:4:89"},{"kind":"number","nativeSrc":"11476:2:89","nodeType":"YulLiteral","src":"11476:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11466:3:89","nodeType":"YulIdentifier","src":"11466:3:89"},"nativeSrc":"11466:13:89","nodeType":"YulFunctionCall","src":"11466:13:89"},{"arguments":[{"kind":"number","nativeSrc":"11485:2:89","nodeType":"YulLiteral","src":"11485:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11481:3:89","nodeType":"YulIdentifier","src":"11481:3:89"},"nativeSrc":"11481:7:89","nodeType":"YulFunctionCall","src":"11481:7:89"}],"functionName":{"name":"and","nativeSrc":"11462:3:89","nodeType":"YulIdentifier","src":"11462:3:89"},"nativeSrc":"11462:27:89","nodeType":"YulFunctionCall","src":"11462:27:89"}],"functionName":{"name":"add","nativeSrc":"11450:3:89","nodeType":"YulIdentifier","src":"11450:3:89"},"nativeSrc":"11450:40:89","nodeType":"YulFunctionCall","src":"11450:40:89"},"variables":[{"name":"newFreePtr","nativeSrc":"11436:10:89","nodeType":"YulTypedName","src":"11436:10:89","type":""}]},{"body":{"nativeSrc":"11565:22:89","nodeType":"YulBlock","src":"11565:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11567:16:89","nodeType":"YulIdentifier","src":"11567:16:89"},"nativeSrc":"11567:18:89","nodeType":"YulFunctionCall","src":"11567:18:89"},"nativeSrc":"11567:18:89","nodeType":"YulExpressionStatement","src":"11567:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"11508:10:89","nodeType":"YulIdentifier","src":"11508:10:89"},{"kind":"number","nativeSrc":"11520:18:89","nodeType":"YulLiteral","src":"11520:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11505:2:89","nodeType":"YulIdentifier","src":"11505:2:89"},"nativeSrc":"11505:34:89","nodeType":"YulFunctionCall","src":"11505:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"11544:10:89","nodeType":"YulIdentifier","src":"11544:10:89"},{"name":"memPtr","nativeSrc":"11556:6:89","nodeType":"YulIdentifier","src":"11556:6:89"}],"functionName":{"name":"lt","nativeSrc":"11541:2:89","nodeType":"YulIdentifier","src":"11541:2:89"},"nativeSrc":"11541:22:89","nodeType":"YulFunctionCall","src":"11541:22:89"}],"functionName":{"name":"or","nativeSrc":"11502:2:89","nodeType":"YulIdentifier","src":"11502:2:89"},"nativeSrc":"11502:62:89","nodeType":"YulFunctionCall","src":"11502:62:89"},"nativeSrc":"11499:88:89","nodeType":"YulIf","src":"11499:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11603:2:89","nodeType":"YulLiteral","src":"11603:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"11607:10:89","nodeType":"YulIdentifier","src":"11607:10:89"}],"functionName":{"name":"mstore","nativeSrc":"11596:6:89","nodeType":"YulIdentifier","src":"11596:6:89"},"nativeSrc":"11596:22:89","nodeType":"YulFunctionCall","src":"11596:22:89"},"nativeSrc":"11596:22:89","nodeType":"YulExpressionStatement","src":"11596:22:89"}]},"name":"allocate_memory","nativeSrc":"11349:275:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"11374:4:89","nodeType":"YulTypedName","src":"11374:4:89","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"11383:6:89","nodeType":"YulTypedName","src":"11383:6:89","type":""}],"src":"11349:275:89"},{"body":{"nativeSrc":"11686:129:89","nodeType":"YulBlock","src":"11686:129:89","statements":[{"body":{"nativeSrc":"11730:22:89","nodeType":"YulBlock","src":"11730:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11732:16:89","nodeType":"YulIdentifier","src":"11732:16:89"},"nativeSrc":"11732:18:89","nodeType":"YulFunctionCall","src":"11732:18:89"},"nativeSrc":"11732:18:89","nodeType":"YulExpressionStatement","src":"11732:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"11702:6:89","nodeType":"YulIdentifier","src":"11702:6:89"},{"kind":"number","nativeSrc":"11710:18:89","nodeType":"YulLiteral","src":"11710:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11699:2:89","nodeType":"YulIdentifier","src":"11699:2:89"},"nativeSrc":"11699:30:89","nodeType":"YulFunctionCall","src":"11699:30:89"},"nativeSrc":"11696:56:89","nodeType":"YulIf","src":"11696:56:89"},{"nativeSrc":"11761:48:89","nodeType":"YulAssignment","src":"11761:48:89","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11781:6:89","nodeType":"YulIdentifier","src":"11781:6:89"},{"kind":"number","nativeSrc":"11789:2:89","nodeType":"YulLiteral","src":"11789:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11777:3:89","nodeType":"YulIdentifier","src":"11777:3:89"},"nativeSrc":"11777:15:89","nodeType":"YulFunctionCall","src":"11777:15:89"},{"arguments":[{"kind":"number","nativeSrc":"11798:2:89","nodeType":"YulLiteral","src":"11798:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11794:3:89","nodeType":"YulIdentifier","src":"11794:3:89"},"nativeSrc":"11794:7:89","nodeType":"YulFunctionCall","src":"11794:7:89"}],"functionName":{"name":"and","nativeSrc":"11773:3:89","nodeType":"YulIdentifier","src":"11773:3:89"},"nativeSrc":"11773:29:89","nodeType":"YulFunctionCall","src":"11773:29:89"},{"kind":"number","nativeSrc":"11804:4:89","nodeType":"YulLiteral","src":"11804:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11769:3:89","nodeType":"YulIdentifier","src":"11769:3:89"},"nativeSrc":"11769:40:89","nodeType":"YulFunctionCall","src":"11769:40:89"},"variableNames":[{"name":"size","nativeSrc":"11761:4:89","nodeType":"YulIdentifier","src":"11761:4:89"}]}]},"name":"array_allocation_size_bytes","nativeSrc":"11629:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"11666:6:89","nodeType":"YulTypedName","src":"11666:6:89","type":""}],"returnVariables":[{"name":"size","nativeSrc":"11677:4:89","nodeType":"YulTypedName","src":"11677:4:89","type":""}],"src":"11629:186:89"},{"body":{"nativeSrc":"11872:464:89","nodeType":"YulBlock","src":"11872:464:89","statements":[{"body":{"nativeSrc":"11921:16:89","nodeType":"YulBlock","src":"11921:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11930:1:89","nodeType":"YulLiteral","src":"11930:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11933:1:89","nodeType":"YulLiteral","src":"11933:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11923:6:89","nodeType":"YulIdentifier","src":"11923:6:89"},"nativeSrc":"11923:12:89","nodeType":"YulFunctionCall","src":"11923:12:89"},"nativeSrc":"11923:12:89","nodeType":"YulExpressionStatement","src":"11923:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11900:6:89","nodeType":"YulIdentifier","src":"11900:6:89"},{"kind":"number","nativeSrc":"11908:4:89","nodeType":"YulLiteral","src":"11908:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11896:3:89","nodeType":"YulIdentifier","src":"11896:3:89"},"nativeSrc":"11896:17:89","nodeType":"YulFunctionCall","src":"11896:17:89"},{"name":"end","nativeSrc":"11915:3:89","nodeType":"YulIdentifier","src":"11915:3:89"}],"functionName":{"name":"slt","nativeSrc":"11892:3:89","nodeType":"YulIdentifier","src":"11892:3:89"},"nativeSrc":"11892:27:89","nodeType":"YulFunctionCall","src":"11892:27:89"}],"functionName":{"name":"iszero","nativeSrc":"11885:6:89","nodeType":"YulIdentifier","src":"11885:6:89"},"nativeSrc":"11885:35:89","nodeType":"YulFunctionCall","src":"11885:35:89"},"nativeSrc":"11882:55:89","nodeType":"YulIf","src":"11882:55:89"},{"nativeSrc":"11946:34:89","nodeType":"YulVariableDeclaration","src":"11946:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"11973:6:89","nodeType":"YulIdentifier","src":"11973:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"11960:12:89","nodeType":"YulIdentifier","src":"11960:12:89"},"nativeSrc":"11960:20:89","nodeType":"YulFunctionCall","src":"11960:20:89"},"variables":[{"name":"length","nativeSrc":"11950:6:89","nodeType":"YulTypedName","src":"11950:6:89","type":""}]},{"nativeSrc":"11989:28:89","nodeType":"YulVariableDeclaration","src":"11989:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"12004:6:89","nodeType":"YulIdentifier","src":"12004:6:89"},{"kind":"number","nativeSrc":"12012:4:89","nodeType":"YulLiteral","src":"12012:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12000:3:89","nodeType":"YulIdentifier","src":"12000:3:89"},"nativeSrc":"12000:17:89","nodeType":"YulFunctionCall","src":"12000:17:89"},"variables":[{"name":"src","nativeSrc":"11993:3:89","nodeType":"YulTypedName","src":"11993:3:89","type":""}]},{"nativeSrc":"12026:16:89","nodeType":"YulVariableDeclaration","src":"12026:16:89","value":{"kind":"number","nativeSrc":"12041:1:89","nodeType":"YulLiteral","src":"12041:1:89","type":"","value":"0"},"variables":[{"name":"array_1","nativeSrc":"12030:7:89","nodeType":"YulTypedName","src":"12030:7:89","type":""}]},{"nativeSrc":"12051:63:89","nodeType":"YulAssignment","src":"12051:63:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"12106:6:89","nodeType":"YulIdentifier","src":"12106:6:89"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"12078:27:89","nodeType":"YulIdentifier","src":"12078:27:89"},"nativeSrc":"12078:35:89","nodeType":"YulFunctionCall","src":"12078:35:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"12062:15:89","nodeType":"YulIdentifier","src":"12062:15:89"},"nativeSrc":"12062:52:89","nodeType":"YulFunctionCall","src":"12062:52:89"},"variableNames":[{"name":"array_1","nativeSrc":"12051:7:89","nodeType":"YulIdentifier","src":"12051:7:89"}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"12130:7:89","nodeType":"YulIdentifier","src":"12130:7:89"},{"name":"length","nativeSrc":"12139:6:89","nodeType":"YulIdentifier","src":"12139:6:89"}],"functionName":{"name":"mstore","nativeSrc":"12123:6:89","nodeType":"YulIdentifier","src":"12123:6:89"},"nativeSrc":"12123:23:89","nodeType":"YulFunctionCall","src":"12123:23:89"},"nativeSrc":"12123:23:89","nodeType":"YulExpressionStatement","src":"12123:23:89"},{"body":{"nativeSrc":"12184:16:89","nodeType":"YulBlock","src":"12184:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12193:1:89","nodeType":"YulLiteral","src":"12193:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12196:1:89","nodeType":"YulLiteral","src":"12196:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12186:6:89","nodeType":"YulIdentifier","src":"12186:6:89"},"nativeSrc":"12186:12:89","nodeType":"YulFunctionCall","src":"12186:12:89"},"nativeSrc":"12186:12:89","nodeType":"YulExpressionStatement","src":"12186:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"12165:3:89","nodeType":"YulIdentifier","src":"12165:3:89"},{"name":"length","nativeSrc":"12170:6:89","nodeType":"YulIdentifier","src":"12170:6:89"}],"functionName":{"name":"add","nativeSrc":"12161:3:89","nodeType":"YulIdentifier","src":"12161:3:89"},"nativeSrc":"12161:16:89","nodeType":"YulFunctionCall","src":"12161:16:89"},{"name":"end","nativeSrc":"12179:3:89","nodeType":"YulIdentifier","src":"12179:3:89"}],"functionName":{"name":"gt","nativeSrc":"12158:2:89","nodeType":"YulIdentifier","src":"12158:2:89"},"nativeSrc":"12158:25:89","nodeType":"YulFunctionCall","src":"12158:25:89"},"nativeSrc":"12155:45:89","nodeType":"YulIf","src":"12155:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"12226:7:89","nodeType":"YulIdentifier","src":"12226:7:89"},{"kind":"number","nativeSrc":"12235:4:89","nodeType":"YulLiteral","src":"12235:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12222:3:89","nodeType":"YulIdentifier","src":"12222:3:89"},"nativeSrc":"12222:18:89","nodeType":"YulFunctionCall","src":"12222:18:89"},{"name":"src","nativeSrc":"12242:3:89","nodeType":"YulIdentifier","src":"12242:3:89"},{"name":"length","nativeSrc":"12247:6:89","nodeType":"YulIdentifier","src":"12247:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"12209:12:89","nodeType":"YulIdentifier","src":"12209:12:89"},"nativeSrc":"12209:45:89","nodeType":"YulFunctionCall","src":"12209:45:89"},"nativeSrc":"12209:45:89","nodeType":"YulExpressionStatement","src":"12209:45:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"12278:7:89","nodeType":"YulIdentifier","src":"12278:7:89"},{"name":"length","nativeSrc":"12287:6:89","nodeType":"YulIdentifier","src":"12287:6:89"}],"functionName":{"name":"add","nativeSrc":"12274:3:89","nodeType":"YulIdentifier","src":"12274:3:89"},"nativeSrc":"12274:20:89","nodeType":"YulFunctionCall","src":"12274:20:89"},{"kind":"number","nativeSrc":"12296:4:89","nodeType":"YulLiteral","src":"12296:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12270:3:89","nodeType":"YulIdentifier","src":"12270:3:89"},"nativeSrc":"12270:31:89","nodeType":"YulFunctionCall","src":"12270:31:89"},{"kind":"number","nativeSrc":"12303:1:89","nodeType":"YulLiteral","src":"12303:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12263:6:89","nodeType":"YulIdentifier","src":"12263:6:89"},"nativeSrc":"12263:42:89","nodeType":"YulFunctionCall","src":"12263:42:89"},"nativeSrc":"12263:42:89","nodeType":"YulExpressionStatement","src":"12263:42:89"},{"nativeSrc":"12314:16:89","nodeType":"YulAssignment","src":"12314:16:89","value":{"name":"array_1","nativeSrc":"12323:7:89","nodeType":"YulIdentifier","src":"12323:7:89"},"variableNames":[{"name":"array","nativeSrc":"12314:5:89","nodeType":"YulIdentifier","src":"12314:5:89"}]}]},"name":"abi_decode_bytes","nativeSrc":"11820:516:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11846:6:89","nodeType":"YulTypedName","src":"11846:6:89","type":""},{"name":"end","nativeSrc":"11854:3:89","nodeType":"YulTypedName","src":"11854:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11862:5:89","nodeType":"YulTypedName","src":"11862:5:89","type":""}],"src":"11820:516:89"},{"body":{"nativeSrc":"12437:359:89","nodeType":"YulBlock","src":"12437:359:89","statements":[{"body":{"nativeSrc":"12483:16:89","nodeType":"YulBlock","src":"12483:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12492:1:89","nodeType":"YulLiteral","src":"12492:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12495:1:89","nodeType":"YulLiteral","src":"12495:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12485:6:89","nodeType":"YulIdentifier","src":"12485:6:89"},"nativeSrc":"12485:12:89","nodeType":"YulFunctionCall","src":"12485:12:89"},"nativeSrc":"12485:12:89","nodeType":"YulExpressionStatement","src":"12485:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12458:7:89","nodeType":"YulIdentifier","src":"12458:7:89"},{"name":"headStart","nativeSrc":"12467:9:89","nodeType":"YulIdentifier","src":"12467:9:89"}],"functionName":{"name":"sub","nativeSrc":"12454:3:89","nodeType":"YulIdentifier","src":"12454:3:89"},"nativeSrc":"12454:23:89","nodeType":"YulFunctionCall","src":"12454:23:89"},{"kind":"number","nativeSrc":"12479:2:89","nodeType":"YulLiteral","src":"12479:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12450:3:89","nodeType":"YulIdentifier","src":"12450:3:89"},"nativeSrc":"12450:32:89","nodeType":"YulFunctionCall","src":"12450:32:89"},"nativeSrc":"12447:52:89","nodeType":"YulIf","src":"12447:52:89"},{"nativeSrc":"12508:36:89","nodeType":"YulVariableDeclaration","src":"12508:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"12534:9:89","nodeType":"YulIdentifier","src":"12534:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"12521:12:89","nodeType":"YulIdentifier","src":"12521:12:89"},"nativeSrc":"12521:23:89","nodeType":"YulFunctionCall","src":"12521:23:89"},"variables":[{"name":"value","nativeSrc":"12512:5:89","nodeType":"YulTypedName","src":"12512:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12578:5:89","nodeType":"YulIdentifier","src":"12578:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12553:24:89","nodeType":"YulIdentifier","src":"12553:24:89"},"nativeSrc":"12553:31:89","nodeType":"YulFunctionCall","src":"12553:31:89"},"nativeSrc":"12553:31:89","nodeType":"YulExpressionStatement","src":"12553:31:89"},{"nativeSrc":"12593:15:89","nodeType":"YulAssignment","src":"12593:15:89","value":{"name":"value","nativeSrc":"12603:5:89","nodeType":"YulIdentifier","src":"12603:5:89"},"variableNames":[{"name":"value0","nativeSrc":"12593:6:89","nodeType":"YulIdentifier","src":"12593:6:89"}]},{"nativeSrc":"12617:46:89","nodeType":"YulVariableDeclaration","src":"12617:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12648:9:89","nodeType":"YulIdentifier","src":"12648:9:89"},{"kind":"number","nativeSrc":"12659:2:89","nodeType":"YulLiteral","src":"12659:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12644:3:89","nodeType":"YulIdentifier","src":"12644:3:89"},"nativeSrc":"12644:18:89","nodeType":"YulFunctionCall","src":"12644:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"12631:12:89","nodeType":"YulIdentifier","src":"12631:12:89"},"nativeSrc":"12631:32:89","nodeType":"YulFunctionCall","src":"12631:32:89"},"variables":[{"name":"offset","nativeSrc":"12621:6:89","nodeType":"YulTypedName","src":"12621:6:89","type":""}]},{"body":{"nativeSrc":"12706:16:89","nodeType":"YulBlock","src":"12706:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12715:1:89","nodeType":"YulLiteral","src":"12715:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12718:1:89","nodeType":"YulLiteral","src":"12718:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12708:6:89","nodeType":"YulIdentifier","src":"12708:6:89"},"nativeSrc":"12708:12:89","nodeType":"YulFunctionCall","src":"12708:12:89"},"nativeSrc":"12708:12:89","nodeType":"YulExpressionStatement","src":"12708:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12678:6:89","nodeType":"YulIdentifier","src":"12678:6:89"},{"kind":"number","nativeSrc":"12686:18:89","nodeType":"YulLiteral","src":"12686:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12675:2:89","nodeType":"YulIdentifier","src":"12675:2:89"},"nativeSrc":"12675:30:89","nodeType":"YulFunctionCall","src":"12675:30:89"},"nativeSrc":"12672:50:89","nodeType":"YulIf","src":"12672:50:89"},{"nativeSrc":"12731:59:89","nodeType":"YulAssignment","src":"12731:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12762:9:89","nodeType":"YulIdentifier","src":"12762:9:89"},{"name":"offset","nativeSrc":"12773:6:89","nodeType":"YulIdentifier","src":"12773:6:89"}],"functionName":{"name":"add","nativeSrc":"12758:3:89","nodeType":"YulIdentifier","src":"12758:3:89"},"nativeSrc":"12758:22:89","nodeType":"YulFunctionCall","src":"12758:22:89"},{"name":"dataEnd","nativeSrc":"12782:7:89","nodeType":"YulIdentifier","src":"12782:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"12741:16:89","nodeType":"YulIdentifier","src":"12741:16:89"},"nativeSrc":"12741:49:89","nodeType":"YulFunctionCall","src":"12741:49:89"},"variableNames":[{"name":"value1","nativeSrc":"12731:6:89","nodeType":"YulIdentifier","src":"12731:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"12341:455:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12395:9:89","nodeType":"YulTypedName","src":"12395:9:89","type":""},{"name":"dataEnd","nativeSrc":"12406:7:89","nodeType":"YulTypedName","src":"12406:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12418:6:89","nodeType":"YulTypedName","src":"12418:6:89","type":""},{"name":"value1","nativeSrc":"12426:6:89","nodeType":"YulTypedName","src":"12426:6:89","type":""}],"src":"12341:455:89"},{"body":{"nativeSrc":"12902:76:89","nodeType":"YulBlock","src":"12902:76:89","statements":[{"nativeSrc":"12912:26:89","nodeType":"YulAssignment","src":"12912:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"12924:9:89","nodeType":"YulIdentifier","src":"12924:9:89"},{"kind":"number","nativeSrc":"12935:2:89","nodeType":"YulLiteral","src":"12935:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12920:3:89","nodeType":"YulIdentifier","src":"12920:3:89"},"nativeSrc":"12920:18:89","nodeType":"YulFunctionCall","src":"12920:18:89"},"variableNames":[{"name":"tail","nativeSrc":"12912:4:89","nodeType":"YulIdentifier","src":"12912:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12954:9:89","nodeType":"YulIdentifier","src":"12954:9:89"},{"name":"value0","nativeSrc":"12965:6:89","nodeType":"YulIdentifier","src":"12965:6:89"}],"functionName":{"name":"mstore","nativeSrc":"12947:6:89","nodeType":"YulIdentifier","src":"12947:6:89"},"nativeSrc":"12947:25:89","nodeType":"YulFunctionCall","src":"12947:25:89"},"nativeSrc":"12947:25:89","nodeType":"YulExpressionStatement","src":"12947:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"12801:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12871:9:89","nodeType":"YulTypedName","src":"12871:9:89","type":""},{"name":"value0","nativeSrc":"12882:6:89","nodeType":"YulTypedName","src":"12882:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12893:4:89","nodeType":"YulTypedName","src":"12893:4:89","type":""}],"src":"12801:177:89"},{"body":{"nativeSrc":"13053:156:89","nodeType":"YulBlock","src":"13053:156:89","statements":[{"body":{"nativeSrc":"13099:16:89","nodeType":"YulBlock","src":"13099:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13108:1:89","nodeType":"YulLiteral","src":"13108:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13111:1:89","nodeType":"YulLiteral","src":"13111:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13101:6:89","nodeType":"YulIdentifier","src":"13101:6:89"},"nativeSrc":"13101:12:89","nodeType":"YulFunctionCall","src":"13101:12:89"},"nativeSrc":"13101:12:89","nodeType":"YulExpressionStatement","src":"13101:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13074:7:89","nodeType":"YulIdentifier","src":"13074:7:89"},{"name":"headStart","nativeSrc":"13083:9:89","nodeType":"YulIdentifier","src":"13083:9:89"}],"functionName":{"name":"sub","nativeSrc":"13070:3:89","nodeType":"YulIdentifier","src":"13070:3:89"},"nativeSrc":"13070:23:89","nodeType":"YulFunctionCall","src":"13070:23:89"},{"kind":"number","nativeSrc":"13095:2:89","nodeType":"YulLiteral","src":"13095:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13066:3:89","nodeType":"YulIdentifier","src":"13066:3:89"},"nativeSrc":"13066:32:89","nodeType":"YulFunctionCall","src":"13066:32:89"},"nativeSrc":"13063:52:89","nodeType":"YulIf","src":"13063:52:89"},{"nativeSrc":"13124:14:89","nodeType":"YulVariableDeclaration","src":"13124:14:89","value":{"kind":"number","nativeSrc":"13137:1:89","nodeType":"YulLiteral","src":"13137:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"13128:5:89","nodeType":"YulTypedName","src":"13128:5:89","type":""}]},{"nativeSrc":"13147:32:89","nodeType":"YulAssignment","src":"13147:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13169:9:89","nodeType":"YulIdentifier","src":"13169:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"13156:12:89","nodeType":"YulIdentifier","src":"13156:12:89"},"nativeSrc":"13156:23:89","nodeType":"YulFunctionCall","src":"13156:23:89"},"variableNames":[{"name":"value","nativeSrc":"13147:5:89","nodeType":"YulIdentifier","src":"13147:5:89"}]},{"nativeSrc":"13188:15:89","nodeType":"YulAssignment","src":"13188:15:89","value":{"name":"value","nativeSrc":"13198:5:89","nodeType":"YulIdentifier","src":"13198:5:89"},"variableNames":[{"name":"value0","nativeSrc":"13188:6:89","nodeType":"YulIdentifier","src":"13188:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"12983:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13019:9:89","nodeType":"YulTypedName","src":"13019:9:89","type":""},{"name":"dataEnd","nativeSrc":"13030:7:89","nodeType":"YulTypedName","src":"13030:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13042:6:89","nodeType":"YulTypedName","src":"13042:6:89","type":""}],"src":"12983:226:89"},{"body":{"nativeSrc":"13309:92:89","nodeType":"YulBlock","src":"13309:92:89","statements":[{"nativeSrc":"13319:26:89","nodeType":"YulAssignment","src":"13319:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13331:9:89","nodeType":"YulIdentifier","src":"13331:9:89"},{"kind":"number","nativeSrc":"13342:2:89","nodeType":"YulLiteral","src":"13342:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13327:3:89","nodeType":"YulIdentifier","src":"13327:3:89"},"nativeSrc":"13327:18:89","nodeType":"YulFunctionCall","src":"13327:18:89"},"variableNames":[{"name":"tail","nativeSrc":"13319:4:89","nodeType":"YulIdentifier","src":"13319:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13361:9:89","nodeType":"YulIdentifier","src":"13361:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"13386:6:89","nodeType":"YulIdentifier","src":"13386:6:89"}],"functionName":{"name":"iszero","nativeSrc":"13379:6:89","nodeType":"YulIdentifier","src":"13379:6:89"},"nativeSrc":"13379:14:89","nodeType":"YulFunctionCall","src":"13379:14:89"}],"functionName":{"name":"iszero","nativeSrc":"13372:6:89","nodeType":"YulIdentifier","src":"13372:6:89"},"nativeSrc":"13372:22:89","nodeType":"YulFunctionCall","src":"13372:22:89"}],"functionName":{"name":"mstore","nativeSrc":"13354:6:89","nodeType":"YulIdentifier","src":"13354:6:89"},"nativeSrc":"13354:41:89","nodeType":"YulFunctionCall","src":"13354:41:89"},"nativeSrc":"13354:41:89","nodeType":"YulExpressionStatement","src":"13354:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"13214:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13278:9:89","nodeType":"YulTypedName","src":"13278:9:89","type":""},{"name":"value0","nativeSrc":"13289:6:89","nodeType":"YulTypedName","src":"13289:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13300:4:89","nodeType":"YulTypedName","src":"13300:4:89","type":""}],"src":"13214:187:89"},{"body":{"nativeSrc":"13476:156:89","nodeType":"YulBlock","src":"13476:156:89","statements":[{"body":{"nativeSrc":"13522:16:89","nodeType":"YulBlock","src":"13522:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13531:1:89","nodeType":"YulLiteral","src":"13531:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13534:1:89","nodeType":"YulLiteral","src":"13534:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13524:6:89","nodeType":"YulIdentifier","src":"13524:6:89"},"nativeSrc":"13524:12:89","nodeType":"YulFunctionCall","src":"13524:12:89"},"nativeSrc":"13524:12:89","nodeType":"YulExpressionStatement","src":"13524:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13497:7:89","nodeType":"YulIdentifier","src":"13497:7:89"},{"name":"headStart","nativeSrc":"13506:9:89","nodeType":"YulIdentifier","src":"13506:9:89"}],"functionName":{"name":"sub","nativeSrc":"13493:3:89","nodeType":"YulIdentifier","src":"13493:3:89"},"nativeSrc":"13493:23:89","nodeType":"YulFunctionCall","src":"13493:23:89"},{"kind":"number","nativeSrc":"13518:2:89","nodeType":"YulLiteral","src":"13518:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13489:3:89","nodeType":"YulIdentifier","src":"13489:3:89"},"nativeSrc":"13489:32:89","nodeType":"YulFunctionCall","src":"13489:32:89"},"nativeSrc":"13486:52:89","nodeType":"YulIf","src":"13486:52:89"},{"nativeSrc":"13547:14:89","nodeType":"YulVariableDeclaration","src":"13547:14:89","value":{"kind":"number","nativeSrc":"13560:1:89","nodeType":"YulLiteral","src":"13560:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"13551:5:89","nodeType":"YulTypedName","src":"13551:5:89","type":""}]},{"nativeSrc":"13570:32:89","nodeType":"YulAssignment","src":"13570:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13592:9:89","nodeType":"YulIdentifier","src":"13592:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"13579:12:89","nodeType":"YulIdentifier","src":"13579:12:89"},"nativeSrc":"13579:23:89","nodeType":"YulFunctionCall","src":"13579:23:89"},"variableNames":[{"name":"value","nativeSrc":"13570:5:89","nodeType":"YulIdentifier","src":"13570:5:89"}]},{"nativeSrc":"13611:15:89","nodeType":"YulAssignment","src":"13611:15:89","value":{"name":"value","nativeSrc":"13621:5:89","nodeType":"YulIdentifier","src":"13621:5:89"},"variableNames":[{"name":"value0","nativeSrc":"13611:6:89","nodeType":"YulIdentifier","src":"13611:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"13406:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13442:9:89","nodeType":"YulTypedName","src":"13442:9:89","type":""},{"name":"dataEnd","nativeSrc":"13453:7:89","nodeType":"YulTypedName","src":"13453:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13465:6:89","nodeType":"YulTypedName","src":"13465:6:89","type":""}],"src":"13406:226:89"},{"body":{"nativeSrc":"13738:102:89","nodeType":"YulBlock","src":"13738:102:89","statements":[{"nativeSrc":"13748:26:89","nodeType":"YulAssignment","src":"13748:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13760:9:89","nodeType":"YulIdentifier","src":"13760:9:89"},{"kind":"number","nativeSrc":"13771:2:89","nodeType":"YulLiteral","src":"13771:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13756:3:89","nodeType":"YulIdentifier","src":"13756:3:89"},"nativeSrc":"13756:18:89","nodeType":"YulFunctionCall","src":"13756:18:89"},"variableNames":[{"name":"tail","nativeSrc":"13748:4:89","nodeType":"YulIdentifier","src":"13748:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13790:9:89","nodeType":"YulIdentifier","src":"13790:9:89"},{"arguments":[{"name":"value0","nativeSrc":"13805:6:89","nodeType":"YulIdentifier","src":"13805:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13821:3:89","nodeType":"YulLiteral","src":"13821:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"13826:1:89","nodeType":"YulLiteral","src":"13826:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13817:3:89","nodeType":"YulIdentifier","src":"13817:3:89"},"nativeSrc":"13817:11:89","nodeType":"YulFunctionCall","src":"13817:11:89"},{"kind":"number","nativeSrc":"13830:1:89","nodeType":"YulLiteral","src":"13830:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13813:3:89","nodeType":"YulIdentifier","src":"13813:3:89"},"nativeSrc":"13813:19:89","nodeType":"YulFunctionCall","src":"13813:19:89"}],"functionName":{"name":"and","nativeSrc":"13801:3:89","nodeType":"YulIdentifier","src":"13801:3:89"},"nativeSrc":"13801:32:89","nodeType":"YulFunctionCall","src":"13801:32:89"}],"functionName":{"name":"mstore","nativeSrc":"13783:6:89","nodeType":"YulIdentifier","src":"13783:6:89"},"nativeSrc":"13783:51:89","nodeType":"YulFunctionCall","src":"13783:51:89"},"nativeSrc":"13783:51:89","nodeType":"YulExpressionStatement","src":"13783:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"13637:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13707:9:89","nodeType":"YulTypedName","src":"13707:9:89","type":""},{"name":"value0","nativeSrc":"13718:6:89","nodeType":"YulTypedName","src":"13718:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13729:4:89","nodeType":"YulTypedName","src":"13729:4:89","type":""}],"src":"13637:203:89"},{"body":{"nativeSrc":"13915:177:89","nodeType":"YulBlock","src":"13915:177:89","statements":[{"body":{"nativeSrc":"13961:16:89","nodeType":"YulBlock","src":"13961:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13970:1:89","nodeType":"YulLiteral","src":"13970:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13973:1:89","nodeType":"YulLiteral","src":"13973:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13963:6:89","nodeType":"YulIdentifier","src":"13963:6:89"},"nativeSrc":"13963:12:89","nodeType":"YulFunctionCall","src":"13963:12:89"},"nativeSrc":"13963:12:89","nodeType":"YulExpressionStatement","src":"13963:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13936:7:89","nodeType":"YulIdentifier","src":"13936:7:89"},{"name":"headStart","nativeSrc":"13945:9:89","nodeType":"YulIdentifier","src":"13945:9:89"}],"functionName":{"name":"sub","nativeSrc":"13932:3:89","nodeType":"YulIdentifier","src":"13932:3:89"},"nativeSrc":"13932:23:89","nodeType":"YulFunctionCall","src":"13932:23:89"},{"kind":"number","nativeSrc":"13957:2:89","nodeType":"YulLiteral","src":"13957:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13928:3:89","nodeType":"YulIdentifier","src":"13928:3:89"},"nativeSrc":"13928:32:89","nodeType":"YulFunctionCall","src":"13928:32:89"},"nativeSrc":"13925:52:89","nodeType":"YulIf","src":"13925:52:89"},{"nativeSrc":"13986:36:89","nodeType":"YulVariableDeclaration","src":"13986:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"14012:9:89","nodeType":"YulIdentifier","src":"14012:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"13999:12:89","nodeType":"YulIdentifier","src":"13999:12:89"},"nativeSrc":"13999:23:89","nodeType":"YulFunctionCall","src":"13999:23:89"},"variables":[{"name":"value","nativeSrc":"13990:5:89","nodeType":"YulTypedName","src":"13990:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14056:5:89","nodeType":"YulIdentifier","src":"14056:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"14031:24:89","nodeType":"YulIdentifier","src":"14031:24:89"},"nativeSrc":"14031:31:89","nodeType":"YulFunctionCall","src":"14031:31:89"},"nativeSrc":"14031:31:89","nodeType":"YulExpressionStatement","src":"14031:31:89"},{"nativeSrc":"14071:15:89","nodeType":"YulAssignment","src":"14071:15:89","value":{"name":"value","nativeSrc":"14081:5:89","nodeType":"YulIdentifier","src":"14081:5:89"},"variableNames":[{"name":"value0","nativeSrc":"14071:6:89","nodeType":"YulIdentifier","src":"14071:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"13845:247:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13881:9:89","nodeType":"YulTypedName","src":"13881:9:89","type":""},{"name":"dataEnd","nativeSrc":"13892:7:89","nodeType":"YulTypedName","src":"13892:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13904:6:89","nodeType":"YulTypedName","src":"13904:6:89","type":""}],"src":"13845:247:89"},{"body":{"nativeSrc":"14198:76:89","nodeType":"YulBlock","src":"14198:76:89","statements":[{"nativeSrc":"14208:26:89","nodeType":"YulAssignment","src":"14208:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"14220:9:89","nodeType":"YulIdentifier","src":"14220:9:89"},{"kind":"number","nativeSrc":"14231:2:89","nodeType":"YulLiteral","src":"14231:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14216:3:89","nodeType":"YulIdentifier","src":"14216:3:89"},"nativeSrc":"14216:18:89","nodeType":"YulFunctionCall","src":"14216:18:89"},"variableNames":[{"name":"tail","nativeSrc":"14208:4:89","nodeType":"YulIdentifier","src":"14208:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14250:9:89","nodeType":"YulIdentifier","src":"14250:9:89"},{"name":"value0","nativeSrc":"14261:6:89","nodeType":"YulIdentifier","src":"14261:6:89"}],"functionName":{"name":"mstore","nativeSrc":"14243:6:89","nodeType":"YulIdentifier","src":"14243:6:89"},"nativeSrc":"14243:25:89","nodeType":"YulFunctionCall","src":"14243:25:89"},"nativeSrc":"14243:25:89","nodeType":"YulExpressionStatement","src":"14243:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"14097:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14167:9:89","nodeType":"YulTypedName","src":"14167:9:89","type":""},{"name":"value0","nativeSrc":"14178:6:89","nodeType":"YulTypedName","src":"14178:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14189:4:89","nodeType":"YulTypedName","src":"14189:4:89","type":""}],"src":"14097:177:89"},{"body":{"nativeSrc":"14490:1089:89","nodeType":"YulBlock","src":"14490:1089:89","statements":[{"body":{"nativeSrc":"14537:16:89","nodeType":"YulBlock","src":"14537:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14546:1:89","nodeType":"YulLiteral","src":"14546:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"14549:1:89","nodeType":"YulLiteral","src":"14549:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14539:6:89","nodeType":"YulIdentifier","src":"14539:6:89"},"nativeSrc":"14539:12:89","nodeType":"YulFunctionCall","src":"14539:12:89"},"nativeSrc":"14539:12:89","nodeType":"YulExpressionStatement","src":"14539:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14511:7:89","nodeType":"YulIdentifier","src":"14511:7:89"},{"name":"headStart","nativeSrc":"14520:9:89","nodeType":"YulIdentifier","src":"14520:9:89"}],"functionName":{"name":"sub","nativeSrc":"14507:3:89","nodeType":"YulIdentifier","src":"14507:3:89"},"nativeSrc":"14507:23:89","nodeType":"YulFunctionCall","src":"14507:23:89"},{"kind":"number","nativeSrc":"14532:3:89","nodeType":"YulLiteral","src":"14532:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"14503:3:89","nodeType":"YulIdentifier","src":"14503:3:89"},"nativeSrc":"14503:33:89","nodeType":"YulFunctionCall","src":"14503:33:89"},"nativeSrc":"14500:53:89","nodeType":"YulIf","src":"14500:53:89"},{"nativeSrc":"14562:14:89","nodeType":"YulVariableDeclaration","src":"14562:14:89","value":{"kind":"number","nativeSrc":"14575:1:89","nodeType":"YulLiteral","src":"14575:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"14566:5:89","nodeType":"YulTypedName","src":"14566:5:89","type":""}]},{"nativeSrc":"14585:32:89","nodeType":"YulAssignment","src":"14585:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"14607:9:89","nodeType":"YulIdentifier","src":"14607:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"14594:12:89","nodeType":"YulIdentifier","src":"14594:12:89"},"nativeSrc":"14594:23:89","nodeType":"YulFunctionCall","src":"14594:23:89"},"variableNames":[{"name":"value","nativeSrc":"14585:5:89","nodeType":"YulIdentifier","src":"14585:5:89"}]},{"nativeSrc":"14626:15:89","nodeType":"YulAssignment","src":"14626:15:89","value":{"name":"value","nativeSrc":"14636:5:89","nodeType":"YulIdentifier","src":"14636:5:89"},"variableNames":[{"name":"value0","nativeSrc":"14626:6:89","nodeType":"YulIdentifier","src":"14626:6:89"}]},{"nativeSrc":"14650:46:89","nodeType":"YulVariableDeclaration","src":"14650:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14681:9:89","nodeType":"YulIdentifier","src":"14681:9:89"},{"kind":"number","nativeSrc":"14692:2:89","nodeType":"YulLiteral","src":"14692:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14677:3:89","nodeType":"YulIdentifier","src":"14677:3:89"},"nativeSrc":"14677:18:89","nodeType":"YulFunctionCall","src":"14677:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"14664:12:89","nodeType":"YulIdentifier","src":"14664:12:89"},"nativeSrc":"14664:32:89","nodeType":"YulFunctionCall","src":"14664:32:89"},"variables":[{"name":"offset","nativeSrc":"14654:6:89","nodeType":"YulTypedName","src":"14654:6:89","type":""}]},{"body":{"nativeSrc":"14739:16:89","nodeType":"YulBlock","src":"14739:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14748:1:89","nodeType":"YulLiteral","src":"14748:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"14751:1:89","nodeType":"YulLiteral","src":"14751:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14741:6:89","nodeType":"YulIdentifier","src":"14741:6:89"},"nativeSrc":"14741:12:89","nodeType":"YulFunctionCall","src":"14741:12:89"},"nativeSrc":"14741:12:89","nodeType":"YulExpressionStatement","src":"14741:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14711:6:89","nodeType":"YulIdentifier","src":"14711:6:89"},{"kind":"number","nativeSrc":"14719:18:89","nodeType":"YulLiteral","src":"14719:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14708:2:89","nodeType":"YulIdentifier","src":"14708:2:89"},"nativeSrc":"14708:30:89","nodeType":"YulFunctionCall","src":"14708:30:89"},"nativeSrc":"14705:50:89","nodeType":"YulIf","src":"14705:50:89"},{"nativeSrc":"14764:84:89","nodeType":"YulVariableDeclaration","src":"14764:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14820:9:89","nodeType":"YulIdentifier","src":"14820:9:89"},{"name":"offset","nativeSrc":"14831:6:89","nodeType":"YulIdentifier","src":"14831:6:89"}],"functionName":{"name":"add","nativeSrc":"14816:3:89","nodeType":"YulIdentifier","src":"14816:3:89"},"nativeSrc":"14816:22:89","nodeType":"YulFunctionCall","src":"14816:22:89"},{"name":"dataEnd","nativeSrc":"14840:7:89","nodeType":"YulIdentifier","src":"14840:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"14790:25:89","nodeType":"YulIdentifier","src":"14790:25:89"},"nativeSrc":"14790:58:89","nodeType":"YulFunctionCall","src":"14790:58:89"},"variables":[{"name":"value1_1","nativeSrc":"14768:8:89","nodeType":"YulTypedName","src":"14768:8:89","type":""},{"name":"value2_1","nativeSrc":"14778:8:89","nodeType":"YulTypedName","src":"14778:8:89","type":""}]},{"nativeSrc":"14857:18:89","nodeType":"YulAssignment","src":"14857:18:89","value":{"name":"value1_1","nativeSrc":"14867:8:89","nodeType":"YulIdentifier","src":"14867:8:89"},"variableNames":[{"name":"value1","nativeSrc":"14857:6:89","nodeType":"YulIdentifier","src":"14857:6:89"}]},{"nativeSrc":"14884:18:89","nodeType":"YulAssignment","src":"14884:18:89","value":{"name":"value2_1","nativeSrc":"14894:8:89","nodeType":"YulIdentifier","src":"14894:8:89"},"variableNames":[{"name":"value2","nativeSrc":"14884:6:89","nodeType":"YulIdentifier","src":"14884:6:89"}]},{"nativeSrc":"14911:48:89","nodeType":"YulVariableDeclaration","src":"14911:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14944:9:89","nodeType":"YulIdentifier","src":"14944:9:89"},{"kind":"number","nativeSrc":"14955:2:89","nodeType":"YulLiteral","src":"14955:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14940:3:89","nodeType":"YulIdentifier","src":"14940:3:89"},"nativeSrc":"14940:18:89","nodeType":"YulFunctionCall","src":"14940:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"14927:12:89","nodeType":"YulIdentifier","src":"14927:12:89"},"nativeSrc":"14927:32:89","nodeType":"YulFunctionCall","src":"14927:32:89"},"variables":[{"name":"offset_1","nativeSrc":"14915:8:89","nodeType":"YulTypedName","src":"14915:8:89","type":""}]},{"body":{"nativeSrc":"15004:16:89","nodeType":"YulBlock","src":"15004:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15013:1:89","nodeType":"YulLiteral","src":"15013:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"15016:1:89","nodeType":"YulLiteral","src":"15016:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15006:6:89","nodeType":"YulIdentifier","src":"15006:6:89"},"nativeSrc":"15006:12:89","nodeType":"YulFunctionCall","src":"15006:12:89"},"nativeSrc":"15006:12:89","nodeType":"YulExpressionStatement","src":"15006:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"14974:8:89","nodeType":"YulIdentifier","src":"14974:8:89"},{"kind":"number","nativeSrc":"14984:18:89","nodeType":"YulLiteral","src":"14984:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14971:2:89","nodeType":"YulIdentifier","src":"14971:2:89"},"nativeSrc":"14971:32:89","nodeType":"YulFunctionCall","src":"14971:32:89"},"nativeSrc":"14968:52:89","nodeType":"YulIf","src":"14968:52:89"},{"nativeSrc":"15029:98:89","nodeType":"YulVariableDeclaration","src":"15029:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15097:9:89","nodeType":"YulIdentifier","src":"15097:9:89"},{"name":"offset_1","nativeSrc":"15108:8:89","nodeType":"YulIdentifier","src":"15108:8:89"}],"functionName":{"name":"add","nativeSrc":"15093:3:89","nodeType":"YulIdentifier","src":"15093:3:89"},"nativeSrc":"15093:24:89","nodeType":"YulFunctionCall","src":"15093:24:89"},{"name":"dataEnd","nativeSrc":"15119:7:89","nodeType":"YulIdentifier","src":"15119:7:89"}],"functionName":{"name":"abi_decode_array_bytes32_dyn_calldata","nativeSrc":"15055:37:89","nodeType":"YulIdentifier","src":"15055:37:89"},"nativeSrc":"15055:72:89","nodeType":"YulFunctionCall","src":"15055:72:89"},"variables":[{"name":"value3_1","nativeSrc":"15033:8:89","nodeType":"YulTypedName","src":"15033:8:89","type":""},{"name":"value4_1","nativeSrc":"15043:8:89","nodeType":"YulTypedName","src":"15043:8:89","type":""}]},{"nativeSrc":"15136:18:89","nodeType":"YulAssignment","src":"15136:18:89","value":{"name":"value3_1","nativeSrc":"15146:8:89","nodeType":"YulIdentifier","src":"15146:8:89"},"variableNames":[{"name":"value3","nativeSrc":"15136:6:89","nodeType":"YulIdentifier","src":"15136:6:89"}]},{"nativeSrc":"15163:18:89","nodeType":"YulAssignment","src":"15163:18:89","value":{"name":"value4_1","nativeSrc":"15173:8:89","nodeType":"YulIdentifier","src":"15173:8:89"},"variableNames":[{"name":"value4","nativeSrc":"15163:6:89","nodeType":"YulIdentifier","src":"15163:6:89"}]},{"nativeSrc":"15190:47:89","nodeType":"YulVariableDeclaration","src":"15190:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15222:9:89","nodeType":"YulIdentifier","src":"15222:9:89"},{"kind":"number","nativeSrc":"15233:2:89","nodeType":"YulLiteral","src":"15233:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15218:3:89","nodeType":"YulIdentifier","src":"15218:3:89"},"nativeSrc":"15218:18:89","nodeType":"YulFunctionCall","src":"15218:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"15205:12:89","nodeType":"YulIdentifier","src":"15205:12:89"},"nativeSrc":"15205:32:89","nodeType":"YulFunctionCall","src":"15205:32:89"},"variables":[{"name":"value_1","nativeSrc":"15194:7:89","nodeType":"YulTypedName","src":"15194:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"15271:7:89","nodeType":"YulIdentifier","src":"15271:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"15246:24:89","nodeType":"YulIdentifier","src":"15246:24:89"},"nativeSrc":"15246:33:89","nodeType":"YulFunctionCall","src":"15246:33:89"},"nativeSrc":"15246:33:89","nodeType":"YulExpressionStatement","src":"15246:33:89"},{"nativeSrc":"15288:17:89","nodeType":"YulAssignment","src":"15288:17:89","value":{"name":"value_1","nativeSrc":"15298:7:89","nodeType":"YulIdentifier","src":"15298:7:89"},"variableNames":[{"name":"value5","nativeSrc":"15288:6:89","nodeType":"YulIdentifier","src":"15288:6:89"}]},{"nativeSrc":"15314:49:89","nodeType":"YulVariableDeclaration","src":"15314:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15347:9:89","nodeType":"YulIdentifier","src":"15347:9:89"},{"kind":"number","nativeSrc":"15358:3:89","nodeType":"YulLiteral","src":"15358:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15343:3:89","nodeType":"YulIdentifier","src":"15343:3:89"},"nativeSrc":"15343:19:89","nodeType":"YulFunctionCall","src":"15343:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"15330:12:89","nodeType":"YulIdentifier","src":"15330:12:89"},"nativeSrc":"15330:33:89","nodeType":"YulFunctionCall","src":"15330:33:89"},"variables":[{"name":"offset_2","nativeSrc":"15318:8:89","nodeType":"YulTypedName","src":"15318:8:89","type":""}]},{"body":{"nativeSrc":"15408:16:89","nodeType":"YulBlock","src":"15408:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15417:1:89","nodeType":"YulLiteral","src":"15417:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"15420:1:89","nodeType":"YulLiteral","src":"15420:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15410:6:89","nodeType":"YulIdentifier","src":"15410:6:89"},"nativeSrc":"15410:12:89","nodeType":"YulFunctionCall","src":"15410:12:89"},"nativeSrc":"15410:12:89","nodeType":"YulExpressionStatement","src":"15410:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"15378:8:89","nodeType":"YulIdentifier","src":"15378:8:89"},{"kind":"number","nativeSrc":"15388:18:89","nodeType":"YulLiteral","src":"15388:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15375:2:89","nodeType":"YulIdentifier","src":"15375:2:89"},"nativeSrc":"15375:32:89","nodeType":"YulFunctionCall","src":"15375:32:89"},"nativeSrc":"15372:52:89","nodeType":"YulIf","src":"15372:52:89"},{"nativeSrc":"15433:86:89","nodeType":"YulVariableDeclaration","src":"15433:86:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15489:9:89","nodeType":"YulIdentifier","src":"15489:9:89"},{"name":"offset_2","nativeSrc":"15500:8:89","nodeType":"YulIdentifier","src":"15500:8:89"}],"functionName":{"name":"add","nativeSrc":"15485:3:89","nodeType":"YulIdentifier","src":"15485:3:89"},"nativeSrc":"15485:24:89","nodeType":"YulFunctionCall","src":"15485:24:89"},{"name":"dataEnd","nativeSrc":"15511:7:89","nodeType":"YulIdentifier","src":"15511:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"15459:25:89","nodeType":"YulIdentifier","src":"15459:25:89"},"nativeSrc":"15459:60:89","nodeType":"YulFunctionCall","src":"15459:60:89"},"variables":[{"name":"value6_1","nativeSrc":"15437:8:89","nodeType":"YulTypedName","src":"15437:8:89","type":""},{"name":"value7_1","nativeSrc":"15447:8:89","nodeType":"YulTypedName","src":"15447:8:89","type":""}]},{"nativeSrc":"15528:18:89","nodeType":"YulAssignment","src":"15528:18:89","value":{"name":"value6_1","nativeSrc":"15538:8:89","nodeType":"YulIdentifier","src":"15538:8:89"},"variableNames":[{"name":"value6","nativeSrc":"15528:6:89","nodeType":"YulIdentifier","src":"15528:6:89"}]},{"nativeSrc":"15555:18:89","nodeType":"YulAssignment","src":"15555:18:89","value":{"name":"value7_1","nativeSrc":"15565:8:89","nodeType":"YulIdentifier","src":"15565:8:89"},"variableNames":[{"name":"value7","nativeSrc":"15555:6:89","nodeType":"YulIdentifier","src":"15555:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptrt_array$_t_bytes32_$dyn_calldata_ptrt_addresst_bytes_calldata_ptr","nativeSrc":"14279:1300:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14400:9:89","nodeType":"YulTypedName","src":"14400:9:89","type":""},{"name":"dataEnd","nativeSrc":"14411:7:89","nodeType":"YulTypedName","src":"14411:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14423:6:89","nodeType":"YulTypedName","src":"14423:6:89","type":""},{"name":"value1","nativeSrc":"14431:6:89","nodeType":"YulTypedName","src":"14431:6:89","type":""},{"name":"value2","nativeSrc":"14439:6:89","nodeType":"YulTypedName","src":"14439:6:89","type":""},{"name":"value3","nativeSrc":"14447:6:89","nodeType":"YulTypedName","src":"14447:6:89","type":""},{"name":"value4","nativeSrc":"14455:6:89","nodeType":"YulTypedName","src":"14455:6:89","type":""},{"name":"value5","nativeSrc":"14463:6:89","nodeType":"YulTypedName","src":"14463:6:89","type":""},{"name":"value6","nativeSrc":"14471:6:89","nodeType":"YulTypedName","src":"14471:6:89","type":""},{"name":"value7","nativeSrc":"14479:6:89","nodeType":"YulTypedName","src":"14479:6:89","type":""}],"src":"14279:1300:89"},{"body":{"nativeSrc":"15705:99:89","nodeType":"YulBlock","src":"15705:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15722:9:89","nodeType":"YulIdentifier","src":"15722:9:89"},{"kind":"number","nativeSrc":"15733:2:89","nodeType":"YulLiteral","src":"15733:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15715:6:89","nodeType":"YulIdentifier","src":"15715:6:89"},"nativeSrc":"15715:21:89","nodeType":"YulFunctionCall","src":"15715:21:89"},"nativeSrc":"15715:21:89","nodeType":"YulExpressionStatement","src":"15715:21:89"},{"nativeSrc":"15745:53:89","nodeType":"YulAssignment","src":"15745:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"15771:6:89","nodeType":"YulIdentifier","src":"15771:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"15783:9:89","nodeType":"YulIdentifier","src":"15783:9:89"},{"kind":"number","nativeSrc":"15794:2:89","nodeType":"YulLiteral","src":"15794:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15779:3:89","nodeType":"YulIdentifier","src":"15779:3:89"},"nativeSrc":"15779:18:89","nodeType":"YulFunctionCall","src":"15779:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"15753:17:89","nodeType":"YulIdentifier","src":"15753:17:89"},"nativeSrc":"15753:45:89","nodeType":"YulFunctionCall","src":"15753:45:89"},"variableNames":[{"name":"tail","nativeSrc":"15745:4:89","nodeType":"YulIdentifier","src":"15745:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15584:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15674:9:89","nodeType":"YulTypedName","src":"15674:9:89","type":""},{"name":"value0","nativeSrc":"15685:6:89","nodeType":"YulTypedName","src":"15685:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15696:4:89","nodeType":"YulTypedName","src":"15696:4:89","type":""}],"src":"15584:220:89"},{"body":{"nativeSrc":"15915:417:89","nodeType":"YulBlock","src":"15915:417:89","statements":[{"body":{"nativeSrc":"15961:16:89","nodeType":"YulBlock","src":"15961:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15970:1:89","nodeType":"YulLiteral","src":"15970:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"15973:1:89","nodeType":"YulLiteral","src":"15973:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15963:6:89","nodeType":"YulIdentifier","src":"15963:6:89"},"nativeSrc":"15963:12:89","nodeType":"YulFunctionCall","src":"15963:12:89"},"nativeSrc":"15963:12:89","nodeType":"YulExpressionStatement","src":"15963:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15936:7:89","nodeType":"YulIdentifier","src":"15936:7:89"},{"name":"headStart","nativeSrc":"15945:9:89","nodeType":"YulIdentifier","src":"15945:9:89"}],"functionName":{"name":"sub","nativeSrc":"15932:3:89","nodeType":"YulIdentifier","src":"15932:3:89"},"nativeSrc":"15932:23:89","nodeType":"YulFunctionCall","src":"15932:23:89"},{"kind":"number","nativeSrc":"15957:2:89","nodeType":"YulLiteral","src":"15957:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15928:3:89","nodeType":"YulIdentifier","src":"15928:3:89"},"nativeSrc":"15928:32:89","nodeType":"YulFunctionCall","src":"15928:32:89"},"nativeSrc":"15925:52:89","nodeType":"YulIf","src":"15925:52:89"},{"nativeSrc":"15986:14:89","nodeType":"YulVariableDeclaration","src":"15986:14:89","value":{"kind":"number","nativeSrc":"15999:1:89","nodeType":"YulLiteral","src":"15999:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"15990:5:89","nodeType":"YulTypedName","src":"15990:5:89","type":""}]},{"nativeSrc":"16009:32:89","nodeType":"YulAssignment","src":"16009:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"16031:9:89","nodeType":"YulIdentifier","src":"16031:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"16018:12:89","nodeType":"YulIdentifier","src":"16018:12:89"},"nativeSrc":"16018:23:89","nodeType":"YulFunctionCall","src":"16018:23:89"},"variableNames":[{"name":"value","nativeSrc":"16009:5:89","nodeType":"YulIdentifier","src":"16009:5:89"}]},{"nativeSrc":"16050:15:89","nodeType":"YulAssignment","src":"16050:15:89","value":{"name":"value","nativeSrc":"16060:5:89","nodeType":"YulIdentifier","src":"16060:5:89"},"variableNames":[{"name":"value0","nativeSrc":"16050:6:89","nodeType":"YulIdentifier","src":"16050:6:89"}]},{"nativeSrc":"16074:46:89","nodeType":"YulVariableDeclaration","src":"16074:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16105:9:89","nodeType":"YulIdentifier","src":"16105:9:89"},{"kind":"number","nativeSrc":"16116:2:89","nodeType":"YulLiteral","src":"16116:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16101:3:89","nodeType":"YulIdentifier","src":"16101:3:89"},"nativeSrc":"16101:18:89","nodeType":"YulFunctionCall","src":"16101:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"16088:12:89","nodeType":"YulIdentifier","src":"16088:12:89"},"nativeSrc":"16088:32:89","nodeType":"YulFunctionCall","src":"16088:32:89"},"variables":[{"name":"offset","nativeSrc":"16078:6:89","nodeType":"YulTypedName","src":"16078:6:89","type":""}]},{"body":{"nativeSrc":"16163:16:89","nodeType":"YulBlock","src":"16163:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16172:1:89","nodeType":"YulLiteral","src":"16172:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"16175:1:89","nodeType":"YulLiteral","src":"16175:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16165:6:89","nodeType":"YulIdentifier","src":"16165:6:89"},"nativeSrc":"16165:12:89","nodeType":"YulFunctionCall","src":"16165:12:89"},"nativeSrc":"16165:12:89","nodeType":"YulExpressionStatement","src":"16165:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16135:6:89","nodeType":"YulIdentifier","src":"16135:6:89"},{"kind":"number","nativeSrc":"16143:18:89","nodeType":"YulLiteral","src":"16143:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16132:2:89","nodeType":"YulIdentifier","src":"16132:2:89"},"nativeSrc":"16132:30:89","nodeType":"YulFunctionCall","src":"16132:30:89"},"nativeSrc":"16129:50:89","nodeType":"YulIf","src":"16129:50:89"},{"nativeSrc":"16188:84:89","nodeType":"YulVariableDeclaration","src":"16188:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16244:9:89","nodeType":"YulIdentifier","src":"16244:9:89"},{"name":"offset","nativeSrc":"16255:6:89","nodeType":"YulIdentifier","src":"16255:6:89"}],"functionName":{"name":"add","nativeSrc":"16240:3:89","nodeType":"YulIdentifier","src":"16240:3:89"},"nativeSrc":"16240:22:89","nodeType":"YulFunctionCall","src":"16240:22:89"},{"name":"dataEnd","nativeSrc":"16264:7:89","nodeType":"YulIdentifier","src":"16264:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"16214:25:89","nodeType":"YulIdentifier","src":"16214:25:89"},"nativeSrc":"16214:58:89","nodeType":"YulFunctionCall","src":"16214:58:89"},"variables":[{"name":"value1_1","nativeSrc":"16192:8:89","nodeType":"YulTypedName","src":"16192:8:89","type":""},{"name":"value2_1","nativeSrc":"16202:8:89","nodeType":"YulTypedName","src":"16202:8:89","type":""}]},{"nativeSrc":"16281:18:89","nodeType":"YulAssignment","src":"16281:18:89","value":{"name":"value1_1","nativeSrc":"16291:8:89","nodeType":"YulIdentifier","src":"16291:8:89"},"variableNames":[{"name":"value1","nativeSrc":"16281:6:89","nodeType":"YulIdentifier","src":"16281:6:89"}]},{"nativeSrc":"16308:18:89","nodeType":"YulAssignment","src":"16308:18:89","value":{"name":"value2_1","nativeSrc":"16318:8:89","nodeType":"YulIdentifier","src":"16318:8:89"},"variableNames":[{"name":"value2","nativeSrc":"16308:6:89","nodeType":"YulIdentifier","src":"16308:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nativeSrc":"15809:523:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15865:9:89","nodeType":"YulTypedName","src":"15865:9:89","type":""},{"name":"dataEnd","nativeSrc":"15876:7:89","nodeType":"YulTypedName","src":"15876:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15888:6:89","nodeType":"YulTypedName","src":"15888:6:89","type":""},{"name":"value1","nativeSrc":"15896:6:89","nodeType":"YulTypedName","src":"15896:6:89","type":""},{"name":"value2","nativeSrc":"15904:6:89","nodeType":"YulTypedName","src":"15904:6:89","type":""}],"src":"15809:523:89"},{"body":{"nativeSrc":"16369:95:89","nodeType":"YulBlock","src":"16369:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16386:1:89","nodeType":"YulLiteral","src":"16386:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"16393:3:89","nodeType":"YulLiteral","src":"16393:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"16398:10:89","nodeType":"YulLiteral","src":"16398:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"16389:3:89","nodeType":"YulIdentifier","src":"16389:3:89"},"nativeSrc":"16389:20:89","nodeType":"YulFunctionCall","src":"16389:20:89"}],"functionName":{"name":"mstore","nativeSrc":"16379:6:89","nodeType":"YulIdentifier","src":"16379:6:89"},"nativeSrc":"16379:31:89","nodeType":"YulFunctionCall","src":"16379:31:89"},"nativeSrc":"16379:31:89","nodeType":"YulExpressionStatement","src":"16379:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16426:1:89","nodeType":"YulLiteral","src":"16426:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"16429:4:89","nodeType":"YulLiteral","src":"16429:4:89","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"16419:6:89","nodeType":"YulIdentifier","src":"16419:6:89"},"nativeSrc":"16419:15:89","nodeType":"YulFunctionCall","src":"16419:15:89"},"nativeSrc":"16419:15:89","nodeType":"YulExpressionStatement","src":"16419:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16450:1:89","nodeType":"YulLiteral","src":"16450:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"16453:4:89","nodeType":"YulLiteral","src":"16453:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"16443:6:89","nodeType":"YulIdentifier","src":"16443:6:89"},"nativeSrc":"16443:15:89","nodeType":"YulFunctionCall","src":"16443:15:89"},"nativeSrc":"16443:15:89","nodeType":"YulExpressionStatement","src":"16443:15:89"}]},"name":"panic_error_0x21","nativeSrc":"16337:127:89","nodeType":"YulFunctionDefinition","src":"16337:127:89"},{"body":{"nativeSrc":"16530:385:89","nodeType":"YulBlock","src":"16530:385:89","statements":[{"nativeSrc":"16540:26:89","nodeType":"YulVariableDeclaration","src":"16540:26:89","value":{"arguments":[{"name":"value","nativeSrc":"16560:5:89","nodeType":"YulIdentifier","src":"16560:5:89"}],"functionName":{"name":"mload","nativeSrc":"16554:5:89","nodeType":"YulIdentifier","src":"16554:5:89"},"nativeSrc":"16554:12:89","nodeType":"YulFunctionCall","src":"16554:12:89"},"variables":[{"name":"length","nativeSrc":"16544:6:89","nodeType":"YulTypedName","src":"16544:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16582:3:89","nodeType":"YulIdentifier","src":"16582:3:89"},{"name":"length","nativeSrc":"16587:6:89","nodeType":"YulIdentifier","src":"16587:6:89"}],"functionName":{"name":"mstore","nativeSrc":"16575:6:89","nodeType":"YulIdentifier","src":"16575:6:89"},"nativeSrc":"16575:19:89","nodeType":"YulFunctionCall","src":"16575:19:89"},"nativeSrc":"16575:19:89","nodeType":"YulExpressionStatement","src":"16575:19:89"},{"nativeSrc":"16603:21:89","nodeType":"YulAssignment","src":"16603:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"16614:3:89","nodeType":"YulIdentifier","src":"16614:3:89"},{"kind":"number","nativeSrc":"16619:4:89","nodeType":"YulLiteral","src":"16619:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16610:3:89","nodeType":"YulIdentifier","src":"16610:3:89"},"nativeSrc":"16610:14:89","nodeType":"YulFunctionCall","src":"16610:14:89"},"variableNames":[{"name":"pos","nativeSrc":"16603:3:89","nodeType":"YulIdentifier","src":"16603:3:89"}]},{"nativeSrc":"16633:30:89","nodeType":"YulVariableDeclaration","src":"16633:30:89","value":{"arguments":[{"name":"value","nativeSrc":"16651:5:89","nodeType":"YulIdentifier","src":"16651:5:89"},{"kind":"number","nativeSrc":"16658:4:89","nodeType":"YulLiteral","src":"16658:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16647:3:89","nodeType":"YulIdentifier","src":"16647:3:89"},"nativeSrc":"16647:16:89","nodeType":"YulFunctionCall","src":"16647:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"16637:6:89","nodeType":"YulTypedName","src":"16637:6:89","type":""}]},{"nativeSrc":"16672:10:89","nodeType":"YulVariableDeclaration","src":"16672:10:89","value":{"kind":"number","nativeSrc":"16681:1:89","nodeType":"YulLiteral","src":"16681:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"16676:1:89","nodeType":"YulTypedName","src":"16676:1:89","type":""}]},{"body":{"nativeSrc":"16740:150:89","nodeType":"YulBlock","src":"16740:150:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16761:3:89","nodeType":"YulIdentifier","src":"16761:3:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"16776:6:89","nodeType":"YulIdentifier","src":"16776:6:89"}],"functionName":{"name":"mload","nativeSrc":"16770:5:89","nodeType":"YulIdentifier","src":"16770:5:89"},"nativeSrc":"16770:13:89","nodeType":"YulFunctionCall","src":"16770:13:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16793:3:89","nodeType":"YulLiteral","src":"16793:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"16798:1:89","nodeType":"YulLiteral","src":"16798:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"16789:3:89","nodeType":"YulIdentifier","src":"16789:3:89"},"nativeSrc":"16789:11:89","nodeType":"YulFunctionCall","src":"16789:11:89"},{"kind":"number","nativeSrc":"16802:1:89","nodeType":"YulLiteral","src":"16802:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16785:3:89","nodeType":"YulIdentifier","src":"16785:3:89"},"nativeSrc":"16785:19:89","nodeType":"YulFunctionCall","src":"16785:19:89"}],"functionName":{"name":"and","nativeSrc":"16766:3:89","nodeType":"YulIdentifier","src":"16766:3:89"},"nativeSrc":"16766:39:89","nodeType":"YulFunctionCall","src":"16766:39:89"}],"functionName":{"name":"mstore","nativeSrc":"16754:6:89","nodeType":"YulIdentifier","src":"16754:6:89"},"nativeSrc":"16754:52:89","nodeType":"YulFunctionCall","src":"16754:52:89"},"nativeSrc":"16754:52:89","nodeType":"YulExpressionStatement","src":"16754:52:89"},{"nativeSrc":"16819:21:89","nodeType":"YulAssignment","src":"16819:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"16830:3:89","nodeType":"YulIdentifier","src":"16830:3:89"},{"kind":"number","nativeSrc":"16835:4:89","nodeType":"YulLiteral","src":"16835:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16826:3:89","nodeType":"YulIdentifier","src":"16826:3:89"},"nativeSrc":"16826:14:89","nodeType":"YulFunctionCall","src":"16826:14:89"},"variableNames":[{"name":"pos","nativeSrc":"16819:3:89","nodeType":"YulIdentifier","src":"16819:3:89"}]},{"nativeSrc":"16853:27:89","nodeType":"YulAssignment","src":"16853:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"16867:6:89","nodeType":"YulIdentifier","src":"16867:6:89"},{"kind":"number","nativeSrc":"16875:4:89","nodeType":"YulLiteral","src":"16875:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16863:3:89","nodeType":"YulIdentifier","src":"16863:3:89"},"nativeSrc":"16863:17:89","nodeType":"YulFunctionCall","src":"16863:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"16853:6:89","nodeType":"YulIdentifier","src":"16853:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"16702:1:89","nodeType":"YulIdentifier","src":"16702:1:89"},{"name":"length","nativeSrc":"16705:6:89","nodeType":"YulIdentifier","src":"16705:6:89"}],"functionName":{"name":"lt","nativeSrc":"16699:2:89","nodeType":"YulIdentifier","src":"16699:2:89"},"nativeSrc":"16699:13:89","nodeType":"YulFunctionCall","src":"16699:13:89"},"nativeSrc":"16691:199:89","nodeType":"YulForLoop","post":{"nativeSrc":"16713:18:89","nodeType":"YulBlock","src":"16713:18:89","statements":[{"nativeSrc":"16715:14:89","nodeType":"YulAssignment","src":"16715:14:89","value":{"arguments":[{"name":"i","nativeSrc":"16724:1:89","nodeType":"YulIdentifier","src":"16724:1:89"},{"kind":"number","nativeSrc":"16727:1:89","nodeType":"YulLiteral","src":"16727:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16720:3:89","nodeType":"YulIdentifier","src":"16720:3:89"},"nativeSrc":"16720:9:89","nodeType":"YulFunctionCall","src":"16720:9:89"},"variableNames":[{"name":"i","nativeSrc":"16715:1:89","nodeType":"YulIdentifier","src":"16715:1:89"}]}]},"pre":{"nativeSrc":"16695:3:89","nodeType":"YulBlock","src":"16695:3:89","statements":[]},"src":"16691:199:89"},{"nativeSrc":"16899:10:89","nodeType":"YulAssignment","src":"16899:10:89","value":{"name":"pos","nativeSrc":"16906:3:89","nodeType":"YulIdentifier","src":"16906:3:89"},"variableNames":[{"name":"end","nativeSrc":"16899:3:89","nodeType":"YulIdentifier","src":"16899:3:89"}]}]},"name":"abi_encode_array_address_dyn","nativeSrc":"16469:446:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16507:5:89","nodeType":"YulTypedName","src":"16507:5:89","type":""},{"name":"pos","nativeSrc":"16514:3:89","nodeType":"YulTypedName","src":"16514:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16522:3:89","nodeType":"YulTypedName","src":"16522:3:89","type":""}],"src":"16469:446:89"},{"body":{"nativeSrc":"16980:532:89","nodeType":"YulBlock","src":"16980:532:89","statements":[{"nativeSrc":"16990:32:89","nodeType":"YulVariableDeclaration","src":"16990:32:89","value":{"arguments":[{"name":"value","nativeSrc":"17016:5:89","nodeType":"YulIdentifier","src":"17016:5:89"}],"functionName":{"name":"mload","nativeSrc":"17010:5:89","nodeType":"YulIdentifier","src":"17010:5:89"},"nativeSrc":"17010:12:89","nodeType":"YulFunctionCall","src":"17010:12:89"},"variables":[{"name":"memberValue0","nativeSrc":"16994:12:89","nodeType":"YulTypedName","src":"16994:12:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17038:3:89","nodeType":"YulIdentifier","src":"17038:3:89"},{"kind":"number","nativeSrc":"17043:4:89","nodeType":"YulLiteral","src":"17043:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"17031:6:89","nodeType":"YulIdentifier","src":"17031:6:89"},"nativeSrc":"17031:17:89","nodeType":"YulFunctionCall","src":"17031:17:89"},"nativeSrc":"17031:17:89","nodeType":"YulExpressionStatement","src":"17031:17:89"},{"nativeSrc":"17057:59:89","nodeType":"YulVariableDeclaration","src":"17057:59:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"17087:12:89","nodeType":"YulIdentifier","src":"17087:12:89"},{"arguments":[{"name":"pos","nativeSrc":"17105:3:89","nodeType":"YulIdentifier","src":"17105:3:89"},{"kind":"number","nativeSrc":"17110:4:89","nodeType":"YulLiteral","src":"17110:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"17101:3:89","nodeType":"YulIdentifier","src":"17101:3:89"},"nativeSrc":"17101:14:89","nodeType":"YulFunctionCall","src":"17101:14:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"17069:17:89","nodeType":"YulIdentifier","src":"17069:17:89"},"nativeSrc":"17069:47:89","nodeType":"YulFunctionCall","src":"17069:47:89"},"variables":[{"name":"tail","nativeSrc":"17061:4:89","nodeType":"YulTypedName","src":"17061:4:89","type":""}]},{"nativeSrc":"17125:45:89","nodeType":"YulVariableDeclaration","src":"17125:45:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17157:5:89","nodeType":"YulIdentifier","src":"17157:5:89"},{"kind":"number","nativeSrc":"17164:4:89","nodeType":"YulLiteral","src":"17164:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17153:3:89","nodeType":"YulIdentifier","src":"17153:3:89"},"nativeSrc":"17153:16:89","nodeType":"YulFunctionCall","src":"17153:16:89"}],"functionName":{"name":"mload","nativeSrc":"17147:5:89","nodeType":"YulIdentifier","src":"17147:5:89"},"nativeSrc":"17147:23:89","nodeType":"YulFunctionCall","src":"17147:23:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"17129:14:89","nodeType":"YulTypedName","src":"17129:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17190:3:89","nodeType":"YulIdentifier","src":"17190:3:89"},{"kind":"number","nativeSrc":"17195:4:89","nodeType":"YulLiteral","src":"17195:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17186:3:89","nodeType":"YulIdentifier","src":"17186:3:89"},"nativeSrc":"17186:14:89","nodeType":"YulFunctionCall","src":"17186:14:89"},{"arguments":[{"name":"tail","nativeSrc":"17206:4:89","nodeType":"YulIdentifier","src":"17206:4:89"},{"name":"pos","nativeSrc":"17212:3:89","nodeType":"YulIdentifier","src":"17212:3:89"}],"functionName":{"name":"sub","nativeSrc":"17202:3:89","nodeType":"YulIdentifier","src":"17202:3:89"},"nativeSrc":"17202:14:89","nodeType":"YulFunctionCall","src":"17202:14:89"}],"functionName":{"name":"mstore","nativeSrc":"17179:6:89","nodeType":"YulIdentifier","src":"17179:6:89"},"nativeSrc":"17179:38:89","nodeType":"YulFunctionCall","src":"17179:38:89"},"nativeSrc":"17179:38:89","nodeType":"YulExpressionStatement","src":"17179:38:89"},{"nativeSrc":"17226:53:89","nodeType":"YulVariableDeclaration","src":"17226:53:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"17258:14:89","nodeType":"YulIdentifier","src":"17258:14:89"},{"name":"tail","nativeSrc":"17274:4:89","nodeType":"YulIdentifier","src":"17274:4:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"17240:17:89","nodeType":"YulIdentifier","src":"17240:17:89"},"nativeSrc":"17240:39:89","nodeType":"YulFunctionCall","src":"17240:39:89"},"variables":[{"name":"tail_1","nativeSrc":"17230:6:89","nodeType":"YulTypedName","src":"17230:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17299:3:89","nodeType":"YulIdentifier","src":"17299:3:89"},{"kind":"number","nativeSrc":"17304:4:89","nodeType":"YulLiteral","src":"17304:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17295:3:89","nodeType":"YulIdentifier","src":"17295:3:89"},"nativeSrc":"17295:14:89","nodeType":"YulFunctionCall","src":"17295:14:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17325:5:89","nodeType":"YulIdentifier","src":"17325:5:89"},{"kind":"number","nativeSrc":"17332:4:89","nodeType":"YulLiteral","src":"17332:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17321:3:89","nodeType":"YulIdentifier","src":"17321:3:89"},"nativeSrc":"17321:16:89","nodeType":"YulFunctionCall","src":"17321:16:89"}],"functionName":{"name":"mload","nativeSrc":"17315:5:89","nodeType":"YulIdentifier","src":"17315:5:89"},"nativeSrc":"17315:23:89","nodeType":"YulFunctionCall","src":"17315:23:89"},{"kind":"number","nativeSrc":"17340:4:89","nodeType":"YulLiteral","src":"17340:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"17311:3:89","nodeType":"YulIdentifier","src":"17311:3:89"},"nativeSrc":"17311:34:89","nodeType":"YulFunctionCall","src":"17311:34:89"}],"functionName":{"name":"mstore","nativeSrc":"17288:6:89","nodeType":"YulIdentifier","src":"17288:6:89"},"nativeSrc":"17288:58:89","nodeType":"YulFunctionCall","src":"17288:58:89"},"nativeSrc":"17288:58:89","nodeType":"YulExpressionStatement","src":"17288:58:89"},{"nativeSrc":"17355:45:89","nodeType":"YulVariableDeclaration","src":"17355:45:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17387:5:89","nodeType":"YulIdentifier","src":"17387:5:89"},{"kind":"number","nativeSrc":"17394:4:89","nodeType":"YulLiteral","src":"17394:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17383:3:89","nodeType":"YulIdentifier","src":"17383:3:89"},"nativeSrc":"17383:16:89","nodeType":"YulFunctionCall","src":"17383:16:89"}],"functionName":{"name":"mload","nativeSrc":"17377:5:89","nodeType":"YulIdentifier","src":"17377:5:89"},"nativeSrc":"17377:23:89","nodeType":"YulFunctionCall","src":"17377:23:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"17359:14:89","nodeType":"YulTypedName","src":"17359:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17420:3:89","nodeType":"YulIdentifier","src":"17420:3:89"},{"kind":"number","nativeSrc":"17425:4:89","nodeType":"YulLiteral","src":"17425:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17416:3:89","nodeType":"YulIdentifier","src":"17416:3:89"},"nativeSrc":"17416:14:89","nodeType":"YulFunctionCall","src":"17416:14:89"},{"arguments":[{"name":"tail_1","nativeSrc":"17436:6:89","nodeType":"YulIdentifier","src":"17436:6:89"},{"name":"pos","nativeSrc":"17444:3:89","nodeType":"YulIdentifier","src":"17444:3:89"}],"functionName":{"name":"sub","nativeSrc":"17432:3:89","nodeType":"YulIdentifier","src":"17432:3:89"},"nativeSrc":"17432:16:89","nodeType":"YulFunctionCall","src":"17432:16:89"}],"functionName":{"name":"mstore","nativeSrc":"17409:6:89","nodeType":"YulIdentifier","src":"17409:6:89"},"nativeSrc":"17409:40:89","nodeType":"YulFunctionCall","src":"17409:40:89"},"nativeSrc":"17409:40:89","nodeType":"YulExpressionStatement","src":"17409:40:89"},{"nativeSrc":"17458:48:89","nodeType":"YulAssignment","src":"17458:48:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"17483:14:89","nodeType":"YulIdentifier","src":"17483:14:89"},{"name":"tail_1","nativeSrc":"17499:6:89","nodeType":"YulIdentifier","src":"17499:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"17465:17:89","nodeType":"YulIdentifier","src":"17465:17:89"},"nativeSrc":"17465:41:89","nodeType":"YulFunctionCall","src":"17465:41:89"},"variableNames":[{"name":"end","nativeSrc":"17458:3:89","nodeType":"YulIdentifier","src":"17458:3:89"}]}]},"name":"abi_encode_struct_TokenInfo","nativeSrc":"16920:592:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16957:5:89","nodeType":"YulTypedName","src":"16957:5:89","type":""},{"name":"pos","nativeSrc":"16964:3:89","nodeType":"YulTypedName","src":"16964:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16972:3:89","nodeType":"YulTypedName","src":"16972:3:89","type":""}],"src":"16920:592:89"},{"body":{"nativeSrc":"17587:529:89","nodeType":"YulBlock","src":"17587:529:89","statements":[{"nativeSrc":"17597:16:89","nodeType":"YulVariableDeclaration","src":"17597:16:89","value":{"name":"pos","nativeSrc":"17610:3:89","nodeType":"YulIdentifier","src":"17610:3:89"},"variables":[{"name":"pos_1","nativeSrc":"17601:5:89","nodeType":"YulTypedName","src":"17601:5:89","type":""}]},{"nativeSrc":"17622:26:89","nodeType":"YulVariableDeclaration","src":"17622:26:89","value":{"arguments":[{"name":"value","nativeSrc":"17642:5:89","nodeType":"YulIdentifier","src":"17642:5:89"}],"functionName":{"name":"mload","nativeSrc":"17636:5:89","nodeType":"YulIdentifier","src":"17636:5:89"},"nativeSrc":"17636:12:89","nodeType":"YulFunctionCall","src":"17636:12:89"},"variables":[{"name":"length","nativeSrc":"17626:6:89","nodeType":"YulTypedName","src":"17626:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17664:3:89","nodeType":"YulIdentifier","src":"17664:3:89"},{"name":"length","nativeSrc":"17669:6:89","nodeType":"YulIdentifier","src":"17669:6:89"}],"functionName":{"name":"mstore","nativeSrc":"17657:6:89","nodeType":"YulIdentifier","src":"17657:6:89"},"nativeSrc":"17657:19:89","nodeType":"YulFunctionCall","src":"17657:19:89"},"nativeSrc":"17657:19:89","nodeType":"YulExpressionStatement","src":"17657:19:89"},{"nativeSrc":"17685:21:89","nodeType":"YulAssignment","src":"17685:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"17696:3:89","nodeType":"YulIdentifier","src":"17696:3:89"},{"kind":"number","nativeSrc":"17701:4:89","nodeType":"YulLiteral","src":"17701:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17692:3:89","nodeType":"YulIdentifier","src":"17692:3:89"},"nativeSrc":"17692:14:89","nodeType":"YulFunctionCall","src":"17692:14:89"},"variableNames":[{"name":"pos","nativeSrc":"17685:3:89","nodeType":"YulIdentifier","src":"17685:3:89"}]},{"nativeSrc":"17715:49:89","nodeType":"YulVariableDeclaration","src":"17715:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"17735:5:89","nodeType":"YulIdentifier","src":"17735:5:89"},{"arguments":[{"kind":"number","nativeSrc":"17746:1:89","nodeType":"YulLiteral","src":"17746:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"17749:6:89","nodeType":"YulIdentifier","src":"17749:6:89"}],"functionName":{"name":"shl","nativeSrc":"17742:3:89","nodeType":"YulIdentifier","src":"17742:3:89"},"nativeSrc":"17742:14:89","nodeType":"YulFunctionCall","src":"17742:14:89"}],"functionName":{"name":"add","nativeSrc":"17731:3:89","nodeType":"YulIdentifier","src":"17731:3:89"},"nativeSrc":"17731:26:89","nodeType":"YulFunctionCall","src":"17731:26:89"},{"kind":"number","nativeSrc":"17759:4:89","nodeType":"YulLiteral","src":"17759:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17727:3:89","nodeType":"YulIdentifier","src":"17727:3:89"},"nativeSrc":"17727:37:89","nodeType":"YulFunctionCall","src":"17727:37:89"},"variables":[{"name":"tail","nativeSrc":"17719:4:89","nodeType":"YulTypedName","src":"17719:4:89","type":""}]},{"nativeSrc":"17773:30:89","nodeType":"YulVariableDeclaration","src":"17773:30:89","value":{"arguments":[{"name":"value","nativeSrc":"17791:5:89","nodeType":"YulIdentifier","src":"17791:5:89"},{"kind":"number","nativeSrc":"17798:4:89","nodeType":"YulLiteral","src":"17798:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17787:3:89","nodeType":"YulIdentifier","src":"17787:3:89"},"nativeSrc":"17787:16:89","nodeType":"YulFunctionCall","src":"17787:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"17777:6:89","nodeType":"YulTypedName","src":"17777:6:89","type":""}]},{"nativeSrc":"17812:10:89","nodeType":"YulVariableDeclaration","src":"17812:10:89","value":{"kind":"number","nativeSrc":"17821:1:89","nodeType":"YulLiteral","src":"17821:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"17816:1:89","nodeType":"YulTypedName","src":"17816:1:89","type":""}]},{"body":{"nativeSrc":"17880:210:89","nodeType":"YulBlock","src":"17880:210:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17901:3:89","nodeType":"YulIdentifier","src":"17901:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"17914:4:89","nodeType":"YulIdentifier","src":"17914:4:89"},{"name":"pos_1","nativeSrc":"17920:5:89","nodeType":"YulIdentifier","src":"17920:5:89"}],"functionName":{"name":"sub","nativeSrc":"17910:3:89","nodeType":"YulIdentifier","src":"17910:3:89"},"nativeSrc":"17910:16:89","nodeType":"YulFunctionCall","src":"17910:16:89"},{"arguments":[{"kind":"number","nativeSrc":"17932:2:89","nodeType":"YulLiteral","src":"17932:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"17928:3:89","nodeType":"YulIdentifier","src":"17928:3:89"},"nativeSrc":"17928:7:89","nodeType":"YulFunctionCall","src":"17928:7:89"}],"functionName":{"name":"add","nativeSrc":"17906:3:89","nodeType":"YulIdentifier","src":"17906:3:89"},"nativeSrc":"17906:30:89","nodeType":"YulFunctionCall","src":"17906:30:89"}],"functionName":{"name":"mstore","nativeSrc":"17894:6:89","nodeType":"YulIdentifier","src":"17894:6:89"},"nativeSrc":"17894:43:89","nodeType":"YulFunctionCall","src":"17894:43:89"},"nativeSrc":"17894:43:89","nodeType":"YulExpressionStatement","src":"17894:43:89"},{"nativeSrc":"17950:56:89","nodeType":"YulAssignment","src":"17950:56:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"17992:6:89","nodeType":"YulIdentifier","src":"17992:6:89"}],"functionName":{"name":"mload","nativeSrc":"17986:5:89","nodeType":"YulIdentifier","src":"17986:5:89"},"nativeSrc":"17986:13:89","nodeType":"YulFunctionCall","src":"17986:13:89"},{"name":"tail","nativeSrc":"18001:4:89","nodeType":"YulIdentifier","src":"18001:4:89"}],"functionName":{"name":"abi_encode_struct_TokenInfo","nativeSrc":"17958:27:89","nodeType":"YulIdentifier","src":"17958:27:89"},"nativeSrc":"17958:48:89","nodeType":"YulFunctionCall","src":"17958:48:89"},"variableNames":[{"name":"tail","nativeSrc":"17950:4:89","nodeType":"YulIdentifier","src":"17950:4:89"}]},{"nativeSrc":"18019:27:89","nodeType":"YulAssignment","src":"18019:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"18033:6:89","nodeType":"YulIdentifier","src":"18033:6:89"},{"kind":"number","nativeSrc":"18041:4:89","nodeType":"YulLiteral","src":"18041:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18029:3:89","nodeType":"YulIdentifier","src":"18029:3:89"},"nativeSrc":"18029:17:89","nodeType":"YulFunctionCall","src":"18029:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"18019:6:89","nodeType":"YulIdentifier","src":"18019:6:89"}]},{"nativeSrc":"18059:21:89","nodeType":"YulAssignment","src":"18059:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"18070:3:89","nodeType":"YulIdentifier","src":"18070:3:89"},{"kind":"number","nativeSrc":"18075:4:89","nodeType":"YulLiteral","src":"18075:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18066:3:89","nodeType":"YulIdentifier","src":"18066:3:89"},"nativeSrc":"18066:14:89","nodeType":"YulFunctionCall","src":"18066:14:89"},"variableNames":[{"name":"pos","nativeSrc":"18059:3:89","nodeType":"YulIdentifier","src":"18059:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"17842:1:89","nodeType":"YulIdentifier","src":"17842:1:89"},{"name":"length","nativeSrc":"17845:6:89","nodeType":"YulIdentifier","src":"17845:6:89"}],"functionName":{"name":"lt","nativeSrc":"17839:2:89","nodeType":"YulIdentifier","src":"17839:2:89"},"nativeSrc":"17839:13:89","nodeType":"YulFunctionCall","src":"17839:13:89"},"nativeSrc":"17831:259:89","nodeType":"YulForLoop","post":{"nativeSrc":"17853:18:89","nodeType":"YulBlock","src":"17853:18:89","statements":[{"nativeSrc":"17855:14:89","nodeType":"YulAssignment","src":"17855:14:89","value":{"arguments":[{"name":"i","nativeSrc":"17864:1:89","nodeType":"YulIdentifier","src":"17864:1:89"},{"kind":"number","nativeSrc":"17867:1:89","nodeType":"YulLiteral","src":"17867:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17860:3:89","nodeType":"YulIdentifier","src":"17860:3:89"},"nativeSrc":"17860:9:89","nodeType":"YulFunctionCall","src":"17860:9:89"},"variableNames":[{"name":"i","nativeSrc":"17855:1:89","nodeType":"YulIdentifier","src":"17855:1:89"}]}]},"pre":{"nativeSrc":"17835:3:89","nodeType":"YulBlock","src":"17835:3:89","statements":[]},"src":"17831:259:89"},{"nativeSrc":"18099:11:89","nodeType":"YulAssignment","src":"18099:11:89","value":{"name":"tail","nativeSrc":"18106:4:89","nodeType":"YulIdentifier","src":"18106:4:89"},"variableNames":[{"name":"end","nativeSrc":"18099:3:89","nodeType":"YulIdentifier","src":"18099:3:89"}]}]},"name":"abi_encode_array_struct_TokenInfo_dyn","nativeSrc":"17517:599:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17564:5:89","nodeType":"YulTypedName","src":"17564:5:89","type":""},{"name":"pos","nativeSrc":"17571:3:89","nodeType":"YulTypedName","src":"17571:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17579:3:89","nodeType":"YulTypedName","src":"17579:3:89","type":""}],"src":"17517:599:89"},{"body":{"nativeSrc":"18179:632:89","nodeType":"YulBlock","src":"18179:632:89","statements":[{"nativeSrc":"18189:32:89","nodeType":"YulVariableDeclaration","src":"18189:32:89","value":{"arguments":[{"name":"value","nativeSrc":"18215:5:89","nodeType":"YulIdentifier","src":"18215:5:89"}],"functionName":{"name":"mload","nativeSrc":"18209:5:89","nodeType":"YulIdentifier","src":"18209:5:89"},"nativeSrc":"18209:12:89","nodeType":"YulFunctionCall","src":"18209:12:89"},"variables":[{"name":"memberValue0","nativeSrc":"18193:12:89","nodeType":"YulTypedName","src":"18193:12:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18237:3:89","nodeType":"YulIdentifier","src":"18237:3:89"},{"kind":"number","nativeSrc":"18242:4:89","nodeType":"YulLiteral","src":"18242:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"18230:6:89","nodeType":"YulIdentifier","src":"18230:6:89"},"nativeSrc":"18230:17:89","nodeType":"YulFunctionCall","src":"18230:17:89"},"nativeSrc":"18230:17:89","nodeType":"YulExpressionStatement","src":"18230:17:89"},{"nativeSrc":"18256:59:89","nodeType":"YulVariableDeclaration","src":"18256:59:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"18286:12:89","nodeType":"YulIdentifier","src":"18286:12:89"},{"arguments":[{"name":"pos","nativeSrc":"18304:3:89","nodeType":"YulIdentifier","src":"18304:3:89"},{"kind":"number","nativeSrc":"18309:4:89","nodeType":"YulLiteral","src":"18309:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"18300:3:89","nodeType":"YulIdentifier","src":"18300:3:89"},"nativeSrc":"18300:14:89","nodeType":"YulFunctionCall","src":"18300:14:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18268:17:89","nodeType":"YulIdentifier","src":"18268:17:89"},"nativeSrc":"18268:47:89","nodeType":"YulFunctionCall","src":"18268:47:89"},"variables":[{"name":"tail","nativeSrc":"18260:4:89","nodeType":"YulTypedName","src":"18260:4:89","type":""}]},{"nativeSrc":"18324:45:89","nodeType":"YulVariableDeclaration","src":"18324:45:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18356:5:89","nodeType":"YulIdentifier","src":"18356:5:89"},{"kind":"number","nativeSrc":"18363:4:89","nodeType":"YulLiteral","src":"18363:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18352:3:89","nodeType":"YulIdentifier","src":"18352:3:89"},"nativeSrc":"18352:16:89","nodeType":"YulFunctionCall","src":"18352:16:89"}],"functionName":{"name":"mload","nativeSrc":"18346:5:89","nodeType":"YulIdentifier","src":"18346:5:89"},"nativeSrc":"18346:23:89","nodeType":"YulFunctionCall","src":"18346:23:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"18328:14:89","nodeType":"YulTypedName","src":"18328:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18389:3:89","nodeType":"YulIdentifier","src":"18389:3:89"},{"kind":"number","nativeSrc":"18394:4:89","nodeType":"YulLiteral","src":"18394:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18385:3:89","nodeType":"YulIdentifier","src":"18385:3:89"},"nativeSrc":"18385:14:89","nodeType":"YulFunctionCall","src":"18385:14:89"},{"arguments":[{"name":"tail","nativeSrc":"18405:4:89","nodeType":"YulIdentifier","src":"18405:4:89"},{"name":"pos","nativeSrc":"18411:3:89","nodeType":"YulIdentifier","src":"18411:3:89"}],"functionName":{"name":"sub","nativeSrc":"18401:3:89","nodeType":"YulIdentifier","src":"18401:3:89"},"nativeSrc":"18401:14:89","nodeType":"YulFunctionCall","src":"18401:14:89"}],"functionName":{"name":"mstore","nativeSrc":"18378:6:89","nodeType":"YulIdentifier","src":"18378:6:89"},"nativeSrc":"18378:38:89","nodeType":"YulFunctionCall","src":"18378:38:89"},"nativeSrc":"18378:38:89","nodeType":"YulExpressionStatement","src":"18378:38:89"},{"nativeSrc":"18425:53:89","nodeType":"YulVariableDeclaration","src":"18425:53:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"18457:14:89","nodeType":"YulIdentifier","src":"18457:14:89"},{"name":"tail","nativeSrc":"18473:4:89","nodeType":"YulIdentifier","src":"18473:4:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18439:17:89","nodeType":"YulIdentifier","src":"18439:17:89"},"nativeSrc":"18439:39:89","nodeType":"YulFunctionCall","src":"18439:39:89"},"variables":[{"name":"tail_1","nativeSrc":"18429:6:89","nodeType":"YulTypedName","src":"18429:6:89","type":""}]},{"nativeSrc":"18487:45:89","nodeType":"YulVariableDeclaration","src":"18487:45:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18519:5:89","nodeType":"YulIdentifier","src":"18519:5:89"},{"kind":"number","nativeSrc":"18526:4:89","nodeType":"YulLiteral","src":"18526:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"18515:3:89","nodeType":"YulIdentifier","src":"18515:3:89"},"nativeSrc":"18515:16:89","nodeType":"YulFunctionCall","src":"18515:16:89"}],"functionName":{"name":"mload","nativeSrc":"18509:5:89","nodeType":"YulIdentifier","src":"18509:5:89"},"nativeSrc":"18509:23:89","nodeType":"YulFunctionCall","src":"18509:23:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"18491:14:89","nodeType":"YulTypedName","src":"18491:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18552:3:89","nodeType":"YulIdentifier","src":"18552:3:89"},{"kind":"number","nativeSrc":"18557:4:89","nodeType":"YulLiteral","src":"18557:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"18548:3:89","nodeType":"YulIdentifier","src":"18548:3:89"},"nativeSrc":"18548:14:89","nodeType":"YulFunctionCall","src":"18548:14:89"},{"arguments":[{"name":"tail_1","nativeSrc":"18568:6:89","nodeType":"YulIdentifier","src":"18568:6:89"},{"name":"pos","nativeSrc":"18576:3:89","nodeType":"YulIdentifier","src":"18576:3:89"}],"functionName":{"name":"sub","nativeSrc":"18564:3:89","nodeType":"YulIdentifier","src":"18564:3:89"},"nativeSrc":"18564:16:89","nodeType":"YulFunctionCall","src":"18564:16:89"}],"functionName":{"name":"mstore","nativeSrc":"18541:6:89","nodeType":"YulIdentifier","src":"18541:6:89"},"nativeSrc":"18541:40:89","nodeType":"YulFunctionCall","src":"18541:40:89"},"nativeSrc":"18541:40:89","nodeType":"YulExpressionStatement","src":"18541:40:89"},{"nativeSrc":"18590:55:89","nodeType":"YulVariableDeclaration","src":"18590:55:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"18622:14:89","nodeType":"YulIdentifier","src":"18622:14:89"},{"name":"tail_1","nativeSrc":"18638:6:89","nodeType":"YulIdentifier","src":"18638:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18604:17:89","nodeType":"YulIdentifier","src":"18604:17:89"},"nativeSrc":"18604:41:89","nodeType":"YulFunctionCall","src":"18604:41:89"},"variables":[{"name":"tail_2","nativeSrc":"18594:6:89","nodeType":"YulTypedName","src":"18594:6:89","type":""}]},{"nativeSrc":"18654:45:89","nodeType":"YulVariableDeclaration","src":"18654:45:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18686:5:89","nodeType":"YulIdentifier","src":"18686:5:89"},{"kind":"number","nativeSrc":"18693:4:89","nodeType":"YulLiteral","src":"18693:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"18682:3:89","nodeType":"YulIdentifier","src":"18682:3:89"},"nativeSrc":"18682:16:89","nodeType":"YulFunctionCall","src":"18682:16:89"}],"functionName":{"name":"mload","nativeSrc":"18676:5:89","nodeType":"YulIdentifier","src":"18676:5:89"},"nativeSrc":"18676:23:89","nodeType":"YulFunctionCall","src":"18676:23:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"18658:14:89","nodeType":"YulTypedName","src":"18658:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18719:3:89","nodeType":"YulIdentifier","src":"18719:3:89"},{"kind":"number","nativeSrc":"18724:4:89","nodeType":"YulLiteral","src":"18724:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"18715:3:89","nodeType":"YulIdentifier","src":"18715:3:89"},"nativeSrc":"18715:14:89","nodeType":"YulFunctionCall","src":"18715:14:89"},{"arguments":[{"name":"tail_2","nativeSrc":"18735:6:89","nodeType":"YulIdentifier","src":"18735:6:89"},{"name":"pos","nativeSrc":"18743:3:89","nodeType":"YulIdentifier","src":"18743:3:89"}],"functionName":{"name":"sub","nativeSrc":"18731:3:89","nodeType":"YulIdentifier","src":"18731:3:89"},"nativeSrc":"18731:16:89","nodeType":"YulFunctionCall","src":"18731:16:89"}],"functionName":{"name":"mstore","nativeSrc":"18708:6:89","nodeType":"YulIdentifier","src":"18708:6:89"},"nativeSrc":"18708:40:89","nodeType":"YulFunctionCall","src":"18708:40:89"},"nativeSrc":"18708:40:89","nodeType":"YulExpressionStatement","src":"18708:40:89"},{"nativeSrc":"18757:48:89","nodeType":"YulAssignment","src":"18757:48:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"18782:14:89","nodeType":"YulIdentifier","src":"18782:14:89"},{"name":"tail_2","nativeSrc":"18798:6:89","nodeType":"YulIdentifier","src":"18798:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18764:17:89","nodeType":"YulIdentifier","src":"18764:17:89"},"nativeSrc":"18764:41:89","nodeType":"YulFunctionCall","src":"18764:41:89"},"variableNames":[{"name":"end","nativeSrc":"18757:3:89","nodeType":"YulIdentifier","src":"18757:3:89"}]}]},"name":"abi_encode_struct_NFTInfo","nativeSrc":"18121:690:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18156:5:89","nodeType":"YulTypedName","src":"18156:5:89","type":""},{"name":"pos","nativeSrc":"18163:3:89","nodeType":"YulTypedName","src":"18163:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18171:3:89","nodeType":"YulTypedName","src":"18171:3:89","type":""}],"src":"18121:690:89"},{"body":{"nativeSrc":"18884:527:89","nodeType":"YulBlock","src":"18884:527:89","statements":[{"nativeSrc":"18894:16:89","nodeType":"YulVariableDeclaration","src":"18894:16:89","value":{"name":"pos","nativeSrc":"18907:3:89","nodeType":"YulIdentifier","src":"18907:3:89"},"variables":[{"name":"pos_1","nativeSrc":"18898:5:89","nodeType":"YulTypedName","src":"18898:5:89","type":""}]},{"nativeSrc":"18919:26:89","nodeType":"YulVariableDeclaration","src":"18919:26:89","value":{"arguments":[{"name":"value","nativeSrc":"18939:5:89","nodeType":"YulIdentifier","src":"18939:5:89"}],"functionName":{"name":"mload","nativeSrc":"18933:5:89","nodeType":"YulIdentifier","src":"18933:5:89"},"nativeSrc":"18933:12:89","nodeType":"YulFunctionCall","src":"18933:12:89"},"variables":[{"name":"length","nativeSrc":"18923:6:89","nodeType":"YulTypedName","src":"18923:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18961:3:89","nodeType":"YulIdentifier","src":"18961:3:89"},{"name":"length","nativeSrc":"18966:6:89","nodeType":"YulIdentifier","src":"18966:6:89"}],"functionName":{"name":"mstore","nativeSrc":"18954:6:89","nodeType":"YulIdentifier","src":"18954:6:89"},"nativeSrc":"18954:19:89","nodeType":"YulFunctionCall","src":"18954:19:89"},"nativeSrc":"18954:19:89","nodeType":"YulExpressionStatement","src":"18954:19:89"},{"nativeSrc":"18982:21:89","nodeType":"YulAssignment","src":"18982:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"18993:3:89","nodeType":"YulIdentifier","src":"18993:3:89"},{"kind":"number","nativeSrc":"18998:4:89","nodeType":"YulLiteral","src":"18998:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18989:3:89","nodeType":"YulIdentifier","src":"18989:3:89"},"nativeSrc":"18989:14:89","nodeType":"YulFunctionCall","src":"18989:14:89"},"variableNames":[{"name":"pos","nativeSrc":"18982:3:89","nodeType":"YulIdentifier","src":"18982:3:89"}]},{"nativeSrc":"19012:49:89","nodeType":"YulVariableDeclaration","src":"19012:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"19032:5:89","nodeType":"YulIdentifier","src":"19032:5:89"},{"arguments":[{"kind":"number","nativeSrc":"19043:1:89","nodeType":"YulLiteral","src":"19043:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"19046:6:89","nodeType":"YulIdentifier","src":"19046:6:89"}],"functionName":{"name":"shl","nativeSrc":"19039:3:89","nodeType":"YulIdentifier","src":"19039:3:89"},"nativeSrc":"19039:14:89","nodeType":"YulFunctionCall","src":"19039:14:89"}],"functionName":{"name":"add","nativeSrc":"19028:3:89","nodeType":"YulIdentifier","src":"19028:3:89"},"nativeSrc":"19028:26:89","nodeType":"YulFunctionCall","src":"19028:26:89"},{"kind":"number","nativeSrc":"19056:4:89","nodeType":"YulLiteral","src":"19056:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19024:3:89","nodeType":"YulIdentifier","src":"19024:3:89"},"nativeSrc":"19024:37:89","nodeType":"YulFunctionCall","src":"19024:37:89"},"variables":[{"name":"tail","nativeSrc":"19016:4:89","nodeType":"YulTypedName","src":"19016:4:89","type":""}]},{"nativeSrc":"19070:30:89","nodeType":"YulVariableDeclaration","src":"19070:30:89","value":{"arguments":[{"name":"value","nativeSrc":"19088:5:89","nodeType":"YulIdentifier","src":"19088:5:89"},{"kind":"number","nativeSrc":"19095:4:89","nodeType":"YulLiteral","src":"19095:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19084:3:89","nodeType":"YulIdentifier","src":"19084:3:89"},"nativeSrc":"19084:16:89","nodeType":"YulFunctionCall","src":"19084:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"19074:6:89","nodeType":"YulTypedName","src":"19074:6:89","type":""}]},{"nativeSrc":"19109:10:89","nodeType":"YulVariableDeclaration","src":"19109:10:89","value":{"kind":"number","nativeSrc":"19118:1:89","nodeType":"YulLiteral","src":"19118:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"19113:1:89","nodeType":"YulTypedName","src":"19113:1:89","type":""}]},{"body":{"nativeSrc":"19177:208:89","nodeType":"YulBlock","src":"19177:208:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"19198:3:89","nodeType":"YulIdentifier","src":"19198:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"19211:4:89","nodeType":"YulIdentifier","src":"19211:4:89"},{"name":"pos_1","nativeSrc":"19217:5:89","nodeType":"YulIdentifier","src":"19217:5:89"}],"functionName":{"name":"sub","nativeSrc":"19207:3:89","nodeType":"YulIdentifier","src":"19207:3:89"},"nativeSrc":"19207:16:89","nodeType":"YulFunctionCall","src":"19207:16:89"},{"arguments":[{"kind":"number","nativeSrc":"19229:2:89","nodeType":"YulLiteral","src":"19229:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"19225:3:89","nodeType":"YulIdentifier","src":"19225:3:89"},"nativeSrc":"19225:7:89","nodeType":"YulFunctionCall","src":"19225:7:89"}],"functionName":{"name":"add","nativeSrc":"19203:3:89","nodeType":"YulIdentifier","src":"19203:3:89"},"nativeSrc":"19203:30:89","nodeType":"YulFunctionCall","src":"19203:30:89"}],"functionName":{"name":"mstore","nativeSrc":"19191:6:89","nodeType":"YulIdentifier","src":"19191:6:89"},"nativeSrc":"19191:43:89","nodeType":"YulFunctionCall","src":"19191:43:89"},"nativeSrc":"19191:43:89","nodeType":"YulExpressionStatement","src":"19191:43:89"},{"nativeSrc":"19247:54:89","nodeType":"YulAssignment","src":"19247:54:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"19287:6:89","nodeType":"YulIdentifier","src":"19287:6:89"}],"functionName":{"name":"mload","nativeSrc":"19281:5:89","nodeType":"YulIdentifier","src":"19281:5:89"},"nativeSrc":"19281:13:89","nodeType":"YulFunctionCall","src":"19281:13:89"},{"name":"tail","nativeSrc":"19296:4:89","nodeType":"YulIdentifier","src":"19296:4:89"}],"functionName":{"name":"abi_encode_struct_NFTInfo","nativeSrc":"19255:25:89","nodeType":"YulIdentifier","src":"19255:25:89"},"nativeSrc":"19255:46:89","nodeType":"YulFunctionCall","src":"19255:46:89"},"variableNames":[{"name":"tail","nativeSrc":"19247:4:89","nodeType":"YulIdentifier","src":"19247:4:89"}]},{"nativeSrc":"19314:27:89","nodeType":"YulAssignment","src":"19314:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"19328:6:89","nodeType":"YulIdentifier","src":"19328:6:89"},{"kind":"number","nativeSrc":"19336:4:89","nodeType":"YulLiteral","src":"19336:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19324:3:89","nodeType":"YulIdentifier","src":"19324:3:89"},"nativeSrc":"19324:17:89","nodeType":"YulFunctionCall","src":"19324:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"19314:6:89","nodeType":"YulIdentifier","src":"19314:6:89"}]},{"nativeSrc":"19354:21:89","nodeType":"YulAssignment","src":"19354:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"19365:3:89","nodeType":"YulIdentifier","src":"19365:3:89"},{"kind":"number","nativeSrc":"19370:4:89","nodeType":"YulLiteral","src":"19370:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19361:3:89","nodeType":"YulIdentifier","src":"19361:3:89"},"nativeSrc":"19361:14:89","nodeType":"YulFunctionCall","src":"19361:14:89"},"variableNames":[{"name":"pos","nativeSrc":"19354:3:89","nodeType":"YulIdentifier","src":"19354:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"19139:1:89","nodeType":"YulIdentifier","src":"19139:1:89"},{"name":"length","nativeSrc":"19142:6:89","nodeType":"YulIdentifier","src":"19142:6:89"}],"functionName":{"name":"lt","nativeSrc":"19136:2:89","nodeType":"YulIdentifier","src":"19136:2:89"},"nativeSrc":"19136:13:89","nodeType":"YulFunctionCall","src":"19136:13:89"},"nativeSrc":"19128:257:89","nodeType":"YulForLoop","post":{"nativeSrc":"19150:18:89","nodeType":"YulBlock","src":"19150:18:89","statements":[{"nativeSrc":"19152:14:89","nodeType":"YulAssignment","src":"19152:14:89","value":{"arguments":[{"name":"i","nativeSrc":"19161:1:89","nodeType":"YulIdentifier","src":"19161:1:89"},{"kind":"number","nativeSrc":"19164:1:89","nodeType":"YulLiteral","src":"19164:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19157:3:89","nodeType":"YulIdentifier","src":"19157:3:89"},"nativeSrc":"19157:9:89","nodeType":"YulFunctionCall","src":"19157:9:89"},"variableNames":[{"name":"i","nativeSrc":"19152:1:89","nodeType":"YulIdentifier","src":"19152:1:89"}]}]},"pre":{"nativeSrc":"19132:3:89","nodeType":"YulBlock","src":"19132:3:89","statements":[]},"src":"19128:257:89"},{"nativeSrc":"19394:11:89","nodeType":"YulAssignment","src":"19394:11:89","value":{"name":"tail","nativeSrc":"19401:4:89","nodeType":"YulIdentifier","src":"19401:4:89"},"variableNames":[{"name":"end","nativeSrc":"19394:3:89","nodeType":"YulIdentifier","src":"19394:3:89"}]}]},"name":"abi_encode_array_struct_NFTInfo_dyn","nativeSrc":"18816:595:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18861:5:89","nodeType":"YulTypedName","src":"18861:5:89","type":""},{"name":"pos","nativeSrc":"18868:3:89","nodeType":"YulTypedName","src":"18868:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18876:3:89","nodeType":"YulTypedName","src":"18876:3:89","type":""}],"src":"18816:595:89"},{"body":{"nativeSrc":"19482:200:89","nodeType":"YulBlock","src":"19482:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"19499:3:89","nodeType":"YulIdentifier","src":"19499:3:89"},{"name":"length","nativeSrc":"19504:6:89","nodeType":"YulIdentifier","src":"19504:6:89"}],"functionName":{"name":"mstore","nativeSrc":"19492:6:89","nodeType":"YulIdentifier","src":"19492:6:89"},"nativeSrc":"19492:19:89","nodeType":"YulFunctionCall","src":"19492:19:89"},"nativeSrc":"19492:19:89","nodeType":"YulExpressionStatement","src":"19492:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19537:3:89","nodeType":"YulIdentifier","src":"19537:3:89"},{"kind":"number","nativeSrc":"19542:4:89","nodeType":"YulLiteral","src":"19542:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19533:3:89","nodeType":"YulIdentifier","src":"19533:3:89"},"nativeSrc":"19533:14:89","nodeType":"YulFunctionCall","src":"19533:14:89"},{"name":"start","nativeSrc":"19549:5:89","nodeType":"YulIdentifier","src":"19549:5:89"},{"name":"length","nativeSrc":"19556:6:89","nodeType":"YulIdentifier","src":"19556:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"19520:12:89","nodeType":"YulIdentifier","src":"19520:12:89"},"nativeSrc":"19520:43:89","nodeType":"YulFunctionCall","src":"19520:43:89"},"nativeSrc":"19520:43:89","nodeType":"YulExpressionStatement","src":"19520:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19587:3:89","nodeType":"YulIdentifier","src":"19587:3:89"},{"name":"length","nativeSrc":"19592:6:89","nodeType":"YulIdentifier","src":"19592:6:89"}],"functionName":{"name":"add","nativeSrc":"19583:3:89","nodeType":"YulIdentifier","src":"19583:3:89"},"nativeSrc":"19583:16:89","nodeType":"YulFunctionCall","src":"19583:16:89"},{"kind":"number","nativeSrc":"19601:4:89","nodeType":"YulLiteral","src":"19601:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19579:3:89","nodeType":"YulIdentifier","src":"19579:3:89"},"nativeSrc":"19579:27:89","nodeType":"YulFunctionCall","src":"19579:27:89"},{"kind":"number","nativeSrc":"19608:1:89","nodeType":"YulLiteral","src":"19608:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19572:6:89","nodeType":"YulIdentifier","src":"19572:6:89"},"nativeSrc":"19572:38:89","nodeType":"YulFunctionCall","src":"19572:38:89"},"nativeSrc":"19572:38:89","nodeType":"YulExpressionStatement","src":"19572:38:89"},{"nativeSrc":"19619:57:89","nodeType":"YulAssignment","src":"19619:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19634:3:89","nodeType":"YulIdentifier","src":"19634:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"19647:6:89","nodeType":"YulIdentifier","src":"19647:6:89"},{"kind":"number","nativeSrc":"19655:2:89","nodeType":"YulLiteral","src":"19655:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19643:3:89","nodeType":"YulIdentifier","src":"19643:3:89"},"nativeSrc":"19643:15:89","nodeType":"YulFunctionCall","src":"19643:15:89"},{"arguments":[{"kind":"number","nativeSrc":"19664:2:89","nodeType":"YulLiteral","src":"19664:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"19660:3:89","nodeType":"YulIdentifier","src":"19660:3:89"},"nativeSrc":"19660:7:89","nodeType":"YulFunctionCall","src":"19660:7:89"}],"functionName":{"name":"and","nativeSrc":"19639:3:89","nodeType":"YulIdentifier","src":"19639:3:89"},"nativeSrc":"19639:29:89","nodeType":"YulFunctionCall","src":"19639:29:89"}],"functionName":{"name":"add","nativeSrc":"19630:3:89","nodeType":"YulIdentifier","src":"19630:3:89"},"nativeSrc":"19630:39:89","nodeType":"YulFunctionCall","src":"19630:39:89"},{"kind":"number","nativeSrc":"19671:4:89","nodeType":"YulLiteral","src":"19671:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19626:3:89","nodeType":"YulIdentifier","src":"19626:3:89"},"nativeSrc":"19626:50:89","nodeType":"YulFunctionCall","src":"19626:50:89"},"variableNames":[{"name":"end","nativeSrc":"19619:3:89","nodeType":"YulIdentifier","src":"19619:3:89"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"19416:266:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"19451:5:89","nodeType":"YulTypedName","src":"19451:5:89","type":""},{"name":"length","nativeSrc":"19458:6:89","nodeType":"YulTypedName","src":"19458:6:89","type":""},{"name":"pos","nativeSrc":"19466:3:89","nodeType":"YulTypedName","src":"19466:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19474:3:89","nodeType":"YulTypedName","src":"19474:3:89","type":""}],"src":"19416:266:89"},{"body":{"nativeSrc":"19910:2744:89","nodeType":"YulBlock","src":"19910:2744:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19927:9:89","nodeType":"YulIdentifier","src":"19927:9:89"},{"kind":"number","nativeSrc":"19938:2:89","nodeType":"YulLiteral","src":"19938:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"19920:6:89","nodeType":"YulIdentifier","src":"19920:6:89"},"nativeSrc":"19920:21:89","nodeType":"YulFunctionCall","src":"19920:21:89"},"nativeSrc":"19920:21:89","nodeType":"YulExpressionStatement","src":"19920:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"19974:6:89","nodeType":"YulIdentifier","src":"19974:6:89"}],"functionName":{"name":"mload","nativeSrc":"19968:5:89","nodeType":"YulIdentifier","src":"19968:5:89"},"nativeSrc":"19968:13:89","nodeType":"YulFunctionCall","src":"19968:13:89"},{"arguments":[{"name":"headStart","nativeSrc":"19987:9:89","nodeType":"YulIdentifier","src":"19987:9:89"},{"kind":"number","nativeSrc":"19998:2:89","nodeType":"YulLiteral","src":"19998:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19983:3:89","nodeType":"YulIdentifier","src":"19983:3:89"},"nativeSrc":"19983:18:89","nodeType":"YulFunctionCall","src":"19983:18:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"19950:17:89","nodeType":"YulIdentifier","src":"19950:17:89"},"nativeSrc":"19950:52:89","nodeType":"YulFunctionCall","src":"19950:52:89"},"nativeSrc":"19950:52:89","nodeType":"YulExpressionStatement","src":"19950:52:89"},{"nativeSrc":"20011:44:89","nodeType":"YulVariableDeclaration","src":"20011:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20041:6:89","nodeType":"YulIdentifier","src":"20041:6:89"},{"kind":"number","nativeSrc":"20049:4:89","nodeType":"YulLiteral","src":"20049:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20037:3:89","nodeType":"YulIdentifier","src":"20037:3:89"},"nativeSrc":"20037:17:89","nodeType":"YulFunctionCall","src":"20037:17:89"}],"functionName":{"name":"mload","nativeSrc":"20031:5:89","nodeType":"YulIdentifier","src":"20031:5:89"},"nativeSrc":"20031:24:89","nodeType":"YulFunctionCall","src":"20031:24:89"},"variables":[{"name":"memberValue0","nativeSrc":"20015:12:89","nodeType":"YulTypedName","src":"20015:12:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"20082:12:89","nodeType":"YulIdentifier","src":"20082:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"20100:9:89","nodeType":"YulIdentifier","src":"20100:9:89"},{"kind":"number","nativeSrc":"20111:2:89","nodeType":"YulLiteral","src":"20111:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20096:3:89","nodeType":"YulIdentifier","src":"20096:3:89"},"nativeSrc":"20096:18:89","nodeType":"YulFunctionCall","src":"20096:18:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"20064:17:89","nodeType":"YulIdentifier","src":"20064:17:89"},"nativeSrc":"20064:51:89","nodeType":"YulFunctionCall","src":"20064:51:89"},"nativeSrc":"20064:51:89","nodeType":"YulExpressionStatement","src":"20064:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20135:9:89","nodeType":"YulIdentifier","src":"20135:9:89"},{"kind":"number","nativeSrc":"20146:3:89","nodeType":"YulLiteral","src":"20146:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20131:3:89","nodeType":"YulIdentifier","src":"20131:3:89"},"nativeSrc":"20131:19:89","nodeType":"YulFunctionCall","src":"20131:19:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20162:6:89","nodeType":"YulIdentifier","src":"20162:6:89"},{"kind":"number","nativeSrc":"20170:2:89","nodeType":"YulLiteral","src":"20170:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20158:3:89","nodeType":"YulIdentifier","src":"20158:3:89"},"nativeSrc":"20158:15:89","nodeType":"YulFunctionCall","src":"20158:15:89"}],"functionName":{"name":"mload","nativeSrc":"20152:5:89","nodeType":"YulIdentifier","src":"20152:5:89"},"nativeSrc":"20152:22:89","nodeType":"YulFunctionCall","src":"20152:22:89"}],"functionName":{"name":"mstore","nativeSrc":"20124:6:89","nodeType":"YulIdentifier","src":"20124:6:89"},"nativeSrc":"20124:51:89","nodeType":"YulFunctionCall","src":"20124:51:89"},"nativeSrc":"20124:51:89","nodeType":"YulExpressionStatement","src":"20124:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20195:9:89","nodeType":"YulIdentifier","src":"20195:9:89"},{"kind":"number","nativeSrc":"20206:3:89","nodeType":"YulLiteral","src":"20206:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"20191:3:89","nodeType":"YulIdentifier","src":"20191:3:89"},"nativeSrc":"20191:19:89","nodeType":"YulFunctionCall","src":"20191:19:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20222:6:89","nodeType":"YulIdentifier","src":"20222:6:89"},{"kind":"number","nativeSrc":"20230:2:89","nodeType":"YulLiteral","src":"20230:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20218:3:89","nodeType":"YulIdentifier","src":"20218:3:89"},"nativeSrc":"20218:15:89","nodeType":"YulFunctionCall","src":"20218:15:89"}],"functionName":{"name":"mload","nativeSrc":"20212:5:89","nodeType":"YulIdentifier","src":"20212:5:89"},"nativeSrc":"20212:22:89","nodeType":"YulFunctionCall","src":"20212:22:89"}],"functionName":{"name":"mstore","nativeSrc":"20184:6:89","nodeType":"YulIdentifier","src":"20184:6:89"},"nativeSrc":"20184:51:89","nodeType":"YulFunctionCall","src":"20184:51:89"},"nativeSrc":"20184:51:89","nodeType":"YulExpressionStatement","src":"20184:51:89"},{"nativeSrc":"20244:45:89","nodeType":"YulVariableDeclaration","src":"20244:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20276:6:89","nodeType":"YulIdentifier","src":"20276:6:89"},{"kind":"number","nativeSrc":"20284:3:89","nodeType":"YulLiteral","src":"20284:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20272:3:89","nodeType":"YulIdentifier","src":"20272:3:89"},"nativeSrc":"20272:16:89","nodeType":"YulFunctionCall","src":"20272:16:89"}],"functionName":{"name":"mload","nativeSrc":"20266:5:89","nodeType":"YulIdentifier","src":"20266:5:89"},"nativeSrc":"20266:23:89","nodeType":"YulFunctionCall","src":"20266:23:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"20248:14:89","nodeType":"YulTypedName","src":"20248:14:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"20317:14:89","nodeType":"YulIdentifier","src":"20317:14:89"},{"arguments":[{"name":"headStart","nativeSrc":"20337:9:89","nodeType":"YulIdentifier","src":"20337:9:89"},{"kind":"number","nativeSrc":"20348:3:89","nodeType":"YulLiteral","src":"20348:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"20333:3:89","nodeType":"YulIdentifier","src":"20333:3:89"},"nativeSrc":"20333:19:89","nodeType":"YulFunctionCall","src":"20333:19:89"}],"functionName":{"name":"abi_encode_address","nativeSrc":"20298:18:89","nodeType":"YulIdentifier","src":"20298:18:89"},"nativeSrc":"20298:55:89","nodeType":"YulFunctionCall","src":"20298:55:89"},"nativeSrc":"20298:55:89","nodeType":"YulExpressionStatement","src":"20298:55:89"},{"nativeSrc":"20362:45:89","nodeType":"YulVariableDeclaration","src":"20362:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20394:6:89","nodeType":"YulIdentifier","src":"20394:6:89"},{"kind":"number","nativeSrc":"20402:3:89","nodeType":"YulLiteral","src":"20402:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"20390:3:89","nodeType":"YulIdentifier","src":"20390:3:89"},"nativeSrc":"20390:16:89","nodeType":"YulFunctionCall","src":"20390:16:89"}],"functionName":{"name":"mload","nativeSrc":"20384:5:89","nodeType":"YulIdentifier","src":"20384:5:89"},"nativeSrc":"20384:23:89","nodeType":"YulFunctionCall","src":"20384:23:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"20366:14:89","nodeType":"YulTypedName","src":"20366:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20427:9:89","nodeType":"YulIdentifier","src":"20427:9:89"},{"kind":"number","nativeSrc":"20438:3:89","nodeType":"YulLiteral","src":"20438:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"20423:3:89","nodeType":"YulIdentifier","src":"20423:3:89"},"nativeSrc":"20423:19:89","nodeType":"YulFunctionCall","src":"20423:19:89"},{"kind":"number","nativeSrc":"20444:6:89","nodeType":"YulLiteral","src":"20444:6:89","type":"","value":"0x0220"}],"functionName":{"name":"mstore","nativeSrc":"20416:6:89","nodeType":"YulIdentifier","src":"20416:6:89"},"nativeSrc":"20416:35:89","nodeType":"YulFunctionCall","src":"20416:35:89"},"nativeSrc":"20416:35:89","nodeType":"YulExpressionStatement","src":"20416:35:89"},{"nativeSrc":"20460:68:89","nodeType":"YulVariableDeclaration","src":"20460:68:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"20492:14:89","nodeType":"YulIdentifier","src":"20492:14:89"},{"arguments":[{"name":"headStart","nativeSrc":"20512:9:89","nodeType":"YulIdentifier","src":"20512:9:89"},{"kind":"number","nativeSrc":"20523:3:89","nodeType":"YulLiteral","src":"20523:3:89","type":"","value":"608"}],"functionName":{"name":"add","nativeSrc":"20508:3:89","nodeType":"YulIdentifier","src":"20508:3:89"},"nativeSrc":"20508:19:89","nodeType":"YulFunctionCall","src":"20508:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"20474:17:89","nodeType":"YulIdentifier","src":"20474:17:89"},"nativeSrc":"20474:54:89","nodeType":"YulFunctionCall","src":"20474:54:89"},"variables":[{"name":"tail_1","nativeSrc":"20464:6:89","nodeType":"YulTypedName","src":"20464:6:89","type":""}]},{"nativeSrc":"20537:45:89","nodeType":"YulVariableDeclaration","src":"20537:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20569:6:89","nodeType":"YulIdentifier","src":"20569:6:89"},{"kind":"number","nativeSrc":"20577:3:89","nodeType":"YulLiteral","src":"20577:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"20565:3:89","nodeType":"YulIdentifier","src":"20565:3:89"},"nativeSrc":"20565:16:89","nodeType":"YulFunctionCall","src":"20565:16:89"}],"functionName":{"name":"mload","nativeSrc":"20559:5:89","nodeType":"YulIdentifier","src":"20559:5:89"},"nativeSrc":"20559:23:89","nodeType":"YulFunctionCall","src":"20559:23:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"20541:14:89","nodeType":"YulTypedName","src":"20541:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20602:9:89","nodeType":"YulIdentifier","src":"20602:9:89"},{"kind":"number","nativeSrc":"20613:3:89","nodeType":"YulLiteral","src":"20613:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"20598:3:89","nodeType":"YulIdentifier","src":"20598:3:89"},"nativeSrc":"20598:19:89","nodeType":"YulFunctionCall","src":"20598:19:89"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"20627:6:89","nodeType":"YulIdentifier","src":"20627:6:89"},{"name":"headStart","nativeSrc":"20635:9:89","nodeType":"YulIdentifier","src":"20635:9:89"}],"functionName":{"name":"sub","nativeSrc":"20623:3:89","nodeType":"YulIdentifier","src":"20623:3:89"},"nativeSrc":"20623:22:89","nodeType":"YulFunctionCall","src":"20623:22:89"},{"arguments":[{"kind":"number","nativeSrc":"20651:2:89","nodeType":"YulLiteral","src":"20651:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"20647:3:89","nodeType":"YulIdentifier","src":"20647:3:89"},"nativeSrc":"20647:7:89","nodeType":"YulFunctionCall","src":"20647:7:89"}],"functionName":{"name":"add","nativeSrc":"20619:3:89","nodeType":"YulIdentifier","src":"20619:3:89"},"nativeSrc":"20619:36:89","nodeType":"YulFunctionCall","src":"20619:36:89"}],"functionName":{"name":"mstore","nativeSrc":"20591:6:89","nodeType":"YulIdentifier","src":"20591:6:89"},"nativeSrc":"20591:65:89","nodeType":"YulFunctionCall","src":"20591:65:89"},"nativeSrc":"20591:65:89","nodeType":"YulExpressionStatement","src":"20591:65:89"},{"nativeSrc":"20665:55:89","nodeType":"YulVariableDeclaration","src":"20665:55:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"20697:14:89","nodeType":"YulIdentifier","src":"20697:14:89"},{"name":"tail_1","nativeSrc":"20713:6:89","nodeType":"YulIdentifier","src":"20713:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"20679:17:89","nodeType":"YulIdentifier","src":"20679:17:89"},"nativeSrc":"20679:41:89","nodeType":"YulFunctionCall","src":"20679:41:89"},"variables":[{"name":"tail_2","nativeSrc":"20669:6:89","nodeType":"YulTypedName","src":"20669:6:89","type":""}]},{"nativeSrc":"20729:45:89","nodeType":"YulVariableDeclaration","src":"20729:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20761:6:89","nodeType":"YulIdentifier","src":"20761:6:89"},{"kind":"number","nativeSrc":"20769:3:89","nodeType":"YulLiteral","src":"20769:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"20757:3:89","nodeType":"YulIdentifier","src":"20757:3:89"},"nativeSrc":"20757:16:89","nodeType":"YulFunctionCall","src":"20757:16:89"}],"functionName":{"name":"mload","nativeSrc":"20751:5:89","nodeType":"YulIdentifier","src":"20751:5:89"},"nativeSrc":"20751:23:89","nodeType":"YulFunctionCall","src":"20751:23:89"},"variables":[{"name":"memberValue0_4","nativeSrc":"20733:14:89","nodeType":"YulTypedName","src":"20733:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20794:9:89","nodeType":"YulIdentifier","src":"20794:9:89"},{"kind":"number","nativeSrc":"20805:3:89","nodeType":"YulLiteral","src":"20805:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"20790:3:89","nodeType":"YulIdentifier","src":"20790:3:89"},"nativeSrc":"20790:19:89","nodeType":"YulFunctionCall","src":"20790:19:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"20819:6:89","nodeType":"YulIdentifier","src":"20819:6:89"},{"name":"headStart","nativeSrc":"20827:9:89","nodeType":"YulIdentifier","src":"20827:9:89"}],"functionName":{"name":"sub","nativeSrc":"20815:3:89","nodeType":"YulIdentifier","src":"20815:3:89"},"nativeSrc":"20815:22:89","nodeType":"YulFunctionCall","src":"20815:22:89"},{"arguments":[{"kind":"number","nativeSrc":"20843:2:89","nodeType":"YulLiteral","src":"20843:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"20839:3:89","nodeType":"YulIdentifier","src":"20839:3:89"},"nativeSrc":"20839:7:89","nodeType":"YulFunctionCall","src":"20839:7:89"}],"functionName":{"name":"add","nativeSrc":"20811:3:89","nodeType":"YulIdentifier","src":"20811:3:89"},"nativeSrc":"20811:36:89","nodeType":"YulFunctionCall","src":"20811:36:89"}],"functionName":{"name":"mstore","nativeSrc":"20783:6:89","nodeType":"YulIdentifier","src":"20783:6:89"},"nativeSrc":"20783:65:89","nodeType":"YulFunctionCall","src":"20783:65:89"},"nativeSrc":"20783:65:89","nodeType":"YulExpressionStatement","src":"20783:65:89"},{"nativeSrc":"20857:55:89","nodeType":"YulVariableDeclaration","src":"20857:55:89","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"20889:14:89","nodeType":"YulIdentifier","src":"20889:14:89"},{"name":"tail_2","nativeSrc":"20905:6:89","nodeType":"YulIdentifier","src":"20905:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"20871:17:89","nodeType":"YulIdentifier","src":"20871:17:89"},"nativeSrc":"20871:41:89","nodeType":"YulFunctionCall","src":"20871:41:89"},"variables":[{"name":"tail_3","nativeSrc":"20861:6:89","nodeType":"YulTypedName","src":"20861:6:89","type":""}]},{"nativeSrc":"20921:45:89","nodeType":"YulVariableDeclaration","src":"20921:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20953:6:89","nodeType":"YulIdentifier","src":"20953:6:89"},{"kind":"number","nativeSrc":"20961:3:89","nodeType":"YulLiteral","src":"20961:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"20949:3:89","nodeType":"YulIdentifier","src":"20949:3:89"},"nativeSrc":"20949:16:89","nodeType":"YulFunctionCall","src":"20949:16:89"}],"functionName":{"name":"mload","nativeSrc":"20943:5:89","nodeType":"YulIdentifier","src":"20943:5:89"},"nativeSrc":"20943:23:89","nodeType":"YulFunctionCall","src":"20943:23:89"},"variables":[{"name":"memberValue0_5","nativeSrc":"20925:14:89","nodeType":"YulTypedName","src":"20925:14:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_5","nativeSrc":"21005:14:89","nodeType":"YulIdentifier","src":"21005:14:89"},{"arguments":[{"name":"headStart","nativeSrc":"21025:9:89","nodeType":"YulIdentifier","src":"21025:9:89"},{"kind":"number","nativeSrc":"21036:3:89","nodeType":"YulLiteral","src":"21036:3:89","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"21021:3:89","nodeType":"YulIdentifier","src":"21021:3:89"},"nativeSrc":"21021:19:89","nodeType":"YulFunctionCall","src":"21021:19:89"}],"functionName":{"name":"abi_encode_struct_TokenAmount","nativeSrc":"20975:29:89","nodeType":"YulIdentifier","src":"20975:29:89"},"nativeSrc":"20975:66:89","nodeType":"YulFunctionCall","src":"20975:66:89"},"nativeSrc":"20975:66:89","nodeType":"YulExpressionStatement","src":"20975:66:89"},{"nativeSrc":"21050:45:89","nodeType":"YulVariableDeclaration","src":"21050:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21082:6:89","nodeType":"YulIdentifier","src":"21082:6:89"},{"kind":"number","nativeSrc":"21090:3:89","nodeType":"YulLiteral","src":"21090:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"21078:3:89","nodeType":"YulIdentifier","src":"21078:3:89"},"nativeSrc":"21078:16:89","nodeType":"YulFunctionCall","src":"21078:16:89"}],"functionName":{"name":"mload","nativeSrc":"21072:5:89","nodeType":"YulIdentifier","src":"21072:5:89"},"nativeSrc":"21072:23:89","nodeType":"YulFunctionCall","src":"21072:23:89"},"variables":[{"name":"memberValue0_6","nativeSrc":"21054:14:89","nodeType":"YulTypedName","src":"21054:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21115:9:89","nodeType":"YulIdentifier","src":"21115:9:89"},{"kind":"number","nativeSrc":"21126:3:89","nodeType":"YulLiteral","src":"21126:3:89","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"21111:3:89","nodeType":"YulIdentifier","src":"21111:3:89"},"nativeSrc":"21111:19:89","nodeType":"YulFunctionCall","src":"21111:19:89"},{"arguments":[{"arguments":[{"name":"tail_3","nativeSrc":"21140:6:89","nodeType":"YulIdentifier","src":"21140:6:89"},{"name":"headStart","nativeSrc":"21148:9:89","nodeType":"YulIdentifier","src":"21148:9:89"}],"functionName":{"name":"sub","nativeSrc":"21136:3:89","nodeType":"YulIdentifier","src":"21136:3:89"},"nativeSrc":"21136:22:89","nodeType":"YulFunctionCall","src":"21136:22:89"},{"arguments":[{"kind":"number","nativeSrc":"21164:2:89","nodeType":"YulLiteral","src":"21164:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"21160:3:89","nodeType":"YulIdentifier","src":"21160:3:89"},"nativeSrc":"21160:7:89","nodeType":"YulFunctionCall","src":"21160:7:89"}],"functionName":{"name":"add","nativeSrc":"21132:3:89","nodeType":"YulIdentifier","src":"21132:3:89"},"nativeSrc":"21132:36:89","nodeType":"YulFunctionCall","src":"21132:36:89"}],"functionName":{"name":"mstore","nativeSrc":"21104:6:89","nodeType":"YulIdentifier","src":"21104:6:89"},"nativeSrc":"21104:65:89","nodeType":"YulFunctionCall","src":"21104:65:89"},"nativeSrc":"21104:65:89","nodeType":"YulExpressionStatement","src":"21104:65:89"},{"nativeSrc":"21178:66:89","nodeType":"YulVariableDeclaration","src":"21178:66:89","value":{"arguments":[{"name":"memberValue0_6","nativeSrc":"21221:14:89","nodeType":"YulIdentifier","src":"21221:14:89"},{"name":"tail_3","nativeSrc":"21237:6:89","nodeType":"YulIdentifier","src":"21237:6:89"}],"functionName":{"name":"abi_encode_array_address_dyn","nativeSrc":"21192:28:89","nodeType":"YulIdentifier","src":"21192:28:89"},"nativeSrc":"21192:52:89","nodeType":"YulFunctionCall","src":"21192:52:89"},"variables":[{"name":"tail_4","nativeSrc":"21182:6:89","nodeType":"YulTypedName","src":"21182:6:89","type":""}]},{"nativeSrc":"21253:45:89","nodeType":"YulVariableDeclaration","src":"21253:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21285:6:89","nodeType":"YulIdentifier","src":"21285:6:89"},{"kind":"number","nativeSrc":"21293:3:89","nodeType":"YulLiteral","src":"21293:3:89","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"21281:3:89","nodeType":"YulIdentifier","src":"21281:3:89"},"nativeSrc":"21281:16:89","nodeType":"YulFunctionCall","src":"21281:16:89"}],"functionName":{"name":"mload","nativeSrc":"21275:5:89","nodeType":"YulIdentifier","src":"21275:5:89"},"nativeSrc":"21275:23:89","nodeType":"YulFunctionCall","src":"21275:23:89"},"variables":[{"name":"memberValue0_7","nativeSrc":"21257:14:89","nodeType":"YulTypedName","src":"21257:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21318:9:89","nodeType":"YulIdentifier","src":"21318:9:89"},{"kind":"number","nativeSrc":"21329:3:89","nodeType":"YulLiteral","src":"21329:3:89","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"21314:3:89","nodeType":"YulIdentifier","src":"21314:3:89"},"nativeSrc":"21314:19:89","nodeType":"YulFunctionCall","src":"21314:19:89"},{"arguments":[{"arguments":[{"name":"tail_4","nativeSrc":"21343:6:89","nodeType":"YulIdentifier","src":"21343:6:89"},{"name":"headStart","nativeSrc":"21351:9:89","nodeType":"YulIdentifier","src":"21351:9:89"}],"functionName":{"name":"sub","nativeSrc":"21339:3:89","nodeType":"YulIdentifier","src":"21339:3:89"},"nativeSrc":"21339:22:89","nodeType":"YulFunctionCall","src":"21339:22:89"},{"arguments":[{"kind":"number","nativeSrc":"21367:2:89","nodeType":"YulLiteral","src":"21367:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"21363:3:89","nodeType":"YulIdentifier","src":"21363:3:89"},"nativeSrc":"21363:7:89","nodeType":"YulFunctionCall","src":"21363:7:89"}],"functionName":{"name":"add","nativeSrc":"21335:3:89","nodeType":"YulIdentifier","src":"21335:3:89"},"nativeSrc":"21335:36:89","nodeType":"YulFunctionCall","src":"21335:36:89"}],"functionName":{"name":"mstore","nativeSrc":"21307:6:89","nodeType":"YulIdentifier","src":"21307:6:89"},"nativeSrc":"21307:65:89","nodeType":"YulFunctionCall","src":"21307:65:89"},"nativeSrc":"21307:65:89","nodeType":"YulExpressionStatement","src":"21307:65:89"},{"nativeSrc":"21381:77:89","nodeType":"YulVariableDeclaration","src":"21381:77:89","value":{"arguments":[{"name":"memberValue0_7","nativeSrc":"21435:14:89","nodeType":"YulIdentifier","src":"21435:14:89"},{"name":"tail_4","nativeSrc":"21451:6:89","nodeType":"YulIdentifier","src":"21451:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"21395:39:89","nodeType":"YulIdentifier","src":"21395:39:89"},"nativeSrc":"21395:63:89","nodeType":"YulFunctionCall","src":"21395:63:89"},"variables":[{"name":"tail_5","nativeSrc":"21385:6:89","nodeType":"YulTypedName","src":"21385:6:89","type":""}]},{"nativeSrc":"21467:48:89","nodeType":"YulVariableDeclaration","src":"21467:48:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21499:6:89","nodeType":"YulIdentifier","src":"21499:6:89"},{"kind":"number","nativeSrc":"21507:6:89","nodeType":"YulLiteral","src":"21507:6:89","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"21495:3:89","nodeType":"YulIdentifier","src":"21495:3:89"},"nativeSrc":"21495:19:89","nodeType":"YulFunctionCall","src":"21495:19:89"}],"functionName":{"name":"mload","nativeSrc":"21489:5:89","nodeType":"YulIdentifier","src":"21489:5:89"},"nativeSrc":"21489:26:89","nodeType":"YulFunctionCall","src":"21489:26:89"},"variables":[{"name":"memberValue0_8","nativeSrc":"21471:14:89","nodeType":"YulTypedName","src":"21471:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21535:9:89","nodeType":"YulIdentifier","src":"21535:9:89"},{"kind":"number","nativeSrc":"21546:3:89","nodeType":"YulLiteral","src":"21546:3:89","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"21531:3:89","nodeType":"YulIdentifier","src":"21531:3:89"},"nativeSrc":"21531:19:89","nodeType":"YulFunctionCall","src":"21531:19:89"},{"arguments":[{"arguments":[{"name":"tail_5","nativeSrc":"21560:6:89","nodeType":"YulIdentifier","src":"21560:6:89"},{"name":"headStart","nativeSrc":"21568:9:89","nodeType":"YulIdentifier","src":"21568:9:89"}],"functionName":{"name":"sub","nativeSrc":"21556:3:89","nodeType":"YulIdentifier","src":"21556:3:89"},"nativeSrc":"21556:22:89","nodeType":"YulFunctionCall","src":"21556:22:89"},{"arguments":[{"kind":"number","nativeSrc":"21584:2:89","nodeType":"YulLiteral","src":"21584:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"21580:3:89","nodeType":"YulIdentifier","src":"21580:3:89"},"nativeSrc":"21580:7:89","nodeType":"YulFunctionCall","src":"21580:7:89"}],"functionName":{"name":"add","nativeSrc":"21552:3:89","nodeType":"YulIdentifier","src":"21552:3:89"},"nativeSrc":"21552:36:89","nodeType":"YulFunctionCall","src":"21552:36:89"}],"functionName":{"name":"mstore","nativeSrc":"21524:6:89","nodeType":"YulIdentifier","src":"21524:6:89"},"nativeSrc":"21524:65:89","nodeType":"YulFunctionCall","src":"21524:65:89"},"nativeSrc":"21524:65:89","nodeType":"YulExpressionStatement","src":"21524:65:89"},{"nativeSrc":"21598:77:89","nodeType":"YulVariableDeclaration","src":"21598:77:89","value":{"arguments":[{"name":"memberValue0_8","nativeSrc":"21652:14:89","nodeType":"YulIdentifier","src":"21652:14:89"},{"name":"tail_5","nativeSrc":"21668:6:89","nodeType":"YulIdentifier","src":"21668:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"21612:39:89","nodeType":"YulIdentifier","src":"21612:39:89"},"nativeSrc":"21612:63:89","nodeType":"YulFunctionCall","src":"21612:63:89"},"variables":[{"name":"tail_6","nativeSrc":"21602:6:89","nodeType":"YulTypedName","src":"21602:6:89","type":""}]},{"nativeSrc":"21684:45:89","nodeType":"YulVariableDeclaration","src":"21684:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21716:6:89","nodeType":"YulIdentifier","src":"21716:6:89"},{"kind":"number","nativeSrc":"21724:3:89","nodeType":"YulLiteral","src":"21724:3:89","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"21712:3:89","nodeType":"YulIdentifier","src":"21712:3:89"},"nativeSrc":"21712:16:89","nodeType":"YulFunctionCall","src":"21712:16:89"}],"functionName":{"name":"mload","nativeSrc":"21706:5:89","nodeType":"YulIdentifier","src":"21706:5:89"},"nativeSrc":"21706:23:89","nodeType":"YulFunctionCall","src":"21706:23:89"},"variables":[{"name":"memberValue0_9","nativeSrc":"21688:14:89","nodeType":"YulTypedName","src":"21688:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21749:9:89","nodeType":"YulIdentifier","src":"21749:9:89"},{"kind":"number","nativeSrc":"21760:3:89","nodeType":"YulLiteral","src":"21760:3:89","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"21745:3:89","nodeType":"YulIdentifier","src":"21745:3:89"},"nativeSrc":"21745:19:89","nodeType":"YulFunctionCall","src":"21745:19:89"},{"arguments":[{"arguments":[{"name":"tail_6","nativeSrc":"21774:6:89","nodeType":"YulIdentifier","src":"21774:6:89"},{"name":"headStart","nativeSrc":"21782:9:89","nodeType":"YulIdentifier","src":"21782:9:89"}],"functionName":{"name":"sub","nativeSrc":"21770:3:89","nodeType":"YulIdentifier","src":"21770:3:89"},"nativeSrc":"21770:22:89","nodeType":"YulFunctionCall","src":"21770:22:89"},{"arguments":[{"kind":"number","nativeSrc":"21798:2:89","nodeType":"YulLiteral","src":"21798:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"21794:3:89","nodeType":"YulIdentifier","src":"21794:3:89"},"nativeSrc":"21794:7:89","nodeType":"YulFunctionCall","src":"21794:7:89"}],"functionName":{"name":"add","nativeSrc":"21766:3:89","nodeType":"YulIdentifier","src":"21766:3:89"},"nativeSrc":"21766:36:89","nodeType":"YulFunctionCall","src":"21766:36:89"}],"functionName":{"name":"mstore","nativeSrc":"21738:6:89","nodeType":"YulIdentifier","src":"21738:6:89"},"nativeSrc":"21738:65:89","nodeType":"YulFunctionCall","src":"21738:65:89"},"nativeSrc":"21738:65:89","nodeType":"YulExpressionStatement","src":"21738:65:89"},{"nativeSrc":"21812:75:89","nodeType":"YulVariableDeclaration","src":"21812:75:89","value":{"arguments":[{"name":"memberValue0_9","nativeSrc":"21864:14:89","nodeType":"YulIdentifier","src":"21864:14:89"},{"name":"tail_6","nativeSrc":"21880:6:89","nodeType":"YulIdentifier","src":"21880:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenInfo_dyn","nativeSrc":"21826:37:89","nodeType":"YulIdentifier","src":"21826:37:89"},"nativeSrc":"21826:61:89","nodeType":"YulFunctionCall","src":"21826:61:89"},"variables":[{"name":"tail_7","nativeSrc":"21816:6:89","nodeType":"YulTypedName","src":"21816:6:89","type":""}]},{"nativeSrc":"21896:46:89","nodeType":"YulVariableDeclaration","src":"21896:46:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21929:6:89","nodeType":"YulIdentifier","src":"21929:6:89"},{"kind":"number","nativeSrc":"21937:3:89","nodeType":"YulLiteral","src":"21937:3:89","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"21925:3:89","nodeType":"YulIdentifier","src":"21925:3:89"},"nativeSrc":"21925:16:89","nodeType":"YulFunctionCall","src":"21925:16:89"}],"functionName":{"name":"mload","nativeSrc":"21919:5:89","nodeType":"YulIdentifier","src":"21919:5:89"},"nativeSrc":"21919:23:89","nodeType":"YulFunctionCall","src":"21919:23:89"},"variables":[{"name":"memberValue0_10","nativeSrc":"21900:15:89","nodeType":"YulTypedName","src":"21900:15:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21962:9:89","nodeType":"YulIdentifier","src":"21962:9:89"},{"kind":"number","nativeSrc":"21973:3:89","nodeType":"YulLiteral","src":"21973:3:89","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"21958:3:89","nodeType":"YulIdentifier","src":"21958:3:89"},"nativeSrc":"21958:19:89","nodeType":"YulFunctionCall","src":"21958:19:89"},{"arguments":[{"arguments":[{"name":"tail_7","nativeSrc":"21987:6:89","nodeType":"YulIdentifier","src":"21987:6:89"},{"name":"headStart","nativeSrc":"21995:9:89","nodeType":"YulIdentifier","src":"21995:9:89"}],"functionName":{"name":"sub","nativeSrc":"21983:3:89","nodeType":"YulIdentifier","src":"21983:3:89"},"nativeSrc":"21983:22:89","nodeType":"YulFunctionCall","src":"21983:22:89"},{"arguments":[{"kind":"number","nativeSrc":"22011:2:89","nodeType":"YulLiteral","src":"22011:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"22007:3:89","nodeType":"YulIdentifier","src":"22007:3:89"},"nativeSrc":"22007:7:89","nodeType":"YulFunctionCall","src":"22007:7:89"}],"functionName":{"name":"add","nativeSrc":"21979:3:89","nodeType":"YulIdentifier","src":"21979:3:89"},"nativeSrc":"21979:36:89","nodeType":"YulFunctionCall","src":"21979:36:89"}],"functionName":{"name":"mstore","nativeSrc":"21951:6:89","nodeType":"YulIdentifier","src":"21951:6:89"},"nativeSrc":"21951:65:89","nodeType":"YulFunctionCall","src":"21951:65:89"},"nativeSrc":"21951:65:89","nodeType":"YulExpressionStatement","src":"21951:65:89"},{"nativeSrc":"22025:76:89","nodeType":"YulVariableDeclaration","src":"22025:76:89","value":{"arguments":[{"name":"memberValue0_10","nativeSrc":"22077:15:89","nodeType":"YulIdentifier","src":"22077:15:89"},{"name":"tail_7","nativeSrc":"22094:6:89","nodeType":"YulIdentifier","src":"22094:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"22039:37:89","nodeType":"YulIdentifier","src":"22039:37:89"},"nativeSrc":"22039:62:89","nodeType":"YulFunctionCall","src":"22039:62:89"},"variables":[{"name":"tail_8","nativeSrc":"22029:6:89","nodeType":"YulTypedName","src":"22029:6:89","type":""}]},{"nativeSrc":"22110:46:89","nodeType":"YulVariableDeclaration","src":"22110:46:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"22143:6:89","nodeType":"YulIdentifier","src":"22143:6:89"},{"kind":"number","nativeSrc":"22151:3:89","nodeType":"YulLiteral","src":"22151:3:89","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"22139:3:89","nodeType":"YulIdentifier","src":"22139:3:89"},"nativeSrc":"22139:16:89","nodeType":"YulFunctionCall","src":"22139:16:89"}],"functionName":{"name":"mload","nativeSrc":"22133:5:89","nodeType":"YulIdentifier","src":"22133:5:89"},"nativeSrc":"22133:23:89","nodeType":"YulFunctionCall","src":"22133:23:89"},"variables":[{"name":"memberValue0_11","nativeSrc":"22114:15:89","nodeType":"YulTypedName","src":"22114:15:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22176:9:89","nodeType":"YulIdentifier","src":"22176:9:89"},{"kind":"number","nativeSrc":"22187:6:89","nodeType":"YulLiteral","src":"22187:6:89","type":"","value":"0x0220"}],"functionName":{"name":"add","nativeSrc":"22172:3:89","nodeType":"YulIdentifier","src":"22172:3:89"},"nativeSrc":"22172:22:89","nodeType":"YulFunctionCall","src":"22172:22:89"},{"arguments":[{"arguments":[{"name":"tail_8","nativeSrc":"22204:6:89","nodeType":"YulIdentifier","src":"22204:6:89"},{"name":"headStart","nativeSrc":"22212:9:89","nodeType":"YulIdentifier","src":"22212:9:89"}],"functionName":{"name":"sub","nativeSrc":"22200:3:89","nodeType":"YulIdentifier","src":"22200:3:89"},"nativeSrc":"22200:22:89","nodeType":"YulFunctionCall","src":"22200:22:89"},{"arguments":[{"kind":"number","nativeSrc":"22228:2:89","nodeType":"YulLiteral","src":"22228:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"22224:3:89","nodeType":"YulIdentifier","src":"22224:3:89"},"nativeSrc":"22224:7:89","nodeType":"YulFunctionCall","src":"22224:7:89"}],"functionName":{"name":"add","nativeSrc":"22196:3:89","nodeType":"YulIdentifier","src":"22196:3:89"},"nativeSrc":"22196:36:89","nodeType":"YulFunctionCall","src":"22196:36:89"}],"functionName":{"name":"mstore","nativeSrc":"22165:6:89","nodeType":"YulIdentifier","src":"22165:6:89"},"nativeSrc":"22165:68:89","nodeType":"YulFunctionCall","src":"22165:68:89"},"nativeSrc":"22165:68:89","nodeType":"YulExpressionStatement","src":"22165:68:89"},{"nativeSrc":"22242:76:89","nodeType":"YulVariableDeclaration","src":"22242:76:89","value":{"arguments":[{"name":"memberValue0_11","nativeSrc":"22294:15:89","nodeType":"YulIdentifier","src":"22294:15:89"},{"name":"tail_8","nativeSrc":"22311:6:89","nodeType":"YulIdentifier","src":"22311:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"22256:37:89","nodeType":"YulIdentifier","src":"22256:37:89"},"nativeSrc":"22256:62:89","nodeType":"YulFunctionCall","src":"22256:62:89"},"variables":[{"name":"tail_9","nativeSrc":"22246:6:89","nodeType":"YulTypedName","src":"22246:6:89","type":""}]},{"nativeSrc":"22327:46:89","nodeType":"YulVariableDeclaration","src":"22327:46:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"22360:6:89","nodeType":"YulIdentifier","src":"22360:6:89"},{"kind":"number","nativeSrc":"22368:3:89","nodeType":"YulLiteral","src":"22368:3:89","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"22356:3:89","nodeType":"YulIdentifier","src":"22356:3:89"},"nativeSrc":"22356:16:89","nodeType":"YulFunctionCall","src":"22356:16:89"}],"functionName":{"name":"mload","nativeSrc":"22350:5:89","nodeType":"YulIdentifier","src":"22350:5:89"},"nativeSrc":"22350:23:89","nodeType":"YulFunctionCall","src":"22350:23:89"},"variables":[{"name":"memberValue0_12","nativeSrc":"22331:15:89","nodeType":"YulTypedName","src":"22331:15:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22393:9:89","nodeType":"YulIdentifier","src":"22393:9:89"},{"kind":"number","nativeSrc":"22404:3:89","nodeType":"YulLiteral","src":"22404:3:89","type":"","value":"576"}],"functionName":{"name":"add","nativeSrc":"22389:3:89","nodeType":"YulIdentifier","src":"22389:3:89"},"nativeSrc":"22389:19:89","nodeType":"YulFunctionCall","src":"22389:19:89"},{"arguments":[{"arguments":[{"name":"tail_9","nativeSrc":"22418:6:89","nodeType":"YulIdentifier","src":"22418:6:89"},{"name":"headStart","nativeSrc":"22426:9:89","nodeType":"YulIdentifier","src":"22426:9:89"}],"functionName":{"name":"sub","nativeSrc":"22414:3:89","nodeType":"YulIdentifier","src":"22414:3:89"},"nativeSrc":"22414:22:89","nodeType":"YulFunctionCall","src":"22414:22:89"},{"arguments":[{"kind":"number","nativeSrc":"22442:2:89","nodeType":"YulLiteral","src":"22442:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"22438:3:89","nodeType":"YulIdentifier","src":"22438:3:89"},"nativeSrc":"22438:7:89","nodeType":"YulFunctionCall","src":"22438:7:89"}],"functionName":{"name":"add","nativeSrc":"22410:3:89","nodeType":"YulIdentifier","src":"22410:3:89"},"nativeSrc":"22410:36:89","nodeType":"YulFunctionCall","src":"22410:36:89"}],"functionName":{"name":"mstore","nativeSrc":"22382:6:89","nodeType":"YulIdentifier","src":"22382:6:89"},"nativeSrc":"22382:65:89","nodeType":"YulFunctionCall","src":"22382:65:89"},"nativeSrc":"22382:65:89","nodeType":"YulExpressionStatement","src":"22382:65:89"},{"nativeSrc":"22456:71:89","nodeType":"YulVariableDeclaration","src":"22456:71:89","value":{"arguments":[{"name":"memberValue0_12","nativeSrc":"22503:15:89","nodeType":"YulIdentifier","src":"22503:15:89"},{"name":"tail_9","nativeSrc":"22520:6:89","nodeType":"YulIdentifier","src":"22520:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTInfo_dyn","nativeSrc":"22467:35:89","nodeType":"YulIdentifier","src":"22467:35:89"},"nativeSrc":"22467:60:89","nodeType":"YulFunctionCall","src":"22467:60:89"},"variables":[{"name":"end","nativeSrc":"22460:3:89","nodeType":"YulTypedName","src":"22460:3:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22547:9:89","nodeType":"YulIdentifier","src":"22547:9:89"},{"kind":"number","nativeSrc":"22558:4:89","nodeType":"YulLiteral","src":"22558:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22543:3:89","nodeType":"YulIdentifier","src":"22543:3:89"},"nativeSrc":"22543:20:89","nodeType":"YulFunctionCall","src":"22543:20:89"},{"arguments":[{"name":"end","nativeSrc":"22569:3:89","nodeType":"YulIdentifier","src":"22569:3:89"},{"name":"headStart","nativeSrc":"22574:9:89","nodeType":"YulIdentifier","src":"22574:9:89"}],"functionName":{"name":"sub","nativeSrc":"22565:3:89","nodeType":"YulIdentifier","src":"22565:3:89"},"nativeSrc":"22565:19:89","nodeType":"YulFunctionCall","src":"22565:19:89"}],"functionName":{"name":"mstore","nativeSrc":"22536:6:89","nodeType":"YulIdentifier","src":"22536:6:89"},"nativeSrc":"22536:49:89","nodeType":"YulFunctionCall","src":"22536:49:89"},"nativeSrc":"22536:49:89","nodeType":"YulExpressionStatement","src":"22536:49:89"},{"nativeSrc":"22594:54:89","nodeType":"YulAssignment","src":"22594:54:89","value":{"arguments":[{"name":"value1","nativeSrc":"22628:6:89","nodeType":"YulIdentifier","src":"22628:6:89"},{"name":"value2","nativeSrc":"22636:6:89","nodeType":"YulIdentifier","src":"22636:6:89"},{"name":"end","nativeSrc":"22644:3:89","nodeType":"YulIdentifier","src":"22644:3:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"22602:25:89","nodeType":"YulIdentifier","src":"22602:25:89"},"nativeSrc":"22602:46:89","nodeType":"YulFunctionCall","src":"22602:46:89"},"variableNames":[{"name":"tail","nativeSrc":"22594:4:89","nodeType":"YulIdentifier","src":"22594:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_UnionInMessage_$18197_memory_ptr_t_bytes_calldata_ptr__to_t_struct$_UnionInMessage_$18197_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"19687:2967:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19863:9:89","nodeType":"YulTypedName","src":"19863:9:89","type":""},{"name":"value2","nativeSrc":"19874:6:89","nodeType":"YulTypedName","src":"19874:6:89","type":""},{"name":"value1","nativeSrc":"19882:6:89","nodeType":"YulTypedName","src":"19882:6:89","type":""},{"name":"value0","nativeSrc":"19890:6:89","nodeType":"YulTypedName","src":"19890:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19901:4:89","nodeType":"YulTypedName","src":"19901:4:89","type":""}],"src":"19687:2967:89"},{"body":{"nativeSrc":"22796:150:89","nodeType":"YulBlock","src":"22796:150:89","statements":[{"nativeSrc":"22806:27:89","nodeType":"YulVariableDeclaration","src":"22806:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"22826:6:89","nodeType":"YulIdentifier","src":"22826:6:89"}],"functionName":{"name":"mload","nativeSrc":"22820:5:89","nodeType":"YulIdentifier","src":"22820:5:89"},"nativeSrc":"22820:13:89","nodeType":"YulFunctionCall","src":"22820:13:89"},"variables":[{"name":"length","nativeSrc":"22810:6:89","nodeType":"YulTypedName","src":"22810:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"22881:6:89","nodeType":"YulIdentifier","src":"22881:6:89"},{"kind":"number","nativeSrc":"22889:4:89","nodeType":"YulLiteral","src":"22889:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22877:3:89","nodeType":"YulIdentifier","src":"22877:3:89"},"nativeSrc":"22877:17:89","nodeType":"YulFunctionCall","src":"22877:17:89"},{"name":"pos","nativeSrc":"22896:3:89","nodeType":"YulIdentifier","src":"22896:3:89"},{"name":"length","nativeSrc":"22901:6:89","nodeType":"YulIdentifier","src":"22901:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"22842:34:89","nodeType":"YulIdentifier","src":"22842:34:89"},"nativeSrc":"22842:66:89","nodeType":"YulFunctionCall","src":"22842:66:89"},"nativeSrc":"22842:66:89","nodeType":"YulExpressionStatement","src":"22842:66:89"},{"nativeSrc":"22917:23:89","nodeType":"YulAssignment","src":"22917:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"22928:3:89","nodeType":"YulIdentifier","src":"22928:3:89"},{"name":"length","nativeSrc":"22933:6:89","nodeType":"YulIdentifier","src":"22933:6:89"}],"functionName":{"name":"add","nativeSrc":"22924:3:89","nodeType":"YulIdentifier","src":"22924:3:89"},"nativeSrc":"22924:16:89","nodeType":"YulFunctionCall","src":"22924:16:89"},"variableNames":[{"name":"end","nativeSrc":"22917:3:89","nodeType":"YulIdentifier","src":"22917:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"22659:287:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"22772:3:89","nodeType":"YulTypedName","src":"22772:3:89","type":""},{"name":"value0","nativeSrc":"22777:6:89","nodeType":"YulTypedName","src":"22777:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"22788:3:89","nodeType":"YulTypedName","src":"22788:3:89","type":""}],"src":"22659:287:89"},{"body":{"nativeSrc":"23036:235:89","nodeType":"YulBlock","src":"23036:235:89","statements":[{"nativeSrc":"23046:61:89","nodeType":"YulAssignment","src":"23046:61:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"23099:6:89","nodeType":"YulIdentifier","src":"23099:6:89"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"23071:27:89","nodeType":"YulIdentifier","src":"23071:27:89"},"nativeSrc":"23071:35:89","nodeType":"YulFunctionCall","src":"23071:35:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"23055:15:89","nodeType":"YulIdentifier","src":"23055:15:89"},"nativeSrc":"23055:52:89","nodeType":"YulFunctionCall","src":"23055:52:89"},"variableNames":[{"name":"array","nativeSrc":"23046:5:89","nodeType":"YulIdentifier","src":"23046:5:89"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"23123:5:89","nodeType":"YulIdentifier","src":"23123:5:89"},{"name":"length","nativeSrc":"23130:6:89","nodeType":"YulIdentifier","src":"23130:6:89"}],"functionName":{"name":"mstore","nativeSrc":"23116:6:89","nodeType":"YulIdentifier","src":"23116:6:89"},"nativeSrc":"23116:21:89","nodeType":"YulFunctionCall","src":"23116:21:89"},"nativeSrc":"23116:21:89","nodeType":"YulExpressionStatement","src":"23116:21:89"},{"body":{"nativeSrc":"23175:16:89","nodeType":"YulBlock","src":"23175:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23184:1:89","nodeType":"YulLiteral","src":"23184:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"23187:1:89","nodeType":"YulLiteral","src":"23187:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23177:6:89","nodeType":"YulIdentifier","src":"23177:6:89"},"nativeSrc":"23177:12:89","nodeType":"YulFunctionCall","src":"23177:12:89"},"nativeSrc":"23177:12:89","nodeType":"YulExpressionStatement","src":"23177:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23156:3:89","nodeType":"YulIdentifier","src":"23156:3:89"},{"name":"length","nativeSrc":"23161:6:89","nodeType":"YulIdentifier","src":"23161:6:89"}],"functionName":{"name":"add","nativeSrc":"23152:3:89","nodeType":"YulIdentifier","src":"23152:3:89"},"nativeSrc":"23152:16:89","nodeType":"YulFunctionCall","src":"23152:16:89"},{"name":"end","nativeSrc":"23170:3:89","nodeType":"YulIdentifier","src":"23170:3:89"}],"functionName":{"name":"gt","nativeSrc":"23149:2:89","nodeType":"YulIdentifier","src":"23149:2:89"},"nativeSrc":"23149:25:89","nodeType":"YulFunctionCall","src":"23149:25:89"},"nativeSrc":"23146:45:89","nodeType":"YulIf","src":"23146:45:89"},{"expression":{"arguments":[{"name":"src","nativeSrc":"23235:3:89","nodeType":"YulIdentifier","src":"23235:3:89"},{"arguments":[{"name":"array","nativeSrc":"23244:5:89","nodeType":"YulIdentifier","src":"23244:5:89"},{"kind":"number","nativeSrc":"23251:4:89","nodeType":"YulLiteral","src":"23251:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23240:3:89","nodeType":"YulIdentifier","src":"23240:3:89"},"nativeSrc":"23240:16:89","nodeType":"YulFunctionCall","src":"23240:16:89"},{"name":"length","nativeSrc":"23258:6:89","nodeType":"YulIdentifier","src":"23258:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"23200:34:89","nodeType":"YulIdentifier","src":"23200:34:89"},"nativeSrc":"23200:65:89","nodeType":"YulFunctionCall","src":"23200:65:89"},"nativeSrc":"23200:65:89","nodeType":"YulExpressionStatement","src":"23200:65:89"}]},"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"22951:320:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"23005:3:89","nodeType":"YulTypedName","src":"23005:3:89","type":""},{"name":"length","nativeSrc":"23010:6:89","nodeType":"YulTypedName","src":"23010:6:89","type":""},{"name":"end","nativeSrc":"23018:3:89","nodeType":"YulTypedName","src":"23018:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"23026:5:89","nodeType":"YulTypedName","src":"23026:5:89","type":""}],"src":"22951:320:89"},{"body":{"nativeSrc":"23380:475:89","nodeType":"YulBlock","src":"23380:475:89","statements":[{"body":{"nativeSrc":"23426:16:89","nodeType":"YulBlock","src":"23426:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23435:1:89","nodeType":"YulLiteral","src":"23435:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"23438:1:89","nodeType":"YulLiteral","src":"23438:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23428:6:89","nodeType":"YulIdentifier","src":"23428:6:89"},"nativeSrc":"23428:12:89","nodeType":"YulFunctionCall","src":"23428:12:89"},"nativeSrc":"23428:12:89","nodeType":"YulExpressionStatement","src":"23428:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23401:7:89","nodeType":"YulIdentifier","src":"23401:7:89"},{"name":"headStart","nativeSrc":"23410:9:89","nodeType":"YulIdentifier","src":"23410:9:89"}],"functionName":{"name":"sub","nativeSrc":"23397:3:89","nodeType":"YulIdentifier","src":"23397:3:89"},"nativeSrc":"23397:23:89","nodeType":"YulFunctionCall","src":"23397:23:89"},{"kind":"number","nativeSrc":"23422:2:89","nodeType":"YulLiteral","src":"23422:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"23393:3:89","nodeType":"YulIdentifier","src":"23393:3:89"},"nativeSrc":"23393:32:89","nodeType":"YulFunctionCall","src":"23393:32:89"},"nativeSrc":"23390:52:89","nodeType":"YulIf","src":"23390:52:89"},{"nativeSrc":"23451:29:89","nodeType":"YulVariableDeclaration","src":"23451:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"23470:9:89","nodeType":"YulIdentifier","src":"23470:9:89"}],"functionName":{"name":"mload","nativeSrc":"23464:5:89","nodeType":"YulIdentifier","src":"23464:5:89"},"nativeSrc":"23464:16:89","nodeType":"YulFunctionCall","src":"23464:16:89"},"variables":[{"name":"value","nativeSrc":"23455:5:89","nodeType":"YulTypedName","src":"23455:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"23511:5:89","nodeType":"YulIdentifier","src":"23511:5:89"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"23489:21:89","nodeType":"YulIdentifier","src":"23489:21:89"},"nativeSrc":"23489:28:89","nodeType":"YulFunctionCall","src":"23489:28:89"},"nativeSrc":"23489:28:89","nodeType":"YulExpressionStatement","src":"23489:28:89"},{"nativeSrc":"23526:15:89","nodeType":"YulAssignment","src":"23526:15:89","value":{"name":"value","nativeSrc":"23536:5:89","nodeType":"YulIdentifier","src":"23536:5:89"},"variableNames":[{"name":"value0","nativeSrc":"23526:6:89","nodeType":"YulIdentifier","src":"23526:6:89"}]},{"nativeSrc":"23550:39:89","nodeType":"YulVariableDeclaration","src":"23550:39:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23574:9:89","nodeType":"YulIdentifier","src":"23574:9:89"},{"kind":"number","nativeSrc":"23585:2:89","nodeType":"YulLiteral","src":"23585:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23570:3:89","nodeType":"YulIdentifier","src":"23570:3:89"},"nativeSrc":"23570:18:89","nodeType":"YulFunctionCall","src":"23570:18:89"}],"functionName":{"name":"mload","nativeSrc":"23564:5:89","nodeType":"YulIdentifier","src":"23564:5:89"},"nativeSrc":"23564:25:89","nodeType":"YulFunctionCall","src":"23564:25:89"},"variables":[{"name":"offset","nativeSrc":"23554:6:89","nodeType":"YulTypedName","src":"23554:6:89","type":""}]},{"body":{"nativeSrc":"23632:16:89","nodeType":"YulBlock","src":"23632:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23641:1:89","nodeType":"YulLiteral","src":"23641:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"23644:1:89","nodeType":"YulLiteral","src":"23644:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23634:6:89","nodeType":"YulIdentifier","src":"23634:6:89"},"nativeSrc":"23634:12:89","nodeType":"YulFunctionCall","src":"23634:12:89"},"nativeSrc":"23634:12:89","nodeType":"YulExpressionStatement","src":"23634:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"23604:6:89","nodeType":"YulIdentifier","src":"23604:6:89"},{"kind":"number","nativeSrc":"23612:18:89","nodeType":"YulLiteral","src":"23612:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23601:2:89","nodeType":"YulIdentifier","src":"23601:2:89"},"nativeSrc":"23601:30:89","nodeType":"YulFunctionCall","src":"23601:30:89"},"nativeSrc":"23598:50:89","nodeType":"YulIf","src":"23598:50:89"},{"nativeSrc":"23657:32:89","nodeType":"YulVariableDeclaration","src":"23657:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"23671:9:89","nodeType":"YulIdentifier","src":"23671:9:89"},{"name":"offset","nativeSrc":"23682:6:89","nodeType":"YulIdentifier","src":"23682:6:89"}],"functionName":{"name":"add","nativeSrc":"23667:3:89","nodeType":"YulIdentifier","src":"23667:3:89"},"nativeSrc":"23667:22:89","nodeType":"YulFunctionCall","src":"23667:22:89"},"variables":[{"name":"_1","nativeSrc":"23661:2:89","nodeType":"YulTypedName","src":"23661:2:89","type":""}]},{"body":{"nativeSrc":"23737:16:89","nodeType":"YulBlock","src":"23737:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23746:1:89","nodeType":"YulLiteral","src":"23746:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"23749:1:89","nodeType":"YulLiteral","src":"23749:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23739:6:89","nodeType":"YulIdentifier","src":"23739:6:89"},"nativeSrc":"23739:12:89","nodeType":"YulFunctionCall","src":"23739:12:89"},"nativeSrc":"23739:12:89","nodeType":"YulExpressionStatement","src":"23739:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"23716:2:89","nodeType":"YulIdentifier","src":"23716:2:89"},{"kind":"number","nativeSrc":"23720:4:89","nodeType":"YulLiteral","src":"23720:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"23712:3:89","nodeType":"YulIdentifier","src":"23712:3:89"},"nativeSrc":"23712:13:89","nodeType":"YulFunctionCall","src":"23712:13:89"},{"name":"dataEnd","nativeSrc":"23727:7:89","nodeType":"YulIdentifier","src":"23727:7:89"}],"functionName":{"name":"slt","nativeSrc":"23708:3:89","nodeType":"YulIdentifier","src":"23708:3:89"},"nativeSrc":"23708:27:89","nodeType":"YulFunctionCall","src":"23708:27:89"}],"functionName":{"name":"iszero","nativeSrc":"23701:6:89","nodeType":"YulIdentifier","src":"23701:6:89"},"nativeSrc":"23701:35:89","nodeType":"YulFunctionCall","src":"23701:35:89"},"nativeSrc":"23698:55:89","nodeType":"YulIf","src":"23698:55:89"},{"nativeSrc":"23762:87:89","nodeType":"YulAssignment","src":"23762:87:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"23821:2:89","nodeType":"YulIdentifier","src":"23821:2:89"},{"kind":"number","nativeSrc":"23825:2:89","nodeType":"YulLiteral","src":"23825:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23817:3:89","nodeType":"YulIdentifier","src":"23817:3:89"},"nativeSrc":"23817:11:89","nodeType":"YulFunctionCall","src":"23817:11:89"},{"arguments":[{"name":"_1","nativeSrc":"23836:2:89","nodeType":"YulIdentifier","src":"23836:2:89"}],"functionName":{"name":"mload","nativeSrc":"23830:5:89","nodeType":"YulIdentifier","src":"23830:5:89"},"nativeSrc":"23830:9:89","nodeType":"YulFunctionCall","src":"23830:9:89"},{"name":"dataEnd","nativeSrc":"23841:7:89","nodeType":"YulIdentifier","src":"23841:7:89"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"23772:44:89","nodeType":"YulIdentifier","src":"23772:44:89"},"nativeSrc":"23772:77:89","nodeType":"YulFunctionCall","src":"23772:77:89"},"variableNames":[{"name":"value1","nativeSrc":"23762:6:89","nodeType":"YulIdentifier","src":"23762:6:89"}]}]},"name":"abi_decode_tuple_t_boolt_bytes_memory_ptr_fromMemory","nativeSrc":"23276:579:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23338:9:89","nodeType":"YulTypedName","src":"23338:9:89","type":""},{"name":"dataEnd","nativeSrc":"23349:7:89","nodeType":"YulTypedName","src":"23349:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23361:6:89","nodeType":"YulTypedName","src":"23361:6:89","type":""},{"name":"value1","nativeSrc":"23369:6:89","nodeType":"YulTypedName","src":"23369:6:89","type":""}],"src":"23276:579:89"},{"body":{"nativeSrc":"23959:114:89","nodeType":"YulBlock","src":"23959:114:89","statements":[{"body":{"nativeSrc":"24003:22:89","nodeType":"YulBlock","src":"24003:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"24005:16:89","nodeType":"YulIdentifier","src":"24005:16:89"},"nativeSrc":"24005:18:89","nodeType":"YulFunctionCall","src":"24005:18:89"},"nativeSrc":"24005:18:89","nodeType":"YulExpressionStatement","src":"24005:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"23975:6:89","nodeType":"YulIdentifier","src":"23975:6:89"},{"kind":"number","nativeSrc":"23983:18:89","nodeType":"YulLiteral","src":"23983:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23972:2:89","nodeType":"YulIdentifier","src":"23972:2:89"},"nativeSrc":"23972:30:89","nodeType":"YulFunctionCall","src":"23972:30:89"},"nativeSrc":"23969:56:89","nodeType":"YulIf","src":"23969:56:89"},{"nativeSrc":"24034:33:89","nodeType":"YulAssignment","src":"24034:33:89","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24050:1:89","nodeType":"YulLiteral","src":"24050:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"24053:6:89","nodeType":"YulIdentifier","src":"24053:6:89"}],"functionName":{"name":"shl","nativeSrc":"24046:3:89","nodeType":"YulIdentifier","src":"24046:3:89"},"nativeSrc":"24046:14:89","nodeType":"YulFunctionCall","src":"24046:14:89"},{"kind":"number","nativeSrc":"24062:4:89","nodeType":"YulLiteral","src":"24062:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24042:3:89","nodeType":"YulIdentifier","src":"24042:3:89"},"nativeSrc":"24042:25:89","nodeType":"YulFunctionCall","src":"24042:25:89"},"variableNames":[{"name":"size","nativeSrc":"24034:4:89","nodeType":"YulIdentifier","src":"24034:4:89"}]}]},"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"23860:213:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"23939:6:89","nodeType":"YulTypedName","src":"23939:6:89","type":""}],"returnVariables":[{"name":"size","nativeSrc":"23950:4:89","nodeType":"YulTypedName","src":"23950:4:89","type":""}],"src":"23860:213:89"},{"body":{"nativeSrc":"24122:85:89","nodeType":"YulBlock","src":"24122:85:89","statements":[{"body":{"nativeSrc":"24185:16:89","nodeType":"YulBlock","src":"24185:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24194:1:89","nodeType":"YulLiteral","src":"24194:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"24197:1:89","nodeType":"YulLiteral","src":"24197:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24187:6:89","nodeType":"YulIdentifier","src":"24187:6:89"},"nativeSrc":"24187:12:89","nodeType":"YulFunctionCall","src":"24187:12:89"},"nativeSrc":"24187:12:89","nodeType":"YulExpressionStatement","src":"24187:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24145:5:89","nodeType":"YulIdentifier","src":"24145:5:89"},{"arguments":[{"name":"value","nativeSrc":"24156:5:89","nodeType":"YulIdentifier","src":"24156:5:89"},{"kind":"number","nativeSrc":"24163:18:89","nodeType":"YulLiteral","src":"24163:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"24152:3:89","nodeType":"YulIdentifier","src":"24152:3:89"},"nativeSrc":"24152:30:89","nodeType":"YulFunctionCall","src":"24152:30:89"}],"functionName":{"name":"eq","nativeSrc":"24142:2:89","nodeType":"YulIdentifier","src":"24142:2:89"},"nativeSrc":"24142:41:89","nodeType":"YulFunctionCall","src":"24142:41:89"}],"functionName":{"name":"iszero","nativeSrc":"24135:6:89","nodeType":"YulIdentifier","src":"24135:6:89"},"nativeSrc":"24135:49:89","nodeType":"YulFunctionCall","src":"24135:49:89"},"nativeSrc":"24132:69:89","nodeType":"YulIf","src":"24132:69:89"}]},"name":"validator_revert_uint64","nativeSrc":"24078:129:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24111:5:89","nodeType":"YulTypedName","src":"24111:5:89","type":""}],"src":"24078:129:89"},{"body":{"nativeSrc":"24271:77:89","nodeType":"YulBlock","src":"24271:77:89","statements":[{"nativeSrc":"24281:22:89","nodeType":"YulAssignment","src":"24281:22:89","value":{"arguments":[{"name":"offset","nativeSrc":"24296:6:89","nodeType":"YulIdentifier","src":"24296:6:89"}],"functionName":{"name":"mload","nativeSrc":"24290:5:89","nodeType":"YulIdentifier","src":"24290:5:89"},"nativeSrc":"24290:13:89","nodeType":"YulFunctionCall","src":"24290:13:89"},"variableNames":[{"name":"value","nativeSrc":"24281:5:89","nodeType":"YulIdentifier","src":"24281:5:89"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24336:5:89","nodeType":"YulIdentifier","src":"24336:5:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"24312:23:89","nodeType":"YulIdentifier","src":"24312:23:89"},"nativeSrc":"24312:30:89","nodeType":"YulFunctionCall","src":"24312:30:89"},"nativeSrc":"24312:30:89","nodeType":"YulExpressionStatement","src":"24312:30:89"}]},"name":"abi_decode_uint64_fromMemory","nativeSrc":"24212:136:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"24250:6:89","nodeType":"YulTypedName","src":"24250:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"24261:5:89","nodeType":"YulTypedName","src":"24261:5:89","type":""}],"src":"24212:136:89"},{"body":{"nativeSrc":"24413:78:89","nodeType":"YulBlock","src":"24413:78:89","statements":[{"nativeSrc":"24423:22:89","nodeType":"YulAssignment","src":"24423:22:89","value":{"arguments":[{"name":"offset","nativeSrc":"24438:6:89","nodeType":"YulIdentifier","src":"24438:6:89"}],"functionName":{"name":"mload","nativeSrc":"24432:5:89","nodeType":"YulIdentifier","src":"24432:5:89"},"nativeSrc":"24432:13:89","nodeType":"YulFunctionCall","src":"24432:13:89"},"variableNames":[{"name":"value","nativeSrc":"24423:5:89","nodeType":"YulIdentifier","src":"24423:5:89"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24479:5:89","nodeType":"YulIdentifier","src":"24479:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"24454:24:89","nodeType":"YulIdentifier","src":"24454:24:89"},"nativeSrc":"24454:31:89","nodeType":"YulFunctionCall","src":"24454:31:89"},"nativeSrc":"24454:31:89","nodeType":"YulExpressionStatement","src":"24454:31:89"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"24353:138:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"24392:6:89","nodeType":"YulTypedName","src":"24392:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"24403:5:89","nodeType":"YulTypedName","src":"24403:5:89","type":""}],"src":"24353:138:89"},{"body":{"nativeSrc":"24560:172:89","nodeType":"YulBlock","src":"24560:172:89","statements":[{"body":{"nativeSrc":"24609:16:89","nodeType":"YulBlock","src":"24609:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24618:1:89","nodeType":"YulLiteral","src":"24618:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"24621:1:89","nodeType":"YulLiteral","src":"24621:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24611:6:89","nodeType":"YulIdentifier","src":"24611:6:89"},"nativeSrc":"24611:12:89","nodeType":"YulFunctionCall","src":"24611:12:89"},"nativeSrc":"24611:12:89","nodeType":"YulExpressionStatement","src":"24611:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"24588:6:89","nodeType":"YulIdentifier","src":"24588:6:89"},{"kind":"number","nativeSrc":"24596:4:89","nodeType":"YulLiteral","src":"24596:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"24584:3:89","nodeType":"YulIdentifier","src":"24584:3:89"},"nativeSrc":"24584:17:89","nodeType":"YulFunctionCall","src":"24584:17:89"},{"name":"end","nativeSrc":"24603:3:89","nodeType":"YulIdentifier","src":"24603:3:89"}],"functionName":{"name":"slt","nativeSrc":"24580:3:89","nodeType":"YulIdentifier","src":"24580:3:89"},"nativeSrc":"24580:27:89","nodeType":"YulFunctionCall","src":"24580:27:89"}],"functionName":{"name":"iszero","nativeSrc":"24573:6:89","nodeType":"YulIdentifier","src":"24573:6:89"},"nativeSrc":"24573:35:89","nodeType":"YulFunctionCall","src":"24573:35:89"},"nativeSrc":"24570:55:89","nodeType":"YulIf","src":"24570:55:89"},{"nativeSrc":"24634:92:89","nodeType":"YulAssignment","src":"24634:92:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"24692:6:89","nodeType":"YulIdentifier","src":"24692:6:89"},{"kind":"number","nativeSrc":"24700:4:89","nodeType":"YulLiteral","src":"24700:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24688:3:89","nodeType":"YulIdentifier","src":"24688:3:89"},"nativeSrc":"24688:17:89","nodeType":"YulFunctionCall","src":"24688:17:89"},{"arguments":[{"name":"offset","nativeSrc":"24713:6:89","nodeType":"YulIdentifier","src":"24713:6:89"}],"functionName":{"name":"mload","nativeSrc":"24707:5:89","nodeType":"YulIdentifier","src":"24707:5:89"},"nativeSrc":"24707:13:89","nodeType":"YulFunctionCall","src":"24707:13:89"},{"name":"end","nativeSrc":"24722:3:89","nodeType":"YulIdentifier","src":"24722:3:89"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"24643:44:89","nodeType":"YulIdentifier","src":"24643:44:89"},"nativeSrc":"24643:83:89","nodeType":"YulFunctionCall","src":"24643:83:89"},"variableNames":[{"name":"array","nativeSrc":"24634:5:89","nodeType":"YulIdentifier","src":"24634:5:89"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"24496:236:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"24534:6:89","nodeType":"YulTypedName","src":"24534:6:89","type":""},{"name":"end","nativeSrc":"24542:3:89","nodeType":"YulTypedName","src":"24542:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"24550:5:89","nodeType":"YulTypedName","src":"24550:5:89","type":""}],"src":"24496:236:89"},{"body":{"nativeSrc":"24811:791:89","nodeType":"YulBlock","src":"24811:791:89","statements":[{"body":{"nativeSrc":"24860:16:89","nodeType":"YulBlock","src":"24860:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24869:1:89","nodeType":"YulLiteral","src":"24869:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"24872:1:89","nodeType":"YulLiteral","src":"24872:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24862:6:89","nodeType":"YulIdentifier","src":"24862:6:89"},"nativeSrc":"24862:12:89","nodeType":"YulFunctionCall","src":"24862:12:89"},"nativeSrc":"24862:12:89","nodeType":"YulExpressionStatement","src":"24862:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"24839:6:89","nodeType":"YulIdentifier","src":"24839:6:89"},{"kind":"number","nativeSrc":"24847:4:89","nodeType":"YulLiteral","src":"24847:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"24835:3:89","nodeType":"YulIdentifier","src":"24835:3:89"},"nativeSrc":"24835:17:89","nodeType":"YulFunctionCall","src":"24835:17:89"},{"name":"end","nativeSrc":"24854:3:89","nodeType":"YulIdentifier","src":"24854:3:89"}],"functionName":{"name":"slt","nativeSrc":"24831:3:89","nodeType":"YulIdentifier","src":"24831:3:89"},"nativeSrc":"24831:27:89","nodeType":"YulFunctionCall","src":"24831:27:89"}],"functionName":{"name":"iszero","nativeSrc":"24824:6:89","nodeType":"YulIdentifier","src":"24824:6:89"},"nativeSrc":"24824:35:89","nodeType":"YulFunctionCall","src":"24824:35:89"},"nativeSrc":"24821:55:89","nodeType":"YulIf","src":"24821:55:89"},{"nativeSrc":"24885:27:89","nodeType":"YulVariableDeclaration","src":"24885:27:89","value":{"arguments":[{"name":"offset","nativeSrc":"24905:6:89","nodeType":"YulIdentifier","src":"24905:6:89"}],"functionName":{"name":"mload","nativeSrc":"24899:5:89","nodeType":"YulIdentifier","src":"24899:5:89"},"nativeSrc":"24899:13:89","nodeType":"YulFunctionCall","src":"24899:13:89"},"variables":[{"name":"length","nativeSrc":"24889:6:89","nodeType":"YulTypedName","src":"24889:6:89","type":""}]},{"nativeSrc":"24921:105:89","nodeType":"YulVariableDeclaration","src":"24921:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"25018:6:89","nodeType":"YulIdentifier","src":"25018:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"24948:69:89","nodeType":"YulIdentifier","src":"24948:69:89"},"nativeSrc":"24948:77:89","nodeType":"YulFunctionCall","src":"24948:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"24932:15:89","nodeType":"YulIdentifier","src":"24932:15:89"},"nativeSrc":"24932:94:89","nodeType":"YulFunctionCall","src":"24932:94:89"},"variables":[{"name":"dst","nativeSrc":"24925:3:89","nodeType":"YulTypedName","src":"24925:3:89","type":""}]},{"nativeSrc":"25035:18:89","nodeType":"YulVariableDeclaration","src":"25035:18:89","value":{"name":"dst","nativeSrc":"25050:3:89","nodeType":"YulIdentifier","src":"25050:3:89"},"variables":[{"name":"array_1","nativeSrc":"25039:7:89","nodeType":"YulTypedName","src":"25039:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"25069:3:89","nodeType":"YulIdentifier","src":"25069:3:89"},{"name":"length","nativeSrc":"25074:6:89","nodeType":"YulIdentifier","src":"25074:6:89"}],"functionName":{"name":"mstore","nativeSrc":"25062:6:89","nodeType":"YulIdentifier","src":"25062:6:89"},"nativeSrc":"25062:19:89","nodeType":"YulFunctionCall","src":"25062:19:89"},"nativeSrc":"25062:19:89","nodeType":"YulExpressionStatement","src":"25062:19:89"},{"nativeSrc":"25090:21:89","nodeType":"YulAssignment","src":"25090:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"25101:3:89","nodeType":"YulIdentifier","src":"25101:3:89"},{"kind":"number","nativeSrc":"25106:4:89","nodeType":"YulLiteral","src":"25106:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25097:3:89","nodeType":"YulIdentifier","src":"25097:3:89"},"nativeSrc":"25097:14:89","nodeType":"YulFunctionCall","src":"25097:14:89"},"variableNames":[{"name":"dst","nativeSrc":"25090:3:89","nodeType":"YulIdentifier","src":"25090:3:89"}]},{"nativeSrc":"25120:52:89","nodeType":"YulVariableDeclaration","src":"25120:52:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"25142:6:89","nodeType":"YulIdentifier","src":"25142:6:89"},{"arguments":[{"kind":"number","nativeSrc":"25154:1:89","nodeType":"YulLiteral","src":"25154:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"25157:6:89","nodeType":"YulIdentifier","src":"25157:6:89"}],"functionName":{"name":"shl","nativeSrc":"25150:3:89","nodeType":"YulIdentifier","src":"25150:3:89"},"nativeSrc":"25150:14:89","nodeType":"YulFunctionCall","src":"25150:14:89"}],"functionName":{"name":"add","nativeSrc":"25138:3:89","nodeType":"YulIdentifier","src":"25138:3:89"},"nativeSrc":"25138:27:89","nodeType":"YulFunctionCall","src":"25138:27:89"},{"kind":"number","nativeSrc":"25167:4:89","nodeType":"YulLiteral","src":"25167:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25134:3:89","nodeType":"YulIdentifier","src":"25134:3:89"},"nativeSrc":"25134:38:89","nodeType":"YulFunctionCall","src":"25134:38:89"},"variables":[{"name":"srcEnd","nativeSrc":"25124:6:89","nodeType":"YulTypedName","src":"25124:6:89","type":""}]},{"body":{"nativeSrc":"25200:16:89","nodeType":"YulBlock","src":"25200:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25209:1:89","nodeType":"YulLiteral","src":"25209:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"25212:1:89","nodeType":"YulLiteral","src":"25212:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25202:6:89","nodeType":"YulIdentifier","src":"25202:6:89"},"nativeSrc":"25202:12:89","nodeType":"YulFunctionCall","src":"25202:12:89"},"nativeSrc":"25202:12:89","nodeType":"YulExpressionStatement","src":"25202:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"25187:6:89","nodeType":"YulIdentifier","src":"25187:6:89"},{"name":"end","nativeSrc":"25195:3:89","nodeType":"YulIdentifier","src":"25195:3:89"}],"functionName":{"name":"gt","nativeSrc":"25184:2:89","nodeType":"YulIdentifier","src":"25184:2:89"},"nativeSrc":"25184:15:89","nodeType":"YulFunctionCall","src":"25184:15:89"},"nativeSrc":"25181:35:89","nodeType":"YulIf","src":"25181:35:89"},{"nativeSrc":"25225:28:89","nodeType":"YulVariableDeclaration","src":"25225:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"25240:6:89","nodeType":"YulIdentifier","src":"25240:6:89"},{"kind":"number","nativeSrc":"25248:4:89","nodeType":"YulLiteral","src":"25248:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25236:3:89","nodeType":"YulIdentifier","src":"25236:3:89"},"nativeSrc":"25236:17:89","nodeType":"YulFunctionCall","src":"25236:17:89"},"variables":[{"name":"src","nativeSrc":"25229:3:89","nodeType":"YulTypedName","src":"25229:3:89","type":""}]},{"body":{"nativeSrc":"25320:251:89","nodeType":"YulBlock","src":"25320:251:89","statements":[{"nativeSrc":"25334:29:89","nodeType":"YulVariableDeclaration","src":"25334:29:89","value":{"arguments":[{"name":"src","nativeSrc":"25359:3:89","nodeType":"YulIdentifier","src":"25359:3:89"}],"functionName":{"name":"mload","nativeSrc":"25353:5:89","nodeType":"YulIdentifier","src":"25353:5:89"},"nativeSrc":"25353:10:89","nodeType":"YulFunctionCall","src":"25353:10:89"},"variables":[{"name":"innerOffset","nativeSrc":"25338:11:89","nodeType":"YulTypedName","src":"25338:11:89","type":""}]},{"body":{"nativeSrc":"25415:16:89","nodeType":"YulBlock","src":"25415:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25424:1:89","nodeType":"YulLiteral","src":"25424:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"25427:1:89","nodeType":"YulLiteral","src":"25427:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25417:6:89","nodeType":"YulIdentifier","src":"25417:6:89"},"nativeSrc":"25417:12:89","nodeType":"YulFunctionCall","src":"25417:12:89"},"nativeSrc":"25417:12:89","nodeType":"YulExpressionStatement","src":"25417:12:89"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"25382:11:89","nodeType":"YulIdentifier","src":"25382:11:89"},{"kind":"number","nativeSrc":"25395:18:89","nodeType":"YulLiteral","src":"25395:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25379:2:89","nodeType":"YulIdentifier","src":"25379:2:89"},"nativeSrc":"25379:35:89","nodeType":"YulFunctionCall","src":"25379:35:89"},"nativeSrc":"25376:55:89","nodeType":"YulIf","src":"25376:55:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"25451:3:89","nodeType":"YulIdentifier","src":"25451:3:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"25493:6:89","nodeType":"YulIdentifier","src":"25493:6:89"},{"name":"innerOffset","nativeSrc":"25501:11:89","nodeType":"YulIdentifier","src":"25501:11:89"}],"functionName":{"name":"add","nativeSrc":"25489:3:89","nodeType":"YulIdentifier","src":"25489:3:89"},"nativeSrc":"25489:24:89","nodeType":"YulFunctionCall","src":"25489:24:89"},{"kind":"number","nativeSrc":"25515:4:89","nodeType":"YulLiteral","src":"25515:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25485:3:89","nodeType":"YulIdentifier","src":"25485:3:89"},"nativeSrc":"25485:35:89","nodeType":"YulFunctionCall","src":"25485:35:89"},{"name":"end","nativeSrc":"25522:3:89","nodeType":"YulIdentifier","src":"25522:3:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"25456:28:89","nodeType":"YulIdentifier","src":"25456:28:89"},"nativeSrc":"25456:70:89","nodeType":"YulFunctionCall","src":"25456:70:89"}],"functionName":{"name":"mstore","nativeSrc":"25444:6:89","nodeType":"YulIdentifier","src":"25444:6:89"},"nativeSrc":"25444:83:89","nodeType":"YulFunctionCall","src":"25444:83:89"},"nativeSrc":"25444:83:89","nodeType":"YulExpressionStatement","src":"25444:83:89"},{"nativeSrc":"25540:21:89","nodeType":"YulAssignment","src":"25540:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"25551:3:89","nodeType":"YulIdentifier","src":"25551:3:89"},{"kind":"number","nativeSrc":"25556:4:89","nodeType":"YulLiteral","src":"25556:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25547:3:89","nodeType":"YulIdentifier","src":"25547:3:89"},"nativeSrc":"25547:14:89","nodeType":"YulFunctionCall","src":"25547:14:89"},"variableNames":[{"name":"dst","nativeSrc":"25540:3:89","nodeType":"YulIdentifier","src":"25540:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"25273:3:89","nodeType":"YulIdentifier","src":"25273:3:89"},{"name":"srcEnd","nativeSrc":"25278:6:89","nodeType":"YulIdentifier","src":"25278:6:89"}],"functionName":{"name":"lt","nativeSrc":"25270:2:89","nodeType":"YulIdentifier","src":"25270:2:89"},"nativeSrc":"25270:15:89","nodeType":"YulFunctionCall","src":"25270:15:89"},"nativeSrc":"25262:309:89","nodeType":"YulForLoop","post":{"nativeSrc":"25286:25:89","nodeType":"YulBlock","src":"25286:25:89","statements":[{"nativeSrc":"25288:21:89","nodeType":"YulAssignment","src":"25288:21:89","value":{"arguments":[{"name":"src","nativeSrc":"25299:3:89","nodeType":"YulIdentifier","src":"25299:3:89"},{"kind":"number","nativeSrc":"25304:4:89","nodeType":"YulLiteral","src":"25304:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25295:3:89","nodeType":"YulIdentifier","src":"25295:3:89"},"nativeSrc":"25295:14:89","nodeType":"YulFunctionCall","src":"25295:14:89"},"variableNames":[{"name":"src","nativeSrc":"25288:3:89","nodeType":"YulIdentifier","src":"25288:3:89"}]}]},"pre":{"nativeSrc":"25266:3:89","nodeType":"YulBlock","src":"25266:3:89","statements":[]},"src":"25262:309:89"},{"nativeSrc":"25580:16:89","nodeType":"YulAssignment","src":"25580:16:89","value":{"name":"array_1","nativeSrc":"25589:7:89","nodeType":"YulIdentifier","src":"25589:7:89"},"variableNames":[{"name":"array","nativeSrc":"25580:5:89","nodeType":"YulIdentifier","src":"25580:5:89"}]}]},"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"24737:865:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"24785:6:89","nodeType":"YulTypedName","src":"24785:6:89","type":""},{"name":"end","nativeSrc":"24793:3:89","nodeType":"YulTypedName","src":"24793:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"24801:5:89","nodeType":"YulTypedName","src":"24801:5:89","type":""}],"src":"24737:865:89"},{"body":{"nativeSrc":"25693:960:89","nodeType":"YulBlock","src":"25693:960:89","statements":[{"body":{"nativeSrc":"25742:16:89","nodeType":"YulBlock","src":"25742:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25751:1:89","nodeType":"YulLiteral","src":"25751:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"25754:1:89","nodeType":"YulLiteral","src":"25754:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25744:6:89","nodeType":"YulIdentifier","src":"25744:6:89"},"nativeSrc":"25744:12:89","nodeType":"YulFunctionCall","src":"25744:12:89"},"nativeSrc":"25744:12:89","nodeType":"YulExpressionStatement","src":"25744:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"25721:6:89","nodeType":"YulIdentifier","src":"25721:6:89"},{"kind":"number","nativeSrc":"25729:4:89","nodeType":"YulLiteral","src":"25729:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"25717:3:89","nodeType":"YulIdentifier","src":"25717:3:89"},"nativeSrc":"25717:17:89","nodeType":"YulFunctionCall","src":"25717:17:89"},{"name":"end","nativeSrc":"25736:3:89","nodeType":"YulIdentifier","src":"25736:3:89"}],"functionName":{"name":"slt","nativeSrc":"25713:3:89","nodeType":"YulIdentifier","src":"25713:3:89"},"nativeSrc":"25713:27:89","nodeType":"YulFunctionCall","src":"25713:27:89"}],"functionName":{"name":"iszero","nativeSrc":"25706:6:89","nodeType":"YulIdentifier","src":"25706:6:89"},"nativeSrc":"25706:35:89","nodeType":"YulFunctionCall","src":"25706:35:89"},"nativeSrc":"25703:55:89","nodeType":"YulIf","src":"25703:55:89"},{"nativeSrc":"25767:27:89","nodeType":"YulVariableDeclaration","src":"25767:27:89","value":{"arguments":[{"name":"offset","nativeSrc":"25787:6:89","nodeType":"YulIdentifier","src":"25787:6:89"}],"functionName":{"name":"mload","nativeSrc":"25781:5:89","nodeType":"YulIdentifier","src":"25781:5:89"},"nativeSrc":"25781:13:89","nodeType":"YulFunctionCall","src":"25781:13:89"},"variables":[{"name":"length","nativeSrc":"25771:6:89","nodeType":"YulTypedName","src":"25771:6:89","type":""}]},{"nativeSrc":"25803:105:89","nodeType":"YulVariableDeclaration","src":"25803:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"25900:6:89","nodeType":"YulIdentifier","src":"25900:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"25830:69:89","nodeType":"YulIdentifier","src":"25830:69:89"},"nativeSrc":"25830:77:89","nodeType":"YulFunctionCall","src":"25830:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"25814:15:89","nodeType":"YulIdentifier","src":"25814:15:89"},"nativeSrc":"25814:94:89","nodeType":"YulFunctionCall","src":"25814:94:89"},"variables":[{"name":"dst","nativeSrc":"25807:3:89","nodeType":"YulTypedName","src":"25807:3:89","type":""}]},{"nativeSrc":"25917:18:89","nodeType":"YulVariableDeclaration","src":"25917:18:89","value":{"name":"dst","nativeSrc":"25932:3:89","nodeType":"YulIdentifier","src":"25932:3:89"},"variables":[{"name":"array_1","nativeSrc":"25921:7:89","nodeType":"YulTypedName","src":"25921:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"25951:3:89","nodeType":"YulIdentifier","src":"25951:3:89"},{"name":"length","nativeSrc":"25956:6:89","nodeType":"YulIdentifier","src":"25956:6:89"}],"functionName":{"name":"mstore","nativeSrc":"25944:6:89","nodeType":"YulIdentifier","src":"25944:6:89"},"nativeSrc":"25944:19:89","nodeType":"YulFunctionCall","src":"25944:19:89"},"nativeSrc":"25944:19:89","nodeType":"YulExpressionStatement","src":"25944:19:89"},{"nativeSrc":"25972:21:89","nodeType":"YulAssignment","src":"25972:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"25983:3:89","nodeType":"YulIdentifier","src":"25983:3:89"},{"kind":"number","nativeSrc":"25988:4:89","nodeType":"YulLiteral","src":"25988:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25979:3:89","nodeType":"YulIdentifier","src":"25979:3:89"},"nativeSrc":"25979:14:89","nodeType":"YulFunctionCall","src":"25979:14:89"},"variableNames":[{"name":"dst","nativeSrc":"25972:3:89","nodeType":"YulIdentifier","src":"25972:3:89"}]},{"nativeSrc":"26002:52:89","nodeType":"YulVariableDeclaration","src":"26002:52:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"26024:6:89","nodeType":"YulIdentifier","src":"26024:6:89"},{"arguments":[{"kind":"number","nativeSrc":"26036:1:89","nodeType":"YulLiteral","src":"26036:1:89","type":"","value":"6"},{"name":"length","nativeSrc":"26039:6:89","nodeType":"YulIdentifier","src":"26039:6:89"}],"functionName":{"name":"shl","nativeSrc":"26032:3:89","nodeType":"YulIdentifier","src":"26032:3:89"},"nativeSrc":"26032:14:89","nodeType":"YulFunctionCall","src":"26032:14:89"}],"functionName":{"name":"add","nativeSrc":"26020:3:89","nodeType":"YulIdentifier","src":"26020:3:89"},"nativeSrc":"26020:27:89","nodeType":"YulFunctionCall","src":"26020:27:89"},{"kind":"number","nativeSrc":"26049:4:89","nodeType":"YulLiteral","src":"26049:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26016:3:89","nodeType":"YulIdentifier","src":"26016:3:89"},"nativeSrc":"26016:38:89","nodeType":"YulFunctionCall","src":"26016:38:89"},"variables":[{"name":"srcEnd","nativeSrc":"26006:6:89","nodeType":"YulTypedName","src":"26006:6:89","type":""}]},{"body":{"nativeSrc":"26082:16:89","nodeType":"YulBlock","src":"26082:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26091:1:89","nodeType":"YulLiteral","src":"26091:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"26094:1:89","nodeType":"YulLiteral","src":"26094:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26084:6:89","nodeType":"YulIdentifier","src":"26084:6:89"},"nativeSrc":"26084:12:89","nodeType":"YulFunctionCall","src":"26084:12:89"},"nativeSrc":"26084:12:89","nodeType":"YulExpressionStatement","src":"26084:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"26069:6:89","nodeType":"YulIdentifier","src":"26069:6:89"},{"name":"end","nativeSrc":"26077:3:89","nodeType":"YulIdentifier","src":"26077:3:89"}],"functionName":{"name":"gt","nativeSrc":"26066:2:89","nodeType":"YulIdentifier","src":"26066:2:89"},"nativeSrc":"26066:15:89","nodeType":"YulFunctionCall","src":"26066:15:89"},"nativeSrc":"26063:35:89","nodeType":"YulIf","src":"26063:35:89"},{"nativeSrc":"26107:28:89","nodeType":"YulVariableDeclaration","src":"26107:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"26122:6:89","nodeType":"YulIdentifier","src":"26122:6:89"},{"kind":"number","nativeSrc":"26130:4:89","nodeType":"YulLiteral","src":"26130:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26118:3:89","nodeType":"YulIdentifier","src":"26118:3:89"},"nativeSrc":"26118:17:89","nodeType":"YulFunctionCall","src":"26118:17:89"},"variables":[{"name":"src","nativeSrc":"26111:3:89","nodeType":"YulTypedName","src":"26111:3:89","type":""}]},{"body":{"nativeSrc":"26202:420:89","nodeType":"YulBlock","src":"26202:420:89","statements":[{"body":{"nativeSrc":"26244:16:89","nodeType":"YulBlock","src":"26244:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26253:1:89","nodeType":"YulLiteral","src":"26253:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"26256:1:89","nodeType":"YulLiteral","src":"26256:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26246:6:89","nodeType":"YulIdentifier","src":"26246:6:89"},"nativeSrc":"26246:12:89","nodeType":"YulFunctionCall","src":"26246:12:89"},"nativeSrc":"26246:12:89","nodeType":"YulExpressionStatement","src":"26246:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"26227:3:89","nodeType":"YulIdentifier","src":"26227:3:89"},{"name":"src","nativeSrc":"26232:3:89","nodeType":"YulIdentifier","src":"26232:3:89"}],"functionName":{"name":"sub","nativeSrc":"26223:3:89","nodeType":"YulIdentifier","src":"26223:3:89"},"nativeSrc":"26223:13:89","nodeType":"YulFunctionCall","src":"26223:13:89"},{"kind":"number","nativeSrc":"26238:4:89","nodeType":"YulLiteral","src":"26238:4:89","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"26219:3:89","nodeType":"YulIdentifier","src":"26219:3:89"},"nativeSrc":"26219:24:89","nodeType":"YulFunctionCall","src":"26219:24:89"},"nativeSrc":"26216:44:89","nodeType":"YulIf","src":"26216:44:89"},{"nativeSrc":"26273:35:89","nodeType":"YulVariableDeclaration","src":"26273:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_9694","nativeSrc":"26286:20:89","nodeType":"YulIdentifier","src":"26286:20:89"},"nativeSrc":"26286:22:89","nodeType":"YulFunctionCall","src":"26286:22:89"},"variables":[{"name":"value","nativeSrc":"26277:5:89","nodeType":"YulTypedName","src":"26277:5:89","type":""}]},{"nativeSrc":"26321:25:89","nodeType":"YulVariableDeclaration","src":"26321:25:89","value":{"arguments":[{"name":"src","nativeSrc":"26342:3:89","nodeType":"YulIdentifier","src":"26342:3:89"}],"functionName":{"name":"mload","nativeSrc":"26336:5:89","nodeType":"YulIdentifier","src":"26336:5:89"},"nativeSrc":"26336:10:89","nodeType":"YulFunctionCall","src":"26336:10:89"},"variables":[{"name":"value_1","nativeSrc":"26325:7:89","nodeType":"YulTypedName","src":"26325:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"26384:7:89","nodeType":"YulIdentifier","src":"26384:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"26359:24:89","nodeType":"YulIdentifier","src":"26359:24:89"},"nativeSrc":"26359:33:89","nodeType":"YulFunctionCall","src":"26359:33:89"},"nativeSrc":"26359:33:89","nodeType":"YulExpressionStatement","src":"26359:33:89"},{"expression":{"arguments":[{"name":"value","nativeSrc":"26412:5:89","nodeType":"YulIdentifier","src":"26412:5:89"},{"name":"value_1","nativeSrc":"26419:7:89","nodeType":"YulIdentifier","src":"26419:7:89"}],"functionName":{"name":"mstore","nativeSrc":"26405:6:89","nodeType":"YulIdentifier","src":"26405:6:89"},"nativeSrc":"26405:22:89","nodeType":"YulFunctionCall","src":"26405:22:89"},"nativeSrc":"26405:22:89","nodeType":"YulExpressionStatement","src":"26405:22:89"},{"nativeSrc":"26440:16:89","nodeType":"YulVariableDeclaration","src":"26440:16:89","value":{"kind":"number","nativeSrc":"26455:1:89","nodeType":"YulLiteral","src":"26455:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"26444:7:89","nodeType":"YulTypedName","src":"26444:7:89","type":""}]},{"nativeSrc":"26469:32:89","nodeType":"YulAssignment","src":"26469:32:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"26490:3:89","nodeType":"YulIdentifier","src":"26490:3:89"},{"kind":"number","nativeSrc":"26495:4:89","nodeType":"YulLiteral","src":"26495:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26486:3:89","nodeType":"YulIdentifier","src":"26486:3:89"},"nativeSrc":"26486:14:89","nodeType":"YulFunctionCall","src":"26486:14:89"}],"functionName":{"name":"mload","nativeSrc":"26480:5:89","nodeType":"YulIdentifier","src":"26480:5:89"},"nativeSrc":"26480:21:89","nodeType":"YulFunctionCall","src":"26480:21:89"},"variableNames":[{"name":"value_2","nativeSrc":"26469:7:89","nodeType":"YulIdentifier","src":"26469:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26525:5:89","nodeType":"YulIdentifier","src":"26525:5:89"},{"kind":"number","nativeSrc":"26532:4:89","nodeType":"YulLiteral","src":"26532:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26521:3:89","nodeType":"YulIdentifier","src":"26521:3:89"},"nativeSrc":"26521:16:89","nodeType":"YulFunctionCall","src":"26521:16:89"},{"name":"value_2","nativeSrc":"26539:7:89","nodeType":"YulIdentifier","src":"26539:7:89"}],"functionName":{"name":"mstore","nativeSrc":"26514:6:89","nodeType":"YulIdentifier","src":"26514:6:89"},"nativeSrc":"26514:33:89","nodeType":"YulFunctionCall","src":"26514:33:89"},"nativeSrc":"26514:33:89","nodeType":"YulExpressionStatement","src":"26514:33:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"26567:3:89","nodeType":"YulIdentifier","src":"26567:3:89"},{"name":"value","nativeSrc":"26572:5:89","nodeType":"YulIdentifier","src":"26572:5:89"}],"functionName":{"name":"mstore","nativeSrc":"26560:6:89","nodeType":"YulIdentifier","src":"26560:6:89"},"nativeSrc":"26560:18:89","nodeType":"YulFunctionCall","src":"26560:18:89"},"nativeSrc":"26560:18:89","nodeType":"YulExpressionStatement","src":"26560:18:89"},{"nativeSrc":"26591:21:89","nodeType":"YulAssignment","src":"26591:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"26602:3:89","nodeType":"YulIdentifier","src":"26602:3:89"},{"kind":"number","nativeSrc":"26607:4:89","nodeType":"YulLiteral","src":"26607:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26598:3:89","nodeType":"YulIdentifier","src":"26598:3:89"},"nativeSrc":"26598:14:89","nodeType":"YulFunctionCall","src":"26598:14:89"},"variableNames":[{"name":"dst","nativeSrc":"26591:3:89","nodeType":"YulIdentifier","src":"26591:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"26155:3:89","nodeType":"YulIdentifier","src":"26155:3:89"},{"name":"srcEnd","nativeSrc":"26160:6:89","nodeType":"YulIdentifier","src":"26160:6:89"}],"functionName":{"name":"lt","nativeSrc":"26152:2:89","nodeType":"YulIdentifier","src":"26152:2:89"},"nativeSrc":"26152:15:89","nodeType":"YulFunctionCall","src":"26152:15:89"},"nativeSrc":"26144:478:89","nodeType":"YulForLoop","post":{"nativeSrc":"26168:25:89","nodeType":"YulBlock","src":"26168:25:89","statements":[{"nativeSrc":"26170:21:89","nodeType":"YulAssignment","src":"26170:21:89","value":{"arguments":[{"name":"src","nativeSrc":"26181:3:89","nodeType":"YulIdentifier","src":"26181:3:89"},{"kind":"number","nativeSrc":"26186:4:89","nodeType":"YulLiteral","src":"26186:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"26177:3:89","nodeType":"YulIdentifier","src":"26177:3:89"},"nativeSrc":"26177:14:89","nodeType":"YulFunctionCall","src":"26177:14:89"},"variableNames":[{"name":"src","nativeSrc":"26170:3:89","nodeType":"YulIdentifier","src":"26170:3:89"}]}]},"pre":{"nativeSrc":"26148:3:89","nodeType":"YulBlock","src":"26148:3:89","statements":[]},"src":"26144:478:89"},{"nativeSrc":"26631:16:89","nodeType":"YulAssignment","src":"26631:16:89","value":{"name":"array_1","nativeSrc":"26640:7:89","nodeType":"YulIdentifier","src":"26640:7:89"},"variableNames":[{"name":"array","nativeSrc":"26631:5:89","nodeType":"YulIdentifier","src":"26631:5:89"}]}]},"name":"abi_decode_array_struct_TokenAmount_dyn_fromMemory","nativeSrc":"25607:1046:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"25667:6:89","nodeType":"YulTypedName","src":"25667:6:89","type":""},{"name":"end","nativeSrc":"25675:3:89","nodeType":"YulTypedName","src":"25675:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"25683:5:89","nodeType":"YulTypedName","src":"25683:5:89","type":""}],"src":"25607:1046:89"},{"body":{"nativeSrc":"26742:1079:89","nodeType":"YulBlock","src":"26742:1079:89","statements":[{"body":{"nativeSrc":"26791:16:89","nodeType":"YulBlock","src":"26791:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26800:1:89","nodeType":"YulLiteral","src":"26800:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"26803:1:89","nodeType":"YulLiteral","src":"26803:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26793:6:89","nodeType":"YulIdentifier","src":"26793:6:89"},"nativeSrc":"26793:12:89","nodeType":"YulFunctionCall","src":"26793:12:89"},"nativeSrc":"26793:12:89","nodeType":"YulExpressionStatement","src":"26793:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"26770:6:89","nodeType":"YulIdentifier","src":"26770:6:89"},{"kind":"number","nativeSrc":"26778:4:89","nodeType":"YulLiteral","src":"26778:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"26766:3:89","nodeType":"YulIdentifier","src":"26766:3:89"},"nativeSrc":"26766:17:89","nodeType":"YulFunctionCall","src":"26766:17:89"},{"name":"end","nativeSrc":"26785:3:89","nodeType":"YulIdentifier","src":"26785:3:89"}],"functionName":{"name":"slt","nativeSrc":"26762:3:89","nodeType":"YulIdentifier","src":"26762:3:89"},"nativeSrc":"26762:27:89","nodeType":"YulFunctionCall","src":"26762:27:89"}],"functionName":{"name":"iszero","nativeSrc":"26755:6:89","nodeType":"YulIdentifier","src":"26755:6:89"},"nativeSrc":"26755:35:89","nodeType":"YulFunctionCall","src":"26755:35:89"},"nativeSrc":"26752:55:89","nodeType":"YulIf","src":"26752:55:89"},{"nativeSrc":"26816:27:89","nodeType":"YulVariableDeclaration","src":"26816:27:89","value":{"arguments":[{"name":"offset","nativeSrc":"26836:6:89","nodeType":"YulIdentifier","src":"26836:6:89"}],"functionName":{"name":"mload","nativeSrc":"26830:5:89","nodeType":"YulIdentifier","src":"26830:5:89"},"nativeSrc":"26830:13:89","nodeType":"YulFunctionCall","src":"26830:13:89"},"variables":[{"name":"length","nativeSrc":"26820:6:89","nodeType":"YulTypedName","src":"26820:6:89","type":""}]},{"nativeSrc":"26852:105:89","nodeType":"YulVariableDeclaration","src":"26852:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"26949:6:89","nodeType":"YulIdentifier","src":"26949:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"26879:69:89","nodeType":"YulIdentifier","src":"26879:69:89"},"nativeSrc":"26879:77:89","nodeType":"YulFunctionCall","src":"26879:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"26863:15:89","nodeType":"YulIdentifier","src":"26863:15:89"},"nativeSrc":"26863:94:89","nodeType":"YulFunctionCall","src":"26863:94:89"},"variables":[{"name":"dst","nativeSrc":"26856:3:89","nodeType":"YulTypedName","src":"26856:3:89","type":""}]},{"nativeSrc":"26966:18:89","nodeType":"YulVariableDeclaration","src":"26966:18:89","value":{"name":"dst","nativeSrc":"26981:3:89","nodeType":"YulIdentifier","src":"26981:3:89"},"variables":[{"name":"array_1","nativeSrc":"26970:7:89","nodeType":"YulTypedName","src":"26970:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"27000:3:89","nodeType":"YulIdentifier","src":"27000:3:89"},{"name":"length","nativeSrc":"27005:6:89","nodeType":"YulIdentifier","src":"27005:6:89"}],"functionName":{"name":"mstore","nativeSrc":"26993:6:89","nodeType":"YulIdentifier","src":"26993:6:89"},"nativeSrc":"26993:19:89","nodeType":"YulFunctionCall","src":"26993:19:89"},"nativeSrc":"26993:19:89","nodeType":"YulExpressionStatement","src":"26993:19:89"},{"nativeSrc":"27021:21:89","nodeType":"YulAssignment","src":"27021:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"27032:3:89","nodeType":"YulIdentifier","src":"27032:3:89"},{"kind":"number","nativeSrc":"27037:4:89","nodeType":"YulLiteral","src":"27037:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27028:3:89","nodeType":"YulIdentifier","src":"27028:3:89"},"nativeSrc":"27028:14:89","nodeType":"YulFunctionCall","src":"27028:14:89"},"variableNames":[{"name":"dst","nativeSrc":"27021:3:89","nodeType":"YulIdentifier","src":"27021:3:89"}]},{"nativeSrc":"27051:55:89","nodeType":"YulVariableDeclaration","src":"27051:55:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"27073:6:89","nodeType":"YulIdentifier","src":"27073:6:89"},{"arguments":[{"name":"length","nativeSrc":"27085:6:89","nodeType":"YulIdentifier","src":"27085:6:89"},{"kind":"number","nativeSrc":"27093:4:89","nodeType":"YulLiteral","src":"27093:4:89","type":"","value":"0x60"}],"functionName":{"name":"mul","nativeSrc":"27081:3:89","nodeType":"YulIdentifier","src":"27081:3:89"},"nativeSrc":"27081:17:89","nodeType":"YulFunctionCall","src":"27081:17:89"}],"functionName":{"name":"add","nativeSrc":"27069:3:89","nodeType":"YulIdentifier","src":"27069:3:89"},"nativeSrc":"27069:30:89","nodeType":"YulFunctionCall","src":"27069:30:89"},{"kind":"number","nativeSrc":"27101:4:89","nodeType":"YulLiteral","src":"27101:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27065:3:89","nodeType":"YulIdentifier","src":"27065:3:89"},"nativeSrc":"27065:41:89","nodeType":"YulFunctionCall","src":"27065:41:89"},"variables":[{"name":"srcEnd","nativeSrc":"27055:6:89","nodeType":"YulTypedName","src":"27055:6:89","type":""}]},{"body":{"nativeSrc":"27134:16:89","nodeType":"YulBlock","src":"27134:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27143:1:89","nodeType":"YulLiteral","src":"27143:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"27146:1:89","nodeType":"YulLiteral","src":"27146:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27136:6:89","nodeType":"YulIdentifier","src":"27136:6:89"},"nativeSrc":"27136:12:89","nodeType":"YulFunctionCall","src":"27136:12:89"},"nativeSrc":"27136:12:89","nodeType":"YulExpressionStatement","src":"27136:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"27121:6:89","nodeType":"YulIdentifier","src":"27121:6:89"},{"name":"end","nativeSrc":"27129:3:89","nodeType":"YulIdentifier","src":"27129:3:89"}],"functionName":{"name":"gt","nativeSrc":"27118:2:89","nodeType":"YulIdentifier","src":"27118:2:89"},"nativeSrc":"27118:15:89","nodeType":"YulFunctionCall","src":"27118:15:89"},"nativeSrc":"27115:35:89","nodeType":"YulIf","src":"27115:35:89"},{"nativeSrc":"27159:28:89","nodeType":"YulVariableDeclaration","src":"27159:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"27174:6:89","nodeType":"YulIdentifier","src":"27174:6:89"},{"kind":"number","nativeSrc":"27182:4:89","nodeType":"YulLiteral","src":"27182:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27170:3:89","nodeType":"YulIdentifier","src":"27170:3:89"},"nativeSrc":"27170:17:89","nodeType":"YulFunctionCall","src":"27170:17:89"},"variables":[{"name":"src","nativeSrc":"27163:3:89","nodeType":"YulTypedName","src":"27163:3:89","type":""}]},{"body":{"nativeSrc":"27254:536:89","nodeType":"YulBlock","src":"27254:536:89","statements":[{"body":{"nativeSrc":"27296:16:89","nodeType":"YulBlock","src":"27296:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27305:1:89","nodeType":"YulLiteral","src":"27305:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"27308:1:89","nodeType":"YulLiteral","src":"27308:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27298:6:89","nodeType":"YulIdentifier","src":"27298:6:89"},"nativeSrc":"27298:12:89","nodeType":"YulFunctionCall","src":"27298:12:89"},"nativeSrc":"27298:12:89","nodeType":"YulExpressionStatement","src":"27298:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"27279:3:89","nodeType":"YulIdentifier","src":"27279:3:89"},{"name":"src","nativeSrc":"27284:3:89","nodeType":"YulIdentifier","src":"27284:3:89"}],"functionName":{"name":"sub","nativeSrc":"27275:3:89","nodeType":"YulIdentifier","src":"27275:3:89"},"nativeSrc":"27275:13:89","nodeType":"YulFunctionCall","src":"27275:13:89"},{"kind":"number","nativeSrc":"27290:4:89","nodeType":"YulLiteral","src":"27290:4:89","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"27271:3:89","nodeType":"YulIdentifier","src":"27271:3:89"},"nativeSrc":"27271:24:89","nodeType":"YulFunctionCall","src":"27271:24:89"},"nativeSrc":"27268:44:89","nodeType":"YulIf","src":"27268:44:89"},{"nativeSrc":"27325:35:89","nodeType":"YulVariableDeclaration","src":"27325:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_9697","nativeSrc":"27338:20:89","nodeType":"YulIdentifier","src":"27338:20:89"},"nativeSrc":"27338:22:89","nodeType":"YulFunctionCall","src":"27338:22:89"},"variables":[{"name":"value","nativeSrc":"27329:5:89","nodeType":"YulTypedName","src":"27329:5:89","type":""}]},{"nativeSrc":"27373:25:89","nodeType":"YulVariableDeclaration","src":"27373:25:89","value":{"arguments":[{"name":"src","nativeSrc":"27394:3:89","nodeType":"YulIdentifier","src":"27394:3:89"}],"functionName":{"name":"mload","nativeSrc":"27388:5:89","nodeType":"YulIdentifier","src":"27388:5:89"},"nativeSrc":"27388:10:89","nodeType":"YulFunctionCall","src":"27388:10:89"},"variables":[{"name":"value_1","nativeSrc":"27377:7:89","nodeType":"YulTypedName","src":"27377:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"27436:7:89","nodeType":"YulIdentifier","src":"27436:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"27411:24:89","nodeType":"YulIdentifier","src":"27411:24:89"},"nativeSrc":"27411:33:89","nodeType":"YulFunctionCall","src":"27411:33:89"},"nativeSrc":"27411:33:89","nodeType":"YulExpressionStatement","src":"27411:33:89"},{"expression":{"arguments":[{"name":"value","nativeSrc":"27464:5:89","nodeType":"YulIdentifier","src":"27464:5:89"},{"name":"value_1","nativeSrc":"27471:7:89","nodeType":"YulIdentifier","src":"27471:7:89"}],"functionName":{"name":"mstore","nativeSrc":"27457:6:89","nodeType":"YulIdentifier","src":"27457:6:89"},"nativeSrc":"27457:22:89","nodeType":"YulFunctionCall","src":"27457:22:89"},"nativeSrc":"27457:22:89","nodeType":"YulExpressionStatement","src":"27457:22:89"},{"nativeSrc":"27492:16:89","nodeType":"YulVariableDeclaration","src":"27492:16:89","value":{"kind":"number","nativeSrc":"27507:1:89","nodeType":"YulLiteral","src":"27507:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"27496:7:89","nodeType":"YulTypedName","src":"27496:7:89","type":""}]},{"nativeSrc":"27521:32:89","nodeType":"YulAssignment","src":"27521:32:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"27542:3:89","nodeType":"YulIdentifier","src":"27542:3:89"},{"kind":"number","nativeSrc":"27547:4:89","nodeType":"YulLiteral","src":"27547:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27538:3:89","nodeType":"YulIdentifier","src":"27538:3:89"},"nativeSrc":"27538:14:89","nodeType":"YulFunctionCall","src":"27538:14:89"}],"functionName":{"name":"mload","nativeSrc":"27532:5:89","nodeType":"YulIdentifier","src":"27532:5:89"},"nativeSrc":"27532:21:89","nodeType":"YulFunctionCall","src":"27532:21:89"},"variableNames":[{"name":"value_2","nativeSrc":"27521:7:89","nodeType":"YulIdentifier","src":"27521:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27577:5:89","nodeType":"YulIdentifier","src":"27577:5:89"},{"kind":"number","nativeSrc":"27584:4:89","nodeType":"YulLiteral","src":"27584:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27573:3:89","nodeType":"YulIdentifier","src":"27573:3:89"},"nativeSrc":"27573:16:89","nodeType":"YulFunctionCall","src":"27573:16:89"},{"name":"value_2","nativeSrc":"27591:7:89","nodeType":"YulIdentifier","src":"27591:7:89"}],"functionName":{"name":"mstore","nativeSrc":"27566:6:89","nodeType":"YulIdentifier","src":"27566:6:89"},"nativeSrc":"27566:33:89","nodeType":"YulFunctionCall","src":"27566:33:89"},"nativeSrc":"27566:33:89","nodeType":"YulExpressionStatement","src":"27566:33:89"},{"nativeSrc":"27612:16:89","nodeType":"YulVariableDeclaration","src":"27612:16:89","value":{"kind":"number","nativeSrc":"27627:1:89","nodeType":"YulLiteral","src":"27627:1:89","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"27616:7:89","nodeType":"YulTypedName","src":"27616:7:89","type":""}]},{"nativeSrc":"27641:30:89","nodeType":"YulAssignment","src":"27641:30:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"27662:3:89","nodeType":"YulIdentifier","src":"27662:3:89"},{"kind":"number","nativeSrc":"27667:2:89","nodeType":"YulLiteral","src":"27667:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27658:3:89","nodeType":"YulIdentifier","src":"27658:3:89"},"nativeSrc":"27658:12:89","nodeType":"YulFunctionCall","src":"27658:12:89"}],"functionName":{"name":"mload","nativeSrc":"27652:5:89","nodeType":"YulIdentifier","src":"27652:5:89"},"nativeSrc":"27652:19:89","nodeType":"YulFunctionCall","src":"27652:19:89"},"variableNames":[{"name":"value_3","nativeSrc":"27641:7:89","nodeType":"YulIdentifier","src":"27641:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27695:5:89","nodeType":"YulIdentifier","src":"27695:5:89"},{"kind":"number","nativeSrc":"27702:2:89","nodeType":"YulLiteral","src":"27702:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27691:3:89","nodeType":"YulIdentifier","src":"27691:3:89"},"nativeSrc":"27691:14:89","nodeType":"YulFunctionCall","src":"27691:14:89"},{"name":"value_3","nativeSrc":"27707:7:89","nodeType":"YulIdentifier","src":"27707:7:89"}],"functionName":{"name":"mstore","nativeSrc":"27684:6:89","nodeType":"YulIdentifier","src":"27684:6:89"},"nativeSrc":"27684:31:89","nodeType":"YulFunctionCall","src":"27684:31:89"},"nativeSrc":"27684:31:89","nodeType":"YulExpressionStatement","src":"27684:31:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"27735:3:89","nodeType":"YulIdentifier","src":"27735:3:89"},{"name":"value","nativeSrc":"27740:5:89","nodeType":"YulIdentifier","src":"27740:5:89"}],"functionName":{"name":"mstore","nativeSrc":"27728:6:89","nodeType":"YulIdentifier","src":"27728:6:89"},"nativeSrc":"27728:18:89","nodeType":"YulFunctionCall","src":"27728:18:89"},"nativeSrc":"27728:18:89","nodeType":"YulExpressionStatement","src":"27728:18:89"},{"nativeSrc":"27759:21:89","nodeType":"YulAssignment","src":"27759:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"27770:3:89","nodeType":"YulIdentifier","src":"27770:3:89"},{"kind":"number","nativeSrc":"27775:4:89","nodeType":"YulLiteral","src":"27775:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27766:3:89","nodeType":"YulIdentifier","src":"27766:3:89"},"nativeSrc":"27766:14:89","nodeType":"YulFunctionCall","src":"27766:14:89"},"variableNames":[{"name":"dst","nativeSrc":"27759:3:89","nodeType":"YulIdentifier","src":"27759:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"27207:3:89","nodeType":"YulIdentifier","src":"27207:3:89"},{"name":"srcEnd","nativeSrc":"27212:6:89","nodeType":"YulIdentifier","src":"27212:6:89"}],"functionName":{"name":"lt","nativeSrc":"27204:2:89","nodeType":"YulIdentifier","src":"27204:2:89"},"nativeSrc":"27204:15:89","nodeType":"YulFunctionCall","src":"27204:15:89"},"nativeSrc":"27196:594:89","nodeType":"YulForLoop","post":{"nativeSrc":"27220:25:89","nodeType":"YulBlock","src":"27220:25:89","statements":[{"nativeSrc":"27222:21:89","nodeType":"YulAssignment","src":"27222:21:89","value":{"arguments":[{"name":"src","nativeSrc":"27233:3:89","nodeType":"YulIdentifier","src":"27233:3:89"},{"kind":"number","nativeSrc":"27238:4:89","nodeType":"YulLiteral","src":"27238:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"27229:3:89","nodeType":"YulIdentifier","src":"27229:3:89"},"nativeSrc":"27229:14:89","nodeType":"YulFunctionCall","src":"27229:14:89"},"variableNames":[{"name":"src","nativeSrc":"27222:3:89","nodeType":"YulIdentifier","src":"27222:3:89"}]}]},"pre":{"nativeSrc":"27200:3:89","nodeType":"YulBlock","src":"27200:3:89","statements":[]},"src":"27196:594:89"},{"nativeSrc":"27799:16:89","nodeType":"YulAssignment","src":"27799:16:89","value":{"name":"array_1","nativeSrc":"27808:7:89","nodeType":"YulIdentifier","src":"27808:7:89"},"variableNames":[{"name":"array","nativeSrc":"27799:5:89","nodeType":"YulIdentifier","src":"27799:5:89"}]}]},"name":"abi_decode_array_struct_NFTAmount_dyn_fromMemory","nativeSrc":"26658:1163:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"26716:6:89","nodeType":"YulTypedName","src":"26716:6:89","type":""},{"name":"end","nativeSrc":"26724:3:89","nodeType":"YulTypedName","src":"26724:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"26732:5:89","nodeType":"YulTypedName","src":"26732:5:89","type":""}],"src":"26658:1163:89"},{"body":{"nativeSrc":"27981:3177:89","nodeType":"YulBlock","src":"27981:3177:89","statements":[{"body":{"nativeSrc":"28027:16:89","nodeType":"YulBlock","src":"28027:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28036:1:89","nodeType":"YulLiteral","src":"28036:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"28039:1:89","nodeType":"YulLiteral","src":"28039:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28029:6:89","nodeType":"YulIdentifier","src":"28029:6:89"},"nativeSrc":"28029:12:89","nodeType":"YulFunctionCall","src":"28029:12:89"},"nativeSrc":"28029:12:89","nodeType":"YulExpressionStatement","src":"28029:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28002:7:89","nodeType":"YulIdentifier","src":"28002:7:89"},{"name":"headStart","nativeSrc":"28011:9:89","nodeType":"YulIdentifier","src":"28011:9:89"}],"functionName":{"name":"sub","nativeSrc":"27998:3:89","nodeType":"YulIdentifier","src":"27998:3:89"},"nativeSrc":"27998:23:89","nodeType":"YulFunctionCall","src":"27998:23:89"},{"kind":"number","nativeSrc":"28023:2:89","nodeType":"YulLiteral","src":"28023:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27994:3:89","nodeType":"YulIdentifier","src":"27994:3:89"},"nativeSrc":"27994:32:89","nodeType":"YulFunctionCall","src":"27994:32:89"},"nativeSrc":"27991:52:89","nodeType":"YulIf","src":"27991:52:89"},{"nativeSrc":"28052:30:89","nodeType":"YulVariableDeclaration","src":"28052:30:89","value":{"arguments":[{"name":"headStart","nativeSrc":"28072:9:89","nodeType":"YulIdentifier","src":"28072:9:89"}],"functionName":{"name":"mload","nativeSrc":"28066:5:89","nodeType":"YulIdentifier","src":"28066:5:89"},"nativeSrc":"28066:16:89","nodeType":"YulFunctionCall","src":"28066:16:89"},"variables":[{"name":"offset","nativeSrc":"28056:6:89","nodeType":"YulTypedName","src":"28056:6:89","type":""}]},{"body":{"nativeSrc":"28125:16:89","nodeType":"YulBlock","src":"28125:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28134:1:89","nodeType":"YulLiteral","src":"28134:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"28137:1:89","nodeType":"YulLiteral","src":"28137:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28127:6:89","nodeType":"YulIdentifier","src":"28127:6:89"},"nativeSrc":"28127:12:89","nodeType":"YulFunctionCall","src":"28127:12:89"},"nativeSrc":"28127:12:89","nodeType":"YulExpressionStatement","src":"28127:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"28097:6:89","nodeType":"YulIdentifier","src":"28097:6:89"},{"kind":"number","nativeSrc":"28105:18:89","nodeType":"YulLiteral","src":"28105:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"28094:2:89","nodeType":"YulIdentifier","src":"28094:2:89"},"nativeSrc":"28094:30:89","nodeType":"YulFunctionCall","src":"28094:30:89"},"nativeSrc":"28091:50:89","nodeType":"YulIf","src":"28091:50:89"},{"nativeSrc":"28150:32:89","nodeType":"YulVariableDeclaration","src":"28150:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"28164:9:89","nodeType":"YulIdentifier","src":"28164:9:89"},{"name":"offset","nativeSrc":"28175:6:89","nodeType":"YulIdentifier","src":"28175:6:89"}],"functionName":{"name":"add","nativeSrc":"28160:3:89","nodeType":"YulIdentifier","src":"28160:3:89"},"nativeSrc":"28160:22:89","nodeType":"YulFunctionCall","src":"28160:22:89"},"variables":[{"name":"_1","nativeSrc":"28154:2:89","nodeType":"YulTypedName","src":"28154:2:89","type":""}]},{"body":{"nativeSrc":"28230:16:89","nodeType":"YulBlock","src":"28230:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28239:1:89","nodeType":"YulLiteral","src":"28239:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"28242:1:89","nodeType":"YulLiteral","src":"28242:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28232:6:89","nodeType":"YulIdentifier","src":"28232:6:89"},"nativeSrc":"28232:12:89","nodeType":"YulFunctionCall","src":"28232:12:89"},"nativeSrc":"28232:12:89","nodeType":"YulExpressionStatement","src":"28232:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"28209:2:89","nodeType":"YulIdentifier","src":"28209:2:89"},{"kind":"number","nativeSrc":"28213:4:89","nodeType":"YulLiteral","src":"28213:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"28205:3:89","nodeType":"YulIdentifier","src":"28205:3:89"},"nativeSrc":"28205:13:89","nodeType":"YulFunctionCall","src":"28205:13:89"},{"name":"dataEnd","nativeSrc":"28220:7:89","nodeType":"YulIdentifier","src":"28220:7:89"}],"functionName":{"name":"slt","nativeSrc":"28201:3:89","nodeType":"YulIdentifier","src":"28201:3:89"},"nativeSrc":"28201:27:89","nodeType":"YulFunctionCall","src":"28201:27:89"}],"functionName":{"name":"iszero","nativeSrc":"28194:6:89","nodeType":"YulIdentifier","src":"28194:6:89"},"nativeSrc":"28194:35:89","nodeType":"YulFunctionCall","src":"28194:35:89"},"nativeSrc":"28191:55:89","nodeType":"YulIf","src":"28191:55:89"},{"nativeSrc":"28255:23:89","nodeType":"YulVariableDeclaration","src":"28255:23:89","value":{"arguments":[{"name":"_1","nativeSrc":"28275:2:89","nodeType":"YulIdentifier","src":"28275:2:89"}],"functionName":{"name":"mload","nativeSrc":"28269:5:89","nodeType":"YulIdentifier","src":"28269:5:89"},"nativeSrc":"28269:9:89","nodeType":"YulFunctionCall","src":"28269:9:89"},"variables":[{"name":"length","nativeSrc":"28259:6:89","nodeType":"YulTypedName","src":"28259:6:89","type":""}]},{"nativeSrc":"28287:105:89","nodeType":"YulVariableDeclaration","src":"28287:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"28384:6:89","nodeType":"YulIdentifier","src":"28384:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"28314:69:89","nodeType":"YulIdentifier","src":"28314:69:89"},"nativeSrc":"28314:77:89","nodeType":"YulFunctionCall","src":"28314:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"28298:15:89","nodeType":"YulIdentifier","src":"28298:15:89"},"nativeSrc":"28298:94:89","nodeType":"YulFunctionCall","src":"28298:94:89"},"variables":[{"name":"dst","nativeSrc":"28291:3:89","nodeType":"YulTypedName","src":"28291:3:89","type":""}]},{"nativeSrc":"28401:16:89","nodeType":"YulVariableDeclaration","src":"28401:16:89","value":{"name":"dst","nativeSrc":"28414:3:89","nodeType":"YulIdentifier","src":"28414:3:89"},"variables":[{"name":"array","nativeSrc":"28405:5:89","nodeType":"YulTypedName","src":"28405:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"28433:3:89","nodeType":"YulIdentifier","src":"28433:3:89"},{"name":"length","nativeSrc":"28438:6:89","nodeType":"YulIdentifier","src":"28438:6:89"}],"functionName":{"name":"mstore","nativeSrc":"28426:6:89","nodeType":"YulIdentifier","src":"28426:6:89"},"nativeSrc":"28426:19:89","nodeType":"YulFunctionCall","src":"28426:19:89"},"nativeSrc":"28426:19:89","nodeType":"YulExpressionStatement","src":"28426:19:89"},{"nativeSrc":"28454:19:89","nodeType":"YulAssignment","src":"28454:19:89","value":{"arguments":[{"name":"dst","nativeSrc":"28465:3:89","nodeType":"YulIdentifier","src":"28465:3:89"},{"kind":"number","nativeSrc":"28470:2:89","nodeType":"YulLiteral","src":"28470:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28461:3:89","nodeType":"YulIdentifier","src":"28461:3:89"},"nativeSrc":"28461:12:89","nodeType":"YulFunctionCall","src":"28461:12:89"},"variableNames":[{"name":"dst","nativeSrc":"28454:3:89","nodeType":"YulIdentifier","src":"28454:3:89"}]},{"nativeSrc":"28482:46:89","nodeType":"YulVariableDeclaration","src":"28482:46:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"28504:2:89","nodeType":"YulIdentifier","src":"28504:2:89"},{"arguments":[{"kind":"number","nativeSrc":"28512:1:89","nodeType":"YulLiteral","src":"28512:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"28515:6:89","nodeType":"YulIdentifier","src":"28515:6:89"}],"functionName":{"name":"shl","nativeSrc":"28508:3:89","nodeType":"YulIdentifier","src":"28508:3:89"},"nativeSrc":"28508:14:89","nodeType":"YulFunctionCall","src":"28508:14:89"}],"functionName":{"name":"add","nativeSrc":"28500:3:89","nodeType":"YulIdentifier","src":"28500:3:89"},"nativeSrc":"28500:23:89","nodeType":"YulFunctionCall","src":"28500:23:89"},{"kind":"number","nativeSrc":"28525:2:89","nodeType":"YulLiteral","src":"28525:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28496:3:89","nodeType":"YulIdentifier","src":"28496:3:89"},"nativeSrc":"28496:32:89","nodeType":"YulFunctionCall","src":"28496:32:89"},"variables":[{"name":"srcEnd","nativeSrc":"28486:6:89","nodeType":"YulTypedName","src":"28486:6:89","type":""}]},{"body":{"nativeSrc":"28560:16:89","nodeType":"YulBlock","src":"28560:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28569:1:89","nodeType":"YulLiteral","src":"28569:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"28572:1:89","nodeType":"YulLiteral","src":"28572:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28562:6:89","nodeType":"YulIdentifier","src":"28562:6:89"},"nativeSrc":"28562:12:89","nodeType":"YulFunctionCall","src":"28562:12:89"},"nativeSrc":"28562:12:89","nodeType":"YulExpressionStatement","src":"28562:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"28543:6:89","nodeType":"YulIdentifier","src":"28543:6:89"},{"name":"dataEnd","nativeSrc":"28551:7:89","nodeType":"YulIdentifier","src":"28551:7:89"}],"functionName":{"name":"gt","nativeSrc":"28540:2:89","nodeType":"YulIdentifier","src":"28540:2:89"},"nativeSrc":"28540:19:89","nodeType":"YulFunctionCall","src":"28540:19:89"},"nativeSrc":"28537:39:89","nodeType":"YulIf","src":"28537:39:89"},{"nativeSrc":"28585:22:89","nodeType":"YulVariableDeclaration","src":"28585:22:89","value":{"arguments":[{"name":"_1","nativeSrc":"28600:2:89","nodeType":"YulIdentifier","src":"28600:2:89"},{"kind":"number","nativeSrc":"28604:2:89","nodeType":"YulLiteral","src":"28604:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28596:3:89","nodeType":"YulIdentifier","src":"28596:3:89"},"nativeSrc":"28596:11:89","nodeType":"YulFunctionCall","src":"28596:11:89"},"variables":[{"name":"src","nativeSrc":"28589:3:89","nodeType":"YulTypedName","src":"28589:3:89","type":""}]},{"body":{"nativeSrc":"28672:2456:89","nodeType":"YulBlock","src":"28672:2456:89","statements":[{"nativeSrc":"28686:29:89","nodeType":"YulVariableDeclaration","src":"28686:29:89","value":{"arguments":[{"name":"src","nativeSrc":"28711:3:89","nodeType":"YulIdentifier","src":"28711:3:89"}],"functionName":{"name":"mload","nativeSrc":"28705:5:89","nodeType":"YulIdentifier","src":"28705:5:89"},"nativeSrc":"28705:10:89","nodeType":"YulFunctionCall","src":"28705:10:89"},"variables":[{"name":"innerOffset","nativeSrc":"28690:11:89","nodeType":"YulTypedName","src":"28690:11:89","type":""}]},{"body":{"nativeSrc":"28767:16:89","nodeType":"YulBlock","src":"28767:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28776:1:89","nodeType":"YulLiteral","src":"28776:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"28779:1:89","nodeType":"YulLiteral","src":"28779:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28769:6:89","nodeType":"YulIdentifier","src":"28769:6:89"},"nativeSrc":"28769:12:89","nodeType":"YulFunctionCall","src":"28769:12:89"},"nativeSrc":"28769:12:89","nodeType":"YulExpressionStatement","src":"28769:12:89"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"28734:11:89","nodeType":"YulIdentifier","src":"28734:11:89"},{"kind":"number","nativeSrc":"28747:18:89","nodeType":"YulLiteral","src":"28747:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"28731:2:89","nodeType":"YulIdentifier","src":"28731:2:89"},"nativeSrc":"28731:35:89","nodeType":"YulFunctionCall","src":"28731:35:89"},"nativeSrc":"28728:55:89","nodeType":"YulIf","src":"28728:55:89"},{"nativeSrc":"28796:30:89","nodeType":"YulVariableDeclaration","src":"28796:30:89","value":{"arguments":[{"name":"_1","nativeSrc":"28810:2:89","nodeType":"YulIdentifier","src":"28810:2:89"},{"name":"innerOffset","nativeSrc":"28814:11:89","nodeType":"YulIdentifier","src":"28814:11:89"}],"functionName":{"name":"add","nativeSrc":"28806:3:89","nodeType":"YulIdentifier","src":"28806:3:89"},"nativeSrc":"28806:20:89","nodeType":"YulFunctionCall","src":"28806:20:89"},"variables":[{"name":"_2","nativeSrc":"28800:2:89","nodeType":"YulTypedName","src":"28800:2:89","type":""}]},{"body":{"nativeSrc":"28886:16:89","nodeType":"YulBlock","src":"28886:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28895:1:89","nodeType":"YulLiteral","src":"28895:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"28898:1:89","nodeType":"YulLiteral","src":"28898:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28888:6:89","nodeType":"YulIdentifier","src":"28888:6:89"},"nativeSrc":"28888:12:89","nodeType":"YulFunctionCall","src":"28888:12:89"},"nativeSrc":"28888:12:89","nodeType":"YulExpressionStatement","src":"28888:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28854:7:89","nodeType":"YulIdentifier","src":"28854:7:89"},{"name":"_2","nativeSrc":"28863:2:89","nodeType":"YulIdentifier","src":"28863:2:89"}],"functionName":{"name":"sub","nativeSrc":"28850:3:89","nodeType":"YulIdentifier","src":"28850:3:89"},"nativeSrc":"28850:16:89","nodeType":"YulFunctionCall","src":"28850:16:89"},{"arguments":[{"kind":"number","nativeSrc":"28872:2:89","nodeType":"YulLiteral","src":"28872:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"28868:3:89","nodeType":"YulIdentifier","src":"28868:3:89"},"nativeSrc":"28868:7:89","nodeType":"YulFunctionCall","src":"28868:7:89"}],"functionName":{"name":"add","nativeSrc":"28846:3:89","nodeType":"YulIdentifier","src":"28846:3:89"},"nativeSrc":"28846:30:89","nodeType":"YulFunctionCall","src":"28846:30:89"},{"kind":"number","nativeSrc":"28878:6:89","nodeType":"YulLiteral","src":"28878:6:89","type":"","value":"0x0180"}],"functionName":{"name":"slt","nativeSrc":"28842:3:89","nodeType":"YulIdentifier","src":"28842:3:89"},"nativeSrc":"28842:43:89","nodeType":"YulFunctionCall","src":"28842:43:89"},"nativeSrc":"28839:63:89","nodeType":"YulIf","src":"28839:63:89"},{"nativeSrc":"28915:35:89","nodeType":"YulVariableDeclaration","src":"28915:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_9701","nativeSrc":"28928:20:89","nodeType":"YulIdentifier","src":"28928:20:89"},"nativeSrc":"28928:22:89","nodeType":"YulFunctionCall","src":"28928:22:89"},"variables":[{"name":"value","nativeSrc":"28919:5:89","nodeType":"YulTypedName","src":"28919:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"28970:5:89","nodeType":"YulIdentifier","src":"28970:5:89"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29010:2:89","nodeType":"YulIdentifier","src":"29010:2:89"},{"kind":"number","nativeSrc":"29014:2:89","nodeType":"YulLiteral","src":"29014:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29006:3:89","nodeType":"YulIdentifier","src":"29006:3:89"},"nativeSrc":"29006:11:89","nodeType":"YulFunctionCall","src":"29006:11:89"}],"functionName":{"name":"abi_decode_uint64_fromMemory","nativeSrc":"28977:28:89","nodeType":"YulIdentifier","src":"28977:28:89"},"nativeSrc":"28977:41:89","nodeType":"YulFunctionCall","src":"28977:41:89"}],"functionName":{"name":"mstore","nativeSrc":"28963:6:89","nodeType":"YulIdentifier","src":"28963:6:89"},"nativeSrc":"28963:56:89","nodeType":"YulFunctionCall","src":"28963:56:89"},"nativeSrc":"28963:56:89","nodeType":"YulExpressionStatement","src":"28963:56:89"},{"nativeSrc":"29032:16:89","nodeType":"YulVariableDeclaration","src":"29032:16:89","value":{"kind":"number","nativeSrc":"29047:1:89","nodeType":"YulLiteral","src":"29047:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"29036:7:89","nodeType":"YulTypedName","src":"29036:7:89","type":""}]},{"nativeSrc":"29061:29:89","nodeType":"YulAssignment","src":"29061:29:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29082:2:89","nodeType":"YulIdentifier","src":"29082:2:89"},{"kind":"number","nativeSrc":"29086:2:89","nodeType":"YulLiteral","src":"29086:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29078:3:89","nodeType":"YulIdentifier","src":"29078:3:89"},"nativeSrc":"29078:11:89","nodeType":"YulFunctionCall","src":"29078:11:89"}],"functionName":{"name":"mload","nativeSrc":"29072:5:89","nodeType":"YulIdentifier","src":"29072:5:89"},"nativeSrc":"29072:18:89","nodeType":"YulFunctionCall","src":"29072:18:89"},"variableNames":[{"name":"value_1","nativeSrc":"29061:7:89","nodeType":"YulIdentifier","src":"29061:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"29114:5:89","nodeType":"YulIdentifier","src":"29114:5:89"},{"kind":"number","nativeSrc":"29121:2:89","nodeType":"YulLiteral","src":"29121:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29110:3:89","nodeType":"YulIdentifier","src":"29110:3:89"},"nativeSrc":"29110:14:89","nodeType":"YulFunctionCall","src":"29110:14:89"},{"name":"value_1","nativeSrc":"29126:7:89","nodeType":"YulIdentifier","src":"29126:7:89"}],"functionName":{"name":"mstore","nativeSrc":"29103:6:89","nodeType":"YulIdentifier","src":"29103:6:89"},"nativeSrc":"29103:31:89","nodeType":"YulFunctionCall","src":"29103:31:89"},"nativeSrc":"29103:31:89","nodeType":"YulExpressionStatement","src":"29103:31:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"29158:5:89","nodeType":"YulIdentifier","src":"29158:5:89"},{"kind":"number","nativeSrc":"29165:2:89","nodeType":"YulLiteral","src":"29165:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29154:3:89","nodeType":"YulIdentifier","src":"29154:3:89"},"nativeSrc":"29154:14:89","nodeType":"YulFunctionCall","src":"29154:14:89"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29204:2:89","nodeType":"YulIdentifier","src":"29204:2:89"},{"kind":"number","nativeSrc":"29208:2:89","nodeType":"YulLiteral","src":"29208:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29200:3:89","nodeType":"YulIdentifier","src":"29200:3:89"},"nativeSrc":"29200:11:89","nodeType":"YulFunctionCall","src":"29200:11:89"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"29170:29:89","nodeType":"YulIdentifier","src":"29170:29:89"},"nativeSrc":"29170:42:89","nodeType":"YulFunctionCall","src":"29170:42:89"}],"functionName":{"name":"mstore","nativeSrc":"29147:6:89","nodeType":"YulIdentifier","src":"29147:6:89"},"nativeSrc":"29147:66:89","nodeType":"YulFunctionCall","src":"29147:66:89"},"nativeSrc":"29147:66:89","nodeType":"YulExpressionStatement","src":"29147:66:89"},{"nativeSrc":"29226:35:89","nodeType":"YulVariableDeclaration","src":"29226:35:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29252:2:89","nodeType":"YulIdentifier","src":"29252:2:89"},{"kind":"number","nativeSrc":"29256:3:89","nodeType":"YulLiteral","src":"29256:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29248:3:89","nodeType":"YulIdentifier","src":"29248:3:89"},"nativeSrc":"29248:12:89","nodeType":"YulFunctionCall","src":"29248:12:89"}],"functionName":{"name":"mload","nativeSrc":"29242:5:89","nodeType":"YulIdentifier","src":"29242:5:89"},"nativeSrc":"29242:19:89","nodeType":"YulFunctionCall","src":"29242:19:89"},"variables":[{"name":"offset_1","nativeSrc":"29230:8:89","nodeType":"YulTypedName","src":"29230:8:89","type":""}]},{"body":{"nativeSrc":"29310:16:89","nodeType":"YulBlock","src":"29310:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29319:1:89","nodeType":"YulLiteral","src":"29319:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"29322:1:89","nodeType":"YulLiteral","src":"29322:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"29312:6:89","nodeType":"YulIdentifier","src":"29312:6:89"},"nativeSrc":"29312:12:89","nodeType":"YulFunctionCall","src":"29312:12:89"},"nativeSrc":"29312:12:89","nodeType":"YulExpressionStatement","src":"29312:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"29280:8:89","nodeType":"YulIdentifier","src":"29280:8:89"},{"kind":"number","nativeSrc":"29290:18:89","nodeType":"YulLiteral","src":"29290:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"29277:2:89","nodeType":"YulIdentifier","src":"29277:2:89"},"nativeSrc":"29277:32:89","nodeType":"YulFunctionCall","src":"29277:32:89"},"nativeSrc":"29274:52:89","nodeType":"YulIf","src":"29274:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"29350:5:89","nodeType":"YulIdentifier","src":"29350:5:89"},{"kind":"number","nativeSrc":"29357:2:89","nodeType":"YulLiteral","src":"29357:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29346:3:89","nodeType":"YulIdentifier","src":"29346:3:89"},"nativeSrc":"29346:14:89","nodeType":"YulFunctionCall","src":"29346:14:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29399:2:89","nodeType":"YulIdentifier","src":"29399:2:89"},{"name":"offset_1","nativeSrc":"29403:8:89","nodeType":"YulIdentifier","src":"29403:8:89"}],"functionName":{"name":"add","nativeSrc":"29395:3:89","nodeType":"YulIdentifier","src":"29395:3:89"},"nativeSrc":"29395:17:89","nodeType":"YulFunctionCall","src":"29395:17:89"},{"kind":"number","nativeSrc":"29414:2:89","nodeType":"YulLiteral","src":"29414:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29391:3:89","nodeType":"YulIdentifier","src":"29391:3:89"},"nativeSrc":"29391:26:89","nodeType":"YulFunctionCall","src":"29391:26:89"},{"name":"dataEnd","nativeSrc":"29419:7:89","nodeType":"YulIdentifier","src":"29419:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"29362:28:89","nodeType":"YulIdentifier","src":"29362:28:89"},"nativeSrc":"29362:65:89","nodeType":"YulFunctionCall","src":"29362:65:89"}],"functionName":{"name":"mstore","nativeSrc":"29339:6:89","nodeType":"YulIdentifier","src":"29339:6:89"},"nativeSrc":"29339:89:89","nodeType":"YulFunctionCall","src":"29339:89:89"},"nativeSrc":"29339:89:89","nodeType":"YulExpressionStatement","src":"29339:89:89"},{"nativeSrc":"29441:35:89","nodeType":"YulVariableDeclaration","src":"29441:35:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29467:2:89","nodeType":"YulIdentifier","src":"29467:2:89"},{"kind":"number","nativeSrc":"29471:3:89","nodeType":"YulLiteral","src":"29471:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"29463:3:89","nodeType":"YulIdentifier","src":"29463:3:89"},"nativeSrc":"29463:12:89","nodeType":"YulFunctionCall","src":"29463:12:89"}],"functionName":{"name":"mload","nativeSrc":"29457:5:89","nodeType":"YulIdentifier","src":"29457:5:89"},"nativeSrc":"29457:19:89","nodeType":"YulFunctionCall","src":"29457:19:89"},"variables":[{"name":"offset_2","nativeSrc":"29445:8:89","nodeType":"YulTypedName","src":"29445:8:89","type":""}]},{"body":{"nativeSrc":"29525:16:89","nodeType":"YulBlock","src":"29525:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29534:1:89","nodeType":"YulLiteral","src":"29534:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"29537:1:89","nodeType":"YulLiteral","src":"29537:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"29527:6:89","nodeType":"YulIdentifier","src":"29527:6:89"},"nativeSrc":"29527:12:89","nodeType":"YulFunctionCall","src":"29527:12:89"},"nativeSrc":"29527:12:89","nodeType":"YulExpressionStatement","src":"29527:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"29495:8:89","nodeType":"YulIdentifier","src":"29495:8:89"},{"kind":"number","nativeSrc":"29505:18:89","nodeType":"YulLiteral","src":"29505:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"29492:2:89","nodeType":"YulIdentifier","src":"29492:2:89"},"nativeSrc":"29492:32:89","nodeType":"YulFunctionCall","src":"29492:32:89"},"nativeSrc":"29489:52:89","nodeType":"YulIf","src":"29489:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"29565:5:89","nodeType":"YulIdentifier","src":"29565:5:89"},{"kind":"number","nativeSrc":"29572:3:89","nodeType":"YulLiteral","src":"29572:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29561:3:89","nodeType":"YulIdentifier","src":"29561:3:89"},"nativeSrc":"29561:15:89","nodeType":"YulFunctionCall","src":"29561:15:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29615:2:89","nodeType":"YulIdentifier","src":"29615:2:89"},{"name":"offset_2","nativeSrc":"29619:8:89","nodeType":"YulIdentifier","src":"29619:8:89"}],"functionName":{"name":"add","nativeSrc":"29611:3:89","nodeType":"YulIdentifier","src":"29611:3:89"},"nativeSrc":"29611:17:89","nodeType":"YulFunctionCall","src":"29611:17:89"},{"kind":"number","nativeSrc":"29630:2:89","nodeType":"YulLiteral","src":"29630:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29607:3:89","nodeType":"YulIdentifier","src":"29607:3:89"},"nativeSrc":"29607:26:89","nodeType":"YulFunctionCall","src":"29607:26:89"},{"name":"dataEnd","nativeSrc":"29635:7:89","nodeType":"YulIdentifier","src":"29635:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"29578:28:89","nodeType":"YulIdentifier","src":"29578:28:89"},"nativeSrc":"29578:65:89","nodeType":"YulFunctionCall","src":"29578:65:89"}],"functionName":{"name":"mstore","nativeSrc":"29554:6:89","nodeType":"YulIdentifier","src":"29554:6:89"},"nativeSrc":"29554:90:89","nodeType":"YulFunctionCall","src":"29554:90:89"},"nativeSrc":"29554:90:89","nodeType":"YulExpressionStatement","src":"29554:90:89"},{"nativeSrc":"29657:16:89","nodeType":"YulVariableDeclaration","src":"29657:16:89","value":{"kind":"number","nativeSrc":"29672:1:89","nodeType":"YulLiteral","src":"29672:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"29661:7:89","nodeType":"YulTypedName","src":"29661:7:89","type":""}]},{"nativeSrc":"29686:30:89","nodeType":"YulAssignment","src":"29686:30:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29707:2:89","nodeType":"YulIdentifier","src":"29707:2:89"},{"kind":"number","nativeSrc":"29711:3:89","nodeType":"YulLiteral","src":"29711:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"29703:3:89","nodeType":"YulIdentifier","src":"29703:3:89"},"nativeSrc":"29703:12:89","nodeType":"YulFunctionCall","src":"29703:12:89"}],"functionName":{"name":"mload","nativeSrc":"29697:5:89","nodeType":"YulIdentifier","src":"29697:5:89"},"nativeSrc":"29697:19:89","nodeType":"YulFunctionCall","src":"29697:19:89"},"variableNames":[{"name":"value_2","nativeSrc":"29686:7:89","nodeType":"YulIdentifier","src":"29686:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"29740:5:89","nodeType":"YulIdentifier","src":"29740:5:89"},{"kind":"number","nativeSrc":"29747:3:89","nodeType":"YulLiteral","src":"29747:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"29736:3:89","nodeType":"YulIdentifier","src":"29736:3:89"},"nativeSrc":"29736:15:89","nodeType":"YulFunctionCall","src":"29736:15:89"},{"name":"value_2","nativeSrc":"29753:7:89","nodeType":"YulIdentifier","src":"29753:7:89"}],"functionName":{"name":"mstore","nativeSrc":"29729:6:89","nodeType":"YulIdentifier","src":"29729:6:89"},"nativeSrc":"29729:32:89","nodeType":"YulFunctionCall","src":"29729:32:89"},"nativeSrc":"29729:32:89","nodeType":"YulExpressionStatement","src":"29729:32:89"},{"nativeSrc":"29774:16:89","nodeType":"YulVariableDeclaration","src":"29774:16:89","value":{"kind":"number","nativeSrc":"29789:1:89","nodeType":"YulLiteral","src":"29789:1:89","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"29778:7:89","nodeType":"YulTypedName","src":"29778:7:89","type":""}]},{"nativeSrc":"29803:30:89","nodeType":"YulAssignment","src":"29803:30:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29824:2:89","nodeType":"YulIdentifier","src":"29824:2:89"},{"kind":"number","nativeSrc":"29828:3:89","nodeType":"YulLiteral","src":"29828:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"29820:3:89","nodeType":"YulIdentifier","src":"29820:3:89"},"nativeSrc":"29820:12:89","nodeType":"YulFunctionCall","src":"29820:12:89"}],"functionName":{"name":"mload","nativeSrc":"29814:5:89","nodeType":"YulIdentifier","src":"29814:5:89"},"nativeSrc":"29814:19:89","nodeType":"YulFunctionCall","src":"29814:19:89"},"variableNames":[{"name":"value_3","nativeSrc":"29803:7:89","nodeType":"YulIdentifier","src":"29803:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"29857:5:89","nodeType":"YulIdentifier","src":"29857:5:89"},{"kind":"number","nativeSrc":"29864:3:89","nodeType":"YulLiteral","src":"29864:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"29853:3:89","nodeType":"YulIdentifier","src":"29853:3:89"},"nativeSrc":"29853:15:89","nodeType":"YulFunctionCall","src":"29853:15:89"},{"name":"value_3","nativeSrc":"29870:7:89","nodeType":"YulIdentifier","src":"29870:7:89"}],"functionName":{"name":"mstore","nativeSrc":"29846:6:89","nodeType":"YulIdentifier","src":"29846:6:89"},"nativeSrc":"29846:32:89","nodeType":"YulFunctionCall","src":"29846:32:89"},"nativeSrc":"29846:32:89","nodeType":"YulExpressionStatement","src":"29846:32:89"},{"nativeSrc":"29891:35:89","nodeType":"YulVariableDeclaration","src":"29891:35:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"29917:2:89","nodeType":"YulIdentifier","src":"29917:2:89"},{"kind":"number","nativeSrc":"29921:3:89","nodeType":"YulLiteral","src":"29921:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"29913:3:89","nodeType":"YulIdentifier","src":"29913:3:89"},"nativeSrc":"29913:12:89","nodeType":"YulFunctionCall","src":"29913:12:89"}],"functionName":{"name":"mload","nativeSrc":"29907:5:89","nodeType":"YulIdentifier","src":"29907:5:89"},"nativeSrc":"29907:19:89","nodeType":"YulFunctionCall","src":"29907:19:89"},"variables":[{"name":"offset_3","nativeSrc":"29895:8:89","nodeType":"YulTypedName","src":"29895:8:89","type":""}]},{"body":{"nativeSrc":"29975:16:89","nodeType":"YulBlock","src":"29975:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29984:1:89","nodeType":"YulLiteral","src":"29984:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"29987:1:89","nodeType":"YulLiteral","src":"29987:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"29977:6:89","nodeType":"YulIdentifier","src":"29977:6:89"},"nativeSrc":"29977:12:89","nodeType":"YulFunctionCall","src":"29977:12:89"},"nativeSrc":"29977:12:89","nodeType":"YulExpressionStatement","src":"29977:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"29945:8:89","nodeType":"YulIdentifier","src":"29945:8:89"},{"kind":"number","nativeSrc":"29955:18:89","nodeType":"YulLiteral","src":"29955:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"29942:2:89","nodeType":"YulIdentifier","src":"29942:2:89"},"nativeSrc":"29942:32:89","nodeType":"YulFunctionCall","src":"29942:32:89"},"nativeSrc":"29939:52:89","nodeType":"YulIf","src":"29939:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30015:5:89","nodeType":"YulIdentifier","src":"30015:5:89"},{"kind":"number","nativeSrc":"30022:3:89","nodeType":"YulLiteral","src":"30022:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"30011:3:89","nodeType":"YulIdentifier","src":"30011:3:89"},"nativeSrc":"30011:15:89","nodeType":"YulFunctionCall","src":"30011:15:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"30075:2:89","nodeType":"YulIdentifier","src":"30075:2:89"},{"name":"offset_3","nativeSrc":"30079:8:89","nodeType":"YulIdentifier","src":"30079:8:89"}],"functionName":{"name":"add","nativeSrc":"30071:3:89","nodeType":"YulIdentifier","src":"30071:3:89"},"nativeSrc":"30071:17:89","nodeType":"YulFunctionCall","src":"30071:17:89"},{"kind":"number","nativeSrc":"30090:2:89","nodeType":"YulLiteral","src":"30090:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30067:3:89","nodeType":"YulIdentifier","src":"30067:3:89"},"nativeSrc":"30067:26:89","nodeType":"YulFunctionCall","src":"30067:26:89"},{"name":"dataEnd","nativeSrc":"30095:7:89","nodeType":"YulIdentifier","src":"30095:7:89"}],"functionName":{"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"30028:38:89","nodeType":"YulIdentifier","src":"30028:38:89"},"nativeSrc":"30028:75:89","nodeType":"YulFunctionCall","src":"30028:75:89"}],"functionName":{"name":"mstore","nativeSrc":"30004:6:89","nodeType":"YulIdentifier","src":"30004:6:89"},"nativeSrc":"30004:100:89","nodeType":"YulFunctionCall","src":"30004:100:89"},"nativeSrc":"30004:100:89","nodeType":"YulExpressionStatement","src":"30004:100:89"},{"nativeSrc":"30117:35:89","nodeType":"YulVariableDeclaration","src":"30117:35:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"30143:2:89","nodeType":"YulIdentifier","src":"30143:2:89"},{"kind":"number","nativeSrc":"30147:3:89","nodeType":"YulLiteral","src":"30147:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"30139:3:89","nodeType":"YulIdentifier","src":"30139:3:89"},"nativeSrc":"30139:12:89","nodeType":"YulFunctionCall","src":"30139:12:89"}],"functionName":{"name":"mload","nativeSrc":"30133:5:89","nodeType":"YulIdentifier","src":"30133:5:89"},"nativeSrc":"30133:19:89","nodeType":"YulFunctionCall","src":"30133:19:89"},"variables":[{"name":"offset_4","nativeSrc":"30121:8:89","nodeType":"YulTypedName","src":"30121:8:89","type":""}]},{"body":{"nativeSrc":"30201:16:89","nodeType":"YulBlock","src":"30201:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30210:1:89","nodeType":"YulLiteral","src":"30210:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"30213:1:89","nodeType":"YulLiteral","src":"30213:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30203:6:89","nodeType":"YulIdentifier","src":"30203:6:89"},"nativeSrc":"30203:12:89","nodeType":"YulFunctionCall","src":"30203:12:89"},"nativeSrc":"30203:12:89","nodeType":"YulExpressionStatement","src":"30203:12:89"}]},"condition":{"arguments":[{"name":"offset_4","nativeSrc":"30171:8:89","nodeType":"YulIdentifier","src":"30171:8:89"},{"kind":"number","nativeSrc":"30181:18:89","nodeType":"YulLiteral","src":"30181:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30168:2:89","nodeType":"YulIdentifier","src":"30168:2:89"},"nativeSrc":"30168:32:89","nodeType":"YulFunctionCall","src":"30168:32:89"},"nativeSrc":"30165:52:89","nodeType":"YulIf","src":"30165:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30241:5:89","nodeType":"YulIdentifier","src":"30241:5:89"},{"kind":"number","nativeSrc":"30248:3:89","nodeType":"YulLiteral","src":"30248:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"30237:3:89","nodeType":"YulIdentifier","src":"30237:3:89"},"nativeSrc":"30237:15:89","nodeType":"YulFunctionCall","src":"30237:15:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"30313:2:89","nodeType":"YulIdentifier","src":"30313:2:89"},{"name":"offset_4","nativeSrc":"30317:8:89","nodeType":"YulIdentifier","src":"30317:8:89"}],"functionName":{"name":"add","nativeSrc":"30309:3:89","nodeType":"YulIdentifier","src":"30309:3:89"},"nativeSrc":"30309:17:89","nodeType":"YulFunctionCall","src":"30309:17:89"},{"kind":"number","nativeSrc":"30328:2:89","nodeType":"YulLiteral","src":"30328:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30305:3:89","nodeType":"YulIdentifier","src":"30305:3:89"},"nativeSrc":"30305:26:89","nodeType":"YulFunctionCall","src":"30305:26:89"},{"name":"dataEnd","nativeSrc":"30333:7:89","nodeType":"YulIdentifier","src":"30333:7:89"}],"functionName":{"name":"abi_decode_array_struct_TokenAmount_dyn_fromMemory","nativeSrc":"30254:50:89","nodeType":"YulIdentifier","src":"30254:50:89"},"nativeSrc":"30254:87:89","nodeType":"YulFunctionCall","src":"30254:87:89"}],"functionName":{"name":"mstore","nativeSrc":"30230:6:89","nodeType":"YulIdentifier","src":"30230:6:89"},"nativeSrc":"30230:112:89","nodeType":"YulFunctionCall","src":"30230:112:89"},"nativeSrc":"30230:112:89","nodeType":"YulExpressionStatement","src":"30230:112:89"},{"nativeSrc":"30355:35:89","nodeType":"YulVariableDeclaration","src":"30355:35:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"30381:2:89","nodeType":"YulIdentifier","src":"30381:2:89"},{"kind":"number","nativeSrc":"30385:3:89","nodeType":"YulLiteral","src":"30385:3:89","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"30377:3:89","nodeType":"YulIdentifier","src":"30377:3:89"},"nativeSrc":"30377:12:89","nodeType":"YulFunctionCall","src":"30377:12:89"}],"functionName":{"name":"mload","nativeSrc":"30371:5:89","nodeType":"YulIdentifier","src":"30371:5:89"},"nativeSrc":"30371:19:89","nodeType":"YulFunctionCall","src":"30371:19:89"},"variables":[{"name":"offset_5","nativeSrc":"30359:8:89","nodeType":"YulTypedName","src":"30359:8:89","type":""}]},{"body":{"nativeSrc":"30439:16:89","nodeType":"YulBlock","src":"30439:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30448:1:89","nodeType":"YulLiteral","src":"30448:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"30451:1:89","nodeType":"YulLiteral","src":"30451:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30441:6:89","nodeType":"YulIdentifier","src":"30441:6:89"},"nativeSrc":"30441:12:89","nodeType":"YulFunctionCall","src":"30441:12:89"},"nativeSrc":"30441:12:89","nodeType":"YulExpressionStatement","src":"30441:12:89"}]},"condition":{"arguments":[{"name":"offset_5","nativeSrc":"30409:8:89","nodeType":"YulIdentifier","src":"30409:8:89"},{"kind":"number","nativeSrc":"30419:18:89","nodeType":"YulLiteral","src":"30419:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30406:2:89","nodeType":"YulIdentifier","src":"30406:2:89"},"nativeSrc":"30406:32:89","nodeType":"YulFunctionCall","src":"30406:32:89"},"nativeSrc":"30403:52:89","nodeType":"YulIf","src":"30403:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30479:5:89","nodeType":"YulIdentifier","src":"30479:5:89"},{"kind":"number","nativeSrc":"30486:3:89","nodeType":"YulLiteral","src":"30486:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"30475:3:89","nodeType":"YulIdentifier","src":"30475:3:89"},"nativeSrc":"30475:15:89","nodeType":"YulFunctionCall","src":"30475:15:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"30551:2:89","nodeType":"YulIdentifier","src":"30551:2:89"},{"name":"offset_5","nativeSrc":"30555:8:89","nodeType":"YulIdentifier","src":"30555:8:89"}],"functionName":{"name":"add","nativeSrc":"30547:3:89","nodeType":"YulIdentifier","src":"30547:3:89"},"nativeSrc":"30547:17:89","nodeType":"YulFunctionCall","src":"30547:17:89"},{"kind":"number","nativeSrc":"30566:2:89","nodeType":"YulLiteral","src":"30566:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30543:3:89","nodeType":"YulIdentifier","src":"30543:3:89"},"nativeSrc":"30543:26:89","nodeType":"YulFunctionCall","src":"30543:26:89"},{"name":"dataEnd","nativeSrc":"30571:7:89","nodeType":"YulIdentifier","src":"30571:7:89"}],"functionName":{"name":"abi_decode_array_struct_TokenAmount_dyn_fromMemory","nativeSrc":"30492:50:89","nodeType":"YulIdentifier","src":"30492:50:89"},"nativeSrc":"30492:87:89","nodeType":"YulFunctionCall","src":"30492:87:89"}],"functionName":{"name":"mstore","nativeSrc":"30468:6:89","nodeType":"YulIdentifier","src":"30468:6:89"},"nativeSrc":"30468:112:89","nodeType":"YulFunctionCall","src":"30468:112:89"},"nativeSrc":"30468:112:89","nodeType":"YulExpressionStatement","src":"30468:112:89"},{"nativeSrc":"30593:35:89","nodeType":"YulVariableDeclaration","src":"30593:35:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"30619:2:89","nodeType":"YulIdentifier","src":"30619:2:89"},{"kind":"number","nativeSrc":"30623:3:89","nodeType":"YulLiteral","src":"30623:3:89","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"30615:3:89","nodeType":"YulIdentifier","src":"30615:3:89"},"nativeSrc":"30615:12:89","nodeType":"YulFunctionCall","src":"30615:12:89"}],"functionName":{"name":"mload","nativeSrc":"30609:5:89","nodeType":"YulIdentifier","src":"30609:5:89"},"nativeSrc":"30609:19:89","nodeType":"YulFunctionCall","src":"30609:19:89"},"variables":[{"name":"offset_6","nativeSrc":"30597:8:89","nodeType":"YulTypedName","src":"30597:8:89","type":""}]},{"body":{"nativeSrc":"30677:16:89","nodeType":"YulBlock","src":"30677:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30686:1:89","nodeType":"YulLiteral","src":"30686:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"30689:1:89","nodeType":"YulLiteral","src":"30689:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30679:6:89","nodeType":"YulIdentifier","src":"30679:6:89"},"nativeSrc":"30679:12:89","nodeType":"YulFunctionCall","src":"30679:12:89"},"nativeSrc":"30679:12:89","nodeType":"YulExpressionStatement","src":"30679:12:89"}]},"condition":{"arguments":[{"name":"offset_6","nativeSrc":"30647:8:89","nodeType":"YulIdentifier","src":"30647:8:89"},{"kind":"number","nativeSrc":"30657:18:89","nodeType":"YulLiteral","src":"30657:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30644:2:89","nodeType":"YulIdentifier","src":"30644:2:89"},"nativeSrc":"30644:32:89","nodeType":"YulFunctionCall","src":"30644:32:89"},"nativeSrc":"30641:52:89","nodeType":"YulIf","src":"30641:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30717:5:89","nodeType":"YulIdentifier","src":"30717:5:89"},{"kind":"number","nativeSrc":"30724:3:89","nodeType":"YulLiteral","src":"30724:3:89","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"30713:3:89","nodeType":"YulIdentifier","src":"30713:3:89"},"nativeSrc":"30713:15:89","nodeType":"YulFunctionCall","src":"30713:15:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"30787:2:89","nodeType":"YulIdentifier","src":"30787:2:89"},{"name":"offset_6","nativeSrc":"30791:8:89","nodeType":"YulIdentifier","src":"30791:8:89"}],"functionName":{"name":"add","nativeSrc":"30783:3:89","nodeType":"YulIdentifier","src":"30783:3:89"},"nativeSrc":"30783:17:89","nodeType":"YulFunctionCall","src":"30783:17:89"},{"kind":"number","nativeSrc":"30802:2:89","nodeType":"YulLiteral","src":"30802:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30779:3:89","nodeType":"YulIdentifier","src":"30779:3:89"},"nativeSrc":"30779:26:89","nodeType":"YulFunctionCall","src":"30779:26:89"},{"name":"dataEnd","nativeSrc":"30807:7:89","nodeType":"YulIdentifier","src":"30807:7:89"}],"functionName":{"name":"abi_decode_array_struct_NFTAmount_dyn_fromMemory","nativeSrc":"30730:48:89","nodeType":"YulIdentifier","src":"30730:48:89"},"nativeSrc":"30730:85:89","nodeType":"YulFunctionCall","src":"30730:85:89"}],"functionName":{"name":"mstore","nativeSrc":"30706:6:89","nodeType":"YulIdentifier","src":"30706:6:89"},"nativeSrc":"30706:110:89","nodeType":"YulFunctionCall","src":"30706:110:89"},"nativeSrc":"30706:110:89","nodeType":"YulExpressionStatement","src":"30706:110:89"},{"nativeSrc":"30829:38:89","nodeType":"YulVariableDeclaration","src":"30829:38:89","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"30855:2:89","nodeType":"YulIdentifier","src":"30855:2:89"},{"kind":"number","nativeSrc":"30859:6:89","nodeType":"YulLiteral","src":"30859:6:89","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"30851:3:89","nodeType":"YulIdentifier","src":"30851:3:89"},"nativeSrc":"30851:15:89","nodeType":"YulFunctionCall","src":"30851:15:89"}],"functionName":{"name":"mload","nativeSrc":"30845:5:89","nodeType":"YulIdentifier","src":"30845:5:89"},"nativeSrc":"30845:22:89","nodeType":"YulFunctionCall","src":"30845:22:89"},"variables":[{"name":"offset_7","nativeSrc":"30833:8:89","nodeType":"YulTypedName","src":"30833:8:89","type":""}]},{"body":{"nativeSrc":"30916:16:89","nodeType":"YulBlock","src":"30916:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30925:1:89","nodeType":"YulLiteral","src":"30925:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"30928:1:89","nodeType":"YulLiteral","src":"30928:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30918:6:89","nodeType":"YulIdentifier","src":"30918:6:89"},"nativeSrc":"30918:12:89","nodeType":"YulFunctionCall","src":"30918:12:89"},"nativeSrc":"30918:12:89","nodeType":"YulExpressionStatement","src":"30918:12:89"}]},"condition":{"arguments":[{"name":"offset_7","nativeSrc":"30886:8:89","nodeType":"YulIdentifier","src":"30886:8:89"},{"kind":"number","nativeSrc":"30896:18:89","nodeType":"YulLiteral","src":"30896:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30883:2:89","nodeType":"YulIdentifier","src":"30883:2:89"},"nativeSrc":"30883:32:89","nodeType":"YulFunctionCall","src":"30883:32:89"},"nativeSrc":"30880:52:89","nodeType":"YulIf","src":"30880:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30956:5:89","nodeType":"YulIdentifier","src":"30956:5:89"},{"kind":"number","nativeSrc":"30963:3:89","nodeType":"YulLiteral","src":"30963:3:89","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"30952:3:89","nodeType":"YulIdentifier","src":"30952:3:89"},"nativeSrc":"30952:15:89","nodeType":"YulFunctionCall","src":"30952:15:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"31026:2:89","nodeType":"YulIdentifier","src":"31026:2:89"},{"name":"offset_7","nativeSrc":"31030:8:89","nodeType":"YulIdentifier","src":"31030:8:89"}],"functionName":{"name":"add","nativeSrc":"31022:3:89","nodeType":"YulIdentifier","src":"31022:3:89"},"nativeSrc":"31022:17:89","nodeType":"YulFunctionCall","src":"31022:17:89"},{"kind":"number","nativeSrc":"31041:2:89","nodeType":"YulLiteral","src":"31041:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31018:3:89","nodeType":"YulIdentifier","src":"31018:3:89"},"nativeSrc":"31018:26:89","nodeType":"YulFunctionCall","src":"31018:26:89"},{"name":"dataEnd","nativeSrc":"31046:7:89","nodeType":"YulIdentifier","src":"31046:7:89"}],"functionName":{"name":"abi_decode_array_struct_NFTAmount_dyn_fromMemory","nativeSrc":"30969:48:89","nodeType":"YulIdentifier","src":"30969:48:89"},"nativeSrc":"30969:85:89","nodeType":"YulFunctionCall","src":"30969:85:89"}],"functionName":{"name":"mstore","nativeSrc":"30945:6:89","nodeType":"YulIdentifier","src":"30945:6:89"},"nativeSrc":"30945:110:89","nodeType":"YulFunctionCall","src":"30945:110:89"},"nativeSrc":"30945:110:89","nodeType":"YulExpressionStatement","src":"30945:110:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"31075:3:89","nodeType":"YulIdentifier","src":"31075:3:89"},{"name":"value","nativeSrc":"31080:5:89","nodeType":"YulIdentifier","src":"31080:5:89"}],"functionName":{"name":"mstore","nativeSrc":"31068:6:89","nodeType":"YulIdentifier","src":"31068:6:89"},"nativeSrc":"31068:18:89","nodeType":"YulFunctionCall","src":"31068:18:89"},"nativeSrc":"31068:18:89","nodeType":"YulExpressionStatement","src":"31068:18:89"},{"nativeSrc":"31099:19:89","nodeType":"YulAssignment","src":"31099:19:89","value":{"arguments":[{"name":"dst","nativeSrc":"31110:3:89","nodeType":"YulIdentifier","src":"31110:3:89"},{"kind":"number","nativeSrc":"31115:2:89","nodeType":"YulLiteral","src":"31115:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31106:3:89","nodeType":"YulIdentifier","src":"31106:3:89"},"nativeSrc":"31106:12:89","nodeType":"YulFunctionCall","src":"31106:12:89"},"variableNames":[{"name":"dst","nativeSrc":"31099:3:89","nodeType":"YulIdentifier","src":"31099:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"28627:3:89","nodeType":"YulIdentifier","src":"28627:3:89"},{"name":"srcEnd","nativeSrc":"28632:6:89","nodeType":"YulIdentifier","src":"28632:6:89"}],"functionName":{"name":"lt","nativeSrc":"28624:2:89","nodeType":"YulIdentifier","src":"28624:2:89"},"nativeSrc":"28624:15:89","nodeType":"YulFunctionCall","src":"28624:15:89"},"nativeSrc":"28616:2512:89","nodeType":"YulForLoop","post":{"nativeSrc":"28640:23:89","nodeType":"YulBlock","src":"28640:23:89","statements":[{"nativeSrc":"28642:19:89","nodeType":"YulAssignment","src":"28642:19:89","value":{"arguments":[{"name":"src","nativeSrc":"28653:3:89","nodeType":"YulIdentifier","src":"28653:3:89"},{"kind":"number","nativeSrc":"28658:2:89","nodeType":"YulLiteral","src":"28658:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28649:3:89","nodeType":"YulIdentifier","src":"28649:3:89"},"nativeSrc":"28649:12:89","nodeType":"YulFunctionCall","src":"28649:12:89"},"variableNames":[{"name":"src","nativeSrc":"28642:3:89","nodeType":"YulIdentifier","src":"28642:3:89"}]}]},"pre":{"nativeSrc":"28620:3:89","nodeType":"YulBlock","src":"28620:3:89","statements":[]},"src":"28616:2512:89"},{"nativeSrc":"31137:15:89","nodeType":"YulAssignment","src":"31137:15:89","value":{"name":"array","nativeSrc":"31147:5:89","nodeType":"YulIdentifier","src":"31147:5:89"},"variableNames":[{"name":"value0","nativeSrc":"31137:6:89","nodeType":"YulIdentifier","src":"31137:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"27826:3332:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27947:9:89","nodeType":"YulTypedName","src":"27947:9:89","type":""},{"name":"dataEnd","nativeSrc":"27958:7:89","nodeType":"YulTypedName","src":"27958:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27970:6:89","nodeType":"YulTypedName","src":"27970:6:89","type":""}],"src":"27826:3332:89"},{"body":{"nativeSrc":"31412:140:89","nodeType":"YulBlock","src":"31412:140:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31429:9:89","nodeType":"YulIdentifier","src":"31429:9:89"},{"kind":"number","nativeSrc":"31440:2:89","nodeType":"YulLiteral","src":"31440:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31422:6:89","nodeType":"YulIdentifier","src":"31422:6:89"},"nativeSrc":"31422:21:89","nodeType":"YulFunctionCall","src":"31422:21:89"},"nativeSrc":"31422:21:89","nodeType":"YulExpressionStatement","src":"31422:21:89"},{"nativeSrc":"31452:94:89","nodeType":"YulAssignment","src":"31452:94:89","value":{"arguments":[{"name":"value0","nativeSrc":"31519:6:89","nodeType":"YulIdentifier","src":"31519:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"31531:9:89","nodeType":"YulIdentifier","src":"31531:9:89"},{"kind":"number","nativeSrc":"31542:2:89","nodeType":"YulLiteral","src":"31542:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31527:3:89","nodeType":"YulIdentifier","src":"31527:3:89"},"nativeSrc":"31527:18:89","nodeType":"YulFunctionCall","src":"31527:18:89"}],"functionName":{"name":"abi_encode_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"31460:58:89","nodeType":"YulIdentifier","src":"31460:58:89"},"nativeSrc":"31460:86:89","nodeType":"YulFunctionCall","src":"31460:86:89"},"variableNames":[{"name":"tail","nativeSrc":"31452:4:89","nodeType":"YulIdentifier","src":"31452:4:89"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"31163:389:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31381:9:89","nodeType":"YulTypedName","src":"31381:9:89","type":""},{"name":"value0","nativeSrc":"31392:6:89","nodeType":"YulTypedName","src":"31392:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31403:4:89","nodeType":"YulTypedName","src":"31403:4:89","type":""}],"src":"31163:389:89"},{"body":{"nativeSrc":"31676:99:89","nodeType":"YulBlock","src":"31676:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31693:9:89","nodeType":"YulIdentifier","src":"31693:9:89"},{"kind":"number","nativeSrc":"31704:2:89","nodeType":"YulLiteral","src":"31704:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31686:6:89","nodeType":"YulIdentifier","src":"31686:6:89"},"nativeSrc":"31686:21:89","nodeType":"YulFunctionCall","src":"31686:21:89"},"nativeSrc":"31686:21:89","nodeType":"YulExpressionStatement","src":"31686:21:89"},{"nativeSrc":"31716:53:89","nodeType":"YulAssignment","src":"31716:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"31742:6:89","nodeType":"YulIdentifier","src":"31742:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"31754:9:89","nodeType":"YulIdentifier","src":"31754:9:89"},{"kind":"number","nativeSrc":"31765:2:89","nodeType":"YulLiteral","src":"31765:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31750:3:89","nodeType":"YulIdentifier","src":"31750:3:89"},"nativeSrc":"31750:18:89","nodeType":"YulFunctionCall","src":"31750:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"31724:17:89","nodeType":"YulIdentifier","src":"31724:17:89"},"nativeSrc":"31724:45:89","nodeType":"YulFunctionCall","src":"31724:45:89"},"variableNames":[{"name":"tail","nativeSrc":"31716:4:89","nodeType":"YulIdentifier","src":"31716:4:89"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"31557:218:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31645:9:89","nodeType":"YulTypedName","src":"31645:9:89","type":""},{"name":"value0","nativeSrc":"31656:6:89","nodeType":"YulTypedName","src":"31656:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31667:4:89","nodeType":"YulTypedName","src":"31667:4:89","type":""}],"src":"31557:218:89"},{"body":{"nativeSrc":"31828:84:89","nodeType":"YulBlock","src":"31828:84:89","statements":[{"nativeSrc":"31838:29:89","nodeType":"YulAssignment","src":"31838:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"31860:6:89","nodeType":"YulIdentifier","src":"31860:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"31847:12:89","nodeType":"YulIdentifier","src":"31847:12:89"},"nativeSrc":"31847:20:89","nodeType":"YulFunctionCall","src":"31847:20:89"},"variableNames":[{"name":"value","nativeSrc":"31838:5:89","nodeType":"YulIdentifier","src":"31838:5:89"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"31900:5:89","nodeType":"YulIdentifier","src":"31900:5:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"31876:23:89","nodeType":"YulIdentifier","src":"31876:23:89"},"nativeSrc":"31876:30:89","nodeType":"YulFunctionCall","src":"31876:30:89"},"nativeSrc":"31876:30:89","nodeType":"YulExpressionStatement","src":"31876:30:89"}]},"name":"abi_decode_uint64","nativeSrc":"31780:132:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"31807:6:89","nodeType":"YulTypedName","src":"31807:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"31818:5:89","nodeType":"YulTypedName","src":"31818:5:89","type":""}],"src":"31780:132:89"},{"body":{"nativeSrc":"31985:343:89","nodeType":"YulBlock","src":"31985:343:89","statements":[{"body":{"nativeSrc":"32029:16:89","nodeType":"YulBlock","src":"32029:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32038:1:89","nodeType":"YulLiteral","src":"32038:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"32041:1:89","nodeType":"YulLiteral","src":"32041:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32031:6:89","nodeType":"YulIdentifier","src":"32031:6:89"},"nativeSrc":"32031:12:89","nodeType":"YulFunctionCall","src":"32031:12:89"},"nativeSrc":"32031:12:89","nodeType":"YulExpressionStatement","src":"32031:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"32006:3:89","nodeType":"YulIdentifier","src":"32006:3:89"},{"name":"headStart","nativeSrc":"32011:9:89","nodeType":"YulIdentifier","src":"32011:9:89"}],"functionName":{"name":"sub","nativeSrc":"32002:3:89","nodeType":"YulIdentifier","src":"32002:3:89"},"nativeSrc":"32002:19:89","nodeType":"YulFunctionCall","src":"32002:19:89"},{"kind":"number","nativeSrc":"32023:4:89","nodeType":"YulLiteral","src":"32023:4:89","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"31998:3:89","nodeType":"YulIdentifier","src":"31998:3:89"},"nativeSrc":"31998:30:89","nodeType":"YulFunctionCall","src":"31998:30:89"},"nativeSrc":"31995:50:89","nodeType":"YulIf","src":"31995:50:89"},{"nativeSrc":"32054:31:89","nodeType":"YulAssignment","src":"32054:31:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_9694","nativeSrc":"32063:20:89","nodeType":"YulIdentifier","src":"32063:20:89"},"nativeSrc":"32063:22:89","nodeType":"YulFunctionCall","src":"32063:22:89"},"variableNames":[{"name":"value","nativeSrc":"32054:5:89","nodeType":"YulIdentifier","src":"32054:5:89"}]},{"nativeSrc":"32094:38:89","nodeType":"YulVariableDeclaration","src":"32094:38:89","value":{"arguments":[{"name":"headStart","nativeSrc":"32122:9:89","nodeType":"YulIdentifier","src":"32122:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"32109:12:89","nodeType":"YulIdentifier","src":"32109:12:89"},"nativeSrc":"32109:23:89","nodeType":"YulFunctionCall","src":"32109:23:89"},"variables":[{"name":"value_1","nativeSrc":"32098:7:89","nodeType":"YulTypedName","src":"32098:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"32166:7:89","nodeType":"YulIdentifier","src":"32166:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"32141:24:89","nodeType":"YulIdentifier","src":"32141:24:89"},"nativeSrc":"32141:33:89","nodeType":"YulFunctionCall","src":"32141:33:89"},"nativeSrc":"32141:33:89","nodeType":"YulExpressionStatement","src":"32141:33:89"},{"expression":{"arguments":[{"name":"value","nativeSrc":"32190:5:89","nodeType":"YulIdentifier","src":"32190:5:89"},{"name":"value_1","nativeSrc":"32197:7:89","nodeType":"YulIdentifier","src":"32197:7:89"}],"functionName":{"name":"mstore","nativeSrc":"32183:6:89","nodeType":"YulIdentifier","src":"32183:6:89"},"nativeSrc":"32183:22:89","nodeType":"YulFunctionCall","src":"32183:22:89"},"nativeSrc":"32183:22:89","nodeType":"YulExpressionStatement","src":"32183:22:89"},{"nativeSrc":"32214:16:89","nodeType":"YulVariableDeclaration","src":"32214:16:89","value":{"kind":"number","nativeSrc":"32229:1:89","nodeType":"YulLiteral","src":"32229:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"32218:7:89","nodeType":"YulTypedName","src":"32218:7:89","type":""}]},{"nativeSrc":"32239:43:89","nodeType":"YulAssignment","src":"32239:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32267:9:89","nodeType":"YulIdentifier","src":"32267:9:89"},{"kind":"number","nativeSrc":"32278:2:89","nodeType":"YulLiteral","src":"32278:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32263:3:89","nodeType":"YulIdentifier","src":"32263:3:89"},"nativeSrc":"32263:18:89","nodeType":"YulFunctionCall","src":"32263:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"32250:12:89","nodeType":"YulIdentifier","src":"32250:12:89"},"nativeSrc":"32250:32:89","nodeType":"YulFunctionCall","src":"32250:32:89"},"variableNames":[{"name":"value_2","nativeSrc":"32239:7:89","nodeType":"YulIdentifier","src":"32239:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"32302:5:89","nodeType":"YulIdentifier","src":"32302:5:89"},{"kind":"number","nativeSrc":"32309:2:89","nodeType":"YulLiteral","src":"32309:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32298:3:89","nodeType":"YulIdentifier","src":"32298:3:89"},"nativeSrc":"32298:14:89","nodeType":"YulFunctionCall","src":"32298:14:89"},{"name":"value_2","nativeSrc":"32314:7:89","nodeType":"YulIdentifier","src":"32314:7:89"}],"functionName":{"name":"mstore","nativeSrc":"32291:6:89","nodeType":"YulIdentifier","src":"32291:6:89"},"nativeSrc":"32291:31:89","nodeType":"YulFunctionCall","src":"32291:31:89"},"nativeSrc":"32291:31:89","nodeType":"YulExpressionStatement","src":"32291:31:89"}]},"name":"abi_decode_struct_TokenAmount","nativeSrc":"31917:411:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31956:9:89","nodeType":"YulTypedName","src":"31956:9:89","type":""},{"name":"end","nativeSrc":"31967:3:89","nodeType":"YulTypedName","src":"31967:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"31975:5:89","nodeType":"YulTypedName","src":"31975:5:89","type":""}],"src":"31917:411:89"},{"body":{"nativeSrc":"32397:710:89","nodeType":"YulBlock","src":"32397:710:89","statements":[{"body":{"nativeSrc":"32446:16:89","nodeType":"YulBlock","src":"32446:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32455:1:89","nodeType":"YulLiteral","src":"32455:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"32458:1:89","nodeType":"YulLiteral","src":"32458:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32448:6:89","nodeType":"YulIdentifier","src":"32448:6:89"},"nativeSrc":"32448:12:89","nodeType":"YulFunctionCall","src":"32448:12:89"},"nativeSrc":"32448:12:89","nodeType":"YulExpressionStatement","src":"32448:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32425:6:89","nodeType":"YulIdentifier","src":"32425:6:89"},{"kind":"number","nativeSrc":"32433:4:89","nodeType":"YulLiteral","src":"32433:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"32421:3:89","nodeType":"YulIdentifier","src":"32421:3:89"},"nativeSrc":"32421:17:89","nodeType":"YulFunctionCall","src":"32421:17:89"},{"name":"end","nativeSrc":"32440:3:89","nodeType":"YulIdentifier","src":"32440:3:89"}],"functionName":{"name":"slt","nativeSrc":"32417:3:89","nodeType":"YulIdentifier","src":"32417:3:89"},"nativeSrc":"32417:27:89","nodeType":"YulFunctionCall","src":"32417:27:89"}],"functionName":{"name":"iszero","nativeSrc":"32410:6:89","nodeType":"YulIdentifier","src":"32410:6:89"},"nativeSrc":"32410:35:89","nodeType":"YulFunctionCall","src":"32410:35:89"},"nativeSrc":"32407:55:89","nodeType":"YulIf","src":"32407:55:89"},{"nativeSrc":"32471:34:89","nodeType":"YulVariableDeclaration","src":"32471:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"32498:6:89","nodeType":"YulIdentifier","src":"32498:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"32485:12:89","nodeType":"YulIdentifier","src":"32485:12:89"},"nativeSrc":"32485:20:89","nodeType":"YulFunctionCall","src":"32485:20:89"},"variables":[{"name":"length","nativeSrc":"32475:6:89","nodeType":"YulTypedName","src":"32475:6:89","type":""}]},{"nativeSrc":"32514:105:89","nodeType":"YulVariableDeclaration","src":"32514:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"32611:6:89","nodeType":"YulIdentifier","src":"32611:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"32541:69:89","nodeType":"YulIdentifier","src":"32541:69:89"},"nativeSrc":"32541:77:89","nodeType":"YulFunctionCall","src":"32541:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"32525:15:89","nodeType":"YulIdentifier","src":"32525:15:89"},"nativeSrc":"32525:94:89","nodeType":"YulFunctionCall","src":"32525:94:89"},"variables":[{"name":"dst","nativeSrc":"32518:3:89","nodeType":"YulTypedName","src":"32518:3:89","type":""}]},{"nativeSrc":"32628:18:89","nodeType":"YulVariableDeclaration","src":"32628:18:89","value":{"name":"dst","nativeSrc":"32643:3:89","nodeType":"YulIdentifier","src":"32643:3:89"},"variables":[{"name":"array_1","nativeSrc":"32632:7:89","nodeType":"YulTypedName","src":"32632:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"32662:3:89","nodeType":"YulIdentifier","src":"32662:3:89"},{"name":"length","nativeSrc":"32667:6:89","nodeType":"YulIdentifier","src":"32667:6:89"}],"functionName":{"name":"mstore","nativeSrc":"32655:6:89","nodeType":"YulIdentifier","src":"32655:6:89"},"nativeSrc":"32655:19:89","nodeType":"YulFunctionCall","src":"32655:19:89"},"nativeSrc":"32655:19:89","nodeType":"YulExpressionStatement","src":"32655:19:89"},{"nativeSrc":"32683:21:89","nodeType":"YulAssignment","src":"32683:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"32694:3:89","nodeType":"YulIdentifier","src":"32694:3:89"},{"kind":"number","nativeSrc":"32699:4:89","nodeType":"YulLiteral","src":"32699:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32690:3:89","nodeType":"YulIdentifier","src":"32690:3:89"},"nativeSrc":"32690:14:89","nodeType":"YulFunctionCall","src":"32690:14:89"},"variableNames":[{"name":"dst","nativeSrc":"32683:3:89","nodeType":"YulIdentifier","src":"32683:3:89"}]},{"nativeSrc":"32713:52:89","nodeType":"YulVariableDeclaration","src":"32713:52:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32735:6:89","nodeType":"YulIdentifier","src":"32735:6:89"},{"arguments":[{"kind":"number","nativeSrc":"32747:1:89","nodeType":"YulLiteral","src":"32747:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"32750:6:89","nodeType":"YulIdentifier","src":"32750:6:89"}],"functionName":{"name":"shl","nativeSrc":"32743:3:89","nodeType":"YulIdentifier","src":"32743:3:89"},"nativeSrc":"32743:14:89","nodeType":"YulFunctionCall","src":"32743:14:89"}],"functionName":{"name":"add","nativeSrc":"32731:3:89","nodeType":"YulIdentifier","src":"32731:3:89"},"nativeSrc":"32731:27:89","nodeType":"YulFunctionCall","src":"32731:27:89"},{"kind":"number","nativeSrc":"32760:4:89","nodeType":"YulLiteral","src":"32760:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32727:3:89","nodeType":"YulIdentifier","src":"32727:3:89"},"nativeSrc":"32727:38:89","nodeType":"YulFunctionCall","src":"32727:38:89"},"variables":[{"name":"srcEnd","nativeSrc":"32717:6:89","nodeType":"YulTypedName","src":"32717:6:89","type":""}]},{"body":{"nativeSrc":"32793:16:89","nodeType":"YulBlock","src":"32793:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32802:1:89","nodeType":"YulLiteral","src":"32802:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"32805:1:89","nodeType":"YulLiteral","src":"32805:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32795:6:89","nodeType":"YulIdentifier","src":"32795:6:89"},"nativeSrc":"32795:12:89","nodeType":"YulFunctionCall","src":"32795:12:89"},"nativeSrc":"32795:12:89","nodeType":"YulExpressionStatement","src":"32795:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"32780:6:89","nodeType":"YulIdentifier","src":"32780:6:89"},{"name":"end","nativeSrc":"32788:3:89","nodeType":"YulIdentifier","src":"32788:3:89"}],"functionName":{"name":"gt","nativeSrc":"32777:2:89","nodeType":"YulIdentifier","src":"32777:2:89"},"nativeSrc":"32777:15:89","nodeType":"YulFunctionCall","src":"32777:15:89"},"nativeSrc":"32774:35:89","nodeType":"YulIf","src":"32774:35:89"},{"nativeSrc":"32818:28:89","nodeType":"YulVariableDeclaration","src":"32818:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"32833:6:89","nodeType":"YulIdentifier","src":"32833:6:89"},{"kind":"number","nativeSrc":"32841:4:89","nodeType":"YulLiteral","src":"32841:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32829:3:89","nodeType":"YulIdentifier","src":"32829:3:89"},"nativeSrc":"32829:17:89","nodeType":"YulFunctionCall","src":"32829:17:89"},"variables":[{"name":"src","nativeSrc":"32822:3:89","nodeType":"YulTypedName","src":"32822:3:89","type":""}]},{"body":{"nativeSrc":"32913:163:89","nodeType":"YulBlock","src":"32913:163:89","statements":[{"nativeSrc":"32927:30:89","nodeType":"YulVariableDeclaration","src":"32927:30:89","value":{"arguments":[{"name":"src","nativeSrc":"32953:3:89","nodeType":"YulIdentifier","src":"32953:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"32940:12:89","nodeType":"YulIdentifier","src":"32940:12:89"},"nativeSrc":"32940:17:89","nodeType":"YulFunctionCall","src":"32940:17:89"},"variables":[{"name":"value","nativeSrc":"32931:5:89","nodeType":"YulTypedName","src":"32931:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"32995:5:89","nodeType":"YulIdentifier","src":"32995:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"32970:24:89","nodeType":"YulIdentifier","src":"32970:24:89"},"nativeSrc":"32970:31:89","nodeType":"YulFunctionCall","src":"32970:31:89"},"nativeSrc":"32970:31:89","nodeType":"YulExpressionStatement","src":"32970:31:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"33021:3:89","nodeType":"YulIdentifier","src":"33021:3:89"},{"name":"value","nativeSrc":"33026:5:89","nodeType":"YulIdentifier","src":"33026:5:89"}],"functionName":{"name":"mstore","nativeSrc":"33014:6:89","nodeType":"YulIdentifier","src":"33014:6:89"},"nativeSrc":"33014:18:89","nodeType":"YulFunctionCall","src":"33014:18:89"},"nativeSrc":"33014:18:89","nodeType":"YulExpressionStatement","src":"33014:18:89"},{"nativeSrc":"33045:21:89","nodeType":"YulAssignment","src":"33045:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"33056:3:89","nodeType":"YulIdentifier","src":"33056:3:89"},{"kind":"number","nativeSrc":"33061:4:89","nodeType":"YulLiteral","src":"33061:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"33052:3:89","nodeType":"YulIdentifier","src":"33052:3:89"},"nativeSrc":"33052:14:89","nodeType":"YulFunctionCall","src":"33052:14:89"},"variableNames":[{"name":"dst","nativeSrc":"33045:3:89","nodeType":"YulIdentifier","src":"33045:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"32866:3:89","nodeType":"YulIdentifier","src":"32866:3:89"},{"name":"srcEnd","nativeSrc":"32871:6:89","nodeType":"YulIdentifier","src":"32871:6:89"}],"functionName":{"name":"lt","nativeSrc":"32863:2:89","nodeType":"YulIdentifier","src":"32863:2:89"},"nativeSrc":"32863:15:89","nodeType":"YulFunctionCall","src":"32863:15:89"},"nativeSrc":"32855:221:89","nodeType":"YulForLoop","post":{"nativeSrc":"32879:25:89","nodeType":"YulBlock","src":"32879:25:89","statements":[{"nativeSrc":"32881:21:89","nodeType":"YulAssignment","src":"32881:21:89","value":{"arguments":[{"name":"src","nativeSrc":"32892:3:89","nodeType":"YulIdentifier","src":"32892:3:89"},{"kind":"number","nativeSrc":"32897:4:89","nodeType":"YulLiteral","src":"32897:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32888:3:89","nodeType":"YulIdentifier","src":"32888:3:89"},"nativeSrc":"32888:14:89","nodeType":"YulFunctionCall","src":"32888:14:89"},"variableNames":[{"name":"src","nativeSrc":"32881:3:89","nodeType":"YulIdentifier","src":"32881:3:89"}]}]},"pre":{"nativeSrc":"32859:3:89","nodeType":"YulBlock","src":"32859:3:89","statements":[]},"src":"32855:221:89"},{"nativeSrc":"33085:16:89","nodeType":"YulAssignment","src":"33085:16:89","value":{"name":"array_1","nativeSrc":"33094:7:89","nodeType":"YulIdentifier","src":"33094:7:89"},"variableNames":[{"name":"array","nativeSrc":"33085:5:89","nodeType":"YulIdentifier","src":"33085:5:89"}]}]},"name":"abi_decode_array_address_dyn","nativeSrc":"32333:774:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"32371:6:89","nodeType":"YulTypedName","src":"32371:6:89","type":""},{"name":"end","nativeSrc":"32379:3:89","nodeType":"YulTypedName","src":"32379:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"32387:5:89","nodeType":"YulTypedName","src":"32387:5:89","type":""}],"src":"32333:774:89"},{"body":{"nativeSrc":"33187:657:89","nodeType":"YulBlock","src":"33187:657:89","statements":[{"body":{"nativeSrc":"33236:16:89","nodeType":"YulBlock","src":"33236:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33245:1:89","nodeType":"YulLiteral","src":"33245:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"33248:1:89","nodeType":"YulLiteral","src":"33248:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33238:6:89","nodeType":"YulIdentifier","src":"33238:6:89"},"nativeSrc":"33238:12:89","nodeType":"YulFunctionCall","src":"33238:12:89"},"nativeSrc":"33238:12:89","nodeType":"YulExpressionStatement","src":"33238:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"33215:6:89","nodeType":"YulIdentifier","src":"33215:6:89"},{"kind":"number","nativeSrc":"33223:4:89","nodeType":"YulLiteral","src":"33223:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"33211:3:89","nodeType":"YulIdentifier","src":"33211:3:89"},"nativeSrc":"33211:17:89","nodeType":"YulFunctionCall","src":"33211:17:89"},{"name":"end","nativeSrc":"33230:3:89","nodeType":"YulIdentifier","src":"33230:3:89"}],"functionName":{"name":"slt","nativeSrc":"33207:3:89","nodeType":"YulIdentifier","src":"33207:3:89"},"nativeSrc":"33207:27:89","nodeType":"YulFunctionCall","src":"33207:27:89"}],"functionName":{"name":"iszero","nativeSrc":"33200:6:89","nodeType":"YulIdentifier","src":"33200:6:89"},"nativeSrc":"33200:35:89","nodeType":"YulFunctionCall","src":"33200:35:89"},"nativeSrc":"33197:55:89","nodeType":"YulIf","src":"33197:55:89"},{"nativeSrc":"33261:34:89","nodeType":"YulVariableDeclaration","src":"33261:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"33288:6:89","nodeType":"YulIdentifier","src":"33288:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"33275:12:89","nodeType":"YulIdentifier","src":"33275:12:89"},"nativeSrc":"33275:20:89","nodeType":"YulFunctionCall","src":"33275:20:89"},"variables":[{"name":"length","nativeSrc":"33265:6:89","nodeType":"YulTypedName","src":"33265:6:89","type":""}]},{"nativeSrc":"33304:105:89","nodeType":"YulVariableDeclaration","src":"33304:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"33401:6:89","nodeType":"YulIdentifier","src":"33401:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"33331:69:89","nodeType":"YulIdentifier","src":"33331:69:89"},"nativeSrc":"33331:77:89","nodeType":"YulFunctionCall","src":"33331:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"33315:15:89","nodeType":"YulIdentifier","src":"33315:15:89"},"nativeSrc":"33315:94:89","nodeType":"YulFunctionCall","src":"33315:94:89"},"variables":[{"name":"dst","nativeSrc":"33308:3:89","nodeType":"YulTypedName","src":"33308:3:89","type":""}]},{"nativeSrc":"33418:18:89","nodeType":"YulVariableDeclaration","src":"33418:18:89","value":{"name":"dst","nativeSrc":"33433:3:89","nodeType":"YulIdentifier","src":"33433:3:89"},"variables":[{"name":"array_1","nativeSrc":"33422:7:89","nodeType":"YulTypedName","src":"33422:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"33452:3:89","nodeType":"YulIdentifier","src":"33452:3:89"},{"name":"length","nativeSrc":"33457:6:89","nodeType":"YulIdentifier","src":"33457:6:89"}],"functionName":{"name":"mstore","nativeSrc":"33445:6:89","nodeType":"YulIdentifier","src":"33445:6:89"},"nativeSrc":"33445:19:89","nodeType":"YulFunctionCall","src":"33445:19:89"},"nativeSrc":"33445:19:89","nodeType":"YulExpressionStatement","src":"33445:19:89"},{"nativeSrc":"33473:21:89","nodeType":"YulAssignment","src":"33473:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"33484:3:89","nodeType":"YulIdentifier","src":"33484:3:89"},{"kind":"number","nativeSrc":"33489:4:89","nodeType":"YulLiteral","src":"33489:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"33480:3:89","nodeType":"YulIdentifier","src":"33480:3:89"},"nativeSrc":"33480:14:89","nodeType":"YulFunctionCall","src":"33480:14:89"},"variableNames":[{"name":"dst","nativeSrc":"33473:3:89","nodeType":"YulIdentifier","src":"33473:3:89"}]},{"nativeSrc":"33503:52:89","nodeType":"YulVariableDeclaration","src":"33503:52:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"33525:6:89","nodeType":"YulIdentifier","src":"33525:6:89"},{"arguments":[{"kind":"number","nativeSrc":"33537:1:89","nodeType":"YulLiteral","src":"33537:1:89","type":"","value":"6"},{"name":"length","nativeSrc":"33540:6:89","nodeType":"YulIdentifier","src":"33540:6:89"}],"functionName":{"name":"shl","nativeSrc":"33533:3:89","nodeType":"YulIdentifier","src":"33533:3:89"},"nativeSrc":"33533:14:89","nodeType":"YulFunctionCall","src":"33533:14:89"}],"functionName":{"name":"add","nativeSrc":"33521:3:89","nodeType":"YulIdentifier","src":"33521:3:89"},"nativeSrc":"33521:27:89","nodeType":"YulFunctionCall","src":"33521:27:89"},{"kind":"number","nativeSrc":"33550:4:89","nodeType":"YulLiteral","src":"33550:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"33517:3:89","nodeType":"YulIdentifier","src":"33517:3:89"},"nativeSrc":"33517:38:89","nodeType":"YulFunctionCall","src":"33517:38:89"},"variables":[{"name":"srcEnd","nativeSrc":"33507:6:89","nodeType":"YulTypedName","src":"33507:6:89","type":""}]},{"body":{"nativeSrc":"33583:16:89","nodeType":"YulBlock","src":"33583:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33592:1:89","nodeType":"YulLiteral","src":"33592:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"33595:1:89","nodeType":"YulLiteral","src":"33595:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33585:6:89","nodeType":"YulIdentifier","src":"33585:6:89"},"nativeSrc":"33585:12:89","nodeType":"YulFunctionCall","src":"33585:12:89"},"nativeSrc":"33585:12:89","nodeType":"YulExpressionStatement","src":"33585:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"33570:6:89","nodeType":"YulIdentifier","src":"33570:6:89"},{"name":"end","nativeSrc":"33578:3:89","nodeType":"YulIdentifier","src":"33578:3:89"}],"functionName":{"name":"gt","nativeSrc":"33567:2:89","nodeType":"YulIdentifier","src":"33567:2:89"},"nativeSrc":"33567:15:89","nodeType":"YulFunctionCall","src":"33567:15:89"},"nativeSrc":"33564:35:89","nodeType":"YulIf","src":"33564:35:89"},{"nativeSrc":"33608:28:89","nodeType":"YulVariableDeclaration","src":"33608:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"33623:6:89","nodeType":"YulIdentifier","src":"33623:6:89"},{"kind":"number","nativeSrc":"33631:4:89","nodeType":"YulLiteral","src":"33631:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"33619:3:89","nodeType":"YulIdentifier","src":"33619:3:89"},"nativeSrc":"33619:17:89","nodeType":"YulFunctionCall","src":"33619:17:89"},"variables":[{"name":"src","nativeSrc":"33612:3:89","nodeType":"YulTypedName","src":"33612:3:89","type":""}]},{"body":{"nativeSrc":"33703:110:89","nodeType":"YulBlock","src":"33703:110:89","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"33724:3:89","nodeType":"YulIdentifier","src":"33724:3:89"},{"arguments":[{"name":"src","nativeSrc":"33759:3:89","nodeType":"YulIdentifier","src":"33759:3:89"},{"name":"end","nativeSrc":"33764:3:89","nodeType":"YulIdentifier","src":"33764:3:89"}],"functionName":{"name":"abi_decode_struct_TokenAmount","nativeSrc":"33729:29:89","nodeType":"YulIdentifier","src":"33729:29:89"},"nativeSrc":"33729:39:89","nodeType":"YulFunctionCall","src":"33729:39:89"}],"functionName":{"name":"mstore","nativeSrc":"33717:6:89","nodeType":"YulIdentifier","src":"33717:6:89"},"nativeSrc":"33717:52:89","nodeType":"YulFunctionCall","src":"33717:52:89"},"nativeSrc":"33717:52:89","nodeType":"YulExpressionStatement","src":"33717:52:89"},{"nativeSrc":"33782:21:89","nodeType":"YulAssignment","src":"33782:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"33793:3:89","nodeType":"YulIdentifier","src":"33793:3:89"},{"kind":"number","nativeSrc":"33798:4:89","nodeType":"YulLiteral","src":"33798:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"33789:3:89","nodeType":"YulIdentifier","src":"33789:3:89"},"nativeSrc":"33789:14:89","nodeType":"YulFunctionCall","src":"33789:14:89"},"variableNames":[{"name":"dst","nativeSrc":"33782:3:89","nodeType":"YulIdentifier","src":"33782:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"33656:3:89","nodeType":"YulIdentifier","src":"33656:3:89"},{"name":"srcEnd","nativeSrc":"33661:6:89","nodeType":"YulIdentifier","src":"33661:6:89"}],"functionName":{"name":"lt","nativeSrc":"33653:2:89","nodeType":"YulIdentifier","src":"33653:2:89"},"nativeSrc":"33653:15:89","nodeType":"YulFunctionCall","src":"33653:15:89"},"nativeSrc":"33645:168:89","nodeType":"YulForLoop","post":{"nativeSrc":"33669:25:89","nodeType":"YulBlock","src":"33669:25:89","statements":[{"nativeSrc":"33671:21:89","nodeType":"YulAssignment","src":"33671:21:89","value":{"arguments":[{"name":"src","nativeSrc":"33682:3:89","nodeType":"YulIdentifier","src":"33682:3:89"},{"kind":"number","nativeSrc":"33687:4:89","nodeType":"YulLiteral","src":"33687:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"33678:3:89","nodeType":"YulIdentifier","src":"33678:3:89"},"nativeSrc":"33678:14:89","nodeType":"YulFunctionCall","src":"33678:14:89"},"variableNames":[{"name":"src","nativeSrc":"33671:3:89","nodeType":"YulIdentifier","src":"33671:3:89"}]}]},"pre":{"nativeSrc":"33649:3:89","nodeType":"YulBlock","src":"33649:3:89","statements":[]},"src":"33645:168:89"},{"nativeSrc":"33822:16:89","nodeType":"YulAssignment","src":"33822:16:89","value":{"name":"array_1","nativeSrc":"33831:7:89","nodeType":"YulIdentifier","src":"33831:7:89"},"variableNames":[{"name":"array","nativeSrc":"33822:5:89","nodeType":"YulIdentifier","src":"33822:5:89"}]}]},"name":"abi_decode_array_struct_TokenAmount_dyn","nativeSrc":"33112:732:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"33161:6:89","nodeType":"YulTypedName","src":"33161:6:89","type":""},{"name":"end","nativeSrc":"33169:3:89","nodeType":"YulTypedName","src":"33169:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"33177:5:89","nodeType":"YulTypedName","src":"33177:5:89","type":""}],"src":"33112:732:89"},{"body":{"nativeSrc":"33896:109:89","nodeType":"YulBlock","src":"33896:109:89","statements":[{"nativeSrc":"33906:29:89","nodeType":"YulAssignment","src":"33906:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"33928:6:89","nodeType":"YulIdentifier","src":"33928:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"33915:12:89","nodeType":"YulIdentifier","src":"33915:12:89"},"nativeSrc":"33915:20:89","nodeType":"YulFunctionCall","src":"33915:20:89"},"variableNames":[{"name":"value","nativeSrc":"33906:5:89","nodeType":"YulIdentifier","src":"33906:5:89"}]},{"body":{"nativeSrc":"33983:16:89","nodeType":"YulBlock","src":"33983:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33992:1:89","nodeType":"YulLiteral","src":"33992:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"33995:1:89","nodeType":"YulLiteral","src":"33995:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33985:6:89","nodeType":"YulIdentifier","src":"33985:6:89"},"nativeSrc":"33985:12:89","nodeType":"YulFunctionCall","src":"33985:12:89"},"nativeSrc":"33985:12:89","nodeType":"YulExpressionStatement","src":"33985:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"33957:5:89","nodeType":"YulIdentifier","src":"33957:5:89"},{"arguments":[{"name":"value","nativeSrc":"33968:5:89","nodeType":"YulIdentifier","src":"33968:5:89"},{"kind":"number","nativeSrc":"33975:4:89","nodeType":"YulLiteral","src":"33975:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"33964:3:89","nodeType":"YulIdentifier","src":"33964:3:89"},"nativeSrc":"33964:16:89","nodeType":"YulFunctionCall","src":"33964:16:89"}],"functionName":{"name":"eq","nativeSrc":"33954:2:89","nodeType":"YulIdentifier","src":"33954:2:89"},"nativeSrc":"33954:27:89","nodeType":"YulFunctionCall","src":"33954:27:89"}],"functionName":{"name":"iszero","nativeSrc":"33947:6:89","nodeType":"YulIdentifier","src":"33947:6:89"},"nativeSrc":"33947:35:89","nodeType":"YulFunctionCall","src":"33947:35:89"},"nativeSrc":"33944:55:89","nodeType":"YulIf","src":"33944:55:89"}]},"name":"abi_decode_uint8","nativeSrc":"33849:156:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"33875:6:89","nodeType":"YulTypedName","src":"33875:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"33886:5:89","nodeType":"YulTypedName","src":"33886:5:89","type":""}],"src":"33849:156:89"},{"body":{"nativeSrc":"34083:1589:89","nodeType":"YulBlock","src":"34083:1589:89","statements":[{"body":{"nativeSrc":"34132:16:89","nodeType":"YulBlock","src":"34132:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34141:1:89","nodeType":"YulLiteral","src":"34141:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"34144:1:89","nodeType":"YulLiteral","src":"34144:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34134:6:89","nodeType":"YulIdentifier","src":"34134:6:89"},"nativeSrc":"34134:12:89","nodeType":"YulFunctionCall","src":"34134:12:89"},"nativeSrc":"34134:12:89","nodeType":"YulExpressionStatement","src":"34134:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"34111:6:89","nodeType":"YulIdentifier","src":"34111:6:89"},{"kind":"number","nativeSrc":"34119:4:89","nodeType":"YulLiteral","src":"34119:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"34107:3:89","nodeType":"YulIdentifier","src":"34107:3:89"},"nativeSrc":"34107:17:89","nodeType":"YulFunctionCall","src":"34107:17:89"},{"name":"end","nativeSrc":"34126:3:89","nodeType":"YulIdentifier","src":"34126:3:89"}],"functionName":{"name":"slt","nativeSrc":"34103:3:89","nodeType":"YulIdentifier","src":"34103:3:89"},"nativeSrc":"34103:27:89","nodeType":"YulFunctionCall","src":"34103:27:89"}],"functionName":{"name":"iszero","nativeSrc":"34096:6:89","nodeType":"YulIdentifier","src":"34096:6:89"},"nativeSrc":"34096:35:89","nodeType":"YulFunctionCall","src":"34096:35:89"},"nativeSrc":"34093:55:89","nodeType":"YulIf","src":"34093:55:89"},{"nativeSrc":"34157:34:89","nodeType":"YulVariableDeclaration","src":"34157:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"34184:6:89","nodeType":"YulIdentifier","src":"34184:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"34171:12:89","nodeType":"YulIdentifier","src":"34171:12:89"},"nativeSrc":"34171:20:89","nodeType":"YulFunctionCall","src":"34171:20:89"},"variables":[{"name":"length","nativeSrc":"34161:6:89","nodeType":"YulTypedName","src":"34161:6:89","type":""}]},{"nativeSrc":"34200:105:89","nodeType":"YulVariableDeclaration","src":"34200:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"34297:6:89","nodeType":"YulIdentifier","src":"34297:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"34227:69:89","nodeType":"YulIdentifier","src":"34227:69:89"},"nativeSrc":"34227:77:89","nodeType":"YulFunctionCall","src":"34227:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"34211:15:89","nodeType":"YulIdentifier","src":"34211:15:89"},"nativeSrc":"34211:94:89","nodeType":"YulFunctionCall","src":"34211:94:89"},"variables":[{"name":"dst","nativeSrc":"34204:3:89","nodeType":"YulTypedName","src":"34204:3:89","type":""}]},{"nativeSrc":"34314:18:89","nodeType":"YulVariableDeclaration","src":"34314:18:89","value":{"name":"dst","nativeSrc":"34329:3:89","nodeType":"YulIdentifier","src":"34329:3:89"},"variables":[{"name":"array_1","nativeSrc":"34318:7:89","nodeType":"YulTypedName","src":"34318:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"34348:3:89","nodeType":"YulIdentifier","src":"34348:3:89"},{"name":"length","nativeSrc":"34353:6:89","nodeType":"YulIdentifier","src":"34353:6:89"}],"functionName":{"name":"mstore","nativeSrc":"34341:6:89","nodeType":"YulIdentifier","src":"34341:6:89"},"nativeSrc":"34341:19:89","nodeType":"YulFunctionCall","src":"34341:19:89"},"nativeSrc":"34341:19:89","nodeType":"YulExpressionStatement","src":"34341:19:89"},{"nativeSrc":"34369:21:89","nodeType":"YulAssignment","src":"34369:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"34380:3:89","nodeType":"YulIdentifier","src":"34380:3:89"},{"kind":"number","nativeSrc":"34385:4:89","nodeType":"YulLiteral","src":"34385:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34376:3:89","nodeType":"YulIdentifier","src":"34376:3:89"},"nativeSrc":"34376:14:89","nodeType":"YulFunctionCall","src":"34376:14:89"},"variableNames":[{"name":"dst","nativeSrc":"34369:3:89","nodeType":"YulIdentifier","src":"34369:3:89"}]},{"nativeSrc":"34399:52:89","nodeType":"YulVariableDeclaration","src":"34399:52:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"34421:6:89","nodeType":"YulIdentifier","src":"34421:6:89"},{"arguments":[{"kind":"number","nativeSrc":"34433:1:89","nodeType":"YulLiteral","src":"34433:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"34436:6:89","nodeType":"YulIdentifier","src":"34436:6:89"}],"functionName":{"name":"shl","nativeSrc":"34429:3:89","nodeType":"YulIdentifier","src":"34429:3:89"},"nativeSrc":"34429:14:89","nodeType":"YulFunctionCall","src":"34429:14:89"}],"functionName":{"name":"add","nativeSrc":"34417:3:89","nodeType":"YulIdentifier","src":"34417:3:89"},"nativeSrc":"34417:27:89","nodeType":"YulFunctionCall","src":"34417:27:89"},{"kind":"number","nativeSrc":"34446:4:89","nodeType":"YulLiteral","src":"34446:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34413:3:89","nodeType":"YulIdentifier","src":"34413:3:89"},"nativeSrc":"34413:38:89","nodeType":"YulFunctionCall","src":"34413:38:89"},"variables":[{"name":"srcEnd","nativeSrc":"34403:6:89","nodeType":"YulTypedName","src":"34403:6:89","type":""}]},{"body":{"nativeSrc":"34479:16:89","nodeType":"YulBlock","src":"34479:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34488:1:89","nodeType":"YulLiteral","src":"34488:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"34491:1:89","nodeType":"YulLiteral","src":"34491:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34481:6:89","nodeType":"YulIdentifier","src":"34481:6:89"},"nativeSrc":"34481:12:89","nodeType":"YulFunctionCall","src":"34481:12:89"},"nativeSrc":"34481:12:89","nodeType":"YulExpressionStatement","src":"34481:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"34466:6:89","nodeType":"YulIdentifier","src":"34466:6:89"},{"name":"end","nativeSrc":"34474:3:89","nodeType":"YulIdentifier","src":"34474:3:89"}],"functionName":{"name":"gt","nativeSrc":"34463:2:89","nodeType":"YulIdentifier","src":"34463:2:89"},"nativeSrc":"34463:15:89","nodeType":"YulFunctionCall","src":"34463:15:89"},"nativeSrc":"34460:35:89","nodeType":"YulIf","src":"34460:35:89"},{"nativeSrc":"34504:28:89","nodeType":"YulVariableDeclaration","src":"34504:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"34519:6:89","nodeType":"YulIdentifier","src":"34519:6:89"},{"kind":"number","nativeSrc":"34527:4:89","nodeType":"YulLiteral","src":"34527:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34515:3:89","nodeType":"YulIdentifier","src":"34515:3:89"},"nativeSrc":"34515:17:89","nodeType":"YulFunctionCall","src":"34515:17:89"},"variables":[{"name":"src","nativeSrc":"34508:3:89","nodeType":"YulTypedName","src":"34508:3:89","type":""}]},{"body":{"nativeSrc":"34599:1042:89","nodeType":"YulBlock","src":"34599:1042:89","statements":[{"nativeSrc":"34613:36:89","nodeType":"YulVariableDeclaration","src":"34613:36:89","value":{"arguments":[{"name":"src","nativeSrc":"34645:3:89","nodeType":"YulIdentifier","src":"34645:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"34632:12:89","nodeType":"YulIdentifier","src":"34632:12:89"},"nativeSrc":"34632:17:89","nodeType":"YulFunctionCall","src":"34632:17:89"},"variables":[{"name":"innerOffset","nativeSrc":"34617:11:89","nodeType":"YulTypedName","src":"34617:11:89","type":""}]},{"body":{"nativeSrc":"34701:16:89","nodeType":"YulBlock","src":"34701:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34710:1:89","nodeType":"YulLiteral","src":"34710:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"34713:1:89","nodeType":"YulLiteral","src":"34713:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34703:6:89","nodeType":"YulIdentifier","src":"34703:6:89"},"nativeSrc":"34703:12:89","nodeType":"YulFunctionCall","src":"34703:12:89"},"nativeSrc":"34703:12:89","nodeType":"YulExpressionStatement","src":"34703:12:89"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"34668:11:89","nodeType":"YulIdentifier","src":"34668:11:89"},{"kind":"number","nativeSrc":"34681:18:89","nodeType":"YulLiteral","src":"34681:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"34665:2:89","nodeType":"YulIdentifier","src":"34665:2:89"},"nativeSrc":"34665:35:89","nodeType":"YulFunctionCall","src":"34665:35:89"},"nativeSrc":"34662:55:89","nodeType":"YulIf","src":"34662:55:89"},{"nativeSrc":"34730:34:89","nodeType":"YulVariableDeclaration","src":"34730:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"34744:6:89","nodeType":"YulIdentifier","src":"34744:6:89"},{"name":"innerOffset","nativeSrc":"34752:11:89","nodeType":"YulIdentifier","src":"34752:11:89"}],"functionName":{"name":"add","nativeSrc":"34740:3:89","nodeType":"YulIdentifier","src":"34740:3:89"},"nativeSrc":"34740:24:89","nodeType":"YulFunctionCall","src":"34740:24:89"},"variables":[{"name":"_1","nativeSrc":"34734:2:89","nodeType":"YulTypedName","src":"34734:2:89","type":""}]},{"body":{"nativeSrc":"34818:16:89","nodeType":"YulBlock","src":"34818:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34827:1:89","nodeType":"YulLiteral","src":"34827:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"34830:1:89","nodeType":"YulLiteral","src":"34830:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34820:6:89","nodeType":"YulIdentifier","src":"34820:6:89"},"nativeSrc":"34820:12:89","nodeType":"YulFunctionCall","src":"34820:12:89"},"nativeSrc":"34820:12:89","nodeType":"YulExpressionStatement","src":"34820:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"end","nativeSrc":"34792:3:89","nodeType":"YulIdentifier","src":"34792:3:89"},{"name":"_1","nativeSrc":"34797:2:89","nodeType":"YulIdentifier","src":"34797:2:89"}],"functionName":{"name":"sub","nativeSrc":"34788:3:89","nodeType":"YulIdentifier","src":"34788:3:89"},"nativeSrc":"34788:12:89","nodeType":"YulFunctionCall","src":"34788:12:89"},{"arguments":[{"kind":"number","nativeSrc":"34806:2:89","nodeType":"YulLiteral","src":"34806:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"34802:3:89","nodeType":"YulIdentifier","src":"34802:3:89"},"nativeSrc":"34802:7:89","nodeType":"YulFunctionCall","src":"34802:7:89"}],"functionName":{"name":"add","nativeSrc":"34784:3:89","nodeType":"YulIdentifier","src":"34784:3:89"},"nativeSrc":"34784:26:89","nodeType":"YulFunctionCall","src":"34784:26:89"},{"kind":"number","nativeSrc":"34812:4:89","nodeType":"YulLiteral","src":"34812:4:89","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"34780:3:89","nodeType":"YulIdentifier","src":"34780:3:89"},"nativeSrc":"34780:37:89","nodeType":"YulFunctionCall","src":"34780:37:89"},"nativeSrc":"34777:57:89","nodeType":"YulIf","src":"34777:57:89"},{"nativeSrc":"34847:35:89","nodeType":"YulVariableDeclaration","src":"34847:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_9705","nativeSrc":"34860:20:89","nodeType":"YulIdentifier","src":"34860:20:89"},"nativeSrc":"34860:22:89","nodeType":"YulFunctionCall","src":"34860:22:89"},"variables":[{"name":"value","nativeSrc":"34851:5:89","nodeType":"YulTypedName","src":"34851:5:89","type":""}]},{"nativeSrc":"34895:43:89","nodeType":"YulVariableDeclaration","src":"34895:43:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"34928:2:89","nodeType":"YulIdentifier","src":"34928:2:89"},{"kind":"number","nativeSrc":"34932:4:89","nodeType":"YulLiteral","src":"34932:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34924:3:89","nodeType":"YulIdentifier","src":"34924:3:89"},"nativeSrc":"34924:13:89","nodeType":"YulFunctionCall","src":"34924:13:89"}],"functionName":{"name":"calldataload","nativeSrc":"34911:12:89","nodeType":"YulIdentifier","src":"34911:12:89"},"nativeSrc":"34911:27:89","nodeType":"YulFunctionCall","src":"34911:27:89"},"variables":[{"name":"offset_1","nativeSrc":"34899:8:89","nodeType":"YulTypedName","src":"34899:8:89","type":""}]},{"body":{"nativeSrc":"34987:16:89","nodeType":"YulBlock","src":"34987:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34996:1:89","nodeType":"YulLiteral","src":"34996:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"34999:1:89","nodeType":"YulLiteral","src":"34999:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34989:6:89","nodeType":"YulIdentifier","src":"34989:6:89"},"nativeSrc":"34989:12:89","nodeType":"YulFunctionCall","src":"34989:12:89"},"nativeSrc":"34989:12:89","nodeType":"YulExpressionStatement","src":"34989:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"34957:8:89","nodeType":"YulIdentifier","src":"34957:8:89"},{"kind":"number","nativeSrc":"34967:18:89","nodeType":"YulLiteral","src":"34967:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"34954:2:89","nodeType":"YulIdentifier","src":"34954:2:89"},"nativeSrc":"34954:32:89","nodeType":"YulFunctionCall","src":"34954:32:89"},"nativeSrc":"34951:52:89","nodeType":"YulIf","src":"34951:52:89"},{"expression":{"arguments":[{"name":"value","nativeSrc":"35023:5:89","nodeType":"YulIdentifier","src":"35023:5:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"35055:2:89","nodeType":"YulIdentifier","src":"35055:2:89"},{"name":"offset_1","nativeSrc":"35059:8:89","nodeType":"YulIdentifier","src":"35059:8:89"}],"functionName":{"name":"add","nativeSrc":"35051:3:89","nodeType":"YulIdentifier","src":"35051:3:89"},"nativeSrc":"35051:17:89","nodeType":"YulFunctionCall","src":"35051:17:89"},{"kind":"number","nativeSrc":"35070:4:89","nodeType":"YulLiteral","src":"35070:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35047:3:89","nodeType":"YulIdentifier","src":"35047:3:89"},"nativeSrc":"35047:28:89","nodeType":"YulFunctionCall","src":"35047:28:89"},{"name":"end","nativeSrc":"35077:3:89","nodeType":"YulIdentifier","src":"35077:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"35030:16:89","nodeType":"YulIdentifier","src":"35030:16:89"},"nativeSrc":"35030:51:89","nodeType":"YulFunctionCall","src":"35030:51:89"}],"functionName":{"name":"mstore","nativeSrc":"35016:6:89","nodeType":"YulIdentifier","src":"35016:6:89"},"nativeSrc":"35016:66:89","nodeType":"YulFunctionCall","src":"35016:66:89"},"nativeSrc":"35016:66:89","nodeType":"YulExpressionStatement","src":"35016:66:89"},{"nativeSrc":"35095:41:89","nodeType":"YulVariableDeclaration","src":"35095:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"35128:2:89","nodeType":"YulIdentifier","src":"35128:2:89"},{"kind":"number","nativeSrc":"35132:2:89","nodeType":"YulLiteral","src":"35132:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35124:3:89","nodeType":"YulIdentifier","src":"35124:3:89"},"nativeSrc":"35124:11:89","nodeType":"YulFunctionCall","src":"35124:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"35111:12:89","nodeType":"YulIdentifier","src":"35111:12:89"},"nativeSrc":"35111:25:89","nodeType":"YulFunctionCall","src":"35111:25:89"},"variables":[{"name":"offset_2","nativeSrc":"35099:8:89","nodeType":"YulTypedName","src":"35099:8:89","type":""}]},{"body":{"nativeSrc":"35185:16:89","nodeType":"YulBlock","src":"35185:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35194:1:89","nodeType":"YulLiteral","src":"35194:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"35197:1:89","nodeType":"YulLiteral","src":"35197:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35187:6:89","nodeType":"YulIdentifier","src":"35187:6:89"},"nativeSrc":"35187:12:89","nodeType":"YulFunctionCall","src":"35187:12:89"},"nativeSrc":"35187:12:89","nodeType":"YulExpressionStatement","src":"35187:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"35155:8:89","nodeType":"YulIdentifier","src":"35155:8:89"},{"kind":"number","nativeSrc":"35165:18:89","nodeType":"YulLiteral","src":"35165:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"35152:2:89","nodeType":"YulIdentifier","src":"35152:2:89"},"nativeSrc":"35152:32:89","nodeType":"YulFunctionCall","src":"35152:32:89"},"nativeSrc":"35149:52:89","nodeType":"YulIf","src":"35149:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"35225:5:89","nodeType":"YulIdentifier","src":"35225:5:89"},{"kind":"number","nativeSrc":"35232:4:89","nodeType":"YulLiteral","src":"35232:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35221:3:89","nodeType":"YulIdentifier","src":"35221:3:89"},"nativeSrc":"35221:16:89","nodeType":"YulFunctionCall","src":"35221:16:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"35264:2:89","nodeType":"YulIdentifier","src":"35264:2:89"},{"name":"offset_2","nativeSrc":"35268:8:89","nodeType":"YulIdentifier","src":"35268:8:89"}],"functionName":{"name":"add","nativeSrc":"35260:3:89","nodeType":"YulIdentifier","src":"35260:3:89"},"nativeSrc":"35260:17:89","nodeType":"YulFunctionCall","src":"35260:17:89"},{"kind":"number","nativeSrc":"35279:4:89","nodeType":"YulLiteral","src":"35279:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35256:3:89","nodeType":"YulIdentifier","src":"35256:3:89"},"nativeSrc":"35256:28:89","nodeType":"YulFunctionCall","src":"35256:28:89"},{"name":"end","nativeSrc":"35286:3:89","nodeType":"YulIdentifier","src":"35286:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"35239:16:89","nodeType":"YulIdentifier","src":"35239:16:89"},"nativeSrc":"35239:51:89","nodeType":"YulFunctionCall","src":"35239:51:89"}],"functionName":{"name":"mstore","nativeSrc":"35214:6:89","nodeType":"YulIdentifier","src":"35214:6:89"},"nativeSrc":"35214:77:89","nodeType":"YulFunctionCall","src":"35214:77:89"},"nativeSrc":"35214:77:89","nodeType":"YulExpressionStatement","src":"35214:77:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"35315:5:89","nodeType":"YulIdentifier","src":"35315:5:89"},{"kind":"number","nativeSrc":"35322:2:89","nodeType":"YulLiteral","src":"35322:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35311:3:89","nodeType":"YulIdentifier","src":"35311:3:89"},"nativeSrc":"35311:14:89","nodeType":"YulFunctionCall","src":"35311:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"35348:2:89","nodeType":"YulIdentifier","src":"35348:2:89"},{"kind":"number","nativeSrc":"35352:2:89","nodeType":"YulLiteral","src":"35352:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35344:3:89","nodeType":"YulIdentifier","src":"35344:3:89"},"nativeSrc":"35344:11:89","nodeType":"YulFunctionCall","src":"35344:11:89"}],"functionName":{"name":"abi_decode_uint8","nativeSrc":"35327:16:89","nodeType":"YulIdentifier","src":"35327:16:89"},"nativeSrc":"35327:29:89","nodeType":"YulFunctionCall","src":"35327:29:89"}],"functionName":{"name":"mstore","nativeSrc":"35304:6:89","nodeType":"YulIdentifier","src":"35304:6:89"},"nativeSrc":"35304:53:89","nodeType":"YulFunctionCall","src":"35304:53:89"},"nativeSrc":"35304:53:89","nodeType":"YulExpressionStatement","src":"35304:53:89"},{"nativeSrc":"35370:43:89","nodeType":"YulVariableDeclaration","src":"35370:43:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"35403:2:89","nodeType":"YulIdentifier","src":"35403:2:89"},{"kind":"number","nativeSrc":"35407:4:89","nodeType":"YulLiteral","src":"35407:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"35399:3:89","nodeType":"YulIdentifier","src":"35399:3:89"},"nativeSrc":"35399:13:89","nodeType":"YulFunctionCall","src":"35399:13:89"}],"functionName":{"name":"calldataload","nativeSrc":"35386:12:89","nodeType":"YulIdentifier","src":"35386:12:89"},"nativeSrc":"35386:27:89","nodeType":"YulFunctionCall","src":"35386:27:89"},"variables":[{"name":"offset_3","nativeSrc":"35374:8:89","nodeType":"YulTypedName","src":"35374:8:89","type":""}]},{"body":{"nativeSrc":"35462:16:89","nodeType":"YulBlock","src":"35462:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35471:1:89","nodeType":"YulLiteral","src":"35471:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"35474:1:89","nodeType":"YulLiteral","src":"35474:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35464:6:89","nodeType":"YulIdentifier","src":"35464:6:89"},"nativeSrc":"35464:12:89","nodeType":"YulFunctionCall","src":"35464:12:89"},"nativeSrc":"35464:12:89","nodeType":"YulExpressionStatement","src":"35464:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"35432:8:89","nodeType":"YulIdentifier","src":"35432:8:89"},{"kind":"number","nativeSrc":"35442:18:89","nodeType":"YulLiteral","src":"35442:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"35429:2:89","nodeType":"YulIdentifier","src":"35429:2:89"},"nativeSrc":"35429:32:89","nodeType":"YulFunctionCall","src":"35429:32:89"},"nativeSrc":"35426:52:89","nodeType":"YulIf","src":"35426:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"35502:5:89","nodeType":"YulIdentifier","src":"35502:5:89"},{"kind":"number","nativeSrc":"35509:2:89","nodeType":"YulLiteral","src":"35509:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35498:3:89","nodeType":"YulIdentifier","src":"35498:3:89"},"nativeSrc":"35498:14:89","nodeType":"YulFunctionCall","src":"35498:14:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"35539:2:89","nodeType":"YulIdentifier","src":"35539:2:89"},{"name":"offset_3","nativeSrc":"35543:8:89","nodeType":"YulIdentifier","src":"35543:8:89"}],"functionName":{"name":"add","nativeSrc":"35535:3:89","nodeType":"YulIdentifier","src":"35535:3:89"},"nativeSrc":"35535:17:89","nodeType":"YulFunctionCall","src":"35535:17:89"},{"kind":"number","nativeSrc":"35554:4:89","nodeType":"YulLiteral","src":"35554:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35531:3:89","nodeType":"YulIdentifier","src":"35531:3:89"},"nativeSrc":"35531:28:89","nodeType":"YulFunctionCall","src":"35531:28:89"},{"name":"end","nativeSrc":"35561:3:89","nodeType":"YulIdentifier","src":"35561:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"35514:16:89","nodeType":"YulIdentifier","src":"35514:16:89"},"nativeSrc":"35514:51:89","nodeType":"YulFunctionCall","src":"35514:51:89"}],"functionName":{"name":"mstore","nativeSrc":"35491:6:89","nodeType":"YulIdentifier","src":"35491:6:89"},"nativeSrc":"35491:75:89","nodeType":"YulFunctionCall","src":"35491:75:89"},"nativeSrc":"35491:75:89","nodeType":"YulExpressionStatement","src":"35491:75:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"35586:3:89","nodeType":"YulIdentifier","src":"35586:3:89"},{"name":"value","nativeSrc":"35591:5:89","nodeType":"YulIdentifier","src":"35591:5:89"}],"functionName":{"name":"mstore","nativeSrc":"35579:6:89","nodeType":"YulIdentifier","src":"35579:6:89"},"nativeSrc":"35579:18:89","nodeType":"YulFunctionCall","src":"35579:18:89"},"nativeSrc":"35579:18:89","nodeType":"YulExpressionStatement","src":"35579:18:89"},{"nativeSrc":"35610:21:89","nodeType":"YulAssignment","src":"35610:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"35621:3:89","nodeType":"YulIdentifier","src":"35621:3:89"},{"kind":"number","nativeSrc":"35626:4:89","nodeType":"YulLiteral","src":"35626:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35617:3:89","nodeType":"YulIdentifier","src":"35617:3:89"},"nativeSrc":"35617:14:89","nodeType":"YulFunctionCall","src":"35617:14:89"},"variableNames":[{"name":"dst","nativeSrc":"35610:3:89","nodeType":"YulIdentifier","src":"35610:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"34552:3:89","nodeType":"YulIdentifier","src":"34552:3:89"},{"name":"srcEnd","nativeSrc":"34557:6:89","nodeType":"YulIdentifier","src":"34557:6:89"}],"functionName":{"name":"lt","nativeSrc":"34549:2:89","nodeType":"YulIdentifier","src":"34549:2:89"},"nativeSrc":"34549:15:89","nodeType":"YulFunctionCall","src":"34549:15:89"},"nativeSrc":"34541:1100:89","nodeType":"YulForLoop","post":{"nativeSrc":"34565:25:89","nodeType":"YulBlock","src":"34565:25:89","statements":[{"nativeSrc":"34567:21:89","nodeType":"YulAssignment","src":"34567:21:89","value":{"arguments":[{"name":"src","nativeSrc":"34578:3:89","nodeType":"YulIdentifier","src":"34578:3:89"},{"kind":"number","nativeSrc":"34583:4:89","nodeType":"YulLiteral","src":"34583:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34574:3:89","nodeType":"YulIdentifier","src":"34574:3:89"},"nativeSrc":"34574:14:89","nodeType":"YulFunctionCall","src":"34574:14:89"},"variableNames":[{"name":"src","nativeSrc":"34567:3:89","nodeType":"YulIdentifier","src":"34567:3:89"}]}]},"pre":{"nativeSrc":"34545:3:89","nodeType":"YulBlock","src":"34545:3:89","statements":[]},"src":"34541:1100:89"},{"nativeSrc":"35650:16:89","nodeType":"YulAssignment","src":"35650:16:89","value":{"name":"array_1","nativeSrc":"35659:7:89","nodeType":"YulIdentifier","src":"35659:7:89"},"variableNames":[{"name":"array","nativeSrc":"35650:5:89","nodeType":"YulIdentifier","src":"35650:5:89"}]}]},"name":"abi_decode_array_struct_TokenInfo_dyn","nativeSrc":"34010:1662:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"34057:6:89","nodeType":"YulTypedName","src":"34057:6:89","type":""},{"name":"end","nativeSrc":"34065:3:89","nodeType":"YulTypedName","src":"34065:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"34073:5:89","nodeType":"YulTypedName","src":"34073:5:89","type":""}],"src":"34010:1662:89"},{"body":{"nativeSrc":"35743:460:89","nodeType":"YulBlock","src":"35743:460:89","statements":[{"body":{"nativeSrc":"35787:16:89","nodeType":"YulBlock","src":"35787:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35796:1:89","nodeType":"YulLiteral","src":"35796:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"35799:1:89","nodeType":"YulLiteral","src":"35799:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35789:6:89","nodeType":"YulIdentifier","src":"35789:6:89"},"nativeSrc":"35789:12:89","nodeType":"YulFunctionCall","src":"35789:12:89"},"nativeSrc":"35789:12:89","nodeType":"YulExpressionStatement","src":"35789:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"35764:3:89","nodeType":"YulIdentifier","src":"35764:3:89"},{"name":"headStart","nativeSrc":"35769:9:89","nodeType":"YulIdentifier","src":"35769:9:89"}],"functionName":{"name":"sub","nativeSrc":"35760:3:89","nodeType":"YulIdentifier","src":"35760:3:89"},"nativeSrc":"35760:19:89","nodeType":"YulFunctionCall","src":"35760:19:89"},{"kind":"number","nativeSrc":"35781:4:89","nodeType":"YulLiteral","src":"35781:4:89","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"35756:3:89","nodeType":"YulIdentifier","src":"35756:3:89"},"nativeSrc":"35756:30:89","nodeType":"YulFunctionCall","src":"35756:30:89"},"nativeSrc":"35753:50:89","nodeType":"YulIf","src":"35753:50:89"},{"nativeSrc":"35812:31:89","nodeType":"YulAssignment","src":"35812:31:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_9697","nativeSrc":"35821:20:89","nodeType":"YulIdentifier","src":"35821:20:89"},"nativeSrc":"35821:22:89","nodeType":"YulFunctionCall","src":"35821:22:89"},"variableNames":[{"name":"value","nativeSrc":"35812:5:89","nodeType":"YulIdentifier","src":"35812:5:89"}]},{"nativeSrc":"35852:38:89","nodeType":"YulVariableDeclaration","src":"35852:38:89","value":{"arguments":[{"name":"headStart","nativeSrc":"35880:9:89","nodeType":"YulIdentifier","src":"35880:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"35867:12:89","nodeType":"YulIdentifier","src":"35867:12:89"},"nativeSrc":"35867:23:89","nodeType":"YulFunctionCall","src":"35867:23:89"},"variables":[{"name":"value_1","nativeSrc":"35856:7:89","nodeType":"YulTypedName","src":"35856:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"35924:7:89","nodeType":"YulIdentifier","src":"35924:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"35899:24:89","nodeType":"YulIdentifier","src":"35899:24:89"},"nativeSrc":"35899:33:89","nodeType":"YulFunctionCall","src":"35899:33:89"},"nativeSrc":"35899:33:89","nodeType":"YulExpressionStatement","src":"35899:33:89"},{"expression":{"arguments":[{"name":"value","nativeSrc":"35948:5:89","nodeType":"YulIdentifier","src":"35948:5:89"},{"name":"value_1","nativeSrc":"35955:7:89","nodeType":"YulIdentifier","src":"35955:7:89"}],"functionName":{"name":"mstore","nativeSrc":"35941:6:89","nodeType":"YulIdentifier","src":"35941:6:89"},"nativeSrc":"35941:22:89","nodeType":"YulFunctionCall","src":"35941:22:89"},"nativeSrc":"35941:22:89","nodeType":"YulExpressionStatement","src":"35941:22:89"},{"nativeSrc":"35972:16:89","nodeType":"YulVariableDeclaration","src":"35972:16:89","value":{"kind":"number","nativeSrc":"35987:1:89","nodeType":"YulLiteral","src":"35987:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"35976:7:89","nodeType":"YulTypedName","src":"35976:7:89","type":""}]},{"nativeSrc":"35997:43:89","nodeType":"YulAssignment","src":"35997:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36025:9:89","nodeType":"YulIdentifier","src":"36025:9:89"},{"kind":"number","nativeSrc":"36036:2:89","nodeType":"YulLiteral","src":"36036:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36021:3:89","nodeType":"YulIdentifier","src":"36021:3:89"},"nativeSrc":"36021:18:89","nodeType":"YulFunctionCall","src":"36021:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"36008:12:89","nodeType":"YulIdentifier","src":"36008:12:89"},"nativeSrc":"36008:32:89","nodeType":"YulFunctionCall","src":"36008:32:89"},"variableNames":[{"name":"value_2","nativeSrc":"35997:7:89","nodeType":"YulIdentifier","src":"35997:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"36060:5:89","nodeType":"YulIdentifier","src":"36060:5:89"},{"kind":"number","nativeSrc":"36067:2:89","nodeType":"YulLiteral","src":"36067:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36056:3:89","nodeType":"YulIdentifier","src":"36056:3:89"},"nativeSrc":"36056:14:89","nodeType":"YulFunctionCall","src":"36056:14:89"},{"name":"value_2","nativeSrc":"36072:7:89","nodeType":"YulIdentifier","src":"36072:7:89"}],"functionName":{"name":"mstore","nativeSrc":"36049:6:89","nodeType":"YulIdentifier","src":"36049:6:89"},"nativeSrc":"36049:31:89","nodeType":"YulFunctionCall","src":"36049:31:89"},"nativeSrc":"36049:31:89","nodeType":"YulExpressionStatement","src":"36049:31:89"},{"nativeSrc":"36089:16:89","nodeType":"YulVariableDeclaration","src":"36089:16:89","value":{"kind":"number","nativeSrc":"36104:1:89","nodeType":"YulLiteral","src":"36104:1:89","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"36093:7:89","nodeType":"YulTypedName","src":"36093:7:89","type":""}]},{"nativeSrc":"36114:43:89","nodeType":"YulAssignment","src":"36114:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36142:9:89","nodeType":"YulIdentifier","src":"36142:9:89"},{"kind":"number","nativeSrc":"36153:2:89","nodeType":"YulLiteral","src":"36153:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36138:3:89","nodeType":"YulIdentifier","src":"36138:3:89"},"nativeSrc":"36138:18:89","nodeType":"YulFunctionCall","src":"36138:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"36125:12:89","nodeType":"YulIdentifier","src":"36125:12:89"},"nativeSrc":"36125:32:89","nodeType":"YulFunctionCall","src":"36125:32:89"},"variableNames":[{"name":"value_3","nativeSrc":"36114:7:89","nodeType":"YulIdentifier","src":"36114:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"36177:5:89","nodeType":"YulIdentifier","src":"36177:5:89"},{"kind":"number","nativeSrc":"36184:2:89","nodeType":"YulLiteral","src":"36184:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36173:3:89","nodeType":"YulIdentifier","src":"36173:3:89"},"nativeSrc":"36173:14:89","nodeType":"YulFunctionCall","src":"36173:14:89"},{"name":"value_3","nativeSrc":"36189:7:89","nodeType":"YulIdentifier","src":"36189:7:89"}],"functionName":{"name":"mstore","nativeSrc":"36166:6:89","nodeType":"YulIdentifier","src":"36166:6:89"},"nativeSrc":"36166:31:89","nodeType":"YulFunctionCall","src":"36166:31:89"},"nativeSrc":"36166:31:89","nodeType":"YulExpressionStatement","src":"36166:31:89"}]},"name":"abi_decode_struct_NFTAmount","nativeSrc":"35677:526:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35714:9:89","nodeType":"YulTypedName","src":"35714:9:89","type":""},{"name":"end","nativeSrc":"35725:3:89","nodeType":"YulTypedName","src":"35725:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"35733:5:89","nodeType":"YulTypedName","src":"35733:5:89","type":""}],"src":"35677:526:89"},{"body":{"nativeSrc":"36281:658:89","nodeType":"YulBlock","src":"36281:658:89","statements":[{"body":{"nativeSrc":"36330:16:89","nodeType":"YulBlock","src":"36330:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36339:1:89","nodeType":"YulLiteral","src":"36339:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"36342:1:89","nodeType":"YulLiteral","src":"36342:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"36332:6:89","nodeType":"YulIdentifier","src":"36332:6:89"},"nativeSrc":"36332:12:89","nodeType":"YulFunctionCall","src":"36332:12:89"},"nativeSrc":"36332:12:89","nodeType":"YulExpressionStatement","src":"36332:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"36309:6:89","nodeType":"YulIdentifier","src":"36309:6:89"},{"kind":"number","nativeSrc":"36317:4:89","nodeType":"YulLiteral","src":"36317:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"36305:3:89","nodeType":"YulIdentifier","src":"36305:3:89"},"nativeSrc":"36305:17:89","nodeType":"YulFunctionCall","src":"36305:17:89"},{"name":"end","nativeSrc":"36324:3:89","nodeType":"YulIdentifier","src":"36324:3:89"}],"functionName":{"name":"slt","nativeSrc":"36301:3:89","nodeType":"YulIdentifier","src":"36301:3:89"},"nativeSrc":"36301:27:89","nodeType":"YulFunctionCall","src":"36301:27:89"}],"functionName":{"name":"iszero","nativeSrc":"36294:6:89","nodeType":"YulIdentifier","src":"36294:6:89"},"nativeSrc":"36294:35:89","nodeType":"YulFunctionCall","src":"36294:35:89"},"nativeSrc":"36291:55:89","nodeType":"YulIf","src":"36291:55:89"},{"nativeSrc":"36355:34:89","nodeType":"YulVariableDeclaration","src":"36355:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"36382:6:89","nodeType":"YulIdentifier","src":"36382:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"36369:12:89","nodeType":"YulIdentifier","src":"36369:12:89"},"nativeSrc":"36369:20:89","nodeType":"YulFunctionCall","src":"36369:20:89"},"variables":[{"name":"length","nativeSrc":"36359:6:89","nodeType":"YulTypedName","src":"36359:6:89","type":""}]},{"nativeSrc":"36398:105:89","nodeType":"YulVariableDeclaration","src":"36398:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"36495:6:89","nodeType":"YulIdentifier","src":"36495:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"36425:69:89","nodeType":"YulIdentifier","src":"36425:69:89"},"nativeSrc":"36425:77:89","nodeType":"YulFunctionCall","src":"36425:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"36409:15:89","nodeType":"YulIdentifier","src":"36409:15:89"},"nativeSrc":"36409:94:89","nodeType":"YulFunctionCall","src":"36409:94:89"},"variables":[{"name":"dst","nativeSrc":"36402:3:89","nodeType":"YulTypedName","src":"36402:3:89","type":""}]},{"nativeSrc":"36512:18:89","nodeType":"YulVariableDeclaration","src":"36512:18:89","value":{"name":"dst","nativeSrc":"36527:3:89","nodeType":"YulIdentifier","src":"36527:3:89"},"variables":[{"name":"array_1","nativeSrc":"36516:7:89","nodeType":"YulTypedName","src":"36516:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"36546:3:89","nodeType":"YulIdentifier","src":"36546:3:89"},{"name":"length","nativeSrc":"36551:6:89","nodeType":"YulIdentifier","src":"36551:6:89"}],"functionName":{"name":"mstore","nativeSrc":"36539:6:89","nodeType":"YulIdentifier","src":"36539:6:89"},"nativeSrc":"36539:19:89","nodeType":"YulFunctionCall","src":"36539:19:89"},"nativeSrc":"36539:19:89","nodeType":"YulExpressionStatement","src":"36539:19:89"},{"nativeSrc":"36567:21:89","nodeType":"YulAssignment","src":"36567:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"36578:3:89","nodeType":"YulIdentifier","src":"36578:3:89"},{"kind":"number","nativeSrc":"36583:4:89","nodeType":"YulLiteral","src":"36583:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36574:3:89","nodeType":"YulIdentifier","src":"36574:3:89"},"nativeSrc":"36574:14:89","nodeType":"YulFunctionCall","src":"36574:14:89"},"variableNames":[{"name":"dst","nativeSrc":"36567:3:89","nodeType":"YulIdentifier","src":"36567:3:89"}]},{"nativeSrc":"36597:55:89","nodeType":"YulVariableDeclaration","src":"36597:55:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"36619:6:89","nodeType":"YulIdentifier","src":"36619:6:89"},{"arguments":[{"name":"length","nativeSrc":"36631:6:89","nodeType":"YulIdentifier","src":"36631:6:89"},{"kind":"number","nativeSrc":"36639:4:89","nodeType":"YulLiteral","src":"36639:4:89","type":"","value":"0x60"}],"functionName":{"name":"mul","nativeSrc":"36627:3:89","nodeType":"YulIdentifier","src":"36627:3:89"},"nativeSrc":"36627:17:89","nodeType":"YulFunctionCall","src":"36627:17:89"}],"functionName":{"name":"add","nativeSrc":"36615:3:89","nodeType":"YulIdentifier","src":"36615:3:89"},"nativeSrc":"36615:30:89","nodeType":"YulFunctionCall","src":"36615:30:89"},{"kind":"number","nativeSrc":"36647:4:89","nodeType":"YulLiteral","src":"36647:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36611:3:89","nodeType":"YulIdentifier","src":"36611:3:89"},"nativeSrc":"36611:41:89","nodeType":"YulFunctionCall","src":"36611:41:89"},"variables":[{"name":"srcEnd","nativeSrc":"36601:6:89","nodeType":"YulTypedName","src":"36601:6:89","type":""}]},{"body":{"nativeSrc":"36680:16:89","nodeType":"YulBlock","src":"36680:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36689:1:89","nodeType":"YulLiteral","src":"36689:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"36692:1:89","nodeType":"YulLiteral","src":"36692:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"36682:6:89","nodeType":"YulIdentifier","src":"36682:6:89"},"nativeSrc":"36682:12:89","nodeType":"YulFunctionCall","src":"36682:12:89"},"nativeSrc":"36682:12:89","nodeType":"YulExpressionStatement","src":"36682:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"36667:6:89","nodeType":"YulIdentifier","src":"36667:6:89"},{"name":"end","nativeSrc":"36675:3:89","nodeType":"YulIdentifier","src":"36675:3:89"}],"functionName":{"name":"gt","nativeSrc":"36664:2:89","nodeType":"YulIdentifier","src":"36664:2:89"},"nativeSrc":"36664:15:89","nodeType":"YulFunctionCall","src":"36664:15:89"},"nativeSrc":"36661:35:89","nodeType":"YulIf","src":"36661:35:89"},{"nativeSrc":"36705:28:89","nodeType":"YulVariableDeclaration","src":"36705:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"36720:6:89","nodeType":"YulIdentifier","src":"36720:6:89"},{"kind":"number","nativeSrc":"36728:4:89","nodeType":"YulLiteral","src":"36728:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36716:3:89","nodeType":"YulIdentifier","src":"36716:3:89"},"nativeSrc":"36716:17:89","nodeType":"YulFunctionCall","src":"36716:17:89"},"variables":[{"name":"src","nativeSrc":"36709:3:89","nodeType":"YulTypedName","src":"36709:3:89","type":""}]},{"body":{"nativeSrc":"36800:108:89","nodeType":"YulBlock","src":"36800:108:89","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"36821:3:89","nodeType":"YulIdentifier","src":"36821:3:89"},{"arguments":[{"name":"src","nativeSrc":"36854:3:89","nodeType":"YulIdentifier","src":"36854:3:89"},{"name":"end","nativeSrc":"36859:3:89","nodeType":"YulIdentifier","src":"36859:3:89"}],"functionName":{"name":"abi_decode_struct_NFTAmount","nativeSrc":"36826:27:89","nodeType":"YulIdentifier","src":"36826:27:89"},"nativeSrc":"36826:37:89","nodeType":"YulFunctionCall","src":"36826:37:89"}],"functionName":{"name":"mstore","nativeSrc":"36814:6:89","nodeType":"YulIdentifier","src":"36814:6:89"},"nativeSrc":"36814:50:89","nodeType":"YulFunctionCall","src":"36814:50:89"},"nativeSrc":"36814:50:89","nodeType":"YulExpressionStatement","src":"36814:50:89"},{"nativeSrc":"36877:21:89","nodeType":"YulAssignment","src":"36877:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"36888:3:89","nodeType":"YulIdentifier","src":"36888:3:89"},{"kind":"number","nativeSrc":"36893:4:89","nodeType":"YulLiteral","src":"36893:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36884:3:89","nodeType":"YulIdentifier","src":"36884:3:89"},"nativeSrc":"36884:14:89","nodeType":"YulFunctionCall","src":"36884:14:89"},"variableNames":[{"name":"dst","nativeSrc":"36877:3:89","nodeType":"YulIdentifier","src":"36877:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"36753:3:89","nodeType":"YulIdentifier","src":"36753:3:89"},{"name":"srcEnd","nativeSrc":"36758:6:89","nodeType":"YulIdentifier","src":"36758:6:89"}],"functionName":{"name":"lt","nativeSrc":"36750:2:89","nodeType":"YulIdentifier","src":"36750:2:89"},"nativeSrc":"36750:15:89","nodeType":"YulFunctionCall","src":"36750:15:89"},"nativeSrc":"36742:166:89","nodeType":"YulForLoop","post":{"nativeSrc":"36766:25:89","nodeType":"YulBlock","src":"36766:25:89","statements":[{"nativeSrc":"36768:21:89","nodeType":"YulAssignment","src":"36768:21:89","value":{"arguments":[{"name":"src","nativeSrc":"36779:3:89","nodeType":"YulIdentifier","src":"36779:3:89"},{"kind":"number","nativeSrc":"36784:4:89","nodeType":"YulLiteral","src":"36784:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"36775:3:89","nodeType":"YulIdentifier","src":"36775:3:89"},"nativeSrc":"36775:14:89","nodeType":"YulFunctionCall","src":"36775:14:89"},"variableNames":[{"name":"src","nativeSrc":"36768:3:89","nodeType":"YulIdentifier","src":"36768:3:89"}]}]},"pre":{"nativeSrc":"36746:3:89","nodeType":"YulBlock","src":"36746:3:89","statements":[]},"src":"36742:166:89"},{"nativeSrc":"36917:16:89","nodeType":"YulAssignment","src":"36917:16:89","value":{"name":"array_1","nativeSrc":"36926:7:89","nodeType":"YulIdentifier","src":"36926:7:89"},"variableNames":[{"name":"array","nativeSrc":"36917:5:89","nodeType":"YulIdentifier","src":"36917:5:89"}]}]},"name":"abi_decode_array_struct_NFTAmount_dyn","nativeSrc":"36208:731:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"36255:6:89","nodeType":"YulTypedName","src":"36255:6:89","type":""},{"name":"end","nativeSrc":"36263:3:89","nodeType":"YulTypedName","src":"36263:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"36271:5:89","nodeType":"YulTypedName","src":"36271:5:89","type":""}],"src":"36208:731:89"},{"body":{"nativeSrc":"37015:1730:89","nodeType":"YulBlock","src":"37015:1730:89","statements":[{"body":{"nativeSrc":"37064:16:89","nodeType":"YulBlock","src":"37064:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"37073:1:89","nodeType":"YulLiteral","src":"37073:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"37076:1:89","nodeType":"YulLiteral","src":"37076:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"37066:6:89","nodeType":"YulIdentifier","src":"37066:6:89"},"nativeSrc":"37066:12:89","nodeType":"YulFunctionCall","src":"37066:12:89"},"nativeSrc":"37066:12:89","nodeType":"YulExpressionStatement","src":"37066:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"37043:6:89","nodeType":"YulIdentifier","src":"37043:6:89"},{"kind":"number","nativeSrc":"37051:4:89","nodeType":"YulLiteral","src":"37051:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"37039:3:89","nodeType":"YulIdentifier","src":"37039:3:89"},"nativeSrc":"37039:17:89","nodeType":"YulFunctionCall","src":"37039:17:89"},{"name":"end","nativeSrc":"37058:3:89","nodeType":"YulIdentifier","src":"37058:3:89"}],"functionName":{"name":"slt","nativeSrc":"37035:3:89","nodeType":"YulIdentifier","src":"37035:3:89"},"nativeSrc":"37035:27:89","nodeType":"YulFunctionCall","src":"37035:27:89"}],"functionName":{"name":"iszero","nativeSrc":"37028:6:89","nodeType":"YulIdentifier","src":"37028:6:89"},"nativeSrc":"37028:35:89","nodeType":"YulFunctionCall","src":"37028:35:89"},"nativeSrc":"37025:55:89","nodeType":"YulIf","src":"37025:55:89"},{"nativeSrc":"37089:34:89","nodeType":"YulVariableDeclaration","src":"37089:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"37116:6:89","nodeType":"YulIdentifier","src":"37116:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"37103:12:89","nodeType":"YulIdentifier","src":"37103:12:89"},"nativeSrc":"37103:20:89","nodeType":"YulFunctionCall","src":"37103:20:89"},"variables":[{"name":"length","nativeSrc":"37093:6:89","nodeType":"YulTypedName","src":"37093:6:89","type":""}]},{"nativeSrc":"37132:105:89","nodeType":"YulVariableDeclaration","src":"37132:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"37229:6:89","nodeType":"YulIdentifier","src":"37229:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"37159:69:89","nodeType":"YulIdentifier","src":"37159:69:89"},"nativeSrc":"37159:77:89","nodeType":"YulFunctionCall","src":"37159:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"37143:15:89","nodeType":"YulIdentifier","src":"37143:15:89"},"nativeSrc":"37143:94:89","nodeType":"YulFunctionCall","src":"37143:94:89"},"variables":[{"name":"dst","nativeSrc":"37136:3:89","nodeType":"YulTypedName","src":"37136:3:89","type":""}]},{"nativeSrc":"37246:18:89","nodeType":"YulVariableDeclaration","src":"37246:18:89","value":{"name":"dst","nativeSrc":"37261:3:89","nodeType":"YulIdentifier","src":"37261:3:89"},"variables":[{"name":"array_1","nativeSrc":"37250:7:89","nodeType":"YulTypedName","src":"37250:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"37280:3:89","nodeType":"YulIdentifier","src":"37280:3:89"},{"name":"length","nativeSrc":"37285:6:89","nodeType":"YulIdentifier","src":"37285:6:89"}],"functionName":{"name":"mstore","nativeSrc":"37273:6:89","nodeType":"YulIdentifier","src":"37273:6:89"},"nativeSrc":"37273:19:89","nodeType":"YulFunctionCall","src":"37273:19:89"},"nativeSrc":"37273:19:89","nodeType":"YulExpressionStatement","src":"37273:19:89"},{"nativeSrc":"37301:21:89","nodeType":"YulAssignment","src":"37301:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"37312:3:89","nodeType":"YulIdentifier","src":"37312:3:89"},{"kind":"number","nativeSrc":"37317:4:89","nodeType":"YulLiteral","src":"37317:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37308:3:89","nodeType":"YulIdentifier","src":"37308:3:89"},"nativeSrc":"37308:14:89","nodeType":"YulFunctionCall","src":"37308:14:89"},"variableNames":[{"name":"dst","nativeSrc":"37301:3:89","nodeType":"YulIdentifier","src":"37301:3:89"}]},{"nativeSrc":"37331:52:89","nodeType":"YulVariableDeclaration","src":"37331:52:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"37353:6:89","nodeType":"YulIdentifier","src":"37353:6:89"},{"arguments":[{"kind":"number","nativeSrc":"37365:1:89","nodeType":"YulLiteral","src":"37365:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"37368:6:89","nodeType":"YulIdentifier","src":"37368:6:89"}],"functionName":{"name":"shl","nativeSrc":"37361:3:89","nodeType":"YulIdentifier","src":"37361:3:89"},"nativeSrc":"37361:14:89","nodeType":"YulFunctionCall","src":"37361:14:89"}],"functionName":{"name":"add","nativeSrc":"37349:3:89","nodeType":"YulIdentifier","src":"37349:3:89"},"nativeSrc":"37349:27:89","nodeType":"YulFunctionCall","src":"37349:27:89"},{"kind":"number","nativeSrc":"37378:4:89","nodeType":"YulLiteral","src":"37378:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37345:3:89","nodeType":"YulIdentifier","src":"37345:3:89"},"nativeSrc":"37345:38:89","nodeType":"YulFunctionCall","src":"37345:38:89"},"variables":[{"name":"srcEnd","nativeSrc":"37335:6:89","nodeType":"YulTypedName","src":"37335:6:89","type":""}]},{"body":{"nativeSrc":"37411:16:89","nodeType":"YulBlock","src":"37411:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"37420:1:89","nodeType":"YulLiteral","src":"37420:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"37423:1:89","nodeType":"YulLiteral","src":"37423:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"37413:6:89","nodeType":"YulIdentifier","src":"37413:6:89"},"nativeSrc":"37413:12:89","nodeType":"YulFunctionCall","src":"37413:12:89"},"nativeSrc":"37413:12:89","nodeType":"YulExpressionStatement","src":"37413:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"37398:6:89","nodeType":"YulIdentifier","src":"37398:6:89"},{"name":"end","nativeSrc":"37406:3:89","nodeType":"YulIdentifier","src":"37406:3:89"}],"functionName":{"name":"gt","nativeSrc":"37395:2:89","nodeType":"YulIdentifier","src":"37395:2:89"},"nativeSrc":"37395:15:89","nodeType":"YulFunctionCall","src":"37395:15:89"},"nativeSrc":"37392:35:89","nodeType":"YulIf","src":"37392:35:89"},{"nativeSrc":"37436:28:89","nodeType":"YulVariableDeclaration","src":"37436:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"37451:6:89","nodeType":"YulIdentifier","src":"37451:6:89"},{"kind":"number","nativeSrc":"37459:4:89","nodeType":"YulLiteral","src":"37459:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37447:3:89","nodeType":"YulIdentifier","src":"37447:3:89"},"nativeSrc":"37447:17:89","nodeType":"YulFunctionCall","src":"37447:17:89"},"variables":[{"name":"src","nativeSrc":"37440:3:89","nodeType":"YulTypedName","src":"37440:3:89","type":""}]},{"body":{"nativeSrc":"37531:1183:89","nodeType":"YulBlock","src":"37531:1183:89","statements":[{"nativeSrc":"37545:36:89","nodeType":"YulVariableDeclaration","src":"37545:36:89","value":{"arguments":[{"name":"src","nativeSrc":"37577:3:89","nodeType":"YulIdentifier","src":"37577:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"37564:12:89","nodeType":"YulIdentifier","src":"37564:12:89"},"nativeSrc":"37564:17:89","nodeType":"YulFunctionCall","src":"37564:17:89"},"variables":[{"name":"innerOffset","nativeSrc":"37549:11:89","nodeType":"YulTypedName","src":"37549:11:89","type":""}]},{"body":{"nativeSrc":"37633:16:89","nodeType":"YulBlock","src":"37633:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"37642:1:89","nodeType":"YulLiteral","src":"37642:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"37645:1:89","nodeType":"YulLiteral","src":"37645:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"37635:6:89","nodeType":"YulIdentifier","src":"37635:6:89"},"nativeSrc":"37635:12:89","nodeType":"YulFunctionCall","src":"37635:12:89"},"nativeSrc":"37635:12:89","nodeType":"YulExpressionStatement","src":"37635:12:89"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"37600:11:89","nodeType":"YulIdentifier","src":"37600:11:89"},{"kind":"number","nativeSrc":"37613:18:89","nodeType":"YulLiteral","src":"37613:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"37597:2:89","nodeType":"YulIdentifier","src":"37597:2:89"},"nativeSrc":"37597:35:89","nodeType":"YulFunctionCall","src":"37597:35:89"},"nativeSrc":"37594:55:89","nodeType":"YulIf","src":"37594:55:89"},{"nativeSrc":"37662:34:89","nodeType":"YulVariableDeclaration","src":"37662:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"37676:6:89","nodeType":"YulIdentifier","src":"37676:6:89"},{"name":"innerOffset","nativeSrc":"37684:11:89","nodeType":"YulIdentifier","src":"37684:11:89"}],"functionName":{"name":"add","nativeSrc":"37672:3:89","nodeType":"YulIdentifier","src":"37672:3:89"},"nativeSrc":"37672:24:89","nodeType":"YulFunctionCall","src":"37672:24:89"},"variables":[{"name":"_1","nativeSrc":"37666:2:89","nodeType":"YulTypedName","src":"37666:2:89","type":""}]},{"body":{"nativeSrc":"37750:16:89","nodeType":"YulBlock","src":"37750:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"37759:1:89","nodeType":"YulLiteral","src":"37759:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"37762:1:89","nodeType":"YulLiteral","src":"37762:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"37752:6:89","nodeType":"YulIdentifier","src":"37752:6:89"},"nativeSrc":"37752:12:89","nodeType":"YulFunctionCall","src":"37752:12:89"},"nativeSrc":"37752:12:89","nodeType":"YulExpressionStatement","src":"37752:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"end","nativeSrc":"37724:3:89","nodeType":"YulIdentifier","src":"37724:3:89"},{"name":"_1","nativeSrc":"37729:2:89","nodeType":"YulIdentifier","src":"37729:2:89"}],"functionName":{"name":"sub","nativeSrc":"37720:3:89","nodeType":"YulIdentifier","src":"37720:3:89"},"nativeSrc":"37720:12:89","nodeType":"YulFunctionCall","src":"37720:12:89"},{"arguments":[{"kind":"number","nativeSrc":"37738:2:89","nodeType":"YulLiteral","src":"37738:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"37734:3:89","nodeType":"YulIdentifier","src":"37734:3:89"},"nativeSrc":"37734:7:89","nodeType":"YulFunctionCall","src":"37734:7:89"}],"functionName":{"name":"add","nativeSrc":"37716:3:89","nodeType":"YulIdentifier","src":"37716:3:89"},"nativeSrc":"37716:26:89","nodeType":"YulFunctionCall","src":"37716:26:89"},{"kind":"number","nativeSrc":"37744:4:89","nodeType":"YulLiteral","src":"37744:4:89","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"37712:3:89","nodeType":"YulIdentifier","src":"37712:3:89"},"nativeSrc":"37712:37:89","nodeType":"YulFunctionCall","src":"37712:37:89"},"nativeSrc":"37709:57:89","nodeType":"YulIf","src":"37709:57:89"},{"nativeSrc":"37779:35:89","nodeType":"YulVariableDeclaration","src":"37779:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_9705","nativeSrc":"37792:20:89","nodeType":"YulIdentifier","src":"37792:20:89"},"nativeSrc":"37792:22:89","nodeType":"YulFunctionCall","src":"37792:22:89"},"variables":[{"name":"value","nativeSrc":"37783:5:89","nodeType":"YulTypedName","src":"37783:5:89","type":""}]},{"nativeSrc":"37827:43:89","nodeType":"YulVariableDeclaration","src":"37827:43:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"37860:2:89","nodeType":"YulIdentifier","src":"37860:2:89"},{"kind":"number","nativeSrc":"37864:4:89","nodeType":"YulLiteral","src":"37864:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37856:3:89","nodeType":"YulIdentifier","src":"37856:3:89"},"nativeSrc":"37856:13:89","nodeType":"YulFunctionCall","src":"37856:13:89"}],"functionName":{"name":"calldataload","nativeSrc":"37843:12:89","nodeType":"YulIdentifier","src":"37843:12:89"},"nativeSrc":"37843:27:89","nodeType":"YulFunctionCall","src":"37843:27:89"},"variables":[{"name":"offset_1","nativeSrc":"37831:8:89","nodeType":"YulTypedName","src":"37831:8:89","type":""}]},{"body":{"nativeSrc":"37919:16:89","nodeType":"YulBlock","src":"37919:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"37928:1:89","nodeType":"YulLiteral","src":"37928:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"37931:1:89","nodeType":"YulLiteral","src":"37931:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"37921:6:89","nodeType":"YulIdentifier","src":"37921:6:89"},"nativeSrc":"37921:12:89","nodeType":"YulFunctionCall","src":"37921:12:89"},"nativeSrc":"37921:12:89","nodeType":"YulExpressionStatement","src":"37921:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"37889:8:89","nodeType":"YulIdentifier","src":"37889:8:89"},{"kind":"number","nativeSrc":"37899:18:89","nodeType":"YulLiteral","src":"37899:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"37886:2:89","nodeType":"YulIdentifier","src":"37886:2:89"},"nativeSrc":"37886:32:89","nodeType":"YulFunctionCall","src":"37886:32:89"},"nativeSrc":"37883:52:89","nodeType":"YulIf","src":"37883:52:89"},{"expression":{"arguments":[{"name":"value","nativeSrc":"37955:5:89","nodeType":"YulIdentifier","src":"37955:5:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"37987:2:89","nodeType":"YulIdentifier","src":"37987:2:89"},{"name":"offset_1","nativeSrc":"37991:8:89","nodeType":"YulIdentifier","src":"37991:8:89"}],"functionName":{"name":"add","nativeSrc":"37983:3:89","nodeType":"YulIdentifier","src":"37983:3:89"},"nativeSrc":"37983:17:89","nodeType":"YulFunctionCall","src":"37983:17:89"},{"kind":"number","nativeSrc":"38002:4:89","nodeType":"YulLiteral","src":"38002:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37979:3:89","nodeType":"YulIdentifier","src":"37979:3:89"},"nativeSrc":"37979:28:89","nodeType":"YulFunctionCall","src":"37979:28:89"},{"name":"end","nativeSrc":"38009:3:89","nodeType":"YulIdentifier","src":"38009:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"37962:16:89","nodeType":"YulIdentifier","src":"37962:16:89"},"nativeSrc":"37962:51:89","nodeType":"YulFunctionCall","src":"37962:51:89"}],"functionName":{"name":"mstore","nativeSrc":"37948:6:89","nodeType":"YulIdentifier","src":"37948:6:89"},"nativeSrc":"37948:66:89","nodeType":"YulFunctionCall","src":"37948:66:89"},"nativeSrc":"37948:66:89","nodeType":"YulExpressionStatement","src":"37948:66:89"},{"nativeSrc":"38027:41:89","nodeType":"YulVariableDeclaration","src":"38027:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"38060:2:89","nodeType":"YulIdentifier","src":"38060:2:89"},{"kind":"number","nativeSrc":"38064:2:89","nodeType":"YulLiteral","src":"38064:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38056:3:89","nodeType":"YulIdentifier","src":"38056:3:89"},"nativeSrc":"38056:11:89","nodeType":"YulFunctionCall","src":"38056:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"38043:12:89","nodeType":"YulIdentifier","src":"38043:12:89"},"nativeSrc":"38043:25:89","nodeType":"YulFunctionCall","src":"38043:25:89"},"variables":[{"name":"offset_2","nativeSrc":"38031:8:89","nodeType":"YulTypedName","src":"38031:8:89","type":""}]},{"body":{"nativeSrc":"38117:16:89","nodeType":"YulBlock","src":"38117:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"38126:1:89","nodeType":"YulLiteral","src":"38126:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"38129:1:89","nodeType":"YulLiteral","src":"38129:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"38119:6:89","nodeType":"YulIdentifier","src":"38119:6:89"},"nativeSrc":"38119:12:89","nodeType":"YulFunctionCall","src":"38119:12:89"},"nativeSrc":"38119:12:89","nodeType":"YulExpressionStatement","src":"38119:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"38087:8:89","nodeType":"YulIdentifier","src":"38087:8:89"},{"kind":"number","nativeSrc":"38097:18:89","nodeType":"YulLiteral","src":"38097:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"38084:2:89","nodeType":"YulIdentifier","src":"38084:2:89"},"nativeSrc":"38084:32:89","nodeType":"YulFunctionCall","src":"38084:32:89"},"nativeSrc":"38081:52:89","nodeType":"YulIf","src":"38081:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"38157:5:89","nodeType":"YulIdentifier","src":"38157:5:89"},{"kind":"number","nativeSrc":"38164:4:89","nodeType":"YulLiteral","src":"38164:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38153:3:89","nodeType":"YulIdentifier","src":"38153:3:89"},"nativeSrc":"38153:16:89","nodeType":"YulFunctionCall","src":"38153:16:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"38196:2:89","nodeType":"YulIdentifier","src":"38196:2:89"},{"name":"offset_2","nativeSrc":"38200:8:89","nodeType":"YulIdentifier","src":"38200:8:89"}],"functionName":{"name":"add","nativeSrc":"38192:3:89","nodeType":"YulIdentifier","src":"38192:3:89"},"nativeSrc":"38192:17:89","nodeType":"YulFunctionCall","src":"38192:17:89"},{"kind":"number","nativeSrc":"38211:4:89","nodeType":"YulLiteral","src":"38211:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38188:3:89","nodeType":"YulIdentifier","src":"38188:3:89"},"nativeSrc":"38188:28:89","nodeType":"YulFunctionCall","src":"38188:28:89"},{"name":"end","nativeSrc":"38218:3:89","nodeType":"YulIdentifier","src":"38218:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"38171:16:89","nodeType":"YulIdentifier","src":"38171:16:89"},"nativeSrc":"38171:51:89","nodeType":"YulFunctionCall","src":"38171:51:89"}],"functionName":{"name":"mstore","nativeSrc":"38146:6:89","nodeType":"YulIdentifier","src":"38146:6:89"},"nativeSrc":"38146:77:89","nodeType":"YulFunctionCall","src":"38146:77:89"},"nativeSrc":"38146:77:89","nodeType":"YulExpressionStatement","src":"38146:77:89"},{"nativeSrc":"38236:41:89","nodeType":"YulVariableDeclaration","src":"38236:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"38269:2:89","nodeType":"YulIdentifier","src":"38269:2:89"},{"kind":"number","nativeSrc":"38273:2:89","nodeType":"YulLiteral","src":"38273:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38265:3:89","nodeType":"YulIdentifier","src":"38265:3:89"},"nativeSrc":"38265:11:89","nodeType":"YulFunctionCall","src":"38265:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"38252:12:89","nodeType":"YulIdentifier","src":"38252:12:89"},"nativeSrc":"38252:25:89","nodeType":"YulFunctionCall","src":"38252:25:89"},"variables":[{"name":"offset_3","nativeSrc":"38240:8:89","nodeType":"YulTypedName","src":"38240:8:89","type":""}]},{"body":{"nativeSrc":"38326:16:89","nodeType":"YulBlock","src":"38326:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"38335:1:89","nodeType":"YulLiteral","src":"38335:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"38338:1:89","nodeType":"YulLiteral","src":"38338:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"38328:6:89","nodeType":"YulIdentifier","src":"38328:6:89"},"nativeSrc":"38328:12:89","nodeType":"YulFunctionCall","src":"38328:12:89"},"nativeSrc":"38328:12:89","nodeType":"YulExpressionStatement","src":"38328:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"38296:8:89","nodeType":"YulIdentifier","src":"38296:8:89"},{"kind":"number","nativeSrc":"38306:18:89","nodeType":"YulLiteral","src":"38306:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"38293:2:89","nodeType":"YulIdentifier","src":"38293:2:89"},"nativeSrc":"38293:32:89","nodeType":"YulFunctionCall","src":"38293:32:89"},"nativeSrc":"38290:52:89","nodeType":"YulIf","src":"38290:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"38366:5:89","nodeType":"YulIdentifier","src":"38366:5:89"},{"kind":"number","nativeSrc":"38373:2:89","nodeType":"YulLiteral","src":"38373:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38362:3:89","nodeType":"YulIdentifier","src":"38362:3:89"},"nativeSrc":"38362:14:89","nodeType":"YulFunctionCall","src":"38362:14:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"38403:2:89","nodeType":"YulIdentifier","src":"38403:2:89"},{"name":"offset_3","nativeSrc":"38407:8:89","nodeType":"YulIdentifier","src":"38407:8:89"}],"functionName":{"name":"add","nativeSrc":"38399:3:89","nodeType":"YulIdentifier","src":"38399:3:89"},"nativeSrc":"38399:17:89","nodeType":"YulFunctionCall","src":"38399:17:89"},{"kind":"number","nativeSrc":"38418:4:89","nodeType":"YulLiteral","src":"38418:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38395:3:89","nodeType":"YulIdentifier","src":"38395:3:89"},"nativeSrc":"38395:28:89","nodeType":"YulFunctionCall","src":"38395:28:89"},{"name":"end","nativeSrc":"38425:3:89","nodeType":"YulIdentifier","src":"38425:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"38378:16:89","nodeType":"YulIdentifier","src":"38378:16:89"},"nativeSrc":"38378:51:89","nodeType":"YulFunctionCall","src":"38378:51:89"}],"functionName":{"name":"mstore","nativeSrc":"38355:6:89","nodeType":"YulIdentifier","src":"38355:6:89"},"nativeSrc":"38355:75:89","nodeType":"YulFunctionCall","src":"38355:75:89"},"nativeSrc":"38355:75:89","nodeType":"YulExpressionStatement","src":"38355:75:89"},{"nativeSrc":"38443:43:89","nodeType":"YulVariableDeclaration","src":"38443:43:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"38476:2:89","nodeType":"YulIdentifier","src":"38476:2:89"},{"kind":"number","nativeSrc":"38480:4:89","nodeType":"YulLiteral","src":"38480:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"38472:3:89","nodeType":"YulIdentifier","src":"38472:3:89"},"nativeSrc":"38472:13:89","nodeType":"YulFunctionCall","src":"38472:13:89"}],"functionName":{"name":"calldataload","nativeSrc":"38459:12:89","nodeType":"YulIdentifier","src":"38459:12:89"},"nativeSrc":"38459:27:89","nodeType":"YulFunctionCall","src":"38459:27:89"},"variables":[{"name":"offset_4","nativeSrc":"38447:8:89","nodeType":"YulTypedName","src":"38447:8:89","type":""}]},{"body":{"nativeSrc":"38535:16:89","nodeType":"YulBlock","src":"38535:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"38544:1:89","nodeType":"YulLiteral","src":"38544:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"38547:1:89","nodeType":"YulLiteral","src":"38547:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"38537:6:89","nodeType":"YulIdentifier","src":"38537:6:89"},"nativeSrc":"38537:12:89","nodeType":"YulFunctionCall","src":"38537:12:89"},"nativeSrc":"38537:12:89","nodeType":"YulExpressionStatement","src":"38537:12:89"}]},"condition":{"arguments":[{"name":"offset_4","nativeSrc":"38505:8:89","nodeType":"YulIdentifier","src":"38505:8:89"},{"kind":"number","nativeSrc":"38515:18:89","nodeType":"YulLiteral","src":"38515:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"38502:2:89","nodeType":"YulIdentifier","src":"38502:2:89"},"nativeSrc":"38502:32:89","nodeType":"YulFunctionCall","src":"38502:32:89"},"nativeSrc":"38499:52:89","nodeType":"YulIf","src":"38499:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"38575:5:89","nodeType":"YulIdentifier","src":"38575:5:89"},{"kind":"number","nativeSrc":"38582:2:89","nodeType":"YulLiteral","src":"38582:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38571:3:89","nodeType":"YulIdentifier","src":"38571:3:89"},"nativeSrc":"38571:14:89","nodeType":"YulFunctionCall","src":"38571:14:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"38612:2:89","nodeType":"YulIdentifier","src":"38612:2:89"},{"name":"offset_4","nativeSrc":"38616:8:89","nodeType":"YulIdentifier","src":"38616:8:89"}],"functionName":{"name":"add","nativeSrc":"38608:3:89","nodeType":"YulIdentifier","src":"38608:3:89"},"nativeSrc":"38608:17:89","nodeType":"YulFunctionCall","src":"38608:17:89"},{"kind":"number","nativeSrc":"38627:4:89","nodeType":"YulLiteral","src":"38627:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38604:3:89","nodeType":"YulIdentifier","src":"38604:3:89"},"nativeSrc":"38604:28:89","nodeType":"YulFunctionCall","src":"38604:28:89"},{"name":"end","nativeSrc":"38634:3:89","nodeType":"YulIdentifier","src":"38634:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"38587:16:89","nodeType":"YulIdentifier","src":"38587:16:89"},"nativeSrc":"38587:51:89","nodeType":"YulFunctionCall","src":"38587:51:89"}],"functionName":{"name":"mstore","nativeSrc":"38564:6:89","nodeType":"YulIdentifier","src":"38564:6:89"},"nativeSrc":"38564:75:89","nodeType":"YulFunctionCall","src":"38564:75:89"},"nativeSrc":"38564:75:89","nodeType":"YulExpressionStatement","src":"38564:75:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"38659:3:89","nodeType":"YulIdentifier","src":"38659:3:89"},{"name":"value","nativeSrc":"38664:5:89","nodeType":"YulIdentifier","src":"38664:5:89"}],"functionName":{"name":"mstore","nativeSrc":"38652:6:89","nodeType":"YulIdentifier","src":"38652:6:89"},"nativeSrc":"38652:18:89","nodeType":"YulFunctionCall","src":"38652:18:89"},"nativeSrc":"38652:18:89","nodeType":"YulExpressionStatement","src":"38652:18:89"},{"nativeSrc":"38683:21:89","nodeType":"YulAssignment","src":"38683:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"38694:3:89","nodeType":"YulIdentifier","src":"38694:3:89"},{"kind":"number","nativeSrc":"38699:4:89","nodeType":"YulLiteral","src":"38699:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38690:3:89","nodeType":"YulIdentifier","src":"38690:3:89"},"nativeSrc":"38690:14:89","nodeType":"YulFunctionCall","src":"38690:14:89"},"variableNames":[{"name":"dst","nativeSrc":"38683:3:89","nodeType":"YulIdentifier","src":"38683:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"37484:3:89","nodeType":"YulIdentifier","src":"37484:3:89"},{"name":"srcEnd","nativeSrc":"37489:6:89","nodeType":"YulIdentifier","src":"37489:6:89"}],"functionName":{"name":"lt","nativeSrc":"37481:2:89","nodeType":"YulIdentifier","src":"37481:2:89"},"nativeSrc":"37481:15:89","nodeType":"YulFunctionCall","src":"37481:15:89"},"nativeSrc":"37473:1241:89","nodeType":"YulForLoop","post":{"nativeSrc":"37497:25:89","nodeType":"YulBlock","src":"37497:25:89","statements":[{"nativeSrc":"37499:21:89","nodeType":"YulAssignment","src":"37499:21:89","value":{"arguments":[{"name":"src","nativeSrc":"37510:3:89","nodeType":"YulIdentifier","src":"37510:3:89"},{"kind":"number","nativeSrc":"37515:4:89","nodeType":"YulLiteral","src":"37515:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37506:3:89","nodeType":"YulIdentifier","src":"37506:3:89"},"nativeSrc":"37506:14:89","nodeType":"YulFunctionCall","src":"37506:14:89"},"variableNames":[{"name":"src","nativeSrc":"37499:3:89","nodeType":"YulIdentifier","src":"37499:3:89"}]}]},"pre":{"nativeSrc":"37477:3:89","nodeType":"YulBlock","src":"37477:3:89","statements":[]},"src":"37473:1241:89"},{"nativeSrc":"38723:16:89","nodeType":"YulAssignment","src":"38723:16:89","value":{"name":"array_1","nativeSrc":"38732:7:89","nodeType":"YulIdentifier","src":"38732:7:89"},"variableNames":[{"name":"array","nativeSrc":"38723:5:89","nodeType":"YulIdentifier","src":"38723:5:89"}]}]},"name":"abi_decode_array_struct_NFTInfo_dyn","nativeSrc":"36944:1801:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"36989:6:89","nodeType":"YulTypedName","src":"36989:6:89","type":""},{"name":"end","nativeSrc":"36997:3:89","nodeType":"YulTypedName","src":"36997:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"37005:5:89","nodeType":"YulTypedName","src":"37005:5:89","type":""}],"src":"36944:1801:89"},{"body":{"nativeSrc":"38821:2766:89","nodeType":"YulBlock","src":"38821:2766:89","statements":[{"body":{"nativeSrc":"38867:16:89","nodeType":"YulBlock","src":"38867:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"38876:1:89","nodeType":"YulLiteral","src":"38876:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"38879:1:89","nodeType":"YulLiteral","src":"38879:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"38869:6:89","nodeType":"YulIdentifier","src":"38869:6:89"},"nativeSrc":"38869:12:89","nodeType":"YulFunctionCall","src":"38869:12:89"},"nativeSrc":"38869:12:89","nodeType":"YulExpressionStatement","src":"38869:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"38842:3:89","nodeType":"YulIdentifier","src":"38842:3:89"},{"name":"headStart","nativeSrc":"38847:9:89","nodeType":"YulIdentifier","src":"38847:9:89"}],"functionName":{"name":"sub","nativeSrc":"38838:3:89","nodeType":"YulIdentifier","src":"38838:3:89"},"nativeSrc":"38838:19:89","nodeType":"YulFunctionCall","src":"38838:19:89"},{"kind":"number","nativeSrc":"38859:6:89","nodeType":"YulLiteral","src":"38859:6:89","type":"","value":"0x0220"}],"functionName":{"name":"slt","nativeSrc":"38834:3:89","nodeType":"YulIdentifier","src":"38834:3:89"},"nativeSrc":"38834:32:89","nodeType":"YulFunctionCall","src":"38834:32:89"},"nativeSrc":"38831:52:89","nodeType":"YulIf","src":"38831:52:89"},{"nativeSrc":"38892:31:89","nodeType":"YulAssignment","src":"38892:31:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_9710","nativeSrc":"38901:20:89","nodeType":"YulIdentifier","src":"38901:20:89"},"nativeSrc":"38901:22:89","nodeType":"YulFunctionCall","src":"38901:22:89"},"variableNames":[{"name":"value","nativeSrc":"38892:5:89","nodeType":"YulIdentifier","src":"38892:5:89"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"38939:5:89","nodeType":"YulIdentifier","src":"38939:5:89"},{"arguments":[{"name":"headStart","nativeSrc":"38964:9:89","nodeType":"YulIdentifier","src":"38964:9:89"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"38946:17:89","nodeType":"YulIdentifier","src":"38946:17:89"},"nativeSrc":"38946:28:89","nodeType":"YulFunctionCall","src":"38946:28:89"}],"functionName":{"name":"mstore","nativeSrc":"38932:6:89","nodeType":"YulIdentifier","src":"38932:6:89"},"nativeSrc":"38932:43:89","nodeType":"YulFunctionCall","src":"38932:43:89"},"nativeSrc":"38932:43:89","nodeType":"YulExpressionStatement","src":"38932:43:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"38995:5:89","nodeType":"YulIdentifier","src":"38995:5:89"},{"kind":"number","nativeSrc":"39002:2:89","nodeType":"YulLiteral","src":"39002:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38991:3:89","nodeType":"YulIdentifier","src":"38991:3:89"},"nativeSrc":"38991:14:89","nodeType":"YulFunctionCall","src":"38991:14:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39029:9:89","nodeType":"YulIdentifier","src":"39029:9:89"},{"kind":"number","nativeSrc":"39040:2:89","nodeType":"YulLiteral","src":"39040:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39025:3:89","nodeType":"YulIdentifier","src":"39025:3:89"},"nativeSrc":"39025:18:89","nodeType":"YulFunctionCall","src":"39025:18:89"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"39007:17:89","nodeType":"YulIdentifier","src":"39007:17:89"},"nativeSrc":"39007:37:89","nodeType":"YulFunctionCall","src":"39007:37:89"}],"functionName":{"name":"mstore","nativeSrc":"38984:6:89","nodeType":"YulIdentifier","src":"38984:6:89"},"nativeSrc":"38984:61:89","nodeType":"YulFunctionCall","src":"38984:61:89"},"nativeSrc":"38984:61:89","nodeType":"YulExpressionStatement","src":"38984:61:89"},{"nativeSrc":"39054:16:89","nodeType":"YulVariableDeclaration","src":"39054:16:89","value":{"kind":"number","nativeSrc":"39069:1:89","nodeType":"YulLiteral","src":"39069:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"39058:7:89","nodeType":"YulTypedName","src":"39058:7:89","type":""}]},{"nativeSrc":"39079:43:89","nodeType":"YulAssignment","src":"39079:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39107:9:89","nodeType":"YulIdentifier","src":"39107:9:89"},{"kind":"number","nativeSrc":"39118:2:89","nodeType":"YulLiteral","src":"39118:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39103:3:89","nodeType":"YulIdentifier","src":"39103:3:89"},"nativeSrc":"39103:18:89","nodeType":"YulFunctionCall","src":"39103:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"39090:12:89","nodeType":"YulIdentifier","src":"39090:12:89"},"nativeSrc":"39090:32:89","nodeType":"YulFunctionCall","src":"39090:32:89"},"variableNames":[{"name":"value_1","nativeSrc":"39079:7:89","nodeType":"YulIdentifier","src":"39079:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"39142:5:89","nodeType":"YulIdentifier","src":"39142:5:89"},{"kind":"number","nativeSrc":"39149:2:89","nodeType":"YulLiteral","src":"39149:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39138:3:89","nodeType":"YulIdentifier","src":"39138:3:89"},"nativeSrc":"39138:14:89","nodeType":"YulFunctionCall","src":"39138:14:89"},{"name":"value_1","nativeSrc":"39154:7:89","nodeType":"YulIdentifier","src":"39154:7:89"}],"functionName":{"name":"mstore","nativeSrc":"39131:6:89","nodeType":"YulIdentifier","src":"39131:6:89"},"nativeSrc":"39131:31:89","nodeType":"YulFunctionCall","src":"39131:31:89"},"nativeSrc":"39131:31:89","nodeType":"YulExpressionStatement","src":"39131:31:89"},{"nativeSrc":"39171:16:89","nodeType":"YulVariableDeclaration","src":"39171:16:89","value":{"kind":"number","nativeSrc":"39186:1:89","nodeType":"YulLiteral","src":"39186:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"39175:7:89","nodeType":"YulTypedName","src":"39175:7:89","type":""}]},{"nativeSrc":"39196:43:89","nodeType":"YulAssignment","src":"39196:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39224:9:89","nodeType":"YulIdentifier","src":"39224:9:89"},{"kind":"number","nativeSrc":"39235:2:89","nodeType":"YulLiteral","src":"39235:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39220:3:89","nodeType":"YulIdentifier","src":"39220:3:89"},"nativeSrc":"39220:18:89","nodeType":"YulFunctionCall","src":"39220:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"39207:12:89","nodeType":"YulIdentifier","src":"39207:12:89"},"nativeSrc":"39207:32:89","nodeType":"YulFunctionCall","src":"39207:32:89"},"variableNames":[{"name":"value_2","nativeSrc":"39196:7:89","nodeType":"YulIdentifier","src":"39196:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"39259:5:89","nodeType":"YulIdentifier","src":"39259:5:89"},{"kind":"number","nativeSrc":"39266:2:89","nodeType":"YulLiteral","src":"39266:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39255:3:89","nodeType":"YulIdentifier","src":"39255:3:89"},"nativeSrc":"39255:14:89","nodeType":"YulFunctionCall","src":"39255:14:89"},{"name":"value_2","nativeSrc":"39271:7:89","nodeType":"YulIdentifier","src":"39271:7:89"}],"functionName":{"name":"mstore","nativeSrc":"39248:6:89","nodeType":"YulIdentifier","src":"39248:6:89"},"nativeSrc":"39248:31:89","nodeType":"YulFunctionCall","src":"39248:31:89"},"nativeSrc":"39248:31:89","nodeType":"YulExpressionStatement","src":"39248:31:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"39299:5:89","nodeType":"YulIdentifier","src":"39299:5:89"},{"kind":"number","nativeSrc":"39306:3:89","nodeType":"YulLiteral","src":"39306:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"39295:3:89","nodeType":"YulIdentifier","src":"39295:3:89"},"nativeSrc":"39295:15:89","nodeType":"YulFunctionCall","src":"39295:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39335:9:89","nodeType":"YulIdentifier","src":"39335:9:89"},{"kind":"number","nativeSrc":"39346:3:89","nodeType":"YulLiteral","src":"39346:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"39331:3:89","nodeType":"YulIdentifier","src":"39331:3:89"},"nativeSrc":"39331:19:89","nodeType":"YulFunctionCall","src":"39331:19:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"39312:18:89","nodeType":"YulIdentifier","src":"39312:18:89"},"nativeSrc":"39312:39:89","nodeType":"YulFunctionCall","src":"39312:39:89"}],"functionName":{"name":"mstore","nativeSrc":"39288:6:89","nodeType":"YulIdentifier","src":"39288:6:89"},"nativeSrc":"39288:64:89","nodeType":"YulFunctionCall","src":"39288:64:89"},"nativeSrc":"39288:64:89","nodeType":"YulExpressionStatement","src":"39288:64:89"},{"nativeSrc":"39361:47:89","nodeType":"YulVariableDeclaration","src":"39361:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39392:9:89","nodeType":"YulIdentifier","src":"39392:9:89"},{"kind":"number","nativeSrc":"39403:3:89","nodeType":"YulLiteral","src":"39403:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"39388:3:89","nodeType":"YulIdentifier","src":"39388:3:89"},"nativeSrc":"39388:19:89","nodeType":"YulFunctionCall","src":"39388:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"39375:12:89","nodeType":"YulIdentifier","src":"39375:12:89"},"nativeSrc":"39375:33:89","nodeType":"YulFunctionCall","src":"39375:33:89"},"variables":[{"name":"offset","nativeSrc":"39365:6:89","nodeType":"YulTypedName","src":"39365:6:89","type":""}]},{"body":{"nativeSrc":"39451:16:89","nodeType":"YulBlock","src":"39451:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39460:1:89","nodeType":"YulLiteral","src":"39460:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"39463:1:89","nodeType":"YulLiteral","src":"39463:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"39453:6:89","nodeType":"YulIdentifier","src":"39453:6:89"},"nativeSrc":"39453:12:89","nodeType":"YulFunctionCall","src":"39453:12:89"},"nativeSrc":"39453:12:89","nodeType":"YulExpressionStatement","src":"39453:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"39423:6:89","nodeType":"YulIdentifier","src":"39423:6:89"},{"kind":"number","nativeSrc":"39431:18:89","nodeType":"YulLiteral","src":"39431:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"39420:2:89","nodeType":"YulIdentifier","src":"39420:2:89"},"nativeSrc":"39420:30:89","nodeType":"YulFunctionCall","src":"39420:30:89"},"nativeSrc":"39417:50:89","nodeType":"YulIf","src":"39417:50:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"39487:5:89","nodeType":"YulIdentifier","src":"39487:5:89"},{"kind":"number","nativeSrc":"39494:3:89","nodeType":"YulLiteral","src":"39494:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"39483:3:89","nodeType":"YulIdentifier","src":"39483:3:89"},"nativeSrc":"39483:15:89","nodeType":"YulFunctionCall","src":"39483:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39521:9:89","nodeType":"YulIdentifier","src":"39521:9:89"},{"name":"offset","nativeSrc":"39532:6:89","nodeType":"YulIdentifier","src":"39532:6:89"}],"functionName":{"name":"add","nativeSrc":"39517:3:89","nodeType":"YulIdentifier","src":"39517:3:89"},"nativeSrc":"39517:22:89","nodeType":"YulFunctionCall","src":"39517:22:89"},{"name":"end","nativeSrc":"39541:3:89","nodeType":"YulIdentifier","src":"39541:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"39500:16:89","nodeType":"YulIdentifier","src":"39500:16:89"},"nativeSrc":"39500:45:89","nodeType":"YulFunctionCall","src":"39500:45:89"}],"functionName":{"name":"mstore","nativeSrc":"39476:6:89","nodeType":"YulIdentifier","src":"39476:6:89"},"nativeSrc":"39476:70:89","nodeType":"YulFunctionCall","src":"39476:70:89"},"nativeSrc":"39476:70:89","nodeType":"YulExpressionStatement","src":"39476:70:89"},{"nativeSrc":"39555:49:89","nodeType":"YulVariableDeclaration","src":"39555:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39588:9:89","nodeType":"YulIdentifier","src":"39588:9:89"},{"kind":"number","nativeSrc":"39599:3:89","nodeType":"YulLiteral","src":"39599:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"39584:3:89","nodeType":"YulIdentifier","src":"39584:3:89"},"nativeSrc":"39584:19:89","nodeType":"YulFunctionCall","src":"39584:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"39571:12:89","nodeType":"YulIdentifier","src":"39571:12:89"},"nativeSrc":"39571:33:89","nodeType":"YulFunctionCall","src":"39571:33:89"},"variables":[{"name":"offset_1","nativeSrc":"39559:8:89","nodeType":"YulTypedName","src":"39559:8:89","type":""}]},{"body":{"nativeSrc":"39649:16:89","nodeType":"YulBlock","src":"39649:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39658:1:89","nodeType":"YulLiteral","src":"39658:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"39661:1:89","nodeType":"YulLiteral","src":"39661:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"39651:6:89","nodeType":"YulIdentifier","src":"39651:6:89"},"nativeSrc":"39651:12:89","nodeType":"YulFunctionCall","src":"39651:12:89"},"nativeSrc":"39651:12:89","nodeType":"YulExpressionStatement","src":"39651:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"39619:8:89","nodeType":"YulIdentifier","src":"39619:8:89"},{"kind":"number","nativeSrc":"39629:18:89","nodeType":"YulLiteral","src":"39629:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"39616:2:89","nodeType":"YulIdentifier","src":"39616:2:89"},"nativeSrc":"39616:32:89","nodeType":"YulFunctionCall","src":"39616:32:89"},"nativeSrc":"39613:52:89","nodeType":"YulIf","src":"39613:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"39685:5:89","nodeType":"YulIdentifier","src":"39685:5:89"},{"kind":"number","nativeSrc":"39692:3:89","nodeType":"YulLiteral","src":"39692:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"39681:3:89","nodeType":"YulIdentifier","src":"39681:3:89"},"nativeSrc":"39681:15:89","nodeType":"YulFunctionCall","src":"39681:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39719:9:89","nodeType":"YulIdentifier","src":"39719:9:89"},{"name":"offset_1","nativeSrc":"39730:8:89","nodeType":"YulIdentifier","src":"39730:8:89"}],"functionName":{"name":"add","nativeSrc":"39715:3:89","nodeType":"YulIdentifier","src":"39715:3:89"},"nativeSrc":"39715:24:89","nodeType":"YulFunctionCall","src":"39715:24:89"},{"name":"end","nativeSrc":"39741:3:89","nodeType":"YulIdentifier","src":"39741:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"39698:16:89","nodeType":"YulIdentifier","src":"39698:16:89"},"nativeSrc":"39698:47:89","nodeType":"YulFunctionCall","src":"39698:47:89"}],"functionName":{"name":"mstore","nativeSrc":"39674:6:89","nodeType":"YulIdentifier","src":"39674:6:89"},"nativeSrc":"39674:72:89","nodeType":"YulFunctionCall","src":"39674:72:89"},"nativeSrc":"39674:72:89","nodeType":"YulExpressionStatement","src":"39674:72:89"},{"nativeSrc":"39755:49:89","nodeType":"YulVariableDeclaration","src":"39755:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39788:9:89","nodeType":"YulIdentifier","src":"39788:9:89"},{"kind":"number","nativeSrc":"39799:3:89","nodeType":"YulLiteral","src":"39799:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"39784:3:89","nodeType":"YulIdentifier","src":"39784:3:89"},"nativeSrc":"39784:19:89","nodeType":"YulFunctionCall","src":"39784:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"39771:12:89","nodeType":"YulIdentifier","src":"39771:12:89"},"nativeSrc":"39771:33:89","nodeType":"YulFunctionCall","src":"39771:33:89"},"variables":[{"name":"offset_2","nativeSrc":"39759:8:89","nodeType":"YulTypedName","src":"39759:8:89","type":""}]},{"body":{"nativeSrc":"39849:16:89","nodeType":"YulBlock","src":"39849:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39858:1:89","nodeType":"YulLiteral","src":"39858:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"39861:1:89","nodeType":"YulLiteral","src":"39861:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"39851:6:89","nodeType":"YulIdentifier","src":"39851:6:89"},"nativeSrc":"39851:12:89","nodeType":"YulFunctionCall","src":"39851:12:89"},"nativeSrc":"39851:12:89","nodeType":"YulExpressionStatement","src":"39851:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"39819:8:89","nodeType":"YulIdentifier","src":"39819:8:89"},{"kind":"number","nativeSrc":"39829:18:89","nodeType":"YulLiteral","src":"39829:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"39816:2:89","nodeType":"YulIdentifier","src":"39816:2:89"},"nativeSrc":"39816:32:89","nodeType":"YulFunctionCall","src":"39816:32:89"},"nativeSrc":"39813:52:89","nodeType":"YulIf","src":"39813:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"39885:5:89","nodeType":"YulIdentifier","src":"39885:5:89"},{"kind":"number","nativeSrc":"39892:3:89","nodeType":"YulLiteral","src":"39892:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"39881:3:89","nodeType":"YulIdentifier","src":"39881:3:89"},"nativeSrc":"39881:15:89","nodeType":"YulFunctionCall","src":"39881:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39919:9:89","nodeType":"YulIdentifier","src":"39919:9:89"},{"name":"offset_2","nativeSrc":"39930:8:89","nodeType":"YulIdentifier","src":"39930:8:89"}],"functionName":{"name":"add","nativeSrc":"39915:3:89","nodeType":"YulIdentifier","src":"39915:3:89"},"nativeSrc":"39915:24:89","nodeType":"YulFunctionCall","src":"39915:24:89"},{"name":"end","nativeSrc":"39941:3:89","nodeType":"YulIdentifier","src":"39941:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"39898:16:89","nodeType":"YulIdentifier","src":"39898:16:89"},"nativeSrc":"39898:47:89","nodeType":"YulFunctionCall","src":"39898:47:89"}],"functionName":{"name":"mstore","nativeSrc":"39874:6:89","nodeType":"YulIdentifier","src":"39874:6:89"},"nativeSrc":"39874:72:89","nodeType":"YulFunctionCall","src":"39874:72:89"},"nativeSrc":"39874:72:89","nodeType":"YulExpressionStatement","src":"39874:72:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"39966:5:89","nodeType":"YulIdentifier","src":"39966:5:89"},{"kind":"number","nativeSrc":"39973:3:89","nodeType":"YulLiteral","src":"39973:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"39962:3:89","nodeType":"YulIdentifier","src":"39962:3:89"},"nativeSrc":"39962:15:89","nodeType":"YulFunctionCall","src":"39962:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40013:9:89","nodeType":"YulIdentifier","src":"40013:9:89"},{"kind":"number","nativeSrc":"40024:3:89","nodeType":"YulLiteral","src":"40024:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"40009:3:89","nodeType":"YulIdentifier","src":"40009:3:89"},"nativeSrc":"40009:19:89","nodeType":"YulFunctionCall","src":"40009:19:89"},{"name":"end","nativeSrc":"40030:3:89","nodeType":"YulIdentifier","src":"40030:3:89"}],"functionName":{"name":"abi_decode_struct_TokenAmount","nativeSrc":"39979:29:89","nodeType":"YulIdentifier","src":"39979:29:89"},"nativeSrc":"39979:55:89","nodeType":"YulFunctionCall","src":"39979:55:89"}],"functionName":{"name":"mstore","nativeSrc":"39955:6:89","nodeType":"YulIdentifier","src":"39955:6:89"},"nativeSrc":"39955:80:89","nodeType":"YulFunctionCall","src":"39955:80:89"},"nativeSrc":"39955:80:89","nodeType":"YulExpressionStatement","src":"39955:80:89"},{"nativeSrc":"40044:49:89","nodeType":"YulVariableDeclaration","src":"40044:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40077:9:89","nodeType":"YulIdentifier","src":"40077:9:89"},{"kind":"number","nativeSrc":"40088:3:89","nodeType":"YulLiteral","src":"40088:3:89","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"40073:3:89","nodeType":"YulIdentifier","src":"40073:3:89"},"nativeSrc":"40073:19:89","nodeType":"YulFunctionCall","src":"40073:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"40060:12:89","nodeType":"YulIdentifier","src":"40060:12:89"},"nativeSrc":"40060:33:89","nodeType":"YulFunctionCall","src":"40060:33:89"},"variables":[{"name":"offset_3","nativeSrc":"40048:8:89","nodeType":"YulTypedName","src":"40048:8:89","type":""}]},{"body":{"nativeSrc":"40138:16:89","nodeType":"YulBlock","src":"40138:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"40147:1:89","nodeType":"YulLiteral","src":"40147:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"40150:1:89","nodeType":"YulLiteral","src":"40150:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"40140:6:89","nodeType":"YulIdentifier","src":"40140:6:89"},"nativeSrc":"40140:12:89","nodeType":"YulFunctionCall","src":"40140:12:89"},"nativeSrc":"40140:12:89","nodeType":"YulExpressionStatement","src":"40140:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"40108:8:89","nodeType":"YulIdentifier","src":"40108:8:89"},{"kind":"number","nativeSrc":"40118:18:89","nodeType":"YulLiteral","src":"40118:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"40105:2:89","nodeType":"YulIdentifier","src":"40105:2:89"},"nativeSrc":"40105:32:89","nodeType":"YulFunctionCall","src":"40105:32:89"},"nativeSrc":"40102:52:89","nodeType":"YulIf","src":"40102:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"40174:5:89","nodeType":"YulIdentifier","src":"40174:5:89"},{"kind":"number","nativeSrc":"40181:6:89","nodeType":"YulLiteral","src":"40181:6:89","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"40170:3:89","nodeType":"YulIdentifier","src":"40170:3:89"},"nativeSrc":"40170:18:89","nodeType":"YulFunctionCall","src":"40170:18:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40223:9:89","nodeType":"YulIdentifier","src":"40223:9:89"},{"name":"offset_3","nativeSrc":"40234:8:89","nodeType":"YulIdentifier","src":"40234:8:89"}],"functionName":{"name":"add","nativeSrc":"40219:3:89","nodeType":"YulIdentifier","src":"40219:3:89"},"nativeSrc":"40219:24:89","nodeType":"YulFunctionCall","src":"40219:24:89"},{"name":"end","nativeSrc":"40245:3:89","nodeType":"YulIdentifier","src":"40245:3:89"}],"functionName":{"name":"abi_decode_array_address_dyn","nativeSrc":"40190:28:89","nodeType":"YulIdentifier","src":"40190:28:89"},"nativeSrc":"40190:59:89","nodeType":"YulFunctionCall","src":"40190:59:89"}],"functionName":{"name":"mstore","nativeSrc":"40163:6:89","nodeType":"YulIdentifier","src":"40163:6:89"},"nativeSrc":"40163:87:89","nodeType":"YulFunctionCall","src":"40163:87:89"},"nativeSrc":"40163:87:89","nodeType":"YulExpressionStatement","src":"40163:87:89"},{"nativeSrc":"40259:49:89","nodeType":"YulVariableDeclaration","src":"40259:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40292:9:89","nodeType":"YulIdentifier","src":"40292:9:89"},{"kind":"number","nativeSrc":"40303:3:89","nodeType":"YulLiteral","src":"40303:3:89","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"40288:3:89","nodeType":"YulIdentifier","src":"40288:3:89"},"nativeSrc":"40288:19:89","nodeType":"YulFunctionCall","src":"40288:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"40275:12:89","nodeType":"YulIdentifier","src":"40275:12:89"},"nativeSrc":"40275:33:89","nodeType":"YulFunctionCall","src":"40275:33:89"},"variables":[{"name":"offset_4","nativeSrc":"40263:8:89","nodeType":"YulTypedName","src":"40263:8:89","type":""}]},{"body":{"nativeSrc":"40353:16:89","nodeType":"YulBlock","src":"40353:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"40362:1:89","nodeType":"YulLiteral","src":"40362:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"40365:1:89","nodeType":"YulLiteral","src":"40365:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"40355:6:89","nodeType":"YulIdentifier","src":"40355:6:89"},"nativeSrc":"40355:12:89","nodeType":"YulFunctionCall","src":"40355:12:89"},"nativeSrc":"40355:12:89","nodeType":"YulExpressionStatement","src":"40355:12:89"}]},"condition":{"arguments":[{"name":"offset_4","nativeSrc":"40323:8:89","nodeType":"YulIdentifier","src":"40323:8:89"},{"kind":"number","nativeSrc":"40333:18:89","nodeType":"YulLiteral","src":"40333:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"40320:2:89","nodeType":"YulIdentifier","src":"40320:2:89"},"nativeSrc":"40320:32:89","nodeType":"YulFunctionCall","src":"40320:32:89"},"nativeSrc":"40317:52:89","nodeType":"YulIf","src":"40317:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"40389:5:89","nodeType":"YulIdentifier","src":"40389:5:89"},{"kind":"number","nativeSrc":"40396:3:89","nodeType":"YulLiteral","src":"40396:3:89","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"40385:3:89","nodeType":"YulIdentifier","src":"40385:3:89"},"nativeSrc":"40385:15:89","nodeType":"YulFunctionCall","src":"40385:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40446:9:89","nodeType":"YulIdentifier","src":"40446:9:89"},{"name":"offset_4","nativeSrc":"40457:8:89","nodeType":"YulIdentifier","src":"40457:8:89"}],"functionName":{"name":"add","nativeSrc":"40442:3:89","nodeType":"YulIdentifier","src":"40442:3:89"},"nativeSrc":"40442:24:89","nodeType":"YulFunctionCall","src":"40442:24:89"},{"name":"end","nativeSrc":"40468:3:89","nodeType":"YulIdentifier","src":"40468:3:89"}],"functionName":{"name":"abi_decode_array_struct_TokenAmount_dyn","nativeSrc":"40402:39:89","nodeType":"YulIdentifier","src":"40402:39:89"},"nativeSrc":"40402:70:89","nodeType":"YulFunctionCall","src":"40402:70:89"}],"functionName":{"name":"mstore","nativeSrc":"40378:6:89","nodeType":"YulIdentifier","src":"40378:6:89"},"nativeSrc":"40378:95:89","nodeType":"YulFunctionCall","src":"40378:95:89"},"nativeSrc":"40378:95:89","nodeType":"YulExpressionStatement","src":"40378:95:89"},{"nativeSrc":"40482:49:89","nodeType":"YulVariableDeclaration","src":"40482:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40515:9:89","nodeType":"YulIdentifier","src":"40515:9:89"},{"kind":"number","nativeSrc":"40526:3:89","nodeType":"YulLiteral","src":"40526:3:89","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"40511:3:89","nodeType":"YulIdentifier","src":"40511:3:89"},"nativeSrc":"40511:19:89","nodeType":"YulFunctionCall","src":"40511:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"40498:12:89","nodeType":"YulIdentifier","src":"40498:12:89"},"nativeSrc":"40498:33:89","nodeType":"YulFunctionCall","src":"40498:33:89"},"variables":[{"name":"offset_5","nativeSrc":"40486:8:89","nodeType":"YulTypedName","src":"40486:8:89","type":""}]},{"body":{"nativeSrc":"40576:16:89","nodeType":"YulBlock","src":"40576:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"40585:1:89","nodeType":"YulLiteral","src":"40585:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"40588:1:89","nodeType":"YulLiteral","src":"40588:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"40578:6:89","nodeType":"YulIdentifier","src":"40578:6:89"},"nativeSrc":"40578:12:89","nodeType":"YulFunctionCall","src":"40578:12:89"},"nativeSrc":"40578:12:89","nodeType":"YulExpressionStatement","src":"40578:12:89"}]},"condition":{"arguments":[{"name":"offset_5","nativeSrc":"40546:8:89","nodeType":"YulIdentifier","src":"40546:8:89"},{"kind":"number","nativeSrc":"40556:18:89","nodeType":"YulLiteral","src":"40556:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"40543:2:89","nodeType":"YulIdentifier","src":"40543:2:89"},"nativeSrc":"40543:32:89","nodeType":"YulFunctionCall","src":"40543:32:89"},"nativeSrc":"40540:52:89","nodeType":"YulIf","src":"40540:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"40612:5:89","nodeType":"YulIdentifier","src":"40612:5:89"},{"kind":"number","nativeSrc":"40619:3:89","nodeType":"YulLiteral","src":"40619:3:89","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"40608:3:89","nodeType":"YulIdentifier","src":"40608:3:89"},"nativeSrc":"40608:15:89","nodeType":"YulFunctionCall","src":"40608:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40669:9:89","nodeType":"YulIdentifier","src":"40669:9:89"},{"name":"offset_5","nativeSrc":"40680:8:89","nodeType":"YulIdentifier","src":"40680:8:89"}],"functionName":{"name":"add","nativeSrc":"40665:3:89","nodeType":"YulIdentifier","src":"40665:3:89"},"nativeSrc":"40665:24:89","nodeType":"YulFunctionCall","src":"40665:24:89"},{"name":"end","nativeSrc":"40691:3:89","nodeType":"YulIdentifier","src":"40691:3:89"}],"functionName":{"name":"abi_decode_array_struct_TokenAmount_dyn","nativeSrc":"40625:39:89","nodeType":"YulIdentifier","src":"40625:39:89"},"nativeSrc":"40625:70:89","nodeType":"YulFunctionCall","src":"40625:70:89"}],"functionName":{"name":"mstore","nativeSrc":"40601:6:89","nodeType":"YulIdentifier","src":"40601:6:89"},"nativeSrc":"40601:95:89","nodeType":"YulFunctionCall","src":"40601:95:89"},"nativeSrc":"40601:95:89","nodeType":"YulExpressionStatement","src":"40601:95:89"},{"nativeSrc":"40705:49:89","nodeType":"YulVariableDeclaration","src":"40705:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40738:9:89","nodeType":"YulIdentifier","src":"40738:9:89"},{"kind":"number","nativeSrc":"40749:3:89","nodeType":"YulLiteral","src":"40749:3:89","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"40734:3:89","nodeType":"YulIdentifier","src":"40734:3:89"},"nativeSrc":"40734:19:89","nodeType":"YulFunctionCall","src":"40734:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"40721:12:89","nodeType":"YulIdentifier","src":"40721:12:89"},"nativeSrc":"40721:33:89","nodeType":"YulFunctionCall","src":"40721:33:89"},"variables":[{"name":"offset_6","nativeSrc":"40709:8:89","nodeType":"YulTypedName","src":"40709:8:89","type":""}]},{"body":{"nativeSrc":"40799:16:89","nodeType":"YulBlock","src":"40799:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"40808:1:89","nodeType":"YulLiteral","src":"40808:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"40811:1:89","nodeType":"YulLiteral","src":"40811:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"40801:6:89","nodeType":"YulIdentifier","src":"40801:6:89"},"nativeSrc":"40801:12:89","nodeType":"YulFunctionCall","src":"40801:12:89"},"nativeSrc":"40801:12:89","nodeType":"YulExpressionStatement","src":"40801:12:89"}]},"condition":{"arguments":[{"name":"offset_6","nativeSrc":"40769:8:89","nodeType":"YulIdentifier","src":"40769:8:89"},{"kind":"number","nativeSrc":"40779:18:89","nodeType":"YulLiteral","src":"40779:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"40766:2:89","nodeType":"YulIdentifier","src":"40766:2:89"},"nativeSrc":"40766:32:89","nodeType":"YulFunctionCall","src":"40766:32:89"},"nativeSrc":"40763:52:89","nodeType":"YulIf","src":"40763:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"40835:5:89","nodeType":"YulIdentifier","src":"40835:5:89"},{"kind":"number","nativeSrc":"40842:3:89","nodeType":"YulLiteral","src":"40842:3:89","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"40831:3:89","nodeType":"YulIdentifier","src":"40831:3:89"},"nativeSrc":"40831:15:89","nodeType":"YulFunctionCall","src":"40831:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40890:9:89","nodeType":"YulIdentifier","src":"40890:9:89"},{"name":"offset_6","nativeSrc":"40901:8:89","nodeType":"YulIdentifier","src":"40901:8:89"}],"functionName":{"name":"add","nativeSrc":"40886:3:89","nodeType":"YulIdentifier","src":"40886:3:89"},"nativeSrc":"40886:24:89","nodeType":"YulFunctionCall","src":"40886:24:89"},{"name":"end","nativeSrc":"40912:3:89","nodeType":"YulIdentifier","src":"40912:3:89"}],"functionName":{"name":"abi_decode_array_struct_TokenInfo_dyn","nativeSrc":"40848:37:89","nodeType":"YulIdentifier","src":"40848:37:89"},"nativeSrc":"40848:68:89","nodeType":"YulFunctionCall","src":"40848:68:89"}],"functionName":{"name":"mstore","nativeSrc":"40824:6:89","nodeType":"YulIdentifier","src":"40824:6:89"},"nativeSrc":"40824:93:89","nodeType":"YulFunctionCall","src":"40824:93:89"},"nativeSrc":"40824:93:89","nodeType":"YulExpressionStatement","src":"40824:93:89"},{"nativeSrc":"40926:49:89","nodeType":"YulVariableDeclaration","src":"40926:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40959:9:89","nodeType":"YulIdentifier","src":"40959:9:89"},{"kind":"number","nativeSrc":"40970:3:89","nodeType":"YulLiteral","src":"40970:3:89","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"40955:3:89","nodeType":"YulIdentifier","src":"40955:3:89"},"nativeSrc":"40955:19:89","nodeType":"YulFunctionCall","src":"40955:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"40942:12:89","nodeType":"YulIdentifier","src":"40942:12:89"},"nativeSrc":"40942:33:89","nodeType":"YulFunctionCall","src":"40942:33:89"},"variables":[{"name":"offset_7","nativeSrc":"40930:8:89","nodeType":"YulTypedName","src":"40930:8:89","type":""}]},{"body":{"nativeSrc":"41020:16:89","nodeType":"YulBlock","src":"41020:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41029:1:89","nodeType":"YulLiteral","src":"41029:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"41032:1:89","nodeType":"YulLiteral","src":"41032:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"41022:6:89","nodeType":"YulIdentifier","src":"41022:6:89"},"nativeSrc":"41022:12:89","nodeType":"YulFunctionCall","src":"41022:12:89"},"nativeSrc":"41022:12:89","nodeType":"YulExpressionStatement","src":"41022:12:89"}]},"condition":{"arguments":[{"name":"offset_7","nativeSrc":"40990:8:89","nodeType":"YulIdentifier","src":"40990:8:89"},{"kind":"number","nativeSrc":"41000:18:89","nodeType":"YulLiteral","src":"41000:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"40987:2:89","nodeType":"YulIdentifier","src":"40987:2:89"},"nativeSrc":"40987:32:89","nodeType":"YulFunctionCall","src":"40987:32:89"},"nativeSrc":"40984:52:89","nodeType":"YulIf","src":"40984:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"41056:5:89","nodeType":"YulIdentifier","src":"41056:5:89"},{"kind":"number","nativeSrc":"41063:3:89","nodeType":"YulLiteral","src":"41063:3:89","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"41052:3:89","nodeType":"YulIdentifier","src":"41052:3:89"},"nativeSrc":"41052:15:89","nodeType":"YulFunctionCall","src":"41052:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41111:9:89","nodeType":"YulIdentifier","src":"41111:9:89"},{"name":"offset_7","nativeSrc":"41122:8:89","nodeType":"YulIdentifier","src":"41122:8:89"}],"functionName":{"name":"add","nativeSrc":"41107:3:89","nodeType":"YulIdentifier","src":"41107:3:89"},"nativeSrc":"41107:24:89","nodeType":"YulFunctionCall","src":"41107:24:89"},{"name":"end","nativeSrc":"41133:3:89","nodeType":"YulIdentifier","src":"41133:3:89"}],"functionName":{"name":"abi_decode_array_struct_NFTAmount_dyn","nativeSrc":"41069:37:89","nodeType":"YulIdentifier","src":"41069:37:89"},"nativeSrc":"41069:68:89","nodeType":"YulFunctionCall","src":"41069:68:89"}],"functionName":{"name":"mstore","nativeSrc":"41045:6:89","nodeType":"YulIdentifier","src":"41045:6:89"},"nativeSrc":"41045:93:89","nodeType":"YulFunctionCall","src":"41045:93:89"},"nativeSrc":"41045:93:89","nodeType":"YulExpressionStatement","src":"41045:93:89"},{"nativeSrc":"41147:49:89","nodeType":"YulVariableDeclaration","src":"41147:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41180:9:89","nodeType":"YulIdentifier","src":"41180:9:89"},{"kind":"number","nativeSrc":"41191:3:89","nodeType":"YulLiteral","src":"41191:3:89","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"41176:3:89","nodeType":"YulIdentifier","src":"41176:3:89"},"nativeSrc":"41176:19:89","nodeType":"YulFunctionCall","src":"41176:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"41163:12:89","nodeType":"YulIdentifier","src":"41163:12:89"},"nativeSrc":"41163:33:89","nodeType":"YulFunctionCall","src":"41163:33:89"},"variables":[{"name":"offset_8","nativeSrc":"41151:8:89","nodeType":"YulTypedName","src":"41151:8:89","type":""}]},{"body":{"nativeSrc":"41241:16:89","nodeType":"YulBlock","src":"41241:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41250:1:89","nodeType":"YulLiteral","src":"41250:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"41253:1:89","nodeType":"YulLiteral","src":"41253:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"41243:6:89","nodeType":"YulIdentifier","src":"41243:6:89"},"nativeSrc":"41243:12:89","nodeType":"YulFunctionCall","src":"41243:12:89"},"nativeSrc":"41243:12:89","nodeType":"YulExpressionStatement","src":"41243:12:89"}]},"condition":{"arguments":[{"name":"offset_8","nativeSrc":"41211:8:89","nodeType":"YulIdentifier","src":"41211:8:89"},{"kind":"number","nativeSrc":"41221:18:89","nodeType":"YulLiteral","src":"41221:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"41208:2:89","nodeType":"YulIdentifier","src":"41208:2:89"},"nativeSrc":"41208:32:89","nodeType":"YulFunctionCall","src":"41208:32:89"},"nativeSrc":"41205:52:89","nodeType":"YulIf","src":"41205:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"41277:5:89","nodeType":"YulIdentifier","src":"41277:5:89"},{"kind":"number","nativeSrc":"41284:3:89","nodeType":"YulLiteral","src":"41284:3:89","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"41273:3:89","nodeType":"YulIdentifier","src":"41273:3:89"},"nativeSrc":"41273:15:89","nodeType":"YulFunctionCall","src":"41273:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41332:9:89","nodeType":"YulIdentifier","src":"41332:9:89"},{"name":"offset_8","nativeSrc":"41343:8:89","nodeType":"YulIdentifier","src":"41343:8:89"}],"functionName":{"name":"add","nativeSrc":"41328:3:89","nodeType":"YulIdentifier","src":"41328:3:89"},"nativeSrc":"41328:24:89","nodeType":"YulFunctionCall","src":"41328:24:89"},{"name":"end","nativeSrc":"41354:3:89","nodeType":"YulIdentifier","src":"41354:3:89"}],"functionName":{"name":"abi_decode_array_struct_NFTAmount_dyn","nativeSrc":"41290:37:89","nodeType":"YulIdentifier","src":"41290:37:89"},"nativeSrc":"41290:68:89","nodeType":"YulFunctionCall","src":"41290:68:89"}],"functionName":{"name":"mstore","nativeSrc":"41266:6:89","nodeType":"YulIdentifier","src":"41266:6:89"},"nativeSrc":"41266:93:89","nodeType":"YulFunctionCall","src":"41266:93:89"},"nativeSrc":"41266:93:89","nodeType":"YulExpressionStatement","src":"41266:93:89"},{"nativeSrc":"41368:52:89","nodeType":"YulVariableDeclaration","src":"41368:52:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41401:9:89","nodeType":"YulIdentifier","src":"41401:9:89"},{"kind":"number","nativeSrc":"41412:6:89","nodeType":"YulLiteral","src":"41412:6:89","type":"","value":"0x0200"}],"functionName":{"name":"add","nativeSrc":"41397:3:89","nodeType":"YulIdentifier","src":"41397:3:89"},"nativeSrc":"41397:22:89","nodeType":"YulFunctionCall","src":"41397:22:89"}],"functionName":{"name":"calldataload","nativeSrc":"41384:12:89","nodeType":"YulIdentifier","src":"41384:12:89"},"nativeSrc":"41384:36:89","nodeType":"YulFunctionCall","src":"41384:36:89"},"variables":[{"name":"offset_9","nativeSrc":"41372:8:89","nodeType":"YulTypedName","src":"41372:8:89","type":""}]},{"body":{"nativeSrc":"41465:16:89","nodeType":"YulBlock","src":"41465:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41474:1:89","nodeType":"YulLiteral","src":"41474:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"41477:1:89","nodeType":"YulLiteral","src":"41477:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"41467:6:89","nodeType":"YulIdentifier","src":"41467:6:89"},"nativeSrc":"41467:12:89","nodeType":"YulFunctionCall","src":"41467:12:89"},"nativeSrc":"41467:12:89","nodeType":"YulExpressionStatement","src":"41467:12:89"}]},"condition":{"arguments":[{"name":"offset_9","nativeSrc":"41435:8:89","nodeType":"YulIdentifier","src":"41435:8:89"},{"kind":"number","nativeSrc":"41445:18:89","nodeType":"YulLiteral","src":"41445:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"41432:2:89","nodeType":"YulIdentifier","src":"41432:2:89"},"nativeSrc":"41432:32:89","nodeType":"YulFunctionCall","src":"41432:32:89"},"nativeSrc":"41429:52:89","nodeType":"YulIf","src":"41429:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"41501:5:89","nodeType":"YulIdentifier","src":"41501:5:89"},{"kind":"number","nativeSrc":"41508:3:89","nodeType":"YulLiteral","src":"41508:3:89","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"41497:3:89","nodeType":"YulIdentifier","src":"41497:3:89"},"nativeSrc":"41497:15:89","nodeType":"YulFunctionCall","src":"41497:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41554:9:89","nodeType":"YulIdentifier","src":"41554:9:89"},{"name":"offset_9","nativeSrc":"41565:8:89","nodeType":"YulIdentifier","src":"41565:8:89"}],"functionName":{"name":"add","nativeSrc":"41550:3:89","nodeType":"YulIdentifier","src":"41550:3:89"},"nativeSrc":"41550:24:89","nodeType":"YulFunctionCall","src":"41550:24:89"},{"name":"end","nativeSrc":"41576:3:89","nodeType":"YulIdentifier","src":"41576:3:89"}],"functionName":{"name":"abi_decode_array_struct_NFTInfo_dyn","nativeSrc":"41514:35:89","nodeType":"YulIdentifier","src":"41514:35:89"},"nativeSrc":"41514:66:89","nodeType":"YulFunctionCall","src":"41514:66:89"}],"functionName":{"name":"mstore","nativeSrc":"41490:6:89","nodeType":"YulIdentifier","src":"41490:6:89"},"nativeSrc":"41490:91:89","nodeType":"YulFunctionCall","src":"41490:91:89"},"nativeSrc":"41490:91:89","nodeType":"YulExpressionStatement","src":"41490:91:89"}]},"name":"abi_decode_struct_UnionInMessage","nativeSrc":"38750:2837:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38792:9:89","nodeType":"YulTypedName","src":"38792:9:89","type":""},{"name":"end","nativeSrc":"38803:3:89","nodeType":"YulTypedName","src":"38803:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"38811:5:89","nodeType":"YulTypedName","src":"38811:5:89","type":""}],"src":"38750:2837:89"},{"body":{"nativeSrc":"41724:84:89","nodeType":"YulBlock","src":"41724:84:89","statements":[{"nativeSrc":"41734:68:89","nodeType":"YulAssignment","src":"41734:68:89","value":{"arguments":[{"name":"value","nativeSrc":"41780:5:89","nodeType":"YulIdentifier","src":"41780:5:89"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"41787:12:89","nodeType":"YulIdentifier","src":"41787:12:89"},"nativeSrc":"41787:14:89","nodeType":"YulFunctionCall","src":"41787:14:89"}],"functionName":{"name":"abi_decode_struct_UnionInMessage","nativeSrc":"41747:32:89","nodeType":"YulIdentifier","src":"41747:32:89"},"nativeSrc":"41747:55:89","nodeType":"YulFunctionCall","src":"41747:55:89"},"variableNames":[{"name":"converted","nativeSrc":"41734:9:89","nodeType":"YulIdentifier","src":"41734:9:89"}]}]},"name":"convert_t_struct$_UnionInMessage_$18197_calldata_ptr_to_t_struct$_UnionInMessage_$18197_memory_ptr","nativeSrc":"41592:216:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"41700:5:89","nodeType":"YulTypedName","src":"41700:5:89","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"41710:9:89","nodeType":"YulTypedName","src":"41710:9:89","type":""}],"src":"41592:216:89"},{"body":{"nativeSrc":"41923:435:89","nodeType":"YulBlock","src":"41923:435:89","statements":[{"nativeSrc":"41933:51:89","nodeType":"YulVariableDeclaration","src":"41933:51:89","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"41972:11:89","nodeType":"YulIdentifier","src":"41972:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"41959:12:89","nodeType":"YulIdentifier","src":"41959:12:89"},"nativeSrc":"41959:25:89","nodeType":"YulFunctionCall","src":"41959:25:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"41937:18:89","nodeType":"YulTypedName","src":"41937:18:89","type":""}]},{"body":{"nativeSrc":"42073:16:89","nodeType":"YulBlock","src":"42073:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42082:1:89","nodeType":"YulLiteral","src":"42082:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"42085:1:89","nodeType":"YulLiteral","src":"42085:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"42075:6:89","nodeType":"YulIdentifier","src":"42075:6:89"},"nativeSrc":"42075:12:89","nodeType":"YulFunctionCall","src":"42075:12:89"},"nativeSrc":"42075:12:89","nodeType":"YulExpressionStatement","src":"42075:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"42007:18:89","nodeType":"YulIdentifier","src":"42007:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"42035:12:89","nodeType":"YulIdentifier","src":"42035:12:89"},"nativeSrc":"42035:14:89","nodeType":"YulFunctionCall","src":"42035:14:89"},{"name":"base_ref","nativeSrc":"42051:8:89","nodeType":"YulIdentifier","src":"42051:8:89"}],"functionName":{"name":"sub","nativeSrc":"42031:3:89","nodeType":"YulIdentifier","src":"42031:3:89"},"nativeSrc":"42031:29:89","nodeType":"YulFunctionCall","src":"42031:29:89"},{"arguments":[{"kind":"number","nativeSrc":"42066:2:89","nodeType":"YulLiteral","src":"42066:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"42062:3:89","nodeType":"YulIdentifier","src":"42062:3:89"},"nativeSrc":"42062:7:89","nodeType":"YulFunctionCall","src":"42062:7:89"}],"functionName":{"name":"add","nativeSrc":"42027:3:89","nodeType":"YulIdentifier","src":"42027:3:89"},"nativeSrc":"42027:43:89","nodeType":"YulFunctionCall","src":"42027:43:89"}],"functionName":{"name":"slt","nativeSrc":"42003:3:89","nodeType":"YulIdentifier","src":"42003:3:89"},"nativeSrc":"42003:68:89","nodeType":"YulFunctionCall","src":"42003:68:89"}],"functionName":{"name":"iszero","nativeSrc":"41996:6:89","nodeType":"YulIdentifier","src":"41996:6:89"},"nativeSrc":"41996:76:89","nodeType":"YulFunctionCall","src":"41996:76:89"},"nativeSrc":"41993:96:89","nodeType":"YulIf","src":"41993:96:89"},{"nativeSrc":"42098:47:89","nodeType":"YulVariableDeclaration","src":"42098:47:89","value":{"arguments":[{"name":"base_ref","nativeSrc":"42116:8:89","nodeType":"YulIdentifier","src":"42116:8:89"},{"name":"rel_offset_of_tail","nativeSrc":"42126:18:89","nodeType":"YulIdentifier","src":"42126:18:89"}],"functionName":{"name":"add","nativeSrc":"42112:3:89","nodeType":"YulIdentifier","src":"42112:3:89"},"nativeSrc":"42112:33:89","nodeType":"YulFunctionCall","src":"42112:33:89"},"variables":[{"name":"addr_1","nativeSrc":"42102:6:89","nodeType":"YulTypedName","src":"42102:6:89","type":""}]},{"nativeSrc":"42154:30:89","nodeType":"YulAssignment","src":"42154:30:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"42177:6:89","nodeType":"YulIdentifier","src":"42177:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"42164:12:89","nodeType":"YulIdentifier","src":"42164:12:89"},"nativeSrc":"42164:20:89","nodeType":"YulFunctionCall","src":"42164:20:89"},"variableNames":[{"name":"length","nativeSrc":"42154:6:89","nodeType":"YulIdentifier","src":"42154:6:89"}]},{"body":{"nativeSrc":"42227:16:89","nodeType":"YulBlock","src":"42227:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42236:1:89","nodeType":"YulLiteral","src":"42236:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"42239:1:89","nodeType":"YulLiteral","src":"42239:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"42229:6:89","nodeType":"YulIdentifier","src":"42229:6:89"},"nativeSrc":"42229:12:89","nodeType":"YulFunctionCall","src":"42229:12:89"},"nativeSrc":"42229:12:89","nodeType":"YulExpressionStatement","src":"42229:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"42199:6:89","nodeType":"YulIdentifier","src":"42199:6:89"},{"kind":"number","nativeSrc":"42207:18:89","nodeType":"YulLiteral","src":"42207:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"42196:2:89","nodeType":"YulIdentifier","src":"42196:2:89"},"nativeSrc":"42196:30:89","nodeType":"YulFunctionCall","src":"42196:30:89"},"nativeSrc":"42193:50:89","nodeType":"YulIf","src":"42193:50:89"},{"nativeSrc":"42252:25:89","nodeType":"YulAssignment","src":"42252:25:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"42264:6:89","nodeType":"YulIdentifier","src":"42264:6:89"},{"kind":"number","nativeSrc":"42272:4:89","nodeType":"YulLiteral","src":"42272:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"42260:3:89","nodeType":"YulIdentifier","src":"42260:3:89"},"nativeSrc":"42260:17:89","nodeType":"YulFunctionCall","src":"42260:17:89"},"variableNames":[{"name":"addr","nativeSrc":"42252:4:89","nodeType":"YulIdentifier","src":"42252:4:89"}]},{"body":{"nativeSrc":"42336:16:89","nodeType":"YulBlock","src":"42336:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42345:1:89","nodeType":"YulLiteral","src":"42345:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"42348:1:89","nodeType":"YulLiteral","src":"42348:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"42338:6:89","nodeType":"YulIdentifier","src":"42338:6:89"},"nativeSrc":"42338:12:89","nodeType":"YulFunctionCall","src":"42338:12:89"},"nativeSrc":"42338:12:89","nodeType":"YulExpressionStatement","src":"42338:12:89"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"42293:4:89","nodeType":"YulIdentifier","src":"42293:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"42303:12:89","nodeType":"YulIdentifier","src":"42303:12:89"},"nativeSrc":"42303:14:89","nodeType":"YulFunctionCall","src":"42303:14:89"},{"arguments":[{"kind":"number","nativeSrc":"42323:1:89","nodeType":"YulLiteral","src":"42323:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"42326:6:89","nodeType":"YulIdentifier","src":"42326:6:89"}],"functionName":{"name":"shl","nativeSrc":"42319:3:89","nodeType":"YulIdentifier","src":"42319:3:89"},"nativeSrc":"42319:14:89","nodeType":"YulFunctionCall","src":"42319:14:89"}],"functionName":{"name":"sub","nativeSrc":"42299:3:89","nodeType":"YulIdentifier","src":"42299:3:89"},"nativeSrc":"42299:35:89","nodeType":"YulFunctionCall","src":"42299:35:89"}],"functionName":{"name":"sgt","nativeSrc":"42289:3:89","nodeType":"YulIdentifier","src":"42289:3:89"},"nativeSrc":"42289:46:89","nodeType":"YulFunctionCall","src":"42289:46:89"},"nativeSrc":"42286:66:89","nodeType":"YulIf","src":"42286:66:89"}]},"name":"access_calldata_tail_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"41813:545:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"41880:8:89","nodeType":"YulTypedName","src":"41880:8:89","type":""},{"name":"ptr_to_tail","nativeSrc":"41890:11:89","nodeType":"YulTypedName","src":"41890:11:89","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"41906:4:89","nodeType":"YulTypedName","src":"41906:4:89","type":""},{"name":"length","nativeSrc":"41912:6:89","nodeType":"YulTypedName","src":"41912:6:89","type":""}],"src":"41813:545:89"},{"body":{"nativeSrc":"42395:95:89","nodeType":"YulBlock","src":"42395:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42412:1:89","nodeType":"YulLiteral","src":"42412:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"42419:3:89","nodeType":"YulLiteral","src":"42419:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"42424:10:89","nodeType":"YulLiteral","src":"42424:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"42415:3:89","nodeType":"YulIdentifier","src":"42415:3:89"},"nativeSrc":"42415:20:89","nodeType":"YulFunctionCall","src":"42415:20:89"}],"functionName":{"name":"mstore","nativeSrc":"42405:6:89","nodeType":"YulIdentifier","src":"42405:6:89"},"nativeSrc":"42405:31:89","nodeType":"YulFunctionCall","src":"42405:31:89"},"nativeSrc":"42405:31:89","nodeType":"YulExpressionStatement","src":"42405:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42452:1:89","nodeType":"YulLiteral","src":"42452:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"42455:4:89","nodeType":"YulLiteral","src":"42455:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"42445:6:89","nodeType":"YulIdentifier","src":"42445:6:89"},"nativeSrc":"42445:15:89","nodeType":"YulFunctionCall","src":"42445:15:89"},"nativeSrc":"42445:15:89","nodeType":"YulExpressionStatement","src":"42445:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42476:1:89","nodeType":"YulLiteral","src":"42476:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"42479:4:89","nodeType":"YulLiteral","src":"42479:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"42469:6:89","nodeType":"YulIdentifier","src":"42469:6:89"},"nativeSrc":"42469:15:89","nodeType":"YulFunctionCall","src":"42469:15:89"},"nativeSrc":"42469:15:89","nodeType":"YulExpressionStatement","src":"42469:15:89"}]},"name":"panic_error_0x32","nativeSrc":"42363:127:89","nodeType":"YulFunctionDefinition","src":"42363:127:89"},{"body":{"nativeSrc":"42572:424:89","nodeType":"YulBlock","src":"42572:424:89","statements":[{"nativeSrc":"42582:43:89","nodeType":"YulVariableDeclaration","src":"42582:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"42621:3:89","nodeType":"YulIdentifier","src":"42621:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"42608:12:89","nodeType":"YulIdentifier","src":"42608:12:89"},"nativeSrc":"42608:17:89","nodeType":"YulFunctionCall","src":"42608:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"42586:18:89","nodeType":"YulTypedName","src":"42586:18:89","type":""}]},{"body":{"nativeSrc":"42714:16:89","nodeType":"YulBlock","src":"42714:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42723:1:89","nodeType":"YulLiteral","src":"42723:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"42726:1:89","nodeType":"YulLiteral","src":"42726:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"42716:6:89","nodeType":"YulIdentifier","src":"42716:6:89"},"nativeSrc":"42716:12:89","nodeType":"YulFunctionCall","src":"42716:12:89"},"nativeSrc":"42716:12:89","nodeType":"YulExpressionStatement","src":"42716:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"42648:18:89","nodeType":"YulIdentifier","src":"42648:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"42676:12:89","nodeType":"YulIdentifier","src":"42676:12:89"},"nativeSrc":"42676:14:89","nodeType":"YulFunctionCall","src":"42676:14:89"},{"name":"base_ref","nativeSrc":"42692:8:89","nodeType":"YulIdentifier","src":"42692:8:89"}],"functionName":{"name":"sub","nativeSrc":"42672:3:89","nodeType":"YulIdentifier","src":"42672:3:89"},"nativeSrc":"42672:29:89","nodeType":"YulFunctionCall","src":"42672:29:89"},{"arguments":[{"kind":"number","nativeSrc":"42707:2:89","nodeType":"YulLiteral","src":"42707:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"42703:3:89","nodeType":"YulIdentifier","src":"42703:3:89"},"nativeSrc":"42703:7:89","nodeType":"YulFunctionCall","src":"42703:7:89"}],"functionName":{"name":"add","nativeSrc":"42668:3:89","nodeType":"YulIdentifier","src":"42668:3:89"},"nativeSrc":"42668:43:89","nodeType":"YulFunctionCall","src":"42668:43:89"}],"functionName":{"name":"slt","nativeSrc":"42644:3:89","nodeType":"YulIdentifier","src":"42644:3:89"},"nativeSrc":"42644:68:89","nodeType":"YulFunctionCall","src":"42644:68:89"}],"functionName":{"name":"iszero","nativeSrc":"42637:6:89","nodeType":"YulIdentifier","src":"42637:6:89"},"nativeSrc":"42637:76:89","nodeType":"YulFunctionCall","src":"42637:76:89"},"nativeSrc":"42634:96:89","nodeType":"YulIf","src":"42634:96:89"},{"nativeSrc":"42739:48:89","nodeType":"YulVariableDeclaration","src":"42739:48:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"42758:18:89","nodeType":"YulIdentifier","src":"42758:18:89"},{"name":"base_ref","nativeSrc":"42778:8:89","nodeType":"YulIdentifier","src":"42778:8:89"}],"functionName":{"name":"add","nativeSrc":"42754:3:89","nodeType":"YulIdentifier","src":"42754:3:89"},"nativeSrc":"42754:33:89","nodeType":"YulFunctionCall","src":"42754:33:89"},"variables":[{"name":"value_1","nativeSrc":"42743:7:89","nodeType":"YulTypedName","src":"42743:7:89","type":""}]},{"nativeSrc":"42796:31:89","nodeType":"YulAssignment","src":"42796:31:89","value":{"arguments":[{"name":"value_1","nativeSrc":"42819:7:89","nodeType":"YulIdentifier","src":"42819:7:89"}],"functionName":{"name":"calldataload","nativeSrc":"42806:12:89","nodeType":"YulIdentifier","src":"42806:12:89"},"nativeSrc":"42806:21:89","nodeType":"YulFunctionCall","src":"42806:21:89"},"variableNames":[{"name":"length","nativeSrc":"42796:6:89","nodeType":"YulIdentifier","src":"42796:6:89"}]},{"nativeSrc":"42836:27:89","nodeType":"YulAssignment","src":"42836:27:89","value":{"arguments":[{"name":"value_1","nativeSrc":"42849:7:89","nodeType":"YulIdentifier","src":"42849:7:89"},{"kind":"number","nativeSrc":"42858:4:89","nodeType":"YulLiteral","src":"42858:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"42845:3:89","nodeType":"YulIdentifier","src":"42845:3:89"},"nativeSrc":"42845:18:89","nodeType":"YulFunctionCall","src":"42845:18:89"},"variableNames":[{"name":"value","nativeSrc":"42836:5:89","nodeType":"YulIdentifier","src":"42836:5:89"}]},{"body":{"nativeSrc":"42906:16:89","nodeType":"YulBlock","src":"42906:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42915:1:89","nodeType":"YulLiteral","src":"42915:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"42918:1:89","nodeType":"YulLiteral","src":"42918:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"42908:6:89","nodeType":"YulIdentifier","src":"42908:6:89"},"nativeSrc":"42908:12:89","nodeType":"YulFunctionCall","src":"42908:12:89"},"nativeSrc":"42908:12:89","nodeType":"YulExpressionStatement","src":"42908:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"42878:6:89","nodeType":"YulIdentifier","src":"42878:6:89"},{"kind":"number","nativeSrc":"42886:18:89","nodeType":"YulLiteral","src":"42886:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"42875:2:89","nodeType":"YulIdentifier","src":"42875:2:89"},"nativeSrc":"42875:30:89","nodeType":"YulFunctionCall","src":"42875:30:89"},"nativeSrc":"42872:50:89","nodeType":"YulIf","src":"42872:50:89"},{"body":{"nativeSrc":"42974:16:89","nodeType":"YulBlock","src":"42974:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42983:1:89","nodeType":"YulLiteral","src":"42983:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"42986:1:89","nodeType":"YulLiteral","src":"42986:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"42976:6:89","nodeType":"YulIdentifier","src":"42976:6:89"},"nativeSrc":"42976:12:89","nodeType":"YulFunctionCall","src":"42976:12:89"},"nativeSrc":"42976:12:89","nodeType":"YulExpressionStatement","src":"42976:12:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"42938:5:89","nodeType":"YulIdentifier","src":"42938:5:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"42949:12:89","nodeType":"YulIdentifier","src":"42949:12:89"},"nativeSrc":"42949:14:89","nodeType":"YulFunctionCall","src":"42949:14:89"},{"name":"length","nativeSrc":"42965:6:89","nodeType":"YulIdentifier","src":"42965:6:89"}],"functionName":{"name":"sub","nativeSrc":"42945:3:89","nodeType":"YulIdentifier","src":"42945:3:89"},"nativeSrc":"42945:27:89","nodeType":"YulFunctionCall","src":"42945:27:89"}],"functionName":{"name":"sgt","nativeSrc":"42934:3:89","nodeType":"YulIdentifier","src":"42934:3:89"},"nativeSrc":"42934:39:89","nodeType":"YulFunctionCall","src":"42934:39:89"},"nativeSrc":"42931:59:89","nodeType":"YulIf","src":"42931:59:89"}]},"name":"calldata_access_string_calldata","nativeSrc":"42495:501:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"42536:8:89","nodeType":"YulTypedName","src":"42536:8:89","type":""},{"name":"ptr","nativeSrc":"42546:3:89","nodeType":"YulTypedName","src":"42546:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"42554:5:89","nodeType":"YulTypedName","src":"42554:5:89","type":""},{"name":"length","nativeSrc":"42561:6:89","nodeType":"YulTypedName","src":"42561:6:89","type":""}],"src":"42495:501:89"},{"body":{"nativeSrc":"43065:262:89","nodeType":"YulBlock","src":"43065:262:89","statements":[{"nativeSrc":"43075:34:89","nodeType":"YulVariableDeclaration","src":"43075:34:89","value":{"arguments":[{"name":"value","nativeSrc":"43103:5:89","nodeType":"YulIdentifier","src":"43103:5:89"}],"functionName":{"name":"calldataload","nativeSrc":"43090:12:89","nodeType":"YulIdentifier","src":"43090:12:89"},"nativeSrc":"43090:19:89","nodeType":"YulFunctionCall","src":"43090:19:89"},"variables":[{"name":"value_1","nativeSrc":"43079:7:89","nodeType":"YulTypedName","src":"43079:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"43143:7:89","nodeType":"YulIdentifier","src":"43143:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"43118:24:89","nodeType":"YulIdentifier","src":"43118:24:89"},"nativeSrc":"43118:33:89","nodeType":"YulFunctionCall","src":"43118:33:89"},"nativeSrc":"43118:33:89","nodeType":"YulExpressionStatement","src":"43118:33:89"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"43167:3:89","nodeType":"YulIdentifier","src":"43167:3:89"},{"arguments":[{"name":"value_1","nativeSrc":"43176:7:89","nodeType":"YulIdentifier","src":"43176:7:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"43193:3:89","nodeType":"YulLiteral","src":"43193:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"43198:1:89","nodeType":"YulLiteral","src":"43198:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"43189:3:89","nodeType":"YulIdentifier","src":"43189:3:89"},"nativeSrc":"43189:11:89","nodeType":"YulFunctionCall","src":"43189:11:89"},{"kind":"number","nativeSrc":"43202:1:89","nodeType":"YulLiteral","src":"43202:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"43185:3:89","nodeType":"YulIdentifier","src":"43185:3:89"},"nativeSrc":"43185:19:89","nodeType":"YulFunctionCall","src":"43185:19:89"}],"functionName":{"name":"and","nativeSrc":"43172:3:89","nodeType":"YulIdentifier","src":"43172:3:89"},"nativeSrc":"43172:33:89","nodeType":"YulFunctionCall","src":"43172:33:89"}],"functionName":{"name":"mstore","nativeSrc":"43160:6:89","nodeType":"YulIdentifier","src":"43160:6:89"},"nativeSrc":"43160:46:89","nodeType":"YulFunctionCall","src":"43160:46:89"},"nativeSrc":"43160:46:89","nodeType":"YulExpressionStatement","src":"43160:46:89"},{"nativeSrc":"43215:16:89","nodeType":"YulVariableDeclaration","src":"43215:16:89","value":{"kind":"number","nativeSrc":"43230:1:89","nodeType":"YulLiteral","src":"43230:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"43219:7:89","nodeType":"YulTypedName","src":"43219:7:89","type":""}]},{"nativeSrc":"43240:41:89","nodeType":"YulAssignment","src":"43240:41:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"43268:5:89","nodeType":"YulIdentifier","src":"43268:5:89"},{"kind":"number","nativeSrc":"43275:4:89","nodeType":"YulLiteral","src":"43275:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43264:3:89","nodeType":"YulIdentifier","src":"43264:3:89"},"nativeSrc":"43264:16:89","nodeType":"YulFunctionCall","src":"43264:16:89"}],"functionName":{"name":"calldataload","nativeSrc":"43251:12:89","nodeType":"YulIdentifier","src":"43251:12:89"},"nativeSrc":"43251:30:89","nodeType":"YulFunctionCall","src":"43251:30:89"},"variableNames":[{"name":"value_2","nativeSrc":"43240:7:89","nodeType":"YulIdentifier","src":"43240:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"43301:3:89","nodeType":"YulIdentifier","src":"43301:3:89"},{"kind":"number","nativeSrc":"43306:4:89","nodeType":"YulLiteral","src":"43306:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43297:3:89","nodeType":"YulIdentifier","src":"43297:3:89"},"nativeSrc":"43297:14:89","nodeType":"YulFunctionCall","src":"43297:14:89"},{"name":"value_2","nativeSrc":"43313:7:89","nodeType":"YulIdentifier","src":"43313:7:89"}],"functionName":{"name":"mstore","nativeSrc":"43290:6:89","nodeType":"YulIdentifier","src":"43290:6:89"},"nativeSrc":"43290:31:89","nodeType":"YulFunctionCall","src":"43290:31:89"},"nativeSrc":"43290:31:89","nodeType":"YulExpressionStatement","src":"43290:31:89"}]},"name":"abi_encode_struct_TokenAmount_calldata","nativeSrc":"43001:326:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"43049:5:89","nodeType":"YulTypedName","src":"43049:5:89","type":""},{"name":"pos","nativeSrc":"43056:3:89","nodeType":"YulTypedName","src":"43056:3:89","type":""}],"src":"43001:326:89"},{"body":{"nativeSrc":"43420:432:89","nodeType":"YulBlock","src":"43420:432:89","statements":[{"nativeSrc":"43430:43:89","nodeType":"YulVariableDeclaration","src":"43430:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"43469:3:89","nodeType":"YulIdentifier","src":"43469:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"43456:12:89","nodeType":"YulIdentifier","src":"43456:12:89"},"nativeSrc":"43456:17:89","nodeType":"YulFunctionCall","src":"43456:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"43434:18:89","nodeType":"YulTypedName","src":"43434:18:89","type":""}]},{"body":{"nativeSrc":"43562:16:89","nodeType":"YulBlock","src":"43562:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43571:1:89","nodeType":"YulLiteral","src":"43571:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"43574:1:89","nodeType":"YulLiteral","src":"43574:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"43564:6:89","nodeType":"YulIdentifier","src":"43564:6:89"},"nativeSrc":"43564:12:89","nodeType":"YulFunctionCall","src":"43564:12:89"},"nativeSrc":"43564:12:89","nodeType":"YulExpressionStatement","src":"43564:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"43496:18:89","nodeType":"YulIdentifier","src":"43496:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"43524:12:89","nodeType":"YulIdentifier","src":"43524:12:89"},"nativeSrc":"43524:14:89","nodeType":"YulFunctionCall","src":"43524:14:89"},{"name":"base_ref","nativeSrc":"43540:8:89","nodeType":"YulIdentifier","src":"43540:8:89"}],"functionName":{"name":"sub","nativeSrc":"43520:3:89","nodeType":"YulIdentifier","src":"43520:3:89"},"nativeSrc":"43520:29:89","nodeType":"YulFunctionCall","src":"43520:29:89"},{"arguments":[{"kind":"number","nativeSrc":"43555:2:89","nodeType":"YulLiteral","src":"43555:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"43551:3:89","nodeType":"YulIdentifier","src":"43551:3:89"},"nativeSrc":"43551:7:89","nodeType":"YulFunctionCall","src":"43551:7:89"}],"functionName":{"name":"add","nativeSrc":"43516:3:89","nodeType":"YulIdentifier","src":"43516:3:89"},"nativeSrc":"43516:43:89","nodeType":"YulFunctionCall","src":"43516:43:89"}],"functionName":{"name":"slt","nativeSrc":"43492:3:89","nodeType":"YulIdentifier","src":"43492:3:89"},"nativeSrc":"43492:68:89","nodeType":"YulFunctionCall","src":"43492:68:89"}],"functionName":{"name":"iszero","nativeSrc":"43485:6:89","nodeType":"YulIdentifier","src":"43485:6:89"},"nativeSrc":"43485:76:89","nodeType":"YulFunctionCall","src":"43485:76:89"},"nativeSrc":"43482:96:89","nodeType":"YulIf","src":"43482:96:89"},{"nativeSrc":"43587:48:89","nodeType":"YulVariableDeclaration","src":"43587:48:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"43606:18:89","nodeType":"YulIdentifier","src":"43606:18:89"},{"name":"base_ref","nativeSrc":"43626:8:89","nodeType":"YulIdentifier","src":"43626:8:89"}],"functionName":{"name":"add","nativeSrc":"43602:3:89","nodeType":"YulIdentifier","src":"43602:3:89"},"nativeSrc":"43602:33:89","nodeType":"YulFunctionCall","src":"43602:33:89"},"variables":[{"name":"value_1","nativeSrc":"43591:7:89","nodeType":"YulTypedName","src":"43591:7:89","type":""}]},{"nativeSrc":"43644:31:89","nodeType":"YulAssignment","src":"43644:31:89","value":{"arguments":[{"name":"value_1","nativeSrc":"43667:7:89","nodeType":"YulIdentifier","src":"43667:7:89"}],"functionName":{"name":"calldataload","nativeSrc":"43654:12:89","nodeType":"YulIdentifier","src":"43654:12:89"},"nativeSrc":"43654:21:89","nodeType":"YulFunctionCall","src":"43654:21:89"},"variableNames":[{"name":"length","nativeSrc":"43644:6:89","nodeType":"YulIdentifier","src":"43644:6:89"}]},{"nativeSrc":"43684:27:89","nodeType":"YulAssignment","src":"43684:27:89","value":{"arguments":[{"name":"value_1","nativeSrc":"43697:7:89","nodeType":"YulIdentifier","src":"43697:7:89"},{"kind":"number","nativeSrc":"43706:4:89","nodeType":"YulLiteral","src":"43706:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43693:3:89","nodeType":"YulIdentifier","src":"43693:3:89"},"nativeSrc":"43693:18:89","nodeType":"YulFunctionCall","src":"43693:18:89"},"variableNames":[{"name":"value","nativeSrc":"43684:5:89","nodeType":"YulIdentifier","src":"43684:5:89"}]},{"body":{"nativeSrc":"43754:16:89","nodeType":"YulBlock","src":"43754:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43763:1:89","nodeType":"YulLiteral","src":"43763:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"43766:1:89","nodeType":"YulLiteral","src":"43766:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"43756:6:89","nodeType":"YulIdentifier","src":"43756:6:89"},"nativeSrc":"43756:12:89","nodeType":"YulFunctionCall","src":"43756:12:89"},"nativeSrc":"43756:12:89","nodeType":"YulExpressionStatement","src":"43756:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"43726:6:89","nodeType":"YulIdentifier","src":"43726:6:89"},{"kind":"number","nativeSrc":"43734:18:89","nodeType":"YulLiteral","src":"43734:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"43723:2:89","nodeType":"YulIdentifier","src":"43723:2:89"},"nativeSrc":"43723:30:89","nodeType":"YulFunctionCall","src":"43723:30:89"},"nativeSrc":"43720:50:89","nodeType":"YulIf","src":"43720:50:89"},{"body":{"nativeSrc":"43830:16:89","nodeType":"YulBlock","src":"43830:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43839:1:89","nodeType":"YulLiteral","src":"43839:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"43842:1:89","nodeType":"YulLiteral","src":"43842:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"43832:6:89","nodeType":"YulIdentifier","src":"43832:6:89"},"nativeSrc":"43832:12:89","nodeType":"YulFunctionCall","src":"43832:12:89"},"nativeSrc":"43832:12:89","nodeType":"YulExpressionStatement","src":"43832:12:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"43786:5:89","nodeType":"YulIdentifier","src":"43786:5:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"43797:12:89","nodeType":"YulIdentifier","src":"43797:12:89"},"nativeSrc":"43797:14:89","nodeType":"YulFunctionCall","src":"43797:14:89"},{"arguments":[{"kind":"number","nativeSrc":"43817:1:89","nodeType":"YulLiteral","src":"43817:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"43820:6:89","nodeType":"YulIdentifier","src":"43820:6:89"}],"functionName":{"name":"shl","nativeSrc":"43813:3:89","nodeType":"YulIdentifier","src":"43813:3:89"},"nativeSrc":"43813:14:89","nodeType":"YulFunctionCall","src":"43813:14:89"}],"functionName":{"name":"sub","nativeSrc":"43793:3:89","nodeType":"YulIdentifier","src":"43793:3:89"},"nativeSrc":"43793:35:89","nodeType":"YulFunctionCall","src":"43793:35:89"}],"functionName":{"name":"sgt","nativeSrc":"43782:3:89","nodeType":"YulIdentifier","src":"43782:3:89"},"nativeSrc":"43782:47:89","nodeType":"YulFunctionCall","src":"43782:47:89"},"nativeSrc":"43779:67:89","nodeType":"YulIf","src":"43779:67:89"}]},"name":"calldata_access_array_address_dyn_calldata","nativeSrc":"43332:520:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"43384:8:89","nodeType":"YulTypedName","src":"43384:8:89","type":""},{"name":"ptr","nativeSrc":"43394:3:89","nodeType":"YulTypedName","src":"43394:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"43402:5:89","nodeType":"YulTypedName","src":"43402:5:89","type":""},{"name":"length","nativeSrc":"43409:6:89","nodeType":"YulTypedName","src":"43409:6:89","type":""}],"src":"43332:520:89"},{"body":{"nativeSrc":"43935:427:89","nodeType":"YulBlock","src":"43935:427:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"43952:3:89","nodeType":"YulIdentifier","src":"43952:3:89"},{"name":"length","nativeSrc":"43957:6:89","nodeType":"YulIdentifier","src":"43957:6:89"}],"functionName":{"name":"mstore","nativeSrc":"43945:6:89","nodeType":"YulIdentifier","src":"43945:6:89"},"nativeSrc":"43945:19:89","nodeType":"YulFunctionCall","src":"43945:19:89"},"nativeSrc":"43945:19:89","nodeType":"YulExpressionStatement","src":"43945:19:89"},{"nativeSrc":"43973:21:89","nodeType":"YulAssignment","src":"43973:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"43984:3:89","nodeType":"YulIdentifier","src":"43984:3:89"},{"kind":"number","nativeSrc":"43989:4:89","nodeType":"YulLiteral","src":"43989:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43980:3:89","nodeType":"YulIdentifier","src":"43980:3:89"},"nativeSrc":"43980:14:89","nodeType":"YulFunctionCall","src":"43980:14:89"},"variableNames":[{"name":"pos","nativeSrc":"43973:3:89","nodeType":"YulIdentifier","src":"43973:3:89"}]},{"nativeSrc":"44003:19:89","nodeType":"YulVariableDeclaration","src":"44003:19:89","value":{"name":"value","nativeSrc":"44017:5:89","nodeType":"YulIdentifier","src":"44017:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"44007:6:89","nodeType":"YulTypedName","src":"44007:6:89","type":""}]},{"nativeSrc":"44031:10:89","nodeType":"YulVariableDeclaration","src":"44031:10:89","value":{"kind":"number","nativeSrc":"44040:1:89","nodeType":"YulLiteral","src":"44040:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"44035:1:89","nodeType":"YulTypedName","src":"44035:1:89","type":""}]},{"body":{"nativeSrc":"44099:238:89","nodeType":"YulBlock","src":"44099:238:89","statements":[{"nativeSrc":"44113:35:89","nodeType":"YulVariableDeclaration","src":"44113:35:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"44141:6:89","nodeType":"YulIdentifier","src":"44141:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"44128:12:89","nodeType":"YulIdentifier","src":"44128:12:89"},"nativeSrc":"44128:20:89","nodeType":"YulFunctionCall","src":"44128:20:89"},"variables":[{"name":"value_1","nativeSrc":"44117:7:89","nodeType":"YulTypedName","src":"44117:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"44186:7:89","nodeType":"YulIdentifier","src":"44186:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"44161:24:89","nodeType":"YulIdentifier","src":"44161:24:89"},"nativeSrc":"44161:33:89","nodeType":"YulFunctionCall","src":"44161:33:89"},"nativeSrc":"44161:33:89","nodeType":"YulExpressionStatement","src":"44161:33:89"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"44214:3:89","nodeType":"YulIdentifier","src":"44214:3:89"},{"arguments":[{"name":"value_1","nativeSrc":"44223:7:89","nodeType":"YulIdentifier","src":"44223:7:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"44240:3:89","nodeType":"YulLiteral","src":"44240:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"44245:1:89","nodeType":"YulLiteral","src":"44245:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44236:3:89","nodeType":"YulIdentifier","src":"44236:3:89"},"nativeSrc":"44236:11:89","nodeType":"YulFunctionCall","src":"44236:11:89"},{"kind":"number","nativeSrc":"44249:1:89","nodeType":"YulLiteral","src":"44249:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"44232:3:89","nodeType":"YulIdentifier","src":"44232:3:89"},"nativeSrc":"44232:19:89","nodeType":"YulFunctionCall","src":"44232:19:89"}],"functionName":{"name":"and","nativeSrc":"44219:3:89","nodeType":"YulIdentifier","src":"44219:3:89"},"nativeSrc":"44219:33:89","nodeType":"YulFunctionCall","src":"44219:33:89"}],"functionName":{"name":"mstore","nativeSrc":"44207:6:89","nodeType":"YulIdentifier","src":"44207:6:89"},"nativeSrc":"44207:46:89","nodeType":"YulFunctionCall","src":"44207:46:89"},"nativeSrc":"44207:46:89","nodeType":"YulExpressionStatement","src":"44207:46:89"},{"nativeSrc":"44266:21:89","nodeType":"YulAssignment","src":"44266:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"44277:3:89","nodeType":"YulIdentifier","src":"44277:3:89"},{"kind":"number","nativeSrc":"44282:4:89","nodeType":"YulLiteral","src":"44282:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"44273:3:89","nodeType":"YulIdentifier","src":"44273:3:89"},"nativeSrc":"44273:14:89","nodeType":"YulFunctionCall","src":"44273:14:89"},"variableNames":[{"name":"pos","nativeSrc":"44266:3:89","nodeType":"YulIdentifier","src":"44266:3:89"}]},{"nativeSrc":"44300:27:89","nodeType":"YulAssignment","src":"44300:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"44314:6:89","nodeType":"YulIdentifier","src":"44314:6:89"},{"kind":"number","nativeSrc":"44322:4:89","nodeType":"YulLiteral","src":"44322:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"44310:3:89","nodeType":"YulIdentifier","src":"44310:3:89"},"nativeSrc":"44310:17:89","nodeType":"YulFunctionCall","src":"44310:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"44300:6:89","nodeType":"YulIdentifier","src":"44300:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"44061:1:89","nodeType":"YulIdentifier","src":"44061:1:89"},{"name":"length","nativeSrc":"44064:6:89","nodeType":"YulIdentifier","src":"44064:6:89"}],"functionName":{"name":"lt","nativeSrc":"44058:2:89","nodeType":"YulIdentifier","src":"44058:2:89"},"nativeSrc":"44058:13:89","nodeType":"YulFunctionCall","src":"44058:13:89"},"nativeSrc":"44050:287:89","nodeType":"YulForLoop","post":{"nativeSrc":"44072:18:89","nodeType":"YulBlock","src":"44072:18:89","statements":[{"nativeSrc":"44074:14:89","nodeType":"YulAssignment","src":"44074:14:89","value":{"arguments":[{"name":"i","nativeSrc":"44083:1:89","nodeType":"YulIdentifier","src":"44083:1:89"},{"kind":"number","nativeSrc":"44086:1:89","nodeType":"YulLiteral","src":"44086:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44079:3:89","nodeType":"YulIdentifier","src":"44079:3:89"},"nativeSrc":"44079:9:89","nodeType":"YulFunctionCall","src":"44079:9:89"},"variableNames":[{"name":"i","nativeSrc":"44074:1:89","nodeType":"YulIdentifier","src":"44074:1:89"}]}]},"pre":{"nativeSrc":"44054:3:89","nodeType":"YulBlock","src":"44054:3:89","statements":[]},"src":"44050:287:89"},{"nativeSrc":"44346:10:89","nodeType":"YulAssignment","src":"44346:10:89","value":{"name":"pos","nativeSrc":"44353:3:89","nodeType":"YulIdentifier","src":"44353:3:89"},"variableNames":[{"name":"end","nativeSrc":"44346:3:89","nodeType":"YulIdentifier","src":"44346:3:89"}]}]},"name":"abi_encode_array_address_dyn_calldata","nativeSrc":"43857:505:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"43904:5:89","nodeType":"YulTypedName","src":"43904:5:89","type":""},{"name":"length","nativeSrc":"43911:6:89","nodeType":"YulTypedName","src":"43911:6:89","type":""},{"name":"pos","nativeSrc":"43919:3:89","nodeType":"YulTypedName","src":"43919:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"43927:3:89","nodeType":"YulTypedName","src":"43927:3:89","type":""}],"src":"43857:505:89"},{"body":{"nativeSrc":"44475:432:89","nodeType":"YulBlock","src":"44475:432:89","statements":[{"nativeSrc":"44485:43:89","nodeType":"YulVariableDeclaration","src":"44485:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"44524:3:89","nodeType":"YulIdentifier","src":"44524:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"44511:12:89","nodeType":"YulIdentifier","src":"44511:12:89"},"nativeSrc":"44511:17:89","nodeType":"YulFunctionCall","src":"44511:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"44489:18:89","nodeType":"YulTypedName","src":"44489:18:89","type":""}]},{"body":{"nativeSrc":"44617:16:89","nodeType":"YulBlock","src":"44617:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"44626:1:89","nodeType":"YulLiteral","src":"44626:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"44629:1:89","nodeType":"YulLiteral","src":"44629:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"44619:6:89","nodeType":"YulIdentifier","src":"44619:6:89"},"nativeSrc":"44619:12:89","nodeType":"YulFunctionCall","src":"44619:12:89"},"nativeSrc":"44619:12:89","nodeType":"YulExpressionStatement","src":"44619:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"44551:18:89","nodeType":"YulIdentifier","src":"44551:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"44579:12:89","nodeType":"YulIdentifier","src":"44579:12:89"},"nativeSrc":"44579:14:89","nodeType":"YulFunctionCall","src":"44579:14:89"},{"name":"base_ref","nativeSrc":"44595:8:89","nodeType":"YulIdentifier","src":"44595:8:89"}],"functionName":{"name":"sub","nativeSrc":"44575:3:89","nodeType":"YulIdentifier","src":"44575:3:89"},"nativeSrc":"44575:29:89","nodeType":"YulFunctionCall","src":"44575:29:89"},{"arguments":[{"kind":"number","nativeSrc":"44610:2:89","nodeType":"YulLiteral","src":"44610:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"44606:3:89","nodeType":"YulIdentifier","src":"44606:3:89"},"nativeSrc":"44606:7:89","nodeType":"YulFunctionCall","src":"44606:7:89"}],"functionName":{"name":"add","nativeSrc":"44571:3:89","nodeType":"YulIdentifier","src":"44571:3:89"},"nativeSrc":"44571:43:89","nodeType":"YulFunctionCall","src":"44571:43:89"}],"functionName":{"name":"slt","nativeSrc":"44547:3:89","nodeType":"YulIdentifier","src":"44547:3:89"},"nativeSrc":"44547:68:89","nodeType":"YulFunctionCall","src":"44547:68:89"}],"functionName":{"name":"iszero","nativeSrc":"44540:6:89","nodeType":"YulIdentifier","src":"44540:6:89"},"nativeSrc":"44540:76:89","nodeType":"YulFunctionCall","src":"44540:76:89"},"nativeSrc":"44537:96:89","nodeType":"YulIf","src":"44537:96:89"},{"nativeSrc":"44642:48:89","nodeType":"YulVariableDeclaration","src":"44642:48:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"44661:18:89","nodeType":"YulIdentifier","src":"44661:18:89"},{"name":"base_ref","nativeSrc":"44681:8:89","nodeType":"YulIdentifier","src":"44681:8:89"}],"functionName":{"name":"add","nativeSrc":"44657:3:89","nodeType":"YulIdentifier","src":"44657:3:89"},"nativeSrc":"44657:33:89","nodeType":"YulFunctionCall","src":"44657:33:89"},"variables":[{"name":"value_1","nativeSrc":"44646:7:89","nodeType":"YulTypedName","src":"44646:7:89","type":""}]},{"nativeSrc":"44699:31:89","nodeType":"YulAssignment","src":"44699:31:89","value":{"arguments":[{"name":"value_1","nativeSrc":"44722:7:89","nodeType":"YulIdentifier","src":"44722:7:89"}],"functionName":{"name":"calldataload","nativeSrc":"44709:12:89","nodeType":"YulIdentifier","src":"44709:12:89"},"nativeSrc":"44709:21:89","nodeType":"YulFunctionCall","src":"44709:21:89"},"variableNames":[{"name":"length","nativeSrc":"44699:6:89","nodeType":"YulIdentifier","src":"44699:6:89"}]},{"nativeSrc":"44739:27:89","nodeType":"YulAssignment","src":"44739:27:89","value":{"arguments":[{"name":"value_1","nativeSrc":"44752:7:89","nodeType":"YulIdentifier","src":"44752:7:89"},{"kind":"number","nativeSrc":"44761:4:89","nodeType":"YulLiteral","src":"44761:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"44748:3:89","nodeType":"YulIdentifier","src":"44748:3:89"},"nativeSrc":"44748:18:89","nodeType":"YulFunctionCall","src":"44748:18:89"},"variableNames":[{"name":"value","nativeSrc":"44739:5:89","nodeType":"YulIdentifier","src":"44739:5:89"}]},{"body":{"nativeSrc":"44809:16:89","nodeType":"YulBlock","src":"44809:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"44818:1:89","nodeType":"YulLiteral","src":"44818:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"44821:1:89","nodeType":"YulLiteral","src":"44821:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"44811:6:89","nodeType":"YulIdentifier","src":"44811:6:89"},"nativeSrc":"44811:12:89","nodeType":"YulFunctionCall","src":"44811:12:89"},"nativeSrc":"44811:12:89","nodeType":"YulExpressionStatement","src":"44811:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"44781:6:89","nodeType":"YulIdentifier","src":"44781:6:89"},{"kind":"number","nativeSrc":"44789:18:89","nodeType":"YulLiteral","src":"44789:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"44778:2:89","nodeType":"YulIdentifier","src":"44778:2:89"},"nativeSrc":"44778:30:89","nodeType":"YulFunctionCall","src":"44778:30:89"},"nativeSrc":"44775:50:89","nodeType":"YulIf","src":"44775:50:89"},{"body":{"nativeSrc":"44885:16:89","nodeType":"YulBlock","src":"44885:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"44894:1:89","nodeType":"YulLiteral","src":"44894:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"44897:1:89","nodeType":"YulLiteral","src":"44897:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"44887:6:89","nodeType":"YulIdentifier","src":"44887:6:89"},"nativeSrc":"44887:12:89","nodeType":"YulFunctionCall","src":"44887:12:89"},"nativeSrc":"44887:12:89","nodeType":"YulExpressionStatement","src":"44887:12:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"44841:5:89","nodeType":"YulIdentifier","src":"44841:5:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"44852:12:89","nodeType":"YulIdentifier","src":"44852:12:89"},"nativeSrc":"44852:14:89","nodeType":"YulFunctionCall","src":"44852:14:89"},{"arguments":[{"kind":"number","nativeSrc":"44872:1:89","nodeType":"YulLiteral","src":"44872:1:89","type":"","value":"6"},{"name":"length","nativeSrc":"44875:6:89","nodeType":"YulIdentifier","src":"44875:6:89"}],"functionName":{"name":"shl","nativeSrc":"44868:3:89","nodeType":"YulIdentifier","src":"44868:3:89"},"nativeSrc":"44868:14:89","nodeType":"YulFunctionCall","src":"44868:14:89"}],"functionName":{"name":"sub","nativeSrc":"44848:3:89","nodeType":"YulIdentifier","src":"44848:3:89"},"nativeSrc":"44848:35:89","nodeType":"YulFunctionCall","src":"44848:35:89"}],"functionName":{"name":"sgt","nativeSrc":"44837:3:89","nodeType":"YulIdentifier","src":"44837:3:89"},"nativeSrc":"44837:47:89","nodeType":"YulFunctionCall","src":"44837:47:89"},"nativeSrc":"44834:67:89","nodeType":"YulIf","src":"44834:67:89"}]},"name":"calldata_access_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"44367:540:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"44439:8:89","nodeType":"YulTypedName","src":"44439:8:89","type":""},{"name":"ptr","nativeSrc":"44449:3:89","nodeType":"YulTypedName","src":"44449:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"44457:5:89","nodeType":"YulTypedName","src":"44457:5:89","type":""},{"name":"length","nativeSrc":"44464:6:89","nodeType":"YulTypedName","src":"44464:6:89","type":""}],"src":"44367:540:89"},{"body":{"nativeSrc":"45010:338:89","nodeType":"YulBlock","src":"45010:338:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"45027:3:89","nodeType":"YulIdentifier","src":"45027:3:89"},{"name":"length","nativeSrc":"45032:6:89","nodeType":"YulIdentifier","src":"45032:6:89"}],"functionName":{"name":"mstore","nativeSrc":"45020:6:89","nodeType":"YulIdentifier","src":"45020:6:89"},"nativeSrc":"45020:19:89","nodeType":"YulFunctionCall","src":"45020:19:89"},"nativeSrc":"45020:19:89","nodeType":"YulExpressionStatement","src":"45020:19:89"},{"nativeSrc":"45048:21:89","nodeType":"YulAssignment","src":"45048:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"45059:3:89","nodeType":"YulIdentifier","src":"45059:3:89"},{"kind":"number","nativeSrc":"45064:4:89","nodeType":"YulLiteral","src":"45064:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45055:3:89","nodeType":"YulIdentifier","src":"45055:3:89"},"nativeSrc":"45055:14:89","nodeType":"YulFunctionCall","src":"45055:14:89"},"variableNames":[{"name":"pos","nativeSrc":"45048:3:89","nodeType":"YulIdentifier","src":"45048:3:89"}]},{"nativeSrc":"45078:19:89","nodeType":"YulVariableDeclaration","src":"45078:19:89","value":{"name":"value","nativeSrc":"45092:5:89","nodeType":"YulIdentifier","src":"45092:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"45082:6:89","nodeType":"YulTypedName","src":"45082:6:89","type":""}]},{"nativeSrc":"45106:10:89","nodeType":"YulVariableDeclaration","src":"45106:10:89","value":{"kind":"number","nativeSrc":"45115:1:89","nodeType":"YulLiteral","src":"45115:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"45110:1:89","nodeType":"YulTypedName","src":"45110:1:89","type":""}]},{"body":{"nativeSrc":"45174:149:89","nodeType":"YulBlock","src":"45174:149:89","statements":[{"expression":{"arguments":[{"name":"srcPtr","nativeSrc":"45227:6:89","nodeType":"YulIdentifier","src":"45227:6:89"},{"name":"pos","nativeSrc":"45235:3:89","nodeType":"YulIdentifier","src":"45235:3:89"}],"functionName":{"name":"abi_encode_struct_TokenAmount_calldata","nativeSrc":"45188:38:89","nodeType":"YulIdentifier","src":"45188:38:89"},"nativeSrc":"45188:51:89","nodeType":"YulFunctionCall","src":"45188:51:89"},"nativeSrc":"45188:51:89","nodeType":"YulExpressionStatement","src":"45188:51:89"},{"nativeSrc":"45252:21:89","nodeType":"YulAssignment","src":"45252:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"45263:3:89","nodeType":"YulIdentifier","src":"45263:3:89"},{"kind":"number","nativeSrc":"45268:4:89","nodeType":"YulLiteral","src":"45268:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"45259:3:89","nodeType":"YulIdentifier","src":"45259:3:89"},"nativeSrc":"45259:14:89","nodeType":"YulFunctionCall","src":"45259:14:89"},"variableNames":[{"name":"pos","nativeSrc":"45252:3:89","nodeType":"YulIdentifier","src":"45252:3:89"}]},{"nativeSrc":"45286:27:89","nodeType":"YulAssignment","src":"45286:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"45300:6:89","nodeType":"YulIdentifier","src":"45300:6:89"},{"kind":"number","nativeSrc":"45308:4:89","nodeType":"YulLiteral","src":"45308:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"45296:3:89","nodeType":"YulIdentifier","src":"45296:3:89"},"nativeSrc":"45296:17:89","nodeType":"YulFunctionCall","src":"45296:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"45286:6:89","nodeType":"YulIdentifier","src":"45286:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"45136:1:89","nodeType":"YulIdentifier","src":"45136:1:89"},{"name":"length","nativeSrc":"45139:6:89","nodeType":"YulIdentifier","src":"45139:6:89"}],"functionName":{"name":"lt","nativeSrc":"45133:2:89","nodeType":"YulIdentifier","src":"45133:2:89"},"nativeSrc":"45133:13:89","nodeType":"YulFunctionCall","src":"45133:13:89"},"nativeSrc":"45125:198:89","nodeType":"YulForLoop","post":{"nativeSrc":"45147:18:89","nodeType":"YulBlock","src":"45147:18:89","statements":[{"nativeSrc":"45149:14:89","nodeType":"YulAssignment","src":"45149:14:89","value":{"arguments":[{"name":"i","nativeSrc":"45158:1:89","nodeType":"YulIdentifier","src":"45158:1:89"},{"kind":"number","nativeSrc":"45161:1:89","nodeType":"YulLiteral","src":"45161:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45154:3:89","nodeType":"YulIdentifier","src":"45154:3:89"},"nativeSrc":"45154:9:89","nodeType":"YulFunctionCall","src":"45154:9:89"},"variableNames":[{"name":"i","nativeSrc":"45149:1:89","nodeType":"YulIdentifier","src":"45149:1:89"}]}]},"pre":{"nativeSrc":"45129:3:89","nodeType":"YulBlock","src":"45129:3:89","statements":[]},"src":"45125:198:89"},{"nativeSrc":"45332:10:89","nodeType":"YulAssignment","src":"45332:10:89","value":{"name":"pos","nativeSrc":"45339:3:89","nodeType":"YulIdentifier","src":"45339:3:89"},"variableNames":[{"name":"end","nativeSrc":"45332:3:89","nodeType":"YulIdentifier","src":"45332:3:89"}]}]},"name":"abi_encode_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"44912:436:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"44979:5:89","nodeType":"YulTypedName","src":"44979:5:89","type":""},{"name":"length","nativeSrc":"44986:6:89","nodeType":"YulTypedName","src":"44986:6:89","type":""},{"name":"pos","nativeSrc":"44994:3:89","nodeType":"YulTypedName","src":"44994:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"45002:3:89","nodeType":"YulTypedName","src":"45002:3:89","type":""}],"src":"44912:436:89"},{"body":{"nativeSrc":"45432:216:89","nodeType":"YulBlock","src":"45432:216:89","statements":[{"nativeSrc":"45442:43:89","nodeType":"YulVariableDeclaration","src":"45442:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"45481:3:89","nodeType":"YulIdentifier","src":"45481:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"45468:12:89","nodeType":"YulIdentifier","src":"45468:12:89"},"nativeSrc":"45468:17:89","nodeType":"YulFunctionCall","src":"45468:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"45446:18:89","nodeType":"YulTypedName","src":"45446:18:89","type":""}]},{"body":{"nativeSrc":"45575:16:89","nodeType":"YulBlock","src":"45575:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"45584:1:89","nodeType":"YulLiteral","src":"45584:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"45587:1:89","nodeType":"YulLiteral","src":"45587:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"45577:6:89","nodeType":"YulIdentifier","src":"45577:6:89"},"nativeSrc":"45577:12:89","nodeType":"YulFunctionCall","src":"45577:12:89"},"nativeSrc":"45577:12:89","nodeType":"YulExpressionStatement","src":"45577:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"45508:18:89","nodeType":"YulIdentifier","src":"45508:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"45536:12:89","nodeType":"YulIdentifier","src":"45536:12:89"},"nativeSrc":"45536:14:89","nodeType":"YulFunctionCall","src":"45536:14:89"},{"name":"base_ref","nativeSrc":"45552:8:89","nodeType":"YulIdentifier","src":"45552:8:89"}],"functionName":{"name":"sub","nativeSrc":"45532:3:89","nodeType":"YulIdentifier","src":"45532:3:89"},"nativeSrc":"45532:29:89","nodeType":"YulFunctionCall","src":"45532:29:89"},{"arguments":[{"kind":"number","nativeSrc":"45567:3:89","nodeType":"YulLiteral","src":"45567:3:89","type":"","value":"126"}],"functionName":{"name":"not","nativeSrc":"45563:3:89","nodeType":"YulIdentifier","src":"45563:3:89"},"nativeSrc":"45563:8:89","nodeType":"YulFunctionCall","src":"45563:8:89"}],"functionName":{"name":"add","nativeSrc":"45528:3:89","nodeType":"YulIdentifier","src":"45528:3:89"},"nativeSrc":"45528:44:89","nodeType":"YulFunctionCall","src":"45528:44:89"}],"functionName":{"name":"slt","nativeSrc":"45504:3:89","nodeType":"YulIdentifier","src":"45504:3:89"},"nativeSrc":"45504:69:89","nodeType":"YulFunctionCall","src":"45504:69:89"}],"functionName":{"name":"iszero","nativeSrc":"45497:6:89","nodeType":"YulIdentifier","src":"45497:6:89"},"nativeSrc":"45497:77:89","nodeType":"YulFunctionCall","src":"45497:77:89"},"nativeSrc":"45494:97:89","nodeType":"YulIf","src":"45494:97:89"},{"nativeSrc":"45600:42:89","nodeType":"YulAssignment","src":"45600:42:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"45613:18:89","nodeType":"YulIdentifier","src":"45613:18:89"},{"name":"base_ref","nativeSrc":"45633:8:89","nodeType":"YulIdentifier","src":"45633:8:89"}],"functionName":{"name":"add","nativeSrc":"45609:3:89","nodeType":"YulIdentifier","src":"45609:3:89"},"nativeSrc":"45609:33:89","nodeType":"YulFunctionCall","src":"45609:33:89"},"variableNames":[{"name":"value","nativeSrc":"45600:5:89","nodeType":"YulIdentifier","src":"45600:5:89"}]}]},"name":"calldata_access_struct_TokenInfo_calldata","nativeSrc":"45353:295:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"45404:8:89","nodeType":"YulTypedName","src":"45404:8:89","type":""},{"name":"ptr","nativeSrc":"45414:3:89","nodeType":"YulTypedName","src":"45414:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"45422:5:89","nodeType":"YulTypedName","src":"45422:5:89","type":""}],"src":"45353:295:89"},{"body":{"nativeSrc":"45749:1277:89","nodeType":"YulBlock","src":"45749:1277:89","statements":[{"nativeSrc":"45759:16:89","nodeType":"YulVariableDeclaration","src":"45759:16:89","value":{"name":"pos","nativeSrc":"45772:3:89","nodeType":"YulIdentifier","src":"45772:3:89"},"variables":[{"name":"pos_1","nativeSrc":"45763:5:89","nodeType":"YulTypedName","src":"45763:5:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"45791:3:89","nodeType":"YulIdentifier","src":"45791:3:89"},{"name":"length","nativeSrc":"45796:6:89","nodeType":"YulIdentifier","src":"45796:6:89"}],"functionName":{"name":"mstore","nativeSrc":"45784:6:89","nodeType":"YulIdentifier","src":"45784:6:89"},"nativeSrc":"45784:19:89","nodeType":"YulFunctionCall","src":"45784:19:89"},"nativeSrc":"45784:19:89","nodeType":"YulExpressionStatement","src":"45784:19:89"},{"nativeSrc":"45812:21:89","nodeType":"YulAssignment","src":"45812:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"45823:3:89","nodeType":"YulIdentifier","src":"45823:3:89"},{"kind":"number","nativeSrc":"45828:4:89","nodeType":"YulLiteral","src":"45828:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45819:3:89","nodeType":"YulIdentifier","src":"45819:3:89"},"nativeSrc":"45819:14:89","nodeType":"YulFunctionCall","src":"45819:14:89"},"variableNames":[{"name":"pos","nativeSrc":"45812:3:89","nodeType":"YulIdentifier","src":"45812:3:89"}]},{"nativeSrc":"45842:49:89","nodeType":"YulVariableDeclaration","src":"45842:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"45862:5:89","nodeType":"YulIdentifier","src":"45862:5:89"},{"arguments":[{"kind":"number","nativeSrc":"45873:1:89","nodeType":"YulLiteral","src":"45873:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"45876:6:89","nodeType":"YulIdentifier","src":"45876:6:89"}],"functionName":{"name":"shl","nativeSrc":"45869:3:89","nodeType":"YulIdentifier","src":"45869:3:89"},"nativeSrc":"45869:14:89","nodeType":"YulFunctionCall","src":"45869:14:89"}],"functionName":{"name":"add","nativeSrc":"45858:3:89","nodeType":"YulIdentifier","src":"45858:3:89"},"nativeSrc":"45858:26:89","nodeType":"YulFunctionCall","src":"45858:26:89"},{"kind":"number","nativeSrc":"45886:4:89","nodeType":"YulLiteral","src":"45886:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45854:3:89","nodeType":"YulIdentifier","src":"45854:3:89"},"nativeSrc":"45854:37:89","nodeType":"YulFunctionCall","src":"45854:37:89"},"variables":[{"name":"tail","nativeSrc":"45846:4:89","nodeType":"YulTypedName","src":"45846:4:89","type":""}]},{"nativeSrc":"45900:19:89","nodeType":"YulVariableDeclaration","src":"45900:19:89","value":{"name":"value","nativeSrc":"45914:5:89","nodeType":"YulIdentifier","src":"45914:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"45904:6:89","nodeType":"YulTypedName","src":"45904:6:89","type":""}]},{"nativeSrc":"45928:10:89","nodeType":"YulVariableDeclaration","src":"45928:10:89","value":{"kind":"number","nativeSrc":"45937:1:89","nodeType":"YulLiteral","src":"45937:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"45932:1:89","nodeType":"YulTypedName","src":"45932:1:89","type":""}]},{"body":{"nativeSrc":"45996:1004:89","nodeType":"YulBlock","src":"45996:1004:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"46017:3:89","nodeType":"YulIdentifier","src":"46017:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"46030:4:89","nodeType":"YulIdentifier","src":"46030:4:89"},{"name":"pos_1","nativeSrc":"46036:5:89","nodeType":"YulIdentifier","src":"46036:5:89"}],"functionName":{"name":"sub","nativeSrc":"46026:3:89","nodeType":"YulIdentifier","src":"46026:3:89"},"nativeSrc":"46026:16:89","nodeType":"YulFunctionCall","src":"46026:16:89"},{"arguments":[{"kind":"number","nativeSrc":"46048:2:89","nodeType":"YulLiteral","src":"46048:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"46044:3:89","nodeType":"YulIdentifier","src":"46044:3:89"},"nativeSrc":"46044:7:89","nodeType":"YulFunctionCall","src":"46044:7:89"}],"functionName":{"name":"add","nativeSrc":"46022:3:89","nodeType":"YulIdentifier","src":"46022:3:89"},"nativeSrc":"46022:30:89","nodeType":"YulFunctionCall","src":"46022:30:89"}],"functionName":{"name":"mstore","nativeSrc":"46010:6:89","nodeType":"YulIdentifier","src":"46010:6:89"},"nativeSrc":"46010:43:89","nodeType":"YulFunctionCall","src":"46010:43:89"},"nativeSrc":"46010:43:89","nodeType":"YulExpressionStatement","src":"46010:43:89"},{"nativeSrc":"46066:66:89","nodeType":"YulVariableDeclaration","src":"46066:66:89","value":{"arguments":[{"name":"value","nativeSrc":"46118:5:89","nodeType":"YulIdentifier","src":"46118:5:89"},{"name":"srcPtr","nativeSrc":"46125:6:89","nodeType":"YulIdentifier","src":"46125:6:89"}],"functionName":{"name":"calldata_access_struct_TokenInfo_calldata","nativeSrc":"46076:41:89","nodeType":"YulIdentifier","src":"46076:41:89"},"nativeSrc":"46076:56:89","nodeType":"YulFunctionCall","src":"46076:56:89"},"variables":[{"name":"_1","nativeSrc":"46070:2:89","nodeType":"YulTypedName","src":"46070:2:89","type":""}]},{"nativeSrc":"46145:73:89","nodeType":"YulVariableDeclaration","src":"46145:73:89","value":{"arguments":[{"name":"_1","nativeSrc":"46211:2:89","nodeType":"YulIdentifier","src":"46211:2:89"},{"name":"_1","nativeSrc":"46215:2:89","nodeType":"YulIdentifier","src":"46215:2:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"46179:31:89","nodeType":"YulIdentifier","src":"46179:31:89"},"nativeSrc":"46179:39:89","nodeType":"YulFunctionCall","src":"46179:39:89"},"variables":[{"name":"memberValue0","nativeSrc":"46149:12:89","nodeType":"YulTypedName","src":"46149:12:89","type":""},{"name":"memberValue1","nativeSrc":"46163:12:89","nodeType":"YulTypedName","src":"46163:12:89","type":""}]},{"expression":{"arguments":[{"name":"tail","nativeSrc":"46238:4:89","nodeType":"YulIdentifier","src":"46238:4:89"},{"kind":"number","nativeSrc":"46244:4:89","nodeType":"YulLiteral","src":"46244:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"46231:6:89","nodeType":"YulIdentifier","src":"46231:6:89"},"nativeSrc":"46231:18:89","nodeType":"YulFunctionCall","src":"46231:18:89"},"nativeSrc":"46231:18:89","nodeType":"YulExpressionStatement","src":"46231:18:89"},{"nativeSrc":"46262:84:89","nodeType":"YulVariableDeclaration","src":"46262:84:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"46302:12:89","nodeType":"YulIdentifier","src":"46302:12:89"},{"name":"memberValue1","nativeSrc":"46316:12:89","nodeType":"YulIdentifier","src":"46316:12:89"},{"arguments":[{"name":"tail","nativeSrc":"46334:4:89","nodeType":"YulIdentifier","src":"46334:4:89"},{"kind":"number","nativeSrc":"46340:4:89","nodeType":"YulLiteral","src":"46340:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"46330:3:89","nodeType":"YulIdentifier","src":"46330:3:89"},"nativeSrc":"46330:15:89","nodeType":"YulFunctionCall","src":"46330:15:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"46276:25:89","nodeType":"YulIdentifier","src":"46276:25:89"},"nativeSrc":"46276:70:89","nodeType":"YulFunctionCall","src":"46276:70:89"},"variables":[{"name":"tail_1","nativeSrc":"46266:6:89","nodeType":"YulTypedName","src":"46266:6:89","type":""}]},{"nativeSrc":"46359:88:89","nodeType":"YulVariableDeclaration","src":"46359:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"46429:2:89","nodeType":"YulIdentifier","src":"46429:2:89"},{"arguments":[{"name":"_1","nativeSrc":"46437:2:89","nodeType":"YulIdentifier","src":"46437:2:89"},{"kind":"number","nativeSrc":"46441:4:89","nodeType":"YulLiteral","src":"46441:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46433:3:89","nodeType":"YulIdentifier","src":"46433:3:89"},"nativeSrc":"46433:13:89","nodeType":"YulFunctionCall","src":"46433:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"46397:31:89","nodeType":"YulIdentifier","src":"46397:31:89"},"nativeSrc":"46397:50:89","nodeType":"YulFunctionCall","src":"46397:50:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"46363:14:89","nodeType":"YulTypedName","src":"46363:14:89","type":""},{"name":"memberValue1_1","nativeSrc":"46379:14:89","nodeType":"YulTypedName","src":"46379:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"46471:4:89","nodeType":"YulIdentifier","src":"46471:4:89"},{"kind":"number","nativeSrc":"46477:4:89","nodeType":"YulLiteral","src":"46477:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46467:3:89","nodeType":"YulIdentifier","src":"46467:3:89"},"nativeSrc":"46467:15:89","nodeType":"YulFunctionCall","src":"46467:15:89"},{"arguments":[{"name":"tail_1","nativeSrc":"46488:6:89","nodeType":"YulIdentifier","src":"46488:6:89"},{"name":"tail","nativeSrc":"46496:4:89","nodeType":"YulIdentifier","src":"46496:4:89"}],"functionName":{"name":"sub","nativeSrc":"46484:3:89","nodeType":"YulIdentifier","src":"46484:3:89"},"nativeSrc":"46484:17:89","nodeType":"YulFunctionCall","src":"46484:17:89"}],"functionName":{"name":"mstore","nativeSrc":"46460:6:89","nodeType":"YulIdentifier","src":"46460:6:89"},"nativeSrc":"46460:42:89","nodeType":"YulFunctionCall","src":"46460:42:89"},"nativeSrc":"46460:42:89","nodeType":"YulExpressionStatement","src":"46460:42:89"},{"nativeSrc":"46515:79:89","nodeType":"YulVariableDeclaration","src":"46515:79:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"46555:14:89","nodeType":"YulIdentifier","src":"46555:14:89"},{"name":"memberValue1_1","nativeSrc":"46571:14:89","nodeType":"YulIdentifier","src":"46571:14:89"},{"name":"tail_1","nativeSrc":"46587:6:89","nodeType":"YulIdentifier","src":"46587:6:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"46529:25:89","nodeType":"YulIdentifier","src":"46529:25:89"},"nativeSrc":"46529:65:89","nodeType":"YulFunctionCall","src":"46529:65:89"},"variables":[{"name":"tail_2","nativeSrc":"46519:6:89","nodeType":"YulTypedName","src":"46519:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"46618:4:89","nodeType":"YulIdentifier","src":"46618:4:89"},{"kind":"number","nativeSrc":"46624:4:89","nodeType":"YulLiteral","src":"46624:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"46614:3:89","nodeType":"YulIdentifier","src":"46614:3:89"},"nativeSrc":"46614:15:89","nodeType":"YulFunctionCall","src":"46614:15:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"46656:2:89","nodeType":"YulIdentifier","src":"46656:2:89"},{"kind":"number","nativeSrc":"46660:4:89","nodeType":"YulLiteral","src":"46660:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"46652:3:89","nodeType":"YulIdentifier","src":"46652:3:89"},"nativeSrc":"46652:13:89","nodeType":"YulFunctionCall","src":"46652:13:89"}],"functionName":{"name":"abi_decode_uint8","nativeSrc":"46635:16:89","nodeType":"YulIdentifier","src":"46635:16:89"},"nativeSrc":"46635:31:89","nodeType":"YulFunctionCall","src":"46635:31:89"},{"kind":"number","nativeSrc":"46668:4:89","nodeType":"YulLiteral","src":"46668:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"46631:3:89","nodeType":"YulIdentifier","src":"46631:3:89"},"nativeSrc":"46631:42:89","nodeType":"YulFunctionCall","src":"46631:42:89"}],"functionName":{"name":"mstore","nativeSrc":"46607:6:89","nodeType":"YulIdentifier","src":"46607:6:89"},"nativeSrc":"46607:67:89","nodeType":"YulFunctionCall","src":"46607:67:89"},"nativeSrc":"46607:67:89","nodeType":"YulExpressionStatement","src":"46607:67:89"},{"nativeSrc":"46687:88:89","nodeType":"YulVariableDeclaration","src":"46687:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"46757:2:89","nodeType":"YulIdentifier","src":"46757:2:89"},{"arguments":[{"name":"_1","nativeSrc":"46765:2:89","nodeType":"YulIdentifier","src":"46765:2:89"},{"kind":"number","nativeSrc":"46769:4:89","nodeType":"YulLiteral","src":"46769:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"46761:3:89","nodeType":"YulIdentifier","src":"46761:3:89"},"nativeSrc":"46761:13:89","nodeType":"YulFunctionCall","src":"46761:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"46725:31:89","nodeType":"YulIdentifier","src":"46725:31:89"},"nativeSrc":"46725:50:89","nodeType":"YulFunctionCall","src":"46725:50:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"46691:14:89","nodeType":"YulTypedName","src":"46691:14:89","type":""},{"name":"memberValue1_2","nativeSrc":"46707:14:89","nodeType":"YulTypedName","src":"46707:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"46799:4:89","nodeType":"YulIdentifier","src":"46799:4:89"},{"kind":"number","nativeSrc":"46805:4:89","nodeType":"YulLiteral","src":"46805:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"46795:3:89","nodeType":"YulIdentifier","src":"46795:3:89"},"nativeSrc":"46795:15:89","nodeType":"YulFunctionCall","src":"46795:15:89"},{"arguments":[{"name":"tail_2","nativeSrc":"46816:6:89","nodeType":"YulIdentifier","src":"46816:6:89"},{"name":"tail","nativeSrc":"46824:4:89","nodeType":"YulIdentifier","src":"46824:4:89"}],"functionName":{"name":"sub","nativeSrc":"46812:3:89","nodeType":"YulIdentifier","src":"46812:3:89"},"nativeSrc":"46812:17:89","nodeType":"YulFunctionCall","src":"46812:17:89"}],"functionName":{"name":"mstore","nativeSrc":"46788:6:89","nodeType":"YulIdentifier","src":"46788:6:89"},"nativeSrc":"46788:42:89","nodeType":"YulFunctionCall","src":"46788:42:89"},"nativeSrc":"46788:42:89","nodeType":"YulExpressionStatement","src":"46788:42:89"},{"nativeSrc":"46843:73:89","nodeType":"YulAssignment","src":"46843:73:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"46877:14:89","nodeType":"YulIdentifier","src":"46877:14:89"},{"name":"memberValue1_2","nativeSrc":"46893:14:89","nodeType":"YulIdentifier","src":"46893:14:89"},{"name":"tail_2","nativeSrc":"46909:6:89","nodeType":"YulIdentifier","src":"46909:6:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"46851:25:89","nodeType":"YulIdentifier","src":"46851:25:89"},"nativeSrc":"46851:65:89","nodeType":"YulFunctionCall","src":"46851:65:89"},"variableNames":[{"name":"tail","nativeSrc":"46843:4:89","nodeType":"YulIdentifier","src":"46843:4:89"}]},{"nativeSrc":"46929:27:89","nodeType":"YulAssignment","src":"46929:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"46943:6:89","nodeType":"YulIdentifier","src":"46943:6:89"},{"kind":"number","nativeSrc":"46951:4:89","nodeType":"YulLiteral","src":"46951:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46939:3:89","nodeType":"YulIdentifier","src":"46939:3:89"},"nativeSrc":"46939:17:89","nodeType":"YulFunctionCall","src":"46939:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"46929:6:89","nodeType":"YulIdentifier","src":"46929:6:89"}]},{"nativeSrc":"46969:21:89","nodeType":"YulAssignment","src":"46969:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"46980:3:89","nodeType":"YulIdentifier","src":"46980:3:89"},{"kind":"number","nativeSrc":"46985:4:89","nodeType":"YulLiteral","src":"46985:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46976:3:89","nodeType":"YulIdentifier","src":"46976:3:89"},"nativeSrc":"46976:14:89","nodeType":"YulFunctionCall","src":"46976:14:89"},"variableNames":[{"name":"pos","nativeSrc":"46969:3:89","nodeType":"YulIdentifier","src":"46969:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"45958:1:89","nodeType":"YulIdentifier","src":"45958:1:89"},{"name":"length","nativeSrc":"45961:6:89","nodeType":"YulIdentifier","src":"45961:6:89"}],"functionName":{"name":"lt","nativeSrc":"45955:2:89","nodeType":"YulIdentifier","src":"45955:2:89"},"nativeSrc":"45955:13:89","nodeType":"YulFunctionCall","src":"45955:13:89"},"nativeSrc":"45947:1053:89","nodeType":"YulForLoop","post":{"nativeSrc":"45969:18:89","nodeType":"YulBlock","src":"45969:18:89","statements":[{"nativeSrc":"45971:14:89","nodeType":"YulAssignment","src":"45971:14:89","value":{"arguments":[{"name":"i","nativeSrc":"45980:1:89","nodeType":"YulIdentifier","src":"45980:1:89"},{"kind":"number","nativeSrc":"45983:1:89","nodeType":"YulLiteral","src":"45983:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45976:3:89","nodeType":"YulIdentifier","src":"45976:3:89"},"nativeSrc":"45976:9:89","nodeType":"YulFunctionCall","src":"45976:9:89"},"variableNames":[{"name":"i","nativeSrc":"45971:1:89","nodeType":"YulIdentifier","src":"45971:1:89"}]}]},"pre":{"nativeSrc":"45951:3:89","nodeType":"YulBlock","src":"45951:3:89","statements":[]},"src":"45947:1053:89"},{"nativeSrc":"47009:11:89","nodeType":"YulAssignment","src":"47009:11:89","value":{"name":"tail","nativeSrc":"47016:4:89","nodeType":"YulIdentifier","src":"47016:4:89"},"variableNames":[{"name":"end","nativeSrc":"47009:3:89","nodeType":"YulIdentifier","src":"47009:3:89"}]}]},"name":"abi_encode_array_struct_TokenInfo_calldata_dyn_calldata","nativeSrc":"45653:1373:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"45718:5:89","nodeType":"YulTypedName","src":"45718:5:89","type":""},{"name":"length","nativeSrc":"45725:6:89","nodeType":"YulTypedName","src":"45725:6:89","type":""},{"name":"pos","nativeSrc":"45733:3:89","nodeType":"YulTypedName","src":"45733:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"45741:3:89","nodeType":"YulTypedName","src":"45741:3:89","type":""}],"src":"45653:1373:89"},{"body":{"nativeSrc":"47137:435:89","nodeType":"YulBlock","src":"47137:435:89","statements":[{"nativeSrc":"47147:43:89","nodeType":"YulVariableDeclaration","src":"47147:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"47186:3:89","nodeType":"YulIdentifier","src":"47186:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"47173:12:89","nodeType":"YulIdentifier","src":"47173:12:89"},"nativeSrc":"47173:17:89","nodeType":"YulFunctionCall","src":"47173:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"47151:18:89","nodeType":"YulTypedName","src":"47151:18:89","type":""}]},{"body":{"nativeSrc":"47279:16:89","nodeType":"YulBlock","src":"47279:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"47288:1:89","nodeType":"YulLiteral","src":"47288:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"47291:1:89","nodeType":"YulLiteral","src":"47291:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"47281:6:89","nodeType":"YulIdentifier","src":"47281:6:89"},"nativeSrc":"47281:12:89","nodeType":"YulFunctionCall","src":"47281:12:89"},"nativeSrc":"47281:12:89","nodeType":"YulExpressionStatement","src":"47281:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"47213:18:89","nodeType":"YulIdentifier","src":"47213:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"47241:12:89","nodeType":"YulIdentifier","src":"47241:12:89"},"nativeSrc":"47241:14:89","nodeType":"YulFunctionCall","src":"47241:14:89"},{"name":"base_ref","nativeSrc":"47257:8:89","nodeType":"YulIdentifier","src":"47257:8:89"}],"functionName":{"name":"sub","nativeSrc":"47237:3:89","nodeType":"YulIdentifier","src":"47237:3:89"},"nativeSrc":"47237:29:89","nodeType":"YulFunctionCall","src":"47237:29:89"},{"arguments":[{"kind":"number","nativeSrc":"47272:2:89","nodeType":"YulLiteral","src":"47272:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"47268:3:89","nodeType":"YulIdentifier","src":"47268:3:89"},"nativeSrc":"47268:7:89","nodeType":"YulFunctionCall","src":"47268:7:89"}],"functionName":{"name":"add","nativeSrc":"47233:3:89","nodeType":"YulIdentifier","src":"47233:3:89"},"nativeSrc":"47233:43:89","nodeType":"YulFunctionCall","src":"47233:43:89"}],"functionName":{"name":"slt","nativeSrc":"47209:3:89","nodeType":"YulIdentifier","src":"47209:3:89"},"nativeSrc":"47209:68:89","nodeType":"YulFunctionCall","src":"47209:68:89"}],"functionName":{"name":"iszero","nativeSrc":"47202:6:89","nodeType":"YulIdentifier","src":"47202:6:89"},"nativeSrc":"47202:76:89","nodeType":"YulFunctionCall","src":"47202:76:89"},"nativeSrc":"47199:96:89","nodeType":"YulIf","src":"47199:96:89"},{"nativeSrc":"47304:48:89","nodeType":"YulVariableDeclaration","src":"47304:48:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"47323:18:89","nodeType":"YulIdentifier","src":"47323:18:89"},{"name":"base_ref","nativeSrc":"47343:8:89","nodeType":"YulIdentifier","src":"47343:8:89"}],"functionName":{"name":"add","nativeSrc":"47319:3:89","nodeType":"YulIdentifier","src":"47319:3:89"},"nativeSrc":"47319:33:89","nodeType":"YulFunctionCall","src":"47319:33:89"},"variables":[{"name":"value_1","nativeSrc":"47308:7:89","nodeType":"YulTypedName","src":"47308:7:89","type":""}]},{"nativeSrc":"47361:31:89","nodeType":"YulAssignment","src":"47361:31:89","value":{"arguments":[{"name":"value_1","nativeSrc":"47384:7:89","nodeType":"YulIdentifier","src":"47384:7:89"}],"functionName":{"name":"calldataload","nativeSrc":"47371:12:89","nodeType":"YulIdentifier","src":"47371:12:89"},"nativeSrc":"47371:21:89","nodeType":"YulFunctionCall","src":"47371:21:89"},"variableNames":[{"name":"length","nativeSrc":"47361:6:89","nodeType":"YulIdentifier","src":"47361:6:89"}]},{"nativeSrc":"47401:27:89","nodeType":"YulAssignment","src":"47401:27:89","value":{"arguments":[{"name":"value_1","nativeSrc":"47414:7:89","nodeType":"YulIdentifier","src":"47414:7:89"},{"kind":"number","nativeSrc":"47423:4:89","nodeType":"YulLiteral","src":"47423:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"47410:3:89","nodeType":"YulIdentifier","src":"47410:3:89"},"nativeSrc":"47410:18:89","nodeType":"YulFunctionCall","src":"47410:18:89"},"variableNames":[{"name":"value","nativeSrc":"47401:5:89","nodeType":"YulIdentifier","src":"47401:5:89"}]},{"body":{"nativeSrc":"47471:16:89","nodeType":"YulBlock","src":"47471:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"47480:1:89","nodeType":"YulLiteral","src":"47480:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"47483:1:89","nodeType":"YulLiteral","src":"47483:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"47473:6:89","nodeType":"YulIdentifier","src":"47473:6:89"},"nativeSrc":"47473:12:89","nodeType":"YulFunctionCall","src":"47473:12:89"},"nativeSrc":"47473:12:89","nodeType":"YulExpressionStatement","src":"47473:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"47443:6:89","nodeType":"YulIdentifier","src":"47443:6:89"},{"kind":"number","nativeSrc":"47451:18:89","nodeType":"YulLiteral","src":"47451:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"47440:2:89","nodeType":"YulIdentifier","src":"47440:2:89"},"nativeSrc":"47440:30:89","nodeType":"YulFunctionCall","src":"47440:30:89"},"nativeSrc":"47437:50:89","nodeType":"YulIf","src":"47437:50:89"},{"body":{"nativeSrc":"47550:16:89","nodeType":"YulBlock","src":"47550:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"47559:1:89","nodeType":"YulLiteral","src":"47559:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"47562:1:89","nodeType":"YulLiteral","src":"47562:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"47552:6:89","nodeType":"YulIdentifier","src":"47552:6:89"},"nativeSrc":"47552:12:89","nodeType":"YulFunctionCall","src":"47552:12:89"},"nativeSrc":"47552:12:89","nodeType":"YulExpressionStatement","src":"47552:12:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"47503:5:89","nodeType":"YulIdentifier","src":"47503:5:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"47514:12:89","nodeType":"YulIdentifier","src":"47514:12:89"},"nativeSrc":"47514:14:89","nodeType":"YulFunctionCall","src":"47514:14:89"},{"arguments":[{"name":"length","nativeSrc":"47534:6:89","nodeType":"YulIdentifier","src":"47534:6:89"},{"kind":"number","nativeSrc":"47542:4:89","nodeType":"YulLiteral","src":"47542:4:89","type":"","value":"0x60"}],"functionName":{"name":"mul","nativeSrc":"47530:3:89","nodeType":"YulIdentifier","src":"47530:3:89"},"nativeSrc":"47530:17:89","nodeType":"YulFunctionCall","src":"47530:17:89"}],"functionName":{"name":"sub","nativeSrc":"47510:3:89","nodeType":"YulIdentifier","src":"47510:3:89"},"nativeSrc":"47510:38:89","nodeType":"YulFunctionCall","src":"47510:38:89"}],"functionName":{"name":"sgt","nativeSrc":"47499:3:89","nodeType":"YulIdentifier","src":"47499:3:89"},"nativeSrc":"47499:50:89","nodeType":"YulFunctionCall","src":"47499:50:89"},"nativeSrc":"47496:70:89","nodeType":"YulIf","src":"47496:70:89"}]},"name":"calldata_access_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"47031:541:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"47101:8:89","nodeType":"YulTypedName","src":"47101:8:89","type":""},{"name":"ptr","nativeSrc":"47111:3:89","nodeType":"YulTypedName","src":"47111:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"47119:5:89","nodeType":"YulTypedName","src":"47119:5:89","type":""},{"name":"length","nativeSrc":"47126:6:89","nodeType":"YulTypedName","src":"47126:6:89","type":""}],"src":"47031:541:89"},{"body":{"nativeSrc":"47673:683:89","nodeType":"YulBlock","src":"47673:683:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"47690:3:89","nodeType":"YulIdentifier","src":"47690:3:89"},{"name":"length","nativeSrc":"47695:6:89","nodeType":"YulIdentifier","src":"47695:6:89"}],"functionName":{"name":"mstore","nativeSrc":"47683:6:89","nodeType":"YulIdentifier","src":"47683:6:89"},"nativeSrc":"47683:19:89","nodeType":"YulFunctionCall","src":"47683:19:89"},"nativeSrc":"47683:19:89","nodeType":"YulExpressionStatement","src":"47683:19:89"},{"nativeSrc":"47711:21:89","nodeType":"YulAssignment","src":"47711:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"47722:3:89","nodeType":"YulIdentifier","src":"47722:3:89"},{"kind":"number","nativeSrc":"47727:4:89","nodeType":"YulLiteral","src":"47727:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"47718:3:89","nodeType":"YulIdentifier","src":"47718:3:89"},"nativeSrc":"47718:14:89","nodeType":"YulFunctionCall","src":"47718:14:89"},"variableNames":[{"name":"pos","nativeSrc":"47711:3:89","nodeType":"YulIdentifier","src":"47711:3:89"}]},{"nativeSrc":"47741:19:89","nodeType":"YulVariableDeclaration","src":"47741:19:89","value":{"name":"value","nativeSrc":"47755:5:89","nodeType":"YulIdentifier","src":"47755:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"47745:6:89","nodeType":"YulTypedName","src":"47745:6:89","type":""}]},{"nativeSrc":"47769:10:89","nodeType":"YulVariableDeclaration","src":"47769:10:89","value":{"kind":"number","nativeSrc":"47778:1:89","nodeType":"YulLiteral","src":"47778:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"47773:1:89","nodeType":"YulTypedName","src":"47773:1:89","type":""}]},{"body":{"nativeSrc":"47837:494:89","nodeType":"YulBlock","src":"47837:494:89","statements":[{"nativeSrc":"47851:35:89","nodeType":"YulVariableDeclaration","src":"47851:35:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"47879:6:89","nodeType":"YulIdentifier","src":"47879:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"47866:12:89","nodeType":"YulIdentifier","src":"47866:12:89"},"nativeSrc":"47866:20:89","nodeType":"YulFunctionCall","src":"47866:20:89"},"variables":[{"name":"value_1","nativeSrc":"47855:7:89","nodeType":"YulTypedName","src":"47855:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"47924:7:89","nodeType":"YulIdentifier","src":"47924:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"47899:24:89","nodeType":"YulIdentifier","src":"47899:24:89"},"nativeSrc":"47899:33:89","nodeType":"YulFunctionCall","src":"47899:33:89"},"nativeSrc":"47899:33:89","nodeType":"YulExpressionStatement","src":"47899:33:89"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"47952:3:89","nodeType":"YulIdentifier","src":"47952:3:89"},{"arguments":[{"name":"value_1","nativeSrc":"47961:7:89","nodeType":"YulIdentifier","src":"47961:7:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47978:3:89","nodeType":"YulLiteral","src":"47978:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"47983:1:89","nodeType":"YulLiteral","src":"47983:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"47974:3:89","nodeType":"YulIdentifier","src":"47974:3:89"},"nativeSrc":"47974:11:89","nodeType":"YulFunctionCall","src":"47974:11:89"},{"kind":"number","nativeSrc":"47987:1:89","nodeType":"YulLiteral","src":"47987:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"47970:3:89","nodeType":"YulIdentifier","src":"47970:3:89"},"nativeSrc":"47970:19:89","nodeType":"YulFunctionCall","src":"47970:19:89"}],"functionName":{"name":"and","nativeSrc":"47957:3:89","nodeType":"YulIdentifier","src":"47957:3:89"},"nativeSrc":"47957:33:89","nodeType":"YulFunctionCall","src":"47957:33:89"}],"functionName":{"name":"mstore","nativeSrc":"47945:6:89","nodeType":"YulIdentifier","src":"47945:6:89"},"nativeSrc":"47945:46:89","nodeType":"YulFunctionCall","src":"47945:46:89"},"nativeSrc":"47945:46:89","nodeType":"YulExpressionStatement","src":"47945:46:89"},{"nativeSrc":"48004:16:89","nodeType":"YulVariableDeclaration","src":"48004:16:89","value":{"kind":"number","nativeSrc":"48019:1:89","nodeType":"YulLiteral","src":"48019:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"48008:7:89","nodeType":"YulTypedName","src":"48008:7:89","type":""}]},{"nativeSrc":"48033:42:89","nodeType":"YulAssignment","src":"48033:42:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"48061:6:89","nodeType":"YulIdentifier","src":"48061:6:89"},{"kind":"number","nativeSrc":"48069:4:89","nodeType":"YulLiteral","src":"48069:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"48057:3:89","nodeType":"YulIdentifier","src":"48057:3:89"},"nativeSrc":"48057:17:89","nodeType":"YulFunctionCall","src":"48057:17:89"}],"functionName":{"name":"calldataload","nativeSrc":"48044:12:89","nodeType":"YulIdentifier","src":"48044:12:89"},"nativeSrc":"48044:31:89","nodeType":"YulFunctionCall","src":"48044:31:89"},"variableNames":[{"name":"value_2","nativeSrc":"48033:7:89","nodeType":"YulIdentifier","src":"48033:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"48099:3:89","nodeType":"YulIdentifier","src":"48099:3:89"},{"kind":"number","nativeSrc":"48104:4:89","nodeType":"YulLiteral","src":"48104:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"48095:3:89","nodeType":"YulIdentifier","src":"48095:3:89"},"nativeSrc":"48095:14:89","nodeType":"YulFunctionCall","src":"48095:14:89"},{"name":"value_2","nativeSrc":"48111:7:89","nodeType":"YulIdentifier","src":"48111:7:89"}],"functionName":{"name":"mstore","nativeSrc":"48088:6:89","nodeType":"YulIdentifier","src":"48088:6:89"},"nativeSrc":"48088:31:89","nodeType":"YulFunctionCall","src":"48088:31:89"},"nativeSrc":"48088:31:89","nodeType":"YulExpressionStatement","src":"48088:31:89"},{"nativeSrc":"48132:16:89","nodeType":"YulVariableDeclaration","src":"48132:16:89","value":{"kind":"number","nativeSrc":"48147:1:89","nodeType":"YulLiteral","src":"48147:1:89","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"48136:7:89","nodeType":"YulTypedName","src":"48136:7:89","type":""}]},{"nativeSrc":"48161:42:89","nodeType":"YulAssignment","src":"48161:42:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"48189:6:89","nodeType":"YulIdentifier","src":"48189:6:89"},{"kind":"number","nativeSrc":"48197:4:89","nodeType":"YulLiteral","src":"48197:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"48185:3:89","nodeType":"YulIdentifier","src":"48185:3:89"},"nativeSrc":"48185:17:89","nodeType":"YulFunctionCall","src":"48185:17:89"}],"functionName":{"name":"calldataload","nativeSrc":"48172:12:89","nodeType":"YulIdentifier","src":"48172:12:89"},"nativeSrc":"48172:31:89","nodeType":"YulFunctionCall","src":"48172:31:89"},"variableNames":[{"name":"value_3","nativeSrc":"48161:7:89","nodeType":"YulIdentifier","src":"48161:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"48227:3:89","nodeType":"YulIdentifier","src":"48227:3:89"},{"kind":"number","nativeSrc":"48232:4:89","nodeType":"YulLiteral","src":"48232:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"48223:3:89","nodeType":"YulIdentifier","src":"48223:3:89"},"nativeSrc":"48223:14:89","nodeType":"YulFunctionCall","src":"48223:14:89"},{"name":"value_3","nativeSrc":"48239:7:89","nodeType":"YulIdentifier","src":"48239:7:89"}],"functionName":{"name":"mstore","nativeSrc":"48216:6:89","nodeType":"YulIdentifier","src":"48216:6:89"},"nativeSrc":"48216:31:89","nodeType":"YulFunctionCall","src":"48216:31:89"},"nativeSrc":"48216:31:89","nodeType":"YulExpressionStatement","src":"48216:31:89"},{"nativeSrc":"48260:21:89","nodeType":"YulAssignment","src":"48260:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"48271:3:89","nodeType":"YulIdentifier","src":"48271:3:89"},{"kind":"number","nativeSrc":"48276:4:89","nodeType":"YulLiteral","src":"48276:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"48267:3:89","nodeType":"YulIdentifier","src":"48267:3:89"},"nativeSrc":"48267:14:89","nodeType":"YulFunctionCall","src":"48267:14:89"},"variableNames":[{"name":"pos","nativeSrc":"48260:3:89","nodeType":"YulIdentifier","src":"48260:3:89"}]},{"nativeSrc":"48294:27:89","nodeType":"YulAssignment","src":"48294:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"48308:6:89","nodeType":"YulIdentifier","src":"48308:6:89"},{"kind":"number","nativeSrc":"48316:4:89","nodeType":"YulLiteral","src":"48316:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"48304:3:89","nodeType":"YulIdentifier","src":"48304:3:89"},"nativeSrc":"48304:17:89","nodeType":"YulFunctionCall","src":"48304:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"48294:6:89","nodeType":"YulIdentifier","src":"48294:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"47799:1:89","nodeType":"YulIdentifier","src":"47799:1:89"},{"name":"length","nativeSrc":"47802:6:89","nodeType":"YulIdentifier","src":"47802:6:89"}],"functionName":{"name":"lt","nativeSrc":"47796:2:89","nodeType":"YulIdentifier","src":"47796:2:89"},"nativeSrc":"47796:13:89","nodeType":"YulFunctionCall","src":"47796:13:89"},"nativeSrc":"47788:543:89","nodeType":"YulForLoop","post":{"nativeSrc":"47810:18:89","nodeType":"YulBlock","src":"47810:18:89","statements":[{"nativeSrc":"47812:14:89","nodeType":"YulAssignment","src":"47812:14:89","value":{"arguments":[{"name":"i","nativeSrc":"47821:1:89","nodeType":"YulIdentifier","src":"47821:1:89"},{"kind":"number","nativeSrc":"47824:1:89","nodeType":"YulLiteral","src":"47824:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"47817:3:89","nodeType":"YulIdentifier","src":"47817:3:89"},"nativeSrc":"47817:9:89","nodeType":"YulFunctionCall","src":"47817:9:89"},"variableNames":[{"name":"i","nativeSrc":"47812:1:89","nodeType":"YulIdentifier","src":"47812:1:89"}]}]},"pre":{"nativeSrc":"47792:3:89","nodeType":"YulBlock","src":"47792:3:89","statements":[]},"src":"47788:543:89"},{"nativeSrc":"48340:10:89","nodeType":"YulAssignment","src":"48340:10:89","value":{"name":"pos","nativeSrc":"48347:3:89","nodeType":"YulIdentifier","src":"48347:3:89"},"variableNames":[{"name":"end","nativeSrc":"48340:3:89","nodeType":"YulIdentifier","src":"48340:3:89"}]}]},"name":"abi_encode_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"47577:779:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47642:5:89","nodeType":"YulTypedName","src":"47642:5:89","type":""},{"name":"length","nativeSrc":"47649:6:89","nodeType":"YulTypedName","src":"47649:6:89","type":""},{"name":"pos","nativeSrc":"47657:3:89","nodeType":"YulTypedName","src":"47657:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"47665:3:89","nodeType":"YulTypedName","src":"47665:3:89","type":""}],"src":"47577:779:89"},{"body":{"nativeSrc":"48455:1445:89","nodeType":"YulBlock","src":"48455:1445:89","statements":[{"nativeSrc":"48465:16:89","nodeType":"YulVariableDeclaration","src":"48465:16:89","value":{"name":"pos","nativeSrc":"48478:3:89","nodeType":"YulIdentifier","src":"48478:3:89"},"variables":[{"name":"pos_1","nativeSrc":"48469:5:89","nodeType":"YulTypedName","src":"48469:5:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"48497:3:89","nodeType":"YulIdentifier","src":"48497:3:89"},{"name":"length","nativeSrc":"48502:6:89","nodeType":"YulIdentifier","src":"48502:6:89"}],"functionName":{"name":"mstore","nativeSrc":"48490:6:89","nodeType":"YulIdentifier","src":"48490:6:89"},"nativeSrc":"48490:19:89","nodeType":"YulFunctionCall","src":"48490:19:89"},"nativeSrc":"48490:19:89","nodeType":"YulExpressionStatement","src":"48490:19:89"},{"nativeSrc":"48518:21:89","nodeType":"YulAssignment","src":"48518:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"48529:3:89","nodeType":"YulIdentifier","src":"48529:3:89"},{"kind":"number","nativeSrc":"48534:4:89","nodeType":"YulLiteral","src":"48534:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"48525:3:89","nodeType":"YulIdentifier","src":"48525:3:89"},"nativeSrc":"48525:14:89","nodeType":"YulFunctionCall","src":"48525:14:89"},"variableNames":[{"name":"pos","nativeSrc":"48518:3:89","nodeType":"YulIdentifier","src":"48518:3:89"}]},{"nativeSrc":"48548:49:89","nodeType":"YulVariableDeclaration","src":"48548:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"48568:5:89","nodeType":"YulIdentifier","src":"48568:5:89"},{"arguments":[{"kind":"number","nativeSrc":"48579:1:89","nodeType":"YulLiteral","src":"48579:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"48582:6:89","nodeType":"YulIdentifier","src":"48582:6:89"}],"functionName":{"name":"shl","nativeSrc":"48575:3:89","nodeType":"YulIdentifier","src":"48575:3:89"},"nativeSrc":"48575:14:89","nodeType":"YulFunctionCall","src":"48575:14:89"}],"functionName":{"name":"add","nativeSrc":"48564:3:89","nodeType":"YulIdentifier","src":"48564:3:89"},"nativeSrc":"48564:26:89","nodeType":"YulFunctionCall","src":"48564:26:89"},{"kind":"number","nativeSrc":"48592:4:89","nodeType":"YulLiteral","src":"48592:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"48560:3:89","nodeType":"YulIdentifier","src":"48560:3:89"},"nativeSrc":"48560:37:89","nodeType":"YulFunctionCall","src":"48560:37:89"},"variables":[{"name":"tail","nativeSrc":"48552:4:89","nodeType":"YulTypedName","src":"48552:4:89","type":""}]},{"nativeSrc":"48606:19:89","nodeType":"YulVariableDeclaration","src":"48606:19:89","value":{"name":"value","nativeSrc":"48620:5:89","nodeType":"YulIdentifier","src":"48620:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"48610:6:89","nodeType":"YulTypedName","src":"48610:6:89","type":""}]},{"nativeSrc":"48634:10:89","nodeType":"YulVariableDeclaration","src":"48634:10:89","value":{"kind":"number","nativeSrc":"48643:1:89","nodeType":"YulLiteral","src":"48643:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"48638:1:89","nodeType":"YulTypedName","src":"48638:1:89","type":""}]},{"body":{"nativeSrc":"48702:1172:89","nodeType":"YulBlock","src":"48702:1172:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"48723:3:89","nodeType":"YulIdentifier","src":"48723:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"48736:4:89","nodeType":"YulIdentifier","src":"48736:4:89"},{"name":"pos_1","nativeSrc":"48742:5:89","nodeType":"YulIdentifier","src":"48742:5:89"}],"functionName":{"name":"sub","nativeSrc":"48732:3:89","nodeType":"YulIdentifier","src":"48732:3:89"},"nativeSrc":"48732:16:89","nodeType":"YulFunctionCall","src":"48732:16:89"},{"arguments":[{"kind":"number","nativeSrc":"48754:2:89","nodeType":"YulLiteral","src":"48754:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"48750:3:89","nodeType":"YulIdentifier","src":"48750:3:89"},"nativeSrc":"48750:7:89","nodeType":"YulFunctionCall","src":"48750:7:89"}],"functionName":{"name":"add","nativeSrc":"48728:3:89","nodeType":"YulIdentifier","src":"48728:3:89"},"nativeSrc":"48728:30:89","nodeType":"YulFunctionCall","src":"48728:30:89"}],"functionName":{"name":"mstore","nativeSrc":"48716:6:89","nodeType":"YulIdentifier","src":"48716:6:89"},"nativeSrc":"48716:43:89","nodeType":"YulFunctionCall","src":"48716:43:89"},"nativeSrc":"48716:43:89","nodeType":"YulExpressionStatement","src":"48716:43:89"},{"nativeSrc":"48772:66:89","nodeType":"YulVariableDeclaration","src":"48772:66:89","value":{"arguments":[{"name":"value","nativeSrc":"48824:5:89","nodeType":"YulIdentifier","src":"48824:5:89"},{"name":"srcPtr","nativeSrc":"48831:6:89","nodeType":"YulIdentifier","src":"48831:6:89"}],"functionName":{"name":"calldata_access_struct_TokenInfo_calldata","nativeSrc":"48782:41:89","nodeType":"YulIdentifier","src":"48782:41:89"},"nativeSrc":"48782:56:89","nodeType":"YulFunctionCall","src":"48782:56:89"},"variables":[{"name":"_1","nativeSrc":"48776:2:89","nodeType":"YulTypedName","src":"48776:2:89","type":""}]},{"nativeSrc":"48851:73:89","nodeType":"YulVariableDeclaration","src":"48851:73:89","value":{"arguments":[{"name":"_1","nativeSrc":"48917:2:89","nodeType":"YulIdentifier","src":"48917:2:89"},{"name":"_1","nativeSrc":"48921:2:89","nodeType":"YulIdentifier","src":"48921:2:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"48885:31:89","nodeType":"YulIdentifier","src":"48885:31:89"},"nativeSrc":"48885:39:89","nodeType":"YulFunctionCall","src":"48885:39:89"},"variables":[{"name":"memberValue0","nativeSrc":"48855:12:89","nodeType":"YulTypedName","src":"48855:12:89","type":""},{"name":"memberValue1","nativeSrc":"48869:12:89","nodeType":"YulTypedName","src":"48869:12:89","type":""}]},{"expression":{"arguments":[{"name":"tail","nativeSrc":"48944:4:89","nodeType":"YulIdentifier","src":"48944:4:89"},{"kind":"number","nativeSrc":"48950:4:89","nodeType":"YulLiteral","src":"48950:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"48937:6:89","nodeType":"YulIdentifier","src":"48937:6:89"},"nativeSrc":"48937:18:89","nodeType":"YulFunctionCall","src":"48937:18:89"},"nativeSrc":"48937:18:89","nodeType":"YulExpressionStatement","src":"48937:18:89"},{"nativeSrc":"48968:84:89","nodeType":"YulVariableDeclaration","src":"48968:84:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"49008:12:89","nodeType":"YulIdentifier","src":"49008:12:89"},{"name":"memberValue1","nativeSrc":"49022:12:89","nodeType":"YulIdentifier","src":"49022:12:89"},{"arguments":[{"name":"tail","nativeSrc":"49040:4:89","nodeType":"YulIdentifier","src":"49040:4:89"},{"kind":"number","nativeSrc":"49046:4:89","nodeType":"YulLiteral","src":"49046:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"49036:3:89","nodeType":"YulIdentifier","src":"49036:3:89"},"nativeSrc":"49036:15:89","nodeType":"YulFunctionCall","src":"49036:15:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"48982:25:89","nodeType":"YulIdentifier","src":"48982:25:89"},"nativeSrc":"48982:70:89","nodeType":"YulFunctionCall","src":"48982:70:89"},"variables":[{"name":"tail_1","nativeSrc":"48972:6:89","nodeType":"YulTypedName","src":"48972:6:89","type":""}]},{"nativeSrc":"49065:88:89","nodeType":"YulVariableDeclaration","src":"49065:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"49135:2:89","nodeType":"YulIdentifier","src":"49135:2:89"},{"arguments":[{"name":"_1","nativeSrc":"49143:2:89","nodeType":"YulIdentifier","src":"49143:2:89"},{"kind":"number","nativeSrc":"49147:4:89","nodeType":"YulLiteral","src":"49147:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"49139:3:89","nodeType":"YulIdentifier","src":"49139:3:89"},"nativeSrc":"49139:13:89","nodeType":"YulFunctionCall","src":"49139:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"49103:31:89","nodeType":"YulIdentifier","src":"49103:31:89"},"nativeSrc":"49103:50:89","nodeType":"YulFunctionCall","src":"49103:50:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"49069:14:89","nodeType":"YulTypedName","src":"49069:14:89","type":""},{"name":"memberValue1_1","nativeSrc":"49085:14:89","nodeType":"YulTypedName","src":"49085:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"49177:4:89","nodeType":"YulIdentifier","src":"49177:4:89"},{"kind":"number","nativeSrc":"49183:4:89","nodeType":"YulLiteral","src":"49183:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"49173:3:89","nodeType":"YulIdentifier","src":"49173:3:89"},"nativeSrc":"49173:15:89","nodeType":"YulFunctionCall","src":"49173:15:89"},{"arguments":[{"name":"tail_1","nativeSrc":"49194:6:89","nodeType":"YulIdentifier","src":"49194:6:89"},{"name":"tail","nativeSrc":"49202:4:89","nodeType":"YulIdentifier","src":"49202:4:89"}],"functionName":{"name":"sub","nativeSrc":"49190:3:89","nodeType":"YulIdentifier","src":"49190:3:89"},"nativeSrc":"49190:17:89","nodeType":"YulFunctionCall","src":"49190:17:89"}],"functionName":{"name":"mstore","nativeSrc":"49166:6:89","nodeType":"YulIdentifier","src":"49166:6:89"},"nativeSrc":"49166:42:89","nodeType":"YulFunctionCall","src":"49166:42:89"},"nativeSrc":"49166:42:89","nodeType":"YulExpressionStatement","src":"49166:42:89"},{"nativeSrc":"49221:79:89","nodeType":"YulVariableDeclaration","src":"49221:79:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"49261:14:89","nodeType":"YulIdentifier","src":"49261:14:89"},{"name":"memberValue1_1","nativeSrc":"49277:14:89","nodeType":"YulIdentifier","src":"49277:14:89"},{"name":"tail_1","nativeSrc":"49293:6:89","nodeType":"YulIdentifier","src":"49293:6:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"49235:25:89","nodeType":"YulIdentifier","src":"49235:25:89"},"nativeSrc":"49235:65:89","nodeType":"YulFunctionCall","src":"49235:65:89"},"variables":[{"name":"tail_2","nativeSrc":"49225:6:89","nodeType":"YulTypedName","src":"49225:6:89","type":""}]},{"nativeSrc":"49313:88:89","nodeType":"YulVariableDeclaration","src":"49313:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"49383:2:89","nodeType":"YulIdentifier","src":"49383:2:89"},{"arguments":[{"name":"_1","nativeSrc":"49391:2:89","nodeType":"YulIdentifier","src":"49391:2:89"},{"kind":"number","nativeSrc":"49395:4:89","nodeType":"YulLiteral","src":"49395:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"49387:3:89","nodeType":"YulIdentifier","src":"49387:3:89"},"nativeSrc":"49387:13:89","nodeType":"YulFunctionCall","src":"49387:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"49351:31:89","nodeType":"YulIdentifier","src":"49351:31:89"},"nativeSrc":"49351:50:89","nodeType":"YulFunctionCall","src":"49351:50:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"49317:14:89","nodeType":"YulTypedName","src":"49317:14:89","type":""},{"name":"memberValue1_2","nativeSrc":"49333:14:89","nodeType":"YulTypedName","src":"49333:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"49425:4:89","nodeType":"YulIdentifier","src":"49425:4:89"},{"kind":"number","nativeSrc":"49431:4:89","nodeType":"YulLiteral","src":"49431:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"49421:3:89","nodeType":"YulIdentifier","src":"49421:3:89"},"nativeSrc":"49421:15:89","nodeType":"YulFunctionCall","src":"49421:15:89"},{"arguments":[{"name":"tail_2","nativeSrc":"49442:6:89","nodeType":"YulIdentifier","src":"49442:6:89"},{"name":"tail","nativeSrc":"49450:4:89","nodeType":"YulIdentifier","src":"49450:4:89"}],"functionName":{"name":"sub","nativeSrc":"49438:3:89","nodeType":"YulIdentifier","src":"49438:3:89"},"nativeSrc":"49438:17:89","nodeType":"YulFunctionCall","src":"49438:17:89"}],"functionName":{"name":"mstore","nativeSrc":"49414:6:89","nodeType":"YulIdentifier","src":"49414:6:89"},"nativeSrc":"49414:42:89","nodeType":"YulFunctionCall","src":"49414:42:89"},"nativeSrc":"49414:42:89","nodeType":"YulExpressionStatement","src":"49414:42:89"},{"nativeSrc":"49469:79:89","nodeType":"YulVariableDeclaration","src":"49469:79:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"49509:14:89","nodeType":"YulIdentifier","src":"49509:14:89"},{"name":"memberValue1_2","nativeSrc":"49525:14:89","nodeType":"YulIdentifier","src":"49525:14:89"},{"name":"tail_2","nativeSrc":"49541:6:89","nodeType":"YulIdentifier","src":"49541:6:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"49483:25:89","nodeType":"YulIdentifier","src":"49483:25:89"},"nativeSrc":"49483:65:89","nodeType":"YulFunctionCall","src":"49483:65:89"},"variables":[{"name":"tail_3","nativeSrc":"49473:6:89","nodeType":"YulTypedName","src":"49473:6:89","type":""}]},{"nativeSrc":"49561:88:89","nodeType":"YulVariableDeclaration","src":"49561:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"49631:2:89","nodeType":"YulIdentifier","src":"49631:2:89"},{"arguments":[{"name":"_1","nativeSrc":"49639:2:89","nodeType":"YulIdentifier","src":"49639:2:89"},{"kind":"number","nativeSrc":"49643:4:89","nodeType":"YulLiteral","src":"49643:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"49635:3:89","nodeType":"YulIdentifier","src":"49635:3:89"},"nativeSrc":"49635:13:89","nodeType":"YulFunctionCall","src":"49635:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"49599:31:89","nodeType":"YulIdentifier","src":"49599:31:89"},"nativeSrc":"49599:50:89","nodeType":"YulFunctionCall","src":"49599:50:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"49565:14:89","nodeType":"YulTypedName","src":"49565:14:89","type":""},{"name":"memberValue1_3","nativeSrc":"49581:14:89","nodeType":"YulTypedName","src":"49581:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"49673:4:89","nodeType":"YulIdentifier","src":"49673:4:89"},{"kind":"number","nativeSrc":"49679:4:89","nodeType":"YulLiteral","src":"49679:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"49669:3:89","nodeType":"YulIdentifier","src":"49669:3:89"},"nativeSrc":"49669:15:89","nodeType":"YulFunctionCall","src":"49669:15:89"},{"arguments":[{"name":"tail_3","nativeSrc":"49690:6:89","nodeType":"YulIdentifier","src":"49690:6:89"},{"name":"tail","nativeSrc":"49698:4:89","nodeType":"YulIdentifier","src":"49698:4:89"}],"functionName":{"name":"sub","nativeSrc":"49686:3:89","nodeType":"YulIdentifier","src":"49686:3:89"},"nativeSrc":"49686:17:89","nodeType":"YulFunctionCall","src":"49686:17:89"}],"functionName":{"name":"mstore","nativeSrc":"49662:6:89","nodeType":"YulIdentifier","src":"49662:6:89"},"nativeSrc":"49662:42:89","nodeType":"YulFunctionCall","src":"49662:42:89"},"nativeSrc":"49662:42:89","nodeType":"YulExpressionStatement","src":"49662:42:89"},{"nativeSrc":"49717:73:89","nodeType":"YulAssignment","src":"49717:73:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"49751:14:89","nodeType":"YulIdentifier","src":"49751:14:89"},{"name":"memberValue1_3","nativeSrc":"49767:14:89","nodeType":"YulIdentifier","src":"49767:14:89"},{"name":"tail_3","nativeSrc":"49783:6:89","nodeType":"YulIdentifier","src":"49783:6:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"49725:25:89","nodeType":"YulIdentifier","src":"49725:25:89"},"nativeSrc":"49725:65:89","nodeType":"YulFunctionCall","src":"49725:65:89"},"variableNames":[{"name":"tail","nativeSrc":"49717:4:89","nodeType":"YulIdentifier","src":"49717:4:89"}]},{"nativeSrc":"49803:27:89","nodeType":"YulAssignment","src":"49803:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"49817:6:89","nodeType":"YulIdentifier","src":"49817:6:89"},{"kind":"number","nativeSrc":"49825:4:89","nodeType":"YulLiteral","src":"49825:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"49813:3:89","nodeType":"YulIdentifier","src":"49813:3:89"},"nativeSrc":"49813:17:89","nodeType":"YulFunctionCall","src":"49813:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"49803:6:89","nodeType":"YulIdentifier","src":"49803:6:89"}]},{"nativeSrc":"49843:21:89","nodeType":"YulAssignment","src":"49843:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"49854:3:89","nodeType":"YulIdentifier","src":"49854:3:89"},{"kind":"number","nativeSrc":"49859:4:89","nodeType":"YulLiteral","src":"49859:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"49850:3:89","nodeType":"YulIdentifier","src":"49850:3:89"},"nativeSrc":"49850:14:89","nodeType":"YulFunctionCall","src":"49850:14:89"},"variableNames":[{"name":"pos","nativeSrc":"49843:3:89","nodeType":"YulIdentifier","src":"49843:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"48664:1:89","nodeType":"YulIdentifier","src":"48664:1:89"},{"name":"length","nativeSrc":"48667:6:89","nodeType":"YulIdentifier","src":"48667:6:89"}],"functionName":{"name":"lt","nativeSrc":"48661:2:89","nodeType":"YulIdentifier","src":"48661:2:89"},"nativeSrc":"48661:13:89","nodeType":"YulFunctionCall","src":"48661:13:89"},"nativeSrc":"48653:1221:89","nodeType":"YulForLoop","post":{"nativeSrc":"48675:18:89","nodeType":"YulBlock","src":"48675:18:89","statements":[{"nativeSrc":"48677:14:89","nodeType":"YulAssignment","src":"48677:14:89","value":{"arguments":[{"name":"i","nativeSrc":"48686:1:89","nodeType":"YulIdentifier","src":"48686:1:89"},{"kind":"number","nativeSrc":"48689:1:89","nodeType":"YulLiteral","src":"48689:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"48682:3:89","nodeType":"YulIdentifier","src":"48682:3:89"},"nativeSrc":"48682:9:89","nodeType":"YulFunctionCall","src":"48682:9:89"},"variableNames":[{"name":"i","nativeSrc":"48677:1:89","nodeType":"YulIdentifier","src":"48677:1:89"}]}]},"pre":{"nativeSrc":"48657:3:89","nodeType":"YulBlock","src":"48657:3:89","statements":[]},"src":"48653:1221:89"},{"nativeSrc":"49883:11:89","nodeType":"YulAssignment","src":"49883:11:89","value":{"name":"tail","nativeSrc":"49890:4:89","nodeType":"YulIdentifier","src":"49890:4:89"},"variableNames":[{"name":"end","nativeSrc":"49883:3:89","nodeType":"YulIdentifier","src":"49883:3:89"}]}]},"name":"abi_encode_array_struct_NFTInfo_calldata_dyn_calldata","nativeSrc":"48361:1539:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"48424:5:89","nodeType":"YulTypedName","src":"48424:5:89","type":""},{"name":"length","nativeSrc":"48431:6:89","nodeType":"YulTypedName","src":"48431:6:89","type":""},{"name":"pos","nativeSrc":"48439:3:89","nodeType":"YulTypedName","src":"48439:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"48447:3:89","nodeType":"YulTypedName","src":"48447:3:89","type":""}],"src":"48361:1539:89"},{"body":{"nativeSrc":"50130:3798:89","nodeType":"YulBlock","src":"50130:3798:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"50147:9:89","nodeType":"YulIdentifier","src":"50147:9:89"},{"kind":"number","nativeSrc":"50158:2:89","nodeType":"YulLiteral","src":"50158:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"50140:6:89","nodeType":"YulIdentifier","src":"50140:6:89"},"nativeSrc":"50140:21:89","nodeType":"YulFunctionCall","src":"50140:21:89"},"nativeSrc":"50140:21:89","nodeType":"YulExpressionStatement","src":"50140:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"50206:6:89","nodeType":"YulIdentifier","src":"50206:6:89"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"50188:17:89","nodeType":"YulIdentifier","src":"50188:17:89"},"nativeSrc":"50188:25:89","nodeType":"YulFunctionCall","src":"50188:25:89"},{"arguments":[{"name":"headStart","nativeSrc":"50219:9:89","nodeType":"YulIdentifier","src":"50219:9:89"},{"kind":"number","nativeSrc":"50230:2:89","nodeType":"YulLiteral","src":"50230:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"50215:3:89","nodeType":"YulIdentifier","src":"50215:3:89"},"nativeSrc":"50215:18:89","nodeType":"YulFunctionCall","src":"50215:18:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"50170:17:89","nodeType":"YulIdentifier","src":"50170:17:89"},"nativeSrc":"50170:64:89","nodeType":"YulFunctionCall","src":"50170:64:89"},"nativeSrc":"50170:64:89","nodeType":"YulExpressionStatement","src":"50170:64:89"},{"nativeSrc":"50243:56:89","nodeType":"YulVariableDeclaration","src":"50243:56:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"50285:6:89","nodeType":"YulIdentifier","src":"50285:6:89"},{"kind":"number","nativeSrc":"50293:4:89","nodeType":"YulLiteral","src":"50293:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"50281:3:89","nodeType":"YulIdentifier","src":"50281:3:89"},"nativeSrc":"50281:17:89","nodeType":"YulFunctionCall","src":"50281:17:89"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"50263:17:89","nodeType":"YulIdentifier","src":"50263:17:89"},"nativeSrc":"50263:36:89","nodeType":"YulFunctionCall","src":"50263:36:89"},"variables":[{"name":"memberValue0","nativeSrc":"50247:12:89","nodeType":"YulTypedName","src":"50247:12:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"50326:12:89","nodeType":"YulIdentifier","src":"50326:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"50344:9:89","nodeType":"YulIdentifier","src":"50344:9:89"},{"kind":"number","nativeSrc":"50355:2:89","nodeType":"YulLiteral","src":"50355:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"50340:3:89","nodeType":"YulIdentifier","src":"50340:3:89"},"nativeSrc":"50340:18:89","nodeType":"YulFunctionCall","src":"50340:18:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"50308:17:89","nodeType":"YulIdentifier","src":"50308:17:89"},"nativeSrc":"50308:51:89","nodeType":"YulFunctionCall","src":"50308:51:89"},"nativeSrc":"50308:51:89","nodeType":"YulExpressionStatement","src":"50308:51:89"},{"nativeSrc":"50368:14:89","nodeType":"YulVariableDeclaration","src":"50368:14:89","value":{"kind":"number","nativeSrc":"50381:1:89","nodeType":"YulLiteral","src":"50381:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"50372:5:89","nodeType":"YulTypedName","src":"50372:5:89","type":""}]},{"nativeSrc":"50391:38:89","nodeType":"YulAssignment","src":"50391:38:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"50417:6:89","nodeType":"YulIdentifier","src":"50417:6:89"},{"kind":"number","nativeSrc":"50425:2:89","nodeType":"YulLiteral","src":"50425:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"50413:3:89","nodeType":"YulIdentifier","src":"50413:3:89"},"nativeSrc":"50413:15:89","nodeType":"YulFunctionCall","src":"50413:15:89"}],"functionName":{"name":"calldataload","nativeSrc":"50400:12:89","nodeType":"YulIdentifier","src":"50400:12:89"},"nativeSrc":"50400:29:89","nodeType":"YulFunctionCall","src":"50400:29:89"},"variableNames":[{"name":"value","nativeSrc":"50391:5:89","nodeType":"YulIdentifier","src":"50391:5:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"50449:9:89","nodeType":"YulIdentifier","src":"50449:9:89"},{"kind":"number","nativeSrc":"50460:3:89","nodeType":"YulLiteral","src":"50460:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"50445:3:89","nodeType":"YulIdentifier","src":"50445:3:89"},"nativeSrc":"50445:19:89","nodeType":"YulFunctionCall","src":"50445:19:89"},{"name":"value","nativeSrc":"50466:5:89","nodeType":"YulIdentifier","src":"50466:5:89"}],"functionName":{"name":"mstore","nativeSrc":"50438:6:89","nodeType":"YulIdentifier","src":"50438:6:89"},"nativeSrc":"50438:34:89","nodeType":"YulFunctionCall","src":"50438:34:89"},"nativeSrc":"50438:34:89","nodeType":"YulExpressionStatement","src":"50438:34:89"},{"nativeSrc":"50481:16:89","nodeType":"YulVariableDeclaration","src":"50481:16:89","value":{"kind":"number","nativeSrc":"50496:1:89","nodeType":"YulLiteral","src":"50496:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"50485:7:89","nodeType":"YulTypedName","src":"50485:7:89","type":""}]},{"nativeSrc":"50506:40:89","nodeType":"YulAssignment","src":"50506:40:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"50534:6:89","nodeType":"YulIdentifier","src":"50534:6:89"},{"kind":"number","nativeSrc":"50542:2:89","nodeType":"YulLiteral","src":"50542:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"50530:3:89","nodeType":"YulIdentifier","src":"50530:3:89"},"nativeSrc":"50530:15:89","nodeType":"YulFunctionCall","src":"50530:15:89"}],"functionName":{"name":"calldataload","nativeSrc":"50517:12:89","nodeType":"YulIdentifier","src":"50517:12:89"},"nativeSrc":"50517:29:89","nodeType":"YulFunctionCall","src":"50517:29:89"},"variableNames":[{"name":"value_1","nativeSrc":"50506:7:89","nodeType":"YulIdentifier","src":"50506:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"50566:9:89","nodeType":"YulIdentifier","src":"50566:9:89"},{"kind":"number","nativeSrc":"50577:3:89","nodeType":"YulLiteral","src":"50577:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"50562:3:89","nodeType":"YulIdentifier","src":"50562:3:89"},"nativeSrc":"50562:19:89","nodeType":"YulFunctionCall","src":"50562:19:89"},{"name":"value_1","nativeSrc":"50583:7:89","nodeType":"YulIdentifier","src":"50583:7:89"}],"functionName":{"name":"mstore","nativeSrc":"50555:6:89","nodeType":"YulIdentifier","src":"50555:6:89"},"nativeSrc":"50555:36:89","nodeType":"YulFunctionCall","src":"50555:36:89"},"nativeSrc":"50555:36:89","nodeType":"YulExpressionStatement","src":"50555:36:89"},{"nativeSrc":"50600:58:89","nodeType":"YulVariableDeclaration","src":"50600:58:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"50645:6:89","nodeType":"YulIdentifier","src":"50645:6:89"},{"kind":"number","nativeSrc":"50653:3:89","nodeType":"YulLiteral","src":"50653:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"50641:3:89","nodeType":"YulIdentifier","src":"50641:3:89"},"nativeSrc":"50641:16:89","nodeType":"YulFunctionCall","src":"50641:16:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"50622:18:89","nodeType":"YulIdentifier","src":"50622:18:89"},"nativeSrc":"50622:36:89","nodeType":"YulFunctionCall","src":"50622:36:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"50604:14:89","nodeType":"YulTypedName","src":"50604:14:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"50686:14:89","nodeType":"YulIdentifier","src":"50686:14:89"},{"arguments":[{"name":"headStart","nativeSrc":"50706:9:89","nodeType":"YulIdentifier","src":"50706:9:89"},{"kind":"number","nativeSrc":"50717:3:89","nodeType":"YulLiteral","src":"50717:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"50702:3:89","nodeType":"YulIdentifier","src":"50702:3:89"},"nativeSrc":"50702:19:89","nodeType":"YulFunctionCall","src":"50702:19:89"}],"functionName":{"name":"abi_encode_address","nativeSrc":"50667:18:89","nodeType":"YulIdentifier","src":"50667:18:89"},"nativeSrc":"50667:55:89","nodeType":"YulFunctionCall","src":"50667:55:89"},"nativeSrc":"50667:55:89","nodeType":"YulExpressionStatement","src":"50667:55:89"},{"nativeSrc":"50731:93:89","nodeType":"YulVariableDeclaration","src":"50731:93:89","value":{"arguments":[{"name":"value0","nativeSrc":"50799:6:89","nodeType":"YulIdentifier","src":"50799:6:89"},{"arguments":[{"name":"value0","nativeSrc":"50811:6:89","nodeType":"YulIdentifier","src":"50811:6:89"},{"kind":"number","nativeSrc":"50819:3:89","nodeType":"YulLiteral","src":"50819:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"50807:3:89","nodeType":"YulIdentifier","src":"50807:3:89"},"nativeSrc":"50807:16:89","nodeType":"YulFunctionCall","src":"50807:16:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"50767:31:89","nodeType":"YulIdentifier","src":"50767:31:89"},"nativeSrc":"50767:57:89","nodeType":"YulFunctionCall","src":"50767:57:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"50735:14:89","nodeType":"YulTypedName","src":"50735:14:89","type":""},{"name":"memberValue1","nativeSrc":"50751:12:89","nodeType":"YulTypedName","src":"50751:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"50844:9:89","nodeType":"YulIdentifier","src":"50844:9:89"},{"kind":"number","nativeSrc":"50855:3:89","nodeType":"YulLiteral","src":"50855:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"50840:3:89","nodeType":"YulIdentifier","src":"50840:3:89"},"nativeSrc":"50840:19:89","nodeType":"YulFunctionCall","src":"50840:19:89"},{"kind":"number","nativeSrc":"50861:6:89","nodeType":"YulLiteral","src":"50861:6:89","type":"","value":"0x0220"}],"functionName":{"name":"mstore","nativeSrc":"50833:6:89","nodeType":"YulIdentifier","src":"50833:6:89"},"nativeSrc":"50833:35:89","nodeType":"YulFunctionCall","src":"50833:35:89"},"nativeSrc":"50833:35:89","nodeType":"YulExpressionStatement","src":"50833:35:89"},{"nativeSrc":"50877:90:89","nodeType":"YulVariableDeclaration","src":"50877:90:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"50917:14:89","nodeType":"YulIdentifier","src":"50917:14:89"},{"name":"memberValue1","nativeSrc":"50933:12:89","nodeType":"YulIdentifier","src":"50933:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"50951:9:89","nodeType":"YulIdentifier","src":"50951:9:89"},{"kind":"number","nativeSrc":"50962:3:89","nodeType":"YulLiteral","src":"50962:3:89","type":"","value":"608"}],"functionName":{"name":"add","nativeSrc":"50947:3:89","nodeType":"YulIdentifier","src":"50947:3:89"},"nativeSrc":"50947:19:89","nodeType":"YulFunctionCall","src":"50947:19:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"50891:25:89","nodeType":"YulIdentifier","src":"50891:25:89"},"nativeSrc":"50891:76:89","nodeType":"YulFunctionCall","src":"50891:76:89"},"variables":[{"name":"tail_1","nativeSrc":"50881:6:89","nodeType":"YulTypedName","src":"50881:6:89","type":""}]},{"nativeSrc":"50976:95:89","nodeType":"YulVariableDeclaration","src":"50976:95:89","value":{"arguments":[{"name":"value0","nativeSrc":"51046:6:89","nodeType":"YulIdentifier","src":"51046:6:89"},{"arguments":[{"name":"value0","nativeSrc":"51058:6:89","nodeType":"YulIdentifier","src":"51058:6:89"},{"kind":"number","nativeSrc":"51066:3:89","nodeType":"YulLiteral","src":"51066:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"51054:3:89","nodeType":"YulIdentifier","src":"51054:3:89"},"nativeSrc":"51054:16:89","nodeType":"YulFunctionCall","src":"51054:16:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"51014:31:89","nodeType":"YulIdentifier","src":"51014:31:89"},"nativeSrc":"51014:57:89","nodeType":"YulFunctionCall","src":"51014:57:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"50980:14:89","nodeType":"YulTypedName","src":"50980:14:89","type":""},{"name":"memberValue1_1","nativeSrc":"50996:14:89","nodeType":"YulTypedName","src":"50996:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"51091:9:89","nodeType":"YulIdentifier","src":"51091:9:89"},{"kind":"number","nativeSrc":"51102:3:89","nodeType":"YulLiteral","src":"51102:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"51087:3:89","nodeType":"YulIdentifier","src":"51087:3:89"},"nativeSrc":"51087:19:89","nodeType":"YulFunctionCall","src":"51087:19:89"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"51116:6:89","nodeType":"YulIdentifier","src":"51116:6:89"},{"name":"headStart","nativeSrc":"51124:9:89","nodeType":"YulIdentifier","src":"51124:9:89"}],"functionName":{"name":"sub","nativeSrc":"51112:3:89","nodeType":"YulIdentifier","src":"51112:3:89"},"nativeSrc":"51112:22:89","nodeType":"YulFunctionCall","src":"51112:22:89"},{"arguments":[{"kind":"number","nativeSrc":"51140:2:89","nodeType":"YulLiteral","src":"51140:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"51136:3:89","nodeType":"YulIdentifier","src":"51136:3:89"},"nativeSrc":"51136:7:89","nodeType":"YulFunctionCall","src":"51136:7:89"}],"functionName":{"name":"add","nativeSrc":"51108:3:89","nodeType":"YulIdentifier","src":"51108:3:89"},"nativeSrc":"51108:36:89","nodeType":"YulFunctionCall","src":"51108:36:89"}],"functionName":{"name":"mstore","nativeSrc":"51080:6:89","nodeType":"YulIdentifier","src":"51080:6:89"},"nativeSrc":"51080:65:89","nodeType":"YulFunctionCall","src":"51080:65:89"},"nativeSrc":"51080:65:89","nodeType":"YulExpressionStatement","src":"51080:65:89"},{"nativeSrc":"51154:79:89","nodeType":"YulVariableDeclaration","src":"51154:79:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"51194:14:89","nodeType":"YulIdentifier","src":"51194:14:89"},{"name":"memberValue1_1","nativeSrc":"51210:14:89","nodeType":"YulIdentifier","src":"51210:14:89"},{"name":"tail_1","nativeSrc":"51226:6:89","nodeType":"YulIdentifier","src":"51226:6:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"51168:25:89","nodeType":"YulIdentifier","src":"51168:25:89"},"nativeSrc":"51168:65:89","nodeType":"YulFunctionCall","src":"51168:65:89"},"variables":[{"name":"tail_2","nativeSrc":"51158:6:89","nodeType":"YulTypedName","src":"51158:6:89","type":""}]},{"nativeSrc":"51242:95:89","nodeType":"YulVariableDeclaration","src":"51242:95:89","value":{"arguments":[{"name":"value0","nativeSrc":"51312:6:89","nodeType":"YulIdentifier","src":"51312:6:89"},{"arguments":[{"name":"value0","nativeSrc":"51324:6:89","nodeType":"YulIdentifier","src":"51324:6:89"},{"kind":"number","nativeSrc":"51332:3:89","nodeType":"YulLiteral","src":"51332:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"51320:3:89","nodeType":"YulIdentifier","src":"51320:3:89"},"nativeSrc":"51320:16:89","nodeType":"YulFunctionCall","src":"51320:16:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"51280:31:89","nodeType":"YulIdentifier","src":"51280:31:89"},"nativeSrc":"51280:57:89","nodeType":"YulFunctionCall","src":"51280:57:89"},"variables":[{"name":"memberValue0_4","nativeSrc":"51246:14:89","nodeType":"YulTypedName","src":"51246:14:89","type":""},{"name":"memberValue1_2","nativeSrc":"51262:14:89","nodeType":"YulTypedName","src":"51262:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"51357:9:89","nodeType":"YulIdentifier","src":"51357:9:89"},{"kind":"number","nativeSrc":"51368:3:89","nodeType":"YulLiteral","src":"51368:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"51353:3:89","nodeType":"YulIdentifier","src":"51353:3:89"},"nativeSrc":"51353:19:89","nodeType":"YulFunctionCall","src":"51353:19:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"51382:6:89","nodeType":"YulIdentifier","src":"51382:6:89"},{"name":"headStart","nativeSrc":"51390:9:89","nodeType":"YulIdentifier","src":"51390:9:89"}],"functionName":{"name":"sub","nativeSrc":"51378:3:89","nodeType":"YulIdentifier","src":"51378:3:89"},"nativeSrc":"51378:22:89","nodeType":"YulFunctionCall","src":"51378:22:89"},{"arguments":[{"kind":"number","nativeSrc":"51406:2:89","nodeType":"YulLiteral","src":"51406:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"51402:3:89","nodeType":"YulIdentifier","src":"51402:3:89"},"nativeSrc":"51402:7:89","nodeType":"YulFunctionCall","src":"51402:7:89"}],"functionName":{"name":"add","nativeSrc":"51374:3:89","nodeType":"YulIdentifier","src":"51374:3:89"},"nativeSrc":"51374:36:89","nodeType":"YulFunctionCall","src":"51374:36:89"}],"functionName":{"name":"mstore","nativeSrc":"51346:6:89","nodeType":"YulIdentifier","src":"51346:6:89"},"nativeSrc":"51346:65:89","nodeType":"YulFunctionCall","src":"51346:65:89"},"nativeSrc":"51346:65:89","nodeType":"YulExpressionStatement","src":"51346:65:89"},{"nativeSrc":"51420:79:89","nodeType":"YulVariableDeclaration","src":"51420:79:89","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"51460:14:89","nodeType":"YulIdentifier","src":"51460:14:89"},{"name":"memberValue1_2","nativeSrc":"51476:14:89","nodeType":"YulIdentifier","src":"51476:14:89"},{"name":"tail_2","nativeSrc":"51492:6:89","nodeType":"YulIdentifier","src":"51492:6:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"51434:25:89","nodeType":"YulIdentifier","src":"51434:25:89"},"nativeSrc":"51434:65:89","nodeType":"YulFunctionCall","src":"51434:65:89"},"variables":[{"name":"tail_3","nativeSrc":"51424:6:89","nodeType":"YulTypedName","src":"51424:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"51551:6:89","nodeType":"YulIdentifier","src":"51551:6:89"},{"kind":"number","nativeSrc":"51559:3:89","nodeType":"YulLiteral","src":"51559:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"51547:3:89","nodeType":"YulIdentifier","src":"51547:3:89"},"nativeSrc":"51547:16:89","nodeType":"YulFunctionCall","src":"51547:16:89"},{"arguments":[{"name":"headStart","nativeSrc":"51569:9:89","nodeType":"YulIdentifier","src":"51569:9:89"},{"kind":"number","nativeSrc":"51580:3:89","nodeType":"YulLiteral","src":"51580:3:89","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"51565:3:89","nodeType":"YulIdentifier","src":"51565:3:89"},"nativeSrc":"51565:19:89","nodeType":"YulFunctionCall","src":"51565:19:89"}],"functionName":{"name":"abi_encode_struct_TokenAmount_calldata","nativeSrc":"51508:38:89","nodeType":"YulIdentifier","src":"51508:38:89"},"nativeSrc":"51508:77:89","nodeType":"YulFunctionCall","src":"51508:77:89"},"nativeSrc":"51508:77:89","nodeType":"YulExpressionStatement","src":"51508:77:89"},{"nativeSrc":"51594:106:89","nodeType":"YulVariableDeclaration","src":"51594:106:89","value":{"arguments":[{"name":"value0","nativeSrc":"51675:6:89","nodeType":"YulIdentifier","src":"51675:6:89"},{"arguments":[{"name":"value0","nativeSrc":"51687:6:89","nodeType":"YulIdentifier","src":"51687:6:89"},{"kind":"number","nativeSrc":"51695:3:89","nodeType":"YulLiteral","src":"51695:3:89","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"51683:3:89","nodeType":"YulIdentifier","src":"51683:3:89"},"nativeSrc":"51683:16:89","nodeType":"YulFunctionCall","src":"51683:16:89"}],"functionName":{"name":"calldata_access_array_address_dyn_calldata","nativeSrc":"51632:42:89","nodeType":"YulIdentifier","src":"51632:42:89"},"nativeSrc":"51632:68:89","nodeType":"YulFunctionCall","src":"51632:68:89"},"variables":[{"name":"memberValue0_5","nativeSrc":"51598:14:89","nodeType":"YulTypedName","src":"51598:14:89","type":""},{"name":"memberValue1_3","nativeSrc":"51614:14:89","nodeType":"YulTypedName","src":"51614:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"51720:9:89","nodeType":"YulIdentifier","src":"51720:9:89"},{"kind":"number","nativeSrc":"51731:3:89","nodeType":"YulLiteral","src":"51731:3:89","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"51716:3:89","nodeType":"YulIdentifier","src":"51716:3:89"},"nativeSrc":"51716:19:89","nodeType":"YulFunctionCall","src":"51716:19:89"},{"arguments":[{"arguments":[{"name":"tail_3","nativeSrc":"51745:6:89","nodeType":"YulIdentifier","src":"51745:6:89"},{"name":"headStart","nativeSrc":"51753:9:89","nodeType":"YulIdentifier","src":"51753:9:89"}],"functionName":{"name":"sub","nativeSrc":"51741:3:89","nodeType":"YulIdentifier","src":"51741:3:89"},"nativeSrc":"51741:22:89","nodeType":"YulFunctionCall","src":"51741:22:89"},{"arguments":[{"kind":"number","nativeSrc":"51769:2:89","nodeType":"YulLiteral","src":"51769:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"51765:3:89","nodeType":"YulIdentifier","src":"51765:3:89"},"nativeSrc":"51765:7:89","nodeType":"YulFunctionCall","src":"51765:7:89"}],"functionName":{"name":"add","nativeSrc":"51737:3:89","nodeType":"YulIdentifier","src":"51737:3:89"},"nativeSrc":"51737:36:89","nodeType":"YulFunctionCall","src":"51737:36:89"}],"functionName":{"name":"mstore","nativeSrc":"51709:6:89","nodeType":"YulIdentifier","src":"51709:6:89"},"nativeSrc":"51709:65:89","nodeType":"YulFunctionCall","src":"51709:65:89"},"nativeSrc":"51709:65:89","nodeType":"YulExpressionStatement","src":"51709:65:89"},{"nativeSrc":"51783:91:89","nodeType":"YulVariableDeclaration","src":"51783:91:89","value":{"arguments":[{"name":"memberValue0_5","nativeSrc":"51835:14:89","nodeType":"YulIdentifier","src":"51835:14:89"},{"name":"memberValue1_3","nativeSrc":"51851:14:89","nodeType":"YulIdentifier","src":"51851:14:89"},{"name":"tail_3","nativeSrc":"51867:6:89","nodeType":"YulIdentifier","src":"51867:6:89"}],"functionName":{"name":"abi_encode_array_address_dyn_calldata","nativeSrc":"51797:37:89","nodeType":"YulIdentifier","src":"51797:37:89"},"nativeSrc":"51797:77:89","nodeType":"YulFunctionCall","src":"51797:77:89"},"variables":[{"name":"tail_4","nativeSrc":"51787:6:89","nodeType":"YulTypedName","src":"51787:6:89","type":""}]},{"nativeSrc":"51883:129:89","nodeType":"YulVariableDeclaration","src":"51883:129:89","value":{"arguments":[{"name":"value0","nativeSrc":"51984:6:89","nodeType":"YulIdentifier","src":"51984:6:89"},{"arguments":[{"name":"value0","nativeSrc":"51996:6:89","nodeType":"YulIdentifier","src":"51996:6:89"},{"kind":"number","nativeSrc":"52004:6:89","nodeType":"YulLiteral","src":"52004:6:89","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"51992:3:89","nodeType":"YulIdentifier","src":"51992:3:89"},"nativeSrc":"51992:19:89","nodeType":"YulFunctionCall","src":"51992:19:89"}],"functionName":{"name":"calldata_access_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"51921:62:89","nodeType":"YulIdentifier","src":"51921:62:89"},"nativeSrc":"51921:91:89","nodeType":"YulFunctionCall","src":"51921:91:89"},"variables":[{"name":"memberValue0_6","nativeSrc":"51887:14:89","nodeType":"YulTypedName","src":"51887:14:89","type":""},{"name":"memberValue1_4","nativeSrc":"51903:14:89","nodeType":"YulTypedName","src":"51903:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"52032:9:89","nodeType":"YulIdentifier","src":"52032:9:89"},{"kind":"number","nativeSrc":"52043:3:89","nodeType":"YulLiteral","src":"52043:3:89","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"52028:3:89","nodeType":"YulIdentifier","src":"52028:3:89"},"nativeSrc":"52028:19:89","nodeType":"YulFunctionCall","src":"52028:19:89"},{"arguments":[{"arguments":[{"name":"tail_4","nativeSrc":"52057:6:89","nodeType":"YulIdentifier","src":"52057:6:89"},{"name":"headStart","nativeSrc":"52065:9:89","nodeType":"YulIdentifier","src":"52065:9:89"}],"functionName":{"name":"sub","nativeSrc":"52053:3:89","nodeType":"YulIdentifier","src":"52053:3:89"},"nativeSrc":"52053:22:89","nodeType":"YulFunctionCall","src":"52053:22:89"},{"arguments":[{"kind":"number","nativeSrc":"52081:2:89","nodeType":"YulLiteral","src":"52081:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"52077:3:89","nodeType":"YulIdentifier","src":"52077:3:89"},"nativeSrc":"52077:7:89","nodeType":"YulFunctionCall","src":"52077:7:89"}],"functionName":{"name":"add","nativeSrc":"52049:3:89","nodeType":"YulIdentifier","src":"52049:3:89"},"nativeSrc":"52049:36:89","nodeType":"YulFunctionCall","src":"52049:36:89"}],"functionName":{"name":"mstore","nativeSrc":"52021:6:89","nodeType":"YulIdentifier","src":"52021:6:89"},"nativeSrc":"52021:65:89","nodeType":"YulFunctionCall","src":"52021:65:89"},"nativeSrc":"52021:65:89","nodeType":"YulExpressionStatement","src":"52021:65:89"},{"nativeSrc":"52095:111:89","nodeType":"YulVariableDeclaration","src":"52095:111:89","value":{"arguments":[{"name":"memberValue0_6","nativeSrc":"52167:14:89","nodeType":"YulIdentifier","src":"52167:14:89"},{"name":"memberValue1_4","nativeSrc":"52183:14:89","nodeType":"YulIdentifier","src":"52183:14:89"},{"name":"tail_4","nativeSrc":"52199:6:89","nodeType":"YulIdentifier","src":"52199:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"52109:57:89","nodeType":"YulIdentifier","src":"52109:57:89"},"nativeSrc":"52109:97:89","nodeType":"YulFunctionCall","src":"52109:97:89"},"variables":[{"name":"tail_5","nativeSrc":"52099:6:89","nodeType":"YulTypedName","src":"52099:6:89","type":""}]},{"nativeSrc":"52215:126:89","nodeType":"YulVariableDeclaration","src":"52215:126:89","value":{"arguments":[{"name":"value0","nativeSrc":"52316:6:89","nodeType":"YulIdentifier","src":"52316:6:89"},{"arguments":[{"name":"value0","nativeSrc":"52328:6:89","nodeType":"YulIdentifier","src":"52328:6:89"},{"kind":"number","nativeSrc":"52336:3:89","nodeType":"YulLiteral","src":"52336:3:89","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"52324:3:89","nodeType":"YulIdentifier","src":"52324:3:89"},"nativeSrc":"52324:16:89","nodeType":"YulFunctionCall","src":"52324:16:89"}],"functionName":{"name":"calldata_access_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"52253:62:89","nodeType":"YulIdentifier","src":"52253:62:89"},"nativeSrc":"52253:88:89","nodeType":"YulFunctionCall","src":"52253:88:89"},"variables":[{"name":"memberValue0_7","nativeSrc":"52219:14:89","nodeType":"YulTypedName","src":"52219:14:89","type":""},{"name":"memberValue1_5","nativeSrc":"52235:14:89","nodeType":"YulTypedName","src":"52235:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"52361:9:89","nodeType":"YulIdentifier","src":"52361:9:89"},{"kind":"number","nativeSrc":"52372:3:89","nodeType":"YulLiteral","src":"52372:3:89","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"52357:3:89","nodeType":"YulIdentifier","src":"52357:3:89"},"nativeSrc":"52357:19:89","nodeType":"YulFunctionCall","src":"52357:19:89"},{"arguments":[{"arguments":[{"name":"tail_5","nativeSrc":"52386:6:89","nodeType":"YulIdentifier","src":"52386:6:89"},{"name":"headStart","nativeSrc":"52394:9:89","nodeType":"YulIdentifier","src":"52394:9:89"}],"functionName":{"name":"sub","nativeSrc":"52382:3:89","nodeType":"YulIdentifier","src":"52382:3:89"},"nativeSrc":"52382:22:89","nodeType":"YulFunctionCall","src":"52382:22:89"},{"arguments":[{"kind":"number","nativeSrc":"52410:2:89","nodeType":"YulLiteral","src":"52410:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"52406:3:89","nodeType":"YulIdentifier","src":"52406:3:89"},"nativeSrc":"52406:7:89","nodeType":"YulFunctionCall","src":"52406:7:89"}],"functionName":{"name":"add","nativeSrc":"52378:3:89","nodeType":"YulIdentifier","src":"52378:3:89"},"nativeSrc":"52378:36:89","nodeType":"YulFunctionCall","src":"52378:36:89"}],"functionName":{"name":"mstore","nativeSrc":"52350:6:89","nodeType":"YulIdentifier","src":"52350:6:89"},"nativeSrc":"52350:65:89","nodeType":"YulFunctionCall","src":"52350:65:89"},"nativeSrc":"52350:65:89","nodeType":"YulExpressionStatement","src":"52350:65:89"},{"nativeSrc":"52424:111:89","nodeType":"YulVariableDeclaration","src":"52424:111:89","value":{"arguments":[{"name":"memberValue0_7","nativeSrc":"52496:14:89","nodeType":"YulIdentifier","src":"52496:14:89"},{"name":"memberValue1_5","nativeSrc":"52512:14:89","nodeType":"YulIdentifier","src":"52512:14:89"},{"name":"tail_5","nativeSrc":"52528:6:89","nodeType":"YulIdentifier","src":"52528:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"52438:57:89","nodeType":"YulIdentifier","src":"52438:57:89"},"nativeSrc":"52438:97:89","nodeType":"YulFunctionCall","src":"52438:97:89"},"variables":[{"name":"tail_6","nativeSrc":"52428:6:89","nodeType":"YulTypedName","src":"52428:6:89","type":""}]},{"nativeSrc":"52544:106:89","nodeType":"YulVariableDeclaration","src":"52544:106:89","value":{"arguments":[{"name":"value0","nativeSrc":"52625:6:89","nodeType":"YulIdentifier","src":"52625:6:89"},{"arguments":[{"name":"value0","nativeSrc":"52637:6:89","nodeType":"YulIdentifier","src":"52637:6:89"},{"kind":"number","nativeSrc":"52645:3:89","nodeType":"YulLiteral","src":"52645:3:89","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"52633:3:89","nodeType":"YulIdentifier","src":"52633:3:89"},"nativeSrc":"52633:16:89","nodeType":"YulFunctionCall","src":"52633:16:89"}],"functionName":{"name":"calldata_access_array_address_dyn_calldata","nativeSrc":"52582:42:89","nodeType":"YulIdentifier","src":"52582:42:89"},"nativeSrc":"52582:68:89","nodeType":"YulFunctionCall","src":"52582:68:89"},"variables":[{"name":"memberValue0_8","nativeSrc":"52548:14:89","nodeType":"YulTypedName","src":"52548:14:89","type":""},{"name":"memberValue1_6","nativeSrc":"52564:14:89","nodeType":"YulTypedName","src":"52564:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"52670:9:89","nodeType":"YulIdentifier","src":"52670:9:89"},{"kind":"number","nativeSrc":"52681:3:89","nodeType":"YulLiteral","src":"52681:3:89","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"52666:3:89","nodeType":"YulIdentifier","src":"52666:3:89"},"nativeSrc":"52666:19:89","nodeType":"YulFunctionCall","src":"52666:19:89"},{"arguments":[{"arguments":[{"name":"tail_6","nativeSrc":"52695:6:89","nodeType":"YulIdentifier","src":"52695:6:89"},{"name":"headStart","nativeSrc":"52703:9:89","nodeType":"YulIdentifier","src":"52703:9:89"}],"functionName":{"name":"sub","nativeSrc":"52691:3:89","nodeType":"YulIdentifier","src":"52691:3:89"},"nativeSrc":"52691:22:89","nodeType":"YulFunctionCall","src":"52691:22:89"},{"arguments":[{"kind":"number","nativeSrc":"52719:2:89","nodeType":"YulLiteral","src":"52719:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"52715:3:89","nodeType":"YulIdentifier","src":"52715:3:89"},"nativeSrc":"52715:7:89","nodeType":"YulFunctionCall","src":"52715:7:89"}],"functionName":{"name":"add","nativeSrc":"52687:3:89","nodeType":"YulIdentifier","src":"52687:3:89"},"nativeSrc":"52687:36:89","nodeType":"YulFunctionCall","src":"52687:36:89"}],"functionName":{"name":"mstore","nativeSrc":"52659:6:89","nodeType":"YulIdentifier","src":"52659:6:89"},"nativeSrc":"52659:65:89","nodeType":"YulFunctionCall","src":"52659:65:89"},"nativeSrc":"52659:65:89","nodeType":"YulExpressionStatement","src":"52659:65:89"},{"nativeSrc":"52733:109:89","nodeType":"YulVariableDeclaration","src":"52733:109:89","value":{"arguments":[{"name":"memberValue0_8","nativeSrc":"52803:14:89","nodeType":"YulIdentifier","src":"52803:14:89"},{"name":"memberValue1_6","nativeSrc":"52819:14:89","nodeType":"YulIdentifier","src":"52819:14:89"},{"name":"tail_6","nativeSrc":"52835:6:89","nodeType":"YulIdentifier","src":"52835:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenInfo_calldata_dyn_calldata","nativeSrc":"52747:55:89","nodeType":"YulIdentifier","src":"52747:55:89"},"nativeSrc":"52747:95:89","nodeType":"YulFunctionCall","src":"52747:95:89"},"variables":[{"name":"tail_7","nativeSrc":"52737:6:89","nodeType":"YulTypedName","src":"52737:6:89","type":""}]},{"nativeSrc":"52851:124:89","nodeType":"YulVariableDeclaration","src":"52851:124:89","value":{"arguments":[{"name":"value0","nativeSrc":"52950:6:89","nodeType":"YulIdentifier","src":"52950:6:89"},{"arguments":[{"name":"value0","nativeSrc":"52962:6:89","nodeType":"YulIdentifier","src":"52962:6:89"},{"kind":"number","nativeSrc":"52970:3:89","nodeType":"YulLiteral","src":"52970:3:89","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"52958:3:89","nodeType":"YulIdentifier","src":"52958:3:89"},"nativeSrc":"52958:16:89","nodeType":"YulFunctionCall","src":"52958:16:89"}],"functionName":{"name":"calldata_access_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"52889:60:89","nodeType":"YulIdentifier","src":"52889:60:89"},"nativeSrc":"52889:86:89","nodeType":"YulFunctionCall","src":"52889:86:89"},"variables":[{"name":"memberValue0_9","nativeSrc":"52855:14:89","nodeType":"YulTypedName","src":"52855:14:89","type":""},{"name":"memberValue1_7","nativeSrc":"52871:14:89","nodeType":"YulTypedName","src":"52871:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"52995:9:89","nodeType":"YulIdentifier","src":"52995:9:89"},{"kind":"number","nativeSrc":"53006:3:89","nodeType":"YulLiteral","src":"53006:3:89","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"52991:3:89","nodeType":"YulIdentifier","src":"52991:3:89"},"nativeSrc":"52991:19:89","nodeType":"YulFunctionCall","src":"52991:19:89"},{"arguments":[{"arguments":[{"name":"tail_7","nativeSrc":"53020:6:89","nodeType":"YulIdentifier","src":"53020:6:89"},{"name":"headStart","nativeSrc":"53028:9:89","nodeType":"YulIdentifier","src":"53028:9:89"}],"functionName":{"name":"sub","nativeSrc":"53016:3:89","nodeType":"YulIdentifier","src":"53016:3:89"},"nativeSrc":"53016:22:89","nodeType":"YulFunctionCall","src":"53016:22:89"},{"arguments":[{"kind":"number","nativeSrc":"53044:2:89","nodeType":"YulLiteral","src":"53044:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"53040:3:89","nodeType":"YulIdentifier","src":"53040:3:89"},"nativeSrc":"53040:7:89","nodeType":"YulFunctionCall","src":"53040:7:89"}],"functionName":{"name":"add","nativeSrc":"53012:3:89","nodeType":"YulIdentifier","src":"53012:3:89"},"nativeSrc":"53012:36:89","nodeType":"YulFunctionCall","src":"53012:36:89"}],"functionName":{"name":"mstore","nativeSrc":"52984:6:89","nodeType":"YulIdentifier","src":"52984:6:89"},"nativeSrc":"52984:65:89","nodeType":"YulFunctionCall","src":"52984:65:89"},"nativeSrc":"52984:65:89","nodeType":"YulExpressionStatement","src":"52984:65:89"},{"nativeSrc":"53058:109:89","nodeType":"YulVariableDeclaration","src":"53058:109:89","value":{"arguments":[{"name":"memberValue0_9","nativeSrc":"53128:14:89","nodeType":"YulIdentifier","src":"53128:14:89"},{"name":"memberValue1_7","nativeSrc":"53144:14:89","nodeType":"YulIdentifier","src":"53144:14:89"},{"name":"tail_7","nativeSrc":"53160:6:89","nodeType":"YulIdentifier","src":"53160:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"53072:55:89","nodeType":"YulIdentifier","src":"53072:55:89"},"nativeSrc":"53072:95:89","nodeType":"YulFunctionCall","src":"53072:95:89"},"variables":[{"name":"tail_8","nativeSrc":"53062:6:89","nodeType":"YulTypedName","src":"53062:6:89","type":""}]},{"nativeSrc":"53176:125:89","nodeType":"YulVariableDeclaration","src":"53176:125:89","value":{"arguments":[{"name":"value0","nativeSrc":"53276:6:89","nodeType":"YulIdentifier","src":"53276:6:89"},{"arguments":[{"name":"value0","nativeSrc":"53288:6:89","nodeType":"YulIdentifier","src":"53288:6:89"},{"kind":"number","nativeSrc":"53296:3:89","nodeType":"YulLiteral","src":"53296:3:89","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"53284:3:89","nodeType":"YulIdentifier","src":"53284:3:89"},"nativeSrc":"53284:16:89","nodeType":"YulFunctionCall","src":"53284:16:89"}],"functionName":{"name":"calldata_access_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"53215:60:89","nodeType":"YulIdentifier","src":"53215:60:89"},"nativeSrc":"53215:86:89","nodeType":"YulFunctionCall","src":"53215:86:89"},"variables":[{"name":"memberValue0_10","nativeSrc":"53180:15:89","nodeType":"YulTypedName","src":"53180:15:89","type":""},{"name":"memberValue1_8","nativeSrc":"53197:14:89","nodeType":"YulTypedName","src":"53197:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"53321:9:89","nodeType":"YulIdentifier","src":"53321:9:89"},{"kind":"number","nativeSrc":"53332:6:89","nodeType":"YulLiteral","src":"53332:6:89","type":"","value":"0x0220"}],"functionName":{"name":"add","nativeSrc":"53317:3:89","nodeType":"YulIdentifier","src":"53317:3:89"},"nativeSrc":"53317:22:89","nodeType":"YulFunctionCall","src":"53317:22:89"},{"arguments":[{"arguments":[{"name":"tail_8","nativeSrc":"53349:6:89","nodeType":"YulIdentifier","src":"53349:6:89"},{"name":"headStart","nativeSrc":"53357:9:89","nodeType":"YulIdentifier","src":"53357:9:89"}],"functionName":{"name":"sub","nativeSrc":"53345:3:89","nodeType":"YulIdentifier","src":"53345:3:89"},"nativeSrc":"53345:22:89","nodeType":"YulFunctionCall","src":"53345:22:89"},{"arguments":[{"kind":"number","nativeSrc":"53373:2:89","nodeType":"YulLiteral","src":"53373:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"53369:3:89","nodeType":"YulIdentifier","src":"53369:3:89"},"nativeSrc":"53369:7:89","nodeType":"YulFunctionCall","src":"53369:7:89"}],"functionName":{"name":"add","nativeSrc":"53341:3:89","nodeType":"YulIdentifier","src":"53341:3:89"},"nativeSrc":"53341:36:89","nodeType":"YulFunctionCall","src":"53341:36:89"}],"functionName":{"name":"mstore","nativeSrc":"53310:6:89","nodeType":"YulIdentifier","src":"53310:6:89"},"nativeSrc":"53310:68:89","nodeType":"YulFunctionCall","src":"53310:68:89"},"nativeSrc":"53310:68:89","nodeType":"YulExpressionStatement","src":"53310:68:89"},{"nativeSrc":"53387:110:89","nodeType":"YulVariableDeclaration","src":"53387:110:89","value":{"arguments":[{"name":"memberValue0_10","nativeSrc":"53457:15:89","nodeType":"YulIdentifier","src":"53457:15:89"},{"name":"memberValue1_8","nativeSrc":"53474:14:89","nodeType":"YulIdentifier","src":"53474:14:89"},{"name":"tail_8","nativeSrc":"53490:6:89","nodeType":"YulIdentifier","src":"53490:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"53401:55:89","nodeType":"YulIdentifier","src":"53401:55:89"},"nativeSrc":"53401:96:89","nodeType":"YulFunctionCall","src":"53401:96:89"},"variables":[{"name":"tail_9","nativeSrc":"53391:6:89","nodeType":"YulTypedName","src":"53391:6:89","type":""}]},{"nativeSrc":"53506:107:89","nodeType":"YulVariableDeclaration","src":"53506:107:89","value":{"arguments":[{"name":"value0","nativeSrc":"53588:6:89","nodeType":"YulIdentifier","src":"53588:6:89"},{"arguments":[{"name":"value0","nativeSrc":"53600:6:89","nodeType":"YulIdentifier","src":"53600:6:89"},{"kind":"number","nativeSrc":"53608:3:89","nodeType":"YulLiteral","src":"53608:3:89","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"53596:3:89","nodeType":"YulIdentifier","src":"53596:3:89"},"nativeSrc":"53596:16:89","nodeType":"YulFunctionCall","src":"53596:16:89"}],"functionName":{"name":"calldata_access_array_address_dyn_calldata","nativeSrc":"53545:42:89","nodeType":"YulIdentifier","src":"53545:42:89"},"nativeSrc":"53545:68:89","nodeType":"YulFunctionCall","src":"53545:68:89"},"variables":[{"name":"memberValue0_11","nativeSrc":"53510:15:89","nodeType":"YulTypedName","src":"53510:15:89","type":""},{"name":"memberValue1_9","nativeSrc":"53527:14:89","nodeType":"YulTypedName","src":"53527:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"53633:9:89","nodeType":"YulIdentifier","src":"53633:9:89"},{"kind":"number","nativeSrc":"53644:3:89","nodeType":"YulLiteral","src":"53644:3:89","type":"","value":"576"}],"functionName":{"name":"add","nativeSrc":"53629:3:89","nodeType":"YulIdentifier","src":"53629:3:89"},"nativeSrc":"53629:19:89","nodeType":"YulFunctionCall","src":"53629:19:89"},{"arguments":[{"arguments":[{"name":"tail_9","nativeSrc":"53658:6:89","nodeType":"YulIdentifier","src":"53658:6:89"},{"name":"headStart","nativeSrc":"53666:9:89","nodeType":"YulIdentifier","src":"53666:9:89"}],"functionName":{"name":"sub","nativeSrc":"53654:3:89","nodeType":"YulIdentifier","src":"53654:3:89"},"nativeSrc":"53654:22:89","nodeType":"YulFunctionCall","src":"53654:22:89"},{"arguments":[{"kind":"number","nativeSrc":"53682:2:89","nodeType":"YulLiteral","src":"53682:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"53678:3:89","nodeType":"YulIdentifier","src":"53678:3:89"},"nativeSrc":"53678:7:89","nodeType":"YulFunctionCall","src":"53678:7:89"}],"functionName":{"name":"add","nativeSrc":"53650:3:89","nodeType":"YulIdentifier","src":"53650:3:89"},"nativeSrc":"53650:36:89","nodeType":"YulFunctionCall","src":"53650:36:89"}],"functionName":{"name":"mstore","nativeSrc":"53622:6:89","nodeType":"YulIdentifier","src":"53622:6:89"},"nativeSrc":"53622:65:89","nodeType":"YulFunctionCall","src":"53622:65:89"},"nativeSrc":"53622:65:89","nodeType":"YulExpressionStatement","src":"53622:65:89"},{"nativeSrc":"53696:105:89","nodeType":"YulVariableDeclaration","src":"53696:105:89","value":{"arguments":[{"name":"memberValue0_11","nativeSrc":"53761:15:89","nodeType":"YulIdentifier","src":"53761:15:89"},{"name":"memberValue1_9","nativeSrc":"53778:14:89","nodeType":"YulIdentifier","src":"53778:14:89"},{"name":"tail_9","nativeSrc":"53794:6:89","nodeType":"YulIdentifier","src":"53794:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTInfo_calldata_dyn_calldata","nativeSrc":"53707:53:89","nodeType":"YulIdentifier","src":"53707:53:89"},"nativeSrc":"53707:94:89","nodeType":"YulFunctionCall","src":"53707:94:89"},"variables":[{"name":"end","nativeSrc":"53700:3:89","nodeType":"YulTypedName","src":"53700:3:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"53821:9:89","nodeType":"YulIdentifier","src":"53821:9:89"},{"kind":"number","nativeSrc":"53832:4:89","nodeType":"YulLiteral","src":"53832:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"53817:3:89","nodeType":"YulIdentifier","src":"53817:3:89"},"nativeSrc":"53817:20:89","nodeType":"YulFunctionCall","src":"53817:20:89"},{"arguments":[{"name":"end","nativeSrc":"53843:3:89","nodeType":"YulIdentifier","src":"53843:3:89"},{"name":"headStart","nativeSrc":"53848:9:89","nodeType":"YulIdentifier","src":"53848:9:89"}],"functionName":{"name":"sub","nativeSrc":"53839:3:89","nodeType":"YulIdentifier","src":"53839:3:89"},"nativeSrc":"53839:19:89","nodeType":"YulFunctionCall","src":"53839:19:89"}],"functionName":{"name":"mstore","nativeSrc":"53810:6:89","nodeType":"YulIdentifier","src":"53810:6:89"},"nativeSrc":"53810:49:89","nodeType":"YulFunctionCall","src":"53810:49:89"},"nativeSrc":"53810:49:89","nodeType":"YulExpressionStatement","src":"53810:49:89"},{"nativeSrc":"53868:54:89","nodeType":"YulAssignment","src":"53868:54:89","value":{"arguments":[{"name":"value1","nativeSrc":"53902:6:89","nodeType":"YulIdentifier","src":"53902:6:89"},{"name":"value2","nativeSrc":"53910:6:89","nodeType":"YulIdentifier","src":"53910:6:89"},{"name":"end","nativeSrc":"53918:3:89","nodeType":"YulIdentifier","src":"53918:3:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"53876:25:89","nodeType":"YulIdentifier","src":"53876:25:89"},"nativeSrc":"53876:46:89","nodeType":"YulFunctionCall","src":"53876:46:89"},"variableNames":[{"name":"tail","nativeSrc":"53868:4:89","nodeType":"YulIdentifier","src":"53868:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_UnionInMessage_$18197_calldata_ptr_t_bytes_calldata_ptr__to_t_struct$_UnionInMessage_$18197_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"49905:4023:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50083:9:89","nodeType":"YulTypedName","src":"50083:9:89","type":""},{"name":"value2","nativeSrc":"50094:6:89","nodeType":"YulTypedName","src":"50094:6:89","type":""},{"name":"value1","nativeSrc":"50102:6:89","nodeType":"YulTypedName","src":"50102:6:89","type":""},{"name":"value0","nativeSrc":"50110:6:89","nodeType":"YulTypedName","src":"50110:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"50121:4:89","nodeType":"YulTypedName","src":"50121:4:89","type":""}],"src":"49905:4023:89"},{"body":{"nativeSrc":"54030:65:89","nodeType":"YulBlock","src":"54030:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"54047:1:89","nodeType":"YulLiteral","src":"54047:1:89","type":"","value":"0"},{"name":"ptr","nativeSrc":"54050:3:89","nodeType":"YulIdentifier","src":"54050:3:89"}],"functionName":{"name":"mstore","nativeSrc":"54040:6:89","nodeType":"YulIdentifier","src":"54040:6:89"},"nativeSrc":"54040:14:89","nodeType":"YulFunctionCall","src":"54040:14:89"},"nativeSrc":"54040:14:89","nodeType":"YulExpressionStatement","src":"54040:14:89"},{"nativeSrc":"54063:26:89","nodeType":"YulAssignment","src":"54063:26:89","value":{"arguments":[{"kind":"number","nativeSrc":"54081:1:89","nodeType":"YulLiteral","src":"54081:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"54084:4:89","nodeType":"YulLiteral","src":"54084:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"54071:9:89","nodeType":"YulIdentifier","src":"54071:9:89"},"nativeSrc":"54071:18:89","nodeType":"YulFunctionCall","src":"54071:18:89"},"variableNames":[{"name":"data","nativeSrc":"54063:4:89","nodeType":"YulIdentifier","src":"54063:4:89"}]}]},"name":"array_dataslot_array_struct_OutMessageProcessedEventStruct_storage_dyn","nativeSrc":"53933:162:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"54013:3:89","nodeType":"YulTypedName","src":"54013:3:89","type":""}],"returnVariables":[{"name":"data","nativeSrc":"54021:4:89","nodeType":"YulTypedName","src":"54021:4:89","type":""}],"src":"53933:162:89"},{"body":{"nativeSrc":"54175:60:89","nodeType":"YulBlock","src":"54175:60:89","statements":[{"nativeSrc":"54185:44:89","nodeType":"YulAssignment","src":"54185:44:89","value":{"arguments":[{"name":"slot_value","nativeSrc":"54198:10:89","nodeType":"YulIdentifier","src":"54198:10:89"},{"kind":"number","nativeSrc":"54210:18:89","nodeType":"YulLiteral","src":"54210:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"54194:3:89","nodeType":"YulIdentifier","src":"54194:3:89"},"nativeSrc":"54194:35:89","nodeType":"YulFunctionCall","src":"54194:35:89"},"variableNames":[{"name":"value","nativeSrc":"54185:5:89","nodeType":"YulIdentifier","src":"54185:5:89"}]}]},"name":"extract_from_storage_value_offset_uint64","nativeSrc":"54100:135:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nativeSrc":"54150:10:89","nodeType":"YulTypedName","src":"54150:10:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"54165:5:89","nodeType":"YulTypedName","src":"54165:5:89","type":""}],"src":"54100:135:89"},{"body":{"nativeSrc":"54316:61:89","nodeType":"YulBlock","src":"54316:61:89","statements":[{"nativeSrc":"54326:45:89","nodeType":"YulAssignment","src":"54326:45:89","value":{"arguments":[{"name":"slot_value","nativeSrc":"54339:10:89","nodeType":"YulIdentifier","src":"54339:10:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"54359:3:89","nodeType":"YulLiteral","src":"54359:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"54364:1:89","nodeType":"YulLiteral","src":"54364:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"54355:3:89","nodeType":"YulIdentifier","src":"54355:3:89"},"nativeSrc":"54355:11:89","nodeType":"YulFunctionCall","src":"54355:11:89"},{"kind":"number","nativeSrc":"54368:1:89","nodeType":"YulLiteral","src":"54368:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"54351:3:89","nodeType":"YulIdentifier","src":"54351:3:89"},"nativeSrc":"54351:19:89","nodeType":"YulFunctionCall","src":"54351:19:89"}],"functionName":{"name":"and","nativeSrc":"54335:3:89","nodeType":"YulIdentifier","src":"54335:3:89"},"nativeSrc":"54335:36:89","nodeType":"YulFunctionCall","src":"54335:36:89"},"variableNames":[{"name":"value","nativeSrc":"54326:5:89","nodeType":"YulIdentifier","src":"54326:5:89"}]}]},"name":"extract_from_storage_value_offset_address","nativeSrc":"54240:137:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nativeSrc":"54291:10:89","nodeType":"YulTypedName","src":"54291:10:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"54306:5:89","nodeType":"YulTypedName","src":"54306:5:89","type":""}],"src":"54240:137:89"},{"body":{"nativeSrc":"54437:325:89","nodeType":"YulBlock","src":"54437:325:89","statements":[{"nativeSrc":"54447:22:89","nodeType":"YulAssignment","src":"54447:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"54461:1:89","nodeType":"YulLiteral","src":"54461:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"54464:4:89","nodeType":"YulIdentifier","src":"54464:4:89"}],"functionName":{"name":"shr","nativeSrc":"54457:3:89","nodeType":"YulIdentifier","src":"54457:3:89"},"nativeSrc":"54457:12:89","nodeType":"YulFunctionCall","src":"54457:12:89"},"variableNames":[{"name":"length","nativeSrc":"54447:6:89","nodeType":"YulIdentifier","src":"54447:6:89"}]},{"nativeSrc":"54478:38:89","nodeType":"YulVariableDeclaration","src":"54478:38:89","value":{"arguments":[{"name":"data","nativeSrc":"54508:4:89","nodeType":"YulIdentifier","src":"54508:4:89"},{"kind":"number","nativeSrc":"54514:1:89","nodeType":"YulLiteral","src":"54514:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"54504:3:89","nodeType":"YulIdentifier","src":"54504:3:89"},"nativeSrc":"54504:12:89","nodeType":"YulFunctionCall","src":"54504:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"54482:18:89","nodeType":"YulTypedName","src":"54482:18:89","type":""}]},{"body":{"nativeSrc":"54555:31:89","nodeType":"YulBlock","src":"54555:31:89","statements":[{"nativeSrc":"54557:27:89","nodeType":"YulAssignment","src":"54557:27:89","value":{"arguments":[{"name":"length","nativeSrc":"54571:6:89","nodeType":"YulIdentifier","src":"54571:6:89"},{"kind":"number","nativeSrc":"54579:4:89","nodeType":"YulLiteral","src":"54579:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"54567:3:89","nodeType":"YulIdentifier","src":"54567:3:89"},"nativeSrc":"54567:17:89","nodeType":"YulFunctionCall","src":"54567:17:89"},"variableNames":[{"name":"length","nativeSrc":"54557:6:89","nodeType":"YulIdentifier","src":"54557:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"54535:18:89","nodeType":"YulIdentifier","src":"54535:18:89"}],"functionName":{"name":"iszero","nativeSrc":"54528:6:89","nodeType":"YulIdentifier","src":"54528:6:89"},"nativeSrc":"54528:26:89","nodeType":"YulFunctionCall","src":"54528:26:89"},"nativeSrc":"54525:61:89","nodeType":"YulIf","src":"54525:61:89"},{"body":{"nativeSrc":"54645:111:89","nodeType":"YulBlock","src":"54645:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"54666:1:89","nodeType":"YulLiteral","src":"54666:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"54673:3:89","nodeType":"YulLiteral","src":"54673:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"54678:10:89","nodeType":"YulLiteral","src":"54678:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"54669:3:89","nodeType":"YulIdentifier","src":"54669:3:89"},"nativeSrc":"54669:20:89","nodeType":"YulFunctionCall","src":"54669:20:89"}],"functionName":{"name":"mstore","nativeSrc":"54659:6:89","nodeType":"YulIdentifier","src":"54659:6:89"},"nativeSrc":"54659:31:89","nodeType":"YulFunctionCall","src":"54659:31:89"},"nativeSrc":"54659:31:89","nodeType":"YulExpressionStatement","src":"54659:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54710:1:89","nodeType":"YulLiteral","src":"54710:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"54713:4:89","nodeType":"YulLiteral","src":"54713:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"54703:6:89","nodeType":"YulIdentifier","src":"54703:6:89"},"nativeSrc":"54703:15:89","nodeType":"YulFunctionCall","src":"54703:15:89"},"nativeSrc":"54703:15:89","nodeType":"YulExpressionStatement","src":"54703:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54738:1:89","nodeType":"YulLiteral","src":"54738:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"54741:4:89","nodeType":"YulLiteral","src":"54741:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"54731:6:89","nodeType":"YulIdentifier","src":"54731:6:89"},"nativeSrc":"54731:15:89","nodeType":"YulFunctionCall","src":"54731:15:89"},"nativeSrc":"54731:15:89","nodeType":"YulExpressionStatement","src":"54731:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"54601:18:89","nodeType":"YulIdentifier","src":"54601:18:89"},{"arguments":[{"name":"length","nativeSrc":"54624:6:89","nodeType":"YulIdentifier","src":"54624:6:89"},{"kind":"number","nativeSrc":"54632:2:89","nodeType":"YulLiteral","src":"54632:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"54621:2:89","nodeType":"YulIdentifier","src":"54621:2:89"},"nativeSrc":"54621:14:89","nodeType":"YulFunctionCall","src":"54621:14:89"}],"functionName":{"name":"eq","nativeSrc":"54598:2:89","nodeType":"YulIdentifier","src":"54598:2:89"},"nativeSrc":"54598:38:89","nodeType":"YulFunctionCall","src":"54598:38:89"},"nativeSrc":"54595:161:89","nodeType":"YulIf","src":"54595:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"54382:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"54417:4:89","nodeType":"YulTypedName","src":"54417:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"54426:6:89","nodeType":"YulTypedName","src":"54426:6:89","type":""}],"src":"54382:380:89"},{"body":{"nativeSrc":"54825:681:89","nodeType":"YulBlock","src":"54825:681:89","statements":[{"nativeSrc":"54835:29:89","nodeType":"YulVariableDeclaration","src":"54835:29:89","value":{"arguments":[{"name":"value","nativeSrc":"54858:5:89","nodeType":"YulIdentifier","src":"54858:5:89"}],"functionName":{"name":"sload","nativeSrc":"54852:5:89","nodeType":"YulIdentifier","src":"54852:5:89"},"nativeSrc":"54852:12:89","nodeType":"YulFunctionCall","src":"54852:12:89"},"variables":[{"name":"slotValue","nativeSrc":"54839:9:89","nodeType":"YulTypedName","src":"54839:9:89","type":""}]},{"nativeSrc":"54873:50:89","nodeType":"YulVariableDeclaration","src":"54873:50:89","value":{"arguments":[{"name":"slotValue","nativeSrc":"54913:9:89","nodeType":"YulIdentifier","src":"54913:9:89"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"54887:25:89","nodeType":"YulIdentifier","src":"54887:25:89"},"nativeSrc":"54887:36:89","nodeType":"YulFunctionCall","src":"54887:36:89"},"variables":[{"name":"length","nativeSrc":"54877:6:89","nodeType":"YulTypedName","src":"54877:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"54939:3:89","nodeType":"YulIdentifier","src":"54939:3:89"},{"name":"length","nativeSrc":"54944:6:89","nodeType":"YulIdentifier","src":"54944:6:89"}],"functionName":{"name":"mstore","nativeSrc":"54932:6:89","nodeType":"YulIdentifier","src":"54932:6:89"},"nativeSrc":"54932:19:89","nodeType":"YulFunctionCall","src":"54932:19:89"},"nativeSrc":"54932:19:89","nodeType":"YulExpressionStatement","src":"54932:19:89"},{"cases":[{"body":{"nativeSrc":"55000:143:89","nodeType":"YulBlock","src":"55000:143:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"55025:3:89","nodeType":"YulIdentifier","src":"55025:3:89"},{"kind":"number","nativeSrc":"55030:4:89","nodeType":"YulLiteral","src":"55030:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"55021:3:89","nodeType":"YulIdentifier","src":"55021:3:89"},"nativeSrc":"55021:14:89","nodeType":"YulFunctionCall","src":"55021:14:89"},{"arguments":[{"name":"slotValue","nativeSrc":"55041:9:89","nodeType":"YulIdentifier","src":"55041:9:89"},{"arguments":[{"kind":"number","nativeSrc":"55056:3:89","nodeType":"YulLiteral","src":"55056:3:89","type":"","value":"255"}],"functionName":{"name":"not","nativeSrc":"55052:3:89","nodeType":"YulIdentifier","src":"55052:3:89"},"nativeSrc":"55052:8:89","nodeType":"YulFunctionCall","src":"55052:8:89"}],"functionName":{"name":"and","nativeSrc":"55037:3:89","nodeType":"YulIdentifier","src":"55037:3:89"},"nativeSrc":"55037:24:89","nodeType":"YulFunctionCall","src":"55037:24:89"}],"functionName":{"name":"mstore","nativeSrc":"55014:6:89","nodeType":"YulIdentifier","src":"55014:6:89"},"nativeSrc":"55014:48:89","nodeType":"YulFunctionCall","src":"55014:48:89"},"nativeSrc":"55014:48:89","nodeType":"YulExpressionStatement","src":"55014:48:89"},{"nativeSrc":"55075:58:89","nodeType":"YulAssignment","src":"55075:58:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"55090:3:89","nodeType":"YulIdentifier","src":"55090:3:89"},{"arguments":[{"kind":"number","nativeSrc":"55099:1:89","nodeType":"YulLiteral","src":"55099:1:89","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"55116:6:89","nodeType":"YulIdentifier","src":"55116:6:89"}],"functionName":{"name":"iszero","nativeSrc":"55109:6:89","nodeType":"YulIdentifier","src":"55109:6:89"},"nativeSrc":"55109:14:89","nodeType":"YulFunctionCall","src":"55109:14:89"}],"functionName":{"name":"iszero","nativeSrc":"55102:6:89","nodeType":"YulIdentifier","src":"55102:6:89"},"nativeSrc":"55102:22:89","nodeType":"YulFunctionCall","src":"55102:22:89"}],"functionName":{"name":"shl","nativeSrc":"55095:3:89","nodeType":"YulIdentifier","src":"55095:3:89"},"nativeSrc":"55095:30:89","nodeType":"YulFunctionCall","src":"55095:30:89"}],"functionName":{"name":"add","nativeSrc":"55086:3:89","nodeType":"YulIdentifier","src":"55086:3:89"},"nativeSrc":"55086:40:89","nodeType":"YulFunctionCall","src":"55086:40:89"},{"kind":"number","nativeSrc":"55128:4:89","nodeType":"YulLiteral","src":"55128:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"55082:3:89","nodeType":"YulIdentifier","src":"55082:3:89"},"nativeSrc":"55082:51:89","nodeType":"YulFunctionCall","src":"55082:51:89"},"variableNames":[{"name":"ret","nativeSrc":"55075:3:89","nodeType":"YulIdentifier","src":"55075:3:89"}]}]},"nativeSrc":"54993:150:89","nodeType":"YulCase","src":"54993:150:89","value":{"kind":"number","nativeSrc":"54998:1:89","nodeType":"YulLiteral","src":"54998:1:89","type":"","value":"0"}},{"body":{"nativeSrc":"55159:341:89","nodeType":"YulBlock","src":"55159:341:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"55180:1:89","nodeType":"YulLiteral","src":"55180:1:89","type":"","value":"0"},{"name":"value","nativeSrc":"55183:5:89","nodeType":"YulIdentifier","src":"55183:5:89"}],"functionName":{"name":"mstore","nativeSrc":"55173:6:89","nodeType":"YulIdentifier","src":"55173:6:89"},"nativeSrc":"55173:16:89","nodeType":"YulFunctionCall","src":"55173:16:89"},"nativeSrc":"55173:16:89","nodeType":"YulExpressionStatement","src":"55173:16:89"},{"nativeSrc":"55202:33:89","nodeType":"YulVariableDeclaration","src":"55202:33:89","value":{"arguments":[{"kind":"number","nativeSrc":"55227:1:89","nodeType":"YulLiteral","src":"55227:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"55230:4:89","nodeType":"YulLiteral","src":"55230:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"55217:9:89","nodeType":"YulIdentifier","src":"55217:9:89"},"nativeSrc":"55217:18:89","nodeType":"YulFunctionCall","src":"55217:18:89"},"variables":[{"name":"dataPos","nativeSrc":"55206:7:89","nodeType":"YulTypedName","src":"55206:7:89","type":""}]},{"nativeSrc":"55248:10:89","nodeType":"YulVariableDeclaration","src":"55248:10:89","value":{"kind":"number","nativeSrc":"55257:1:89","nodeType":"YulLiteral","src":"55257:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"55252:1:89","nodeType":"YulTypedName","src":"55252:1:89","type":""}]},{"body":{"nativeSrc":"55327:121:89","nodeType":"YulBlock","src":"55327:121:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"55360:3:89","nodeType":"YulIdentifier","src":"55360:3:89"},{"name":"i","nativeSrc":"55365:1:89","nodeType":"YulIdentifier","src":"55365:1:89"}],"functionName":{"name":"add","nativeSrc":"55356:3:89","nodeType":"YulIdentifier","src":"55356:3:89"},"nativeSrc":"55356:11:89","nodeType":"YulFunctionCall","src":"55356:11:89"},{"kind":"number","nativeSrc":"55369:4:89","nodeType":"YulLiteral","src":"55369:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"55352:3:89","nodeType":"YulIdentifier","src":"55352:3:89"},"nativeSrc":"55352:22:89","nodeType":"YulFunctionCall","src":"55352:22:89"},{"arguments":[{"name":"dataPos","nativeSrc":"55382:7:89","nodeType":"YulIdentifier","src":"55382:7:89"}],"functionName":{"name":"sload","nativeSrc":"55376:5:89","nodeType":"YulIdentifier","src":"55376:5:89"},"nativeSrc":"55376:14:89","nodeType":"YulFunctionCall","src":"55376:14:89"}],"functionName":{"name":"mstore","nativeSrc":"55345:6:89","nodeType":"YulIdentifier","src":"55345:6:89"},"nativeSrc":"55345:46:89","nodeType":"YulFunctionCall","src":"55345:46:89"},"nativeSrc":"55345:46:89","nodeType":"YulExpressionStatement","src":"55345:46:89"},{"nativeSrc":"55408:26:89","nodeType":"YulAssignment","src":"55408:26:89","value":{"arguments":[{"name":"dataPos","nativeSrc":"55423:7:89","nodeType":"YulIdentifier","src":"55423:7:89"},{"kind":"number","nativeSrc":"55432:1:89","nodeType":"YulLiteral","src":"55432:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"55419:3:89","nodeType":"YulIdentifier","src":"55419:3:89"},"nativeSrc":"55419:15:89","nodeType":"YulFunctionCall","src":"55419:15:89"},"variableNames":[{"name":"dataPos","nativeSrc":"55408:7:89","nodeType":"YulIdentifier","src":"55408:7:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"55282:1:89","nodeType":"YulIdentifier","src":"55282:1:89"},{"name":"length","nativeSrc":"55285:6:89","nodeType":"YulIdentifier","src":"55285:6:89"}],"functionName":{"name":"lt","nativeSrc":"55279:2:89","nodeType":"YulIdentifier","src":"55279:2:89"},"nativeSrc":"55279:13:89","nodeType":"YulFunctionCall","src":"55279:13:89"},"nativeSrc":"55271:177:89","nodeType":"YulForLoop","post":{"nativeSrc":"55293:21:89","nodeType":"YulBlock","src":"55293:21:89","statements":[{"nativeSrc":"55295:17:89","nodeType":"YulAssignment","src":"55295:17:89","value":{"arguments":[{"name":"i","nativeSrc":"55304:1:89","nodeType":"YulIdentifier","src":"55304:1:89"},{"kind":"number","nativeSrc":"55307:4:89","nodeType":"YulLiteral","src":"55307:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"55300:3:89","nodeType":"YulIdentifier","src":"55300:3:89"},"nativeSrc":"55300:12:89","nodeType":"YulFunctionCall","src":"55300:12:89"},"variableNames":[{"name":"i","nativeSrc":"55295:1:89","nodeType":"YulIdentifier","src":"55295:1:89"}]}]},"pre":{"nativeSrc":"55275:3:89","nodeType":"YulBlock","src":"55275:3:89","statements":[]},"src":"55271:177:89"},{"nativeSrc":"55461:29:89","nodeType":"YulAssignment","src":"55461:29:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"55476:3:89","nodeType":"YulIdentifier","src":"55476:3:89"},{"name":"i","nativeSrc":"55481:1:89","nodeType":"YulIdentifier","src":"55481:1:89"}],"functionName":{"name":"add","nativeSrc":"55472:3:89","nodeType":"YulIdentifier","src":"55472:3:89"},"nativeSrc":"55472:11:89","nodeType":"YulFunctionCall","src":"55472:11:89"},{"kind":"number","nativeSrc":"55485:4:89","nodeType":"YulLiteral","src":"55485:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"55468:3:89","nodeType":"YulIdentifier","src":"55468:3:89"},"nativeSrc":"55468:22:89","nodeType":"YulFunctionCall","src":"55468:22:89"},"variableNames":[{"name":"ret","nativeSrc":"55461:3:89","nodeType":"YulIdentifier","src":"55461:3:89"}]}]},"nativeSrc":"55152:348:89","nodeType":"YulCase","src":"55152:348:89","value":{"kind":"number","nativeSrc":"55157:1:89","nodeType":"YulLiteral","src":"55157:1:89","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nativeSrc":"54971:9:89","nodeType":"YulIdentifier","src":"54971:9:89"},{"kind":"number","nativeSrc":"54982:1:89","nodeType":"YulLiteral","src":"54982:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"54967:3:89","nodeType":"YulIdentifier","src":"54967:3:89"},"nativeSrc":"54967:17:89","nodeType":"YulFunctionCall","src":"54967:17:89"},"nativeSrc":"54960:540:89","nodeType":"YulSwitch","src":"54960:540:89"}]},"name":"abi_encode_string_storage","nativeSrc":"54767:739:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"54802:5:89","nodeType":"YulTypedName","src":"54802:5:89","type":""},{"name":"pos","nativeSrc":"54809:3:89","nodeType":"YulTypedName","src":"54809:3:89","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"54817:3:89","nodeType":"YulTypedName","src":"54817:3:89","type":""}],"src":"54767:739:89"},{"body":{"nativeSrc":"55579:544:89","nodeType":"YulBlock","src":"55579:544:89","statements":[{"nativeSrc":"55589:16:89","nodeType":"YulVariableDeclaration","src":"55589:16:89","value":{"name":"pos","nativeSrc":"55602:3:89","nodeType":"YulIdentifier","src":"55602:3:89"},"variables":[{"name":"pos_1","nativeSrc":"55593:5:89","nodeType":"YulTypedName","src":"55593:5:89","type":""}]},{"nativeSrc":"55614:26:89","nodeType":"YulVariableDeclaration","src":"55614:26:89","value":{"arguments":[{"name":"value","nativeSrc":"55634:5:89","nodeType":"YulIdentifier","src":"55634:5:89"}],"functionName":{"name":"sload","nativeSrc":"55628:5:89","nodeType":"YulIdentifier","src":"55628:5:89"},"nativeSrc":"55628:12:89","nodeType":"YulFunctionCall","src":"55628:12:89"},"variables":[{"name":"length","nativeSrc":"55618:6:89","nodeType":"YulTypedName","src":"55618:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"55656:3:89","nodeType":"YulIdentifier","src":"55656:3:89"},{"name":"length","nativeSrc":"55661:6:89","nodeType":"YulIdentifier","src":"55661:6:89"}],"functionName":{"name":"mstore","nativeSrc":"55649:6:89","nodeType":"YulIdentifier","src":"55649:6:89"},"nativeSrc":"55649:19:89","nodeType":"YulFunctionCall","src":"55649:19:89"},"nativeSrc":"55649:19:89","nodeType":"YulExpressionStatement","src":"55649:19:89"},{"nativeSrc":"55677:21:89","nodeType":"YulAssignment","src":"55677:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"55688:3:89","nodeType":"YulIdentifier","src":"55688:3:89"},{"kind":"number","nativeSrc":"55693:4:89","nodeType":"YulLiteral","src":"55693:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"55684:3:89","nodeType":"YulIdentifier","src":"55684:3:89"},"nativeSrc":"55684:14:89","nodeType":"YulFunctionCall","src":"55684:14:89"},"variableNames":[{"name":"pos","nativeSrc":"55677:3:89","nodeType":"YulIdentifier","src":"55677:3:89"}]},{"nativeSrc":"55707:49:89","nodeType":"YulVariableDeclaration","src":"55707:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"55727:5:89","nodeType":"YulIdentifier","src":"55727:5:89"},{"arguments":[{"kind":"number","nativeSrc":"55738:1:89","nodeType":"YulLiteral","src":"55738:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"55741:6:89","nodeType":"YulIdentifier","src":"55741:6:89"}],"functionName":{"name":"shl","nativeSrc":"55734:3:89","nodeType":"YulIdentifier","src":"55734:3:89"},"nativeSrc":"55734:14:89","nodeType":"YulFunctionCall","src":"55734:14:89"}],"functionName":{"name":"add","nativeSrc":"55723:3:89","nodeType":"YulIdentifier","src":"55723:3:89"},"nativeSrc":"55723:26:89","nodeType":"YulFunctionCall","src":"55723:26:89"},{"kind":"number","nativeSrc":"55751:4:89","nodeType":"YulLiteral","src":"55751:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"55719:3:89","nodeType":"YulIdentifier","src":"55719:3:89"},"nativeSrc":"55719:37:89","nodeType":"YulFunctionCall","src":"55719:37:89"},"variables":[{"name":"tail","nativeSrc":"55711:4:89","nodeType":"YulTypedName","src":"55711:4:89","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55772:1:89","nodeType":"YulLiteral","src":"55772:1:89","type":"","value":"0"},{"name":"value","nativeSrc":"55775:5:89","nodeType":"YulIdentifier","src":"55775:5:89"}],"functionName":{"name":"mstore","nativeSrc":"55765:6:89","nodeType":"YulIdentifier","src":"55765:6:89"},"nativeSrc":"55765:16:89","nodeType":"YulFunctionCall","src":"55765:16:89"},"nativeSrc":"55765:16:89","nodeType":"YulExpressionStatement","src":"55765:16:89"},{"nativeSrc":"55790:32:89","nodeType":"YulVariableDeclaration","src":"55790:32:89","value":{"arguments":[{"kind":"number","nativeSrc":"55814:1:89","nodeType":"YulLiteral","src":"55814:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"55817:4:89","nodeType":"YulLiteral","src":"55817:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"55804:9:89","nodeType":"YulIdentifier","src":"55804:9:89"},"nativeSrc":"55804:18:89","nodeType":"YulFunctionCall","src":"55804:18:89"},"variables":[{"name":"srcPtr","nativeSrc":"55794:6:89","nodeType":"YulTypedName","src":"55794:6:89","type":""}]},{"nativeSrc":"55831:10:89","nodeType":"YulVariableDeclaration","src":"55831:10:89","value":{"kind":"number","nativeSrc":"55840:1:89","nodeType":"YulLiteral","src":"55840:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"55835:1:89","nodeType":"YulTypedName","src":"55835:1:89","type":""}]},{"body":{"nativeSrc":"55899:198:89","nodeType":"YulBlock","src":"55899:198:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"55920:3:89","nodeType":"YulIdentifier","src":"55920:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"55933:4:89","nodeType":"YulIdentifier","src":"55933:4:89"},{"name":"pos_1","nativeSrc":"55939:5:89","nodeType":"YulIdentifier","src":"55939:5:89"}],"functionName":{"name":"sub","nativeSrc":"55929:3:89","nodeType":"YulIdentifier","src":"55929:3:89"},"nativeSrc":"55929:16:89","nodeType":"YulFunctionCall","src":"55929:16:89"},{"arguments":[{"kind":"number","nativeSrc":"55951:2:89","nodeType":"YulLiteral","src":"55951:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"55947:3:89","nodeType":"YulIdentifier","src":"55947:3:89"},"nativeSrc":"55947:7:89","nodeType":"YulFunctionCall","src":"55947:7:89"}],"functionName":{"name":"add","nativeSrc":"55925:3:89","nodeType":"YulIdentifier","src":"55925:3:89"},"nativeSrc":"55925:30:89","nodeType":"YulFunctionCall","src":"55925:30:89"}],"functionName":{"name":"mstore","nativeSrc":"55913:6:89","nodeType":"YulIdentifier","src":"55913:6:89"},"nativeSrc":"55913:43:89","nodeType":"YulFunctionCall","src":"55913:43:89"},"nativeSrc":"55913:43:89","nodeType":"YulExpressionStatement","src":"55913:43:89"},{"nativeSrc":"55969:47:89","nodeType":"YulAssignment","src":"55969:47:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"56003:6:89","nodeType":"YulIdentifier","src":"56003:6:89"},{"name":"tail","nativeSrc":"56011:4:89","nodeType":"YulIdentifier","src":"56011:4:89"}],"functionName":{"name":"abi_encode_string_storage","nativeSrc":"55977:25:89","nodeType":"YulIdentifier","src":"55977:25:89"},"nativeSrc":"55977:39:89","nodeType":"YulFunctionCall","src":"55977:39:89"},"variableNames":[{"name":"tail","nativeSrc":"55969:4:89","nodeType":"YulIdentifier","src":"55969:4:89"}]},{"nativeSrc":"56029:24:89","nodeType":"YulAssignment","src":"56029:24:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"56043:6:89","nodeType":"YulIdentifier","src":"56043:6:89"},{"kind":"number","nativeSrc":"56051:1:89","nodeType":"YulLiteral","src":"56051:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"56039:3:89","nodeType":"YulIdentifier","src":"56039:3:89"},"nativeSrc":"56039:14:89","nodeType":"YulFunctionCall","src":"56039:14:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"56029:6:89","nodeType":"YulIdentifier","src":"56029:6:89"}]},{"nativeSrc":"56066:21:89","nodeType":"YulAssignment","src":"56066:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"56077:3:89","nodeType":"YulIdentifier","src":"56077:3:89"},{"kind":"number","nativeSrc":"56082:4:89","nodeType":"YulLiteral","src":"56082:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"56073:3:89","nodeType":"YulIdentifier","src":"56073:3:89"},"nativeSrc":"56073:14:89","nodeType":"YulFunctionCall","src":"56073:14:89"},"variableNames":[{"name":"pos","nativeSrc":"56066:3:89","nodeType":"YulIdentifier","src":"56066:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"55861:1:89","nodeType":"YulIdentifier","src":"55861:1:89"},{"name":"length","nativeSrc":"55864:6:89","nodeType":"YulIdentifier","src":"55864:6:89"}],"functionName":{"name":"lt","nativeSrc":"55858:2:89","nodeType":"YulIdentifier","src":"55858:2:89"},"nativeSrc":"55858:13:89","nodeType":"YulFunctionCall","src":"55858:13:89"},"nativeSrc":"55850:247:89","nodeType":"YulForLoop","post":{"nativeSrc":"55872:18:89","nodeType":"YulBlock","src":"55872:18:89","statements":[{"nativeSrc":"55874:14:89","nodeType":"YulAssignment","src":"55874:14:89","value":{"arguments":[{"name":"i","nativeSrc":"55883:1:89","nodeType":"YulIdentifier","src":"55883:1:89"},{"kind":"number","nativeSrc":"55886:1:89","nodeType":"YulLiteral","src":"55886:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"55879:3:89","nodeType":"YulIdentifier","src":"55879:3:89"},"nativeSrc":"55879:9:89","nodeType":"YulFunctionCall","src":"55879:9:89"},"variableNames":[{"name":"i","nativeSrc":"55874:1:89","nodeType":"YulIdentifier","src":"55874:1:89"}]}]},"pre":{"nativeSrc":"55854:3:89","nodeType":"YulBlock","src":"55854:3:89","statements":[]},"src":"55850:247:89"},{"nativeSrc":"56106:11:89","nodeType":"YulAssignment","src":"56106:11:89","value":{"name":"tail","nativeSrc":"56113:4:89","nodeType":"YulIdentifier","src":"56113:4:89"},"variableNames":[{"name":"end","nativeSrc":"56106:3:89","nodeType":"YulIdentifier","src":"56106:3:89"}]}]},"name":"abi_encode_array_string_storage_dyn","nativeSrc":"55511:612:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"55556:5:89","nodeType":"YulTypedName","src":"55556:5:89","type":""},{"name":"pos","nativeSrc":"55563:3:89","nodeType":"YulTypedName","src":"55563:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"55571:3:89","nodeType":"YulTypedName","src":"55571:3:89","type":""}],"src":"55511:612:89"},{"body":{"nativeSrc":"56208:470:89","nodeType":"YulBlock","src":"56208:470:89","statements":[{"nativeSrc":"56218:26:89","nodeType":"YulVariableDeclaration","src":"56218:26:89","value":{"arguments":[{"name":"value","nativeSrc":"56238:5:89","nodeType":"YulIdentifier","src":"56238:5:89"}],"functionName":{"name":"sload","nativeSrc":"56232:5:89","nodeType":"YulIdentifier","src":"56232:5:89"},"nativeSrc":"56232:12:89","nodeType":"YulFunctionCall","src":"56232:12:89"},"variables":[{"name":"length","nativeSrc":"56222:6:89","nodeType":"YulTypedName","src":"56222:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"56260:3:89","nodeType":"YulIdentifier","src":"56260:3:89"},{"name":"length","nativeSrc":"56265:6:89","nodeType":"YulIdentifier","src":"56265:6:89"}],"functionName":{"name":"mstore","nativeSrc":"56253:6:89","nodeType":"YulIdentifier","src":"56253:6:89"},"nativeSrc":"56253:19:89","nodeType":"YulFunctionCall","src":"56253:19:89"},"nativeSrc":"56253:19:89","nodeType":"YulExpressionStatement","src":"56253:19:89"},{"nativeSrc":"56281:21:89","nodeType":"YulAssignment","src":"56281:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"56292:3:89","nodeType":"YulIdentifier","src":"56292:3:89"},{"kind":"number","nativeSrc":"56297:4:89","nodeType":"YulLiteral","src":"56297:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"56288:3:89","nodeType":"YulIdentifier","src":"56288:3:89"},"nativeSrc":"56288:14:89","nodeType":"YulFunctionCall","src":"56288:14:89"},"variableNames":[{"name":"pos","nativeSrc":"56281:3:89","nodeType":"YulIdentifier","src":"56281:3:89"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"56318:1:89","nodeType":"YulLiteral","src":"56318:1:89","type":"","value":"0"},{"name":"value","nativeSrc":"56321:5:89","nodeType":"YulIdentifier","src":"56321:5:89"}],"functionName":{"name":"mstore","nativeSrc":"56311:6:89","nodeType":"YulIdentifier","src":"56311:6:89"},"nativeSrc":"56311:16:89","nodeType":"YulFunctionCall","src":"56311:16:89"},"nativeSrc":"56311:16:89","nodeType":"YulExpressionStatement","src":"56311:16:89"},{"nativeSrc":"56336:32:89","nodeType":"YulVariableDeclaration","src":"56336:32:89","value":{"arguments":[{"kind":"number","nativeSrc":"56360:1:89","nodeType":"YulLiteral","src":"56360:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"56363:4:89","nodeType":"YulLiteral","src":"56363:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"56350:9:89","nodeType":"YulIdentifier","src":"56350:9:89"},"nativeSrc":"56350:18:89","nodeType":"YulFunctionCall","src":"56350:18:89"},"variables":[{"name":"srcPtr","nativeSrc":"56340:6:89","nodeType":"YulTypedName","src":"56340:6:89","type":""}]},{"nativeSrc":"56377:10:89","nodeType":"YulVariableDeclaration","src":"56377:10:89","value":{"kind":"number","nativeSrc":"56386:1:89","nodeType":"YulLiteral","src":"56386:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"56381:1:89","nodeType":"YulTypedName","src":"56381:1:89","type":""}]},{"body":{"nativeSrc":"56445:208:89","nodeType":"YulBlock","src":"56445:208:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"56466:3:89","nodeType":"YulIdentifier","src":"56466:3:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"56481:6:89","nodeType":"YulIdentifier","src":"56481:6:89"}],"functionName":{"name":"sload","nativeSrc":"56475:5:89","nodeType":"YulIdentifier","src":"56475:5:89"},"nativeSrc":"56475:13:89","nodeType":"YulFunctionCall","src":"56475:13:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"56498:3:89","nodeType":"YulLiteral","src":"56498:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"56503:1:89","nodeType":"YulLiteral","src":"56503:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"56494:3:89","nodeType":"YulIdentifier","src":"56494:3:89"},"nativeSrc":"56494:11:89","nodeType":"YulFunctionCall","src":"56494:11:89"},{"kind":"number","nativeSrc":"56507:1:89","nodeType":"YulLiteral","src":"56507:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"56490:3:89","nodeType":"YulIdentifier","src":"56490:3:89"},"nativeSrc":"56490:19:89","nodeType":"YulFunctionCall","src":"56490:19:89"}],"functionName":{"name":"and","nativeSrc":"56471:3:89","nodeType":"YulIdentifier","src":"56471:3:89"},"nativeSrc":"56471:39:89","nodeType":"YulFunctionCall","src":"56471:39:89"}],"functionName":{"name":"mstore","nativeSrc":"56459:6:89","nodeType":"YulIdentifier","src":"56459:6:89"},"nativeSrc":"56459:52:89","nodeType":"YulFunctionCall","src":"56459:52:89"},"nativeSrc":"56459:52:89","nodeType":"YulExpressionStatement","src":"56459:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"56535:3:89","nodeType":"YulIdentifier","src":"56535:3:89"},{"kind":"number","nativeSrc":"56540:4:89","nodeType":"YulLiteral","src":"56540:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"56531:3:89","nodeType":"YulIdentifier","src":"56531:3:89"},"nativeSrc":"56531:14:89","nodeType":"YulFunctionCall","src":"56531:14:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"56557:6:89","nodeType":"YulIdentifier","src":"56557:6:89"},{"kind":"number","nativeSrc":"56565:1:89","nodeType":"YulLiteral","src":"56565:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"56553:3:89","nodeType":"YulIdentifier","src":"56553:3:89"},"nativeSrc":"56553:14:89","nodeType":"YulFunctionCall","src":"56553:14:89"}],"functionName":{"name":"sload","nativeSrc":"56547:5:89","nodeType":"YulIdentifier","src":"56547:5:89"},"nativeSrc":"56547:21:89","nodeType":"YulFunctionCall","src":"56547:21:89"}],"functionName":{"name":"mstore","nativeSrc":"56524:6:89","nodeType":"YulIdentifier","src":"56524:6:89"},"nativeSrc":"56524:45:89","nodeType":"YulFunctionCall","src":"56524:45:89"},"nativeSrc":"56524:45:89","nodeType":"YulExpressionStatement","src":"56524:45:89"},{"nativeSrc":"56582:21:89","nodeType":"YulAssignment","src":"56582:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"56593:3:89","nodeType":"YulIdentifier","src":"56593:3:89"},{"kind":"number","nativeSrc":"56598:4:89","nodeType":"YulLiteral","src":"56598:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"56589:3:89","nodeType":"YulIdentifier","src":"56589:3:89"},"nativeSrc":"56589:14:89","nodeType":"YulFunctionCall","src":"56589:14:89"},"variableNames":[{"name":"pos","nativeSrc":"56582:3:89","nodeType":"YulIdentifier","src":"56582:3:89"}]},{"nativeSrc":"56616:27:89","nodeType":"YulAssignment","src":"56616:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"56630:6:89","nodeType":"YulIdentifier","src":"56630:6:89"},{"kind":"number","nativeSrc":"56638:4:89","nodeType":"YulLiteral","src":"56638:4:89","type":"","value":"0x02"}],"functionName":{"name":"add","nativeSrc":"56626:3:89","nodeType":"YulIdentifier","src":"56626:3:89"},"nativeSrc":"56626:17:89","nodeType":"YulFunctionCall","src":"56626:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"56616:6:89","nodeType":"YulIdentifier","src":"56616:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"56407:1:89","nodeType":"YulIdentifier","src":"56407:1:89"},{"name":"length","nativeSrc":"56410:6:89","nodeType":"YulIdentifier","src":"56410:6:89"}],"functionName":{"name":"lt","nativeSrc":"56404:2:89","nodeType":"YulIdentifier","src":"56404:2:89"},"nativeSrc":"56404:13:89","nodeType":"YulFunctionCall","src":"56404:13:89"},"nativeSrc":"56396:257:89","nodeType":"YulForLoop","post":{"nativeSrc":"56418:18:89","nodeType":"YulBlock","src":"56418:18:89","statements":[{"nativeSrc":"56420:14:89","nodeType":"YulAssignment","src":"56420:14:89","value":{"arguments":[{"name":"i","nativeSrc":"56429:1:89","nodeType":"YulIdentifier","src":"56429:1:89"},{"kind":"number","nativeSrc":"56432:1:89","nodeType":"YulLiteral","src":"56432:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"56425:3:89","nodeType":"YulIdentifier","src":"56425:3:89"},"nativeSrc":"56425:9:89","nodeType":"YulFunctionCall","src":"56425:9:89"},"variableNames":[{"name":"i","nativeSrc":"56420:1:89","nodeType":"YulIdentifier","src":"56420:1:89"}]}]},"pre":{"nativeSrc":"56400:3:89","nodeType":"YulBlock","src":"56400:3:89","statements":[]},"src":"56396:257:89"},{"nativeSrc":"56662:10:89","nodeType":"YulAssignment","src":"56662:10:89","value":{"name":"pos","nativeSrc":"56669:3:89","nodeType":"YulIdentifier","src":"56669:3:89"},"variableNames":[{"name":"end","nativeSrc":"56662:3:89","nodeType":"YulIdentifier","src":"56662:3:89"}]}]},"name":"abi_encode_array_struct_TokenAmount_storage_dyn","nativeSrc":"56128:550:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"56185:5:89","nodeType":"YulTypedName","src":"56185:5:89","type":""},{"name":"pos","nativeSrc":"56192:3:89","nodeType":"YulTypedName","src":"56192:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"56200:3:89","nodeType":"YulTypedName","src":"56200:3:89","type":""}],"src":"56128:550:89"},{"body":{"nativeSrc":"56761:531:89","nodeType":"YulBlock","src":"56761:531:89","statements":[{"nativeSrc":"56771:26:89","nodeType":"YulVariableDeclaration","src":"56771:26:89","value":{"arguments":[{"name":"value","nativeSrc":"56791:5:89","nodeType":"YulIdentifier","src":"56791:5:89"}],"functionName":{"name":"sload","nativeSrc":"56785:5:89","nodeType":"YulIdentifier","src":"56785:5:89"},"nativeSrc":"56785:12:89","nodeType":"YulFunctionCall","src":"56785:12:89"},"variables":[{"name":"length","nativeSrc":"56775:6:89","nodeType":"YulTypedName","src":"56775:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"56813:3:89","nodeType":"YulIdentifier","src":"56813:3:89"},{"name":"length","nativeSrc":"56818:6:89","nodeType":"YulIdentifier","src":"56818:6:89"}],"functionName":{"name":"mstore","nativeSrc":"56806:6:89","nodeType":"YulIdentifier","src":"56806:6:89"},"nativeSrc":"56806:19:89","nodeType":"YulFunctionCall","src":"56806:19:89"},"nativeSrc":"56806:19:89","nodeType":"YulExpressionStatement","src":"56806:19:89"},{"nativeSrc":"56834:21:89","nodeType":"YulAssignment","src":"56834:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"56845:3:89","nodeType":"YulIdentifier","src":"56845:3:89"},{"kind":"number","nativeSrc":"56850:4:89","nodeType":"YulLiteral","src":"56850:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"56841:3:89","nodeType":"YulIdentifier","src":"56841:3:89"},"nativeSrc":"56841:14:89","nodeType":"YulFunctionCall","src":"56841:14:89"},"variableNames":[{"name":"pos","nativeSrc":"56834:3:89","nodeType":"YulIdentifier","src":"56834:3:89"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"56871:1:89","nodeType":"YulLiteral","src":"56871:1:89","type":"","value":"0"},{"name":"value","nativeSrc":"56874:5:89","nodeType":"YulIdentifier","src":"56874:5:89"}],"functionName":{"name":"mstore","nativeSrc":"56864:6:89","nodeType":"YulIdentifier","src":"56864:6:89"},"nativeSrc":"56864:16:89","nodeType":"YulFunctionCall","src":"56864:16:89"},"nativeSrc":"56864:16:89","nodeType":"YulExpressionStatement","src":"56864:16:89"},{"nativeSrc":"56889:32:89","nodeType":"YulVariableDeclaration","src":"56889:32:89","value":{"arguments":[{"kind":"number","nativeSrc":"56913:1:89","nodeType":"YulLiteral","src":"56913:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"56916:4:89","nodeType":"YulLiteral","src":"56916:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"56903:9:89","nodeType":"YulIdentifier","src":"56903:9:89"},"nativeSrc":"56903:18:89","nodeType":"YulFunctionCall","src":"56903:18:89"},"variables":[{"name":"srcPtr","nativeSrc":"56893:6:89","nodeType":"YulTypedName","src":"56893:6:89","type":""}]},{"nativeSrc":"56930:10:89","nodeType":"YulVariableDeclaration","src":"56930:10:89","value":{"kind":"number","nativeSrc":"56939:1:89","nodeType":"YulLiteral","src":"56939:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"56934:1:89","nodeType":"YulTypedName","src":"56934:1:89","type":""}]},{"body":{"nativeSrc":"56998:269:89","nodeType":"YulBlock","src":"56998:269:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"57019:3:89","nodeType":"YulIdentifier","src":"57019:3:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"57034:6:89","nodeType":"YulIdentifier","src":"57034:6:89"}],"functionName":{"name":"sload","nativeSrc":"57028:5:89","nodeType":"YulIdentifier","src":"57028:5:89"},"nativeSrc":"57028:13:89","nodeType":"YulFunctionCall","src":"57028:13:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"57051:3:89","nodeType":"YulLiteral","src":"57051:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"57056:1:89","nodeType":"YulLiteral","src":"57056:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"57047:3:89","nodeType":"YulIdentifier","src":"57047:3:89"},"nativeSrc":"57047:11:89","nodeType":"YulFunctionCall","src":"57047:11:89"},{"kind":"number","nativeSrc":"57060:1:89","nodeType":"YulLiteral","src":"57060:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"57043:3:89","nodeType":"YulIdentifier","src":"57043:3:89"},"nativeSrc":"57043:19:89","nodeType":"YulFunctionCall","src":"57043:19:89"}],"functionName":{"name":"and","nativeSrc":"57024:3:89","nodeType":"YulIdentifier","src":"57024:3:89"},"nativeSrc":"57024:39:89","nodeType":"YulFunctionCall","src":"57024:39:89"}],"functionName":{"name":"mstore","nativeSrc":"57012:6:89","nodeType":"YulIdentifier","src":"57012:6:89"},"nativeSrc":"57012:52:89","nodeType":"YulFunctionCall","src":"57012:52:89"},"nativeSrc":"57012:52:89","nodeType":"YulExpressionStatement","src":"57012:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"57088:3:89","nodeType":"YulIdentifier","src":"57088:3:89"},{"kind":"number","nativeSrc":"57093:4:89","nodeType":"YulLiteral","src":"57093:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"57084:3:89","nodeType":"YulIdentifier","src":"57084:3:89"},"nativeSrc":"57084:14:89","nodeType":"YulFunctionCall","src":"57084:14:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"57110:6:89","nodeType":"YulIdentifier","src":"57110:6:89"},{"kind":"number","nativeSrc":"57118:1:89","nodeType":"YulLiteral","src":"57118:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"57106:3:89","nodeType":"YulIdentifier","src":"57106:3:89"},"nativeSrc":"57106:14:89","nodeType":"YulFunctionCall","src":"57106:14:89"}],"functionName":{"name":"sload","nativeSrc":"57100:5:89","nodeType":"YulIdentifier","src":"57100:5:89"},"nativeSrc":"57100:21:89","nodeType":"YulFunctionCall","src":"57100:21:89"}],"functionName":{"name":"mstore","nativeSrc":"57077:6:89","nodeType":"YulIdentifier","src":"57077:6:89"},"nativeSrc":"57077:45:89","nodeType":"YulFunctionCall","src":"57077:45:89"},"nativeSrc":"57077:45:89","nodeType":"YulExpressionStatement","src":"57077:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"57146:3:89","nodeType":"YulIdentifier","src":"57146:3:89"},{"kind":"number","nativeSrc":"57151:4:89","nodeType":"YulLiteral","src":"57151:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"57142:3:89","nodeType":"YulIdentifier","src":"57142:3:89"},"nativeSrc":"57142:14:89","nodeType":"YulFunctionCall","src":"57142:14:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"57168:6:89","nodeType":"YulIdentifier","src":"57168:6:89"},{"kind":"number","nativeSrc":"57176:4:89","nodeType":"YulLiteral","src":"57176:4:89","type":"","value":"0x02"}],"functionName":{"name":"add","nativeSrc":"57164:3:89","nodeType":"YulIdentifier","src":"57164:3:89"},"nativeSrc":"57164:17:89","nodeType":"YulFunctionCall","src":"57164:17:89"}],"functionName":{"name":"sload","nativeSrc":"57158:5:89","nodeType":"YulIdentifier","src":"57158:5:89"},"nativeSrc":"57158:24:89","nodeType":"YulFunctionCall","src":"57158:24:89"}],"functionName":{"name":"mstore","nativeSrc":"57135:6:89","nodeType":"YulIdentifier","src":"57135:6:89"},"nativeSrc":"57135:48:89","nodeType":"YulFunctionCall","src":"57135:48:89"},"nativeSrc":"57135:48:89","nodeType":"YulExpressionStatement","src":"57135:48:89"},{"nativeSrc":"57196:21:89","nodeType":"YulAssignment","src":"57196:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"57207:3:89","nodeType":"YulIdentifier","src":"57207:3:89"},{"kind":"number","nativeSrc":"57212:4:89","nodeType":"YulLiteral","src":"57212:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"57203:3:89","nodeType":"YulIdentifier","src":"57203:3:89"},"nativeSrc":"57203:14:89","nodeType":"YulFunctionCall","src":"57203:14:89"},"variableNames":[{"name":"pos","nativeSrc":"57196:3:89","nodeType":"YulIdentifier","src":"57196:3:89"}]},{"nativeSrc":"57230:27:89","nodeType":"YulAssignment","src":"57230:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"57244:6:89","nodeType":"YulIdentifier","src":"57244:6:89"},{"kind":"number","nativeSrc":"57252:4:89","nodeType":"YulLiteral","src":"57252:4:89","type":"","value":"0x03"}],"functionName":{"name":"add","nativeSrc":"57240:3:89","nodeType":"YulIdentifier","src":"57240:3:89"},"nativeSrc":"57240:17:89","nodeType":"YulFunctionCall","src":"57240:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"57230:6:89","nodeType":"YulIdentifier","src":"57230:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"56960:1:89","nodeType":"YulIdentifier","src":"56960:1:89"},{"name":"length","nativeSrc":"56963:6:89","nodeType":"YulIdentifier","src":"56963:6:89"}],"functionName":{"name":"lt","nativeSrc":"56957:2:89","nodeType":"YulIdentifier","src":"56957:2:89"},"nativeSrc":"56957:13:89","nodeType":"YulFunctionCall","src":"56957:13:89"},"nativeSrc":"56949:318:89","nodeType":"YulForLoop","post":{"nativeSrc":"56971:18:89","nodeType":"YulBlock","src":"56971:18:89","statements":[{"nativeSrc":"56973:14:89","nodeType":"YulAssignment","src":"56973:14:89","value":{"arguments":[{"name":"i","nativeSrc":"56982:1:89","nodeType":"YulIdentifier","src":"56982:1:89"},{"kind":"number","nativeSrc":"56985:1:89","nodeType":"YulLiteral","src":"56985:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"56978:3:89","nodeType":"YulIdentifier","src":"56978:3:89"},"nativeSrc":"56978:9:89","nodeType":"YulFunctionCall","src":"56978:9:89"},"variableNames":[{"name":"i","nativeSrc":"56973:1:89","nodeType":"YulIdentifier","src":"56973:1:89"}]}]},"pre":{"nativeSrc":"56953:3:89","nodeType":"YulBlock","src":"56953:3:89","statements":[]},"src":"56949:318:89"},{"nativeSrc":"57276:10:89","nodeType":"YulAssignment","src":"57276:10:89","value":{"name":"pos","nativeSrc":"57283:3:89","nodeType":"YulIdentifier","src":"57283:3:89"},"variableNames":[{"name":"end","nativeSrc":"57276:3:89","nodeType":"YulIdentifier","src":"57276:3:89"}]}]},"name":"abi_encode_array_struct_NFTAmount_storage_dyn","nativeSrc":"56683:609:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"56738:5:89","nodeType":"YulTypedName","src":"56738:5:89","type":""},{"name":"pos","nativeSrc":"56745:3:89","nodeType":"YulTypedName","src":"56745:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"56753:3:89","nodeType":"YulTypedName","src":"56753:3:89","type":""}],"src":"56683:609:89"},{"body":{"nativeSrc":"57540:2082:89","nodeType":"YulBlock","src":"57540:2082:89","statements":[{"nativeSrc":"57550:32:89","nodeType":"YulVariableDeclaration","src":"57550:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"57568:9:89","nodeType":"YulIdentifier","src":"57568:9:89"},{"kind":"number","nativeSrc":"57579:2:89","nodeType":"YulLiteral","src":"57579:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"57564:3:89","nodeType":"YulIdentifier","src":"57564:3:89"},"nativeSrc":"57564:18:89","nodeType":"YulFunctionCall","src":"57564:18:89"},"variables":[{"name":"tail_1","nativeSrc":"57554:6:89","nodeType":"YulTypedName","src":"57554:6:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"57598:9:89","nodeType":"YulIdentifier","src":"57598:9:89"},{"kind":"number","nativeSrc":"57609:2:89","nodeType":"YulLiteral","src":"57609:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"57591:6:89","nodeType":"YulIdentifier","src":"57591:6:89"},"nativeSrc":"57591:21:89","nodeType":"YulFunctionCall","src":"57591:21:89"},"nativeSrc":"57591:21:89","nodeType":"YulExpressionStatement","src":"57591:21:89"},{"nativeSrc":"57621:17:89","nodeType":"YulVariableDeclaration","src":"57621:17:89","value":{"name":"tail_1","nativeSrc":"57632:6:89","nodeType":"YulIdentifier","src":"57632:6:89"},"variables":[{"name":"pos","nativeSrc":"57625:3:89","nodeType":"YulTypedName","src":"57625:3:89","type":""}]},{"nativeSrc":"57647:27:89","nodeType":"YulVariableDeclaration","src":"57647:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"57667:6:89","nodeType":"YulIdentifier","src":"57667:6:89"}],"functionName":{"name":"sload","nativeSrc":"57661:5:89","nodeType":"YulIdentifier","src":"57661:5:89"},"nativeSrc":"57661:13:89","nodeType":"YulFunctionCall","src":"57661:13:89"},"variables":[{"name":"length","nativeSrc":"57651:6:89","nodeType":"YulTypedName","src":"57651:6:89","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"57690:6:89","nodeType":"YulIdentifier","src":"57690:6:89"},{"name":"length","nativeSrc":"57698:6:89","nodeType":"YulIdentifier","src":"57698:6:89"}],"functionName":{"name":"mstore","nativeSrc":"57683:6:89","nodeType":"YulIdentifier","src":"57683:6:89"},"nativeSrc":"57683:22:89","nodeType":"YulFunctionCall","src":"57683:22:89"},"nativeSrc":"57683:22:89","nodeType":"YulExpressionStatement","src":"57683:22:89"},{"nativeSrc":"57714:25:89","nodeType":"YulAssignment","src":"57714:25:89","value":{"arguments":[{"name":"headStart","nativeSrc":"57725:9:89","nodeType":"YulIdentifier","src":"57725:9:89"},{"kind":"number","nativeSrc":"57736:2:89","nodeType":"YulLiteral","src":"57736:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"57721:3:89","nodeType":"YulIdentifier","src":"57721:3:89"},"nativeSrc":"57721:18:89","nodeType":"YulFunctionCall","src":"57721:18:89"},"variableNames":[{"name":"pos","nativeSrc":"57714:3:89","nodeType":"YulIdentifier","src":"57714:3:89"}]},{"nativeSrc":"57748:53:89","nodeType":"YulVariableDeclaration","src":"57748:53:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"57770:9:89","nodeType":"YulIdentifier","src":"57770:9:89"},{"arguments":[{"kind":"number","nativeSrc":"57785:1:89","nodeType":"YulLiteral","src":"57785:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"57788:6:89","nodeType":"YulIdentifier","src":"57788:6:89"}],"functionName":{"name":"shl","nativeSrc":"57781:3:89","nodeType":"YulIdentifier","src":"57781:3:89"},"nativeSrc":"57781:14:89","nodeType":"YulFunctionCall","src":"57781:14:89"}],"functionName":{"name":"add","nativeSrc":"57766:3:89","nodeType":"YulIdentifier","src":"57766:3:89"},"nativeSrc":"57766:30:89","nodeType":"YulFunctionCall","src":"57766:30:89"},{"kind":"number","nativeSrc":"57798:2:89","nodeType":"YulLiteral","src":"57798:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"57762:3:89","nodeType":"YulIdentifier","src":"57762:3:89"},"nativeSrc":"57762:39:89","nodeType":"YulFunctionCall","src":"57762:39:89"},"variables":[{"name":"tail_2","nativeSrc":"57752:6:89","nodeType":"YulTypedName","src":"57752:6:89","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"57817:1:89","nodeType":"YulLiteral","src":"57817:1:89","type":"","value":"0"},{"name":"value0","nativeSrc":"57820:6:89","nodeType":"YulIdentifier","src":"57820:6:89"}],"functionName":{"name":"mstore","nativeSrc":"57810:6:89","nodeType":"YulIdentifier","src":"57810:6:89"},"nativeSrc":"57810:17:89","nodeType":"YulFunctionCall","src":"57810:17:89"},"nativeSrc":"57810:17:89","nodeType":"YulExpressionStatement","src":"57810:17:89"},{"nativeSrc":"57836:30:89","nodeType":"YulVariableDeclaration","src":"57836:30:89","value":{"arguments":[{"kind":"number","nativeSrc":"57860:1:89","nodeType":"YulLiteral","src":"57860:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"57863:2:89","nodeType":"YulLiteral","src":"57863:2:89","type":"","value":"32"}],"functionName":{"name":"keccak256","nativeSrc":"57850:9:89","nodeType":"YulIdentifier","src":"57850:9:89"},"nativeSrc":"57850:16:89","nodeType":"YulFunctionCall","src":"57850:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"57840:6:89","nodeType":"YulTypedName","src":"57840:6:89","type":""}]},{"nativeSrc":"57875:10:89","nodeType":"YulVariableDeclaration","src":"57875:10:89","value":{"kind":"number","nativeSrc":"57884:1:89","nodeType":"YulLiteral","src":"57884:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"57879:1:89","nodeType":"YulTypedName","src":"57879:1:89","type":""}]},{"body":{"nativeSrc":"57943:1650:89","nodeType":"YulBlock","src":"57943:1650:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"57964:3:89","nodeType":"YulIdentifier","src":"57964:3:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"57977:6:89","nodeType":"YulIdentifier","src":"57977:6:89"},{"name":"headStart","nativeSrc":"57985:9:89","nodeType":"YulIdentifier","src":"57985:9:89"}],"functionName":{"name":"sub","nativeSrc":"57973:3:89","nodeType":"YulIdentifier","src":"57973:3:89"},"nativeSrc":"57973:22:89","nodeType":"YulFunctionCall","src":"57973:22:89"},{"arguments":[{"kind":"number","nativeSrc":"58001:2:89","nodeType":"YulLiteral","src":"58001:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"57997:3:89","nodeType":"YulIdentifier","src":"57997:3:89"},"nativeSrc":"57997:7:89","nodeType":"YulFunctionCall","src":"57997:7:89"}],"functionName":{"name":"add","nativeSrc":"57969:3:89","nodeType":"YulIdentifier","src":"57969:3:89"},"nativeSrc":"57969:36:89","nodeType":"YulFunctionCall","src":"57969:36:89"}],"functionName":{"name":"mstore","nativeSrc":"57957:6:89","nodeType":"YulIdentifier","src":"57957:6:89"},"nativeSrc":"57957:49:89","nodeType":"YulFunctionCall","src":"57957:49:89"},"nativeSrc":"57957:49:89","nodeType":"YulExpressionStatement","src":"57957:49:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"58084:6:89","nodeType":"YulIdentifier","src":"58084:6:89"}],"functionName":{"name":"sload","nativeSrc":"58078:5:89","nodeType":"YulIdentifier","src":"58078:5:89"},"nativeSrc":"58078:13:89","nodeType":"YulFunctionCall","src":"58078:13:89"}],"functionName":{"name":"extract_from_storage_value_offset_uint64","nativeSrc":"58037:40:89","nodeType":"YulIdentifier","src":"58037:40:89"},"nativeSrc":"58037:55:89","nodeType":"YulFunctionCall","src":"58037:55:89"},{"name":"tail_2","nativeSrc":"58094:6:89","nodeType":"YulIdentifier","src":"58094:6:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"58019:17:89","nodeType":"YulIdentifier","src":"58019:17:89"},"nativeSrc":"58019:82:89","nodeType":"YulFunctionCall","src":"58019:82:89"},"nativeSrc":"58019:82:89","nodeType":"YulExpressionStatement","src":"58019:82:89"},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"58125:6:89","nodeType":"YulIdentifier","src":"58125:6:89"},{"kind":"number","nativeSrc":"58133:2:89","nodeType":"YulLiteral","src":"58133:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"58121:3:89","nodeType":"YulIdentifier","src":"58121:3:89"},"nativeSrc":"58121:15:89","nodeType":"YulFunctionCall","src":"58121:15:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"58148:6:89","nodeType":"YulIdentifier","src":"58148:6:89"},{"kind":"number","nativeSrc":"58156:1:89","nodeType":"YulLiteral","src":"58156:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"58144:3:89","nodeType":"YulIdentifier","src":"58144:3:89"},"nativeSrc":"58144:14:89","nodeType":"YulFunctionCall","src":"58144:14:89"}],"functionName":{"name":"sload","nativeSrc":"58138:5:89","nodeType":"YulIdentifier","src":"58138:5:89"},"nativeSrc":"58138:21:89","nodeType":"YulFunctionCall","src":"58138:21:89"}],"functionName":{"name":"mstore","nativeSrc":"58114:6:89","nodeType":"YulIdentifier","src":"58114:6:89"},"nativeSrc":"58114:46:89","nodeType":"YulFunctionCall","src":"58114:46:89"},"nativeSrc":"58114:46:89","nodeType":"YulExpressionStatement","src":"58114:46:89"},{"nativeSrc":"58173:87:89","nodeType":"YulVariableDeclaration","src":"58173:87:89","value":{"arguments":[{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"58245:6:89","nodeType":"YulIdentifier","src":"58245:6:89"},{"kind":"number","nativeSrc":"58253:4:89","nodeType":"YulLiteral","src":"58253:4:89","type":"","value":"0x02"}],"functionName":{"name":"add","nativeSrc":"58241:3:89","nodeType":"YulIdentifier","src":"58241:3:89"},"nativeSrc":"58241:17:89","nodeType":"YulFunctionCall","src":"58241:17:89"}],"functionName":{"name":"sload","nativeSrc":"58235:5:89","nodeType":"YulIdentifier","src":"58235:5:89"},"nativeSrc":"58235:24:89","nodeType":"YulFunctionCall","src":"58235:24:89"}],"functionName":{"name":"extract_from_storage_value_offset_address","nativeSrc":"58193:41:89","nodeType":"YulIdentifier","src":"58193:41:89"},"nativeSrc":"58193:67:89","nodeType":"YulFunctionCall","src":"58193:67:89"},"variables":[{"name":"memberValue0","nativeSrc":"58177:12:89","nodeType":"YulTypedName","src":"58177:12:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"58292:12:89","nodeType":"YulIdentifier","src":"58292:12:89"},{"arguments":[{"name":"tail_2","nativeSrc":"58310:6:89","nodeType":"YulIdentifier","src":"58310:6:89"},{"kind":"number","nativeSrc":"58318:2:89","nodeType":"YulLiteral","src":"58318:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"58306:3:89","nodeType":"YulIdentifier","src":"58306:3:89"},"nativeSrc":"58306:15:89","nodeType":"YulFunctionCall","src":"58306:15:89"}],"functionName":{"name":"abi_encode_address","nativeSrc":"58273:18:89","nodeType":"YulIdentifier","src":"58273:18:89"},"nativeSrc":"58273:49:89","nodeType":"YulFunctionCall","src":"58273:49:89"},"nativeSrc":"58273:49:89","nodeType":"YulExpressionStatement","src":"58273:49:89"},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"58346:6:89","nodeType":"YulIdentifier","src":"58346:6:89"},{"kind":"number","nativeSrc":"58354:4:89","nodeType":"YulLiteral","src":"58354:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"58342:3:89","nodeType":"YulIdentifier","src":"58342:3:89"},"nativeSrc":"58342:17:89","nodeType":"YulFunctionCall","src":"58342:17:89"},{"kind":"number","nativeSrc":"58361:6:89","nodeType":"YulLiteral","src":"58361:6:89","type":"","value":"0x0180"}],"functionName":{"name":"mstore","nativeSrc":"58335:6:89","nodeType":"YulIdentifier","src":"58335:6:89"},"nativeSrc":"58335:33:89","nodeType":"YulFunctionCall","src":"58335:33:89"},"nativeSrc":"58335:33:89","nodeType":"YulExpressionStatement","src":"58335:33:89"},{"nativeSrc":"58381:79:89","nodeType":"YulVariableDeclaration","src":"58381:79:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"58425:6:89","nodeType":"YulIdentifier","src":"58425:6:89"},{"kind":"number","nativeSrc":"58433:4:89","nodeType":"YulLiteral","src":"58433:4:89","type":"","value":"0x03"}],"functionName":{"name":"add","nativeSrc":"58421:3:89","nodeType":"YulIdentifier","src":"58421:3:89"},"nativeSrc":"58421:17:89","nodeType":"YulFunctionCall","src":"58421:17:89"},{"arguments":[{"name":"tail_2","nativeSrc":"58444:6:89","nodeType":"YulIdentifier","src":"58444:6:89"},{"kind":"number","nativeSrc":"58452:6:89","nodeType":"YulLiteral","src":"58452:6:89","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"58440:3:89","nodeType":"YulIdentifier","src":"58440:3:89"},"nativeSrc":"58440:19:89","nodeType":"YulFunctionCall","src":"58440:19:89"}],"functionName":{"name":"abi_encode_string_storage","nativeSrc":"58395:25:89","nodeType":"YulIdentifier","src":"58395:25:89"},"nativeSrc":"58395:65:89","nodeType":"YulFunctionCall","src":"58395:65:89"},"variables":[{"name":"tail_3","nativeSrc":"58385:6:89","nodeType":"YulTypedName","src":"58385:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"58484:6:89","nodeType":"YulIdentifier","src":"58484:6:89"},{"kind":"number","nativeSrc":"58492:4:89","nodeType":"YulLiteral","src":"58492:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"58480:3:89","nodeType":"YulIdentifier","src":"58480:3:89"},"nativeSrc":"58480:17:89","nodeType":"YulFunctionCall","src":"58480:17:89"},{"arguments":[{"name":"tail_3","nativeSrc":"58503:6:89","nodeType":"YulIdentifier","src":"58503:6:89"},{"name":"tail_2","nativeSrc":"58511:6:89","nodeType":"YulIdentifier","src":"58511:6:89"}],"functionName":{"name":"sub","nativeSrc":"58499:3:89","nodeType":"YulIdentifier","src":"58499:3:89"},"nativeSrc":"58499:19:89","nodeType":"YulFunctionCall","src":"58499:19:89"}],"functionName":{"name":"mstore","nativeSrc":"58473:6:89","nodeType":"YulIdentifier","src":"58473:6:89"},"nativeSrc":"58473:46:89","nodeType":"YulFunctionCall","src":"58473:46:89"},"nativeSrc":"58473:46:89","nodeType":"YulExpressionStatement","src":"58473:46:89"},{"nativeSrc":"58532:66:89","nodeType":"YulVariableDeclaration","src":"58532:66:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"58576:6:89","nodeType":"YulIdentifier","src":"58576:6:89"},{"kind":"number","nativeSrc":"58584:4:89","nodeType":"YulLiteral","src":"58584:4:89","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"58572:3:89","nodeType":"YulIdentifier","src":"58572:3:89"},"nativeSrc":"58572:17:89","nodeType":"YulFunctionCall","src":"58572:17:89"},{"name":"tail_3","nativeSrc":"58591:6:89","nodeType":"YulIdentifier","src":"58591:6:89"}],"functionName":{"name":"abi_encode_string_storage","nativeSrc":"58546:25:89","nodeType":"YulIdentifier","src":"58546:25:89"},"nativeSrc":"58546:52:89","nodeType":"YulFunctionCall","src":"58546:52:89"},"variables":[{"name":"tail_4","nativeSrc":"58536:6:89","nodeType":"YulTypedName","src":"58536:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"58622:6:89","nodeType":"YulIdentifier","src":"58622:6:89"},{"kind":"number","nativeSrc":"58630:4:89","nodeType":"YulLiteral","src":"58630:4:89","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"58618:3:89","nodeType":"YulIdentifier","src":"58618:3:89"},"nativeSrc":"58618:17:89","nodeType":"YulFunctionCall","src":"58618:17:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"58647:6:89","nodeType":"YulIdentifier","src":"58647:6:89"},{"kind":"number","nativeSrc":"58655:1:89","nodeType":"YulLiteral","src":"58655:1:89","type":"","value":"5"}],"functionName":{"name":"add","nativeSrc":"58643:3:89","nodeType":"YulIdentifier","src":"58643:3:89"},"nativeSrc":"58643:14:89","nodeType":"YulFunctionCall","src":"58643:14:89"}],"functionName":{"name":"sload","nativeSrc":"58637:5:89","nodeType":"YulIdentifier","src":"58637:5:89"},"nativeSrc":"58637:21:89","nodeType":"YulFunctionCall","src":"58637:21:89"}],"functionName":{"name":"mstore","nativeSrc":"58611:6:89","nodeType":"YulIdentifier","src":"58611:6:89"},"nativeSrc":"58611:48:89","nodeType":"YulFunctionCall","src":"58611:48:89"},"nativeSrc":"58611:48:89","nodeType":"YulExpressionStatement","src":"58611:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"58683:6:89","nodeType":"YulIdentifier","src":"58683:6:89"},{"kind":"number","nativeSrc":"58691:4:89","nodeType":"YulLiteral","src":"58691:4:89","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"58679:3:89","nodeType":"YulIdentifier","src":"58679:3:89"},"nativeSrc":"58679:17:89","nodeType":"YulFunctionCall","src":"58679:17:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"58708:6:89","nodeType":"YulIdentifier","src":"58708:6:89"},{"kind":"number","nativeSrc":"58716:4:89","nodeType":"YulLiteral","src":"58716:4:89","type":"","value":"0x06"}],"functionName":{"name":"add","nativeSrc":"58704:3:89","nodeType":"YulIdentifier","src":"58704:3:89"},"nativeSrc":"58704:17:89","nodeType":"YulFunctionCall","src":"58704:17:89"}],"functionName":{"name":"sload","nativeSrc":"58698:5:89","nodeType":"YulIdentifier","src":"58698:5:89"},"nativeSrc":"58698:24:89","nodeType":"YulFunctionCall","src":"58698:24:89"}],"functionName":{"name":"mstore","nativeSrc":"58672:6:89","nodeType":"YulIdentifier","src":"58672:6:89"},"nativeSrc":"58672:51:89","nodeType":"YulFunctionCall","src":"58672:51:89"},"nativeSrc":"58672:51:89","nodeType":"YulExpressionStatement","src":"58672:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"58747:6:89","nodeType":"YulIdentifier","src":"58747:6:89"},{"kind":"number","nativeSrc":"58755:4:89","nodeType":"YulLiteral","src":"58755:4:89","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"58743:3:89","nodeType":"YulIdentifier","src":"58743:3:89"},"nativeSrc":"58743:17:89","nodeType":"YulFunctionCall","src":"58743:17:89"},{"arguments":[{"name":"tail_4","nativeSrc":"58766:6:89","nodeType":"YulIdentifier","src":"58766:6:89"},{"name":"tail_2","nativeSrc":"58774:6:89","nodeType":"YulIdentifier","src":"58774:6:89"}],"functionName":{"name":"sub","nativeSrc":"58762:3:89","nodeType":"YulIdentifier","src":"58762:3:89"},"nativeSrc":"58762:19:89","nodeType":"YulFunctionCall","src":"58762:19:89"}],"functionName":{"name":"mstore","nativeSrc":"58736:6:89","nodeType":"YulIdentifier","src":"58736:6:89"},"nativeSrc":"58736:46:89","nodeType":"YulFunctionCall","src":"58736:46:89"},"nativeSrc":"58736:46:89","nodeType":"YulExpressionStatement","src":"58736:46:89"},{"nativeSrc":"58795:76:89","nodeType":"YulVariableDeclaration","src":"58795:76:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"58849:6:89","nodeType":"YulIdentifier","src":"58849:6:89"},{"kind":"number","nativeSrc":"58857:4:89","nodeType":"YulLiteral","src":"58857:4:89","type":"","value":"0x07"}],"functionName":{"name":"add","nativeSrc":"58845:3:89","nodeType":"YulIdentifier","src":"58845:3:89"},"nativeSrc":"58845:17:89","nodeType":"YulFunctionCall","src":"58845:17:89"},{"name":"tail_4","nativeSrc":"58864:6:89","nodeType":"YulIdentifier","src":"58864:6:89"}],"functionName":{"name":"abi_encode_array_string_storage_dyn","nativeSrc":"58809:35:89","nodeType":"YulIdentifier","src":"58809:35:89"},"nativeSrc":"58809:62:89","nodeType":"YulFunctionCall","src":"58809:62:89"},"variables":[{"name":"tail_5","nativeSrc":"58799:6:89","nodeType":"YulTypedName","src":"58799:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"58895:6:89","nodeType":"YulIdentifier","src":"58895:6:89"},{"kind":"number","nativeSrc":"58903:6:89","nodeType":"YulLiteral","src":"58903:6:89","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"58891:3:89","nodeType":"YulIdentifier","src":"58891:3:89"},"nativeSrc":"58891:19:89","nodeType":"YulFunctionCall","src":"58891:19:89"},{"arguments":[{"name":"tail_5","nativeSrc":"58916:6:89","nodeType":"YulIdentifier","src":"58916:6:89"},{"name":"tail_2","nativeSrc":"58924:6:89","nodeType":"YulIdentifier","src":"58924:6:89"}],"functionName":{"name":"sub","nativeSrc":"58912:3:89","nodeType":"YulIdentifier","src":"58912:3:89"},"nativeSrc":"58912:19:89","nodeType":"YulFunctionCall","src":"58912:19:89"}],"functionName":{"name":"mstore","nativeSrc":"58884:6:89","nodeType":"YulIdentifier","src":"58884:6:89"},"nativeSrc":"58884:48:89","nodeType":"YulFunctionCall","src":"58884:48:89"},"nativeSrc":"58884:48:89","nodeType":"YulExpressionStatement","src":"58884:48:89"},{"nativeSrc":"58945:88:89","nodeType":"YulVariableDeclaration","src":"58945:88:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"59011:6:89","nodeType":"YulIdentifier","src":"59011:6:89"},{"kind":"number","nativeSrc":"59019:4:89","nodeType":"YulLiteral","src":"59019:4:89","type":"","value":"0x08"}],"functionName":{"name":"add","nativeSrc":"59007:3:89","nodeType":"YulIdentifier","src":"59007:3:89"},"nativeSrc":"59007:17:89","nodeType":"YulFunctionCall","src":"59007:17:89"},{"name":"tail_5","nativeSrc":"59026:6:89","nodeType":"YulIdentifier","src":"59026:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_storage_dyn","nativeSrc":"58959:47:89","nodeType":"YulIdentifier","src":"58959:47:89"},"nativeSrc":"58959:74:89","nodeType":"YulFunctionCall","src":"58959:74:89"},"variables":[{"name":"tail_6","nativeSrc":"58949:6:89","nodeType":"YulTypedName","src":"58949:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"59057:6:89","nodeType":"YulIdentifier","src":"59057:6:89"},{"kind":"number","nativeSrc":"59065:6:89","nodeType":"YulLiteral","src":"59065:6:89","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"59053:3:89","nodeType":"YulIdentifier","src":"59053:3:89"},"nativeSrc":"59053:19:89","nodeType":"YulFunctionCall","src":"59053:19:89"},{"arguments":[{"name":"tail_6","nativeSrc":"59078:6:89","nodeType":"YulIdentifier","src":"59078:6:89"},{"name":"tail_2","nativeSrc":"59086:6:89","nodeType":"YulIdentifier","src":"59086:6:89"}],"functionName":{"name":"sub","nativeSrc":"59074:3:89","nodeType":"YulIdentifier","src":"59074:3:89"},"nativeSrc":"59074:19:89","nodeType":"YulFunctionCall","src":"59074:19:89"}],"functionName":{"name":"mstore","nativeSrc":"59046:6:89","nodeType":"YulIdentifier","src":"59046:6:89"},"nativeSrc":"59046:48:89","nodeType":"YulFunctionCall","src":"59046:48:89"},"nativeSrc":"59046:48:89","nodeType":"YulExpressionStatement","src":"59046:48:89"},{"nativeSrc":"59107:88:89","nodeType":"YulVariableDeclaration","src":"59107:88:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"59173:6:89","nodeType":"YulIdentifier","src":"59173:6:89"},{"kind":"number","nativeSrc":"59181:4:89","nodeType":"YulLiteral","src":"59181:4:89","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"59169:3:89","nodeType":"YulIdentifier","src":"59169:3:89"},"nativeSrc":"59169:17:89","nodeType":"YulFunctionCall","src":"59169:17:89"},{"name":"tail_6","nativeSrc":"59188:6:89","nodeType":"YulIdentifier","src":"59188:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_storage_dyn","nativeSrc":"59121:47:89","nodeType":"YulIdentifier","src":"59121:47:89"},"nativeSrc":"59121:74:89","nodeType":"YulFunctionCall","src":"59121:74:89"},"variables":[{"name":"tail_7","nativeSrc":"59111:6:89","nodeType":"YulTypedName","src":"59111:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"59219:6:89","nodeType":"YulIdentifier","src":"59219:6:89"},{"kind":"number","nativeSrc":"59227:6:89","nodeType":"YulLiteral","src":"59227:6:89","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"59215:3:89","nodeType":"YulIdentifier","src":"59215:3:89"},"nativeSrc":"59215:19:89","nodeType":"YulFunctionCall","src":"59215:19:89"},{"arguments":[{"name":"tail_7","nativeSrc":"59240:6:89","nodeType":"YulIdentifier","src":"59240:6:89"},{"name":"tail_2","nativeSrc":"59248:6:89","nodeType":"YulIdentifier","src":"59248:6:89"}],"functionName":{"name":"sub","nativeSrc":"59236:3:89","nodeType":"YulIdentifier","src":"59236:3:89"},"nativeSrc":"59236:19:89","nodeType":"YulFunctionCall","src":"59236:19:89"}],"functionName":{"name":"mstore","nativeSrc":"59208:6:89","nodeType":"YulIdentifier","src":"59208:6:89"},"nativeSrc":"59208:48:89","nodeType":"YulFunctionCall","src":"59208:48:89"},"nativeSrc":"59208:48:89","nodeType":"YulExpressionStatement","src":"59208:48:89"},{"nativeSrc":"59269:86:89","nodeType":"YulVariableDeclaration","src":"59269:86:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"59333:6:89","nodeType":"YulIdentifier","src":"59333:6:89"},{"kind":"number","nativeSrc":"59341:4:89","nodeType":"YulLiteral","src":"59341:4:89","type":"","value":"0x0a"}],"functionName":{"name":"add","nativeSrc":"59329:3:89","nodeType":"YulIdentifier","src":"59329:3:89"},"nativeSrc":"59329:17:89","nodeType":"YulFunctionCall","src":"59329:17:89"},{"name":"tail_7","nativeSrc":"59348:6:89","nodeType":"YulIdentifier","src":"59348:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_storage_dyn","nativeSrc":"59283:45:89","nodeType":"YulIdentifier","src":"59283:45:89"},"nativeSrc":"59283:72:89","nodeType":"YulFunctionCall","src":"59283:72:89"},"variables":[{"name":"tail_8","nativeSrc":"59273:6:89","nodeType":"YulTypedName","src":"59273:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"59379:6:89","nodeType":"YulIdentifier","src":"59379:6:89"},{"kind":"number","nativeSrc":"59387:6:89","nodeType":"YulLiteral","src":"59387:6:89","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"59375:3:89","nodeType":"YulIdentifier","src":"59375:3:89"},"nativeSrc":"59375:19:89","nodeType":"YulFunctionCall","src":"59375:19:89"},{"arguments":[{"name":"tail_8","nativeSrc":"59400:6:89","nodeType":"YulIdentifier","src":"59400:6:89"},{"name":"tail_2","nativeSrc":"59408:6:89","nodeType":"YulIdentifier","src":"59408:6:89"}],"functionName":{"name":"sub","nativeSrc":"59396:3:89","nodeType":"YulIdentifier","src":"59396:3:89"},"nativeSrc":"59396:19:89","nodeType":"YulFunctionCall","src":"59396:19:89"}],"functionName":{"name":"mstore","nativeSrc":"59368:6:89","nodeType":"YulIdentifier","src":"59368:6:89"},"nativeSrc":"59368:48:89","nodeType":"YulFunctionCall","src":"59368:48:89"},"nativeSrc":"59368:48:89","nodeType":"YulExpressionStatement","src":"59368:48:89"},{"nativeSrc":"59429:82:89","nodeType":"YulAssignment","src":"59429:82:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"59489:6:89","nodeType":"YulIdentifier","src":"59489:6:89"},{"kind":"number","nativeSrc":"59497:4:89","nodeType":"YulLiteral","src":"59497:4:89","type":"","value":"0x0b"}],"functionName":{"name":"add","nativeSrc":"59485:3:89","nodeType":"YulIdentifier","src":"59485:3:89"},"nativeSrc":"59485:17:89","nodeType":"YulFunctionCall","src":"59485:17:89"},{"name":"tail_8","nativeSrc":"59504:6:89","nodeType":"YulIdentifier","src":"59504:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_storage_dyn","nativeSrc":"59439:45:89","nodeType":"YulIdentifier","src":"59439:45:89"},"nativeSrc":"59439:72:89","nodeType":"YulFunctionCall","src":"59439:72:89"},"variableNames":[{"name":"tail_2","nativeSrc":"59429:6:89","nodeType":"YulIdentifier","src":"59429:6:89"}]},{"nativeSrc":"59524:27:89","nodeType":"YulAssignment","src":"59524:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"59538:6:89","nodeType":"YulIdentifier","src":"59538:6:89"},{"kind":"number","nativeSrc":"59546:4:89","nodeType":"YulLiteral","src":"59546:4:89","type":"","value":"0x0c"}],"functionName":{"name":"add","nativeSrc":"59534:3:89","nodeType":"YulIdentifier","src":"59534:3:89"},"nativeSrc":"59534:17:89","nodeType":"YulFunctionCall","src":"59534:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"59524:6:89","nodeType":"YulIdentifier","src":"59524:6:89"}]},{"nativeSrc":"59564:19:89","nodeType":"YulAssignment","src":"59564:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"59575:3:89","nodeType":"YulIdentifier","src":"59575:3:89"},{"kind":"number","nativeSrc":"59580:2:89","nodeType":"YulLiteral","src":"59580:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"59571:3:89","nodeType":"YulIdentifier","src":"59571:3:89"},"nativeSrc":"59571:12:89","nodeType":"YulFunctionCall","src":"59571:12:89"},"variableNames":[{"name":"pos","nativeSrc":"59564:3:89","nodeType":"YulIdentifier","src":"59564:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"57905:1:89","nodeType":"YulIdentifier","src":"57905:1:89"},{"name":"length","nativeSrc":"57908:6:89","nodeType":"YulIdentifier","src":"57908:6:89"}],"functionName":{"name":"lt","nativeSrc":"57902:2:89","nodeType":"YulIdentifier","src":"57902:2:89"},"nativeSrc":"57902:13:89","nodeType":"YulFunctionCall","src":"57902:13:89"},"nativeSrc":"57894:1699:89","nodeType":"YulForLoop","post":{"nativeSrc":"57916:18:89","nodeType":"YulBlock","src":"57916:18:89","statements":[{"nativeSrc":"57918:14:89","nodeType":"YulAssignment","src":"57918:14:89","value":{"arguments":[{"name":"i","nativeSrc":"57927:1:89","nodeType":"YulIdentifier","src":"57927:1:89"},{"kind":"number","nativeSrc":"57930:1:89","nodeType":"YulLiteral","src":"57930:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"57923:3:89","nodeType":"YulIdentifier","src":"57923:3:89"},"nativeSrc":"57923:9:89","nodeType":"YulFunctionCall","src":"57923:9:89"},"variableNames":[{"name":"i","nativeSrc":"57918:1:89","nodeType":"YulIdentifier","src":"57918:1:89"}]}]},"pre":{"nativeSrc":"57898:3:89","nodeType":"YulBlock","src":"57898:3:89","statements":[]},"src":"57894:1699:89"},{"nativeSrc":"59602:14:89","nodeType":"YulAssignment","src":"59602:14:89","value":{"name":"tail_2","nativeSrc":"59610:6:89","nodeType":"YulIdentifier","src":"59610:6:89"},"variableNames":[{"name":"tail","nativeSrc":"59602:4:89","nodeType":"YulIdentifier","src":"59602:4:89"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage__to_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"57297:2325:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"57509:9:89","nodeType":"YulTypedName","src":"57509:9:89","type":""},{"name":"value0","nativeSrc":"57520:6:89","nodeType":"YulTypedName","src":"57520:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"57531:4:89","nodeType":"YulTypedName","src":"57531:4:89","type":""}],"src":"57297:2325:89"},{"body":{"nativeSrc":"59768:158:89","nodeType":"YulBlock","src":"59768:158:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"59785:9:89","nodeType":"YulIdentifier","src":"59785:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"59810:6:89","nodeType":"YulIdentifier","src":"59810:6:89"}],"functionName":{"name":"iszero","nativeSrc":"59803:6:89","nodeType":"YulIdentifier","src":"59803:6:89"},"nativeSrc":"59803:14:89","nodeType":"YulFunctionCall","src":"59803:14:89"}],"functionName":{"name":"iszero","nativeSrc":"59796:6:89","nodeType":"YulIdentifier","src":"59796:6:89"},"nativeSrc":"59796:22:89","nodeType":"YulFunctionCall","src":"59796:22:89"}],"functionName":{"name":"mstore","nativeSrc":"59778:6:89","nodeType":"YulIdentifier","src":"59778:6:89"},"nativeSrc":"59778:41:89","nodeType":"YulFunctionCall","src":"59778:41:89"},"nativeSrc":"59778:41:89","nodeType":"YulExpressionStatement","src":"59778:41:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"59839:9:89","nodeType":"YulIdentifier","src":"59839:9:89"},{"kind":"number","nativeSrc":"59850:2:89","nodeType":"YulLiteral","src":"59850:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"59835:3:89","nodeType":"YulIdentifier","src":"59835:3:89"},"nativeSrc":"59835:18:89","nodeType":"YulFunctionCall","src":"59835:18:89"},{"kind":"number","nativeSrc":"59855:2:89","nodeType":"YulLiteral","src":"59855:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"59828:6:89","nodeType":"YulIdentifier","src":"59828:6:89"},"nativeSrc":"59828:30:89","nodeType":"YulFunctionCall","src":"59828:30:89"},"nativeSrc":"59828:30:89","nodeType":"YulExpressionStatement","src":"59828:30:89"},{"nativeSrc":"59867:53:89","nodeType":"YulAssignment","src":"59867:53:89","value":{"arguments":[{"name":"value1","nativeSrc":"59893:6:89","nodeType":"YulIdentifier","src":"59893:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"59905:9:89","nodeType":"YulIdentifier","src":"59905:9:89"},{"kind":"number","nativeSrc":"59916:2:89","nodeType":"YulLiteral","src":"59916:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"59901:3:89","nodeType":"YulIdentifier","src":"59901:3:89"},"nativeSrc":"59901:18:89","nodeType":"YulFunctionCall","src":"59901:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"59875:17:89","nodeType":"YulIdentifier","src":"59875:17:89"},"nativeSrc":"59875:45:89","nodeType":"YulFunctionCall","src":"59875:45:89"},"variableNames":[{"name":"tail","nativeSrc":"59867:4:89","nodeType":"YulIdentifier","src":"59867:4:89"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"59627:299:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"59729:9:89","nodeType":"YulTypedName","src":"59729:9:89","type":""},{"name":"value1","nativeSrc":"59740:6:89","nodeType":"YulTypedName","src":"59740:6:89","type":""},{"name":"value0","nativeSrc":"59748:6:89","nodeType":"YulTypedName","src":"59748:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"59759:4:89","nodeType":"YulTypedName","src":"59759:4:89","type":""}],"src":"59627:299:89"},{"body":{"nativeSrc":"60039:101:89","nodeType":"YulBlock","src":"60039:101:89","statements":[{"nativeSrc":"60049:26:89","nodeType":"YulAssignment","src":"60049:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"60061:9:89","nodeType":"YulIdentifier","src":"60061:9:89"},{"kind":"number","nativeSrc":"60072:2:89","nodeType":"YulLiteral","src":"60072:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"60057:3:89","nodeType":"YulIdentifier","src":"60057:3:89"},"nativeSrc":"60057:18:89","nodeType":"YulFunctionCall","src":"60057:18:89"},"variableNames":[{"name":"tail","nativeSrc":"60049:4:89","nodeType":"YulIdentifier","src":"60049:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"60091:9:89","nodeType":"YulIdentifier","src":"60091:9:89"},{"arguments":[{"name":"value0","nativeSrc":"60106:6:89","nodeType":"YulIdentifier","src":"60106:6:89"},{"kind":"number","nativeSrc":"60114:18:89","nodeType":"YulLiteral","src":"60114:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"60102:3:89","nodeType":"YulIdentifier","src":"60102:3:89"},"nativeSrc":"60102:31:89","nodeType":"YulFunctionCall","src":"60102:31:89"}],"functionName":{"name":"mstore","nativeSrc":"60084:6:89","nodeType":"YulIdentifier","src":"60084:6:89"},"nativeSrc":"60084:50:89","nodeType":"YulFunctionCall","src":"60084:50:89"},"nativeSrc":"60084:50:89","nodeType":"YulExpressionStatement","src":"60084:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"59931:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60008:9:89","nodeType":"YulTypedName","src":"60008:9:89","type":""},{"name":"value0","nativeSrc":"60019:6:89","nodeType":"YulTypedName","src":"60019:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"60030:4:89","nodeType":"YulTypedName","src":"60030:4:89","type":""}],"src":"59931:209:89"},{"body":{"nativeSrc":"60274:119:89","nodeType":"YulBlock","src":"60274:119:89","statements":[{"nativeSrc":"60284:26:89","nodeType":"YulAssignment","src":"60284:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"60296:9:89","nodeType":"YulIdentifier","src":"60296:9:89"},{"kind":"number","nativeSrc":"60307:2:89","nodeType":"YulLiteral","src":"60307:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"60292:3:89","nodeType":"YulIdentifier","src":"60292:3:89"},"nativeSrc":"60292:18:89","nodeType":"YulFunctionCall","src":"60292:18:89"},"variableNames":[{"name":"tail","nativeSrc":"60284:4:89","nodeType":"YulIdentifier","src":"60284:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"60326:9:89","nodeType":"YulIdentifier","src":"60326:9:89"},{"name":"value0","nativeSrc":"60337:6:89","nodeType":"YulIdentifier","src":"60337:6:89"}],"functionName":{"name":"mstore","nativeSrc":"60319:6:89","nodeType":"YulIdentifier","src":"60319:6:89"},"nativeSrc":"60319:25:89","nodeType":"YulFunctionCall","src":"60319:25:89"},"nativeSrc":"60319:25:89","nodeType":"YulExpressionStatement","src":"60319:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"60364:9:89","nodeType":"YulIdentifier","src":"60364:9:89"},{"kind":"number","nativeSrc":"60375:2:89","nodeType":"YulLiteral","src":"60375:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"60360:3:89","nodeType":"YulIdentifier","src":"60360:3:89"},"nativeSrc":"60360:18:89","nodeType":"YulFunctionCall","src":"60360:18:89"},{"name":"value1","nativeSrc":"60380:6:89","nodeType":"YulIdentifier","src":"60380:6:89"}],"functionName":{"name":"mstore","nativeSrc":"60353:6:89","nodeType":"YulIdentifier","src":"60353:6:89"},"nativeSrc":"60353:34:89","nodeType":"YulFunctionCall","src":"60353:34:89"},"nativeSrc":"60353:34:89","nodeType":"YulExpressionStatement","src":"60353:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"60145:248:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60235:9:89","nodeType":"YulTypedName","src":"60235:9:89","type":""},{"name":"value1","nativeSrc":"60246:6:89","nodeType":"YulTypedName","src":"60246:6:89","type":""},{"name":"value0","nativeSrc":"60254:6:89","nodeType":"YulTypedName","src":"60254:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"60265:4:89","nodeType":"YulTypedName","src":"60265:4:89","type":""}],"src":"60145:248:89"},{"body":{"nativeSrc":"60589:14:89","nodeType":"YulBlock","src":"60589:14:89","statements":[{"nativeSrc":"60591:10:89","nodeType":"YulAssignment","src":"60591:10:89","value":{"name":"pos","nativeSrc":"60598:3:89","nodeType":"YulIdentifier","src":"60598:3:89"},"variableNames":[{"name":"end","nativeSrc":"60591:3:89","nodeType":"YulIdentifier","src":"60591:3:89"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"60398:205:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"60573:3:89","nodeType":"YulTypedName","src":"60573:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"60581:3:89","nodeType":"YulTypedName","src":"60581:3:89","type":""}],"src":"60398:205:89"},{"body":{"nativeSrc":"60640:95:89","nodeType":"YulBlock","src":"60640:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"60657:1:89","nodeType":"YulLiteral","src":"60657:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"60664:3:89","nodeType":"YulLiteral","src":"60664:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"60669:10:89","nodeType":"YulLiteral","src":"60669:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"60660:3:89","nodeType":"YulIdentifier","src":"60660:3:89"},"nativeSrc":"60660:20:89","nodeType":"YulFunctionCall","src":"60660:20:89"}],"functionName":{"name":"mstore","nativeSrc":"60650:6:89","nodeType":"YulIdentifier","src":"60650:6:89"},"nativeSrc":"60650:31:89","nodeType":"YulFunctionCall","src":"60650:31:89"},"nativeSrc":"60650:31:89","nodeType":"YulExpressionStatement","src":"60650:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60697:1:89","nodeType":"YulLiteral","src":"60697:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"60700:4:89","nodeType":"YulLiteral","src":"60700:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"60690:6:89","nodeType":"YulIdentifier","src":"60690:6:89"},"nativeSrc":"60690:15:89","nodeType":"YulFunctionCall","src":"60690:15:89"},"nativeSrc":"60690:15:89","nodeType":"YulExpressionStatement","src":"60690:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60721:1:89","nodeType":"YulLiteral","src":"60721:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"60724:4:89","nodeType":"YulLiteral","src":"60724:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"60714:6:89","nodeType":"YulIdentifier","src":"60714:6:89"},"nativeSrc":"60714:15:89","nodeType":"YulFunctionCall","src":"60714:15:89"},"nativeSrc":"60714:15:89","nodeType":"YulExpressionStatement","src":"60714:15:89"}]},"name":"panic_error_0x11","nativeSrc":"60608:127:89","nodeType":"YulFunctionDefinition","src":"60608:127:89"},{"body":{"nativeSrc":"60789:79:89","nodeType":"YulBlock","src":"60789:79:89","statements":[{"nativeSrc":"60799:17:89","nodeType":"YulAssignment","src":"60799:17:89","value":{"arguments":[{"name":"x","nativeSrc":"60811:1:89","nodeType":"YulIdentifier","src":"60811:1:89"},{"name":"y","nativeSrc":"60814:1:89","nodeType":"YulIdentifier","src":"60814:1:89"}],"functionName":{"name":"sub","nativeSrc":"60807:3:89","nodeType":"YulIdentifier","src":"60807:3:89"},"nativeSrc":"60807:9:89","nodeType":"YulFunctionCall","src":"60807:9:89"},"variableNames":[{"name":"diff","nativeSrc":"60799:4:89","nodeType":"YulIdentifier","src":"60799:4:89"}]},{"body":{"nativeSrc":"60840:22:89","nodeType":"YulBlock","src":"60840:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"60842:16:89","nodeType":"YulIdentifier","src":"60842:16:89"},"nativeSrc":"60842:18:89","nodeType":"YulFunctionCall","src":"60842:18:89"},"nativeSrc":"60842:18:89","nodeType":"YulExpressionStatement","src":"60842:18:89"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"60831:4:89","nodeType":"YulIdentifier","src":"60831:4:89"},{"name":"x","nativeSrc":"60837:1:89","nodeType":"YulIdentifier","src":"60837:1:89"}],"functionName":{"name":"gt","nativeSrc":"60828:2:89","nodeType":"YulIdentifier","src":"60828:2:89"},"nativeSrc":"60828:11:89","nodeType":"YulFunctionCall","src":"60828:11:89"},"nativeSrc":"60825:37:89","nodeType":"YulIf","src":"60825:37:89"}]},"name":"checked_sub_t_uint256","nativeSrc":"60740:128:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"60771:1:89","nodeType":"YulTypedName","src":"60771:1:89","type":""},{"name":"y","nativeSrc":"60774:1:89","nodeType":"YulTypedName","src":"60774:1:89","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"60780:4:89","nodeType":"YulTypedName","src":"60780:4:89","type":""}],"src":"60740:128:89"},{"body":{"nativeSrc":"60968:427:89","nodeType":"YulBlock","src":"60968:427:89","statements":[{"nativeSrc":"60978:51:89","nodeType":"YulVariableDeclaration","src":"60978:51:89","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"61017:11:89","nodeType":"YulIdentifier","src":"61017:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"61004:12:89","nodeType":"YulIdentifier","src":"61004:12:89"},"nativeSrc":"61004:25:89","nodeType":"YulFunctionCall","src":"61004:25:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"60982:18:89","nodeType":"YulTypedName","src":"60982:18:89","type":""}]},{"body":{"nativeSrc":"61118:16:89","nodeType":"YulBlock","src":"61118:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"61127:1:89","nodeType":"YulLiteral","src":"61127:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"61130:1:89","nodeType":"YulLiteral","src":"61130:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"61120:6:89","nodeType":"YulIdentifier","src":"61120:6:89"},"nativeSrc":"61120:12:89","nodeType":"YulFunctionCall","src":"61120:12:89"},"nativeSrc":"61120:12:89","nodeType":"YulExpressionStatement","src":"61120:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"61052:18:89","nodeType":"YulIdentifier","src":"61052:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"61080:12:89","nodeType":"YulIdentifier","src":"61080:12:89"},"nativeSrc":"61080:14:89","nodeType":"YulFunctionCall","src":"61080:14:89"},{"name":"base_ref","nativeSrc":"61096:8:89","nodeType":"YulIdentifier","src":"61096:8:89"}],"functionName":{"name":"sub","nativeSrc":"61076:3:89","nodeType":"YulIdentifier","src":"61076:3:89"},"nativeSrc":"61076:29:89","nodeType":"YulFunctionCall","src":"61076:29:89"},{"arguments":[{"kind":"number","nativeSrc":"61111:2:89","nodeType":"YulLiteral","src":"61111:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"61107:3:89","nodeType":"YulIdentifier","src":"61107:3:89"},"nativeSrc":"61107:7:89","nodeType":"YulFunctionCall","src":"61107:7:89"}],"functionName":{"name":"add","nativeSrc":"61072:3:89","nodeType":"YulIdentifier","src":"61072:3:89"},"nativeSrc":"61072:43:89","nodeType":"YulFunctionCall","src":"61072:43:89"}],"functionName":{"name":"slt","nativeSrc":"61048:3:89","nodeType":"YulIdentifier","src":"61048:3:89"},"nativeSrc":"61048:68:89","nodeType":"YulFunctionCall","src":"61048:68:89"}],"functionName":{"name":"iszero","nativeSrc":"61041:6:89","nodeType":"YulIdentifier","src":"61041:6:89"},"nativeSrc":"61041:76:89","nodeType":"YulFunctionCall","src":"61041:76:89"},"nativeSrc":"61038:96:89","nodeType":"YulIf","src":"61038:96:89"},{"nativeSrc":"61143:47:89","nodeType":"YulVariableDeclaration","src":"61143:47:89","value":{"arguments":[{"name":"base_ref","nativeSrc":"61161:8:89","nodeType":"YulIdentifier","src":"61161:8:89"},{"name":"rel_offset_of_tail","nativeSrc":"61171:18:89","nodeType":"YulIdentifier","src":"61171:18:89"}],"functionName":{"name":"add","nativeSrc":"61157:3:89","nodeType":"YulIdentifier","src":"61157:3:89"},"nativeSrc":"61157:33:89","nodeType":"YulFunctionCall","src":"61157:33:89"},"variables":[{"name":"addr_1","nativeSrc":"61147:6:89","nodeType":"YulTypedName","src":"61147:6:89","type":""}]},{"nativeSrc":"61199:30:89","nodeType":"YulAssignment","src":"61199:30:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"61222:6:89","nodeType":"YulIdentifier","src":"61222:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"61209:12:89","nodeType":"YulIdentifier","src":"61209:12:89"},"nativeSrc":"61209:20:89","nodeType":"YulFunctionCall","src":"61209:20:89"},"variableNames":[{"name":"length","nativeSrc":"61199:6:89","nodeType":"YulIdentifier","src":"61199:6:89"}]},{"body":{"nativeSrc":"61272:16:89","nodeType":"YulBlock","src":"61272:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"61281:1:89","nodeType":"YulLiteral","src":"61281:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"61284:1:89","nodeType":"YulLiteral","src":"61284:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"61274:6:89","nodeType":"YulIdentifier","src":"61274:6:89"},"nativeSrc":"61274:12:89","nodeType":"YulFunctionCall","src":"61274:12:89"},"nativeSrc":"61274:12:89","nodeType":"YulExpressionStatement","src":"61274:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"61244:6:89","nodeType":"YulIdentifier","src":"61244:6:89"},{"kind":"number","nativeSrc":"61252:18:89","nodeType":"YulLiteral","src":"61252:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"61241:2:89","nodeType":"YulIdentifier","src":"61241:2:89"},"nativeSrc":"61241:30:89","nodeType":"YulFunctionCall","src":"61241:30:89"},"nativeSrc":"61238:50:89","nodeType":"YulIf","src":"61238:50:89"},{"nativeSrc":"61297:25:89","nodeType":"YulAssignment","src":"61297:25:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"61309:6:89","nodeType":"YulIdentifier","src":"61309:6:89"},{"kind":"number","nativeSrc":"61317:4:89","nodeType":"YulLiteral","src":"61317:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"61305:3:89","nodeType":"YulIdentifier","src":"61305:3:89"},"nativeSrc":"61305:17:89","nodeType":"YulFunctionCall","src":"61305:17:89"},"variableNames":[{"name":"addr","nativeSrc":"61297:4:89","nodeType":"YulIdentifier","src":"61297:4:89"}]},{"body":{"nativeSrc":"61373:16:89","nodeType":"YulBlock","src":"61373:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"61382:1:89","nodeType":"YulLiteral","src":"61382:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"61385:1:89","nodeType":"YulLiteral","src":"61385:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"61375:6:89","nodeType":"YulIdentifier","src":"61375:6:89"},"nativeSrc":"61375:12:89","nodeType":"YulFunctionCall","src":"61375:12:89"},"nativeSrc":"61375:12:89","nodeType":"YulExpressionStatement","src":"61375:12:89"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"61338:4:89","nodeType":"YulIdentifier","src":"61338:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"61348:12:89","nodeType":"YulIdentifier","src":"61348:12:89"},"nativeSrc":"61348:14:89","nodeType":"YulFunctionCall","src":"61348:14:89"},{"name":"length","nativeSrc":"61364:6:89","nodeType":"YulIdentifier","src":"61364:6:89"}],"functionName":{"name":"sub","nativeSrc":"61344:3:89","nodeType":"YulIdentifier","src":"61344:3:89"},"nativeSrc":"61344:27:89","nodeType":"YulFunctionCall","src":"61344:27:89"}],"functionName":{"name":"sgt","nativeSrc":"61334:3:89","nodeType":"YulIdentifier","src":"61334:3:89"},"nativeSrc":"61334:38:89","nodeType":"YulFunctionCall","src":"61334:38:89"},"nativeSrc":"61331:58:89","nodeType":"YulIf","src":"61331:58:89"}]},"name":"access_calldata_tail_t_string_calldata_ptr","nativeSrc":"60873:522:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"60925:8:89","nodeType":"YulTypedName","src":"60925:8:89","type":""},{"name":"ptr_to_tail","nativeSrc":"60935:11:89","nodeType":"YulTypedName","src":"60935:11:89","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"60951:4:89","nodeType":"YulTypedName","src":"60951:4:89","type":""},{"name":"length","nativeSrc":"60957:6:89","nodeType":"YulTypedName","src":"60957:6:89","type":""}],"src":"60873:522:89"},{"body":{"nativeSrc":"61547:124:89","nodeType":"YulBlock","src":"61547:124:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"61570:3:89","nodeType":"YulIdentifier","src":"61570:3:89"},{"name":"value0","nativeSrc":"61575:6:89","nodeType":"YulIdentifier","src":"61575:6:89"},{"name":"value1","nativeSrc":"61583:6:89","nodeType":"YulIdentifier","src":"61583:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"61557:12:89","nodeType":"YulIdentifier","src":"61557:12:89"},"nativeSrc":"61557:33:89","nodeType":"YulFunctionCall","src":"61557:33:89"},"nativeSrc":"61557:33:89","nodeType":"YulExpressionStatement","src":"61557:33:89"},{"nativeSrc":"61599:26:89","nodeType":"YulVariableDeclaration","src":"61599:26:89","value":{"arguments":[{"name":"pos","nativeSrc":"61613:3:89","nodeType":"YulIdentifier","src":"61613:3:89"},{"name":"value1","nativeSrc":"61618:6:89","nodeType":"YulIdentifier","src":"61618:6:89"}],"functionName":{"name":"add","nativeSrc":"61609:3:89","nodeType":"YulIdentifier","src":"61609:3:89"},"nativeSrc":"61609:16:89","nodeType":"YulFunctionCall","src":"61609:16:89"},"variables":[{"name":"_1","nativeSrc":"61603:2:89","nodeType":"YulTypedName","src":"61603:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"61641:2:89","nodeType":"YulIdentifier","src":"61641:2:89"},{"kind":"number","nativeSrc":"61645:1:89","nodeType":"YulLiteral","src":"61645:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"61634:6:89","nodeType":"YulIdentifier","src":"61634:6:89"},"nativeSrc":"61634:13:89","nodeType":"YulFunctionCall","src":"61634:13:89"},"nativeSrc":"61634:13:89","nodeType":"YulExpressionStatement","src":"61634:13:89"},{"nativeSrc":"61656:9:89","nodeType":"YulAssignment","src":"61656:9:89","value":{"name":"_1","nativeSrc":"61663:2:89","nodeType":"YulIdentifier","src":"61663:2:89"},"variableNames":[{"name":"end","nativeSrc":"61656:3:89","nodeType":"YulIdentifier","src":"61656:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"61400:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"61515:3:89","nodeType":"YulTypedName","src":"61515:3:89","type":""},{"name":"value1","nativeSrc":"61520:6:89","nodeType":"YulTypedName","src":"61520:6:89","type":""},{"name":"value0","nativeSrc":"61528:6:89","nodeType":"YulTypedName","src":"61528:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"61539:3:89","nodeType":"YulTypedName","src":"61539:3:89","type":""}],"src":"61400:271:89"},{"body":{"nativeSrc":"61770:427:89","nodeType":"YulBlock","src":"61770:427:89","statements":[{"nativeSrc":"61780:51:89","nodeType":"YulVariableDeclaration","src":"61780:51:89","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"61819:11:89","nodeType":"YulIdentifier","src":"61819:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"61806:12:89","nodeType":"YulIdentifier","src":"61806:12:89"},"nativeSrc":"61806:25:89","nodeType":"YulFunctionCall","src":"61806:25:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"61784:18:89","nodeType":"YulTypedName","src":"61784:18:89","type":""}]},{"body":{"nativeSrc":"61920:16:89","nodeType":"YulBlock","src":"61920:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"61929:1:89","nodeType":"YulLiteral","src":"61929:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"61932:1:89","nodeType":"YulLiteral","src":"61932:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"61922:6:89","nodeType":"YulIdentifier","src":"61922:6:89"},"nativeSrc":"61922:12:89","nodeType":"YulFunctionCall","src":"61922:12:89"},"nativeSrc":"61922:12:89","nodeType":"YulExpressionStatement","src":"61922:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"61854:18:89","nodeType":"YulIdentifier","src":"61854:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"61882:12:89","nodeType":"YulIdentifier","src":"61882:12:89"},"nativeSrc":"61882:14:89","nodeType":"YulFunctionCall","src":"61882:14:89"},{"name":"base_ref","nativeSrc":"61898:8:89","nodeType":"YulIdentifier","src":"61898:8:89"}],"functionName":{"name":"sub","nativeSrc":"61878:3:89","nodeType":"YulIdentifier","src":"61878:3:89"},"nativeSrc":"61878:29:89","nodeType":"YulFunctionCall","src":"61878:29:89"},{"arguments":[{"kind":"number","nativeSrc":"61913:2:89","nodeType":"YulLiteral","src":"61913:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"61909:3:89","nodeType":"YulIdentifier","src":"61909:3:89"},"nativeSrc":"61909:7:89","nodeType":"YulFunctionCall","src":"61909:7:89"}],"functionName":{"name":"add","nativeSrc":"61874:3:89","nodeType":"YulIdentifier","src":"61874:3:89"},"nativeSrc":"61874:43:89","nodeType":"YulFunctionCall","src":"61874:43:89"}],"functionName":{"name":"slt","nativeSrc":"61850:3:89","nodeType":"YulIdentifier","src":"61850:3:89"},"nativeSrc":"61850:68:89","nodeType":"YulFunctionCall","src":"61850:68:89"}],"functionName":{"name":"iszero","nativeSrc":"61843:6:89","nodeType":"YulIdentifier","src":"61843:6:89"},"nativeSrc":"61843:76:89","nodeType":"YulFunctionCall","src":"61843:76:89"},"nativeSrc":"61840:96:89","nodeType":"YulIf","src":"61840:96:89"},{"nativeSrc":"61945:47:89","nodeType":"YulVariableDeclaration","src":"61945:47:89","value":{"arguments":[{"name":"base_ref","nativeSrc":"61963:8:89","nodeType":"YulIdentifier","src":"61963:8:89"},{"name":"rel_offset_of_tail","nativeSrc":"61973:18:89","nodeType":"YulIdentifier","src":"61973:18:89"}],"functionName":{"name":"add","nativeSrc":"61959:3:89","nodeType":"YulIdentifier","src":"61959:3:89"},"nativeSrc":"61959:33:89","nodeType":"YulFunctionCall","src":"61959:33:89"},"variables":[{"name":"addr_1","nativeSrc":"61949:6:89","nodeType":"YulTypedName","src":"61949:6:89","type":""}]},{"nativeSrc":"62001:30:89","nodeType":"YulAssignment","src":"62001:30:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"62024:6:89","nodeType":"YulIdentifier","src":"62024:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"62011:12:89","nodeType":"YulIdentifier","src":"62011:12:89"},"nativeSrc":"62011:20:89","nodeType":"YulFunctionCall","src":"62011:20:89"},"variableNames":[{"name":"length","nativeSrc":"62001:6:89","nodeType":"YulIdentifier","src":"62001:6:89"}]},{"body":{"nativeSrc":"62074:16:89","nodeType":"YulBlock","src":"62074:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"62083:1:89","nodeType":"YulLiteral","src":"62083:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"62086:1:89","nodeType":"YulLiteral","src":"62086:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"62076:6:89","nodeType":"YulIdentifier","src":"62076:6:89"},"nativeSrc":"62076:12:89","nodeType":"YulFunctionCall","src":"62076:12:89"},"nativeSrc":"62076:12:89","nodeType":"YulExpressionStatement","src":"62076:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"62046:6:89","nodeType":"YulIdentifier","src":"62046:6:89"},{"kind":"number","nativeSrc":"62054:18:89","nodeType":"YulLiteral","src":"62054:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"62043:2:89","nodeType":"YulIdentifier","src":"62043:2:89"},"nativeSrc":"62043:30:89","nodeType":"YulFunctionCall","src":"62043:30:89"},"nativeSrc":"62040:50:89","nodeType":"YulIf","src":"62040:50:89"},{"nativeSrc":"62099:25:89","nodeType":"YulAssignment","src":"62099:25:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"62111:6:89","nodeType":"YulIdentifier","src":"62111:6:89"},{"kind":"number","nativeSrc":"62119:4:89","nodeType":"YulLiteral","src":"62119:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"62107:3:89","nodeType":"YulIdentifier","src":"62107:3:89"},"nativeSrc":"62107:17:89","nodeType":"YulFunctionCall","src":"62107:17:89"},"variableNames":[{"name":"addr","nativeSrc":"62099:4:89","nodeType":"YulIdentifier","src":"62099:4:89"}]},{"body":{"nativeSrc":"62175:16:89","nodeType":"YulBlock","src":"62175:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"62184:1:89","nodeType":"YulLiteral","src":"62184:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"62187:1:89","nodeType":"YulLiteral","src":"62187:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"62177:6:89","nodeType":"YulIdentifier","src":"62177:6:89"},"nativeSrc":"62177:12:89","nodeType":"YulFunctionCall","src":"62177:12:89"},"nativeSrc":"62177:12:89","nodeType":"YulExpressionStatement","src":"62177:12:89"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"62140:4:89","nodeType":"YulIdentifier","src":"62140:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"62150:12:89","nodeType":"YulIdentifier","src":"62150:12:89"},"nativeSrc":"62150:14:89","nodeType":"YulFunctionCall","src":"62150:14:89"},{"name":"length","nativeSrc":"62166:6:89","nodeType":"YulIdentifier","src":"62166:6:89"}],"functionName":{"name":"sub","nativeSrc":"62146:3:89","nodeType":"YulIdentifier","src":"62146:3:89"},"nativeSrc":"62146:27:89","nodeType":"YulFunctionCall","src":"62146:27:89"}],"functionName":{"name":"sgt","nativeSrc":"62136:3:89","nodeType":"YulIdentifier","src":"62136:3:89"},"nativeSrc":"62136:38:89","nodeType":"YulFunctionCall","src":"62136:38:89"},"nativeSrc":"62133:58:89","nodeType":"YulIf","src":"62133:58:89"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"61676:521:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"61727:8:89","nodeType":"YulTypedName","src":"61727:8:89","type":""},{"name":"ptr_to_tail","nativeSrc":"61737:11:89","nodeType":"YulTypedName","src":"61737:11:89","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"61753:4:89","nodeType":"YulTypedName","src":"61753:4:89","type":""},{"name":"length","nativeSrc":"61759:6:89","nodeType":"YulTypedName","src":"61759:6:89","type":""}],"src":"61676:521:89"},{"body":{"nativeSrc":"62377:230:89","nodeType":"YulBlock","src":"62377:230:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"62394:9:89","nodeType":"YulIdentifier","src":"62394:9:89"},{"kind":"number","nativeSrc":"62405:2:89","nodeType":"YulLiteral","src":"62405:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"62387:6:89","nodeType":"YulIdentifier","src":"62387:6:89"},"nativeSrc":"62387:21:89","nodeType":"YulFunctionCall","src":"62387:21:89"},"nativeSrc":"62387:21:89","nodeType":"YulExpressionStatement","src":"62387:21:89"},{"nativeSrc":"62417:59:89","nodeType":"YulVariableDeclaration","src":"62417:59:89","value":{"arguments":[{"name":"value0","nativeSrc":"62449:6:89","nodeType":"YulIdentifier","src":"62449:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"62461:9:89","nodeType":"YulIdentifier","src":"62461:9:89"},{"kind":"number","nativeSrc":"62472:2:89","nodeType":"YulLiteral","src":"62472:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"62457:3:89","nodeType":"YulIdentifier","src":"62457:3:89"},"nativeSrc":"62457:18:89","nodeType":"YulFunctionCall","src":"62457:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"62431:17:89","nodeType":"YulIdentifier","src":"62431:17:89"},"nativeSrc":"62431:45:89","nodeType":"YulFunctionCall","src":"62431:45:89"},"variables":[{"name":"tail_1","nativeSrc":"62421:6:89","nodeType":"YulTypedName","src":"62421:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"62496:9:89","nodeType":"YulIdentifier","src":"62496:9:89"},{"kind":"number","nativeSrc":"62507:2:89","nodeType":"YulLiteral","src":"62507:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"62492:3:89","nodeType":"YulIdentifier","src":"62492:3:89"},"nativeSrc":"62492:18:89","nodeType":"YulFunctionCall","src":"62492:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"62516:6:89","nodeType":"YulIdentifier","src":"62516:6:89"},{"name":"headStart","nativeSrc":"62524:9:89","nodeType":"YulIdentifier","src":"62524:9:89"}],"functionName":{"name":"sub","nativeSrc":"62512:3:89","nodeType":"YulIdentifier","src":"62512:3:89"},"nativeSrc":"62512:22:89","nodeType":"YulFunctionCall","src":"62512:22:89"}],"functionName":{"name":"mstore","nativeSrc":"62485:6:89","nodeType":"YulIdentifier","src":"62485:6:89"},"nativeSrc":"62485:50:89","nodeType":"YulFunctionCall","src":"62485:50:89"},"nativeSrc":"62485:50:89","nodeType":"YulExpressionStatement","src":"62485:50:89"},{"nativeSrc":"62544:57:89","nodeType":"YulAssignment","src":"62544:57:89","value":{"arguments":[{"name":"value1","nativeSrc":"62578:6:89","nodeType":"YulIdentifier","src":"62578:6:89"},{"name":"value2","nativeSrc":"62586:6:89","nodeType":"YulIdentifier","src":"62586:6:89"},{"name":"tail_1","nativeSrc":"62594:6:89","nodeType":"YulIdentifier","src":"62594:6:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"62552:25:89","nodeType":"YulIdentifier","src":"62552:25:89"},"nativeSrc":"62552:49:89","nodeType":"YulFunctionCall","src":"62552:49:89"},"variableNames":[{"name":"tail","nativeSrc":"62544:4:89","nodeType":"YulIdentifier","src":"62544:4:89"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"62202:405:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"62330:9:89","nodeType":"YulTypedName","src":"62330:9:89","type":""},{"name":"value2","nativeSrc":"62341:6:89","nodeType":"YulTypedName","src":"62341:6:89","type":""},{"name":"value1","nativeSrc":"62349:6:89","nodeType":"YulTypedName","src":"62349:6:89","type":""},{"name":"value0","nativeSrc":"62357:6:89","nodeType":"YulTypedName","src":"62357:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"62368:4:89","nodeType":"YulTypedName","src":"62368:4:89","type":""}],"src":"62202:405:89"},{"body":{"nativeSrc":"62759:142:89","nodeType":"YulBlock","src":"62759:142:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"62776:9:89","nodeType":"YulIdentifier","src":"62776:9:89"},{"name":"value0","nativeSrc":"62787:6:89","nodeType":"YulIdentifier","src":"62787:6:89"}],"functionName":{"name":"mstore","nativeSrc":"62769:6:89","nodeType":"YulIdentifier","src":"62769:6:89"},"nativeSrc":"62769:25:89","nodeType":"YulFunctionCall","src":"62769:25:89"},"nativeSrc":"62769:25:89","nodeType":"YulExpressionStatement","src":"62769:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"62814:9:89","nodeType":"YulIdentifier","src":"62814:9:89"},{"kind":"number","nativeSrc":"62825:2:89","nodeType":"YulLiteral","src":"62825:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"62810:3:89","nodeType":"YulIdentifier","src":"62810:3:89"},"nativeSrc":"62810:18:89","nodeType":"YulFunctionCall","src":"62810:18:89"},{"kind":"number","nativeSrc":"62830:2:89","nodeType":"YulLiteral","src":"62830:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"62803:6:89","nodeType":"YulIdentifier","src":"62803:6:89"},"nativeSrc":"62803:30:89","nodeType":"YulFunctionCall","src":"62803:30:89"},"nativeSrc":"62803:30:89","nodeType":"YulExpressionStatement","src":"62803:30:89"},{"nativeSrc":"62842:53:89","nodeType":"YulAssignment","src":"62842:53:89","value":{"arguments":[{"name":"value1","nativeSrc":"62868:6:89","nodeType":"YulIdentifier","src":"62868:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"62880:9:89","nodeType":"YulIdentifier","src":"62880:9:89"},{"kind":"number","nativeSrc":"62891:2:89","nodeType":"YulLiteral","src":"62891:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"62876:3:89","nodeType":"YulIdentifier","src":"62876:3:89"},"nativeSrc":"62876:18:89","nodeType":"YulFunctionCall","src":"62876:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"62850:17:89","nodeType":"YulIdentifier","src":"62850:17:89"},"nativeSrc":"62850:45:89","nodeType":"YulFunctionCall","src":"62850:45:89"},"variableNames":[{"name":"tail","nativeSrc":"62842:4:89","nodeType":"YulIdentifier","src":"62842:4:89"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"62612:289:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"62720:9:89","nodeType":"YulTypedName","src":"62720:9:89","type":""},{"name":"value1","nativeSrc":"62731:6:89","nodeType":"YulTypedName","src":"62731:6:89","type":""},{"name":"value0","nativeSrc":"62739:6:89","nodeType":"YulTypedName","src":"62739:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"62750:4:89","nodeType":"YulTypedName","src":"62750:4:89","type":""}],"src":"62612:289:89"},{"body":{"nativeSrc":"62987:437:89","nodeType":"YulBlock","src":"62987:437:89","statements":[{"body":{"nativeSrc":"63020:398:89","nodeType":"YulBlock","src":"63020:398:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63041:1:89","nodeType":"YulLiteral","src":"63041:1:89","type":"","value":"0"},{"name":"array","nativeSrc":"63044:5:89","nodeType":"YulIdentifier","src":"63044:5:89"}],"functionName":{"name":"mstore","nativeSrc":"63034:6:89","nodeType":"YulIdentifier","src":"63034:6:89"},"nativeSrc":"63034:16:89","nodeType":"YulFunctionCall","src":"63034:16:89"},"nativeSrc":"63034:16:89","nodeType":"YulExpressionStatement","src":"63034:16:89"},{"nativeSrc":"63063:30:89","nodeType":"YulVariableDeclaration","src":"63063:30:89","value":{"arguments":[{"kind":"number","nativeSrc":"63085:1:89","nodeType":"YulLiteral","src":"63085:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"63088:4:89","nodeType":"YulLiteral","src":"63088:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"63075:9:89","nodeType":"YulIdentifier","src":"63075:9:89"},"nativeSrc":"63075:18:89","nodeType":"YulFunctionCall","src":"63075:18:89"},"variables":[{"name":"data","nativeSrc":"63067:4:89","nodeType":"YulTypedName","src":"63067:4:89","type":""}]},{"nativeSrc":"63106:57:89","nodeType":"YulVariableDeclaration","src":"63106:57:89","value":{"arguments":[{"name":"data","nativeSrc":"63129:4:89","nodeType":"YulIdentifier","src":"63129:4:89"},{"arguments":[{"kind":"number","nativeSrc":"63139:1:89","nodeType":"YulLiteral","src":"63139:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"63146:10:89","nodeType":"YulIdentifier","src":"63146:10:89"},{"kind":"number","nativeSrc":"63158:2:89","nodeType":"YulLiteral","src":"63158:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"63142:3:89","nodeType":"YulIdentifier","src":"63142:3:89"},"nativeSrc":"63142:19:89","nodeType":"YulFunctionCall","src":"63142:19:89"}],"functionName":{"name":"shr","nativeSrc":"63135:3:89","nodeType":"YulIdentifier","src":"63135:3:89"},"nativeSrc":"63135:27:89","nodeType":"YulFunctionCall","src":"63135:27:89"}],"functionName":{"name":"add","nativeSrc":"63125:3:89","nodeType":"YulIdentifier","src":"63125:3:89"},"nativeSrc":"63125:38:89","nodeType":"YulFunctionCall","src":"63125:38:89"},"variables":[{"name":"deleteStart","nativeSrc":"63110:11:89","nodeType":"YulTypedName","src":"63110:11:89","type":""}]},{"body":{"nativeSrc":"63200:23:89","nodeType":"YulBlock","src":"63200:23:89","statements":[{"nativeSrc":"63202:19:89","nodeType":"YulAssignment","src":"63202:19:89","value":{"name":"data","nativeSrc":"63217:4:89","nodeType":"YulIdentifier","src":"63217:4:89"},"variableNames":[{"name":"deleteStart","nativeSrc":"63202:11:89","nodeType":"YulIdentifier","src":"63202:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"63182:10:89","nodeType":"YulIdentifier","src":"63182:10:89"},{"kind":"number","nativeSrc":"63194:4:89","nodeType":"YulLiteral","src":"63194:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"63179:2:89","nodeType":"YulIdentifier","src":"63179:2:89"},"nativeSrc":"63179:20:89","nodeType":"YulFunctionCall","src":"63179:20:89"},"nativeSrc":"63176:47:89","nodeType":"YulIf","src":"63176:47:89"},{"nativeSrc":"63236:41:89","nodeType":"YulVariableDeclaration","src":"63236:41:89","value":{"arguments":[{"name":"data","nativeSrc":"63250:4:89","nodeType":"YulIdentifier","src":"63250:4:89"},{"arguments":[{"kind":"number","nativeSrc":"63260:1:89","nodeType":"YulLiteral","src":"63260:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"63267:3:89","nodeType":"YulIdentifier","src":"63267:3:89"},{"kind":"number","nativeSrc":"63272:2:89","nodeType":"YulLiteral","src":"63272:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"63263:3:89","nodeType":"YulIdentifier","src":"63263:3:89"},"nativeSrc":"63263:12:89","nodeType":"YulFunctionCall","src":"63263:12:89"}],"functionName":{"name":"shr","nativeSrc":"63256:3:89","nodeType":"YulIdentifier","src":"63256:3:89"},"nativeSrc":"63256:20:89","nodeType":"YulFunctionCall","src":"63256:20:89"}],"functionName":{"name":"add","nativeSrc":"63246:3:89","nodeType":"YulIdentifier","src":"63246:3:89"},"nativeSrc":"63246:31:89","nodeType":"YulFunctionCall","src":"63246:31:89"},"variables":[{"name":"_1","nativeSrc":"63240:2:89","nodeType":"YulTypedName","src":"63240:2:89","type":""}]},{"nativeSrc":"63290:24:89","nodeType":"YulVariableDeclaration","src":"63290:24:89","value":{"name":"deleteStart","nativeSrc":"63303:11:89","nodeType":"YulIdentifier","src":"63303:11:89"},"variables":[{"name":"start","nativeSrc":"63294:5:89","nodeType":"YulTypedName","src":"63294:5:89","type":""}]},{"body":{"nativeSrc":"63388:20:89","nodeType":"YulBlock","src":"63388:20:89","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"63397:5:89","nodeType":"YulIdentifier","src":"63397:5:89"},{"kind":"number","nativeSrc":"63404:1:89","nodeType":"YulLiteral","src":"63404:1:89","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"63390:6:89","nodeType":"YulIdentifier","src":"63390:6:89"},"nativeSrc":"63390:16:89","nodeType":"YulFunctionCall","src":"63390:16:89"},"nativeSrc":"63390:16:89","nodeType":"YulExpressionStatement","src":"63390:16:89"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"63338:5:89","nodeType":"YulIdentifier","src":"63338:5:89"},{"name":"_1","nativeSrc":"63345:2:89","nodeType":"YulIdentifier","src":"63345:2:89"}],"functionName":{"name":"lt","nativeSrc":"63335:2:89","nodeType":"YulIdentifier","src":"63335:2:89"},"nativeSrc":"63335:13:89","nodeType":"YulFunctionCall","src":"63335:13:89"},"nativeSrc":"63327:81:89","nodeType":"YulForLoop","post":{"nativeSrc":"63349:26:89","nodeType":"YulBlock","src":"63349:26:89","statements":[{"nativeSrc":"63351:22:89","nodeType":"YulAssignment","src":"63351:22:89","value":{"arguments":[{"name":"start","nativeSrc":"63364:5:89","nodeType":"YulIdentifier","src":"63364:5:89"},{"kind":"number","nativeSrc":"63371:1:89","nodeType":"YulLiteral","src":"63371:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"63360:3:89","nodeType":"YulIdentifier","src":"63360:3:89"},"nativeSrc":"63360:13:89","nodeType":"YulFunctionCall","src":"63360:13:89"},"variableNames":[{"name":"start","nativeSrc":"63351:5:89","nodeType":"YulIdentifier","src":"63351:5:89"}]}]},"pre":{"nativeSrc":"63331:3:89","nodeType":"YulBlock","src":"63331:3:89","statements":[]},"src":"63327:81:89"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"63003:3:89","nodeType":"YulIdentifier","src":"63003:3:89"},{"kind":"number","nativeSrc":"63008:2:89","nodeType":"YulLiteral","src":"63008:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"63000:2:89","nodeType":"YulIdentifier","src":"63000:2:89"},"nativeSrc":"63000:11:89","nodeType":"YulFunctionCall","src":"63000:11:89"},"nativeSrc":"62997:421:89","nodeType":"YulIf","src":"62997:421:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"62906:518:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"62959:5:89","nodeType":"YulTypedName","src":"62959:5:89","type":""},{"name":"len","nativeSrc":"62966:3:89","nodeType":"YulTypedName","src":"62966:3:89","type":""},{"name":"startIndex","nativeSrc":"62971:10:89","nodeType":"YulTypedName","src":"62971:10:89","type":""}],"src":"62906:518:89"},{"body":{"nativeSrc":"63514:81:89","nodeType":"YulBlock","src":"63514:81:89","statements":[{"nativeSrc":"63524:65:89","nodeType":"YulAssignment","src":"63524:65:89","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"63539:4:89","nodeType":"YulIdentifier","src":"63539:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"63557:1:89","nodeType":"YulLiteral","src":"63557:1:89","type":"","value":"3"},{"name":"len","nativeSrc":"63560:3:89","nodeType":"YulIdentifier","src":"63560:3:89"}],"functionName":{"name":"shl","nativeSrc":"63553:3:89","nodeType":"YulIdentifier","src":"63553:3:89"},"nativeSrc":"63553:11:89","nodeType":"YulFunctionCall","src":"63553:11:89"},{"arguments":[{"kind":"number","nativeSrc":"63570:1:89","nodeType":"YulLiteral","src":"63570:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"63566:3:89","nodeType":"YulIdentifier","src":"63566:3:89"},"nativeSrc":"63566:6:89","nodeType":"YulFunctionCall","src":"63566:6:89"}],"functionName":{"name":"shr","nativeSrc":"63549:3:89","nodeType":"YulIdentifier","src":"63549:3:89"},"nativeSrc":"63549:24:89","nodeType":"YulFunctionCall","src":"63549:24:89"}],"functionName":{"name":"not","nativeSrc":"63545:3:89","nodeType":"YulIdentifier","src":"63545:3:89"},"nativeSrc":"63545:29:89","nodeType":"YulFunctionCall","src":"63545:29:89"}],"functionName":{"name":"and","nativeSrc":"63535:3:89","nodeType":"YulIdentifier","src":"63535:3:89"},"nativeSrc":"63535:40:89","nodeType":"YulFunctionCall","src":"63535:40:89"},{"arguments":[{"kind":"number","nativeSrc":"63581:1:89","nodeType":"YulLiteral","src":"63581:1:89","type":"","value":"1"},{"name":"len","nativeSrc":"63584:3:89","nodeType":"YulIdentifier","src":"63584:3:89"}],"functionName":{"name":"shl","nativeSrc":"63577:3:89","nodeType":"YulIdentifier","src":"63577:3:89"},"nativeSrc":"63577:11:89","nodeType":"YulFunctionCall","src":"63577:11:89"}],"functionName":{"name":"or","nativeSrc":"63532:2:89","nodeType":"YulIdentifier","src":"63532:2:89"},"nativeSrc":"63532:57:89","nodeType":"YulFunctionCall","src":"63532:57:89"},"variableNames":[{"name":"used","nativeSrc":"63524:4:89","nodeType":"YulIdentifier","src":"63524:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"63429:166:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"63491:4:89","nodeType":"YulTypedName","src":"63491:4:89","type":""},{"name":"len","nativeSrc":"63497:3:89","nodeType":"YulTypedName","src":"63497:3:89","type":""}],"returnVariables":[{"name":"used","nativeSrc":"63505:4:89","nodeType":"YulTypedName","src":"63505:4:89","type":""}],"src":"63429:166:89"},{"body":{"nativeSrc":"63696:1244:89","nodeType":"YulBlock","src":"63696:1244:89","statements":[{"nativeSrc":"63706:24:89","nodeType":"YulVariableDeclaration","src":"63706:24:89","value":{"arguments":[{"name":"src","nativeSrc":"63726:3:89","nodeType":"YulIdentifier","src":"63726:3:89"}],"functionName":{"name":"mload","nativeSrc":"63720:5:89","nodeType":"YulIdentifier","src":"63720:5:89"},"nativeSrc":"63720:10:89","nodeType":"YulFunctionCall","src":"63720:10:89"},"variables":[{"name":"newLen","nativeSrc":"63710:6:89","nodeType":"YulTypedName","src":"63710:6:89","type":""}]},{"body":{"nativeSrc":"63773:22:89","nodeType":"YulBlock","src":"63773:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"63775:16:89","nodeType":"YulIdentifier","src":"63775:16:89"},"nativeSrc":"63775:18:89","nodeType":"YulFunctionCall","src":"63775:18:89"},"nativeSrc":"63775:18:89","nodeType":"YulExpressionStatement","src":"63775:18:89"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"63745:6:89","nodeType":"YulIdentifier","src":"63745:6:89"},{"kind":"number","nativeSrc":"63753:18:89","nodeType":"YulLiteral","src":"63753:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"63742:2:89","nodeType":"YulIdentifier","src":"63742:2:89"},"nativeSrc":"63742:30:89","nodeType":"YulFunctionCall","src":"63742:30:89"},"nativeSrc":"63739:56:89","nodeType":"YulIf","src":"63739:56:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"63848:4:89","nodeType":"YulIdentifier","src":"63848:4:89"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"63886:4:89","nodeType":"YulIdentifier","src":"63886:4:89"}],"functionName":{"name":"sload","nativeSrc":"63880:5:89","nodeType":"YulIdentifier","src":"63880:5:89"},"nativeSrc":"63880:11:89","nodeType":"YulFunctionCall","src":"63880:11:89"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"63854:25:89","nodeType":"YulIdentifier","src":"63854:25:89"},"nativeSrc":"63854:38:89","nodeType":"YulFunctionCall","src":"63854:38:89"},{"name":"newLen","nativeSrc":"63894:6:89","nodeType":"YulIdentifier","src":"63894:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"63804:43:89","nodeType":"YulIdentifier","src":"63804:43:89"},"nativeSrc":"63804:97:89","nodeType":"YulFunctionCall","src":"63804:97:89"},"nativeSrc":"63804:97:89","nodeType":"YulExpressionStatement","src":"63804:97:89"},{"nativeSrc":"63910:18:89","nodeType":"YulVariableDeclaration","src":"63910:18:89","value":{"kind":"number","nativeSrc":"63927:1:89","nodeType":"YulLiteral","src":"63927:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"63914:9:89","nodeType":"YulTypedName","src":"63914:9:89","type":""}]},{"nativeSrc":"63937:17:89","nodeType":"YulAssignment","src":"63937:17:89","value":{"kind":"number","nativeSrc":"63950:4:89","nodeType":"YulLiteral","src":"63950:4:89","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"63937:9:89","nodeType":"YulIdentifier","src":"63937:9:89"}]},{"cases":[{"body":{"nativeSrc":"64000:683:89","nodeType":"YulBlock","src":"64000:683:89","statements":[{"nativeSrc":"64014:35:89","nodeType":"YulVariableDeclaration","src":"64014:35:89","value":{"arguments":[{"name":"newLen","nativeSrc":"64033:6:89","nodeType":"YulIdentifier","src":"64033:6:89"},{"arguments":[{"kind":"number","nativeSrc":"64045:2:89","nodeType":"YulLiteral","src":"64045:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"64041:3:89","nodeType":"YulIdentifier","src":"64041:3:89"},"nativeSrc":"64041:7:89","nodeType":"YulFunctionCall","src":"64041:7:89"}],"functionName":{"name":"and","nativeSrc":"64029:3:89","nodeType":"YulIdentifier","src":"64029:3:89"},"nativeSrc":"64029:20:89","nodeType":"YulFunctionCall","src":"64029:20:89"},"variables":[{"name":"loopEnd","nativeSrc":"64018:7:89","nodeType":"YulTypedName","src":"64018:7:89","type":""}]},{"nativeSrc":"64062:90:89","nodeType":"YulVariableDeclaration","src":"64062:90:89","value":{"arguments":[{"name":"slot","nativeSrc":"64147:4:89","nodeType":"YulIdentifier","src":"64147:4:89"}],"functionName":{"name":"array_dataslot_array_struct_OutMessageProcessedEventStruct_storage_dyn","nativeSrc":"64076:70:89","nodeType":"YulIdentifier","src":"64076:70:89"},"nativeSrc":"64076:76:89","nodeType":"YulFunctionCall","src":"64076:76:89"},"variables":[{"name":"dstPtr","nativeSrc":"64066:6:89","nodeType":"YulTypedName","src":"64066:6:89","type":""}]},{"nativeSrc":"64165:10:89","nodeType":"YulVariableDeclaration","src":"64165:10:89","value":{"kind":"number","nativeSrc":"64174:1:89","nodeType":"YulLiteral","src":"64174:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"64169:1:89","nodeType":"YulTypedName","src":"64169:1:89","type":""}]},{"body":{"nativeSrc":"64245:165:89","nodeType":"YulBlock","src":"64245:165:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"64270:6:89","nodeType":"YulIdentifier","src":"64270:6:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"64288:3:89","nodeType":"YulIdentifier","src":"64288:3:89"},{"name":"srcOffset","nativeSrc":"64293:9:89","nodeType":"YulIdentifier","src":"64293:9:89"}],"functionName":{"name":"add","nativeSrc":"64284:3:89","nodeType":"YulIdentifier","src":"64284:3:89"},"nativeSrc":"64284:19:89","nodeType":"YulFunctionCall","src":"64284:19:89"}],"functionName":{"name":"mload","nativeSrc":"64278:5:89","nodeType":"YulIdentifier","src":"64278:5:89"},"nativeSrc":"64278:26:89","nodeType":"YulFunctionCall","src":"64278:26:89"}],"functionName":{"name":"sstore","nativeSrc":"64263:6:89","nodeType":"YulIdentifier","src":"64263:6:89"},"nativeSrc":"64263:42:89","nodeType":"YulFunctionCall","src":"64263:42:89"},"nativeSrc":"64263:42:89","nodeType":"YulExpressionStatement","src":"64263:42:89"},{"nativeSrc":"64322:24:89","nodeType":"YulAssignment","src":"64322:24:89","value":{"arguments":[{"name":"dstPtr","nativeSrc":"64336:6:89","nodeType":"YulIdentifier","src":"64336:6:89"},{"kind":"number","nativeSrc":"64344:1:89","nodeType":"YulLiteral","src":"64344:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"64332:3:89","nodeType":"YulIdentifier","src":"64332:3:89"},"nativeSrc":"64332:14:89","nodeType":"YulFunctionCall","src":"64332:14:89"},"variableNames":[{"name":"dstPtr","nativeSrc":"64322:6:89","nodeType":"YulIdentifier","src":"64322:6:89"}]},{"nativeSrc":"64363:33:89","nodeType":"YulAssignment","src":"64363:33:89","value":{"arguments":[{"name":"srcOffset","nativeSrc":"64380:9:89","nodeType":"YulIdentifier","src":"64380:9:89"},{"kind":"number","nativeSrc":"64391:4:89","nodeType":"YulLiteral","src":"64391:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"64376:3:89","nodeType":"YulIdentifier","src":"64376:3:89"},"nativeSrc":"64376:20:89","nodeType":"YulFunctionCall","src":"64376:20:89"},"variableNames":[{"name":"srcOffset","nativeSrc":"64363:9:89","nodeType":"YulIdentifier","src":"64363:9:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"64199:1:89","nodeType":"YulIdentifier","src":"64199:1:89"},{"name":"loopEnd","nativeSrc":"64202:7:89","nodeType":"YulIdentifier","src":"64202:7:89"}],"functionName":{"name":"lt","nativeSrc":"64196:2:89","nodeType":"YulIdentifier","src":"64196:2:89"},"nativeSrc":"64196:14:89","nodeType":"YulFunctionCall","src":"64196:14:89"},"nativeSrc":"64188:222:89","nodeType":"YulForLoop","post":{"nativeSrc":"64211:21:89","nodeType":"YulBlock","src":"64211:21:89","statements":[{"nativeSrc":"64213:17:89","nodeType":"YulAssignment","src":"64213:17:89","value":{"arguments":[{"name":"i","nativeSrc":"64222:1:89","nodeType":"YulIdentifier","src":"64222:1:89"},{"kind":"number","nativeSrc":"64225:4:89","nodeType":"YulLiteral","src":"64225:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"64218:3:89","nodeType":"YulIdentifier","src":"64218:3:89"},"nativeSrc":"64218:12:89","nodeType":"YulFunctionCall","src":"64218:12:89"},"variableNames":[{"name":"i","nativeSrc":"64213:1:89","nodeType":"YulIdentifier","src":"64213:1:89"}]}]},"pre":{"nativeSrc":"64192:3:89","nodeType":"YulBlock","src":"64192:3:89","statements":[]},"src":"64188:222:89"},{"body":{"nativeSrc":"64458:166:89","nodeType":"YulBlock","src":"64458:166:89","statements":[{"nativeSrc":"64476:43:89","nodeType":"YulVariableDeclaration","src":"64476:43:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"64503:3:89","nodeType":"YulIdentifier","src":"64503:3:89"},{"name":"srcOffset","nativeSrc":"64508:9:89","nodeType":"YulIdentifier","src":"64508:9:89"}],"functionName":{"name":"add","nativeSrc":"64499:3:89","nodeType":"YulIdentifier","src":"64499:3:89"},"nativeSrc":"64499:19:89","nodeType":"YulFunctionCall","src":"64499:19:89"}],"functionName":{"name":"mload","nativeSrc":"64493:5:89","nodeType":"YulIdentifier","src":"64493:5:89"},"nativeSrc":"64493:26:89","nodeType":"YulFunctionCall","src":"64493:26:89"},"variables":[{"name":"lastValue","nativeSrc":"64480:9:89","nodeType":"YulTypedName","src":"64480:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"64543:6:89","nodeType":"YulIdentifier","src":"64543:6:89"},{"arguments":[{"name":"lastValue","nativeSrc":"64555:9:89","nodeType":"YulIdentifier","src":"64555:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"64582:1:89","nodeType":"YulLiteral","src":"64582:1:89","type":"","value":"3"},{"name":"newLen","nativeSrc":"64585:6:89","nodeType":"YulIdentifier","src":"64585:6:89"}],"functionName":{"name":"shl","nativeSrc":"64578:3:89","nodeType":"YulIdentifier","src":"64578:3:89"},"nativeSrc":"64578:14:89","nodeType":"YulFunctionCall","src":"64578:14:89"},{"kind":"number","nativeSrc":"64594:3:89","nodeType":"YulLiteral","src":"64594:3:89","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"64574:3:89","nodeType":"YulIdentifier","src":"64574:3:89"},"nativeSrc":"64574:24:89","nodeType":"YulFunctionCall","src":"64574:24:89"},{"arguments":[{"kind":"number","nativeSrc":"64604:1:89","nodeType":"YulLiteral","src":"64604:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"64600:3:89","nodeType":"YulIdentifier","src":"64600:3:89"},"nativeSrc":"64600:6:89","nodeType":"YulFunctionCall","src":"64600:6:89"}],"functionName":{"name":"shr","nativeSrc":"64570:3:89","nodeType":"YulIdentifier","src":"64570:3:89"},"nativeSrc":"64570:37:89","nodeType":"YulFunctionCall","src":"64570:37:89"}],"functionName":{"name":"not","nativeSrc":"64566:3:89","nodeType":"YulIdentifier","src":"64566:3:89"},"nativeSrc":"64566:42:89","nodeType":"YulFunctionCall","src":"64566:42:89"}],"functionName":{"name":"and","nativeSrc":"64551:3:89","nodeType":"YulIdentifier","src":"64551:3:89"},"nativeSrc":"64551:58:89","nodeType":"YulFunctionCall","src":"64551:58:89"}],"functionName":{"name":"sstore","nativeSrc":"64536:6:89","nodeType":"YulIdentifier","src":"64536:6:89"},"nativeSrc":"64536:74:89","nodeType":"YulFunctionCall","src":"64536:74:89"},"nativeSrc":"64536:74:89","nodeType":"YulExpressionStatement","src":"64536:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"64429:7:89","nodeType":"YulIdentifier","src":"64429:7:89"},{"name":"newLen","nativeSrc":"64438:6:89","nodeType":"YulIdentifier","src":"64438:6:89"}],"functionName":{"name":"lt","nativeSrc":"64426:2:89","nodeType":"YulIdentifier","src":"64426:2:89"},"nativeSrc":"64426:19:89","nodeType":"YulFunctionCall","src":"64426:19:89"},"nativeSrc":"64423:201:89","nodeType":"YulIf","src":"64423:201:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"64644:4:89","nodeType":"YulIdentifier","src":"64644:4:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"64658:1:89","nodeType":"YulLiteral","src":"64658:1:89","type":"","value":"1"},{"name":"newLen","nativeSrc":"64661:6:89","nodeType":"YulIdentifier","src":"64661:6:89"}],"functionName":{"name":"shl","nativeSrc":"64654:3:89","nodeType":"YulIdentifier","src":"64654:3:89"},"nativeSrc":"64654:14:89","nodeType":"YulFunctionCall","src":"64654:14:89"},{"kind":"number","nativeSrc":"64670:1:89","nodeType":"YulLiteral","src":"64670:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"64650:3:89","nodeType":"YulIdentifier","src":"64650:3:89"},"nativeSrc":"64650:22:89","nodeType":"YulFunctionCall","src":"64650:22:89"}],"functionName":{"name":"sstore","nativeSrc":"64637:6:89","nodeType":"YulIdentifier","src":"64637:6:89"},"nativeSrc":"64637:36:89","nodeType":"YulFunctionCall","src":"64637:36:89"},"nativeSrc":"64637:36:89","nodeType":"YulExpressionStatement","src":"64637:36:89"}]},"nativeSrc":"63993:690:89","nodeType":"YulCase","src":"63993:690:89","value":{"kind":"number","nativeSrc":"63998:1:89","nodeType":"YulLiteral","src":"63998:1:89","type":"","value":"1"}},{"body":{"nativeSrc":"64700:234:89","nodeType":"YulBlock","src":"64700:234:89","statements":[{"nativeSrc":"64714:14:89","nodeType":"YulVariableDeclaration","src":"64714:14:89","value":{"kind":"number","nativeSrc":"64727:1:89","nodeType":"YulLiteral","src":"64727:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"64718:5:89","nodeType":"YulTypedName","src":"64718:5:89","type":""}]},{"body":{"nativeSrc":"64763:67:89","nodeType":"YulBlock","src":"64763:67:89","statements":[{"nativeSrc":"64781:35:89","nodeType":"YulAssignment","src":"64781:35:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"64800:3:89","nodeType":"YulIdentifier","src":"64800:3:89"},{"name":"srcOffset","nativeSrc":"64805:9:89","nodeType":"YulIdentifier","src":"64805:9:89"}],"functionName":{"name":"add","nativeSrc":"64796:3:89","nodeType":"YulIdentifier","src":"64796:3:89"},"nativeSrc":"64796:19:89","nodeType":"YulFunctionCall","src":"64796:19:89"}],"functionName":{"name":"mload","nativeSrc":"64790:5:89","nodeType":"YulIdentifier","src":"64790:5:89"},"nativeSrc":"64790:26:89","nodeType":"YulFunctionCall","src":"64790:26:89"},"variableNames":[{"name":"value","nativeSrc":"64781:5:89","nodeType":"YulIdentifier","src":"64781:5:89"}]}]},"condition":{"name":"newLen","nativeSrc":"64744:6:89","nodeType":"YulIdentifier","src":"64744:6:89"},"nativeSrc":"64741:89:89","nodeType":"YulIf","src":"64741:89:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"64850:4:89","nodeType":"YulIdentifier","src":"64850:4:89"},{"arguments":[{"name":"value","nativeSrc":"64909:5:89","nodeType":"YulIdentifier","src":"64909:5:89"},{"name":"newLen","nativeSrc":"64916:6:89","nodeType":"YulIdentifier","src":"64916:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"64856:52:89","nodeType":"YulIdentifier","src":"64856:52:89"},"nativeSrc":"64856:67:89","nodeType":"YulFunctionCall","src":"64856:67:89"}],"functionName":{"name":"sstore","nativeSrc":"64843:6:89","nodeType":"YulIdentifier","src":"64843:6:89"},"nativeSrc":"64843:81:89","nodeType":"YulFunctionCall","src":"64843:81:89"},"nativeSrc":"64843:81:89","nodeType":"YulExpressionStatement","src":"64843:81:89"}]},"nativeSrc":"64692:242:89","nodeType":"YulCase","src":"64692:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"63973:6:89","nodeType":"YulIdentifier","src":"63973:6:89"},{"kind":"number","nativeSrc":"63981:2:89","nodeType":"YulLiteral","src":"63981:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"63970:2:89","nodeType":"YulIdentifier","src":"63970:2:89"},"nativeSrc":"63970:14:89","nodeType":"YulFunctionCall","src":"63970:14:89"},"nativeSrc":"63963:971:89","nodeType":"YulSwitch","src":"63963:971:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"63600:1340:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"63681:4:89","nodeType":"YulTypedName","src":"63681:4:89","type":""},{"name":"src","nativeSrc":"63687:3:89","nodeType":"YulTypedName","src":"63687:3:89","type":""}],"src":"63600:1340:89"},{"body":{"nativeSrc":"65896:1133:89","nodeType":"YulBlock","src":"65896:1133:89","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"65924:6:89","nodeType":"YulIdentifier","src":"65924:6:89"},{"name":"headStart","nativeSrc":"65932:9:89","nodeType":"YulIdentifier","src":"65932:9:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"65906:17:89","nodeType":"YulIdentifier","src":"65906:17:89"},"nativeSrc":"65906:36:89","nodeType":"YulFunctionCall","src":"65906:36:89"},"nativeSrc":"65906:36:89","nodeType":"YulExpressionStatement","src":"65906:36:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"65962:9:89","nodeType":"YulIdentifier","src":"65962:9:89"},{"kind":"number","nativeSrc":"65973:2:89","nodeType":"YulLiteral","src":"65973:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"65958:3:89","nodeType":"YulIdentifier","src":"65958:3:89"},"nativeSrc":"65958:18:89","nodeType":"YulFunctionCall","src":"65958:18:89"},{"name":"value1","nativeSrc":"65978:6:89","nodeType":"YulIdentifier","src":"65978:6:89"}],"functionName":{"name":"mstore","nativeSrc":"65951:6:89","nodeType":"YulIdentifier","src":"65951:6:89"},"nativeSrc":"65951:34:89","nodeType":"YulFunctionCall","src":"65951:34:89"},"nativeSrc":"65951:34:89","nodeType":"YulExpressionStatement","src":"65951:34:89"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"66013:6:89","nodeType":"YulIdentifier","src":"66013:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"66025:9:89","nodeType":"YulIdentifier","src":"66025:9:89"},{"kind":"number","nativeSrc":"66036:2:89","nodeType":"YulLiteral","src":"66036:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"66021:3:89","nodeType":"YulIdentifier","src":"66021:3:89"},"nativeSrc":"66021:18:89","nodeType":"YulFunctionCall","src":"66021:18:89"}],"functionName":{"name":"abi_encode_address","nativeSrc":"65994:18:89","nodeType":"YulIdentifier","src":"65994:18:89"},"nativeSrc":"65994:46:89","nodeType":"YulFunctionCall","src":"65994:46:89"},"nativeSrc":"65994:46:89","nodeType":"YulExpressionStatement","src":"65994:46:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66060:9:89","nodeType":"YulIdentifier","src":"66060:9:89"},{"kind":"number","nativeSrc":"66071:2:89","nodeType":"YulLiteral","src":"66071:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"66056:3:89","nodeType":"YulIdentifier","src":"66056:3:89"},"nativeSrc":"66056:18:89","nodeType":"YulFunctionCall","src":"66056:18:89"},{"kind":"number","nativeSrc":"66076:3:89","nodeType":"YulLiteral","src":"66076:3:89","type":"","value":"384"}],"functionName":{"name":"mstore","nativeSrc":"66049:6:89","nodeType":"YulIdentifier","src":"66049:6:89"},"nativeSrc":"66049:31:89","nodeType":"YulFunctionCall","src":"66049:31:89"},"nativeSrc":"66049:31:89","nodeType":"YulExpressionStatement","src":"66049:31:89"},{"nativeSrc":"66089:60:89","nodeType":"YulVariableDeclaration","src":"66089:60:89","value":{"arguments":[{"name":"value3","nativeSrc":"66121:6:89","nodeType":"YulIdentifier","src":"66121:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"66133:9:89","nodeType":"YulIdentifier","src":"66133:9:89"},{"kind":"number","nativeSrc":"66144:3:89","nodeType":"YulLiteral","src":"66144:3:89","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"66129:3:89","nodeType":"YulIdentifier","src":"66129:3:89"},"nativeSrc":"66129:19:89","nodeType":"YulFunctionCall","src":"66129:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"66103:17:89","nodeType":"YulIdentifier","src":"66103:17:89"},"nativeSrc":"66103:46:89","nodeType":"YulFunctionCall","src":"66103:46:89"},"variables":[{"name":"tail_1","nativeSrc":"66093:6:89","nodeType":"YulTypedName","src":"66093:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66169:9:89","nodeType":"YulIdentifier","src":"66169:9:89"},{"kind":"number","nativeSrc":"66180:3:89","nodeType":"YulLiteral","src":"66180:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"66165:3:89","nodeType":"YulIdentifier","src":"66165:3:89"},"nativeSrc":"66165:19:89","nodeType":"YulFunctionCall","src":"66165:19:89"},{"arguments":[{"name":"tail_1","nativeSrc":"66190:6:89","nodeType":"YulIdentifier","src":"66190:6:89"},{"name":"headStart","nativeSrc":"66198:9:89","nodeType":"YulIdentifier","src":"66198:9:89"}],"functionName":{"name":"sub","nativeSrc":"66186:3:89","nodeType":"YulIdentifier","src":"66186:3:89"},"nativeSrc":"66186:22:89","nodeType":"YulFunctionCall","src":"66186:22:89"}],"functionName":{"name":"mstore","nativeSrc":"66158:6:89","nodeType":"YulIdentifier","src":"66158:6:89"},"nativeSrc":"66158:51:89","nodeType":"YulFunctionCall","src":"66158:51:89"},"nativeSrc":"66158:51:89","nodeType":"YulExpressionStatement","src":"66158:51:89"},{"nativeSrc":"66218:47:89","nodeType":"YulVariableDeclaration","src":"66218:47:89","value":{"arguments":[{"name":"value4","nativeSrc":"66250:6:89","nodeType":"YulIdentifier","src":"66250:6:89"},{"name":"tail_1","nativeSrc":"66258:6:89","nodeType":"YulIdentifier","src":"66258:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"66232:17:89","nodeType":"YulIdentifier","src":"66232:17:89"},"nativeSrc":"66232:33:89","nodeType":"YulFunctionCall","src":"66232:33:89"},"variables":[{"name":"tail_2","nativeSrc":"66222:6:89","nodeType":"YulTypedName","src":"66222:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66285:9:89","nodeType":"YulIdentifier","src":"66285:9:89"},{"kind":"number","nativeSrc":"66296:3:89","nodeType":"YulLiteral","src":"66296:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"66281:3:89","nodeType":"YulIdentifier","src":"66281:3:89"},"nativeSrc":"66281:19:89","nodeType":"YulFunctionCall","src":"66281:19:89"},{"name":"value5","nativeSrc":"66302:6:89","nodeType":"YulIdentifier","src":"66302:6:89"}],"functionName":{"name":"mstore","nativeSrc":"66274:6:89","nodeType":"YulIdentifier","src":"66274:6:89"},"nativeSrc":"66274:35:89","nodeType":"YulFunctionCall","src":"66274:35:89"},"nativeSrc":"66274:35:89","nodeType":"YulExpressionStatement","src":"66274:35:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66329:9:89","nodeType":"YulIdentifier","src":"66329:9:89"},{"kind":"number","nativeSrc":"66340:3:89","nodeType":"YulLiteral","src":"66340:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"66325:3:89","nodeType":"YulIdentifier","src":"66325:3:89"},"nativeSrc":"66325:19:89","nodeType":"YulFunctionCall","src":"66325:19:89"},{"name":"value6","nativeSrc":"66346:6:89","nodeType":"YulIdentifier","src":"66346:6:89"}],"functionName":{"name":"mstore","nativeSrc":"66318:6:89","nodeType":"YulIdentifier","src":"66318:6:89"},"nativeSrc":"66318:35:89","nodeType":"YulFunctionCall","src":"66318:35:89"},"nativeSrc":"66318:35:89","nodeType":"YulExpressionStatement","src":"66318:35:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66373:9:89","nodeType":"YulIdentifier","src":"66373:9:89"},{"kind":"number","nativeSrc":"66384:3:89","nodeType":"YulLiteral","src":"66384:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"66369:3:89","nodeType":"YulIdentifier","src":"66369:3:89"},"nativeSrc":"66369:19:89","nodeType":"YulFunctionCall","src":"66369:19:89"},{"arguments":[{"name":"tail_2","nativeSrc":"66394:6:89","nodeType":"YulIdentifier","src":"66394:6:89"},{"name":"headStart","nativeSrc":"66402:9:89","nodeType":"YulIdentifier","src":"66402:9:89"}],"functionName":{"name":"sub","nativeSrc":"66390:3:89","nodeType":"YulIdentifier","src":"66390:3:89"},"nativeSrc":"66390:22:89","nodeType":"YulFunctionCall","src":"66390:22:89"}],"functionName":{"name":"mstore","nativeSrc":"66362:6:89","nodeType":"YulIdentifier","src":"66362:6:89"},"nativeSrc":"66362:51:89","nodeType":"YulFunctionCall","src":"66362:51:89"},"nativeSrc":"66362:51:89","nodeType":"YulExpressionStatement","src":"66362:51:89"},{"nativeSrc":"66422:57:89","nodeType":"YulVariableDeclaration","src":"66422:57:89","value":{"arguments":[{"name":"value7","nativeSrc":"66464:6:89","nodeType":"YulIdentifier","src":"66464:6:89"},{"name":"tail_2","nativeSrc":"66472:6:89","nodeType":"YulIdentifier","src":"66472:6:89"}],"functionName":{"name":"abi_encode_array_string_dyn","nativeSrc":"66436:27:89","nodeType":"YulIdentifier","src":"66436:27:89"},"nativeSrc":"66436:43:89","nodeType":"YulFunctionCall","src":"66436:43:89"},"variables":[{"name":"tail_3","nativeSrc":"66426:6:89","nodeType":"YulTypedName","src":"66426:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66499:9:89","nodeType":"YulIdentifier","src":"66499:9:89"},{"kind":"number","nativeSrc":"66510:3:89","nodeType":"YulLiteral","src":"66510:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"66495:3:89","nodeType":"YulIdentifier","src":"66495:3:89"},"nativeSrc":"66495:19:89","nodeType":"YulFunctionCall","src":"66495:19:89"},{"arguments":[{"name":"tail_3","nativeSrc":"66520:6:89","nodeType":"YulIdentifier","src":"66520:6:89"},{"name":"headStart","nativeSrc":"66528:9:89","nodeType":"YulIdentifier","src":"66528:9:89"}],"functionName":{"name":"sub","nativeSrc":"66516:3:89","nodeType":"YulIdentifier","src":"66516:3:89"},"nativeSrc":"66516:22:89","nodeType":"YulFunctionCall","src":"66516:22:89"}],"functionName":{"name":"mstore","nativeSrc":"66488:6:89","nodeType":"YulIdentifier","src":"66488:6:89"},"nativeSrc":"66488:51:89","nodeType":"YulFunctionCall","src":"66488:51:89"},"nativeSrc":"66488:51:89","nodeType":"YulExpressionStatement","src":"66488:51:89"},{"nativeSrc":"66548:69:89","nodeType":"YulVariableDeclaration","src":"66548:69:89","value":{"arguments":[{"name":"value8","nativeSrc":"66602:6:89","nodeType":"YulIdentifier","src":"66602:6:89"},{"name":"tail_3","nativeSrc":"66610:6:89","nodeType":"YulIdentifier","src":"66610:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"66562:39:89","nodeType":"YulIdentifier","src":"66562:39:89"},"nativeSrc":"66562:55:89","nodeType":"YulFunctionCall","src":"66562:55:89"},"variables":[{"name":"tail_4","nativeSrc":"66552:6:89","nodeType":"YulTypedName","src":"66552:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66637:9:89","nodeType":"YulIdentifier","src":"66637:9:89"},{"kind":"number","nativeSrc":"66648:3:89","nodeType":"YulLiteral","src":"66648:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"66633:3:89","nodeType":"YulIdentifier","src":"66633:3:89"},"nativeSrc":"66633:19:89","nodeType":"YulFunctionCall","src":"66633:19:89"},{"arguments":[{"name":"tail_4","nativeSrc":"66658:6:89","nodeType":"YulIdentifier","src":"66658:6:89"},{"name":"headStart","nativeSrc":"66666:9:89","nodeType":"YulIdentifier","src":"66666:9:89"}],"functionName":{"name":"sub","nativeSrc":"66654:3:89","nodeType":"YulIdentifier","src":"66654:3:89"},"nativeSrc":"66654:22:89","nodeType":"YulFunctionCall","src":"66654:22:89"}],"functionName":{"name":"mstore","nativeSrc":"66626:6:89","nodeType":"YulIdentifier","src":"66626:6:89"},"nativeSrc":"66626:51:89","nodeType":"YulFunctionCall","src":"66626:51:89"},"nativeSrc":"66626:51:89","nodeType":"YulExpressionStatement","src":"66626:51:89"},{"nativeSrc":"66686:69:89","nodeType":"YulVariableDeclaration","src":"66686:69:89","value":{"arguments":[{"name":"value9","nativeSrc":"66740:6:89","nodeType":"YulIdentifier","src":"66740:6:89"},{"name":"tail_4","nativeSrc":"66748:6:89","nodeType":"YulIdentifier","src":"66748:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"66700:39:89","nodeType":"YulIdentifier","src":"66700:39:89"},"nativeSrc":"66700:55:89","nodeType":"YulFunctionCall","src":"66700:55:89"},"variables":[{"name":"tail_5","nativeSrc":"66690:6:89","nodeType":"YulTypedName","src":"66690:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66775:9:89","nodeType":"YulIdentifier","src":"66775:9:89"},{"kind":"number","nativeSrc":"66786:3:89","nodeType":"YulLiteral","src":"66786:3:89","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"66771:3:89","nodeType":"YulIdentifier","src":"66771:3:89"},"nativeSrc":"66771:19:89","nodeType":"YulFunctionCall","src":"66771:19:89"},{"arguments":[{"name":"tail_5","nativeSrc":"66796:6:89","nodeType":"YulIdentifier","src":"66796:6:89"},{"name":"headStart","nativeSrc":"66804:9:89","nodeType":"YulIdentifier","src":"66804:9:89"}],"functionName":{"name":"sub","nativeSrc":"66792:3:89","nodeType":"YulIdentifier","src":"66792:3:89"},"nativeSrc":"66792:22:89","nodeType":"YulFunctionCall","src":"66792:22:89"}],"functionName":{"name":"mstore","nativeSrc":"66764:6:89","nodeType":"YulIdentifier","src":"66764:6:89"},"nativeSrc":"66764:51:89","nodeType":"YulFunctionCall","src":"66764:51:89"},"nativeSrc":"66764:51:89","nodeType":"YulExpressionStatement","src":"66764:51:89"},{"nativeSrc":"66824:68:89","nodeType":"YulVariableDeclaration","src":"66824:68:89","value":{"arguments":[{"name":"value10","nativeSrc":"66876:7:89","nodeType":"YulIdentifier","src":"66876:7:89"},{"name":"tail_5","nativeSrc":"66885:6:89","nodeType":"YulIdentifier","src":"66885:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"66838:37:89","nodeType":"YulIdentifier","src":"66838:37:89"},"nativeSrc":"66838:54:89","nodeType":"YulFunctionCall","src":"66838:54:89"},"variables":[{"name":"tail_6","nativeSrc":"66828:6:89","nodeType":"YulTypedName","src":"66828:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66912:9:89","nodeType":"YulIdentifier","src":"66912:9:89"},{"kind":"number","nativeSrc":"66923:3:89","nodeType":"YulLiteral","src":"66923:3:89","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"66908:3:89","nodeType":"YulIdentifier","src":"66908:3:89"},"nativeSrc":"66908:19:89","nodeType":"YulFunctionCall","src":"66908:19:89"},{"arguments":[{"name":"tail_6","nativeSrc":"66933:6:89","nodeType":"YulIdentifier","src":"66933:6:89"},{"name":"headStart","nativeSrc":"66941:9:89","nodeType":"YulIdentifier","src":"66941:9:89"}],"functionName":{"name":"sub","nativeSrc":"66929:3:89","nodeType":"YulIdentifier","src":"66929:3:89"},"nativeSrc":"66929:22:89","nodeType":"YulFunctionCall","src":"66929:22:89"}],"functionName":{"name":"mstore","nativeSrc":"66901:6:89","nodeType":"YulIdentifier","src":"66901:6:89"},"nativeSrc":"66901:51:89","nodeType":"YulFunctionCall","src":"66901:51:89"},"nativeSrc":"66901:51:89","nodeType":"YulExpressionStatement","src":"66901:51:89"},{"nativeSrc":"66961:62:89","nodeType":"YulAssignment","src":"66961:62:89","value":{"arguments":[{"name":"value11","nativeSrc":"67007:7:89","nodeType":"YulIdentifier","src":"67007:7:89"},{"name":"tail_6","nativeSrc":"67016:6:89","nodeType":"YulIdentifier","src":"67016:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"66969:37:89","nodeType":"YulIdentifier","src":"66969:37:89"},"nativeSrc":"66969:54:89","nodeType":"YulFunctionCall","src":"66969:54:89"},"variableNames":[{"name":"tail","nativeSrc":"66961:4:89","nodeType":"YulIdentifier","src":"66961:4:89"}]}]},"name":"abi_encode_tuple_t_uint64_t_bytes32_t_address_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_uint256_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr__to_t_uint64_t_bytes32_t_address_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_uint256_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"64945:2084:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"65775:9:89","nodeType":"YulTypedName","src":"65775:9:89","type":""},{"name":"value11","nativeSrc":"65786:7:89","nodeType":"YulTypedName","src":"65786:7:89","type":""},{"name":"value10","nativeSrc":"65795:7:89","nodeType":"YulTypedName","src":"65795:7:89","type":""},{"name":"value9","nativeSrc":"65804:6:89","nodeType":"YulTypedName","src":"65804:6:89","type":""},{"name":"value8","nativeSrc":"65812:6:89","nodeType":"YulTypedName","src":"65812:6:89","type":""},{"name":"value7","nativeSrc":"65820:6:89","nodeType":"YulTypedName","src":"65820:6:89","type":""},{"name":"value6","nativeSrc":"65828:6:89","nodeType":"YulTypedName","src":"65828:6:89","type":""},{"name":"value5","nativeSrc":"65836:6:89","nodeType":"YulTypedName","src":"65836:6:89","type":""},{"name":"value4","nativeSrc":"65844:6:89","nodeType":"YulTypedName","src":"65844:6:89","type":""},{"name":"value3","nativeSrc":"65852:6:89","nodeType":"YulTypedName","src":"65852:6:89","type":""},{"name":"value2","nativeSrc":"65860:6:89","nodeType":"YulTypedName","src":"65860:6:89","type":""},{"name":"value1","nativeSrc":"65868:6:89","nodeType":"YulTypedName","src":"65868:6:89","type":""},{"name":"value0","nativeSrc":"65876:6:89","nodeType":"YulTypedName","src":"65876:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"65887:4:89","nodeType":"YulTypedName","src":"65887:4:89","type":""}],"src":"64945:2084:89"},{"body":{"nativeSrc":"67153:63:89","nodeType":"YulBlock","src":"67153:63:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"67170:3:89","nodeType":"YulIdentifier","src":"67170:3:89"},{"name":"value0","nativeSrc":"67175:6:89","nodeType":"YulIdentifier","src":"67175:6:89"}],"functionName":{"name":"mstore","nativeSrc":"67163:6:89","nodeType":"YulIdentifier","src":"67163:6:89"},"nativeSrc":"67163:19:89","nodeType":"YulFunctionCall","src":"67163:19:89"},"nativeSrc":"67163:19:89","nodeType":"YulExpressionStatement","src":"67163:19:89"},{"nativeSrc":"67191:19:89","nodeType":"YulAssignment","src":"67191:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"67202:3:89","nodeType":"YulIdentifier","src":"67202:3:89"},{"kind":"number","nativeSrc":"67207:2:89","nodeType":"YulLiteral","src":"67207:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"67198:3:89","nodeType":"YulIdentifier","src":"67198:3:89"},"nativeSrc":"67198:12:89","nodeType":"YulFunctionCall","src":"67198:12:89"},"variableNames":[{"name":"end","nativeSrc":"67191:3:89","nodeType":"YulIdentifier","src":"67191:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"67034:182:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"67129:3:89","nodeType":"YulTypedName","src":"67129:3:89","type":""},{"name":"value0","nativeSrc":"67134:6:89","nodeType":"YulTypedName","src":"67134:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"67145:3:89","nodeType":"YulTypedName","src":"67145:3:89","type":""}],"src":"67034:182:89"},{"body":{"nativeSrc":"67348:144:89","nodeType":"YulBlock","src":"67348:144:89","statements":[{"nativeSrc":"67358:26:89","nodeType":"YulAssignment","src":"67358:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"67370:9:89","nodeType":"YulIdentifier","src":"67370:9:89"},{"kind":"number","nativeSrc":"67381:2:89","nodeType":"YulLiteral","src":"67381:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"67366:3:89","nodeType":"YulIdentifier","src":"67366:3:89"},"nativeSrc":"67366:18:89","nodeType":"YulFunctionCall","src":"67366:18:89"},"variableNames":[{"name":"tail","nativeSrc":"67358:4:89","nodeType":"YulIdentifier","src":"67358:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"67400:9:89","nodeType":"YulIdentifier","src":"67400:9:89"},{"arguments":[{"name":"value0","nativeSrc":"67415:6:89","nodeType":"YulIdentifier","src":"67415:6:89"},{"kind":"number","nativeSrc":"67423:18:89","nodeType":"YulLiteral","src":"67423:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"67411:3:89","nodeType":"YulIdentifier","src":"67411:3:89"},"nativeSrc":"67411:31:89","nodeType":"YulFunctionCall","src":"67411:31:89"}],"functionName":{"name":"mstore","nativeSrc":"67393:6:89","nodeType":"YulIdentifier","src":"67393:6:89"},"nativeSrc":"67393:50:89","nodeType":"YulFunctionCall","src":"67393:50:89"},"nativeSrc":"67393:50:89","nodeType":"YulExpressionStatement","src":"67393:50:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"67463:9:89","nodeType":"YulIdentifier","src":"67463:9:89"},{"kind":"number","nativeSrc":"67474:2:89","nodeType":"YulLiteral","src":"67474:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"67459:3:89","nodeType":"YulIdentifier","src":"67459:3:89"},"nativeSrc":"67459:18:89","nodeType":"YulFunctionCall","src":"67459:18:89"},{"name":"value1","nativeSrc":"67479:6:89","nodeType":"YulIdentifier","src":"67479:6:89"}],"functionName":{"name":"mstore","nativeSrc":"67452:6:89","nodeType":"YulIdentifier","src":"67452:6:89"},"nativeSrc":"67452:34:89","nodeType":"YulFunctionCall","src":"67452:34:89"},"nativeSrc":"67452:34:89","nodeType":"YulExpressionStatement","src":"67452:34:89"}]},"name":"abi_encode_tuple_t_uint64_t_uint256__to_t_uint64_t_uint256__fromStack_reversed","nativeSrc":"67221:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"67309:9:89","nodeType":"YulTypedName","src":"67309:9:89","type":""},{"name":"value1","nativeSrc":"67320:6:89","nodeType":"YulTypedName","src":"67320:6:89","type":""},{"name":"value0","nativeSrc":"67328:6:89","nodeType":"YulTypedName","src":"67328:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"67339:4:89","nodeType":"YulTypedName","src":"67339:4:89","type":""}],"src":"67221:271:89"},{"body":{"nativeSrc":"67606:1100:89","nodeType":"YulBlock","src":"67606:1100:89","statements":[{"nativeSrc":"67616:43:89","nodeType":"YulVariableDeclaration","src":"67616:43:89","value":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"67634:7:89","nodeType":"YulIdentifier","src":"67634:7:89"},{"name":"headStart","nativeSrc":"67643:9:89","nodeType":"YulIdentifier","src":"67643:9:89"}],"functionName":{"name":"sub","nativeSrc":"67630:3:89","nodeType":"YulIdentifier","src":"67630:3:89"},"nativeSrc":"67630:23:89","nodeType":"YulFunctionCall","src":"67630:23:89"},{"kind":"number","nativeSrc":"67655:3:89","nodeType":"YulLiteral","src":"67655:3:89","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"67626:3:89","nodeType":"YulIdentifier","src":"67626:3:89"},"nativeSrc":"67626:33:89","nodeType":"YulFunctionCall","src":"67626:33:89"},"variables":[{"name":"_1","nativeSrc":"67620:2:89","nodeType":"YulTypedName","src":"67620:2:89","type":""}]},{"body":{"nativeSrc":"67674:16:89","nodeType":"YulBlock","src":"67674:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"67683:1:89","nodeType":"YulLiteral","src":"67683:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"67686:1:89","nodeType":"YulLiteral","src":"67686:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"67676:6:89","nodeType":"YulIdentifier","src":"67676:6:89"},"nativeSrc":"67676:12:89","nodeType":"YulFunctionCall","src":"67676:12:89"},"nativeSrc":"67676:12:89","nodeType":"YulExpressionStatement","src":"67676:12:89"}]},"condition":{"name":"_1","nativeSrc":"67671:2:89","nodeType":"YulIdentifier","src":"67671:2:89"},"nativeSrc":"67668:22:89","nodeType":"YulIf","src":"67668:22:89"},{"nativeSrc":"67699:7:89","nodeType":"YulAssignment","src":"67699:7:89","value":{"kind":"number","nativeSrc":"67705:1:89","nodeType":"YulLiteral","src":"67705:1:89","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"67699:2:89","nodeType":"YulIdentifier","src":"67699:2:89"}]},{"nativeSrc":"67715:15:89","nodeType":"YulVariableDeclaration","src":"67715:15:89","value":{"kind":"number","nativeSrc":"67729:1:89","nodeType":"YulLiteral","src":"67729:1:89","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"67719:6:89","nodeType":"YulTypedName","src":"67719:6:89","type":""}]},{"nativeSrc":"67739:19:89","nodeType":"YulAssignment","src":"67739:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"67755:2:89","nodeType":"YulLiteral","src":"67755:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67749:5:89","nodeType":"YulIdentifier","src":"67749:5:89"},"nativeSrc":"67749:9:89","nodeType":"YulFunctionCall","src":"67749:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"67739:6:89","nodeType":"YulIdentifier","src":"67739:6:89"}]},{"nativeSrc":"67767:34:89","nodeType":"YulVariableDeclaration","src":"67767:34:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"67789:6:89","nodeType":"YulIdentifier","src":"67789:6:89"},{"kind":"number","nativeSrc":"67797:3:89","nodeType":"YulLiteral","src":"67797:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"67785:3:89","nodeType":"YulIdentifier","src":"67785:3:89"},"nativeSrc":"67785:16:89","nodeType":"YulFunctionCall","src":"67785:16:89"},"variables":[{"name":"newFreePtr","nativeSrc":"67771:10:89","nodeType":"YulTypedName","src":"67771:10:89","type":""}]},{"body":{"nativeSrc":"67876:22:89","nodeType":"YulBlock","src":"67876:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"67878:16:89","nodeType":"YulIdentifier","src":"67878:16:89"},"nativeSrc":"67878:18:89","nodeType":"YulFunctionCall","src":"67878:18:89"},"nativeSrc":"67878:18:89","nodeType":"YulExpressionStatement","src":"67878:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"67819:10:89","nodeType":"YulIdentifier","src":"67819:10:89"},{"kind":"number","nativeSrc":"67831:18:89","nodeType":"YulLiteral","src":"67831:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"67816:2:89","nodeType":"YulIdentifier","src":"67816:2:89"},"nativeSrc":"67816:34:89","nodeType":"YulFunctionCall","src":"67816:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"67855:10:89","nodeType":"YulIdentifier","src":"67855:10:89"},{"name":"memPtr","nativeSrc":"67867:6:89","nodeType":"YulIdentifier","src":"67867:6:89"}],"functionName":{"name":"lt","nativeSrc":"67852:2:89","nodeType":"YulIdentifier","src":"67852:2:89"},"nativeSrc":"67852:22:89","nodeType":"YulFunctionCall","src":"67852:22:89"}],"functionName":{"name":"or","nativeSrc":"67813:2:89","nodeType":"YulIdentifier","src":"67813:2:89"},"nativeSrc":"67813:62:89","nodeType":"YulFunctionCall","src":"67813:62:89"},"nativeSrc":"67810:88:89","nodeType":"YulIf","src":"67810:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67914:2:89","nodeType":"YulLiteral","src":"67914:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"67918:10:89","nodeType":"YulIdentifier","src":"67918:10:89"}],"functionName":{"name":"mstore","nativeSrc":"67907:6:89","nodeType":"YulIdentifier","src":"67907:6:89"},"nativeSrc":"67907:22:89","nodeType":"YulFunctionCall","src":"67907:22:89"},"nativeSrc":"67907:22:89","nodeType":"YulExpressionStatement","src":"67907:22:89"},{"nativeSrc":"67938:14:89","nodeType":"YulVariableDeclaration","src":"67938:14:89","value":{"kind":"number","nativeSrc":"67951:1:89","nodeType":"YulLiteral","src":"67951:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"67942:5:89","nodeType":"YulTypedName","src":"67942:5:89","type":""}]},{"nativeSrc":"67961:25:89","nodeType":"YulAssignment","src":"67961:25:89","value":{"arguments":[{"name":"headStart","nativeSrc":"67976:9:89","nodeType":"YulIdentifier","src":"67976:9:89"}],"functionName":{"name":"mload","nativeSrc":"67970:5:89","nodeType":"YulIdentifier","src":"67970:5:89"},"nativeSrc":"67970:16:89","nodeType":"YulFunctionCall","src":"67970:16:89"},"variableNames":[{"name":"value","nativeSrc":"67961:5:89","nodeType":"YulIdentifier","src":"67961:5:89"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"68002:6:89","nodeType":"YulIdentifier","src":"68002:6:89"},{"name":"value","nativeSrc":"68010:5:89","nodeType":"YulIdentifier","src":"68010:5:89"}],"functionName":{"name":"mstore","nativeSrc":"67995:6:89","nodeType":"YulIdentifier","src":"67995:6:89"},"nativeSrc":"67995:21:89","nodeType":"YulFunctionCall","src":"67995:21:89"},"nativeSrc":"67995:21:89","nodeType":"YulExpressionStatement","src":"67995:21:89"},{"nativeSrc":"68025:40:89","nodeType":"YulVariableDeclaration","src":"68025:40:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68050:9:89","nodeType":"YulIdentifier","src":"68050:9:89"},{"kind":"number","nativeSrc":"68061:2:89","nodeType":"YulLiteral","src":"68061:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"68046:3:89","nodeType":"YulIdentifier","src":"68046:3:89"},"nativeSrc":"68046:18:89","nodeType":"YulFunctionCall","src":"68046:18:89"}],"functionName":{"name":"mload","nativeSrc":"68040:5:89","nodeType":"YulIdentifier","src":"68040:5:89"},"nativeSrc":"68040:25:89","nodeType":"YulFunctionCall","src":"68040:25:89"},"variables":[{"name":"value_1","nativeSrc":"68029:7:89","nodeType":"YulTypedName","src":"68029:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"68098:7:89","nodeType":"YulIdentifier","src":"68098:7:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"68074:23:89","nodeType":"YulIdentifier","src":"68074:23:89"},"nativeSrc":"68074:32:89","nodeType":"YulFunctionCall","src":"68074:32:89"},"nativeSrc":"68074:32:89","nodeType":"YulExpressionStatement","src":"68074:32:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"68126:6:89","nodeType":"YulIdentifier","src":"68126:6:89"},{"kind":"number","nativeSrc":"68134:2:89","nodeType":"YulLiteral","src":"68134:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"68122:3:89","nodeType":"YulIdentifier","src":"68122:3:89"},"nativeSrc":"68122:15:89","nodeType":"YulFunctionCall","src":"68122:15:89"},{"name":"value_1","nativeSrc":"68139:7:89","nodeType":"YulIdentifier","src":"68139:7:89"}],"functionName":{"name":"mstore","nativeSrc":"68115:6:89","nodeType":"YulIdentifier","src":"68115:6:89"},"nativeSrc":"68115:32:89","nodeType":"YulFunctionCall","src":"68115:32:89"},"nativeSrc":"68115:32:89","nodeType":"YulExpressionStatement","src":"68115:32:89"},{"nativeSrc":"68156:40:89","nodeType":"YulVariableDeclaration","src":"68156:40:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68181:9:89","nodeType":"YulIdentifier","src":"68181:9:89"},{"kind":"number","nativeSrc":"68192:2:89","nodeType":"YulLiteral","src":"68192:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"68177:3:89","nodeType":"YulIdentifier","src":"68177:3:89"},"nativeSrc":"68177:18:89","nodeType":"YulFunctionCall","src":"68177:18:89"}],"functionName":{"name":"mload","nativeSrc":"68171:5:89","nodeType":"YulIdentifier","src":"68171:5:89"},"nativeSrc":"68171:25:89","nodeType":"YulFunctionCall","src":"68171:25:89"},"variables":[{"name":"value_2","nativeSrc":"68160:7:89","nodeType":"YulTypedName","src":"68160:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"68229:7:89","nodeType":"YulIdentifier","src":"68229:7:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"68205:23:89","nodeType":"YulIdentifier","src":"68205:23:89"},"nativeSrc":"68205:32:89","nodeType":"YulFunctionCall","src":"68205:32:89"},"nativeSrc":"68205:32:89","nodeType":"YulExpressionStatement","src":"68205:32:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"68257:6:89","nodeType":"YulIdentifier","src":"68257:6:89"},{"kind":"number","nativeSrc":"68265:2:89","nodeType":"YulLiteral","src":"68265:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"68253:3:89","nodeType":"YulIdentifier","src":"68253:3:89"},"nativeSrc":"68253:15:89","nodeType":"YulFunctionCall","src":"68253:15:89"},{"name":"value_2","nativeSrc":"68270:7:89","nodeType":"YulIdentifier","src":"68270:7:89"}],"functionName":{"name":"mstore","nativeSrc":"68246:6:89","nodeType":"YulIdentifier","src":"68246:6:89"},"nativeSrc":"68246:32:89","nodeType":"YulFunctionCall","src":"68246:32:89"},"nativeSrc":"68246:32:89","nodeType":"YulExpressionStatement","src":"68246:32:89"},{"nativeSrc":"68287:40:89","nodeType":"YulVariableDeclaration","src":"68287:40:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68312:9:89","nodeType":"YulIdentifier","src":"68312:9:89"},{"kind":"number","nativeSrc":"68323:2:89","nodeType":"YulLiteral","src":"68323:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"68308:3:89","nodeType":"YulIdentifier","src":"68308:3:89"},"nativeSrc":"68308:18:89","nodeType":"YulFunctionCall","src":"68308:18:89"}],"functionName":{"name":"mload","nativeSrc":"68302:5:89","nodeType":"YulIdentifier","src":"68302:5:89"},"nativeSrc":"68302:25:89","nodeType":"YulFunctionCall","src":"68302:25:89"},"variables":[{"name":"value_3","nativeSrc":"68291:7:89","nodeType":"YulTypedName","src":"68291:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"68360:7:89","nodeType":"YulIdentifier","src":"68360:7:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"68336:23:89","nodeType":"YulIdentifier","src":"68336:23:89"},"nativeSrc":"68336:32:89","nodeType":"YulFunctionCall","src":"68336:32:89"},"nativeSrc":"68336:32:89","nodeType":"YulExpressionStatement","src":"68336:32:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"68388:6:89","nodeType":"YulIdentifier","src":"68388:6:89"},{"kind":"number","nativeSrc":"68396:2:89","nodeType":"YulLiteral","src":"68396:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"68384:3:89","nodeType":"YulIdentifier","src":"68384:3:89"},"nativeSrc":"68384:15:89","nodeType":"YulFunctionCall","src":"68384:15:89"},{"name":"value_3","nativeSrc":"68401:7:89","nodeType":"YulIdentifier","src":"68401:7:89"}],"functionName":{"name":"mstore","nativeSrc":"68377:6:89","nodeType":"YulIdentifier","src":"68377:6:89"},"nativeSrc":"68377:32:89","nodeType":"YulFunctionCall","src":"68377:32:89"},"nativeSrc":"68377:32:89","nodeType":"YulExpressionStatement","src":"68377:32:89"},{"nativeSrc":"68418:41:89","nodeType":"YulVariableDeclaration","src":"68418:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68443:9:89","nodeType":"YulIdentifier","src":"68443:9:89"},{"kind":"number","nativeSrc":"68454:3:89","nodeType":"YulLiteral","src":"68454:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"68439:3:89","nodeType":"YulIdentifier","src":"68439:3:89"},"nativeSrc":"68439:19:89","nodeType":"YulFunctionCall","src":"68439:19:89"}],"functionName":{"name":"mload","nativeSrc":"68433:5:89","nodeType":"YulIdentifier","src":"68433:5:89"},"nativeSrc":"68433:26:89","nodeType":"YulFunctionCall","src":"68433:26:89"},"variables":[{"name":"value_4","nativeSrc":"68422:7:89","nodeType":"YulTypedName","src":"68422:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_4","nativeSrc":"68492:7:89","nodeType":"YulIdentifier","src":"68492:7:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"68468:23:89","nodeType":"YulIdentifier","src":"68468:23:89"},"nativeSrc":"68468:32:89","nodeType":"YulFunctionCall","src":"68468:32:89"},"nativeSrc":"68468:32:89","nodeType":"YulExpressionStatement","src":"68468:32:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"68520:6:89","nodeType":"YulIdentifier","src":"68520:6:89"},{"kind":"number","nativeSrc":"68528:3:89","nodeType":"YulLiteral","src":"68528:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"68516:3:89","nodeType":"YulIdentifier","src":"68516:3:89"},"nativeSrc":"68516:16:89","nodeType":"YulFunctionCall","src":"68516:16:89"},{"name":"value_4","nativeSrc":"68534:7:89","nodeType":"YulIdentifier","src":"68534:7:89"}],"functionName":{"name":"mstore","nativeSrc":"68509:6:89","nodeType":"YulIdentifier","src":"68509:6:89"},"nativeSrc":"68509:33:89","nodeType":"YulFunctionCall","src":"68509:33:89"},"nativeSrc":"68509:33:89","nodeType":"YulExpressionStatement","src":"68509:33:89"},{"nativeSrc":"68551:41:89","nodeType":"YulVariableDeclaration","src":"68551:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68576:9:89","nodeType":"YulIdentifier","src":"68576:9:89"},{"kind":"number","nativeSrc":"68587:3:89","nodeType":"YulLiteral","src":"68587:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"68572:3:89","nodeType":"YulIdentifier","src":"68572:3:89"},"nativeSrc":"68572:19:89","nodeType":"YulFunctionCall","src":"68572:19:89"}],"functionName":{"name":"mload","nativeSrc":"68566:5:89","nodeType":"YulIdentifier","src":"68566:5:89"},"nativeSrc":"68566:26:89","nodeType":"YulFunctionCall","src":"68566:26:89"},"variables":[{"name":"value_5","nativeSrc":"68555:7:89","nodeType":"YulTypedName","src":"68555:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_5","nativeSrc":"68625:7:89","nodeType":"YulIdentifier","src":"68625:7:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"68601:23:89","nodeType":"YulIdentifier","src":"68601:23:89"},"nativeSrc":"68601:32:89","nodeType":"YulFunctionCall","src":"68601:32:89"},"nativeSrc":"68601:32:89","nodeType":"YulExpressionStatement","src":"68601:32:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"68653:6:89","nodeType":"YulIdentifier","src":"68653:6:89"},{"kind":"number","nativeSrc":"68661:3:89","nodeType":"YulLiteral","src":"68661:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"68649:3:89","nodeType":"YulIdentifier","src":"68649:3:89"},"nativeSrc":"68649:16:89","nodeType":"YulFunctionCall","src":"68649:16:89"},{"name":"value_5","nativeSrc":"68667:7:89","nodeType":"YulIdentifier","src":"68667:7:89"}],"functionName":{"name":"mstore","nativeSrc":"68642:6:89","nodeType":"YulIdentifier","src":"68642:6:89"},"nativeSrc":"68642:33:89","nodeType":"YulFunctionCall","src":"68642:33:89"},"nativeSrc":"68642:33:89","nodeType":"YulExpressionStatement","src":"68642:33:89"},{"nativeSrc":"68684:16:89","nodeType":"YulAssignment","src":"68684:16:89","value":{"name":"memPtr","nativeSrc":"68694:6:89","nodeType":"YulIdentifier","src":"68694:6:89"},"variableNames":[{"name":"value0","nativeSrc":"68684:6:89","nodeType":"YulIdentifier","src":"68684:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_EpochInfo_$16098_memory_ptr_fromMemory","nativeSrc":"67497:1209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"67572:9:89","nodeType":"YulTypedName","src":"67572:9:89","type":""},{"name":"dataEnd","nativeSrc":"67583:7:89","nodeType":"YulTypedName","src":"67583:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"67595:6:89","nodeType":"YulTypedName","src":"67595:6:89","type":""}],"src":"67497:1209:89"},{"body":{"nativeSrc":"68884:182:89","nodeType":"YulBlock","src":"68884:182:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"68901:3:89","nodeType":"YulIdentifier","src":"68901:3:89"},{"name":"value0","nativeSrc":"68906:6:89","nodeType":"YulIdentifier","src":"68906:6:89"}],"functionName":{"name":"mstore","nativeSrc":"68894:6:89","nodeType":"YulIdentifier","src":"68894:6:89"},"nativeSrc":"68894:19:89","nodeType":"YulFunctionCall","src":"68894:19:89"},"nativeSrc":"68894:19:89","nodeType":"YulExpressionStatement","src":"68894:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"68933:3:89","nodeType":"YulIdentifier","src":"68933:3:89"},{"kind":"number","nativeSrc":"68938:2:89","nodeType":"YulLiteral","src":"68938:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"68929:3:89","nodeType":"YulIdentifier","src":"68929:3:89"},"nativeSrc":"68929:12:89","nodeType":"YulFunctionCall","src":"68929:12:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"68951:3:89","nodeType":"YulLiteral","src":"68951:3:89","type":"","value":"192"},{"name":"value1","nativeSrc":"68956:6:89","nodeType":"YulIdentifier","src":"68956:6:89"}],"functionName":{"name":"shl","nativeSrc":"68947:3:89","nodeType":"YulIdentifier","src":"68947:3:89"},"nativeSrc":"68947:16:89","nodeType":"YulFunctionCall","src":"68947:16:89"},{"arguments":[{"kind":"number","nativeSrc":"68969:3:89","nodeType":"YulLiteral","src":"68969:3:89","type":"","value":"192"},{"kind":"number","nativeSrc":"68974:18:89","nodeType":"YulLiteral","src":"68974:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"shl","nativeSrc":"68965:3:89","nodeType":"YulIdentifier","src":"68965:3:89"},"nativeSrc":"68965:28:89","nodeType":"YulFunctionCall","src":"68965:28:89"}],"functionName":{"name":"and","nativeSrc":"68943:3:89","nodeType":"YulIdentifier","src":"68943:3:89"},"nativeSrc":"68943:51:89","nodeType":"YulFunctionCall","src":"68943:51:89"}],"functionName":{"name":"mstore","nativeSrc":"68922:6:89","nodeType":"YulIdentifier","src":"68922:6:89"},"nativeSrc":"68922:73:89","nodeType":"YulFunctionCall","src":"68922:73:89"},"nativeSrc":"68922:73:89","nodeType":"YulExpressionStatement","src":"68922:73:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"69015:3:89","nodeType":"YulIdentifier","src":"69015:3:89"},{"kind":"number","nativeSrc":"69020:2:89","nodeType":"YulLiteral","src":"69020:2:89","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"69011:3:89","nodeType":"YulIdentifier","src":"69011:3:89"},"nativeSrc":"69011:12:89","nodeType":"YulFunctionCall","src":"69011:12:89"},{"name":"value2","nativeSrc":"69025:6:89","nodeType":"YulIdentifier","src":"69025:6:89"}],"functionName":{"name":"mstore","nativeSrc":"69004:6:89","nodeType":"YulIdentifier","src":"69004:6:89"},"nativeSrc":"69004:28:89","nodeType":"YulFunctionCall","src":"69004:28:89"},"nativeSrc":"69004:28:89","nodeType":"YulExpressionStatement","src":"69004:28:89"},{"nativeSrc":"69041:19:89","nodeType":"YulAssignment","src":"69041:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"69052:3:89","nodeType":"YulIdentifier","src":"69052:3:89"},{"kind":"number","nativeSrc":"69057:2:89","nodeType":"YulLiteral","src":"69057:2:89","type":"","value":"72"}],"functionName":{"name":"add","nativeSrc":"69048:3:89","nodeType":"YulIdentifier","src":"69048:3:89"},"nativeSrc":"69048:12:89","nodeType":"YulFunctionCall","src":"69048:12:89"},"variableNames":[{"name":"end","nativeSrc":"69041:3:89","nodeType":"YulIdentifier","src":"69041:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes32_t_uint64_t_bytes32__to_t_bytes32_t_uint64_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"68711:355:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"68844:3:89","nodeType":"YulTypedName","src":"68844:3:89","type":""},{"name":"value2","nativeSrc":"68849:6:89","nodeType":"YulTypedName","src":"68849:6:89","type":""},{"name":"value1","nativeSrc":"68857:6:89","nodeType":"YulTypedName","src":"68857:6:89","type":""},{"name":"value0","nativeSrc":"68865:6:89","nodeType":"YulTypedName","src":"68865:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"68876:3:89","nodeType":"YulTypedName","src":"68876:3:89","type":""}],"src":"68711:355:89"},{"body":{"nativeSrc":"69109:171:89","nodeType":"YulBlock","src":"69109:171:89","statements":[{"body":{"nativeSrc":"69140:111:89","nodeType":"YulBlock","src":"69140:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"69161:1:89","nodeType":"YulLiteral","src":"69161:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"69168:3:89","nodeType":"YulLiteral","src":"69168:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"69173:10:89","nodeType":"YulLiteral","src":"69173:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"69164:3:89","nodeType":"YulIdentifier","src":"69164:3:89"},"nativeSrc":"69164:20:89","nodeType":"YulFunctionCall","src":"69164:20:89"}],"functionName":{"name":"mstore","nativeSrc":"69154:6:89","nodeType":"YulIdentifier","src":"69154:6:89"},"nativeSrc":"69154:31:89","nodeType":"YulFunctionCall","src":"69154:31:89"},"nativeSrc":"69154:31:89","nodeType":"YulExpressionStatement","src":"69154:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69205:1:89","nodeType":"YulLiteral","src":"69205:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"69208:4:89","nodeType":"YulLiteral","src":"69208:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"69198:6:89","nodeType":"YulIdentifier","src":"69198:6:89"},"nativeSrc":"69198:15:89","nodeType":"YulFunctionCall","src":"69198:15:89"},"nativeSrc":"69198:15:89","nodeType":"YulExpressionStatement","src":"69198:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69233:1:89","nodeType":"YulLiteral","src":"69233:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"69236:4:89","nodeType":"YulLiteral","src":"69236:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"69226:6:89","nodeType":"YulIdentifier","src":"69226:6:89"},"nativeSrc":"69226:15:89","nodeType":"YulFunctionCall","src":"69226:15:89"},"nativeSrc":"69226:15:89","nodeType":"YulExpressionStatement","src":"69226:15:89"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"69129:1:89","nodeType":"YulIdentifier","src":"69129:1:89"}],"functionName":{"name":"iszero","nativeSrc":"69122:6:89","nodeType":"YulIdentifier","src":"69122:6:89"},"nativeSrc":"69122:9:89","nodeType":"YulFunctionCall","src":"69122:9:89"},"nativeSrc":"69119:132:89","nodeType":"YulIf","src":"69119:132:89"},{"nativeSrc":"69260:14:89","nodeType":"YulAssignment","src":"69260:14:89","value":{"arguments":[{"name":"x","nativeSrc":"69269:1:89","nodeType":"YulIdentifier","src":"69269:1:89"},{"name":"y","nativeSrc":"69272:1:89","nodeType":"YulIdentifier","src":"69272:1:89"}],"functionName":{"name":"mod","nativeSrc":"69265:3:89","nodeType":"YulIdentifier","src":"69265:3:89"},"nativeSrc":"69265:9:89","nodeType":"YulFunctionCall","src":"69265:9:89"},"variableNames":[{"name":"r","nativeSrc":"69260:1:89","nodeType":"YulIdentifier","src":"69260:1:89"}]}]},"name":"mod_t_uint256","nativeSrc":"69071:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"69094:1:89","nodeType":"YulTypedName","src":"69094:1:89","type":""},{"name":"y","nativeSrc":"69097:1:89","nodeType":"YulTypedName","src":"69097:1:89","type":""}],"returnVariables":[{"name":"r","nativeSrc":"69103:1:89","nodeType":"YulTypedName","src":"69103:1:89","type":""}],"src":"69071:209:89"},{"body":{"nativeSrc":"69442:214:89","nodeType":"YulBlock","src":"69442:214:89","statements":[{"nativeSrc":"69452:26:89","nodeType":"YulAssignment","src":"69452:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"69464:9:89","nodeType":"YulIdentifier","src":"69464:9:89"},{"kind":"number","nativeSrc":"69475:2:89","nodeType":"YulLiteral","src":"69475:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"69460:3:89","nodeType":"YulIdentifier","src":"69460:3:89"},"nativeSrc":"69460:18:89","nodeType":"YulFunctionCall","src":"69460:18:89"},"variableNames":[{"name":"tail","nativeSrc":"69452:4:89","nodeType":"YulIdentifier","src":"69452:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"69494:9:89","nodeType":"YulIdentifier","src":"69494:9:89"},{"name":"value0","nativeSrc":"69505:6:89","nodeType":"YulIdentifier","src":"69505:6:89"}],"functionName":{"name":"mstore","nativeSrc":"69487:6:89","nodeType":"YulIdentifier","src":"69487:6:89"},"nativeSrc":"69487:25:89","nodeType":"YulFunctionCall","src":"69487:25:89"},"nativeSrc":"69487:25:89","nodeType":"YulExpressionStatement","src":"69487:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"69532:9:89","nodeType":"YulIdentifier","src":"69532:9:89"},{"kind":"number","nativeSrc":"69543:2:89","nodeType":"YulLiteral","src":"69543:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"69528:3:89","nodeType":"YulIdentifier","src":"69528:3:89"},"nativeSrc":"69528:18:89","nodeType":"YulFunctionCall","src":"69528:18:89"},{"arguments":[{"name":"value1","nativeSrc":"69552:6:89","nodeType":"YulIdentifier","src":"69552:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"69568:3:89","nodeType":"YulLiteral","src":"69568:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"69573:1:89","nodeType":"YulLiteral","src":"69573:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"69564:3:89","nodeType":"YulIdentifier","src":"69564:3:89"},"nativeSrc":"69564:11:89","nodeType":"YulFunctionCall","src":"69564:11:89"},{"kind":"number","nativeSrc":"69577:1:89","nodeType":"YulLiteral","src":"69577:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"69560:3:89","nodeType":"YulIdentifier","src":"69560:3:89"},"nativeSrc":"69560:19:89","nodeType":"YulFunctionCall","src":"69560:19:89"}],"functionName":{"name":"and","nativeSrc":"69548:3:89","nodeType":"YulIdentifier","src":"69548:3:89"},"nativeSrc":"69548:32:89","nodeType":"YulFunctionCall","src":"69548:32:89"}],"functionName":{"name":"mstore","nativeSrc":"69521:6:89","nodeType":"YulIdentifier","src":"69521:6:89"},"nativeSrc":"69521:60:89","nodeType":"YulFunctionCall","src":"69521:60:89"},"nativeSrc":"69521:60:89","nodeType":"YulExpressionStatement","src":"69521:60:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"69601:9:89","nodeType":"YulIdentifier","src":"69601:9:89"},{"kind":"number","nativeSrc":"69612:2:89","nodeType":"YulLiteral","src":"69612:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"69597:3:89","nodeType":"YulIdentifier","src":"69597:3:89"},"nativeSrc":"69597:18:89","nodeType":"YulFunctionCall","src":"69597:18:89"},{"arguments":[{"name":"value2","nativeSrc":"69621:6:89","nodeType":"YulIdentifier","src":"69621:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"69637:3:89","nodeType":"YulLiteral","src":"69637:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"69642:1:89","nodeType":"YulLiteral","src":"69642:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"69633:3:89","nodeType":"YulIdentifier","src":"69633:3:89"},"nativeSrc":"69633:11:89","nodeType":"YulFunctionCall","src":"69633:11:89"},{"kind":"number","nativeSrc":"69646:1:89","nodeType":"YulLiteral","src":"69646:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"69629:3:89","nodeType":"YulIdentifier","src":"69629:3:89"},"nativeSrc":"69629:19:89","nodeType":"YulFunctionCall","src":"69629:19:89"}],"functionName":{"name":"and","nativeSrc":"69617:3:89","nodeType":"YulIdentifier","src":"69617:3:89"},"nativeSrc":"69617:32:89","nodeType":"YulFunctionCall","src":"69617:32:89"}],"functionName":{"name":"mstore","nativeSrc":"69590:6:89","nodeType":"YulIdentifier","src":"69590:6:89"},"nativeSrc":"69590:60:89","nodeType":"YulFunctionCall","src":"69590:60:89"},"nativeSrc":"69590:60:89","nodeType":"YulExpressionStatement","src":"69590:60:89"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__fromStack_reversed","nativeSrc":"69285:371:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"69395:9:89","nodeType":"YulTypedName","src":"69395:9:89","type":""},{"name":"value2","nativeSrc":"69406:6:89","nodeType":"YulTypedName","src":"69406:6:89","type":""},{"name":"value1","nativeSrc":"69414:6:89","nodeType":"YulTypedName","src":"69414:6:89","type":""},{"name":"value0","nativeSrc":"69422:6:89","nodeType":"YulTypedName","src":"69422:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"69433:4:89","nodeType":"YulTypedName","src":"69433:4:89","type":""}],"src":"69285:371:89"},{"body":{"nativeSrc":"69739:167:89","nodeType":"YulBlock","src":"69739:167:89","statements":[{"body":{"nativeSrc":"69785:16:89","nodeType":"YulBlock","src":"69785:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"69794:1:89","nodeType":"YulLiteral","src":"69794:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"69797:1:89","nodeType":"YulLiteral","src":"69797:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"69787:6:89","nodeType":"YulIdentifier","src":"69787:6:89"},"nativeSrc":"69787:12:89","nodeType":"YulFunctionCall","src":"69787:12:89"},"nativeSrc":"69787:12:89","nodeType":"YulExpressionStatement","src":"69787:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"69760:7:89","nodeType":"YulIdentifier","src":"69760:7:89"},{"name":"headStart","nativeSrc":"69769:9:89","nodeType":"YulIdentifier","src":"69769:9:89"}],"functionName":{"name":"sub","nativeSrc":"69756:3:89","nodeType":"YulIdentifier","src":"69756:3:89"},"nativeSrc":"69756:23:89","nodeType":"YulFunctionCall","src":"69756:23:89"},{"kind":"number","nativeSrc":"69781:2:89","nodeType":"YulLiteral","src":"69781:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"69752:3:89","nodeType":"YulIdentifier","src":"69752:3:89"},"nativeSrc":"69752:32:89","nodeType":"YulFunctionCall","src":"69752:32:89"},"nativeSrc":"69749:52:89","nodeType":"YulIf","src":"69749:52:89"},{"nativeSrc":"69810:29:89","nodeType":"YulVariableDeclaration","src":"69810:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"69829:9:89","nodeType":"YulIdentifier","src":"69829:9:89"}],"functionName":{"name":"mload","nativeSrc":"69823:5:89","nodeType":"YulIdentifier","src":"69823:5:89"},"nativeSrc":"69823:16:89","nodeType":"YulFunctionCall","src":"69823:16:89"},"variables":[{"name":"value","nativeSrc":"69814:5:89","nodeType":"YulTypedName","src":"69814:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"69870:5:89","nodeType":"YulIdentifier","src":"69870:5:89"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"69848:21:89","nodeType":"YulIdentifier","src":"69848:21:89"},"nativeSrc":"69848:28:89","nodeType":"YulFunctionCall","src":"69848:28:89"},"nativeSrc":"69848:28:89","nodeType":"YulExpressionStatement","src":"69848:28:89"},{"nativeSrc":"69885:15:89","nodeType":"YulAssignment","src":"69885:15:89","value":{"name":"value","nativeSrc":"69895:5:89","nodeType":"YulIdentifier","src":"69895:5:89"},"variableNames":[{"name":"value0","nativeSrc":"69885:6:89","nodeType":"YulIdentifier","src":"69885:6:89"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"69661:245:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"69705:9:89","nodeType":"YulTypedName","src":"69705:9:89","type":""},{"name":"dataEnd","nativeSrc":"69716:7:89","nodeType":"YulTypedName","src":"69716:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"69728:6:89","nodeType":"YulTypedName","src":"69728:6:89","type":""}],"src":"69661:245:89"},{"body":{"nativeSrc":"70068:109:89","nodeType":"YulBlock","src":"70068:109:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"70085:9:89","nodeType":"YulIdentifier","src":"70085:9:89"},{"kind":"number","nativeSrc":"70096:2:89","nodeType":"YulLiteral","src":"70096:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"70078:6:89","nodeType":"YulIdentifier","src":"70078:6:89"},"nativeSrc":"70078:21:89","nodeType":"YulFunctionCall","src":"70078:21:89"},"nativeSrc":"70078:21:89","nodeType":"YulExpressionStatement","src":"70078:21:89"},{"nativeSrc":"70108:63:89","nodeType":"YulAssignment","src":"70108:63:89","value":{"arguments":[{"name":"value0","nativeSrc":"70144:6:89","nodeType":"YulIdentifier","src":"70144:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"70156:9:89","nodeType":"YulIdentifier","src":"70156:9:89"},{"kind":"number","nativeSrc":"70167:2:89","nodeType":"YulLiteral","src":"70167:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"70152:3:89","nodeType":"YulIdentifier","src":"70152:3:89"},"nativeSrc":"70152:18:89","nodeType":"YulFunctionCall","src":"70152:18:89"}],"functionName":{"name":"abi_encode_struct_TokenInfo","nativeSrc":"70116:27:89","nodeType":"YulIdentifier","src":"70116:27:89"},"nativeSrc":"70116:55:89","nodeType":"YulFunctionCall","src":"70116:55:89"},"variableNames":[{"name":"tail","nativeSrc":"70108:4:89","nodeType":"YulIdentifier","src":"70108:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_TokenInfo_$15983_memory_ptr__to_t_struct$_TokenInfo_$15983_memory_ptr__fromStack_reversed","nativeSrc":"69911:266:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70037:9:89","nodeType":"YulTypedName","src":"70037:9:89","type":""},{"name":"value0","nativeSrc":"70048:6:89","nodeType":"YulTypedName","src":"70048:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"70059:4:89","nodeType":"YulTypedName","src":"70059:4:89","type":""}],"src":"69911:266:89"},{"body":{"nativeSrc":"70335:107:89","nodeType":"YulBlock","src":"70335:107:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"70352:9:89","nodeType":"YulIdentifier","src":"70352:9:89"},{"kind":"number","nativeSrc":"70363:2:89","nodeType":"YulLiteral","src":"70363:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"70345:6:89","nodeType":"YulIdentifier","src":"70345:6:89"},"nativeSrc":"70345:21:89","nodeType":"YulFunctionCall","src":"70345:21:89"},"nativeSrc":"70345:21:89","nodeType":"YulExpressionStatement","src":"70345:21:89"},{"nativeSrc":"70375:61:89","nodeType":"YulAssignment","src":"70375:61:89","value":{"arguments":[{"name":"value0","nativeSrc":"70409:6:89","nodeType":"YulIdentifier","src":"70409:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"70421:9:89","nodeType":"YulIdentifier","src":"70421:9:89"},{"kind":"number","nativeSrc":"70432:2:89","nodeType":"YulLiteral","src":"70432:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"70417:3:89","nodeType":"YulIdentifier","src":"70417:3:89"},"nativeSrc":"70417:18:89","nodeType":"YulFunctionCall","src":"70417:18:89"}],"functionName":{"name":"abi_encode_struct_NFTInfo","nativeSrc":"70383:25:89","nodeType":"YulIdentifier","src":"70383:25:89"},"nativeSrc":"70383:53:89","nodeType":"YulFunctionCall","src":"70383:53:89"},"variableNames":[{"name":"tail","nativeSrc":"70375:4:89","nodeType":"YulIdentifier","src":"70375:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_NFTInfo_$15993_memory_ptr__to_t_struct$_NFTInfo_$15993_memory_ptr__fromStack_reversed","nativeSrc":"70182:260:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70304:9:89","nodeType":"YulTypedName","src":"70304:9:89","type":""},{"name":"value0","nativeSrc":"70315:6:89","nodeType":"YulTypedName","src":"70315:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"70326:4:89","nodeType":"YulTypedName","src":"70326:4:89","type":""}],"src":"70182:260:89"},{"body":{"nativeSrc":"70546:101:89","nodeType":"YulBlock","src":"70546:101:89","statements":[{"nativeSrc":"70556:26:89","nodeType":"YulAssignment","src":"70556:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"70568:9:89","nodeType":"YulIdentifier","src":"70568:9:89"},{"kind":"number","nativeSrc":"70579:2:89","nodeType":"YulLiteral","src":"70579:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"70564:3:89","nodeType":"YulIdentifier","src":"70564:3:89"},"nativeSrc":"70564:18:89","nodeType":"YulFunctionCall","src":"70564:18:89"},"variableNames":[{"name":"tail","nativeSrc":"70556:4:89","nodeType":"YulIdentifier","src":"70556:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"70598:9:89","nodeType":"YulIdentifier","src":"70598:9:89"},{"arguments":[{"name":"value0","nativeSrc":"70613:6:89","nodeType":"YulIdentifier","src":"70613:6:89"},{"kind":"number","nativeSrc":"70621:18:89","nodeType":"YulLiteral","src":"70621:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"70609:3:89","nodeType":"YulIdentifier","src":"70609:3:89"},"nativeSrc":"70609:31:89","nodeType":"YulFunctionCall","src":"70609:31:89"}],"functionName":{"name":"mstore","nativeSrc":"70591:6:89","nodeType":"YulIdentifier","src":"70591:6:89"},"nativeSrc":"70591:50:89","nodeType":"YulFunctionCall","src":"70591:50:89"},"nativeSrc":"70591:50:89","nodeType":"YulExpressionStatement","src":"70591:50:89"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"70447:200:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70515:9:89","nodeType":"YulTypedName","src":"70515:9:89","type":""},{"name":"value0","nativeSrc":"70526:6:89","nodeType":"YulTypedName","src":"70526:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"70537:4:89","nodeType":"YulTypedName","src":"70537:4:89","type":""}],"src":"70447:200:89"},{"body":{"nativeSrc":"70733:149:89","nodeType":"YulBlock","src":"70733:149:89","statements":[{"body":{"nativeSrc":"70779:16:89","nodeType":"YulBlock","src":"70779:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"70788:1:89","nodeType":"YulLiteral","src":"70788:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"70791:1:89","nodeType":"YulLiteral","src":"70791:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"70781:6:89","nodeType":"YulIdentifier","src":"70781:6:89"},"nativeSrc":"70781:12:89","nodeType":"YulFunctionCall","src":"70781:12:89"},"nativeSrc":"70781:12:89","nodeType":"YulExpressionStatement","src":"70781:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"70754:7:89","nodeType":"YulIdentifier","src":"70754:7:89"},{"name":"headStart","nativeSrc":"70763:9:89","nodeType":"YulIdentifier","src":"70763:9:89"}],"functionName":{"name":"sub","nativeSrc":"70750:3:89","nodeType":"YulIdentifier","src":"70750:3:89"},"nativeSrc":"70750:23:89","nodeType":"YulFunctionCall","src":"70750:23:89"},{"kind":"number","nativeSrc":"70775:2:89","nodeType":"YulLiteral","src":"70775:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"70746:3:89","nodeType":"YulIdentifier","src":"70746:3:89"},"nativeSrc":"70746:32:89","nodeType":"YulFunctionCall","src":"70746:32:89"},"nativeSrc":"70743:52:89","nodeType":"YulIf","src":"70743:52:89"},{"nativeSrc":"70804:14:89","nodeType":"YulVariableDeclaration","src":"70804:14:89","value":{"kind":"number","nativeSrc":"70817:1:89","nodeType":"YulLiteral","src":"70817:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"70808:5:89","nodeType":"YulTypedName","src":"70808:5:89","type":""}]},{"nativeSrc":"70827:25:89","nodeType":"YulAssignment","src":"70827:25:89","value":{"arguments":[{"name":"headStart","nativeSrc":"70842:9:89","nodeType":"YulIdentifier","src":"70842:9:89"}],"functionName":{"name":"mload","nativeSrc":"70836:5:89","nodeType":"YulIdentifier","src":"70836:5:89"},"nativeSrc":"70836:16:89","nodeType":"YulFunctionCall","src":"70836:16:89"},"variableNames":[{"name":"value","nativeSrc":"70827:5:89","nodeType":"YulIdentifier","src":"70827:5:89"}]},{"nativeSrc":"70861:15:89","nodeType":"YulAssignment","src":"70861:15:89","value":{"name":"value","nativeSrc":"70871:5:89","nodeType":"YulIdentifier","src":"70871:5:89"},"variableNames":[{"name":"value0","nativeSrc":"70861:6:89","nodeType":"YulIdentifier","src":"70861:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"70652:230:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70699:9:89","nodeType":"YulTypedName","src":"70699:9:89","type":""},{"name":"dataEnd","nativeSrc":"70710:7:89","nodeType":"YulTypedName","src":"70710:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"70722:6:89","nodeType":"YulTypedName","src":"70722:6:89","type":""}],"src":"70652:230:89"},{"body":{"nativeSrc":"71029:435:89","nodeType":"YulBlock","src":"71029:435:89","statements":[{"nativeSrc":"71039:51:89","nodeType":"YulVariableDeclaration","src":"71039:51:89","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"71078:11:89","nodeType":"YulIdentifier","src":"71078:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"71065:12:89","nodeType":"YulIdentifier","src":"71065:12:89"},"nativeSrc":"71065:25:89","nodeType":"YulFunctionCall","src":"71065:25:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"71043:18:89","nodeType":"YulTypedName","src":"71043:18:89","type":""}]},{"body":{"nativeSrc":"71179:16:89","nodeType":"YulBlock","src":"71179:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"71188:1:89","nodeType":"YulLiteral","src":"71188:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"71191:1:89","nodeType":"YulLiteral","src":"71191:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"71181:6:89","nodeType":"YulIdentifier","src":"71181:6:89"},"nativeSrc":"71181:12:89","nodeType":"YulFunctionCall","src":"71181:12:89"},"nativeSrc":"71181:12:89","nodeType":"YulExpressionStatement","src":"71181:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"71113:18:89","nodeType":"YulIdentifier","src":"71113:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"71141:12:89","nodeType":"YulIdentifier","src":"71141:12:89"},"nativeSrc":"71141:14:89","nodeType":"YulFunctionCall","src":"71141:14:89"},{"name":"base_ref","nativeSrc":"71157:8:89","nodeType":"YulIdentifier","src":"71157:8:89"}],"functionName":{"name":"sub","nativeSrc":"71137:3:89","nodeType":"YulIdentifier","src":"71137:3:89"},"nativeSrc":"71137:29:89","nodeType":"YulFunctionCall","src":"71137:29:89"},{"arguments":[{"kind":"number","nativeSrc":"71172:2:89","nodeType":"YulLiteral","src":"71172:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"71168:3:89","nodeType":"YulIdentifier","src":"71168:3:89"},"nativeSrc":"71168:7:89","nodeType":"YulFunctionCall","src":"71168:7:89"}],"functionName":{"name":"add","nativeSrc":"71133:3:89","nodeType":"YulIdentifier","src":"71133:3:89"},"nativeSrc":"71133:43:89","nodeType":"YulFunctionCall","src":"71133:43:89"}],"functionName":{"name":"slt","nativeSrc":"71109:3:89","nodeType":"YulIdentifier","src":"71109:3:89"},"nativeSrc":"71109:68:89","nodeType":"YulFunctionCall","src":"71109:68:89"}],"functionName":{"name":"iszero","nativeSrc":"71102:6:89","nodeType":"YulIdentifier","src":"71102:6:89"},"nativeSrc":"71102:76:89","nodeType":"YulFunctionCall","src":"71102:76:89"},"nativeSrc":"71099:96:89","nodeType":"YulIf","src":"71099:96:89"},{"nativeSrc":"71204:47:89","nodeType":"YulVariableDeclaration","src":"71204:47:89","value":{"arguments":[{"name":"base_ref","nativeSrc":"71222:8:89","nodeType":"YulIdentifier","src":"71222:8:89"},{"name":"rel_offset_of_tail","nativeSrc":"71232:18:89","nodeType":"YulIdentifier","src":"71232:18:89"}],"functionName":{"name":"add","nativeSrc":"71218:3:89","nodeType":"YulIdentifier","src":"71218:3:89"},"nativeSrc":"71218:33:89","nodeType":"YulFunctionCall","src":"71218:33:89"},"variables":[{"name":"addr_1","nativeSrc":"71208:6:89","nodeType":"YulTypedName","src":"71208:6:89","type":""}]},{"nativeSrc":"71260:30:89","nodeType":"YulAssignment","src":"71260:30:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"71283:6:89","nodeType":"YulIdentifier","src":"71283:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"71270:12:89","nodeType":"YulIdentifier","src":"71270:12:89"},"nativeSrc":"71270:20:89","nodeType":"YulFunctionCall","src":"71270:20:89"},"variableNames":[{"name":"length","nativeSrc":"71260:6:89","nodeType":"YulIdentifier","src":"71260:6:89"}]},{"body":{"nativeSrc":"71333:16:89","nodeType":"YulBlock","src":"71333:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"71342:1:89","nodeType":"YulLiteral","src":"71342:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"71345:1:89","nodeType":"YulLiteral","src":"71345:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"71335:6:89","nodeType":"YulIdentifier","src":"71335:6:89"},"nativeSrc":"71335:12:89","nodeType":"YulFunctionCall","src":"71335:12:89"},"nativeSrc":"71335:12:89","nodeType":"YulExpressionStatement","src":"71335:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"71305:6:89","nodeType":"YulIdentifier","src":"71305:6:89"},{"kind":"number","nativeSrc":"71313:18:89","nodeType":"YulLiteral","src":"71313:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"71302:2:89","nodeType":"YulIdentifier","src":"71302:2:89"},"nativeSrc":"71302:30:89","nodeType":"YulFunctionCall","src":"71302:30:89"},"nativeSrc":"71299:50:89","nodeType":"YulIf","src":"71299:50:89"},{"nativeSrc":"71358:25:89","nodeType":"YulAssignment","src":"71358:25:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"71370:6:89","nodeType":"YulIdentifier","src":"71370:6:89"},{"kind":"number","nativeSrc":"71378:4:89","nodeType":"YulLiteral","src":"71378:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"71366:3:89","nodeType":"YulIdentifier","src":"71366:3:89"},"nativeSrc":"71366:17:89","nodeType":"YulFunctionCall","src":"71366:17:89"},"variableNames":[{"name":"addr","nativeSrc":"71358:4:89","nodeType":"YulIdentifier","src":"71358:4:89"}]},{"body":{"nativeSrc":"71442:16:89","nodeType":"YulBlock","src":"71442:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"71451:1:89","nodeType":"YulLiteral","src":"71451:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"71454:1:89","nodeType":"YulLiteral","src":"71454:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"71444:6:89","nodeType":"YulIdentifier","src":"71444:6:89"},"nativeSrc":"71444:12:89","nodeType":"YulFunctionCall","src":"71444:12:89"},"nativeSrc":"71444:12:89","nodeType":"YulExpressionStatement","src":"71444:12:89"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"71399:4:89","nodeType":"YulIdentifier","src":"71399:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"71409:12:89","nodeType":"YulIdentifier","src":"71409:12:89"},"nativeSrc":"71409:14:89","nodeType":"YulFunctionCall","src":"71409:14:89"},{"arguments":[{"kind":"number","nativeSrc":"71429:1:89","nodeType":"YulLiteral","src":"71429:1:89","type":"","value":"6"},{"name":"length","nativeSrc":"71432:6:89","nodeType":"YulIdentifier","src":"71432:6:89"}],"functionName":{"name":"shl","nativeSrc":"71425:3:89","nodeType":"YulIdentifier","src":"71425:3:89"},"nativeSrc":"71425:14:89","nodeType":"YulFunctionCall","src":"71425:14:89"}],"functionName":{"name":"sub","nativeSrc":"71405:3:89","nodeType":"YulIdentifier","src":"71405:3:89"},"nativeSrc":"71405:35:89","nodeType":"YulFunctionCall","src":"71405:35:89"}],"functionName":{"name":"sgt","nativeSrc":"71395:3:89","nodeType":"YulIdentifier","src":"71395:3:89"},"nativeSrc":"71395:46:89","nodeType":"YulFunctionCall","src":"71395:46:89"},"nativeSrc":"71392:66:89","nodeType":"YulIf","src":"71392:66:89"}]},"name":"access_calldata_tail_t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"70887:577:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"70986:8:89","nodeType":"YulTypedName","src":"70986:8:89","type":""},{"name":"ptr_to_tail","nativeSrc":"70996:11:89","nodeType":"YulTypedName","src":"70996:11:89","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"71012:4:89","nodeType":"YulTypedName","src":"71012:4:89","type":""},{"name":"length","nativeSrc":"71018:6:89","nodeType":"YulTypedName","src":"71018:6:89","type":""}],"src":"70887:577:89"},{"body":{"nativeSrc":"71569:136:89","nodeType":"YulBlock","src":"71569:136:89","statements":[{"body":{"nativeSrc":"71615:16:89","nodeType":"YulBlock","src":"71615:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"71624:1:89","nodeType":"YulLiteral","src":"71624:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"71627:1:89","nodeType":"YulLiteral","src":"71627:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"71617:6:89","nodeType":"YulIdentifier","src":"71617:6:89"},"nativeSrc":"71617:12:89","nodeType":"YulFunctionCall","src":"71617:12:89"},"nativeSrc":"71617:12:89","nodeType":"YulExpressionStatement","src":"71617:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"71590:7:89","nodeType":"YulIdentifier","src":"71590:7:89"},{"name":"headStart","nativeSrc":"71599:9:89","nodeType":"YulIdentifier","src":"71599:9:89"}],"functionName":{"name":"sub","nativeSrc":"71586:3:89","nodeType":"YulIdentifier","src":"71586:3:89"},"nativeSrc":"71586:23:89","nodeType":"YulFunctionCall","src":"71586:23:89"},{"kind":"number","nativeSrc":"71611:2:89","nodeType":"YulLiteral","src":"71611:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"71582:3:89","nodeType":"YulIdentifier","src":"71582:3:89"},"nativeSrc":"71582:32:89","nodeType":"YulFunctionCall","src":"71582:32:89"},"nativeSrc":"71579:52:89","nodeType":"YulIf","src":"71579:52:89"},{"nativeSrc":"71640:59:89","nodeType":"YulAssignment","src":"71640:59:89","value":{"arguments":[{"name":"headStart","nativeSrc":"71680:9:89","nodeType":"YulIdentifier","src":"71680:9:89"},{"name":"dataEnd","nativeSrc":"71691:7:89","nodeType":"YulIdentifier","src":"71691:7:89"}],"functionName":{"name":"abi_decode_struct_TokenAmount","nativeSrc":"71650:29:89","nodeType":"YulIdentifier","src":"71650:29:89"},"nativeSrc":"71650:49:89","nodeType":"YulFunctionCall","src":"71650:49:89"},"variableNames":[{"name":"value0","nativeSrc":"71640:6:89","nodeType":"YulIdentifier","src":"71640:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_TokenAmount_$15999_memory_ptr","nativeSrc":"71469:236:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"71535:9:89","nodeType":"YulTypedName","src":"71535:9:89","type":""},{"name":"dataEnd","nativeSrc":"71546:7:89","nodeType":"YulTypedName","src":"71546:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"71558:6:89","nodeType":"YulTypedName","src":"71558:6:89","type":""}],"src":"71469:236:89"},{"body":{"nativeSrc":"71758:77:89","nodeType":"YulBlock","src":"71758:77:89","statements":[{"nativeSrc":"71768:16:89","nodeType":"YulAssignment","src":"71768:16:89","value":{"arguments":[{"name":"x","nativeSrc":"71779:1:89","nodeType":"YulIdentifier","src":"71779:1:89"},{"name":"y","nativeSrc":"71782:1:89","nodeType":"YulIdentifier","src":"71782:1:89"}],"functionName":{"name":"add","nativeSrc":"71775:3:89","nodeType":"YulIdentifier","src":"71775:3:89"},"nativeSrc":"71775:9:89","nodeType":"YulFunctionCall","src":"71775:9:89"},"variableNames":[{"name":"sum","nativeSrc":"71768:3:89","nodeType":"YulIdentifier","src":"71768:3:89"}]},{"body":{"nativeSrc":"71807:22:89","nodeType":"YulBlock","src":"71807:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"71809:16:89","nodeType":"YulIdentifier","src":"71809:16:89"},"nativeSrc":"71809:18:89","nodeType":"YulFunctionCall","src":"71809:18:89"},"nativeSrc":"71809:18:89","nodeType":"YulExpressionStatement","src":"71809:18:89"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"71799:1:89","nodeType":"YulIdentifier","src":"71799:1:89"},{"name":"sum","nativeSrc":"71802:3:89","nodeType":"YulIdentifier","src":"71802:3:89"}],"functionName":{"name":"gt","nativeSrc":"71796:2:89","nodeType":"YulIdentifier","src":"71796:2:89"},"nativeSrc":"71796:10:89","nodeType":"YulFunctionCall","src":"71796:10:89"},"nativeSrc":"71793:36:89","nodeType":"YulIf","src":"71793:36:89"}]},"name":"checked_add_t_uint256","nativeSrc":"71710:125:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"71741:1:89","nodeType":"YulTypedName","src":"71741:1:89","type":""},{"name":"y","nativeSrc":"71744:1:89","nodeType":"YulTypedName","src":"71744:1:89","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"71750:3:89","nodeType":"YulTypedName","src":"71750:3:89","type":""}],"src":"71710:125:89"},{"body":{"nativeSrc":"71980:438:89","nodeType":"YulBlock","src":"71980:438:89","statements":[{"nativeSrc":"71990:51:89","nodeType":"YulVariableDeclaration","src":"71990:51:89","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"72029:11:89","nodeType":"YulIdentifier","src":"72029:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"72016:12:89","nodeType":"YulIdentifier","src":"72016:12:89"},"nativeSrc":"72016:25:89","nodeType":"YulFunctionCall","src":"72016:25:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"71994:18:89","nodeType":"YulTypedName","src":"71994:18:89","type":""}]},{"body":{"nativeSrc":"72130:16:89","nodeType":"YulBlock","src":"72130:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72139:1:89","nodeType":"YulLiteral","src":"72139:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"72142:1:89","nodeType":"YulLiteral","src":"72142:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"72132:6:89","nodeType":"YulIdentifier","src":"72132:6:89"},"nativeSrc":"72132:12:89","nodeType":"YulFunctionCall","src":"72132:12:89"},"nativeSrc":"72132:12:89","nodeType":"YulExpressionStatement","src":"72132:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"72064:18:89","nodeType":"YulIdentifier","src":"72064:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"72092:12:89","nodeType":"YulIdentifier","src":"72092:12:89"},"nativeSrc":"72092:14:89","nodeType":"YulFunctionCall","src":"72092:14:89"},{"name":"base_ref","nativeSrc":"72108:8:89","nodeType":"YulIdentifier","src":"72108:8:89"}],"functionName":{"name":"sub","nativeSrc":"72088:3:89","nodeType":"YulIdentifier","src":"72088:3:89"},"nativeSrc":"72088:29:89","nodeType":"YulFunctionCall","src":"72088:29:89"},{"arguments":[{"kind":"number","nativeSrc":"72123:2:89","nodeType":"YulLiteral","src":"72123:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"72119:3:89","nodeType":"YulIdentifier","src":"72119:3:89"},"nativeSrc":"72119:7:89","nodeType":"YulFunctionCall","src":"72119:7:89"}],"functionName":{"name":"add","nativeSrc":"72084:3:89","nodeType":"YulIdentifier","src":"72084:3:89"},"nativeSrc":"72084:43:89","nodeType":"YulFunctionCall","src":"72084:43:89"}],"functionName":{"name":"slt","nativeSrc":"72060:3:89","nodeType":"YulIdentifier","src":"72060:3:89"},"nativeSrc":"72060:68:89","nodeType":"YulFunctionCall","src":"72060:68:89"}],"functionName":{"name":"iszero","nativeSrc":"72053:6:89","nodeType":"YulIdentifier","src":"72053:6:89"},"nativeSrc":"72053:76:89","nodeType":"YulFunctionCall","src":"72053:76:89"},"nativeSrc":"72050:96:89","nodeType":"YulIf","src":"72050:96:89"},{"nativeSrc":"72155:47:89","nodeType":"YulVariableDeclaration","src":"72155:47:89","value":{"arguments":[{"name":"base_ref","nativeSrc":"72173:8:89","nodeType":"YulIdentifier","src":"72173:8:89"},{"name":"rel_offset_of_tail","nativeSrc":"72183:18:89","nodeType":"YulIdentifier","src":"72183:18:89"}],"functionName":{"name":"add","nativeSrc":"72169:3:89","nodeType":"YulIdentifier","src":"72169:3:89"},"nativeSrc":"72169:33:89","nodeType":"YulFunctionCall","src":"72169:33:89"},"variables":[{"name":"addr_1","nativeSrc":"72159:6:89","nodeType":"YulTypedName","src":"72159:6:89","type":""}]},{"nativeSrc":"72211:30:89","nodeType":"YulAssignment","src":"72211:30:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"72234:6:89","nodeType":"YulIdentifier","src":"72234:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"72221:12:89","nodeType":"YulIdentifier","src":"72221:12:89"},"nativeSrc":"72221:20:89","nodeType":"YulFunctionCall","src":"72221:20:89"},"variableNames":[{"name":"length","nativeSrc":"72211:6:89","nodeType":"YulIdentifier","src":"72211:6:89"}]},{"body":{"nativeSrc":"72284:16:89","nodeType":"YulBlock","src":"72284:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72293:1:89","nodeType":"YulLiteral","src":"72293:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"72296:1:89","nodeType":"YulLiteral","src":"72296:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"72286:6:89","nodeType":"YulIdentifier","src":"72286:6:89"},"nativeSrc":"72286:12:89","nodeType":"YulFunctionCall","src":"72286:12:89"},"nativeSrc":"72286:12:89","nodeType":"YulExpressionStatement","src":"72286:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"72256:6:89","nodeType":"YulIdentifier","src":"72256:6:89"},{"kind":"number","nativeSrc":"72264:18:89","nodeType":"YulLiteral","src":"72264:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"72253:2:89","nodeType":"YulIdentifier","src":"72253:2:89"},"nativeSrc":"72253:30:89","nodeType":"YulFunctionCall","src":"72253:30:89"},"nativeSrc":"72250:50:89","nodeType":"YulIf","src":"72250:50:89"},{"nativeSrc":"72309:25:89","nodeType":"YulAssignment","src":"72309:25:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"72321:6:89","nodeType":"YulIdentifier","src":"72321:6:89"},{"kind":"number","nativeSrc":"72329:4:89","nodeType":"YulLiteral","src":"72329:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"72317:3:89","nodeType":"YulIdentifier","src":"72317:3:89"},"nativeSrc":"72317:17:89","nodeType":"YulFunctionCall","src":"72317:17:89"},"variableNames":[{"name":"addr","nativeSrc":"72309:4:89","nodeType":"YulIdentifier","src":"72309:4:89"}]},{"body":{"nativeSrc":"72396:16:89","nodeType":"YulBlock","src":"72396:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72405:1:89","nodeType":"YulLiteral","src":"72405:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"72408:1:89","nodeType":"YulLiteral","src":"72408:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"72398:6:89","nodeType":"YulIdentifier","src":"72398:6:89"},"nativeSrc":"72398:12:89","nodeType":"YulFunctionCall","src":"72398:12:89"},"nativeSrc":"72398:12:89","nodeType":"YulExpressionStatement","src":"72398:12:89"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"72350:4:89","nodeType":"YulIdentifier","src":"72350:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"72360:12:89","nodeType":"YulIdentifier","src":"72360:12:89"},"nativeSrc":"72360:14:89","nodeType":"YulFunctionCall","src":"72360:14:89"},{"arguments":[{"name":"length","nativeSrc":"72380:6:89","nodeType":"YulIdentifier","src":"72380:6:89"},{"kind":"number","nativeSrc":"72388:4:89","nodeType":"YulLiteral","src":"72388:4:89","type":"","value":"0x60"}],"functionName":{"name":"mul","nativeSrc":"72376:3:89","nodeType":"YulIdentifier","src":"72376:3:89"},"nativeSrc":"72376:17:89","nodeType":"YulFunctionCall","src":"72376:17:89"}],"functionName":{"name":"sub","nativeSrc":"72356:3:89","nodeType":"YulIdentifier","src":"72356:3:89"},"nativeSrc":"72356:38:89","nodeType":"YulFunctionCall","src":"72356:38:89"}],"functionName":{"name":"sgt","nativeSrc":"72346:3:89","nodeType":"YulIdentifier","src":"72346:3:89"},"nativeSrc":"72346:49:89","nodeType":"YulFunctionCall","src":"72346:49:89"},"nativeSrc":"72343:69:89","nodeType":"YulIf","src":"72343:69:89"}]},"name":"access_calldata_tail_t_array$_t_struct$_NFTAmount_$16007_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"71840:578:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"71937:8:89","nodeType":"YulTypedName","src":"71937:8:89","type":""},{"name":"ptr_to_tail","nativeSrc":"71947:11:89","nodeType":"YulTypedName","src":"71947:11:89","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"71963:4:89","nodeType":"YulTypedName","src":"71963:4:89","type":""},{"name":"length","nativeSrc":"71969:6:89","nodeType":"YulTypedName","src":"71969:6:89","type":""}],"src":"71840:578:89"},{"body":{"nativeSrc":"72521:134:89","nodeType":"YulBlock","src":"72521:134:89","statements":[{"body":{"nativeSrc":"72567:16:89","nodeType":"YulBlock","src":"72567:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72576:1:89","nodeType":"YulLiteral","src":"72576:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"72579:1:89","nodeType":"YulLiteral","src":"72579:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"72569:6:89","nodeType":"YulIdentifier","src":"72569:6:89"},"nativeSrc":"72569:12:89","nodeType":"YulFunctionCall","src":"72569:12:89"},"nativeSrc":"72569:12:89","nodeType":"YulExpressionStatement","src":"72569:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"72542:7:89","nodeType":"YulIdentifier","src":"72542:7:89"},{"name":"headStart","nativeSrc":"72551:9:89","nodeType":"YulIdentifier","src":"72551:9:89"}],"functionName":{"name":"sub","nativeSrc":"72538:3:89","nodeType":"YulIdentifier","src":"72538:3:89"},"nativeSrc":"72538:23:89","nodeType":"YulFunctionCall","src":"72538:23:89"},{"kind":"number","nativeSrc":"72563:2:89","nodeType":"YulLiteral","src":"72563:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"72534:3:89","nodeType":"YulIdentifier","src":"72534:3:89"},"nativeSrc":"72534:32:89","nodeType":"YulFunctionCall","src":"72534:32:89"},"nativeSrc":"72531:52:89","nodeType":"YulIf","src":"72531:52:89"},{"nativeSrc":"72592:57:89","nodeType":"YulAssignment","src":"72592:57:89","value":{"arguments":[{"name":"headStart","nativeSrc":"72630:9:89","nodeType":"YulIdentifier","src":"72630:9:89"},{"name":"dataEnd","nativeSrc":"72641:7:89","nodeType":"YulIdentifier","src":"72641:7:89"}],"functionName":{"name":"abi_decode_struct_NFTAmount","nativeSrc":"72602:27:89","nodeType":"YulIdentifier","src":"72602:27:89"},"nativeSrc":"72602:47:89","nodeType":"YulFunctionCall","src":"72602:47:89"},"variableNames":[{"name":"value0","nativeSrc":"72592:6:89","nodeType":"YulIdentifier","src":"72592:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_NFTAmount_$16007_memory_ptr","nativeSrc":"72423:232:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"72487:9:89","nodeType":"YulTypedName","src":"72487:9:89","type":""},{"name":"dataEnd","nativeSrc":"72498:7:89","nodeType":"YulTypedName","src":"72498:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72510:6:89","nodeType":"YulTypedName","src":"72510:6:89","type":""}],"src":"72423:232:89"},{"body":{"nativeSrc":"72741:149:89","nodeType":"YulBlock","src":"72741:149:89","statements":[{"body":{"nativeSrc":"72787:16:89","nodeType":"YulBlock","src":"72787:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72796:1:89","nodeType":"YulLiteral","src":"72796:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"72799:1:89","nodeType":"YulLiteral","src":"72799:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"72789:6:89","nodeType":"YulIdentifier","src":"72789:6:89"},"nativeSrc":"72789:12:89","nodeType":"YulFunctionCall","src":"72789:12:89"},"nativeSrc":"72789:12:89","nodeType":"YulExpressionStatement","src":"72789:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"72762:7:89","nodeType":"YulIdentifier","src":"72762:7:89"},{"name":"headStart","nativeSrc":"72771:9:89","nodeType":"YulIdentifier","src":"72771:9:89"}],"functionName":{"name":"sub","nativeSrc":"72758:3:89","nodeType":"YulIdentifier","src":"72758:3:89"},"nativeSrc":"72758:23:89","nodeType":"YulFunctionCall","src":"72758:23:89"},{"kind":"number","nativeSrc":"72783:2:89","nodeType":"YulLiteral","src":"72783:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"72754:3:89","nodeType":"YulIdentifier","src":"72754:3:89"},"nativeSrc":"72754:32:89","nodeType":"YulFunctionCall","src":"72754:32:89"},"nativeSrc":"72751:52:89","nodeType":"YulIf","src":"72751:52:89"},{"nativeSrc":"72812:14:89","nodeType":"YulVariableDeclaration","src":"72812:14:89","value":{"kind":"number","nativeSrc":"72825:1:89","nodeType":"YulLiteral","src":"72825:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"72816:5:89","nodeType":"YulTypedName","src":"72816:5:89","type":""}]},{"nativeSrc":"72835:25:89","nodeType":"YulAssignment","src":"72835:25:89","value":{"arguments":[{"name":"headStart","nativeSrc":"72850:9:89","nodeType":"YulIdentifier","src":"72850:9:89"}],"functionName":{"name":"mload","nativeSrc":"72844:5:89","nodeType":"YulIdentifier","src":"72844:5:89"},"nativeSrc":"72844:16:89","nodeType":"YulFunctionCall","src":"72844:16:89"},"variableNames":[{"name":"value","nativeSrc":"72835:5:89","nodeType":"YulIdentifier","src":"72835:5:89"}]},{"nativeSrc":"72869:15:89","nodeType":"YulAssignment","src":"72869:15:89","value":{"name":"value","nativeSrc":"72879:5:89","nodeType":"YulIdentifier","src":"72879:5:89"},"variableNames":[{"name":"value0","nativeSrc":"72869:6:89","nodeType":"YulIdentifier","src":"72869:6:89"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"72660:230:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"72707:9:89","nodeType":"YulTypedName","src":"72707:9:89","type":""},{"name":"dataEnd","nativeSrc":"72718:7:89","nodeType":"YulTypedName","src":"72718:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72730:6:89","nodeType":"YulTypedName","src":"72730:6:89","type":""}],"src":"72660:230:89"},{"body":{"nativeSrc":"72964:176:89","nodeType":"YulBlock","src":"72964:176:89","statements":[{"body":{"nativeSrc":"73010:16:89","nodeType":"YulBlock","src":"73010:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"73019:1:89","nodeType":"YulLiteral","src":"73019:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"73022:1:89","nodeType":"YulLiteral","src":"73022:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"73012:6:89","nodeType":"YulIdentifier","src":"73012:6:89"},"nativeSrc":"73012:12:89","nodeType":"YulFunctionCall","src":"73012:12:89"},"nativeSrc":"73012:12:89","nodeType":"YulExpressionStatement","src":"73012:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"72985:7:89","nodeType":"YulIdentifier","src":"72985:7:89"},{"name":"headStart","nativeSrc":"72994:9:89","nodeType":"YulIdentifier","src":"72994:9:89"}],"functionName":{"name":"sub","nativeSrc":"72981:3:89","nodeType":"YulIdentifier","src":"72981:3:89"},"nativeSrc":"72981:23:89","nodeType":"YulFunctionCall","src":"72981:23:89"},{"kind":"number","nativeSrc":"73006:2:89","nodeType":"YulLiteral","src":"73006:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"72977:3:89","nodeType":"YulIdentifier","src":"72977:3:89"},"nativeSrc":"72977:32:89","nodeType":"YulFunctionCall","src":"72977:32:89"},"nativeSrc":"72974:52:89","nodeType":"YulIf","src":"72974:52:89"},{"nativeSrc":"73035:36:89","nodeType":"YulVariableDeclaration","src":"73035:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"73061:9:89","nodeType":"YulIdentifier","src":"73061:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"73048:12:89","nodeType":"YulIdentifier","src":"73048:12:89"},"nativeSrc":"73048:23:89","nodeType":"YulFunctionCall","src":"73048:23:89"},"variables":[{"name":"value","nativeSrc":"73039:5:89","nodeType":"YulTypedName","src":"73039:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"73104:5:89","nodeType":"YulIdentifier","src":"73104:5:89"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"73080:23:89","nodeType":"YulIdentifier","src":"73080:23:89"},"nativeSrc":"73080:30:89","nodeType":"YulFunctionCall","src":"73080:30:89"},"nativeSrc":"73080:30:89","nodeType":"YulExpressionStatement","src":"73080:30:89"},{"nativeSrc":"73119:15:89","nodeType":"YulAssignment","src":"73119:15:89","value":{"name":"value","nativeSrc":"73129:5:89","nodeType":"YulIdentifier","src":"73129:5:89"},"variableNames":[{"name":"value0","nativeSrc":"73119:6:89","nodeType":"YulIdentifier","src":"73119:6:89"}]}]},"name":"abi_decode_tuple_t_uint64","nativeSrc":"72895:245:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"72930:9:89","nodeType":"YulTypedName","src":"72930:9:89","type":""},{"name":"dataEnd","nativeSrc":"72941:7:89","nodeType":"YulTypedName","src":"72941:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72953:6:89","nodeType":"YulTypedName","src":"72953:6:89","type":""}],"src":"72895:245:89"},{"body":{"nativeSrc":"73306:585:89","nodeType":"YulBlock","src":"73306:585:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"73323:9:89","nodeType":"YulIdentifier","src":"73323:9:89"},{"kind":"number","nativeSrc":"73334:2:89","nodeType":"YulLiteral","src":"73334:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"73316:6:89","nodeType":"YulIdentifier","src":"73316:6:89"},"nativeSrc":"73316:21:89","nodeType":"YulFunctionCall","src":"73316:21:89"},"nativeSrc":"73316:21:89","nodeType":"YulExpressionStatement","src":"73316:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"73357:9:89","nodeType":"YulIdentifier","src":"73357:9:89"},{"kind":"number","nativeSrc":"73368:2:89","nodeType":"YulLiteral","src":"73368:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"73353:3:89","nodeType":"YulIdentifier","src":"73353:3:89"},"nativeSrc":"73353:18:89","nodeType":"YulFunctionCall","src":"73353:18:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"73383:6:89","nodeType":"YulIdentifier","src":"73383:6:89"}],"functionName":{"name":"mload","nativeSrc":"73377:5:89","nodeType":"YulIdentifier","src":"73377:5:89"},"nativeSrc":"73377:13:89","nodeType":"YulFunctionCall","src":"73377:13:89"},{"kind":"number","nativeSrc":"73392:18:89","nodeType":"YulLiteral","src":"73392:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"73373:3:89","nodeType":"YulIdentifier","src":"73373:3:89"},"nativeSrc":"73373:38:89","nodeType":"YulFunctionCall","src":"73373:38:89"}],"functionName":{"name":"mstore","nativeSrc":"73346:6:89","nodeType":"YulIdentifier","src":"73346:6:89"},"nativeSrc":"73346:66:89","nodeType":"YulFunctionCall","src":"73346:66:89"},"nativeSrc":"73346:66:89","nodeType":"YulExpressionStatement","src":"73346:66:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"73432:9:89","nodeType":"YulIdentifier","src":"73432:9:89"},{"kind":"number","nativeSrc":"73443:2:89","nodeType":"YulLiteral","src":"73443:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"73428:3:89","nodeType":"YulIdentifier","src":"73428:3:89"},"nativeSrc":"73428:18:89","nodeType":"YulFunctionCall","src":"73428:18:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"73458:6:89","nodeType":"YulIdentifier","src":"73458:6:89"},{"kind":"number","nativeSrc":"73466:2:89","nodeType":"YulLiteral","src":"73466:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"73454:3:89","nodeType":"YulIdentifier","src":"73454:3:89"},"nativeSrc":"73454:15:89","nodeType":"YulFunctionCall","src":"73454:15:89"}],"functionName":{"name":"mload","nativeSrc":"73448:5:89","nodeType":"YulIdentifier","src":"73448:5:89"},"nativeSrc":"73448:22:89","nodeType":"YulFunctionCall","src":"73448:22:89"}],"functionName":{"name":"mstore","nativeSrc":"73421:6:89","nodeType":"YulIdentifier","src":"73421:6:89"},"nativeSrc":"73421:50:89","nodeType":"YulFunctionCall","src":"73421:50:89"},"nativeSrc":"73421:50:89","nodeType":"YulExpressionStatement","src":"73421:50:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"73491:9:89","nodeType":"YulIdentifier","src":"73491:9:89"},{"kind":"number","nativeSrc":"73502:2:89","nodeType":"YulLiteral","src":"73502:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"73487:3:89","nodeType":"YulIdentifier","src":"73487:3:89"},"nativeSrc":"73487:18:89","nodeType":"YulFunctionCall","src":"73487:18:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"73517:6:89","nodeType":"YulIdentifier","src":"73517:6:89"},{"kind":"number","nativeSrc":"73525:2:89","nodeType":"YulLiteral","src":"73525:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"73513:3:89","nodeType":"YulIdentifier","src":"73513:3:89"},"nativeSrc":"73513:15:89","nodeType":"YulFunctionCall","src":"73513:15:89"}],"functionName":{"name":"mload","nativeSrc":"73507:5:89","nodeType":"YulIdentifier","src":"73507:5:89"},"nativeSrc":"73507:22:89","nodeType":"YulFunctionCall","src":"73507:22:89"}],"functionName":{"name":"mstore","nativeSrc":"73480:6:89","nodeType":"YulIdentifier","src":"73480:6:89"},"nativeSrc":"73480:50:89","nodeType":"YulFunctionCall","src":"73480:50:89"},"nativeSrc":"73480:50:89","nodeType":"YulExpressionStatement","src":"73480:50:89"},{"nativeSrc":"73539:42:89","nodeType":"YulVariableDeclaration","src":"73539:42:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"73569:6:89","nodeType":"YulIdentifier","src":"73569:6:89"},{"kind":"number","nativeSrc":"73577:2:89","nodeType":"YulLiteral","src":"73577:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"73565:3:89","nodeType":"YulIdentifier","src":"73565:3:89"},"nativeSrc":"73565:15:89","nodeType":"YulFunctionCall","src":"73565:15:89"}],"functionName":{"name":"mload","nativeSrc":"73559:5:89","nodeType":"YulIdentifier","src":"73559:5:89"},"nativeSrc":"73559:22:89","nodeType":"YulFunctionCall","src":"73559:22:89"},"variables":[{"name":"memberValue0","nativeSrc":"73543:12:89","nodeType":"YulTypedName","src":"73543:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"73601:9:89","nodeType":"YulIdentifier","src":"73601:9:89"},{"kind":"number","nativeSrc":"73612:3:89","nodeType":"YulLiteral","src":"73612:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"73597:3:89","nodeType":"YulIdentifier","src":"73597:3:89"},"nativeSrc":"73597:19:89","nodeType":"YulFunctionCall","src":"73597:19:89"},{"kind":"number","nativeSrc":"73618:4:89","nodeType":"YulLiteral","src":"73618:4:89","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"73590:6:89","nodeType":"YulIdentifier","src":"73590:6:89"},"nativeSrc":"73590:33:89","nodeType":"YulFunctionCall","src":"73590:33:89"},"nativeSrc":"73590:33:89","nodeType":"YulExpressionStatement","src":"73590:33:89"},{"nativeSrc":"73632:66:89","nodeType":"YulVariableDeclaration","src":"73632:66:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"73664:12:89","nodeType":"YulIdentifier","src":"73664:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"73682:9:89","nodeType":"YulIdentifier","src":"73682:9:89"},{"kind":"number","nativeSrc":"73693:3:89","nodeType":"YulLiteral","src":"73693:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"73678:3:89","nodeType":"YulIdentifier","src":"73678:3:89"},"nativeSrc":"73678:19:89","nodeType":"YulFunctionCall","src":"73678:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"73646:17:89","nodeType":"YulIdentifier","src":"73646:17:89"},"nativeSrc":"73646:52:89","nodeType":"YulFunctionCall","src":"73646:52:89"},"variables":[{"name":"tail_1","nativeSrc":"73636:6:89","nodeType":"YulTypedName","src":"73636:6:89","type":""}]},{"nativeSrc":"73707:45:89","nodeType":"YulVariableDeclaration","src":"73707:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"73739:6:89","nodeType":"YulIdentifier","src":"73739:6:89"},{"kind":"number","nativeSrc":"73747:3:89","nodeType":"YulLiteral","src":"73747:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"73735:3:89","nodeType":"YulIdentifier","src":"73735:3:89"},"nativeSrc":"73735:16:89","nodeType":"YulFunctionCall","src":"73735:16:89"}],"functionName":{"name":"mload","nativeSrc":"73729:5:89","nodeType":"YulIdentifier","src":"73729:5:89"},"nativeSrc":"73729:23:89","nodeType":"YulFunctionCall","src":"73729:23:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"73711:14:89","nodeType":"YulTypedName","src":"73711:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"73772:9:89","nodeType":"YulIdentifier","src":"73772:9:89"},{"kind":"number","nativeSrc":"73783:4:89","nodeType":"YulLiteral","src":"73783:4:89","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"73768:3:89","nodeType":"YulIdentifier","src":"73768:3:89"},"nativeSrc":"73768:20:89","nodeType":"YulFunctionCall","src":"73768:20:89"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"73798:6:89","nodeType":"YulIdentifier","src":"73798:6:89"},{"name":"headStart","nativeSrc":"73806:9:89","nodeType":"YulIdentifier","src":"73806:9:89"}],"functionName":{"name":"sub","nativeSrc":"73794:3:89","nodeType":"YulIdentifier","src":"73794:3:89"},"nativeSrc":"73794:22:89","nodeType":"YulFunctionCall","src":"73794:22:89"},{"arguments":[{"kind":"number","nativeSrc":"73822:2:89","nodeType":"YulLiteral","src":"73822:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"73818:3:89","nodeType":"YulIdentifier","src":"73818:3:89"},"nativeSrc":"73818:7:89","nodeType":"YulFunctionCall","src":"73818:7:89"}],"functionName":{"name":"add","nativeSrc":"73790:3:89","nodeType":"YulIdentifier","src":"73790:3:89"},"nativeSrc":"73790:36:89","nodeType":"YulFunctionCall","src":"73790:36:89"}],"functionName":{"name":"mstore","nativeSrc":"73761:6:89","nodeType":"YulIdentifier","src":"73761:6:89"},"nativeSrc":"73761:66:89","nodeType":"YulFunctionCall","src":"73761:66:89"},"nativeSrc":"73761:66:89","nodeType":"YulExpressionStatement","src":"73761:66:89"},{"nativeSrc":"73836:49:89","nodeType":"YulAssignment","src":"73836:49:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"73862:14:89","nodeType":"YulIdentifier","src":"73862:14:89"},{"name":"tail_1","nativeSrc":"73878:6:89","nodeType":"YulIdentifier","src":"73878:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"73844:17:89","nodeType":"YulIdentifier","src":"73844:17:89"},"nativeSrc":"73844:41:89","nodeType":"YulFunctionCall","src":"73844:41:89"},"variableNames":[{"name":"tail","nativeSrc":"73836:4:89","nodeType":"YulIdentifier","src":"73836:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr__to_t_struct$_TacHeaderV1_$16110_memory_ptr__fromStack_reversed","nativeSrc":"73145:746:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"73275:9:89","nodeType":"YulTypedName","src":"73275:9:89","type":""},{"name":"value0","nativeSrc":"73286:6:89","nodeType":"YulTypedName","src":"73286:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"73297:4:89","nodeType":"YulTypedName","src":"73297:4:89","type":""}],"src":"73145:746:89"},{"body":{"nativeSrc":"74025:145:89","nodeType":"YulBlock","src":"74025:145:89","statements":[{"nativeSrc":"74035:26:89","nodeType":"YulAssignment","src":"74035:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"74047:9:89","nodeType":"YulIdentifier","src":"74047:9:89"},{"kind":"number","nativeSrc":"74058:2:89","nodeType":"YulLiteral","src":"74058:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"74043:3:89","nodeType":"YulIdentifier","src":"74043:3:89"},"nativeSrc":"74043:18:89","nodeType":"YulFunctionCall","src":"74043:18:89"},"variableNames":[{"name":"tail","nativeSrc":"74035:4:89","nodeType":"YulIdentifier","src":"74035:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"74077:9:89","nodeType":"YulIdentifier","src":"74077:9:89"},{"arguments":[{"name":"value0","nativeSrc":"74092:6:89","nodeType":"YulIdentifier","src":"74092:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"74108:3:89","nodeType":"YulLiteral","src":"74108:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"74113:1:89","nodeType":"YulLiteral","src":"74113:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"74104:3:89","nodeType":"YulIdentifier","src":"74104:3:89"},"nativeSrc":"74104:11:89","nodeType":"YulFunctionCall","src":"74104:11:89"},{"kind":"number","nativeSrc":"74117:1:89","nodeType":"YulLiteral","src":"74117:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"74100:3:89","nodeType":"YulIdentifier","src":"74100:3:89"},"nativeSrc":"74100:19:89","nodeType":"YulFunctionCall","src":"74100:19:89"}],"functionName":{"name":"and","nativeSrc":"74088:3:89","nodeType":"YulIdentifier","src":"74088:3:89"},"nativeSrc":"74088:32:89","nodeType":"YulFunctionCall","src":"74088:32:89"}],"functionName":{"name":"mstore","nativeSrc":"74070:6:89","nodeType":"YulIdentifier","src":"74070:6:89"},"nativeSrc":"74070:51:89","nodeType":"YulFunctionCall","src":"74070:51:89"},"nativeSrc":"74070:51:89","nodeType":"YulExpressionStatement","src":"74070:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"74141:9:89","nodeType":"YulIdentifier","src":"74141:9:89"},{"kind":"number","nativeSrc":"74152:2:89","nodeType":"YulLiteral","src":"74152:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"74137:3:89","nodeType":"YulIdentifier","src":"74137:3:89"},"nativeSrc":"74137:18:89","nodeType":"YulFunctionCall","src":"74137:18:89"},{"name":"value1","nativeSrc":"74157:6:89","nodeType":"YulIdentifier","src":"74157:6:89"}],"functionName":{"name":"mstore","nativeSrc":"74130:6:89","nodeType":"YulIdentifier","src":"74130:6:89"},"nativeSrc":"74130:34:89","nodeType":"YulFunctionCall","src":"74130:34:89"},"nativeSrc":"74130:34:89","nodeType":"YulExpressionStatement","src":"74130:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"73896:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"73986:9:89","nodeType":"YulTypedName","src":"73986:9:89","type":""},{"name":"value1","nativeSrc":"73997:6:89","nodeType":"YulTypedName","src":"73997:6:89","type":""},{"name":"value0","nativeSrc":"74005:6:89","nodeType":"YulTypedName","src":"74005:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"74016:4:89","nodeType":"YulTypedName","src":"74016:4:89","type":""}],"src":"73896:274:89"},{"body":{"nativeSrc":"74238:793:89","nodeType":"YulBlock","src":"74238:793:89","statements":[{"body":{"nativeSrc":"74287:16:89","nodeType":"YulBlock","src":"74287:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"74296:1:89","nodeType":"YulLiteral","src":"74296:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"74299:1:89","nodeType":"YulLiteral","src":"74299:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"74289:6:89","nodeType":"YulIdentifier","src":"74289:6:89"},"nativeSrc":"74289:12:89","nodeType":"YulFunctionCall","src":"74289:12:89"},"nativeSrc":"74289:12:89","nodeType":"YulExpressionStatement","src":"74289:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"74266:6:89","nodeType":"YulIdentifier","src":"74266:6:89"},{"kind":"number","nativeSrc":"74274:4:89","nodeType":"YulLiteral","src":"74274:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"74262:3:89","nodeType":"YulIdentifier","src":"74262:3:89"},"nativeSrc":"74262:17:89","nodeType":"YulFunctionCall","src":"74262:17:89"},{"name":"end","nativeSrc":"74281:3:89","nodeType":"YulIdentifier","src":"74281:3:89"}],"functionName":{"name":"slt","nativeSrc":"74258:3:89","nodeType":"YulIdentifier","src":"74258:3:89"},"nativeSrc":"74258:27:89","nodeType":"YulFunctionCall","src":"74258:27:89"}],"functionName":{"name":"iszero","nativeSrc":"74251:6:89","nodeType":"YulIdentifier","src":"74251:6:89"},"nativeSrc":"74251:35:89","nodeType":"YulFunctionCall","src":"74251:35:89"},"nativeSrc":"74248:55:89","nodeType":"YulIf","src":"74248:55:89"},{"nativeSrc":"74312:34:89","nodeType":"YulVariableDeclaration","src":"74312:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"74339:6:89","nodeType":"YulIdentifier","src":"74339:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"74326:12:89","nodeType":"YulIdentifier","src":"74326:12:89"},"nativeSrc":"74326:20:89","nodeType":"YulFunctionCall","src":"74326:20:89"},"variables":[{"name":"length","nativeSrc":"74316:6:89","nodeType":"YulTypedName","src":"74316:6:89","type":""}]},{"nativeSrc":"74355:105:89","nodeType":"YulVariableDeclaration","src":"74355:105:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"74452:6:89","nodeType":"YulIdentifier","src":"74452:6:89"}],"functionName":{"name":"array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn","nativeSrc":"74382:69:89","nodeType":"YulIdentifier","src":"74382:69:89"},"nativeSrc":"74382:77:89","nodeType":"YulFunctionCall","src":"74382:77:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"74366:15:89","nodeType":"YulIdentifier","src":"74366:15:89"},"nativeSrc":"74366:94:89","nodeType":"YulFunctionCall","src":"74366:94:89"},"variables":[{"name":"dst","nativeSrc":"74359:3:89","nodeType":"YulTypedName","src":"74359:3:89","type":""}]},{"nativeSrc":"74469:18:89","nodeType":"YulVariableDeclaration","src":"74469:18:89","value":{"name":"dst","nativeSrc":"74484:3:89","nodeType":"YulIdentifier","src":"74484:3:89"},"variables":[{"name":"array_1","nativeSrc":"74473:7:89","nodeType":"YulTypedName","src":"74473:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"74503:3:89","nodeType":"YulIdentifier","src":"74503:3:89"},{"name":"length","nativeSrc":"74508:6:89","nodeType":"YulIdentifier","src":"74508:6:89"}],"functionName":{"name":"mstore","nativeSrc":"74496:6:89","nodeType":"YulIdentifier","src":"74496:6:89"},"nativeSrc":"74496:19:89","nodeType":"YulFunctionCall","src":"74496:19:89"},"nativeSrc":"74496:19:89","nodeType":"YulExpressionStatement","src":"74496:19:89"},{"nativeSrc":"74524:21:89","nodeType":"YulAssignment","src":"74524:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"74535:3:89","nodeType":"YulIdentifier","src":"74535:3:89"},{"kind":"number","nativeSrc":"74540:4:89","nodeType":"YulLiteral","src":"74540:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"74531:3:89","nodeType":"YulIdentifier","src":"74531:3:89"},"nativeSrc":"74531:14:89","nodeType":"YulFunctionCall","src":"74531:14:89"},"variableNames":[{"name":"dst","nativeSrc":"74524:3:89","nodeType":"YulIdentifier","src":"74524:3:89"}]},{"nativeSrc":"74554:52:89","nodeType":"YulVariableDeclaration","src":"74554:52:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"74576:6:89","nodeType":"YulIdentifier","src":"74576:6:89"},{"arguments":[{"kind":"number","nativeSrc":"74588:1:89","nodeType":"YulLiteral","src":"74588:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"74591:6:89","nodeType":"YulIdentifier","src":"74591:6:89"}],"functionName":{"name":"shl","nativeSrc":"74584:3:89","nodeType":"YulIdentifier","src":"74584:3:89"},"nativeSrc":"74584:14:89","nodeType":"YulFunctionCall","src":"74584:14:89"}],"functionName":{"name":"add","nativeSrc":"74572:3:89","nodeType":"YulIdentifier","src":"74572:3:89"},"nativeSrc":"74572:27:89","nodeType":"YulFunctionCall","src":"74572:27:89"},{"kind":"number","nativeSrc":"74601:4:89","nodeType":"YulLiteral","src":"74601:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"74568:3:89","nodeType":"YulIdentifier","src":"74568:3:89"},"nativeSrc":"74568:38:89","nodeType":"YulFunctionCall","src":"74568:38:89"},"variables":[{"name":"srcEnd","nativeSrc":"74558:6:89","nodeType":"YulTypedName","src":"74558:6:89","type":""}]},{"body":{"nativeSrc":"74634:16:89","nodeType":"YulBlock","src":"74634:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"74643:1:89","nodeType":"YulLiteral","src":"74643:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"74646:1:89","nodeType":"YulLiteral","src":"74646:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"74636:6:89","nodeType":"YulIdentifier","src":"74636:6:89"},"nativeSrc":"74636:12:89","nodeType":"YulFunctionCall","src":"74636:12:89"},"nativeSrc":"74636:12:89","nodeType":"YulExpressionStatement","src":"74636:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"74621:6:89","nodeType":"YulIdentifier","src":"74621:6:89"},{"name":"end","nativeSrc":"74629:3:89","nodeType":"YulIdentifier","src":"74629:3:89"}],"functionName":{"name":"gt","nativeSrc":"74618:2:89","nodeType":"YulIdentifier","src":"74618:2:89"},"nativeSrc":"74618:15:89","nodeType":"YulFunctionCall","src":"74618:15:89"},"nativeSrc":"74615:35:89","nodeType":"YulIf","src":"74615:35:89"},{"nativeSrc":"74659:28:89","nodeType":"YulVariableDeclaration","src":"74659:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"74674:6:89","nodeType":"YulIdentifier","src":"74674:6:89"},{"kind":"number","nativeSrc":"74682:4:89","nodeType":"YulLiteral","src":"74682:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"74670:3:89","nodeType":"YulIdentifier","src":"74670:3:89"},"nativeSrc":"74670:17:89","nodeType":"YulFunctionCall","src":"74670:17:89"},"variables":[{"name":"src","nativeSrc":"74663:3:89","nodeType":"YulTypedName","src":"74663:3:89","type":""}]},{"body":{"nativeSrc":"74754:246:89","nodeType":"YulBlock","src":"74754:246:89","statements":[{"nativeSrc":"74768:36:89","nodeType":"YulVariableDeclaration","src":"74768:36:89","value":{"arguments":[{"name":"src","nativeSrc":"74800:3:89","nodeType":"YulIdentifier","src":"74800:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"74787:12:89","nodeType":"YulIdentifier","src":"74787:12:89"},"nativeSrc":"74787:17:89","nodeType":"YulFunctionCall","src":"74787:17:89"},"variables":[{"name":"innerOffset","nativeSrc":"74772:11:89","nodeType":"YulTypedName","src":"74772:11:89","type":""}]},{"body":{"nativeSrc":"74856:16:89","nodeType":"YulBlock","src":"74856:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"74865:1:89","nodeType":"YulLiteral","src":"74865:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"74868:1:89","nodeType":"YulLiteral","src":"74868:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"74858:6:89","nodeType":"YulIdentifier","src":"74858:6:89"},"nativeSrc":"74858:12:89","nodeType":"YulFunctionCall","src":"74858:12:89"},"nativeSrc":"74858:12:89","nodeType":"YulExpressionStatement","src":"74858:12:89"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"74823:11:89","nodeType":"YulIdentifier","src":"74823:11:89"},{"kind":"number","nativeSrc":"74836:18:89","nodeType":"YulLiteral","src":"74836:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"74820:2:89","nodeType":"YulIdentifier","src":"74820:2:89"},"nativeSrc":"74820:35:89","nodeType":"YulFunctionCall","src":"74820:35:89"},"nativeSrc":"74817:55:89","nodeType":"YulIf","src":"74817:55:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"74892:3:89","nodeType":"YulIdentifier","src":"74892:3:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"74922:6:89","nodeType":"YulIdentifier","src":"74922:6:89"},{"name":"innerOffset","nativeSrc":"74930:11:89","nodeType":"YulIdentifier","src":"74930:11:89"}],"functionName":{"name":"add","nativeSrc":"74918:3:89","nodeType":"YulIdentifier","src":"74918:3:89"},"nativeSrc":"74918:24:89","nodeType":"YulFunctionCall","src":"74918:24:89"},{"kind":"number","nativeSrc":"74944:4:89","nodeType":"YulLiteral","src":"74944:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"74914:3:89","nodeType":"YulIdentifier","src":"74914:3:89"},"nativeSrc":"74914:35:89","nodeType":"YulFunctionCall","src":"74914:35:89"},{"name":"end","nativeSrc":"74951:3:89","nodeType":"YulIdentifier","src":"74951:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"74897:16:89","nodeType":"YulIdentifier","src":"74897:16:89"},"nativeSrc":"74897:58:89","nodeType":"YulFunctionCall","src":"74897:58:89"}],"functionName":{"name":"mstore","nativeSrc":"74885:6:89","nodeType":"YulIdentifier","src":"74885:6:89"},"nativeSrc":"74885:71:89","nodeType":"YulFunctionCall","src":"74885:71:89"},"nativeSrc":"74885:71:89","nodeType":"YulExpressionStatement","src":"74885:71:89"},{"nativeSrc":"74969:21:89","nodeType":"YulAssignment","src":"74969:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"74980:3:89","nodeType":"YulIdentifier","src":"74980:3:89"},{"kind":"number","nativeSrc":"74985:4:89","nodeType":"YulLiteral","src":"74985:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"74976:3:89","nodeType":"YulIdentifier","src":"74976:3:89"},"nativeSrc":"74976:14:89","nodeType":"YulFunctionCall","src":"74976:14:89"},"variableNames":[{"name":"dst","nativeSrc":"74969:3:89","nodeType":"YulIdentifier","src":"74969:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"74707:3:89","nodeType":"YulIdentifier","src":"74707:3:89"},{"name":"srcEnd","nativeSrc":"74712:6:89","nodeType":"YulIdentifier","src":"74712:6:89"}],"functionName":{"name":"lt","nativeSrc":"74704:2:89","nodeType":"YulIdentifier","src":"74704:2:89"},"nativeSrc":"74704:15:89","nodeType":"YulFunctionCall","src":"74704:15:89"},"nativeSrc":"74696:304:89","nodeType":"YulForLoop","post":{"nativeSrc":"74720:25:89","nodeType":"YulBlock","src":"74720:25:89","statements":[{"nativeSrc":"74722:21:89","nodeType":"YulAssignment","src":"74722:21:89","value":{"arguments":[{"name":"src","nativeSrc":"74733:3:89","nodeType":"YulIdentifier","src":"74733:3:89"},{"kind":"number","nativeSrc":"74738:4:89","nodeType":"YulLiteral","src":"74738:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"74729:3:89","nodeType":"YulIdentifier","src":"74729:3:89"},"nativeSrc":"74729:14:89","nodeType":"YulFunctionCall","src":"74729:14:89"},"variableNames":[{"name":"src","nativeSrc":"74722:3:89","nodeType":"YulIdentifier","src":"74722:3:89"}]}]},"pre":{"nativeSrc":"74700:3:89","nodeType":"YulBlock","src":"74700:3:89","statements":[]},"src":"74696:304:89"},{"nativeSrc":"75009:16:89","nodeType":"YulAssignment","src":"75009:16:89","value":{"name":"array_1","nativeSrc":"75018:7:89","nodeType":"YulIdentifier","src":"75018:7:89"},"variableNames":[{"name":"array","nativeSrc":"75009:5:89","nodeType":"YulIdentifier","src":"75009:5:89"}]}]},"name":"abi_decode_array_string_dyn","nativeSrc":"74175:856:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"74212:6:89","nodeType":"YulTypedName","src":"74212:6:89","type":""},{"name":"end","nativeSrc":"74220:3:89","nodeType":"YulTypedName","src":"74220:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"74228:5:89","nodeType":"YulTypedName","src":"74228:5:89","type":""}],"src":"74175:856:89"},{"body":{"nativeSrc":"75137:1608:89","nodeType":"YulBlock","src":"75137:1608:89","statements":[{"body":{"nativeSrc":"75183:16:89","nodeType":"YulBlock","src":"75183:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"75192:1:89","nodeType":"YulLiteral","src":"75192:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"75195:1:89","nodeType":"YulLiteral","src":"75195:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"75185:6:89","nodeType":"YulIdentifier","src":"75185:6:89"},"nativeSrc":"75185:12:89","nodeType":"YulFunctionCall","src":"75185:12:89"},"nativeSrc":"75185:12:89","nodeType":"YulExpressionStatement","src":"75185:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"75158:7:89","nodeType":"YulIdentifier","src":"75158:7:89"},{"name":"headStart","nativeSrc":"75167:9:89","nodeType":"YulIdentifier","src":"75167:9:89"}],"functionName":{"name":"sub","nativeSrc":"75154:3:89","nodeType":"YulIdentifier","src":"75154:3:89"},"nativeSrc":"75154:23:89","nodeType":"YulFunctionCall","src":"75154:23:89"},{"kind":"number","nativeSrc":"75179:2:89","nodeType":"YulLiteral","src":"75179:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"75150:3:89","nodeType":"YulIdentifier","src":"75150:3:89"},"nativeSrc":"75150:32:89","nodeType":"YulFunctionCall","src":"75150:32:89"},"nativeSrc":"75147:52:89","nodeType":"YulIf","src":"75147:52:89"},{"nativeSrc":"75208:37:89","nodeType":"YulVariableDeclaration","src":"75208:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"75235:9:89","nodeType":"YulIdentifier","src":"75235:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"75222:12:89","nodeType":"YulIdentifier","src":"75222:12:89"},"nativeSrc":"75222:23:89","nodeType":"YulFunctionCall","src":"75222:23:89"},"variables":[{"name":"offset","nativeSrc":"75212:6:89","nodeType":"YulTypedName","src":"75212:6:89","type":""}]},{"body":{"nativeSrc":"75288:16:89","nodeType":"YulBlock","src":"75288:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"75297:1:89","nodeType":"YulLiteral","src":"75297:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"75300:1:89","nodeType":"YulLiteral","src":"75300:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"75290:6:89","nodeType":"YulIdentifier","src":"75290:6:89"},"nativeSrc":"75290:12:89","nodeType":"YulFunctionCall","src":"75290:12:89"},"nativeSrc":"75290:12:89","nodeType":"YulExpressionStatement","src":"75290:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"75260:6:89","nodeType":"YulIdentifier","src":"75260:6:89"},{"kind":"number","nativeSrc":"75268:18:89","nodeType":"YulLiteral","src":"75268:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"75257:2:89","nodeType":"YulIdentifier","src":"75257:2:89"},"nativeSrc":"75257:30:89","nodeType":"YulFunctionCall","src":"75257:30:89"},"nativeSrc":"75254:50:89","nodeType":"YulIf","src":"75254:50:89"},{"nativeSrc":"75313:32:89","nodeType":"YulVariableDeclaration","src":"75313:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"75327:9:89","nodeType":"YulIdentifier","src":"75327:9:89"},{"name":"offset","nativeSrc":"75338:6:89","nodeType":"YulIdentifier","src":"75338:6:89"}],"functionName":{"name":"add","nativeSrc":"75323:3:89","nodeType":"YulIdentifier","src":"75323:3:89"},"nativeSrc":"75323:22:89","nodeType":"YulFunctionCall","src":"75323:22:89"},"variables":[{"name":"_1","nativeSrc":"75317:2:89","nodeType":"YulTypedName","src":"75317:2:89","type":""}]},{"body":{"nativeSrc":"75387:16:89","nodeType":"YulBlock","src":"75387:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"75396:1:89","nodeType":"YulLiteral","src":"75396:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"75399:1:89","nodeType":"YulLiteral","src":"75399:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"75389:6:89","nodeType":"YulIdentifier","src":"75389:6:89"},"nativeSrc":"75389:12:89","nodeType":"YulFunctionCall","src":"75389:12:89"},"nativeSrc":"75389:12:89","nodeType":"YulExpressionStatement","src":"75389:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"75365:7:89","nodeType":"YulIdentifier","src":"75365:7:89"},{"name":"_1","nativeSrc":"75374:2:89","nodeType":"YulIdentifier","src":"75374:2:89"}],"functionName":{"name":"sub","nativeSrc":"75361:3:89","nodeType":"YulIdentifier","src":"75361:3:89"},"nativeSrc":"75361:16:89","nodeType":"YulFunctionCall","src":"75361:16:89"},{"kind":"number","nativeSrc":"75379:6:89","nodeType":"YulLiteral","src":"75379:6:89","type":"","value":"0x0100"}],"functionName":{"name":"slt","nativeSrc":"75357:3:89","nodeType":"YulIdentifier","src":"75357:3:89"},"nativeSrc":"75357:29:89","nodeType":"YulFunctionCall","src":"75357:29:89"},"nativeSrc":"75354:49:89","nodeType":"YulIf","src":"75354:49:89"},{"nativeSrc":"75412:35:89","nodeType":"YulVariableDeclaration","src":"75412:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_9714","nativeSrc":"75425:20:89","nodeType":"YulIdentifier","src":"75425:20:89"},"nativeSrc":"75425:22:89","nodeType":"YulFunctionCall","src":"75425:22:89"},"variables":[{"name":"value","nativeSrc":"75416:5:89","nodeType":"YulTypedName","src":"75416:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"75463:5:89","nodeType":"YulIdentifier","src":"75463:5:89"},{"arguments":[{"name":"_1","nativeSrc":"75488:2:89","nodeType":"YulIdentifier","src":"75488:2:89"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"75470:17:89","nodeType":"YulIdentifier","src":"75470:17:89"},"nativeSrc":"75470:21:89","nodeType":"YulFunctionCall","src":"75470:21:89"}],"functionName":{"name":"mstore","nativeSrc":"75456:6:89","nodeType":"YulIdentifier","src":"75456:6:89"},"nativeSrc":"75456:36:89","nodeType":"YulFunctionCall","src":"75456:36:89"},"nativeSrc":"75456:36:89","nodeType":"YulExpressionStatement","src":"75456:36:89"},{"nativeSrc":"75501:41:89","nodeType":"YulVariableDeclaration","src":"75501:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"75534:2:89","nodeType":"YulIdentifier","src":"75534:2:89"},{"kind":"number","nativeSrc":"75538:2:89","nodeType":"YulLiteral","src":"75538:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"75530:3:89","nodeType":"YulIdentifier","src":"75530:3:89"},"nativeSrc":"75530:11:89","nodeType":"YulFunctionCall","src":"75530:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"75517:12:89","nodeType":"YulIdentifier","src":"75517:12:89"},"nativeSrc":"75517:25:89","nodeType":"YulFunctionCall","src":"75517:25:89"},"variables":[{"name":"offset_1","nativeSrc":"75505:8:89","nodeType":"YulTypedName","src":"75505:8:89","type":""}]},{"body":{"nativeSrc":"75587:16:89","nodeType":"YulBlock","src":"75587:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"75596:1:89","nodeType":"YulLiteral","src":"75596:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"75599:1:89","nodeType":"YulLiteral","src":"75599:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"75589:6:89","nodeType":"YulIdentifier","src":"75589:6:89"},"nativeSrc":"75589:12:89","nodeType":"YulFunctionCall","src":"75589:12:89"},"nativeSrc":"75589:12:89","nodeType":"YulExpressionStatement","src":"75589:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"75557:8:89","nodeType":"YulIdentifier","src":"75557:8:89"},{"kind":"number","nativeSrc":"75567:18:89","nodeType":"YulLiteral","src":"75567:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"75554:2:89","nodeType":"YulIdentifier","src":"75554:2:89"},"nativeSrc":"75554:32:89","nodeType":"YulFunctionCall","src":"75554:32:89"},"nativeSrc":"75551:52:89","nodeType":"YulIf","src":"75551:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"75623:5:89","nodeType":"YulIdentifier","src":"75623:5:89"},{"kind":"number","nativeSrc":"75630:2:89","nodeType":"YulLiteral","src":"75630:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"75619:3:89","nodeType":"YulIdentifier","src":"75619:3:89"},"nativeSrc":"75619:14:89","nodeType":"YulFunctionCall","src":"75619:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"75656:2:89","nodeType":"YulIdentifier","src":"75656:2:89"},{"name":"offset_1","nativeSrc":"75660:8:89","nodeType":"YulIdentifier","src":"75660:8:89"}],"functionName":{"name":"add","nativeSrc":"75652:3:89","nodeType":"YulIdentifier","src":"75652:3:89"},"nativeSrc":"75652:17:89","nodeType":"YulFunctionCall","src":"75652:17:89"},{"name":"dataEnd","nativeSrc":"75671:7:89","nodeType":"YulIdentifier","src":"75671:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"75635:16:89","nodeType":"YulIdentifier","src":"75635:16:89"},"nativeSrc":"75635:44:89","nodeType":"YulFunctionCall","src":"75635:44:89"}],"functionName":{"name":"mstore","nativeSrc":"75612:6:89","nodeType":"YulIdentifier","src":"75612:6:89"},"nativeSrc":"75612:68:89","nodeType":"YulFunctionCall","src":"75612:68:89"},"nativeSrc":"75612:68:89","nodeType":"YulExpressionStatement","src":"75612:68:89"},{"nativeSrc":"75689:41:89","nodeType":"YulVariableDeclaration","src":"75689:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"75722:2:89","nodeType":"YulIdentifier","src":"75722:2:89"},{"kind":"number","nativeSrc":"75726:2:89","nodeType":"YulLiteral","src":"75726:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"75718:3:89","nodeType":"YulIdentifier","src":"75718:3:89"},"nativeSrc":"75718:11:89","nodeType":"YulFunctionCall","src":"75718:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"75705:12:89","nodeType":"YulIdentifier","src":"75705:12:89"},"nativeSrc":"75705:25:89","nodeType":"YulFunctionCall","src":"75705:25:89"},"variables":[{"name":"offset_2","nativeSrc":"75693:8:89","nodeType":"YulTypedName","src":"75693:8:89","type":""}]},{"body":{"nativeSrc":"75775:16:89","nodeType":"YulBlock","src":"75775:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"75784:1:89","nodeType":"YulLiteral","src":"75784:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"75787:1:89","nodeType":"YulLiteral","src":"75787:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"75777:6:89","nodeType":"YulIdentifier","src":"75777:6:89"},"nativeSrc":"75777:12:89","nodeType":"YulFunctionCall","src":"75777:12:89"},"nativeSrc":"75777:12:89","nodeType":"YulExpressionStatement","src":"75777:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"75745:8:89","nodeType":"YulIdentifier","src":"75745:8:89"},{"kind":"number","nativeSrc":"75755:18:89","nodeType":"YulLiteral","src":"75755:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"75742:2:89","nodeType":"YulIdentifier","src":"75742:2:89"},"nativeSrc":"75742:32:89","nodeType":"YulFunctionCall","src":"75742:32:89"},"nativeSrc":"75739:52:89","nodeType":"YulIf","src":"75739:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"75811:5:89","nodeType":"YulIdentifier","src":"75811:5:89"},{"kind":"number","nativeSrc":"75818:2:89","nodeType":"YulLiteral","src":"75818:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"75807:3:89","nodeType":"YulIdentifier","src":"75807:3:89"},"nativeSrc":"75807:14:89","nodeType":"YulFunctionCall","src":"75807:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"75844:2:89","nodeType":"YulIdentifier","src":"75844:2:89"},{"name":"offset_2","nativeSrc":"75848:8:89","nodeType":"YulIdentifier","src":"75848:8:89"}],"functionName":{"name":"add","nativeSrc":"75840:3:89","nodeType":"YulIdentifier","src":"75840:3:89"},"nativeSrc":"75840:17:89","nodeType":"YulFunctionCall","src":"75840:17:89"},{"name":"dataEnd","nativeSrc":"75859:7:89","nodeType":"YulIdentifier","src":"75859:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"75823:16:89","nodeType":"YulIdentifier","src":"75823:16:89"},"nativeSrc":"75823:44:89","nodeType":"YulFunctionCall","src":"75823:44:89"}],"functionName":{"name":"mstore","nativeSrc":"75800:6:89","nodeType":"YulIdentifier","src":"75800:6:89"},"nativeSrc":"75800:68:89","nodeType":"YulFunctionCall","src":"75800:68:89"},"nativeSrc":"75800:68:89","nodeType":"YulExpressionStatement","src":"75800:68:89"},{"nativeSrc":"75877:16:89","nodeType":"YulVariableDeclaration","src":"75877:16:89","value":{"kind":"number","nativeSrc":"75892:1:89","nodeType":"YulLiteral","src":"75892:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"75881:7:89","nodeType":"YulTypedName","src":"75881:7:89","type":""}]},{"nativeSrc":"75902:36:89","nodeType":"YulAssignment","src":"75902:36:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"75930:2:89","nodeType":"YulIdentifier","src":"75930:2:89"},{"kind":"number","nativeSrc":"75934:2:89","nodeType":"YulLiteral","src":"75934:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"75926:3:89","nodeType":"YulIdentifier","src":"75926:3:89"},"nativeSrc":"75926:11:89","nodeType":"YulFunctionCall","src":"75926:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"75913:12:89","nodeType":"YulIdentifier","src":"75913:12:89"},"nativeSrc":"75913:25:89","nodeType":"YulFunctionCall","src":"75913:25:89"},"variableNames":[{"name":"value_1","nativeSrc":"75902:7:89","nodeType":"YulIdentifier","src":"75902:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"75958:5:89","nodeType":"YulIdentifier","src":"75958:5:89"},{"kind":"number","nativeSrc":"75965:2:89","nodeType":"YulLiteral","src":"75965:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"75954:3:89","nodeType":"YulIdentifier","src":"75954:3:89"},"nativeSrc":"75954:14:89","nodeType":"YulFunctionCall","src":"75954:14:89"},{"name":"value_1","nativeSrc":"75970:7:89","nodeType":"YulIdentifier","src":"75970:7:89"}],"functionName":{"name":"mstore","nativeSrc":"75947:6:89","nodeType":"YulIdentifier","src":"75947:6:89"},"nativeSrc":"75947:31:89","nodeType":"YulFunctionCall","src":"75947:31:89"},"nativeSrc":"75947:31:89","nodeType":"YulExpressionStatement","src":"75947:31:89"},{"nativeSrc":"75987:16:89","nodeType":"YulVariableDeclaration","src":"75987:16:89","value":{"kind":"number","nativeSrc":"76002:1:89","nodeType":"YulLiteral","src":"76002:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"75991:7:89","nodeType":"YulTypedName","src":"75991:7:89","type":""}]},{"nativeSrc":"76012:37:89","nodeType":"YulAssignment","src":"76012:37:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"76040:2:89","nodeType":"YulIdentifier","src":"76040:2:89"},{"kind":"number","nativeSrc":"76044:3:89","nodeType":"YulLiteral","src":"76044:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"76036:3:89","nodeType":"YulIdentifier","src":"76036:3:89"},"nativeSrc":"76036:12:89","nodeType":"YulFunctionCall","src":"76036:12:89"}],"functionName":{"name":"calldataload","nativeSrc":"76023:12:89","nodeType":"YulIdentifier","src":"76023:12:89"},"nativeSrc":"76023:26:89","nodeType":"YulFunctionCall","src":"76023:26:89"},"variableNames":[{"name":"value_2","nativeSrc":"76012:7:89","nodeType":"YulIdentifier","src":"76012:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"76069:5:89","nodeType":"YulIdentifier","src":"76069:5:89"},{"kind":"number","nativeSrc":"76076:3:89","nodeType":"YulLiteral","src":"76076:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"76065:3:89","nodeType":"YulIdentifier","src":"76065:3:89"},"nativeSrc":"76065:15:89","nodeType":"YulFunctionCall","src":"76065:15:89"},{"name":"value_2","nativeSrc":"76082:7:89","nodeType":"YulIdentifier","src":"76082:7:89"}],"functionName":{"name":"mstore","nativeSrc":"76058:6:89","nodeType":"YulIdentifier","src":"76058:6:89"},"nativeSrc":"76058:32:89","nodeType":"YulFunctionCall","src":"76058:32:89"},"nativeSrc":"76058:32:89","nodeType":"YulExpressionStatement","src":"76058:32:89"},{"nativeSrc":"76099:42:89","nodeType":"YulVariableDeclaration","src":"76099:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"76132:2:89","nodeType":"YulIdentifier","src":"76132:2:89"},{"kind":"number","nativeSrc":"76136:3:89","nodeType":"YulLiteral","src":"76136:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"76128:3:89","nodeType":"YulIdentifier","src":"76128:3:89"},"nativeSrc":"76128:12:89","nodeType":"YulFunctionCall","src":"76128:12:89"}],"functionName":{"name":"calldataload","nativeSrc":"76115:12:89","nodeType":"YulIdentifier","src":"76115:12:89"},"nativeSrc":"76115:26:89","nodeType":"YulFunctionCall","src":"76115:26:89"},"variables":[{"name":"offset_3","nativeSrc":"76103:8:89","nodeType":"YulTypedName","src":"76103:8:89","type":""}]},{"body":{"nativeSrc":"76186:16:89","nodeType":"YulBlock","src":"76186:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"76195:1:89","nodeType":"YulLiteral","src":"76195:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"76198:1:89","nodeType":"YulLiteral","src":"76198:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"76188:6:89","nodeType":"YulIdentifier","src":"76188:6:89"},"nativeSrc":"76188:12:89","nodeType":"YulFunctionCall","src":"76188:12:89"},"nativeSrc":"76188:12:89","nodeType":"YulExpressionStatement","src":"76188:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"76156:8:89","nodeType":"YulIdentifier","src":"76156:8:89"},{"kind":"number","nativeSrc":"76166:18:89","nodeType":"YulLiteral","src":"76166:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"76153:2:89","nodeType":"YulIdentifier","src":"76153:2:89"},"nativeSrc":"76153:32:89","nodeType":"YulFunctionCall","src":"76153:32:89"},"nativeSrc":"76150:52:89","nodeType":"YulIf","src":"76150:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"76222:5:89","nodeType":"YulIdentifier","src":"76222:5:89"},{"kind":"number","nativeSrc":"76229:3:89","nodeType":"YulLiteral","src":"76229:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"76218:3:89","nodeType":"YulIdentifier","src":"76218:3:89"},"nativeSrc":"76218:15:89","nodeType":"YulFunctionCall","src":"76218:15:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"76267:2:89","nodeType":"YulIdentifier","src":"76267:2:89"},{"name":"offset_3","nativeSrc":"76271:8:89","nodeType":"YulIdentifier","src":"76271:8:89"}],"functionName":{"name":"add","nativeSrc":"76263:3:89","nodeType":"YulIdentifier","src":"76263:3:89"},"nativeSrc":"76263:17:89","nodeType":"YulFunctionCall","src":"76263:17:89"},{"name":"dataEnd","nativeSrc":"76282:7:89","nodeType":"YulIdentifier","src":"76282:7:89"}],"functionName":{"name":"abi_decode_array_string_dyn","nativeSrc":"76235:27:89","nodeType":"YulIdentifier","src":"76235:27:89"},"nativeSrc":"76235:55:89","nodeType":"YulFunctionCall","src":"76235:55:89"}],"functionName":{"name":"mstore","nativeSrc":"76211:6:89","nodeType":"YulIdentifier","src":"76211:6:89"},"nativeSrc":"76211:80:89","nodeType":"YulFunctionCall","src":"76211:80:89"},"nativeSrc":"76211:80:89","nodeType":"YulExpressionStatement","src":"76211:80:89"},{"nativeSrc":"76300:42:89","nodeType":"YulVariableDeclaration","src":"76300:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"76333:2:89","nodeType":"YulIdentifier","src":"76333:2:89"},{"kind":"number","nativeSrc":"76337:3:89","nodeType":"YulLiteral","src":"76337:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"76329:3:89","nodeType":"YulIdentifier","src":"76329:3:89"},"nativeSrc":"76329:12:89","nodeType":"YulFunctionCall","src":"76329:12:89"}],"functionName":{"name":"calldataload","nativeSrc":"76316:12:89","nodeType":"YulIdentifier","src":"76316:12:89"},"nativeSrc":"76316:26:89","nodeType":"YulFunctionCall","src":"76316:26:89"},"variables":[{"name":"offset_4","nativeSrc":"76304:8:89","nodeType":"YulTypedName","src":"76304:8:89","type":""}]},{"body":{"nativeSrc":"76387:16:89","nodeType":"YulBlock","src":"76387:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"76396:1:89","nodeType":"YulLiteral","src":"76396:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"76399:1:89","nodeType":"YulLiteral","src":"76399:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"76389:6:89","nodeType":"YulIdentifier","src":"76389:6:89"},"nativeSrc":"76389:12:89","nodeType":"YulFunctionCall","src":"76389:12:89"},"nativeSrc":"76389:12:89","nodeType":"YulExpressionStatement","src":"76389:12:89"}]},"condition":{"arguments":[{"name":"offset_4","nativeSrc":"76357:8:89","nodeType":"YulIdentifier","src":"76357:8:89"},{"kind":"number","nativeSrc":"76367:18:89","nodeType":"YulLiteral","src":"76367:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"76354:2:89","nodeType":"YulIdentifier","src":"76354:2:89"},"nativeSrc":"76354:32:89","nodeType":"YulFunctionCall","src":"76354:32:89"},"nativeSrc":"76351:52:89","nodeType":"YulIf","src":"76351:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"76423:5:89","nodeType":"YulIdentifier","src":"76423:5:89"},{"kind":"number","nativeSrc":"76430:3:89","nodeType":"YulLiteral","src":"76430:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"76419:3:89","nodeType":"YulIdentifier","src":"76419:3:89"},"nativeSrc":"76419:15:89","nodeType":"YulFunctionCall","src":"76419:15:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"76480:2:89","nodeType":"YulIdentifier","src":"76480:2:89"},{"name":"offset_4","nativeSrc":"76484:8:89","nodeType":"YulIdentifier","src":"76484:8:89"}],"functionName":{"name":"add","nativeSrc":"76476:3:89","nodeType":"YulIdentifier","src":"76476:3:89"},"nativeSrc":"76476:17:89","nodeType":"YulFunctionCall","src":"76476:17:89"},{"name":"dataEnd","nativeSrc":"76495:7:89","nodeType":"YulIdentifier","src":"76495:7:89"}],"functionName":{"name":"abi_decode_array_struct_TokenAmount_dyn","nativeSrc":"76436:39:89","nodeType":"YulIdentifier","src":"76436:39:89"},"nativeSrc":"76436:67:89","nodeType":"YulFunctionCall","src":"76436:67:89"}],"functionName":{"name":"mstore","nativeSrc":"76412:6:89","nodeType":"YulIdentifier","src":"76412:6:89"},"nativeSrc":"76412:92:89","nodeType":"YulFunctionCall","src":"76412:92:89"},"nativeSrc":"76412:92:89","nodeType":"YulExpressionStatement","src":"76412:92:89"},{"nativeSrc":"76513:42:89","nodeType":"YulVariableDeclaration","src":"76513:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"76546:2:89","nodeType":"YulIdentifier","src":"76546:2:89"},{"kind":"number","nativeSrc":"76550:3:89","nodeType":"YulLiteral","src":"76550:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"76542:3:89","nodeType":"YulIdentifier","src":"76542:3:89"},"nativeSrc":"76542:12:89","nodeType":"YulFunctionCall","src":"76542:12:89"}],"functionName":{"name":"calldataload","nativeSrc":"76529:12:89","nodeType":"YulIdentifier","src":"76529:12:89"},"nativeSrc":"76529:26:89","nodeType":"YulFunctionCall","src":"76529:26:89"},"variables":[{"name":"offset_5","nativeSrc":"76517:8:89","nodeType":"YulTypedName","src":"76517:8:89","type":""}]},{"body":{"nativeSrc":"76600:16:89","nodeType":"YulBlock","src":"76600:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"76609:1:89","nodeType":"YulLiteral","src":"76609:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"76612:1:89","nodeType":"YulLiteral","src":"76612:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"76602:6:89","nodeType":"YulIdentifier","src":"76602:6:89"},"nativeSrc":"76602:12:89","nodeType":"YulFunctionCall","src":"76602:12:89"},"nativeSrc":"76602:12:89","nodeType":"YulExpressionStatement","src":"76602:12:89"}]},"condition":{"arguments":[{"name":"offset_5","nativeSrc":"76570:8:89","nodeType":"YulIdentifier","src":"76570:8:89"},{"kind":"number","nativeSrc":"76580:18:89","nodeType":"YulLiteral","src":"76580:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"76567:2:89","nodeType":"YulIdentifier","src":"76567:2:89"},"nativeSrc":"76567:32:89","nodeType":"YulFunctionCall","src":"76567:32:89"},"nativeSrc":"76564:52:89","nodeType":"YulIf","src":"76564:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"76636:5:89","nodeType":"YulIdentifier","src":"76636:5:89"},{"kind":"number","nativeSrc":"76643:3:89","nodeType":"YulLiteral","src":"76643:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"76632:3:89","nodeType":"YulIdentifier","src":"76632:3:89"},"nativeSrc":"76632:15:89","nodeType":"YulFunctionCall","src":"76632:15:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"76691:2:89","nodeType":"YulIdentifier","src":"76691:2:89"},{"name":"offset_5","nativeSrc":"76695:8:89","nodeType":"YulIdentifier","src":"76695:8:89"}],"functionName":{"name":"add","nativeSrc":"76687:3:89","nodeType":"YulIdentifier","src":"76687:3:89"},"nativeSrc":"76687:17:89","nodeType":"YulFunctionCall","src":"76687:17:89"},{"name":"dataEnd","nativeSrc":"76706:7:89","nodeType":"YulIdentifier","src":"76706:7:89"}],"functionName":{"name":"abi_decode_array_struct_NFTAmount_dyn","nativeSrc":"76649:37:89","nodeType":"YulIdentifier","src":"76649:37:89"},"nativeSrc":"76649:65:89","nodeType":"YulFunctionCall","src":"76649:65:89"}],"functionName":{"name":"mstore","nativeSrc":"76625:6:89","nodeType":"YulIdentifier","src":"76625:6:89"},"nativeSrc":"76625:90:89","nodeType":"YulFunctionCall","src":"76625:90:89"},"nativeSrc":"76625:90:89","nodeType":"YulExpressionStatement","src":"76625:90:89"},{"nativeSrc":"76724:15:89","nodeType":"YulAssignment","src":"76724:15:89","value":{"name":"value","nativeSrc":"76734:5:89","nodeType":"YulIdentifier","src":"76734:5:89"},"variableNames":[{"name":"value0","nativeSrc":"76724:6:89","nodeType":"YulIdentifier","src":"76724:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr","nativeSrc":"75036:1709:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"75103:9:89","nodeType":"YulTypedName","src":"75103:9:89","type":""},{"name":"dataEnd","nativeSrc":"75114:7:89","nodeType":"YulTypedName","src":"75114:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"75126:6:89","nodeType":"YulTypedName","src":"75126:6:89","type":""}],"src":"75036:1709:89"},{"body":{"nativeSrc":"76850:257:89","nodeType":"YulBlock","src":"76850:257:89","statements":[{"body":{"nativeSrc":"76896:16:89","nodeType":"YulBlock","src":"76896:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"76905:1:89","nodeType":"YulLiteral","src":"76905:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"76908:1:89","nodeType":"YulLiteral","src":"76908:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"76898:6:89","nodeType":"YulIdentifier","src":"76898:6:89"},"nativeSrc":"76898:12:89","nodeType":"YulFunctionCall","src":"76898:12:89"},"nativeSrc":"76898:12:89","nodeType":"YulExpressionStatement","src":"76898:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"76871:7:89","nodeType":"YulIdentifier","src":"76871:7:89"},{"name":"headStart","nativeSrc":"76880:9:89","nodeType":"YulIdentifier","src":"76880:9:89"}],"functionName":{"name":"sub","nativeSrc":"76867:3:89","nodeType":"YulIdentifier","src":"76867:3:89"},"nativeSrc":"76867:23:89","nodeType":"YulFunctionCall","src":"76867:23:89"},{"kind":"number","nativeSrc":"76892:2:89","nodeType":"YulLiteral","src":"76892:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"76863:3:89","nodeType":"YulIdentifier","src":"76863:3:89"},"nativeSrc":"76863:32:89","nodeType":"YulFunctionCall","src":"76863:32:89"},"nativeSrc":"76860:52:89","nodeType":"YulIf","src":"76860:52:89"},{"nativeSrc":"76921:37:89","nodeType":"YulVariableDeclaration","src":"76921:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"76948:9:89","nodeType":"YulIdentifier","src":"76948:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"76935:12:89","nodeType":"YulIdentifier","src":"76935:12:89"},"nativeSrc":"76935:23:89","nodeType":"YulFunctionCall","src":"76935:23:89"},"variables":[{"name":"offset","nativeSrc":"76925:6:89","nodeType":"YulTypedName","src":"76925:6:89","type":""}]},{"body":{"nativeSrc":"77001:16:89","nodeType":"YulBlock","src":"77001:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"77010:1:89","nodeType":"YulLiteral","src":"77010:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"77013:1:89","nodeType":"YulLiteral","src":"77013:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"77003:6:89","nodeType":"YulIdentifier","src":"77003:6:89"},"nativeSrc":"77003:12:89","nodeType":"YulFunctionCall","src":"77003:12:89"},"nativeSrc":"77003:12:89","nodeType":"YulExpressionStatement","src":"77003:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"76973:6:89","nodeType":"YulIdentifier","src":"76973:6:89"},{"kind":"number","nativeSrc":"76981:18:89","nodeType":"YulLiteral","src":"76981:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"76970:2:89","nodeType":"YulIdentifier","src":"76970:2:89"},"nativeSrc":"76970:30:89","nodeType":"YulFunctionCall","src":"76970:30:89"},"nativeSrc":"76967:50:89","nodeType":"YulIf","src":"76967:50:89"},{"nativeSrc":"77026:75:89","nodeType":"YulAssignment","src":"77026:75:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"77073:9:89","nodeType":"YulIdentifier","src":"77073:9:89"},{"name":"offset","nativeSrc":"77084:6:89","nodeType":"YulIdentifier","src":"77084:6:89"}],"functionName":{"name":"add","nativeSrc":"77069:3:89","nodeType":"YulIdentifier","src":"77069:3:89"},"nativeSrc":"77069:22:89","nodeType":"YulFunctionCall","src":"77069:22:89"},{"name":"dataEnd","nativeSrc":"77093:7:89","nodeType":"YulIdentifier","src":"77093:7:89"}],"functionName":{"name":"abi_decode_struct_UnionInMessage","nativeSrc":"77036:32:89","nodeType":"YulIdentifier","src":"77036:32:89"},"nativeSrc":"77036:65:89","nodeType":"YulFunctionCall","src":"77036:65:89"},"variableNames":[{"name":"value0","nativeSrc":"77026:6:89","nodeType":"YulIdentifier","src":"77026:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_InMessageV1_$16055_memory_ptr","nativeSrc":"76750:357:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"76816:9:89","nodeType":"YulTypedName","src":"76816:9:89","type":""},{"name":"dataEnd","nativeSrc":"76827:7:89","nodeType":"YulTypedName","src":"76827:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"76839:6:89","nodeType":"YulTypedName","src":"76839:6:89","type":""}],"src":"76750:357:89"},{"body":{"nativeSrc":"77211:103:89","nodeType":"YulBlock","src":"77211:103:89","statements":[{"nativeSrc":"77221:26:89","nodeType":"YulAssignment","src":"77221:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"77233:9:89","nodeType":"YulIdentifier","src":"77233:9:89"},{"kind":"number","nativeSrc":"77244:2:89","nodeType":"YulLiteral","src":"77244:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"77229:3:89","nodeType":"YulIdentifier","src":"77229:3:89"},"nativeSrc":"77229:18:89","nodeType":"YulFunctionCall","src":"77229:18:89"},"variableNames":[{"name":"tail","nativeSrc":"77221:4:89","nodeType":"YulIdentifier","src":"77221:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"77263:9:89","nodeType":"YulIdentifier","src":"77263:9:89"},{"arguments":[{"name":"value0","nativeSrc":"77278:6:89","nodeType":"YulIdentifier","src":"77278:6:89"},{"arguments":[{"kind":"number","nativeSrc":"77290:3:89","nodeType":"YulLiteral","src":"77290:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"77295:10:89","nodeType":"YulLiteral","src":"77295:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"77286:3:89","nodeType":"YulIdentifier","src":"77286:3:89"},"nativeSrc":"77286:20:89","nodeType":"YulFunctionCall","src":"77286:20:89"}],"functionName":{"name":"and","nativeSrc":"77274:3:89","nodeType":"YulIdentifier","src":"77274:3:89"},"nativeSrc":"77274:33:89","nodeType":"YulFunctionCall","src":"77274:33:89"}],"functionName":{"name":"mstore","nativeSrc":"77256:6:89","nodeType":"YulIdentifier","src":"77256:6:89"},"nativeSrc":"77256:52:89","nodeType":"YulFunctionCall","src":"77256:52:89"},"nativeSrc":"77256:52:89","nodeType":"YulExpressionStatement","src":"77256:52:89"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"77112:202:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"77180:9:89","nodeType":"YulTypedName","src":"77180:9:89","type":""},{"name":"value0","nativeSrc":"77191:6:89","nodeType":"YulTypedName","src":"77191:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"77202:4:89","nodeType":"YulTypedName","src":"77202:4:89","type":""}],"src":"77112:202:89"},{"body":{"nativeSrc":"77548:223:89","nodeType":"YulBlock","src":"77548:223:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"77565:9:89","nodeType":"YulIdentifier","src":"77565:9:89"},{"arguments":[{"name":"value0","nativeSrc":"77580:6:89","nodeType":"YulIdentifier","src":"77580:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"77596:3:89","nodeType":"YulLiteral","src":"77596:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"77601:1:89","nodeType":"YulLiteral","src":"77601:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"77592:3:89","nodeType":"YulIdentifier","src":"77592:3:89"},"nativeSrc":"77592:11:89","nodeType":"YulFunctionCall","src":"77592:11:89"},{"kind":"number","nativeSrc":"77605:1:89","nodeType":"YulLiteral","src":"77605:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"77588:3:89","nodeType":"YulIdentifier","src":"77588:3:89"},"nativeSrc":"77588:19:89","nodeType":"YulFunctionCall","src":"77588:19:89"}],"functionName":{"name":"and","nativeSrc":"77576:3:89","nodeType":"YulIdentifier","src":"77576:3:89"},"nativeSrc":"77576:32:89","nodeType":"YulFunctionCall","src":"77576:32:89"}],"functionName":{"name":"mstore","nativeSrc":"77558:6:89","nodeType":"YulIdentifier","src":"77558:6:89"},"nativeSrc":"77558:51:89","nodeType":"YulFunctionCall","src":"77558:51:89"},"nativeSrc":"77558:51:89","nodeType":"YulExpressionStatement","src":"77558:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"77629:9:89","nodeType":"YulIdentifier","src":"77629:9:89"},{"kind":"number","nativeSrc":"77640:2:89","nodeType":"YulLiteral","src":"77640:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"77625:3:89","nodeType":"YulIdentifier","src":"77625:3:89"},"nativeSrc":"77625:18:89","nodeType":"YulFunctionCall","src":"77625:18:89"},{"name":"value1","nativeSrc":"77645:6:89","nodeType":"YulIdentifier","src":"77645:6:89"}],"functionName":{"name":"mstore","nativeSrc":"77618:6:89","nodeType":"YulIdentifier","src":"77618:6:89"},"nativeSrc":"77618:34:89","nodeType":"YulFunctionCall","src":"77618:34:89"},"nativeSrc":"77618:34:89","nodeType":"YulExpressionStatement","src":"77618:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"77672:9:89","nodeType":"YulIdentifier","src":"77672:9:89"},{"kind":"number","nativeSrc":"77683:2:89","nodeType":"YulLiteral","src":"77683:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"77668:3:89","nodeType":"YulIdentifier","src":"77668:3:89"},"nativeSrc":"77668:18:89","nodeType":"YulFunctionCall","src":"77668:18:89"},{"kind":"number","nativeSrc":"77688:2:89","nodeType":"YulLiteral","src":"77688:2:89","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"77661:6:89","nodeType":"YulIdentifier","src":"77661:6:89"},"nativeSrc":"77661:30:89","nodeType":"YulFunctionCall","src":"77661:30:89"},"nativeSrc":"77661:30:89","nodeType":"YulExpressionStatement","src":"77661:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"77711:9:89","nodeType":"YulIdentifier","src":"77711:9:89"},{"kind":"number","nativeSrc":"77722:2:89","nodeType":"YulLiteral","src":"77722:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"77707:3:89","nodeType":"YulIdentifier","src":"77707:3:89"},"nativeSrc":"77707:18:89","nodeType":"YulFunctionCall","src":"77707:18:89"},{"kind":"number","nativeSrc":"77727:1:89","nodeType":"YulLiteral","src":"77727:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"77700:6:89","nodeType":"YulIdentifier","src":"77700:6:89"},"nativeSrc":"77700:29:89","nodeType":"YulFunctionCall","src":"77700:29:89"},"nativeSrc":"77700:29:89","nodeType":"YulExpressionStatement","src":"77700:29:89"},{"nativeSrc":"77738:27:89","nodeType":"YulAssignment","src":"77738:27:89","value":{"arguments":[{"name":"headStart","nativeSrc":"77750:9:89","nodeType":"YulIdentifier","src":"77750:9:89"},{"kind":"number","nativeSrc":"77761:3:89","nodeType":"YulLiteral","src":"77761:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"77746:3:89","nodeType":"YulIdentifier","src":"77746:3:89"},"nativeSrc":"77746:19:89","nodeType":"YulFunctionCall","src":"77746:19:89"},"variableNames":[{"name":"tail","nativeSrc":"77738:4:89","nodeType":"YulIdentifier","src":"77738:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"77319:452:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"77509:9:89","nodeType":"YulTypedName","src":"77509:9:89","type":""},{"name":"value1","nativeSrc":"77520:6:89","nodeType":"YulTypedName","src":"77520:6:89","type":""},{"name":"value0","nativeSrc":"77528:6:89","nodeType":"YulTypedName","src":"77528:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"77539:4:89","nodeType":"YulTypedName","src":"77539:4:89","type":""}],"src":"77319:452:89"},{"body":{"nativeSrc":"77933:214:89","nodeType":"YulBlock","src":"77933:214:89","statements":[{"nativeSrc":"77943:26:89","nodeType":"YulAssignment","src":"77943:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"77955:9:89","nodeType":"YulIdentifier","src":"77955:9:89"},{"kind":"number","nativeSrc":"77966:2:89","nodeType":"YulLiteral","src":"77966:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"77951:3:89","nodeType":"YulIdentifier","src":"77951:3:89"},"nativeSrc":"77951:18:89","nodeType":"YulFunctionCall","src":"77951:18:89"},"variableNames":[{"name":"tail","nativeSrc":"77943:4:89","nodeType":"YulIdentifier","src":"77943:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"77985:9:89","nodeType":"YulIdentifier","src":"77985:9:89"},{"arguments":[{"name":"value0","nativeSrc":"78000:6:89","nodeType":"YulIdentifier","src":"78000:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"78016:3:89","nodeType":"YulLiteral","src":"78016:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"78021:1:89","nodeType":"YulLiteral","src":"78021:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"78012:3:89","nodeType":"YulIdentifier","src":"78012:3:89"},"nativeSrc":"78012:11:89","nodeType":"YulFunctionCall","src":"78012:11:89"},{"kind":"number","nativeSrc":"78025:1:89","nodeType":"YulLiteral","src":"78025:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"78008:3:89","nodeType":"YulIdentifier","src":"78008:3:89"},"nativeSrc":"78008:19:89","nodeType":"YulFunctionCall","src":"78008:19:89"}],"functionName":{"name":"and","nativeSrc":"77996:3:89","nodeType":"YulIdentifier","src":"77996:3:89"},"nativeSrc":"77996:32:89","nodeType":"YulFunctionCall","src":"77996:32:89"}],"functionName":{"name":"mstore","nativeSrc":"77978:6:89","nodeType":"YulIdentifier","src":"77978:6:89"},"nativeSrc":"77978:51:89","nodeType":"YulFunctionCall","src":"77978:51:89"},"nativeSrc":"77978:51:89","nodeType":"YulExpressionStatement","src":"77978:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"78049:9:89","nodeType":"YulIdentifier","src":"78049:9:89"},{"kind":"number","nativeSrc":"78060:2:89","nodeType":"YulLiteral","src":"78060:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"78045:3:89","nodeType":"YulIdentifier","src":"78045:3:89"},"nativeSrc":"78045:18:89","nodeType":"YulFunctionCall","src":"78045:18:89"},{"arguments":[{"name":"value1","nativeSrc":"78069:6:89","nodeType":"YulIdentifier","src":"78069:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"78085:3:89","nodeType":"YulLiteral","src":"78085:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"78090:1:89","nodeType":"YulLiteral","src":"78090:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"78081:3:89","nodeType":"YulIdentifier","src":"78081:3:89"},"nativeSrc":"78081:11:89","nodeType":"YulFunctionCall","src":"78081:11:89"},{"kind":"number","nativeSrc":"78094:1:89","nodeType":"YulLiteral","src":"78094:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"78077:3:89","nodeType":"YulIdentifier","src":"78077:3:89"},"nativeSrc":"78077:19:89","nodeType":"YulFunctionCall","src":"78077:19:89"}],"functionName":{"name":"and","nativeSrc":"78065:3:89","nodeType":"YulIdentifier","src":"78065:3:89"},"nativeSrc":"78065:32:89","nodeType":"YulFunctionCall","src":"78065:32:89"}],"functionName":{"name":"mstore","nativeSrc":"78038:6:89","nodeType":"YulIdentifier","src":"78038:6:89"},"nativeSrc":"78038:60:89","nodeType":"YulFunctionCall","src":"78038:60:89"},"nativeSrc":"78038:60:89","nodeType":"YulExpressionStatement","src":"78038:60:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"78118:9:89","nodeType":"YulIdentifier","src":"78118:9:89"},{"kind":"number","nativeSrc":"78129:2:89","nodeType":"YulLiteral","src":"78129:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"78114:3:89","nodeType":"YulIdentifier","src":"78114:3:89"},"nativeSrc":"78114:18:89","nodeType":"YulFunctionCall","src":"78114:18:89"},{"name":"value2","nativeSrc":"78134:6:89","nodeType":"YulIdentifier","src":"78134:6:89"}],"functionName":{"name":"mstore","nativeSrc":"78107:6:89","nodeType":"YulIdentifier","src":"78107:6:89"},"nativeSrc":"78107:34:89","nodeType":"YulFunctionCall","src":"78107:34:89"},"nativeSrc":"78107:34:89","nodeType":"YulExpressionStatement","src":"78107:34:89"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"77776:371:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"77886:9:89","nodeType":"YulTypedName","src":"77886:9:89","type":""},{"name":"value2","nativeSrc":"77897:6:89","nodeType":"YulTypedName","src":"77897:6:89","type":""},{"name":"value1","nativeSrc":"77905:6:89","nodeType":"YulTypedName","src":"77905:6:89","type":""},{"name":"value0","nativeSrc":"77913:6:89","nodeType":"YulTypedName","src":"77913:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"77924:4:89","nodeType":"YulTypedName","src":"77924:4:89","type":""}],"src":"77776:371:89"}]},"contents":"{\n    { }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_array_bytes32_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptrt_bytes32t_array$_t_bytes32_$dyn_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 96))\n        value5 := value_1\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        let value6_1, value7_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value6 := value6_1\n        value7 := value7_1\n        let value_2 := calldataload(add(headStart, 160))\n        validator_revert_bool(value_2)\n        value8 := value_2\n    }\n    function abi_encode_uint64(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffff))\n    }\n    function abi_encode_address(value, pos)\n    {\n        mstore(pos, and(value, sub(shl(160, 1), 1)))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_array_string_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            tail := abi_encode_string(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_struct_TokenAmount(value, pos)\n    {\n        mstore(pos, and(mload(value), sub(shl(160, 1), 1)))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n    }\n    function abi_encode_array_struct_TokenAmount_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            abi_encode_struct_TokenAmount(mload(srcPtr), pos)\n            pos := add(pos, 0x40)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function abi_encodeUpdatedPos_struct_NFTAmount(value0, pos) -> updatedPos\n    {\n        mstore(pos, and(mload(value0), sub(shl(160, 1), 1)))\n        mstore(add(pos, 0x20), mload(add(value0, 0x20)))\n        mstore(add(pos, 0x40), mload(add(value0, 0x40)))\n        updatedPos := add(pos, 0x60)\n    }\n    function abi_encode_array_struct_NFTAmount_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            pos := abi_encodeUpdatedPos_struct_NFTAmount(mload(srcPtr), pos)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function abi_encode_array_struct_OutMessageProcessedEventStruct_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            let _1 := mload(srcPtr)\n            abi_encode_uint64(mload(_1), tail)\n            mstore(add(tail, 0x20), mload(add(_1, 0x20)))\n            let memberValue0 := mload(add(_1, 0x40))\n            abi_encode_address(memberValue0, add(tail, 0x40))\n            let memberValue0_1 := mload(add(_1, 0x60))\n            mstore(add(tail, 0x60), 0x0180)\n            let tail_1 := abi_encode_string(memberValue0_1, add(tail, 0x0180))\n            let memberValue0_2 := mload(add(_1, 0x80))\n            mstore(add(tail, 0x80), sub(tail_1, tail))\n            let tail_2 := abi_encode_string(memberValue0_2, tail_1)\n            mstore(add(tail, 0xa0), mload(add(_1, 0xa0)))\n            mstore(add(tail, 0xc0), mload(add(_1, 0xc0)))\n            let memberValue0_3 := mload(add(_1, 0xe0))\n            mstore(add(tail, 0xe0), sub(tail_2, tail))\n            let tail_3 := abi_encode_array_string_dyn(memberValue0_3, tail_2)\n            let memberValue0_4 := mload(add(_1, 0x0100))\n            mstore(add(tail, 0x0100), sub(tail_3, tail))\n            let tail_4 := abi_encode_array_struct_TokenAmount_dyn(memberValue0_4, tail_3)\n            let memberValue0_5 := mload(add(_1, 0x0120))\n            mstore(add(tail, 0x0120), sub(tail_4, tail))\n            let tail_5 := abi_encode_array_struct_TokenAmount_dyn(memberValue0_5, tail_4)\n            let memberValue0_6 := mload(add(_1, 0x0140))\n            mstore(add(tail, 0x0140), sub(tail_5, tail))\n            let tail_6 := abi_encode_array_struct_NFTAmount_dyn(memberValue0_6, tail_5)\n            let memberValue0_7 := mload(add(_1, 0x0160))\n            mstore(add(tail, 0x0160), sub(tail_6, tail))\n            tail := abi_encode_array_struct_NFTAmount_dyn(memberValue0_7, tail_6)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_bool_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_bool_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), 96)\n        let tail_1 := abi_encode_array_struct_OutMessageProcessedEventStruct_dyn(value1, add(headStart, 96))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_string(value2, tail_1)\n    }\n    function abi_decode_tuple_t_struct$_UnionInMessage_$18197_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 544) { revert(0, 0) }\n        value0 := _1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_address_payablet_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_9694() -> memPtr\n    {\n        memPtr := mload(0x40)\n        let newFreePtr := add(memPtr, 0x40)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(0x40, newFreePtr)\n    }\n    function allocate_memory_9697() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x60)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory_9701() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x0180)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory_9705() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x80)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory_9710() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x0200)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory_9714() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x0100)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let src := add(offset, 0x20)\n        let array_1 := 0\n        array_1 := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array_1, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), src, length)\n        mstore(add(add(array_1, length), 0x20), 0)\n        array := array_1\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256t_bytes_calldata_ptrt_array$_t_bytes32_$dyn_calldata_ptrt_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n        let value_1 := calldataload(add(headStart, 96))\n        validator_revert_address(value_1)\n        value5 := value_1\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_2), dataEnd)\n        value6 := value6_1\n        value7 := value7_1\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_array_address_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, 0x20)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function abi_encode_struct_TokenInfo(value, pos) -> end\n    {\n        let memberValue0 := mload(value)\n        mstore(pos, 0x80)\n        let tail := abi_encode_string(memberValue0, add(pos, 0x80))\n        let memberValue0_1 := mload(add(value, 0x20))\n        mstore(add(pos, 0x20), sub(tail, pos))\n        let tail_1 := abi_encode_string(memberValue0_1, tail)\n        mstore(add(pos, 0x40), and(mload(add(value, 0x40)), 0xff))\n        let memberValue0_2 := mload(add(value, 0x60))\n        mstore(add(pos, 0x60), sub(tail_1, pos))\n        end := abi_encode_string(memberValue0_2, tail_1)\n    }\n    function abi_encode_array_struct_TokenInfo_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            tail := abi_encode_struct_TokenInfo(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_struct_NFTInfo(value, pos) -> end\n    {\n        let memberValue0 := mload(value)\n        mstore(pos, 0x80)\n        let tail := abi_encode_string(memberValue0, add(pos, 0x80))\n        let memberValue0_1 := mload(add(value, 0x20))\n        mstore(add(pos, 0x20), sub(tail, pos))\n        let tail_1 := abi_encode_string(memberValue0_1, tail)\n        let memberValue0_2 := mload(add(value, 0x40))\n        mstore(add(pos, 0x40), sub(tail_1, pos))\n        let tail_2 := abi_encode_string(memberValue0_2, tail_1)\n        let memberValue0_3 := mload(add(value, 0x60))\n        mstore(add(pos, 0x60), sub(tail_2, pos))\n        end := abi_encode_string(memberValue0_3, tail_2)\n    }\n    function abi_encode_array_struct_NFTInfo_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            tail := abi_encode_struct_NFTInfo(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_struct$_UnionInMessage_$18197_memory_ptr_t_bytes_calldata_ptr__to_t_struct$_UnionInMessage_$18197_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        abi_encode_uint64(mload(value0), add(headStart, 64))\n        let memberValue0 := mload(add(value0, 0x20))\n        abi_encode_uint64(memberValue0, add(headStart, 96))\n        mstore(add(headStart, 128), mload(add(value0, 64)))\n        mstore(add(headStart, 160), mload(add(value0, 96)))\n        let memberValue0_1 := mload(add(value0, 128))\n        abi_encode_address(memberValue0_1, add(headStart, 192))\n        let memberValue0_2 := mload(add(value0, 160))\n        mstore(add(headStart, 224), 0x0220)\n        let tail_1 := abi_encode_string(memberValue0_2, add(headStart, 608))\n        let memberValue0_3 := mload(add(value0, 192))\n        mstore(add(headStart, 256), add(sub(tail_1, headStart), not(63)))\n        let tail_2 := abi_encode_string(memberValue0_3, tail_1)\n        let memberValue0_4 := mload(add(value0, 224))\n        mstore(add(headStart, 288), add(sub(tail_2, headStart), not(63)))\n        let tail_3 := abi_encode_string(memberValue0_4, tail_2)\n        let memberValue0_5 := mload(add(value0, 256))\n        abi_encode_struct_TokenAmount(memberValue0_5, add(headStart, 320))\n        let memberValue0_6 := mload(add(value0, 288))\n        mstore(add(headStart, 384), add(sub(tail_3, headStart), not(63)))\n        let tail_4 := abi_encode_array_address_dyn(memberValue0_6, tail_3)\n        let memberValue0_7 := mload(add(value0, 320))\n        mstore(add(headStart, 416), add(sub(tail_4, headStart), not(63)))\n        let tail_5 := abi_encode_array_struct_TokenAmount_dyn(memberValue0_7, tail_4)\n        let memberValue0_8 := mload(add(value0, 0x0160))\n        mstore(add(headStart, 448), add(sub(tail_5, headStart), not(63)))\n        let tail_6 := abi_encode_array_struct_TokenAmount_dyn(memberValue0_8, tail_5)\n        let memberValue0_9 := mload(add(value0, 384))\n        mstore(add(headStart, 480), add(sub(tail_6, headStart), not(63)))\n        let tail_7 := abi_encode_array_struct_TokenInfo_dyn(memberValue0_9, tail_6)\n        let memberValue0_10 := mload(add(value0, 416))\n        mstore(add(headStart, 512), add(sub(tail_7, headStart), not(63)))\n        let tail_8 := abi_encode_array_struct_NFTAmount_dyn(memberValue0_10, tail_7)\n        let memberValue0_11 := mload(add(value0, 448))\n        mstore(add(headStart, 0x0220), add(sub(tail_8, headStart), not(63)))\n        let tail_9 := abi_encode_array_struct_NFTAmount_dyn(memberValue0_11, tail_8)\n        let memberValue0_12 := mload(add(value0, 480))\n        mstore(add(headStart, 576), add(sub(tail_9, headStart), not(63)))\n        let end := abi_encode_array_struct_NFTInfo_dyn(memberValue0_12, tail_9)\n        mstore(add(headStart, 0x20), sub(end, headStart))\n        tail := abi_encode_bytes_calldata(value1, value2, end)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_decode_available_length_bytes_fromMemory(src, length, end) -> array\n    {\n        array := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(src, add(array, 0x20), length)\n    }\n    function abi_decode_tuple_t_boolt_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n        let offset := mload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value1 := abi_decode_available_length_bytes_fromMemory(add(_1, 32), mload(_1), dataEnd)\n    }\n    function array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function validator_revert_uint64(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint64_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_uint64(value)\n    }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_bytes_fromMemory(add(offset, 0x20), mload(offset), end)\n    }\n    function abi_decode_array_string_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := mload(offset)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, length)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(dst, abi_decode_string_fromMemory(add(add(offset, innerOffset), 0x20), end))\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_array_struct_TokenAmount_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := mload(offset)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(6, length)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x40) }\n        {\n            if slt(sub(end, src), 0x40) { revert(0, 0) }\n            let value := allocate_memory_9694()\n            let value_1 := mload(src)\n            validator_revert_address(value_1)\n            mstore(value, value_1)\n            let value_2 := 0\n            value_2 := mload(add(src, 0x20))\n            mstore(add(value, 0x20), value_2)\n            mstore(dst, value)\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_array_struct_NFTAmount_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := mload(offset)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, mul(length, 0x60)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x60) }\n        {\n            if slt(sub(end, src), 0x60) { revert(0, 0) }\n            let value := allocate_memory_9697()\n            let value_1 := mload(src)\n            validator_revert_address(value_1)\n            mstore(value, value_1)\n            let value_2 := 0\n            value_2 := mload(add(src, 0x20))\n            mstore(add(value, 0x20), value_2)\n            let value_3 := 0\n            value_3 := mload(add(src, 64))\n            mstore(add(value, 64), value_3)\n            mstore(dst, value)\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_tuple_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := mload(_1)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array := dst\n        mstore(dst, length)\n        dst := add(dst, 32)\n        let srcEnd := add(add(_1, shl(5, length)), 32)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_1, 32)\n        for { } lt(src, srcEnd) { src := add(src, 32) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(0, 0) }\n            let _2 := add(_1, innerOffset)\n            if slt(add(sub(dataEnd, _2), not(31)), 0x0180) { revert(0, 0) }\n            let value := allocate_memory_9701()\n            mstore(value, abi_decode_uint64_fromMemory(add(_2, 32)))\n            let value_1 := 0\n            value_1 := mload(add(_2, 64))\n            mstore(add(value, 32), value_1)\n            mstore(add(value, 64), abi_decode_address_fromMemory(add(_2, 96)))\n            let offset_1 := mload(add(_2, 128))\n            if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 96), abi_decode_string_fromMemory(add(add(_2, offset_1), 32), dataEnd))\n            let offset_2 := mload(add(_2, 160))\n            if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 128), abi_decode_string_fromMemory(add(add(_2, offset_2), 32), dataEnd))\n            let value_2 := 0\n            value_2 := mload(add(_2, 192))\n            mstore(add(value, 160), value_2)\n            let value_3 := 0\n            value_3 := mload(add(_2, 224))\n            mstore(add(value, 192), value_3)\n            let offset_3 := mload(add(_2, 256))\n            if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 224), abi_decode_array_string_dyn_fromMemory(add(add(_2, offset_3), 32), dataEnd))\n            let offset_4 := mload(add(_2, 288))\n            if gt(offset_4, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 256), abi_decode_array_struct_TokenAmount_dyn_fromMemory(add(add(_2, offset_4), 32), dataEnd))\n            let offset_5 := mload(add(_2, 320))\n            if gt(offset_5, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 288), abi_decode_array_struct_TokenAmount_dyn_fromMemory(add(add(_2, offset_5), 32), dataEnd))\n            let offset_6 := mload(add(_2, 352))\n            if gt(offset_6, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 320), abi_decode_array_struct_NFTAmount_dyn_fromMemory(add(add(_2, offset_6), 32), dataEnd))\n            let offset_7 := mload(add(_2, 0x0180))\n            if gt(offset_7, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 352), abi_decode_array_struct_NFTAmount_dyn_fromMemory(add(add(_2, offset_7), 32), dataEnd))\n            mstore(dst, value)\n            dst := add(dst, 32)\n        }\n        value0 := array\n    }\n    function abi_encode_tuple_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_struct_OutMessageProcessedEventStruct_dyn(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_uint64(value)\n    }\n    function abi_decode_struct_TokenAmount(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x40) { revert(0, 0) }\n        value := allocate_memory_9694()\n        let value_1 := calldataload(headStart)\n        validator_revert_address(value_1)\n        mstore(value, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 32))\n        mstore(add(value, 32), value_2)\n    }\n    function abi_decode_array_address_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, length)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_array_struct_TokenAmount_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(6, length)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x40) }\n        {\n            mstore(dst, abi_decode_struct_TokenAmount(src, end))\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_uint8(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_array_struct_TokenInfo_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, length)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(0, 0) }\n            let _1 := add(offset, innerOffset)\n            if slt(add(sub(end, _1), not(31)), 0x80) { revert(0, 0) }\n            let value := allocate_memory_9705()\n            let offset_1 := calldataload(add(_1, 0x20))\n            if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(value, abi_decode_bytes(add(add(_1, offset_1), 0x20), end))\n            let offset_2 := calldataload(add(_1, 64))\n            if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 0x20), abi_decode_bytes(add(add(_1, offset_2), 0x20), end))\n            mstore(add(value, 64), abi_decode_uint8(add(_1, 96)))\n            let offset_3 := calldataload(add(_1, 0x80))\n            if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 96), abi_decode_bytes(add(add(_1, offset_3), 0x20), end))\n            mstore(dst, value)\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_struct_NFTAmount(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x60) { revert(0, 0) }\n        value := allocate_memory_9697()\n        let value_1 := calldataload(headStart)\n        validator_revert_address(value_1)\n        mstore(value, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 32))\n        mstore(add(value, 32), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 64))\n        mstore(add(value, 64), value_3)\n    }\n    function abi_decode_array_struct_NFTAmount_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, mul(length, 0x60)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x60) }\n        {\n            mstore(dst, abi_decode_struct_NFTAmount(src, end))\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_array_struct_NFTInfo_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, length)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(0, 0) }\n            let _1 := add(offset, innerOffset)\n            if slt(add(sub(end, _1), not(31)), 0x80) { revert(0, 0) }\n            let value := allocate_memory_9705()\n            let offset_1 := calldataload(add(_1, 0x20))\n            if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(value, abi_decode_bytes(add(add(_1, offset_1), 0x20), end))\n            let offset_2 := calldataload(add(_1, 64))\n            if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 0x20), abi_decode_bytes(add(add(_1, offset_2), 0x20), end))\n            let offset_3 := calldataload(add(_1, 96))\n            if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 64), abi_decode_bytes(add(add(_1, offset_3), 0x20), end))\n            let offset_4 := calldataload(add(_1, 0x80))\n            if gt(offset_4, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(add(value, 96), abi_decode_bytes(add(add(_1, offset_4), 0x20), end))\n            mstore(dst, value)\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_struct_UnionInMessage(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x0220) { revert(0, 0) }\n        value := allocate_memory_9710()\n        mstore(value, abi_decode_uint64(headStart))\n        mstore(add(value, 32), abi_decode_uint64(add(headStart, 32)))\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 64))\n        mstore(add(value, 64), value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 96))\n        mstore(add(value, 96), value_2)\n        mstore(add(value, 128), abi_decode_address(add(headStart, 128)))\n        let offset := calldataload(add(headStart, 160))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 160), abi_decode_bytes(add(headStart, offset), end))\n        let offset_1 := calldataload(add(headStart, 192))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 192), abi_decode_bytes(add(headStart, offset_1), end))\n        let offset_2 := calldataload(add(headStart, 224))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 224), abi_decode_bytes(add(headStart, offset_2), end))\n        mstore(add(value, 256), abi_decode_struct_TokenAmount(add(headStart, 256), end))\n        let offset_3 := calldataload(add(headStart, 320))\n        if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 0x0120), abi_decode_array_address_dyn(add(headStart, offset_3), end))\n        let offset_4 := calldataload(add(headStart, 352))\n        if gt(offset_4, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 320), abi_decode_array_struct_TokenAmount_dyn(add(headStart, offset_4), end))\n        let offset_5 := calldataload(add(headStart, 384))\n        if gt(offset_5, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 352), abi_decode_array_struct_TokenAmount_dyn(add(headStart, offset_5), end))\n        let offset_6 := calldataload(add(headStart, 416))\n        if gt(offset_6, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 384), abi_decode_array_struct_TokenInfo_dyn(add(headStart, offset_6), end))\n        let offset_7 := calldataload(add(headStart, 448))\n        if gt(offset_7, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 416), abi_decode_array_struct_NFTAmount_dyn(add(headStart, offset_7), end))\n        let offset_8 := calldataload(add(headStart, 480))\n        if gt(offset_8, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 448), abi_decode_array_struct_NFTAmount_dyn(add(headStart, offset_8), end))\n        let offset_9 := calldataload(add(headStart, 0x0200))\n        if gt(offset_9, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 480), abi_decode_array_struct_NFTInfo_dyn(add(headStart, offset_9), end))\n    }\n    function convert_t_struct$_UnionInMessage_$18197_calldata_ptr_to_t_struct$_UnionInMessage_$18197_memory_ptr(value) -> converted\n    {\n        converted := abi_decode_struct_UnionInMessage(value, calldatasize())\n    }\n    function access_calldata_tail_t_array$_t_address_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function calldata_access_string_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(value, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_struct_TokenAmount_calldata(value, pos)\n    {\n        let value_1 := calldataload(value)\n        validator_revert_address(value_1)\n        mstore(pos, and(value_1, sub(shl(160, 1), 1)))\n        let value_2 := 0\n        value_2 := calldataload(add(value, 0x20))\n        mstore(add(pos, 0x20), value_2)\n    }\n    function calldata_access_array_address_dyn_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(value, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n    }\n    function abi_encode_array_address_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let value_1 := calldataload(srcPtr)\n            validator_revert_address(value_1)\n            mstore(pos, and(value_1, sub(shl(160, 1), 1)))\n            pos := add(pos, 0x20)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function calldata_access_array_struct_TokenAmount_calldata_dyn_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(value, sub(calldatasize(), shl(6, length))) { revert(0, 0) }\n    }\n    function abi_encode_array_struct_TokenAmount_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            abi_encode_struct_TokenAmount_calldata(srcPtr, pos)\n            pos := add(pos, 0x40)\n            srcPtr := add(srcPtr, 0x40)\n        }\n        end := pos\n    }\n    function calldata_access_struct_TokenInfo_calldata(base_ref, ptr) -> value\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(126)))) { revert(0, 0) }\n        value := add(rel_offset_of_tail, base_ref)\n    }\n    function abi_encode_array_struct_TokenInfo_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        let pos_1 := pos\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            let _1 := calldata_access_struct_TokenInfo_calldata(value, srcPtr)\n            let memberValue0, memberValue1 := calldata_access_string_calldata(_1, _1)\n            mstore(tail, 0x80)\n            let tail_1 := abi_encode_bytes_calldata(memberValue0, memberValue1, add(tail, 0x80))\n            let memberValue0_1, memberValue1_1 := calldata_access_string_calldata(_1, add(_1, 0x20))\n            mstore(add(tail, 0x20), sub(tail_1, tail))\n            let tail_2 := abi_encode_bytes_calldata(memberValue0_1, memberValue1_1, tail_1)\n            mstore(add(tail, 0x40), and(abi_decode_uint8(add(_1, 0x40)), 0xff))\n            let memberValue0_2, memberValue1_2 := calldata_access_string_calldata(_1, add(_1, 0x60))\n            mstore(add(tail, 0x60), sub(tail_2, tail))\n            tail := abi_encode_bytes_calldata(memberValue0_2, memberValue1_2, tail_2)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function calldata_access_array_struct_NFTAmount_calldata_dyn_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(value, sub(calldatasize(), mul(length, 0x60))) { revert(0, 0) }\n    }\n    function abi_encode_array_struct_NFTAmount_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let value_1 := calldataload(srcPtr)\n            validator_revert_address(value_1)\n            mstore(pos, and(value_1, sub(shl(160, 1), 1)))\n            let value_2 := 0\n            value_2 := calldataload(add(srcPtr, 0x20))\n            mstore(add(pos, 0x20), value_2)\n            let value_3 := 0\n            value_3 := calldataload(add(srcPtr, 0x40))\n            mstore(add(pos, 0x40), value_3)\n            pos := add(pos, 0x60)\n            srcPtr := add(srcPtr, 0x60)\n        }\n        end := pos\n    }\n    function abi_encode_array_struct_NFTInfo_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        let pos_1 := pos\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            let _1 := calldata_access_struct_TokenInfo_calldata(value, srcPtr)\n            let memberValue0, memberValue1 := calldata_access_string_calldata(_1, _1)\n            mstore(tail, 0x80)\n            let tail_1 := abi_encode_bytes_calldata(memberValue0, memberValue1, add(tail, 0x80))\n            let memberValue0_1, memberValue1_1 := calldata_access_string_calldata(_1, add(_1, 0x20))\n            mstore(add(tail, 0x20), sub(tail_1, tail))\n            let tail_2 := abi_encode_bytes_calldata(memberValue0_1, memberValue1_1, tail_1)\n            let memberValue0_2, memberValue1_2 := calldata_access_string_calldata(_1, add(_1, 0x40))\n            mstore(add(tail, 0x40), sub(tail_2, tail))\n            let tail_3 := abi_encode_bytes_calldata(memberValue0_2, memberValue1_2, tail_2)\n            let memberValue0_3, memberValue1_3 := calldata_access_string_calldata(_1, add(_1, 0x60))\n            mstore(add(tail, 0x60), sub(tail_3, tail))\n            tail := abi_encode_bytes_calldata(memberValue0_3, memberValue1_3, tail_3)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_struct$_UnionInMessage_$18197_calldata_ptr_t_bytes_calldata_ptr__to_t_struct$_UnionInMessage_$18197_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        abi_encode_uint64(abi_decode_uint64(value0), add(headStart, 64))\n        let memberValue0 := abi_decode_uint64(add(value0, 0x20))\n        abi_encode_uint64(memberValue0, add(headStart, 96))\n        let value := 0\n        value := calldataload(add(value0, 64))\n        mstore(add(headStart, 128), value)\n        let value_1 := 0\n        value_1 := calldataload(add(value0, 96))\n        mstore(add(headStart, 160), value_1)\n        let memberValue0_1 := abi_decode_address(add(value0, 128))\n        abi_encode_address(memberValue0_1, add(headStart, 192))\n        let memberValue0_2, memberValue1 := calldata_access_string_calldata(value0, add(value0, 160))\n        mstore(add(headStart, 224), 0x0220)\n        let tail_1 := abi_encode_bytes_calldata(memberValue0_2, memberValue1, add(headStart, 608))\n        let memberValue0_3, memberValue1_1 := calldata_access_string_calldata(value0, add(value0, 192))\n        mstore(add(headStart, 256), add(sub(tail_1, headStart), not(63)))\n        let tail_2 := abi_encode_bytes_calldata(memberValue0_3, memberValue1_1, tail_1)\n        let memberValue0_4, memberValue1_2 := calldata_access_string_calldata(value0, add(value0, 224))\n        mstore(add(headStart, 288), add(sub(tail_2, headStart), not(63)))\n        let tail_3 := abi_encode_bytes_calldata(memberValue0_4, memberValue1_2, tail_2)\n        abi_encode_struct_TokenAmount_calldata(add(value0, 256), add(headStart, 320))\n        let memberValue0_5, memberValue1_3 := calldata_access_array_address_dyn_calldata(value0, add(value0, 320))\n        mstore(add(headStart, 384), add(sub(tail_3, headStart), not(63)))\n        let tail_4 := abi_encode_array_address_dyn_calldata(memberValue0_5, memberValue1_3, tail_3)\n        let memberValue0_6, memberValue1_4 := calldata_access_array_struct_TokenAmount_calldata_dyn_calldata(value0, add(value0, 0x0160))\n        mstore(add(headStart, 416), add(sub(tail_4, headStart), not(63)))\n        let tail_5 := abi_encode_array_struct_TokenAmount_calldata_dyn_calldata(memberValue0_6, memberValue1_4, tail_4)\n        let memberValue0_7, memberValue1_5 := calldata_access_array_struct_TokenAmount_calldata_dyn_calldata(value0, add(value0, 384))\n        mstore(add(headStart, 448), add(sub(tail_5, headStart), not(63)))\n        let tail_6 := abi_encode_array_struct_TokenAmount_calldata_dyn_calldata(memberValue0_7, memberValue1_5, tail_5)\n        let memberValue0_8, memberValue1_6 := calldata_access_array_address_dyn_calldata(value0, add(value0, 416))\n        mstore(add(headStart, 480), add(sub(tail_6, headStart), not(63)))\n        let tail_7 := abi_encode_array_struct_TokenInfo_calldata_dyn_calldata(memberValue0_8, memberValue1_6, tail_6)\n        let memberValue0_9, memberValue1_7 := calldata_access_array_struct_NFTAmount_calldata_dyn_calldata(value0, add(value0, 448))\n        mstore(add(headStart, 512), add(sub(tail_7, headStart), not(63)))\n        let tail_8 := abi_encode_array_struct_NFTAmount_calldata_dyn_calldata(memberValue0_9, memberValue1_7, tail_7)\n        let memberValue0_10, memberValue1_8 := calldata_access_array_struct_NFTAmount_calldata_dyn_calldata(value0, add(value0, 480))\n        mstore(add(headStart, 0x0220), add(sub(tail_8, headStart), not(63)))\n        let tail_9 := abi_encode_array_struct_NFTAmount_calldata_dyn_calldata(memberValue0_10, memberValue1_8, tail_8)\n        let memberValue0_11, memberValue1_9 := calldata_access_array_address_dyn_calldata(value0, add(value0, 512))\n        mstore(add(headStart, 576), add(sub(tail_9, headStart), not(63)))\n        let end := abi_encode_array_struct_NFTInfo_calldata_dyn_calldata(memberValue0_11, memberValue1_9, tail_9)\n        mstore(add(headStart, 0x20), sub(end, headStart))\n        tail := abi_encode_bytes_calldata(value1, value2, end)\n    }\n    function array_dataslot_array_struct_OutMessageProcessedEventStruct_storage_dyn(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function extract_from_storage_value_offset_uint64(slot_value) -> value\n    {\n        value := and(slot_value, 0xffffffffffffffff)\n    }\n    function extract_from_storage_value_offset_address(slot_value) -> value\n    {\n        value := and(slot_value, sub(shl(160, 1), 1))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_string_storage(value, pos) -> ret\n    {\n        let slotValue := sload(value)\n        let length := extract_byte_array_length(slotValue)\n        mstore(pos, length)\n        switch and(slotValue, 1)\n        case 0 {\n            mstore(add(pos, 0x20), and(slotValue, not(255)))\n            ret := add(add(pos, shl(5, iszero(iszero(length)))), 0x20)\n        }\n        case 1 {\n            mstore(0, value)\n            let dataPos := keccak256(0, 0x20)\n            let i := 0\n            for { } lt(i, length) { i := add(i, 0x20) }\n            {\n                mstore(add(add(pos, i), 0x20), sload(dataPos))\n                dataPos := add(dataPos, 1)\n            }\n            ret := add(add(pos, i), 0x20)\n        }\n    }\n    function abi_encode_array_string_storage_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := sload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        mstore(0, value)\n        let srcPtr := keccak256(0, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            tail := abi_encode_string_storage(srcPtr, tail)\n            srcPtr := add(srcPtr, 1)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_array_struct_TokenAmount_storage_dyn(value, pos) -> end\n    {\n        let length := sload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        mstore(0, value)\n        let srcPtr := keccak256(0, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(sload(srcPtr), sub(shl(160, 1), 1)))\n            mstore(add(pos, 0x20), sload(add(srcPtr, 1)))\n            pos := add(pos, 0x40)\n            srcPtr := add(srcPtr, 0x02)\n        }\n        end := pos\n    }\n    function abi_encode_array_struct_NFTAmount_storage_dyn(value, pos) -> end\n    {\n        let length := sload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        mstore(0, value)\n        let srcPtr := keccak256(0, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(sload(srcPtr), sub(shl(160, 1), 1)))\n            mstore(add(pos, 0x20), sload(add(srcPtr, 1)))\n            mstore(add(pos, 0x40), sload(add(srcPtr, 0x02)))\n            pos := add(pos, 0x60)\n            srcPtr := add(srcPtr, 0x03)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_storage_$dyn_storage__to_t_array$_t_struct$_OutMessageProcessedEventStruct_$13691_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := sload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let tail_2 := add(add(headStart, shl(5, length)), 64)\n        mstore(0, value0)\n        let srcPtr := keccak256(0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, headStart), not(63)))\n            abi_encode_uint64(extract_from_storage_value_offset_uint64(sload(srcPtr)), tail_2)\n            mstore(add(tail_2, 32), sload(add(srcPtr, 1)))\n            let memberValue0 := extract_from_storage_value_offset_address(sload(add(srcPtr, 0x02)))\n            abi_encode_address(memberValue0, add(tail_2, 64))\n            mstore(add(tail_2, 0x60), 0x0180)\n            let tail_3 := abi_encode_string_storage(add(srcPtr, 0x03), add(tail_2, 0x0180))\n            mstore(add(tail_2, 0x80), sub(tail_3, tail_2))\n            let tail_4 := abi_encode_string_storage(add(srcPtr, 0x04), tail_3)\n            mstore(add(tail_2, 0xa0), sload(add(srcPtr, 5)))\n            mstore(add(tail_2, 0xc0), sload(add(srcPtr, 0x06)))\n            mstore(add(tail_2, 0xe0), sub(tail_4, tail_2))\n            let tail_5 := abi_encode_array_string_storage_dyn(add(srcPtr, 0x07), tail_4)\n            mstore(add(tail_2, 0x0100), sub(tail_5, tail_2))\n            let tail_6 := abi_encode_array_struct_TokenAmount_storage_dyn(add(srcPtr, 0x08), tail_5)\n            mstore(add(tail_2, 0x0120), sub(tail_6, tail_2))\n            let tail_7 := abi_encode_array_struct_TokenAmount_storage_dyn(add(srcPtr, 0x09), tail_6)\n            mstore(add(tail_2, 0x0140), sub(tail_7, tail_2))\n            let tail_8 := abi_encode_array_struct_NFTAmount_storage_dyn(add(srcPtr, 0x0a), tail_7)\n            mstore(add(tail_2, 0x0160), sub(tail_8, tail_2))\n            tail_2 := abi_encode_array_struct_NFTAmount_storage_dyn(add(srcPtr, 0x0b), tail_8)\n            srcPtr := add(srcPtr, 0x0c)\n            pos := add(pos, 32)\n        }\n        tail := tail_2\n    }\n    function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    { end := pos }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_string(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_bytes_calldata(value1, value2, tail_1)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_array_struct_OutMessageProcessedEventStruct_storage_dyn(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_uint64_t_bytes32_t_address_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_uint256_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr__to_t_uint64_t_bytes32_t_address_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_uint256_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value11, value10, value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        abi_encode_uint64(value0, headStart)\n        mstore(add(headStart, 32), value1)\n        abi_encode_address(value2, add(headStart, 64))\n        mstore(add(headStart, 96), 384)\n        let tail_1 := abi_encode_string(value3, add(headStart, 384))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        let tail_2 := abi_encode_string(value4, tail_1)\n        mstore(add(headStart, 160), value5)\n        mstore(add(headStart, 192), value6)\n        mstore(add(headStart, 224), sub(tail_2, headStart))\n        let tail_3 := abi_encode_array_string_dyn(value7, tail_2)\n        mstore(add(headStart, 256), sub(tail_3, headStart))\n        let tail_4 := abi_encode_array_struct_TokenAmount_dyn(value8, tail_3)\n        mstore(add(headStart, 288), sub(tail_4, headStart))\n        let tail_5 := abi_encode_array_struct_TokenAmount_dyn(value9, tail_4)\n        mstore(add(headStart, 320), sub(tail_5, headStart))\n        let tail_6 := abi_encode_array_struct_NFTAmount_dyn(value10, tail_5)\n        mstore(add(headStart, 352), sub(tail_6, headStart))\n        tail := abi_encode_array_struct_NFTAmount_dyn(value11, tail_6)\n    }\n    function abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, value0)\n        end := add(pos, 32)\n    }\n    function abi_encode_tuple_t_uint64_t_uint256__to_t_uint64_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_struct$_EpochInfo_$16098_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := slt(sub(dataEnd, headStart), 192)\n        if _1 { revert(0, 0) }\n        _1 := 0\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 192)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let value := 0\n        value := mload(headStart)\n        mstore(memPtr, value)\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_uint64(value_1)\n        mstore(add(memPtr, 32), value_1)\n        let value_2 := mload(add(headStart, 64))\n        validator_revert_uint64(value_2)\n        mstore(add(memPtr, 64), value_2)\n        let value_3 := mload(add(headStart, 96))\n        validator_revert_uint64(value_3)\n        mstore(add(memPtr, 96), value_3)\n        let value_4 := mload(add(headStart, 128))\n        validator_revert_uint64(value_4)\n        mstore(add(memPtr, 128), value_4)\n        let value_5 := mload(add(headStart, 160))\n        validator_revert_uint64(value_5)\n        mstore(add(memPtr, 160), value_5)\n        value0 := memPtr\n    }\n    function abi_encode_tuple_packed_t_bytes32_t_uint64_t_bytes32__to_t_bytes32_t_uint64_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        mstore(pos, value0)\n        mstore(add(pos, 32), and(shl(192, value1), shl(192, 0xffffffffffffffff)))\n        mstore(add(pos, 40), value2)\n        end := add(pos, 72)\n    }\n    function mod_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := mod(x, y)\n    }\n    function abi_encode_tuple_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_struct$_TokenInfo_$15983_memory_ptr__to_t_struct$_TokenInfo_$15983_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_struct_TokenInfo(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_struct$_NFTInfo_$15993_memory_ptr__to_t_struct$_NFTInfo_$15993_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_struct_NFTInfo(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := mload(headStart)\n        value0 := value\n    }\n    function access_calldata_tail_t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), shl(6, length))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_TokenAmount_$15999_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_struct_TokenAmount(headStart, dataEnd)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function access_calldata_tail_t_array$_t_struct$_NFTAmount_$16007_calldata_ptr_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), mul(length, 0x60))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_NFTAmount_$16007_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_struct_NFTAmount(headStart, dataEnd)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := mload(headStart)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint64(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr__to_t_struct$_TacHeaderV1_$16110_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), and(mload(value0), 0xffffffffffffffff))\n        mstore(add(headStart, 64), mload(add(value0, 32)))\n        mstore(add(headStart, 96), mload(add(value0, 64)))\n        let memberValue0 := mload(add(value0, 96))\n        mstore(add(headStart, 128), 0xa0)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 192))\n        let memberValue0_1 := mload(add(value0, 128))\n        mstore(add(headStart, 0xa0), add(sub(tail_1, headStart), not(31)))\n        tail := abi_encode_string(memberValue0_1, tail_1)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_array_string_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let dst := allocate_memory(array_allocation_size_array_struct_OutMessageProcessedEventStruct_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, length)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(dst, abi_decode_bytes(add(add(offset, innerOffset), 0x20), end))\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 0x0100) { revert(0, 0) }\n        let value := allocate_memory_9714()\n        mstore(value, abi_decode_uint64(_1))\n        let offset_1 := calldataload(add(_1, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 32), abi_decode_bytes(add(_1, offset_1), dataEnd))\n        let offset_2 := calldataload(add(_1, 64))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 64), abi_decode_bytes(add(_1, offset_2), dataEnd))\n        let value_1 := 0\n        value_1 := calldataload(add(_1, 96))\n        mstore(add(value, 96), value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(_1, 128))\n        mstore(add(value, 128), value_2)\n        let offset_3 := calldataload(add(_1, 160))\n        if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 160), abi_decode_array_string_dyn(add(_1, offset_3), dataEnd))\n        let offset_4 := calldataload(add(_1, 192))\n        if gt(offset_4, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 192), abi_decode_array_struct_TokenAmount_dyn(add(_1, offset_4), dataEnd))\n        let offset_5 := calldataload(add(_1, 224))\n        if gt(offset_5, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 224), abi_decode_array_struct_NFTAmount_dyn(add(_1, offset_5), dataEnd))\n        value0 := value\n    }\n    function abi_decode_tuple_t_struct$_InMessageV1_$16055_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_struct_UnionInMessage(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 96)\n        mstore(add(headStart, 96), 0)\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"968":[{"length":32,"start":7067},{"length":32,"start":7108},{"length":32,"start":7429}]},"linkReferences":{},"object":"6080604052600436106101355760003560e01c80638421adc8116100ab578063ad3cb1cc1161006f578063ad3cb1cc1461034b578063b42156bd14610389578063df2ebdbb1461039e578063e289adcd146103c6578063e30c3978146103d9578063f2fde38b146103ee57600080fd5b80638421adc8146102a95780638da5cb5b146102c95780639856869d146102f6578063a5a4103114610316578063abe13ef71461032b57600080fd5b80634f1ef286116100fd5780634f1ef286146101e957806352d1902d146101fc5780635a1789311461021f578063715018a61461025f578063787dce3d1461027457806379ba50971461029457600080fd5b80630efbc1811461013a5780633029a8811461017257806331f4490014610194578063485cc955146101a95780634d3a2a8c146101c9575b600080fd5b34801561014657600080fd5b5061015a6101553660046135c3565b61040e565b60405161016993929190613935565b60405180910390f35b34801561017e57600080fd5b5061019261018d36600461396c565b61070d565b005b3480156101a057600080fd5b506101926108e1565b3480156101b557600080fd5b506101926101c43660046139fe565b610921565b3480156101d557600080fd5b506101926101e4366004613a37565b610a41565b6101926101f7366004613bfe565b610b2d565b34801561020857600080fd5b50610211610b4c565b604051908152602001610169565b34801561022b57600080fd5b5061024f61023a366004613c4d565b60009081526004602052604090205460ff1690565b6040519015158152602001610169565b34801561026b57600080fd5b50610192610b69565b34801561028057600080fd5b5061019261028f366004613c4d565b610b7b565b3480156102a057600080fd5b50610192610ba9565b3480156102b557600080fd5b506101926102c436600461396c565b610bf1565b3480156102d557600080fd5b506102de610def565b6040516001600160a01b039091168152602001610169565b34801561030257600080fd5b50610192610311366004613c66565b610e24565b34801561032257600080fd5b50600854610211565b34801561033757600080fd5b50610192610346366004613c83565b610e64565b34801561035757600080fd5b5061037c604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101699190613d42565b34801561039557600080fd5b50600954610211565b3480156103aa57600080fd5b506102de73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6101926103d4366004613d55565b61103b565b3480156103e557600080fd5b506102de611456565b3480156103fa57600080fd5b50610192610409366004613c66565b61147f565b60006060808260055460ff16600281111561042b5761042b613d87565b14610449576040516308f5dbab60e31b815260040160405180910390fd5b8715610468576040516311921c1b60e01b815260040160405180910390fd5b8361047f576005805460ff1916600117905561048d565b6005805460ff191660021790555b600687905560006104a18d8d8d8a8a611504565b91505080604001516002819055506001600360006101000a81548160ff021916908315150217905550600080306001600160a01b0316633029a88160e01b848e8e6040516024016104f493929190613f58565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516105329190614134565b6000604051808303816000865af19150503d806000811461056f576040519150601f19603f3d011682016040523d82523d6000602084013e610574565b606091505b50915091508115610598576040516358a5fb7760e11b815260040160405180910390fd5b6000806105a4836117e5565b90925090506001600160e01b0319821663018ba8e960e01b146105da57604051634447e5bf60e11b815260040160405180910390fd5b6060818060200190518101906105f09190614180565b9099509050881561066c57600260055460ff16600281111561061457610614613d87565b03610667578080602001905181019061062d91906143f8565b97507f063f8c5c03902eb1e7a093a110bf896f2032e999efb1328f8248bd9c5286668a8860405161065e9190614645565b60405180910390a15b6106d3565b805160000361068e57604051634447e5bf60e11b815260040160405180910390fd5b955085600160055460ff1660028111156106aa576106aa613d87565b036106d35786604051636e511a8560e01b81526004016106ca9190613d42565b60405180910390fd5b50506005805460ff19908116909155600060068190556003805490921690915560025550949e939d50919b50919950505050505050505050565b33301461073057604051600162ab40b560e01b0319815260040160405180910390fd5b600060055460ff16600281111561074957610749613d87565b03610767576040516303d363a160e51b815260040160405180910390fd5b6107ac61077384614cce565b610781610140860186614cda565b600081811061079257610792614d23565b90506020020160208101906107a79190613c66565b61185d565b600080306001600160a01b0316638421adc860e01b8686866040516024016107d6939291906150f9565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516108149190614134565b6000604051808303816000865af19150503d8060008114610851576040519150601f19603f3d011682016040523d82523d6000602084013e610856565b606091505b509150915081156108c3576060600260055460ff16600281111561087c5761087c613d87565b036108a557600760405160200161089391906154d7565b60405160208183030381529060405290505b60018160405163018ba8e960e01b81526004016106ca929190615625565b60008160405163018ba8e960e01b81526004016106ca929190615625565b600080516020615d99833981519152546001600160401b0316156109175760405162dc149f60e41b815260040160405180910390fd5b61091f611aaa565b565b600080516020615d998339815191528054600160401b810460ff1615906001600160401b03166000811580156109545750825b90506000826001600160401b031660011480156109705750303b155b90508115801561097e575080155b1561099c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109c657845460ff60401b1916600160401b1785555b6109ce611b45565b6109d787611b4d565b600180546001600160a01b0319166001600160a01b0388161790558315610a3857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610a49611b5e565b6001600160a01b0382161580610a5d575080155b15610a6757600080fd5b600954811115610a985760095460405163024693af60e11b81526106ca918391600401918252602082015260400190565b600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610ae6576040519150601f19603f3d011682016040523d82523d6000602084013e610aeb565b606091505b509150915081610b105780604051636629334b60e11b81526004016106ca9190613d42565b8260096000828254610b22919061565e565b909155505050505050565b610b35611b90565b610b3e82611c35565b610b488282611c3d565b5050565b6000610b56611cfa565b50600080516020615d7983398151915290565b610b71611b5e565b61091f6000611d43565b610b83611b5e565b80600003610ba457604051637ade8cab60e01b815260040160405180910390fd5b600855565b3380610bb3611456565b6001600160a01b031614610be55760405163118cdaa760e01b81526001600160a01b03821660048201526024016106ca565b610bee81611d43565b50565b333014610c1457604051600162ab40b560e01b0319815260040160405180910390fd5b6000610c1f84611d7b565b90506000610c3360a0860160808701613c66565b6001600160a01b031614610de95760016060610c5260a0870187615671565b159050610d5a576000610c66878787612122565b90506000610c7760a0890189615671565b604051610c859291906156b7565b60405190819003902082610c9c60c08b018b615671565b604051602401610cae939291906156c7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610cf260a0890160808a01613c66565b6001600160a01b03168582604051610d0a9190614134565b60006040518083038185875af1925050503d8060008114610d47576040519150601f19603f3d011682016040523d82523d6000602084013e610d4c565b606091505b509094509250610dc6915050565b8215610dc657610d7060a0870160808801613c66565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114610dba576040519150601f19603f3d011682016040523d82523d6000602084013e610dbf565b606091505b5090925090505b81610de65780604051634bc182c760e01b81526004016106ca9190613d42565b50505b50505050565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b610e2c611b5e565b6000546001600160a01b031615610e4257600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b8015610e83576040516311921c1b60e01b815260040160405180910390fd5b600080610e938a8a8a8a8a611504565b91509150610ea1818661185d565b6040808201516002556003805460ff19166001179055516000908190309063108435b960e31b90610eda9086908a908a90602401613f58565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f189190614134565b6000604051808303816000865af19150503d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b509150915081610fc8578051600003610f8657604051636c80903f60e11b815260040160405180910390fd5b7fd5af3a2c6eb49b701b4449e8e15dcaadba325f81791fea3dad1aaedd2b8322a9836040015182604051610fbb9291906156ed565b60405180910390a1611006565b7f456b8aa9be4f9cf3aca41804e224f98be7be2e03613745106623cfe38ba353808360400151604051610ffd91815260200190565b60405180910390a15b5050506000908152600460205260408120805460ff199081166001179091556003805490911690556002555050505050505050565b6000611048848484612347565b90506000806000806110598561243e565b6003549397509195509350915060009060ff161561107657506002545b600260055460ff16600281111561108f5761108f613d87565b036113e657600780546001810182556000919091528651600c9091027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688810180546001600160401b0390931667ffffffffffffffff199093169290921782557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68981018390557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a810180546001600160a01b0319163317905560208801517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b9091019061117b908261574d565b5060408701516004820190611190908261574d565b50606087015160058201556080870151600682015560005b8760a001515181101561120157816007018860a0015182815181106111cf576111cf614d23565b602090810291909101810151825460018101845560009384529190922001906111f8908261574d565b506001016111a8565b5060005b8651811015611274578160080187828151811061122457611224614d23565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b039092169190911781559101519082015501611205565b5060005b85518110156112e7578160090186828151811061129757611297614d23565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b039092169190911781559101519082015501611278565b5060005b84518110156113655781600a0185828151811061130a5761130a614d23565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b03909216919091178155918101518284015560400151600290910155016112eb565b5060005b83518110156113e35781600b0184828151811061138857611388614d23565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b0390921691909117815591810151828401556040015160029091015501611369565b50505b7f0a97a8e7dbc39c9d683a5009b6f74ad8cc9eff62dbe7c695d6317b727dd32dd58660000151823389602001518a604001518b606001518c608001518d60a001518d8d8d8d6040516114439c9b9a9998979695949392919061580b565b60405180910390a1505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610e14565b611487611b5e565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556114cb610def565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b600061150e61349d565b60005a60035490915060ff16156115385760405163e0ecfe2560e01b815260040160405180910390fd5b86866040516115489291906156b7565b6040805191829003822060208301520160408051601f1981840301815291815281516020928301206000818152600490935291205490935060ff1615156001036115a85760405163398560f160e11b8152600481018490526024016106ca565b6115bb6115b68686866129ff565b612a41565b6115d85760405163582f497d60e11b815260040160405180910390fd5b6115e3888888612ae0565b9150600060055460ff1660028111156115fe576115fe613d87565b03611649578082602001516001600160401b03161115611649576020820151604051634c32b10560e11b81526001600160401b039091166004820152602481018290526044016106ca565b6001546040805163babc394f60e01b815290516000926001600160a01b03169163babc394f9160048083019260c09291908290030181865afa158015611693573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b791906158e3565b905060008160000151826080015185604001516040516020016116fa9392919092835260c09190911b6001600160c01b0319166020830152602882015260480190565b6040516020818303038152906040528051906020012090506000846101200151518260001c6117299190615986565b90506000856101200151828151811061174457611744614d23565b602002602001015190506000600281111561176157611761613d87565b60055460ff16600281111561177857611778613d87565b14801561178e57506001600160a01b0381163314155b80156117a357506001600160a01b0381163214155b156117d657604080870151905163287bd02560e11b815260048101919091523360248201523260448201526064016106ca565b50505050509550959350505050565b600060606020830151915060048351036040519150808252602081018201604052602484016020830160005b60208406840381101561182e578281015182820152602001611811565b50601f83168015611854578084038381015160001960208490036101000a011916908301525b50505050915091565b60005b82610180015151811015611979576000836101800151828151811061188757611887614d23565b6020908102919091010151600054606082015160405163130d191f60e11b81529293506001600160a01b039091169163261a323e916118c891600401613d42565b602060405180830381865afa1580156118e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190991906159a8565b61197057600054604051631963202b60e01b81526001600160a01b0390911690631963202b9061193d9084906004016159c5565b600060405180830381600087803b15801561195757600080fd5b505af115801561196b573d6000803e3d6000fd5b505050505b50600101611860565b5060005b826101e0015151811015611a96576000836101e0015182815181106119a4576119a4614d23565b6020908102919091010151600054606082015160405163130d191f60e11b81529293506001600160a01b039091169163261a323e916119e591600401613d42565b602060405180830381865afa158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2691906159a8565b611a8d57600054604051631adc56db60e01b81526001600160a01b0390911690631adc56db90611a5a9084906004016159d8565b600060405180830381600087803b158015611a7457600080fd5b505af1158015611a88573d6000803e3d6000fd5b505050505b5060010161197d565b611aa583610100015183612bf1565b505050565b600080516020615d998339815191528054600160401b900460ff1615611ae35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614610bee57805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b61091f612c62565b611b55612c62565b610bee81612c99565b33611b67610def565b6001600160a01b03161461091f5760405163118cdaa760e01b81523360048201526024016106ca565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611c1757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c0b600080516020615d79833981519152546001600160a01b031690565b6001600160a01b031614155b1561091f5760405163703e46dd60e11b815260040160405180910390fd5b610bee611b5e565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c97575060408051601f3d908101601f19168201909252611c94918101906159eb565b60015b611cbf57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016106ca565b600080516020615d798339815191528114611cf057604051632a87526960e21b8152600481018290526024016106ca565b611aa58383612ccb565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461091f5760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610b4882612d21565b6000805b611d8d610160840184615a04565b9050811015611ead5736611da5610160850185615a04565b83818110611db557611db5614d23565b6000546040909102929092019250506001600160a01b031663f6a3d24e611ddf6020840184613c66565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4791906159a8565b611e7d57611e586020820182613c66565b60405163f33436af60e01b81526001600160a01b0390911660048201526024016106ca565b611ea4611e8f36839003830183615a4d565b611e9f60a0870160808801613c66565b612bf1565b50600101611d7f565b5060005b611ebf610180840184615a04565b9050811015611f675736611ed7610180850185615a04565b83818110611ee757611ee7614d23565b60400291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9050611f146020830183613c66565b6001600160a01b031603611f3757611f30602082013584615a69565b9250611f5e565b611f5e611f4936839003830183615a4d565b611f5960a0870160808801613c66565b612d92565b50600101611eb1565b8115611f9b574782811015611f99576040516335b9bf5b60e01b815260048101829052602481018490526044016106ca565b505b5060005b611fad6101c0840184615a7c565b90508110156120a85736611fc56101c0850185615a7c565b83818110611fd557611fd5614d23565b6000546060909102929092019250506001600160a01b031663f6a3d24e611fff6020840184613c66565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206791906159a8565b61207857611e586020820182613c66565b61209f61208a36839003830183615ac4565b61209a60a0870160808801613c66565b612dba565b50600101611f9f565b5060005b6120ba6101e0840184615a7c565b905081101561211c57366120d26101e0850185615a7c565b838181106120e2576120e2614d23565b9050606002019050612113818036038101906120fe9190615ac4565b61210e60a0870160808801613c66565b612ea3565b506001016120ac565b50919050565b606060008061213760a0870160808801613c66565b60408051600481526024810182526020810180516001600160e01b03166303639b8b60e21b17905290516001600160a01b0392909216916121789190614134565b600060405180830381855afa9150503d80600081146121b3576040519150601f19603f3d011682016040523d82523d6000602084013e6121b8565b606091505b50915091508115806121c957508051155b15612203576121de60a0870160808801613c66565b604051630553ea0d60e31b81526001600160a01b0390911660048201526024016106ca565b60008180602001905181019061221991906159eb565b905080600103612301576040805160a081019091528061223c60208a018a615ae0565b6001600160401b031681526060808a013560208301526040808b0135908301520161226a60e08a018a615671565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8a018190048102820181019092528881529181019190899089908190840183828082843760009201919091525050509152506040516122eb9190602001615afd565b604051602081830303815290604052935061233d565b61231160a0880160808901613c66565b604051635dddf46360e01b81526001600160a01b039091166004820152602481018290526044016106ca565b5050509392505050565b61239860405180610100016040528060006001600160401b03168152602001606081526020016060815260200160008152602001600081526020016060815260200160608152602001606081525090565b8360010361241b5760006123ae83850185615bdf565b905060405180610100016040528082600001516001600160401b03168152602001826020015181526020018260400151815260200182606001518152602001826080015181526020018260a0015181526020018260c0015181526020018260e00151815250915050612437565b60405163082bb94160e01b8152600481018590526024016106ca565b9392505050565b6060806060808460c00151516001600160401b0381111561246157612461613a63565b6040519080825280602002602001820160405280156124a657816020015b604080518082019091526000808252602082015281526020019060019003908161247f5790505b5093508460c001515160016124bb9190615a69565b6001600160401b038111156124d2576124d2613a63565b60405190808252806020026020018201604052801561251757816020015b60408051808201909152600080825260208201528152602001906001900390816124f05790505b50925060008060005b8760c00151518310156126875760008860c00151848151811061254557612545614d23565b6020026020010151905080602001516000036125675750600190920191612520565b600160801b8160200151106125a7578051602082015160405163bde1a95560e01b81526001600160a01b03909216600483015260248201526044016106ca565b6000548151604051637b51e92760e11b81526001600160a01b03918216600482015291169063f6a3d24e90602401602060405180830381865afa1580156125f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261691906159a8565b1561264d5761262481612f50565b8088838151811061263757612637614d23565b602090810291909101015260019091019061267b565b61265681612fe7565b8087848151811061266957612669614d23565b60209081029190910101526001909201915b50600190920191612520565b600354349060ff1661273557600854896060015110156126cb5760085460608a0151604051630961b65b60e41b8152600481019290925260248201526044016106ca565b600089606001518a608001516126e19190615a69565b90508082101561270c57604051626ba64f60e51b8152600481018290523460248201526044016106ca565b612716818361565e565b915089606001516009600082825461272e9190615a69565b9091555050505b80156127d257600160801b811061277c5760405163bde1a95560e01b815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6004820152602481018290526044016106ca565b604051806040016040528073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168152602001828152508784815181106127c0576127c0614d23565b60209081029190910101526001909201915b90875290855260e08701515160009250829182916001600160401b038111156127fd576127fd613a63565b60405190808252806020026020018201604052801561285b57816020015b612848604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b81526020019060019003908161281b5790505b5095508860e00151516001600160401b0381111561287b5761287b613a63565b6040519080825280602002602001820160405280156128d957816020015b6128c6604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816128995790505b5094505b8860e00151518410156129ef5760008960e00151858151811061290257612902614d23565b60209081029190910101516000548151604051637b51e92760e11b81526001600160a01b039182166004820152929350169063f6a3d24e90602401602060405180830381865afa15801561295a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297e91906159a8565b156129b55761298c81613011565b8087858151811061299f5761299f614d23565b60209081029190910101526001909301926129e3565b6129be8161314d565b808684815181106129d1576129d1614d23565b60209081029190910101526001909201915b506001909301926128dd565b5090845282525092949193509190565b600081815b84811015612a3857612a2e82878784818110612a2257612a22614d23565b905060200201356131fa565b9150600101612a04565b50949350505050565b60008060055460ff166002811115612a5b57612a5b613d87565b03612ad357600154604051630814964f60e41b8152600481018490526001600160a01b039091169063814964f090602401602060405180830381865afa158015612aa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acd91906159a8565b92915050565b506006541490565b919050565b612ae861349d565b83600103612bd5576000612afe83850185615d20565b905060405180610200016040528082600001516001600160401b0316815260200182602001516001600160401b03168152602001826040015181526020018260600151815260200182608001516001600160a01b031681526020018260a0015181526020018260c0015181526020018260e00151815260200182610100015181526020018261012001518152602001826101400151815260200182610160015181526020018261018001518152602001826101a001518152602001826101c001518152602001826101e00151815250915050612437565b604051632c4ed5b360e11b8152600481018590526024016106ca565b602082015115610b4857815160208301516040516340c10f1960e01b81526001600160a01b03848116600483015260248201929092529116906340c10f19906044015b600060405180830381600087803b158015612c4e57600080fd5b505af1158015610de6573d6000803e3d6000fd5b600080516020615d9983398151915254600160401b900460ff1661091f57604051631afcd79f60e31b815260040160405180910390fd5b612ca1612c62565b6001600160a01b038116610be557604051631e4fbdf760e01b8152600060048201526024016106ca565b612cd482613226565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612d1957611aa5828261328b565b610b48613301565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b602082015115610b485760208201518251610b48916001600160a01b03909116908390613320565b81516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2c91906159a8565b15612e7c5781516020830151604051638832e6e360e01b81526001600160a01b03848116600483015260248201929092526060604482015260006064820152911690638832e6e390608401612c34565b8151604051630b985cbb60e21b81526001600160a01b0390911660048201526024016106ca565b81516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1591906159a8565b15612e7c5781516020830151604051632142170760e11b81526001600160a01b03909216916342842e0e91612c349130918691600401615d54565b602081015115610bee5760208101518151612f7a916001600160a01b03909116903390309061337f565b80516020820151604051632770a7eb60e21b815230600482015260248101919091526001600160a01b0390911690639dc29fac906044015b600060405180830381600087803b158015612fcc57600080fd5b505af1158015612fe0573d6000803e3d6000fd5b5050505050565b602081015115610bee5760208101518151610bee916001600160a01b03909116903390309061337f565b80516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa15801561305f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308391906159a8565b1561312657805160208201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd916130be9133913091600401615d54565b600060405180830381600087803b1580156130d857600080fd5b505af11580156130ec573d6000803e3d6000fd5b505082516020840151604051630852cd8d60e31b81526001600160a01b0390921693506342966c689250612fb29160040190815260200190565b8051604051630b985cbb60e21b81526001600160a01b0390911660048201526024016106ca565b80516040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa15801561319b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bf91906159a8565b1561312657805160208201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd91612fb29133913091600401615d54565b6000818310613216576000828152602084905260409020612437565b5060009182526020526040902090565b806001600160a01b03163b60000361325c57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016106ca565b600080516020615d7983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516132a89190614134565b600060405180830381855af49150503d80600081146132e3576040519150601f19603f3d011682016040523d82523d6000602084013e6132e8565b606091505b50915091506132f88583836133a7565b95945050505050565b341561091f5760405163b398979f60e01b815260040160405180910390fd5b6040516001600160a01b03838116602483015260448201839052611aa591859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613403565b610de984856001600160a01b03166323b872dd86868660405160240161334d93929190615d54565b6060826133bc576133b782613474565b612437565b81511580156133d357506001600160a01b0384163b155b156133fc57604051639996b31560e01b81526001600160a01b03851660048201526024016106ca565b5080612437565b600080602060008451602086016000885af180613426576040513d6000823e3d81fd5b50506000513d9150811561343e57806001141561344b565b6001600160a01b0384163b155b15610de957604051635274afe760e01b81526001600160a01b03851660048201526024016106ca565b8051156134845780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60408051610200810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c0840181905260e08401528351808501909452818452830152906101008201908152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b60008083601f84011261353b57600080fd5b5081356001600160401b0381111561355257600080fd5b60208301915083602082850101111561356a57600080fd5b9250929050565b60008083601f84011261358357600080fd5b5081356001600160401b0381111561359a57600080fd5b6020830191508360208260051b850101111561356a57600080fd5b8015158114610bee57600080fd5b600080600080600080600080600060c08a8c0312156135e157600080fd5b8935985060208a01356001600160401b038111156135fe57600080fd5b61360a8c828d01613529565b90995097505060408a01356001600160401b0381111561362957600080fd5b6136358c828d01613529565b90975095505060608a0135935060808a01356001600160401b0381111561365b57600080fd5b6136678c828d01613571565b90945092505060a08a013561367b816135b5565b809150509295985092959850929598565b60005b838110156136a757818101518382015260200161368f565b50506000910152565b600081518084526136c881602086016020860161368c565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b8381101561372c57601f198584030188526137168383516136b0565b60209889019890935091909101906001016136fa565b50909695505050505050565b600081518084526020840193506020830160005b828110156137885761377286835180516001600160a01b03168252602090810151910152565b604095909501946020919091019060010161374c565b5093949350505050565b600081518084526020840193506020830160005b8281101561378857815180516001600160a01b031687526020808201519088015260409081015190870152606086019550602091909101906001016137a6565b600082825180855260208501945060208160051b8301016020850160005b8381101561372c57848303601f19018852815180516001600160401b0316845260208101516020850152604081015161384860408601826001600160a01b03169052565b50606081015161018060608601526138646101808601826136b0565b90506080820151858203608087015261387d82826136b0565b91505060a082015160a086015260c082015160c086015260e082015185820360e08701526138ab82826136dc565b9150506101008201518582036101008701526138c78282613738565b9150506101208201518582036101208701526138e38282613738565b9150506101408201518582036101408701526138ff8282613792565b915050610160820151915084810361016086015261391d8183613792565b60209a8b019a90955093909301925050600101613804565b831515815260606020820152600061395060608301856137e6565b828103604084015261396281856136b0565b9695505050505050565b60008060006040848603121561398157600080fd5b83356001600160401b0381111561399757600080fd5b840161022081870312156139aa57600080fd5b925060208401356001600160401b038111156139c557600080fd5b6139d186828701613529565b9497909650939450505050565b6001600160a01b0381168114610bee57600080fd5b8035612adb816139de565b60008060408385031215613a1157600080fd5b8235613a1c816139de565b91506020830135613a2c816139de565b809150509250929050565b60008060408385031215613a4a57600080fd5b8235613a55816139de565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613a9b57613a9b613a63565b60405290565b604051606081016001600160401b0381118282101715613a9b57613a9b613a63565b60405161018081016001600160401b0381118282101715613a9b57613a9b613a63565b604051608081016001600160401b0381118282101715613a9b57613a9b613a63565b60405161020081016001600160401b0381118282101715613a9b57613a9b613a63565b60405161010081016001600160401b0381118282101715613a9b57613a9b613a63565b604051601f8201601f191681016001600160401b0381118282101715613b7657613b76613a63565b604052919050565b60006001600160401b03821115613b9757613b97613a63565b50601f01601f191660200190565b600082601f830112613bb657600080fd5b8135602083016000613bcf613bca84613b7e565b613b4e565b9050828152858383011115613be357600080fd5b82826020830137600092810160200192909252509392505050565b60008060408385031215613c1157600080fd5b8235613c1c816139de565b915060208301356001600160401b03811115613c3757600080fd5b613c4385828601613ba5565b9150509250929050565b600060208284031215613c5f57600080fd5b5035919050565b600060208284031215613c7857600080fd5b8135612437816139de565b60008060008060008060008060a0898b031215613c9f57600080fd5b8835975060208901356001600160401b03811115613cbc57600080fd5b613cc88b828c01613529565b90985096505060408901356001600160401b03811115613ce757600080fd5b613cf38b828c01613571565b9096509450506060890135613d07816139de565b925060808901356001600160401b03811115613d2257600080fd5b613d2e8b828c01613529565b999c989b5096995094979396929594505050565b60208152600061243760208301846136b0565b600080600060408486031215613d6a57600080fd5b8335925060208401356001600160401b038111156139c557600080fd5b634e487b7160e01b600052602160045260246000fd5b600081518084526020840193506020830160005b828110156137885781516001600160a01b0316865260209586019590910190600101613db1565b6000815160808452613ded60808501826136b0565b905060208301518482036020860152613e0682826136b0565b91505060ff6040840151166040850152606083015184820360608601526132f882826136b0565b600082825180855260208501945060208160051b8301016020850160005b8381101561372c57601f19858403018852613e67838351613dd8565b6020988901989093509190910190600101613e4b565b6000815160808452613e9260808501826136b0565b905060208301518482036020860152613eab82826136b0565b91505060408301518482036040860152613ec582826136b0565b915050606083015184820360608601526132f882826136b0565b600082825180855260208501945060208160051b8301016020850160005b8381101561372c57601f19858403018852613f19838351613e7d565b6020988901989093509190910190600101613efd565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152613f726040820185516001600160401b03169052565b60006020850151613f8e60608401826001600160401b03169052565b5060408501516080830152606085015160a08301526080850151613fbd60c08401826001600160a01b03169052565b5060a085015161022060e0840152613fd96102608401826136b0565b905060c0860151603f1984830301610100850152613ff782826136b0565b91505060e0860151603f198483030161012085015261401682826136b0565b91505061010086015161404061014085018280516001600160a01b03168252602090810151910152565b50610120860151838203603f190161018085015261405e8282613d9d565b915050610140860151603f19848303016101a085015261407e8282613738565b915050610160860151603f19848303016101c085015261409e8282613738565b915050610180860151603f19848303016101e08501526140be8282613e2d565b9150506101a0860151603f19848303016102008501526140de8282613792565b9150506101c0860151603f19848303016102208501526140fe8282613792565b9150506101e0860151603f198483030161024085015261411e8282613edf565b9150508281036020840152613962818587613f2f565b6000825161414681846020870161368c565b9190910192915050565b600061415e613bca84613b7e565b905082815283838301111561417257600080fd5b61243783602083018461368c565b6000806040838503121561419357600080fd5b825161419e816135b5565b60208401519092506001600160401b038111156141ba57600080fd5b8301601f810185136141cb57600080fd5b613c4385825160208401614150565b60006001600160401b038211156141f3576141f3613a63565b5060051b60200190565b6001600160401b0381168114610bee57600080fd5b8051612adb816141fd565b8051612adb816139de565b600082601f83011261423957600080fd5b61243783835160208501614150565b600082601f83011261425957600080fd5b8151614267613bca826141da565b8082825260208201915060208360051b86010192508583111561428957600080fd5b602085015b838110156142ca5780516001600160401b038111156142ac57600080fd5b6142bb886020838a0101614228565b8452506020928301920161428e565b5095945050505050565b600082601f8301126142e557600080fd5b81516142f3613bca826141da565b8082825260208201915060208360061b86010192508583111561431557600080fd5b602085015b838110156142ca576040818803121561433257600080fd5b61433a613a79565b8151614345816139de565b815260208281015181830152908452929092019160400161431a565b600082601f83011261437257600080fd5b8151614380613bca826141da565b808282526020820191506020606084028601019250858311156143a257600080fd5b602085015b838110156142ca57606081880312156143bf57600080fd5b6143c7613aa1565b81516143d2816139de565b8152602082810151818301526040808401519083015290845292909201916060016143a7565b60006020828403121561440a57600080fd5b81516001600160401b0381111561442057600080fd5b8201601f8101841361443157600080fd5b805161443f613bca826141da565b8082825260208201915060208360051b85010192508683111561446157600080fd5b602084015b8381101561463a5780516001600160401b0381111561448457600080fd5b8501610180818a03601f1901121561449b57600080fd5b6144a3613ac3565b6144af60208301614212565b8152604082015160208201526144c76060830161421d565b604082015260808201516001600160401b038111156144e557600080fd5b6144f48b602083860101614228565b60608301525060a08201516001600160401b0381111561451357600080fd5b6145228b602083860101614228565b60808301525060c08281015160a083015260e0830151908201526101008201516001600160401b0381111561455657600080fd5b6145658b602083860101614248565b60e0830152506101208201516001600160401b0381111561458557600080fd5b6145948b6020838601016142d4565b610100830152506101408201516001600160401b038111156145b557600080fd5b6145c48b6020838601016142d4565b610120830152506101608201516001600160401b038111156145e557600080fd5b6145f48b602083860101614361565b610140830152506101808201516001600160401b0381111561461557600080fd5b6146248b602083860101614361565b6101608301525084525060209283019201614466565b509695505050505050565b60208152600061243760208301846137e6565b8035612adb816141fd565b60006040828403121561467557600080fd5b61467d613a79565b9050813561468a816139de565b815260209182013591810191909152919050565b600082601f8301126146af57600080fd5b81356146bd613bca826141da565b8082825260208201915060208360051b8601019250858311156146df57600080fd5b602085015b838110156142ca5780356146f7816139de565b8352602092830192016146e4565b600082601f83011261471657600080fd5b8135614724613bca826141da565b8082825260208201915060208360061b86010192508583111561474657600080fd5b602085015b838110156142ca5761475d8782614663565b835260209092019160400161474b565b803560ff81168114612adb57600080fd5b600082601f83011261478f57600080fd5b813561479d613bca826141da565b8082825260208201915060208360051b8601019250858311156147bf57600080fd5b602085015b838110156142ca5780356001600160401b038111156147e257600080fd5b86016080818903601f190112156147f857600080fd5b614800613ae6565b60208201356001600160401b0381111561481957600080fd5b6148288a602083860101613ba5565b82525060408201356001600160401b0381111561484457600080fd5b6148538a602083860101613ba5565b6020830152506148656060830161476d565b604082015260808201356001600160401b0381111561488357600080fd5b6148928a602083860101613ba5565b606083015250845250602092830192016147c4565b6000606082840312156148b957600080fd5b6148c1613aa1565b905081356148ce816139de565b81526020828101359082015260409182013591810191909152919050565b600082601f8301126148fd57600080fd5b813561490b613bca826141da565b8082825260208201915060206060840286010192508583111561492d57600080fd5b602085015b838110156142ca5761494487826148a7565b8352602090920191606001614932565b600082601f83011261496557600080fd5b8135614973613bca826141da565b8082825260208201915060208360051b86010192508583111561499557600080fd5b602085015b838110156142ca5780356001600160401b038111156149b857600080fd5b86016080818903601f190112156149ce57600080fd5b6149d6613ae6565b60208201356001600160401b038111156149ef57600080fd5b6149fe8a602083860101613ba5565b82525060408201356001600160401b03811115614a1a57600080fd5b614a298a602083860101613ba5565b60208301525060608201356001600160401b03811115614a4857600080fd5b614a578a602083860101613ba5565b60408301525060808201356001600160401b03811115614a7657600080fd5b614a858a602083860101613ba5565b6060830152508452506020928301920161499a565b60006102208284031215614aad57600080fd5b614ab5613b08565b9050614ac082614658565b8152614ace60208301614658565b60208201526040828101359082015260608083013590820152614af3608083016139f3565b608082015260a08201356001600160401b03811115614b1157600080fd5b614b1d84828501613ba5565b60a08301525060c08201356001600160401b03811115614b3c57600080fd5b614b4884828501613ba5565b60c08301525060e08201356001600160401b03811115614b6757600080fd5b614b7384828501613ba5565b60e083015250614b87836101008401614663565b6101008201526101408201356001600160401b03811115614ba757600080fd5b614bb38482850161469e565b610120830152506101608201356001600160401b03811115614bd457600080fd5b614be084828501614705565b610140830152506101808201356001600160401b03811115614c0157600080fd5b614c0d84828501614705565b610160830152506101a08201356001600160401b03811115614c2e57600080fd5b614c3a8482850161477e565b610180830152506101c08201356001600160401b03811115614c5b57600080fd5b614c67848285016148ec565b6101a0830152506101e08201356001600160401b03811115614c8857600080fd5b614c94848285016148ec565b6101c0830152506102008201356001600160401b03811115614cb557600080fd5b614cc184828501614954565b6101e08301525092915050565b6000612acd3683614a9a565b6000808335601e19843603018112614cf157600080fd5b8301803591506001600160401b03821115614d0b57600080fd5b6020019150600581901b360382131561356a57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112614d5057600080fd5b83016020810192503590506001600160401b03811115614d6f57600080fd5b80360382131561356a57600080fd5b8035614d89816139de565b6001600160a01b03168252602090810135910152565b6000808335601e19843603018112614db657600080fd5b83016020810192503590506001600160401b03811115614dd557600080fd5b8060051b360382131561356a57600080fd5b81835260208301925060008160005b84811015613788578135614e09816139de565b6001600160a01b031686526020958601959190910190600101614df6565b6000808335601e19843603018112614e3e57600080fd5b83016020810192503590506001600160401b03811115614e5d57600080fd5b8060061b360382131561356a57600080fd5b81835260208301925060008160005b8481101561378857614e908683614d7e565b6040958601959190910190600101614e7e565b60008235607e19833603018112614eb957600080fd5b90910192915050565b60008383855260208501945060208460051b8201018360005b8681101561372c57838303601f19018852614ef68287614ea3565b614f008182614d39565b60808652614f12608087018284613f2f565b915050614f226020830183614d39565b8683036020880152614f35838284613f2f565b9250505060ff614f476040840161476d565b166040860152614f5a6060830183614d39565b92508582036060870152614f6f828483613f2f565b60209b8c019b9096509490940193505050600101614edb565b6000808335601e19843603018112614f9f57600080fd5b83016020810192503590506001600160401b03811115614fbe57600080fd5b60608102360382131561356a57600080fd5b81835260208301925060008160005b84811015613788578135614ff2816139de565b6001600160a01b03168652602082810135908701526040808301359087015260609586019590910190600101614fdf565b60008383855260208501945060208460051b8201018360005b8681101561372c57838303601f190188526150578287614ea3565b6150618182614d39565b60808652615073608087018284613f2f565b9150506150836020830183614d39565b8683036020880152615096838284613f2f565b925050506150a76040830183614d39565b86830360408801526150ba838284613f2f565b925050506150cb6060830183614d39565b925085820360608701526150e0828483613f2f565b60209b8c019b909650949094019350505060010161503c565b6040815261511a6040820161510d86614658565b6001600160401b03169052565b600061512860208601614658565b6001600160401b0381166060840152506040850135608083810191909152606086013560a084015261515b9086016139f3565b6001600160a01b031660c083015261517660a0860186614d39565b61022060e085015261518d61026085018284613f2f565b91505061519d60c0870187614d39565b848303603f19016101008601526151b5838284613f2f565b925050506151c660e0870187614d39565b848303603f19016101208601526151de838284613f2f565b925050506151f461014084016101008801614d7e565b615202610140870187614d9f565b848303603f190161018086015261521a838284614de7565b9250505061522c610160870187614e27565b848303603f19016101a0860152615244838284614e6f565b92505050615256610180870187614e27565b848303603f19016101c086015261526e838284614e6f565b925050506152806101a0870187614d9f565b848303603f19016101e0860152615298838284614ec2565b925050506152aa6101c0870187614f88565b848303603f19016102008601526152c2838284614fd0565b925050506152d46101e0870187614f88565b848303603f19016102208601526152ec838284614fd0565b925050506152fe610200870187614d9f565b848303603f1901610240860152615316838284615023565b925050508281036020840152613962818587613f2f565b600181811c9082168061534157607f821691505b60208210810361211c57634e487b7160e01b600052602260045260246000fd5b6000815461536e8161532d565b80855260018216801561538857600181146153a4576153db565b60ff1983166020870152602082151560051b87010193506153db565b84600052602060002060005b838110156153d25781546020828a0101526001820191506020810190506153b0565b87016020019450505b50505092915050565b600082825480855260208501945060208160051b83010184600052602060002060005b8381101561372c57848303601f190188526154228383615361565b60209890980197925060019182019101615407565b6000815480845260208401935082600052602060002060005b828110156137885781546001600160a01b03168652600182810154602088015260409096019560029092019101615450565b6000815480845260208401935082600052602060002060005b828110156137885781546001600160a01b031686526001828101546020880152600283015460408801526060909601956003909201910161549b565b6000602082016020835280845480835260408501915060408160051b860101925085600052602060002060005b8281101561561957603f1987860301845261552a8561510d84546001600160401b031690565b6001820154602086015260028201546001600160a01b031660408601526101806060860181905261556090860160038401615361565b85810360808701526155758160048501615361565b9050600583015460a0870152600683015460c087015285810360e08701526155a081600785016153e4565b90508581036101008701526155b88160088501615437565b90508581036101208701526155d08160098501615437565b90508581036101408701526155e881600a8501615482565b905085810361016087015261560081600b8501615482565b95505060209390930192600c9190910190600101615504565b50929695505050505050565b821515815260406020820152600061564060408301846136b0565b949350505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115612acd57612acd615648565b6000808335601e1984360301811261568857600080fd5b8301803591506001600160401b038211156156a257600080fd5b60200191503681900382131561356a57600080fd5b8183823760009101908152919050565b6040815260006156da60408301866136b0565b8281036020840152613962818587613f2f565b82815260406020820152600061564060408301846136b0565b601f821115611aa557806000526020600020601f840160051c8101602085101561572d5750805b601f840160051c820191505b81811015612fe05760008155600101615739565b81516001600160401b0381111561576657615766613a63565b61577a81615774845461532d565b84615706565b6020601f8211600181146157ae57600083156157965750848201515b600019600385901b1c1916600184901b178455612fe0565b600084815260208120601f198516915b828110156157de57878501518255602094850194600190920191016157be565b50848210156157fc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6001600160401b038d1681528b6020820152615832604082018c6001600160a01b03169052565b6101806060820152600061584a61018083018c6136b0565b828103608084015261585c818c6136b0565b90508960a08401528860c084015282810360e084015261587c81896136dc565b90508281036101008401526158918188613738565b90508281036101208401526158a68187613738565b90508281036101408401526158bb8186613792565b90508281036101608401526158d08185613792565b9f9e505050505050505050505050505050565b600060c08284031280156158f657600080fd5b5060405160c081016001600160401b038111828210171561591957615919613a63565b60405282518152602083015161592e816141fd565b60208201526040830151615941816141fd565b60408201526060830151615954816141fd565b60608201526080830151615967816141fd565b608082015260a083015161597a816141fd565b60a08201529392505050565b6000826159a357634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156159ba57600080fd5b8151612437816135b5565b6020815260006124376020830184613dd8565b6020815260006124376020830184613e7d565b6000602082840312156159fd57600080fd5b5051919050565b6000808335601e19843603018112615a1b57600080fd5b8301803591506001600160401b03821115615a3557600080fd5b6020019150600681901b360382131561356a57600080fd5b600060408284031215615a5f57600080fd5b6124378383614663565b80820180821115612acd57612acd615648565b6000808335601e19843603018112615a9357600080fd5b8301803591506001600160401b03821115615aad57600080fd5b602001915060608102360382131561356a57600080fd5b600060608284031215615ad657600080fd5b61243783836148a7565b600060208284031215615af257600080fd5b8135612437816141fd565b602081526001600160401b03825116602082015260208201516040820152604082015160608201526000606083015160a06080840152615b4060c08401826136b0565b90506080840151601f198483030160a08501526132f882826136b0565b600082601f830112615b6e57600080fd5b8135615b7c613bca826141da565b8082825260208201915060208360051b860101925085831115615b9e57600080fd5b602085015b838110156142ca5780356001600160401b03811115615bc157600080fd5b615bd0886020838a0101613ba5565b84525060209283019201615ba3565b600060208284031215615bf157600080fd5b81356001600160401b03811115615c0757600080fd5b82016101008185031215615c1a57600080fd5b615c22613b2b565b615c2b82614658565b815260208201356001600160401b03811115615c4657600080fd5b615c5286828501613ba5565b60208301525060408201356001600160401b03811115615c7157600080fd5b615c7d86828501613ba5565b604083015250606082810135908201526080808301359082015260a08201356001600160401b03811115615cb057600080fd5b615cbc86828501615b5d565b60a08301525060c08201356001600160401b03811115615cdb57600080fd5b615ce786828501614705565b60c08301525060e08201356001600160401b03811115615d0657600080fd5b615d12868285016148ec565b60e083015250949350505050565b600060208284031215615d3257600080fd5b81356001600160401b03811115615d4857600080fd5b61564084828501614a9a565b6001600160a01b03938416815291909216602082015260408101919091526060019056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b87aeeca7c160b50b61024f1f8783d84f8761468e0014f4551b41acbc32fe08564736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x135 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8421ADC8 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xAD3CB1CC GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0xB42156BD EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0xDF2EBDBB EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0xE289ADCD EQ PUSH2 0x3C6 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x3D9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8421ADC8 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x9856869D EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0xA5A41031 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xABE13EF7 EQ PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4F1EF286 GT PUSH2 0xFD JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0x5A178931 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x787DCE3D EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xEFBC181 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x3029A881 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x31F44900 EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x4D3A2A8C EQ PUSH2 0x1C9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x35C3 JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x169 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3935 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x396C JUMP JUMPDEST PUSH2 0x70D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x8E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x39FE JUMP JUMPDEST PUSH2 0x921 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A37 JUMP JUMPDEST PUSH2 0xA41 JUMP JUMPDEST PUSH2 0x192 PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3BFE JUMP JUMPDEST PUSH2 0xB2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x211 PUSH2 0xB4C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0x3C4D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0xB69 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x3C4D JUMP JUMPDEST PUSH2 0xB7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0xBA9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x396C JUMP JUMPDEST PUSH2 0xBF1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xDEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0xE24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x322 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x8 SLOAD PUSH2 0x211 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x346 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C83 JUMP JUMPDEST PUSH2 0xE64 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x169 SWAP2 SWAP1 PUSH2 0x3D42 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x211 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 JUMP JUMPDEST PUSH2 0x192 PUSH2 0x3D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D55 JUMP JUMPDEST PUSH2 0x103B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1456 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x409 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x147F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x42B JUMPI PUSH2 0x42B PUSH2 0x3D87 JUMP JUMPDEST EQ PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8F5DBAB PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP8 ISZERO PUSH2 0x468 JUMPI PUSH1 0x40 MLOAD PUSH4 0x11921C1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH2 0x47F JUMPI PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x48D JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x6 DUP8 SWAP1 SSTORE PUSH1 0x0 PUSH2 0x4A1 DUP14 DUP14 DUP14 DUP11 DUP11 PUSH2 0x1504 JUMP JUMPDEST SWAP2 POP POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3029A881 PUSH1 0xE0 SHL DUP5 DUP15 DUP15 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x4F4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F58 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 0x532 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x56F 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 0x574 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x598 JUMPI PUSH1 0x40 MLOAD PUSH4 0x58A5FB77 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x5A4 DUP4 PUSH2 0x17E5 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x18BA8E9 PUSH1 0xE0 SHL EQ PUSH2 0x5DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x4447E5BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x5F0 SWAP2 SWAP1 PUSH2 0x4180 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP1 POP DUP9 ISZERO PUSH2 0x66C JUMPI PUSH1 0x2 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x614 JUMPI PUSH2 0x614 PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x667 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x62D SWAP2 SWAP1 PUSH2 0x43F8 JUMP JUMPDEST SWAP8 POP PUSH32 0x63F8C5C03902EB1E7A093A110BF896F2032E999EFB1328F8248BD9C5286668A DUP9 PUSH1 0x40 MLOAD PUSH2 0x65E SWAP2 SWAP1 PUSH2 0x4645 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST PUSH2 0x6D3 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x68E JUMPI PUSH1 0x40 MLOAD PUSH4 0x4447E5BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6AA JUMPI PUSH2 0x6AA PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x6D3 JUMPI DUP7 PUSH1 0x40 MLOAD PUSH4 0x6E511A85 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x3D42 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x0 PUSH1 0x6 DUP2 SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND SWAP1 SWAP2 SSTORE PUSH1 0x2 SSTORE POP SWAP5 SWAP15 SWAP4 SWAP14 POP SWAP2 SWAP12 POP SWAP2 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x730 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xAB40B5 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x749 JUMPI PUSH2 0x749 PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x767 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3D363A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7AC PUSH2 0x773 DUP5 PUSH2 0x4CCE JUMP JUMPDEST PUSH2 0x781 PUSH2 0x140 DUP7 ADD DUP7 PUSH2 0x4CDA JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x792 JUMPI PUSH2 0x792 PUSH2 0x4D23 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7A7 SWAP2 SWAP1 PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x185D JUMP JUMPDEST PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8421ADC8 PUSH1 0xE0 SHL DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x7D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x50F9 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 0x814 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x851 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 0x856 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x60 PUSH1 0x2 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x87C JUMPI PUSH2 0x87C PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x8A5 JUMPI PUSH1 0x7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x893 SWAP2 SWAP1 PUSH2 0x54D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x40 MLOAD PUSH4 0x18BA8E9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH4 0x18BA8E9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D99 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO PUSH2 0x917 JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x91F PUSH2 0x1AAA JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D99 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x970 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x97E JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x99C JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x9C6 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x9CE PUSH2 0x1B45 JUMP JUMPDEST PUSH2 0x9D7 DUP8 PUSH2 0x1B4D JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0xA38 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA49 PUSH2 0x1B5E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 PUSH2 0xA5D JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xA67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x9 SLOAD DUP2 GT ISZERO PUSH2 0xA98 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24693AF PUSH1 0xE1 SHL DUP2 MSTORE PUSH2 0x6CA SWAP2 DUP4 SWAP2 PUSH1 0x4 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xAE6 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 0xAEB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xB10 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH4 0x6629334B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x3D42 JUMP JUMPDEST DUP3 PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB22 SWAP2 SWAP1 PUSH2 0x565E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xB35 PUSH2 0x1B90 JUMP JUMPDEST PUSH2 0xB3E DUP3 PUSH2 0x1C35 JUMP JUMPDEST PUSH2 0xB48 DUP3 DUP3 PUSH2 0x1C3D JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB56 PUSH2 0x1CFA JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D79 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0xB71 PUSH2 0x1B5E JUMP JUMPDEST PUSH2 0x91F PUSH1 0x0 PUSH2 0x1D43 JUMP JUMPDEST PUSH2 0xB83 PUSH2 0x1B5E JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0xBA4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7ADE8CAB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 SSTORE JUMP JUMPDEST CALLER DUP1 PUSH2 0xBB3 PUSH2 0x1456 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBE5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0xBEE DUP2 PUSH2 0x1D43 JUMP JUMPDEST POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xC14 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xAB40B5 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC1F DUP5 PUSH2 0x1D7B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xC33 PUSH1 0xA0 DUP7 ADD PUSH1 0x80 DUP8 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDE9 JUMPI PUSH1 0x1 PUSH1 0x60 PUSH2 0xC52 PUSH1 0xA0 DUP8 ADD DUP8 PUSH2 0x5671 JUMP JUMPDEST ISZERO SWAP1 POP PUSH2 0xD5A JUMPI PUSH1 0x0 PUSH2 0xC66 DUP8 DUP8 DUP8 PUSH2 0x2122 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xC77 PUSH1 0xA0 DUP10 ADD DUP10 PUSH2 0x5671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC85 SWAP3 SWAP2 SWAP1 PUSH2 0x56B7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 KECCAK256 DUP3 PUSH2 0xC9C PUSH1 0xC0 DUP12 ADD DUP12 PUSH2 0x5671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xCAE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x56C7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0xCF2 PUSH1 0xA0 DUP10 ADD PUSH1 0x80 DUP11 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xD0A SWAP2 SWAP1 PUSH2 0x4134 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 0xD47 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 0xD4C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP5 POP SWAP3 POP PUSH2 0xDC6 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO PUSH2 0xDC6 JUMPI PUSH2 0xD70 PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xDBA 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 0xDBF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP JUMPDEST DUP2 PUSH2 0xDE6 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH4 0x4BC182C7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x3D42 JUMP JUMPDEST POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE2C PUSH2 0x1B5E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xE42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE83 JUMPI PUSH1 0x40 MLOAD PUSH4 0x11921C1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE93 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x1504 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xEA1 DUP2 DUP7 PUSH2 0x185D JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 ADDRESS SWAP1 PUSH4 0x108435B9 PUSH1 0xE3 SHL SWAP1 PUSH2 0xEDA SWAP1 DUP7 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x24 ADD PUSH2 0x3F58 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 0xF18 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xF55 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 0xF5A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xFC8 JUMPI DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xF86 JUMPI PUSH1 0x40 MLOAD PUSH4 0x6C80903F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xD5AF3A2C6EB49B701B4449E8E15DCAADBA325F81791FEA3DAD1AAEDD2B8322A9 DUP4 PUSH1 0x40 ADD MLOAD DUP3 PUSH1 0x40 MLOAD PUSH2 0xFBB SWAP3 SWAP2 SWAP1 PUSH2 0x56ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x1006 JUMP JUMPDEST PUSH32 0x456B8AA9BE4F9CF3ACA41804E224F98BE7BE2E03613745106623CFE38BA35380 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xFFD SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x1 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE PUSH1 0x2 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1048 DUP5 DUP5 DUP5 PUSH2 0x2347 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1059 DUP6 PUSH2 0x243E JUMP JUMPDEST PUSH1 0x3 SLOAD SWAP4 SWAP8 POP SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x1076 JUMPI POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x2 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108F PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x13E6 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP7 MLOAD PUSH1 0xC SWAP1 SWAP2 MUL PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP4 AND PUSH8 0xFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR DUP3 SSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C689 DUP2 ADD DUP4 SWAP1 SSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C68A DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x20 DUP9 ADD MLOAD PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C68B SWAP1 SWAP2 ADD SWAP1 PUSH2 0x117B SWAP1 DUP3 PUSH2 0x574D JUMP JUMPDEST POP PUSH1 0x40 DUP8 ADD MLOAD PUSH1 0x4 DUP3 ADD SWAP1 PUSH2 0x1190 SWAP1 DUP3 PUSH2 0x574D JUMP JUMPDEST POP PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x80 DUP8 ADD MLOAD PUSH1 0x6 DUP3 ADD SSTORE PUSH1 0x0 JUMPDEST DUP8 PUSH1 0xA0 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x1201 JUMPI DUP2 PUSH1 0x7 ADD DUP9 PUSH1 0xA0 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x11CF JUMPI PUSH2 0x11CF PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP2 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE SWAP2 SWAP1 SWAP3 KECCAK256 ADD SWAP1 PUSH2 0x11F8 SWAP1 DUP3 PUSH2 0x574D JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x11A8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0x1274 JUMPI DUP2 PUSH1 0x8 ADD DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1224 JUMPI PUSH2 0x1224 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP2 ADD MLOAD SWAP1 DUP3 ADD SSTORE ADD PUSH2 0x1205 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0x12E7 JUMPI DUP2 PUSH1 0x9 ADD DUP7 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1297 JUMPI PUSH2 0x1297 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP2 ADD MLOAD SWAP1 DUP3 ADD SSTORE ADD PUSH2 0x1278 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1365 JUMPI DUP2 PUSH1 0xA ADD DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x130A JUMPI PUSH2 0x130A PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP2 DUP2 ADD MLOAD DUP3 DUP5 ADD SSTORE PUSH1 0x40 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE ADD PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x13E3 JUMPI DUP2 PUSH1 0xB ADD DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1388 JUMPI PUSH2 0x1388 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP2 DUP2 ADD MLOAD DUP3 DUP5 ADD SSTORE PUSH1 0x40 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE ADD PUSH2 0x1369 JUMP JUMPDEST POP POP JUMPDEST PUSH32 0xA97A8E7DBC39C9D683A5009B6F74AD8CC9EFF62DBE7C695D6317B727DD32DD5 DUP7 PUSH1 0x0 ADD MLOAD DUP3 CALLER DUP10 PUSH1 0x20 ADD MLOAD DUP11 PUSH1 0x40 ADD MLOAD DUP12 PUSH1 0x60 ADD MLOAD DUP13 PUSH1 0x80 ADD MLOAD DUP14 PUSH1 0xA0 ADD MLOAD DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x1443 SWAP13 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x580B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x1487 PUSH2 0x1B5E JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR DUP3 SSTORE PUSH2 0x14CB PUSH2 0xDEF 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 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x150E PUSH2 0x349D JUMP JUMPDEST PUSH1 0x0 GAS PUSH1 0x3 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x1538 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE0ECFE25 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1548 SWAP3 SWAP2 SWAP1 PUSH2 0x56B7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP4 POP PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 SUB PUSH2 0x15A8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x398560F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x15BB PUSH2 0x15B6 DUP7 DUP7 DUP7 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x2A41 JUMP JUMPDEST PUSH2 0x15D8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x582F497D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15E3 DUP9 DUP9 DUP9 PUSH2 0x2AE0 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x15FE JUMPI PUSH2 0x15FE PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x1649 JUMPI DUP1 DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x4C32B105 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xBABC394F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xBABC394F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0xC0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1693 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 0x16B7 SWAP2 SWAP1 PUSH2 0x58E3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x80 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16FA SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0xC0 SWAP2 SWAP1 SWAP2 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x28 DUP3 ADD MSTORE PUSH1 0x48 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP5 PUSH2 0x120 ADD MLOAD MLOAD DUP3 PUSH1 0x0 SHR PUSH2 0x1729 SWAP2 SWAP1 PUSH2 0x5986 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP6 PUSH2 0x120 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1744 JUMPI PUSH2 0x1744 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1761 JUMPI PUSH2 0x1761 PUSH2 0x3D87 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1778 JUMPI PUSH2 0x1778 PUSH2 0x3D87 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x178E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x17A3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ORIGIN EQ ISZERO JUMPDEST ISZERO PUSH2 0x17D6 JUMPI PUSH1 0x40 DUP1 DUP8 ADD MLOAD SWAP1 MLOAD PUSH4 0x287BD025 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE ORIGIN PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6CA JUMP JUMPDEST POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x20 DUP4 ADD MLOAD SWAP2 POP PUSH1 0x4 DUP4 MLOAD SUB PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x24 DUP5 ADD PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST PUSH1 0x20 DUP5 MOD DUP5 SUB DUP2 LT ISZERO PUSH2 0x182E JUMPI DUP3 DUP2 ADD MLOAD DUP3 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1811 JUMP JUMPDEST POP PUSH1 0x1F DUP4 AND DUP1 ISZERO PUSH2 0x1854 JUMPI DUP1 DUP5 SUB DUP4 DUP2 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP5 SWAP1 SUB PUSH2 0x100 EXP ADD NOT AND SWAP1 DUP4 ADD MSTORE JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 PUSH2 0x180 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x1979 JUMPI PUSH1 0x0 DUP4 PUSH2 0x180 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1887 JUMPI PUSH2 0x1887 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x0 SLOAD PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x130D191F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x261A323E SWAP2 PUSH2 0x18C8 SWAP2 PUSH1 0x4 ADD PUSH2 0x3D42 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18E5 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 0x1909 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST PUSH2 0x1970 JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1963202B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1963202B SWAP1 PUSH2 0x193D SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x59C5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1957 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x196B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1860 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 PUSH2 0x1E0 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x1A96 JUMPI PUSH1 0x0 DUP4 PUSH2 0x1E0 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19A4 JUMPI PUSH2 0x19A4 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x0 SLOAD PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x130D191F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x261A323E SWAP2 PUSH2 0x19E5 SWAP2 PUSH1 0x4 ADD PUSH2 0x3D42 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A02 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 0x1A26 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST PUSH2 0x1A8D JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1ADC56DB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1ADC56DB SWAP1 PUSH2 0x1A5A SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x59D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x197D JUMP JUMPDEST PUSH2 0x1AA5 DUP4 PUSH2 0x100 ADD MLOAD DUP4 PUSH2 0x2BF1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D99 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1AE3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0xBEE JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x91F PUSH2 0x2C62 JUMP JUMPDEST PUSH2 0x1B55 PUSH2 0x2C62 JUMP JUMPDEST PUSH2 0xBEE DUP2 PUSH2 0x2C99 JUMP JUMPDEST CALLER PUSH2 0x1B67 PUSH2 0xDEF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x1C17 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1C0B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D79 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEE PUSH2 0x1B5E JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1C97 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1C94 SWAP2 DUP2 ADD SWAP1 PUSH2 0x59EB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1CBF JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D79 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x1CF0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x1AA5 DUP4 DUP4 PUSH2 0x2CCB JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH2 0xB48 DUP3 PUSH2 0x2D21 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH2 0x1D8D PUSH2 0x160 DUP5 ADD DUP5 PUSH2 0x5A04 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x1EAD JUMPI CALLDATASIZE PUSH2 0x1DA5 PUSH2 0x160 DUP6 ADD DUP6 PUSH2 0x5A04 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x1DB5 JUMPI PUSH2 0x1DB5 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 SWAP1 SWAP2 MUL SWAP3 SWAP1 SWAP3 ADD SWAP3 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF6A3D24E PUSH2 0x1DDF PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E23 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 0x1E47 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST PUSH2 0x1E7D JUMPI PUSH2 0x1E58 PUSH1 0x20 DUP3 ADD DUP3 PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xF33436AF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x1EA4 PUSH2 0x1E8F CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x5A4D JUMP JUMPDEST PUSH2 0x1E9F PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x2BF1 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1D7F JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH2 0x1EBF PUSH2 0x180 DUP5 ADD DUP5 PUSH2 0x5A04 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x1F67 JUMPI CALLDATASIZE PUSH2 0x1ED7 PUSH2 0x180 DUP6 ADD DUP6 PUSH2 0x5A04 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x1EE7 JUMPI PUSH2 0x1EE7 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x40 MUL SWAP2 SWAP1 SWAP2 ADD SWAP2 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP1 POP PUSH2 0x1F14 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x1F37 JUMPI PUSH2 0x1F30 PUSH1 0x20 DUP3 ADD CALLDATALOAD DUP5 PUSH2 0x5A69 JUMP JUMPDEST SWAP3 POP PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x1F5E PUSH2 0x1F49 CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x5A4D JUMP JUMPDEST PUSH2 0x1F59 PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x2D92 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1EB1 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1F9B JUMPI SELFBALANCE DUP3 DUP2 LT ISZERO PUSH2 0x1F99 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35B9BF5B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST POP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH2 0x1FAD PUSH2 0x1C0 DUP5 ADD DUP5 PUSH2 0x5A7C JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x20A8 JUMPI CALLDATASIZE PUSH2 0x1FC5 PUSH2 0x1C0 DUP6 ADD DUP6 PUSH2 0x5A7C JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x1FD5 JUMPI PUSH2 0x1FD5 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 SWAP2 MUL SWAP3 SWAP1 SWAP3 ADD SWAP3 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF6A3D24E PUSH2 0x1FFF PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2043 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 0x2067 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST PUSH2 0x2078 JUMPI PUSH2 0x1E58 PUSH1 0x20 DUP3 ADD DUP3 PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x209F PUSH2 0x208A CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x5AC4 JUMP JUMPDEST PUSH2 0x209A PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x2DBA JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1F9F JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH2 0x20BA PUSH2 0x1E0 DUP5 ADD DUP5 PUSH2 0x5A7C JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x211C JUMPI CALLDATASIZE PUSH2 0x20D2 PUSH2 0x1E0 DUP6 ADD DUP6 PUSH2 0x5A7C JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x20E2 JUMPI PUSH2 0x20E2 PUSH2 0x4D23 JUMP JUMPDEST SWAP1 POP PUSH1 0x60 MUL ADD SWAP1 POP PUSH2 0x2113 DUP2 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20FE SWAP2 SWAP1 PUSH2 0x5AC4 JUMP JUMPDEST PUSH2 0x210E PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH2 0x2EA3 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x20AC JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH2 0x2137 PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x3639B8B PUSH1 0xE2 SHL OR SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH2 0x2178 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x21B3 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 0x21B8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 ISZERO DUP1 PUSH2 0x21C9 JUMPI POP DUP1 MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x2203 JUMPI PUSH2 0x21DE PUSH1 0xA0 DUP8 ADD PUSH1 0x80 DUP9 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x553EA0D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2219 SWAP2 SWAP1 PUSH2 0x59EB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 SUB PUSH2 0x2301 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x223C PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0x5AE0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x60 DUP1 DUP11 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP12 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE ADD PUSH2 0x226A PUSH1 0xE0 DUP11 ADD DUP11 PUSH2 0x5671 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP1 DUP3 MSTORE POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP PUSH1 0x40 MLOAD PUSH2 0x22EB SWAP2 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AFD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 POP PUSH2 0x233D JUMP JUMPDEST PUSH2 0x2311 PUSH1 0xA0 DUP9 ADD PUSH1 0x80 DUP10 ADD PUSH2 0x3C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5DDDF463 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2398 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP4 PUSH1 0x1 SUB PUSH2 0x241B JUMPI PUSH1 0x0 PUSH2 0x23AE DUP4 DUP6 ADD DUP6 PUSH2 0x5BDF JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xA0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xE0 ADD MLOAD DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x2437 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x82BB941 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 DUP5 PUSH1 0xC0 ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2461 JUMPI PUSH2 0x2461 PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x24A6 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x247F JUMPI SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0xC0 ADD MLOAD MLOAD PUSH1 0x1 PUSH2 0x24BB SWAP2 SWAP1 PUSH2 0x5A69 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D2 JUMPI PUSH2 0x24D2 PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2517 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x24F0 JUMPI SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 DUP1 PUSH1 0x0 JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD MLOAD DUP4 LT ISZERO PUSH2 0x2687 JUMPI PUSH1 0x0 DUP9 PUSH1 0xC0 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x2545 JUMPI PUSH2 0x2545 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SUB PUSH2 0x2567 JUMPI POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2520 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x80 SHL DUP2 PUSH1 0x20 ADD MLOAD LT PUSH2 0x25A7 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xBDE1A955 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x7B51E927 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xF6A3D24E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25F2 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 0x2616 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x264D JUMPI PUSH2 0x2624 DUP2 PUSH2 0x2F50 JUMP JUMPDEST DUP1 DUP9 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x2637 JUMPI PUSH2 0x2637 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x267B JUMP JUMPDEST PUSH2 0x2656 DUP2 PUSH2 0x2FE7 JUMP JUMPDEST DUP1 DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x2669 JUMPI PUSH2 0x2669 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2520 JUMP JUMPDEST PUSH1 0x3 SLOAD CALLVALUE SWAP1 PUSH1 0xFF AND PUSH2 0x2735 JUMPI PUSH1 0x8 SLOAD DUP10 PUSH1 0x60 ADD MLOAD LT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x8 SLOAD PUSH1 0x60 DUP11 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x961B65B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 DUP10 PUSH1 0x60 ADD MLOAD DUP11 PUSH1 0x80 ADD MLOAD PUSH2 0x26E1 SWAP2 SWAP1 PUSH2 0x5A69 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 LT ISZERO PUSH2 0x270C JUMPI PUSH1 0x40 MLOAD PUSH3 0x6BA64F PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE CALLVALUE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x2716 DUP2 DUP4 PUSH2 0x565E JUMP JUMPDEST SWAP2 POP DUP10 PUSH1 0x60 ADD MLOAD PUSH1 0x9 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x272E SWAP2 SWAP1 PUSH2 0x5A69 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMPDEST DUP1 ISZERO PUSH2 0x27D2 JUMPI PUSH1 0x1 PUSH1 0x80 SHL DUP2 LT PUSH2 0x277C JUMPI PUSH1 0x40 MLOAD PUSH4 0xBDE1A955 PUSH1 0xE0 SHL DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP DUP8 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x27C0 JUMPI PUSH2 0x27C0 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST SWAP1 DUP8 MSTORE SWAP1 DUP6 MSTORE PUSH1 0xE0 DUP8 ADD MLOAD MLOAD PUSH1 0x0 SWAP3 POP DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x27FD JUMPI PUSH2 0x27FD PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x285B JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x2848 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x281B JUMPI SWAP1 POP JUMPDEST POP SWAP6 POP DUP9 PUSH1 0xE0 ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x287B JUMPI PUSH2 0x287B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x28D9 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x28C6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x2899 JUMPI SWAP1 POP JUMPDEST POP SWAP5 POP JUMPDEST DUP9 PUSH1 0xE0 ADD MLOAD MLOAD DUP5 LT ISZERO PUSH2 0x29EF JUMPI PUSH1 0x0 DUP10 PUSH1 0xE0 ADD MLOAD DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x2902 JUMPI PUSH2 0x2902 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x0 SLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x7B51E927 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 SWAP4 POP AND SWAP1 PUSH4 0xF6A3D24E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x295A 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 0x297E SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x29B5 JUMPI PUSH2 0x298C DUP2 PUSH2 0x3011 JUMP JUMPDEST DUP1 DUP8 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x299F JUMPI PUSH2 0x299F PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 PUSH2 0x29E3 JUMP JUMPDEST PUSH2 0x29BE DUP2 PUSH2 0x314D JUMP JUMPDEST DUP1 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x29D1 JUMPI PUSH2 0x29D1 PUSH2 0x4D23 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 PUSH2 0x28DD JUMP JUMPDEST POP SWAP1 DUP5 MSTORE DUP3 MSTORE POP SWAP3 SWAP5 SWAP2 SWAP4 POP SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2A38 JUMPI PUSH2 0x2A2E DUP3 DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x2A22 JUMPI PUSH2 0x2A22 PUSH2 0x4D23 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x31FA JUMP JUMPDEST SWAP2 POP PUSH1 0x1 ADD PUSH2 0x2A04 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2A5B JUMPI PUSH2 0x2A5B PUSH2 0x3D87 JUMP JUMPDEST SUB PUSH2 0x2AD3 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x814964F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x814964F0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AA9 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 0x2ACD SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST POP PUSH1 0x6 SLOAD EQ SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2AE8 PUSH2 0x349D JUMP JUMPDEST DUP4 PUSH1 0x1 SUB PUSH2 0x2BD5 JUMPI PUSH1 0x0 PUSH2 0x2AFE DUP4 DUP6 ADD DUP6 PUSH2 0x5D20 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH2 0x200 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xA0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xC0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0xE0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x100 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x120 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x140 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x160 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x180 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x1A0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x1C0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH2 0x1E0 ADD MLOAD DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x2437 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2C4ED5B3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD ISZERO PUSH2 0xB48 JUMPI DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 AND SWAP1 PUSH4 0x40C10F19 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDE6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D99 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CA1 PUSH2 0x2C62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xBE5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x2CD4 DUP3 PUSH2 0x3226 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x2D19 JUMPI PUSH2 0x1AA5 DUP3 DUP3 PUSH2 0x328B JUMP JUMPDEST PUSH2 0xB48 PUSH2 0x3301 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD ISZERO PUSH2 0xB48 JUMPI PUSH1 0x20 DUP3 ADD MLOAD DUP3 MLOAD PUSH2 0xB48 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH2 0x3320 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E08 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 0x2E2C SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x2E7C JUMPI DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x8832E6E3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x8832E6E3 SWAP1 PUSH1 0x84 ADD PUSH2 0x2C34 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0xB985CBB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EF1 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 0x2F15 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x2E7C JUMPI DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x42842E0E SWAP2 PUSH2 0x2C34 SWAP2 ADDRESS SWAP2 DUP7 SWAP2 PUSH1 0x4 ADD PUSH2 0x5D54 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD ISZERO PUSH2 0xBEE JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x2F7A SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 CALLER SWAP1 ADDRESS SWAP1 PUSH2 0x337F JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x2770A7EB PUSH1 0xE2 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x9DC29FAC SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD ISZERO PUSH2 0xBEE JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0xBEE SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 CALLER SWAP1 ADDRESS SWAP1 PUSH2 0x337F JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x305F 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 0x3083 SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x3126 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x23B872DD SWAP2 PUSH2 0x30BE SWAP2 CALLER SWAP2 ADDRESS SWAP2 PUSH1 0x4 ADD PUSH2 0x5D54 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP4 POP PUSH4 0x42966C68 SWAP3 POP PUSH2 0x2FB2 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD PUSH4 0xB985CBB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x80AC58CD PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x319B 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 0x31BF SWAP2 SWAP1 PUSH2 0x59A8 JUMP JUMPDEST ISZERO PUSH2 0x3126 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x23B872DD SWAP2 PUSH2 0x2FB2 SWAP2 CALLER SWAP2 ADDRESS SWAP2 PUSH1 0x4 ADD PUSH2 0x5D54 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x3216 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x2437 JUMP JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x325C JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5D79 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x32A8 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x32E3 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 0x32E8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x32F8 DUP6 DUP4 DUP4 PUSH2 0x33A7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x91F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x1AA5 SWAP2 DUP6 SWAP2 DUP3 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x3403 JUMP JUMPDEST PUSH2 0xDE9 DUP5 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x334D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5D54 JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x33BC JUMPI PUSH2 0x33B7 DUP3 PUSH2 0x3474 JUMP JUMPDEST PUSH2 0x2437 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x33D3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x33FC JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST POP DUP1 PUSH2 0x2437 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH1 0x0 DUP9 GAS CALL DUP1 PUSH2 0x3426 JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST POP POP PUSH1 0x0 MLOAD RETURNDATASIZE SWAP2 POP DUP2 ISZERO PUSH2 0x343E JUMPI DUP1 PUSH1 0x1 EQ ISZERO PUSH2 0x344B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0xDE9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x6CA JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x3484 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x200 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP5 ADD DUP4 SWAP1 MSTORE PUSH1 0xA0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xC0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xE0 DUP5 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE DUP2 DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH2 0x100 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x353B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3583 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x359A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x35E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 CALLDATALOAD SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x35FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x360A DUP13 DUP3 DUP14 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP POP PUSH1 0x40 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3629 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3635 DUP13 DUP3 DUP14 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x365B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3667 DUP13 DUP3 DUP14 ADD PUSH2 0x3571 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD PUSH2 0x367B DUP2 PUSH2 0x35B5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x36A7 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x368F JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x36C8 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x368C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x3716 DUP4 DUP4 MLOAD PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x36FA JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI PUSH2 0x3772 DUP7 DUP4 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x40 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x374C JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD SWAP1 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 DUP2 ADD MLOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x60 DUP7 ADD SWAP6 POP PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x37A6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI DUP5 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH2 0x3848 PUSH1 0x40 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH2 0x180 PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x3864 PUSH2 0x180 DUP7 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH1 0x80 DUP8 ADD MSTORE PUSH2 0x387D DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0xC0 DUP7 ADD MSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH1 0xE0 DUP8 ADD MSTORE PUSH2 0x38AB DUP3 DUP3 PUSH2 0x36DC JUMP JUMPDEST SWAP2 POP POP PUSH2 0x100 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH2 0x100 DUP8 ADD MSTORE PUSH2 0x38C7 DUP3 DUP3 PUSH2 0x3738 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x120 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH2 0x120 DUP8 ADD MSTORE PUSH2 0x38E3 DUP3 DUP3 PUSH2 0x3738 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x140 DUP3 ADD MLOAD DUP6 DUP3 SUB PUSH2 0x140 DUP8 ADD MSTORE PUSH2 0x38FF DUP3 DUP3 PUSH2 0x3792 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x160 DUP3 ADD MLOAD SWAP2 POP DUP5 DUP2 SUB PUSH2 0x160 DUP7 ADD MSTORE PUSH2 0x391D DUP2 DUP4 PUSH2 0x3792 JUMP JUMPDEST PUSH1 0x20 SWAP11 DUP12 ADD SWAP11 SWAP1 SWAP6 POP SWAP4 SWAP1 SWAP4 ADD SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3804 JUMP JUMPDEST DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3950 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x37E6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3962 DUP2 DUP6 PUSH2 0x36B0 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3981 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3997 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH2 0x220 DUP2 DUP8 SUB SLT ISZERO PUSH2 0x39AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x39C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39D1 DUP7 DUP3 DUP8 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2ADB DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3A1C DUP2 PUSH2 0x39DE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3A2C DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3A55 DUP2 PUSH2 0x39DE JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 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 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x180 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x200 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A9B JUMPI PUSH2 0x3A9B PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3B76 JUMPI PUSH2 0x3B76 PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3B97 JUMPI PUSH2 0x3B97 PUSH2 0x3A63 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3BB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 PUSH2 0x3BCF PUSH2 0x3BCA DUP5 PUSH2 0x3B7E JUMP JUMPDEST PUSH2 0x3B4E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x3BE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3C1C DUP2 PUSH2 0x39DE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3C37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C43 DUP6 DUP3 DUP7 ADD PUSH2 0x3BA5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2437 DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x3C9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3CBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CC8 DUP12 DUP3 DUP13 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3CE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CF3 DUP12 DUP3 DUP13 ADD PUSH2 0x3571 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH2 0x3D07 DUP2 PUSH2 0x39DE JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D2E DUP12 DUP3 DUP13 ADD PUSH2 0x3529 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2437 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x39C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3DB1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x80 DUP5 MSTORE PUSH2 0x3DED PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3E06 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF PUSH1 0x40 DUP5 ADD MLOAD AND PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x32F8 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x3E67 DUP4 DUP4 MLOAD PUSH2 0x3DD8 JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3E4B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x80 DUP5 MSTORE PUSH2 0x3E92 PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3EAB DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x3EC5 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x32F8 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x3F19 DUP4 DUP4 MLOAD PUSH2 0x3E7D JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3EFD JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH2 0x3F72 PUSH1 0x40 DUP3 ADD DUP6 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x3F8E PUSH1 0x60 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH2 0x3FBD PUSH1 0xC0 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH2 0x220 PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x3FD9 PUSH2 0x260 DUP5 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0xC0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x3FF7 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x120 DUP6 ADD MSTORE PUSH2 0x4016 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x100 DUP7 ADD MLOAD PUSH2 0x4040 PUSH2 0x140 DUP6 ADD DUP3 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST POP PUSH2 0x120 DUP7 ADD MLOAD DUP4 DUP3 SUB PUSH1 0x3F NOT ADD PUSH2 0x180 DUP6 ADD MSTORE PUSH2 0x405E DUP3 DUP3 PUSH2 0x3D9D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x140 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x1A0 DUP6 ADD MSTORE PUSH2 0x407E DUP3 DUP3 PUSH2 0x3738 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x160 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x1C0 DUP6 ADD MSTORE PUSH2 0x409E DUP3 DUP3 PUSH2 0x3738 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x180 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x1E0 DUP6 ADD MSTORE PUSH2 0x40BE DUP3 DUP3 PUSH2 0x3E2D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1A0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x200 DUP6 ADD MSTORE PUSH2 0x40DE DUP3 DUP3 PUSH2 0x3792 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1C0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x220 DUP6 ADD MSTORE PUSH2 0x40FE DUP3 DUP3 PUSH2 0x3792 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1E0 DUP7 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH2 0x240 DUP6 ADD MSTORE PUSH2 0x411E DUP3 DUP3 PUSH2 0x3EDF JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3962 DUP2 DUP6 DUP8 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4146 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x368C JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x415E PUSH2 0x3BCA DUP5 PUSH2 0x3B7E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x4172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2437 DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x368C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x419E DUP2 PUSH2 0x35B5 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x41CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C43 DUP6 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4150 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x41F3 JUMPI PUSH2 0x41F3 PUSH2 0x3A63 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2ADB DUP2 PUSH2 0x41FD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2ADB DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2437 DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x4150 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4267 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x4289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x42AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x42BB DUP9 PUSH1 0x20 DUP4 DUP11 ADD ADD PUSH2 0x4228 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x428E JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x42F3 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x6 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x4315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI PUSH1 0x40 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x4332 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x433A PUSH2 0x3A79 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x4345 DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD MLOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP5 MSTORE SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x40 ADD PUSH2 0x431A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4380 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 PUSH1 0x60 DUP5 MUL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x43A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI PUSH1 0x60 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x43BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43C7 PUSH2 0x3AA1 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x43D2 DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD MLOAD DUP2 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE SWAP1 DUP5 MSTORE SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x440A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4420 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x4431 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x443F PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP6 ADD ADD SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x4461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x463A JUMPI DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH2 0x180 DUP2 DUP11 SUB PUSH1 0x1F NOT ADD SLT ISZERO PUSH2 0x449B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x44A3 PUSH2 0x3AC3 JUMP JUMPDEST PUSH2 0x44AF PUSH1 0x20 DUP4 ADD PUSH2 0x4212 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x44C7 PUSH1 0x60 DUP4 ADD PUSH2 0x421D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x44E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x44F4 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4228 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4522 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4228 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP3 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4565 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4248 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x120 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4594 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x42D4 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x45B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45C4 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x42D4 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x45E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45F4 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4361 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x180 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4615 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4624 DUP12 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x4361 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x4466 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2437 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x37E6 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2ADB DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4675 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x467D PUSH2 0x3A79 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x468A DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 SWAP2 DUP3 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x46AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x46BD PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x46DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 CALLDATALOAD PUSH2 0x46F7 DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x46E4 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4724 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x6 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x4746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI PUSH2 0x475D DUP8 DUP3 PUSH2 0x4663 JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x40 ADD PUSH2 0x474B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2ADB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x478F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x479D PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x47BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x47E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 ADD PUSH1 0x80 DUP2 DUP10 SUB PUSH1 0x1F NOT ADD SLT ISZERO PUSH2 0x47F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4800 PUSH2 0x3AE6 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4819 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4828 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4844 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4853 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH2 0x4865 PUSH1 0x60 DUP4 ADD PUSH2 0x476D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4883 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4892 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x47C4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48C1 PUSH2 0x3AA1 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x48CE DUP2 PUSH2 0x39DE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 SWAP2 DUP3 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x48FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x490B PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 PUSH1 0x60 DUP5 MUL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x492D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI PUSH2 0x4944 DUP8 DUP3 PUSH2 0x48A7 JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0x4932 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4965 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4973 PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x4995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x49B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 ADD PUSH1 0x80 DUP2 DUP10 SUB PUSH1 0x1F NOT ADD SLT ISZERO PUSH2 0x49CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x49D6 PUSH2 0x3AE6 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x49EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x49FE DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4A1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A29 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A57 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4A76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A85 DUP11 PUSH1 0x20 DUP4 DUP7 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x499A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x220 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4AAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4AB5 PUSH2 0x3B08 JUMP JUMPDEST SWAP1 POP PUSH2 0x4AC0 DUP3 PUSH2 0x4658 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x4ACE PUSH1 0x20 DUP4 ADD PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x4AF3 PUSH1 0x80 DUP4 ADD PUSH2 0x39F3 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4B11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4B1D DUP5 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4B3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4B48 DUP5 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4B67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4B73 DUP5 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x4B87 DUP4 PUSH2 0x100 DUP5 ADD PUSH2 0x4663 JUMP JUMPDEST PUSH2 0x100 DUP3 ADD MSTORE PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4BA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4BB3 DUP5 DUP3 DUP6 ADD PUSH2 0x469E JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4BE0 DUP5 DUP3 DUP6 ADD PUSH2 0x4705 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x180 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4C01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C0D DUP5 DUP3 DUP6 ADD PUSH2 0x4705 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP PUSH2 0x1A0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4C2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C3A DUP5 DUP3 DUP6 ADD PUSH2 0x477E JUMP JUMPDEST PUSH2 0x180 DUP4 ADD MSTORE POP PUSH2 0x1C0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4C5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C67 DUP5 DUP3 DUP6 ADD PUSH2 0x48EC JUMP JUMPDEST PUSH2 0x1A0 DUP4 ADD MSTORE POP PUSH2 0x1E0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C94 DUP5 DUP3 DUP6 ADD PUSH2 0x48EC JUMP JUMPDEST PUSH2 0x1C0 DUP4 ADD MSTORE POP PUSH2 0x200 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4CB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4CC1 DUP5 DUP3 DUP6 ADD PUSH2 0x4954 JUMP JUMPDEST PUSH2 0x1E0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ACD CALLDATASIZE DUP4 PUSH2 0x4A9A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4CF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x5 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4D50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4D6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x4D89 DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD CALLDATALOAD SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4DB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4DD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x5 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 CALLDATALOAD PUSH2 0x4E09 DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4DF6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4E3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4E5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x6 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x3788 JUMPI PUSH2 0x4E90 DUP7 DUP4 PUSH2 0x4D7E JUMP JUMPDEST PUSH1 0x40 SWAP6 DUP7 ADD SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4E7E JUMP JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x7E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4EB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP3 ADD ADD DUP4 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x372C JUMPI DUP4 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x4EF6 DUP3 DUP8 PUSH2 0x4EA3 JUMP JUMPDEST PUSH2 0x4F00 DUP2 DUP3 PUSH2 0x4D39 JUMP JUMPDEST PUSH1 0x80 DUP7 MSTORE PUSH2 0x4F12 PUSH1 0x80 DUP8 ADD DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP2 POP POP PUSH2 0x4F22 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x20 DUP9 ADD MSTORE PUSH2 0x4F35 DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH1 0xFF PUSH2 0x4F47 PUSH1 0x40 DUP5 ADD PUSH2 0x476D JUMP JUMPDEST AND PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x4F5A PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST SWAP3 POP DUP6 DUP3 SUB PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x4F6F DUP3 DUP5 DUP4 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0x20 SWAP12 DUP13 ADD SWAP12 SWAP1 SWAP7 POP SWAP5 SWAP1 SWAP5 ADD SWAP4 POP POP POP PUSH1 0x1 ADD PUSH2 0x4EDB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4F9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4FBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP2 MUL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 CALLDATALOAD PUSH2 0x4FF2 DUP2 PUSH2 0x39DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x60 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4FDF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP3 ADD ADD DUP4 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x372C JUMPI DUP4 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x5057 DUP3 DUP8 PUSH2 0x4EA3 JUMP JUMPDEST PUSH2 0x5061 DUP2 DUP3 PUSH2 0x4D39 JUMP JUMPDEST PUSH1 0x80 DUP7 MSTORE PUSH2 0x5073 PUSH1 0x80 DUP8 ADD DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5083 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x20 DUP9 ADD MSTORE PUSH2 0x5096 DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x50A7 PUSH1 0x40 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x40 DUP9 ADD MSTORE PUSH2 0x50BA DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x50CB PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x4D39 JUMP JUMPDEST SWAP3 POP DUP6 DUP3 SUB PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x50E0 DUP3 DUP5 DUP4 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0x20 SWAP12 DUP13 ADD SWAP12 SWAP1 SWAP7 POP SWAP5 SWAP1 SWAP5 ADD SWAP4 POP POP POP PUSH1 0x1 ADD PUSH2 0x503C JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH2 0x511A PUSH1 0x40 DUP3 ADD PUSH2 0x510D DUP7 PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5128 PUSH1 0x20 DUP7 ADD PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x80 DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x515B SWAP1 DUP7 ADD PUSH2 0x39F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x5176 PUSH1 0xA0 DUP7 ADD DUP7 PUSH2 0x4D39 JUMP JUMPDEST PUSH2 0x220 PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x518D PUSH2 0x260 DUP6 ADD DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP2 POP POP PUSH2 0x519D PUSH1 0xC0 DUP8 ADD DUP8 PUSH2 0x4D39 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x51B5 DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x51C6 PUSH1 0xE0 DUP8 ADD DUP8 PUSH2 0x4D39 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x120 DUP7 ADD MSTORE PUSH2 0x51DE DUP4 DUP3 DUP5 PUSH2 0x3F2F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x51F4 PUSH2 0x140 DUP5 ADD PUSH2 0x100 DUP9 ADD PUSH2 0x4D7E JUMP JUMPDEST PUSH2 0x5202 PUSH2 0x140 DUP8 ADD DUP8 PUSH2 0x4D9F JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x180 DUP7 ADD MSTORE PUSH2 0x521A DUP4 DUP3 DUP5 PUSH2 0x4DE7 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x522C PUSH2 0x160 DUP8 ADD DUP8 PUSH2 0x4E27 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x1A0 DUP7 ADD MSTORE PUSH2 0x5244 DUP4 DUP3 DUP5 PUSH2 0x4E6F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x5256 PUSH2 0x180 DUP8 ADD DUP8 PUSH2 0x4E27 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x1C0 DUP7 ADD MSTORE PUSH2 0x526E DUP4 DUP3 DUP5 PUSH2 0x4E6F JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x5280 PUSH2 0x1A0 DUP8 ADD DUP8 PUSH2 0x4D9F JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x1E0 DUP7 ADD MSTORE PUSH2 0x5298 DUP4 DUP3 DUP5 PUSH2 0x4EC2 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x52AA PUSH2 0x1C0 DUP8 ADD DUP8 PUSH2 0x4F88 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x200 DUP7 ADD MSTORE PUSH2 0x52C2 DUP4 DUP3 DUP5 PUSH2 0x4FD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x52D4 PUSH2 0x1E0 DUP8 ADD DUP8 PUSH2 0x4F88 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x220 DUP7 ADD MSTORE PUSH2 0x52EC DUP4 DUP3 DUP5 PUSH2 0x4FD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x52FE PUSH2 0x200 DUP8 ADD DUP8 PUSH2 0x4D9F JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x3F NOT ADD PUSH2 0x240 DUP7 ADD MSTORE PUSH2 0x5316 DUP4 DUP3 DUP5 PUSH2 0x5023 JUMP JUMPDEST SWAP3 POP POP POP DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3962 DUP2 DUP6 DUP8 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x5341 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x211C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x536E DUP2 PUSH2 0x532D JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x1 DUP3 AND DUP1 ISZERO PUSH2 0x5388 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x53A4 JUMPI PUSH2 0x53DB JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND PUSH1 0x20 DUP8 ADD MSTORE PUSH1 0x20 DUP3 ISZERO ISZERO PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP PUSH2 0x53DB JUMP JUMPDEST DUP5 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x53D2 JUMPI DUP2 SLOAD PUSH1 0x20 DUP3 DUP11 ADD ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x53B0 JUMP JUMPDEST DUP8 ADD PUSH1 0x20 ADD SWAP5 POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD DUP5 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x372C JUMPI DUP5 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x5422 DUP4 DUP4 PUSH2 0x5361 JUMP JUMPDEST PUSH1 0x20 SWAP9 SWAP1 SWAP9 ADD SWAP8 SWAP3 POP PUSH1 0x1 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x5407 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP DUP3 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x1 DUP3 DUP2 ADD SLOAD PUSH1 0x20 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 SWAP7 ADD SWAP6 PUSH1 0x2 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x5450 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP DUP3 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3788 JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 MSTORE PUSH1 0x1 DUP3 DUP2 ADD SLOAD PUSH1 0x20 DUP9 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 DUP9 ADD MSTORE PUSH1 0x60 SWAP1 SWAP7 ADD SWAP6 PUSH1 0x3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x549B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 SLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5619 JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x552A DUP6 PUSH2 0x510D DUP5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x180 PUSH1 0x60 DUP7 ADD DUP2 SWAP1 MSTORE PUSH2 0x5560 SWAP1 DUP7 ADD PUSH1 0x3 DUP5 ADD PUSH2 0x5361 JUMP JUMPDEST DUP6 DUP2 SUB PUSH1 0x80 DUP8 ADD MSTORE PUSH2 0x5575 DUP2 PUSH1 0x4 DUP6 ADD PUSH2 0x5361 JUMP JUMPDEST SWAP1 POP PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0xA0 DUP8 ADD MSTORE PUSH1 0x6 DUP4 ADD SLOAD PUSH1 0xC0 DUP8 ADD MSTORE DUP6 DUP2 SUB PUSH1 0xE0 DUP8 ADD MSTORE PUSH2 0x55A0 DUP2 PUSH1 0x7 DUP6 ADD PUSH2 0x53E4 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 SUB PUSH2 0x100 DUP8 ADD MSTORE PUSH2 0x55B8 DUP2 PUSH1 0x8 DUP6 ADD PUSH2 0x5437 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 SUB PUSH2 0x120 DUP8 ADD MSTORE PUSH2 0x55D0 DUP2 PUSH1 0x9 DUP6 ADD PUSH2 0x5437 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 SUB PUSH2 0x140 DUP8 ADD MSTORE PUSH2 0x55E8 DUP2 PUSH1 0xA DUP6 ADD PUSH2 0x5482 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 SUB PUSH2 0x160 DUP8 ADD MSTORE PUSH2 0x5600 DUP2 PUSH1 0xB DUP6 ADD PUSH2 0x5482 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0xC SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x5504 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5640 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x36B0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2ACD JUMPI PUSH2 0x2ACD PUSH2 0x5648 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x5688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x56A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x56DA PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x36B0 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3962 DUP2 DUP6 DUP8 PUSH2 0x3F2F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5640 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1AA5 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x572D JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2FE0 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x5739 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5766 JUMPI PUSH2 0x5766 PUSH2 0x3A63 JUMP JUMPDEST PUSH2 0x577A DUP2 PUSH2 0x5774 DUP5 SLOAD PUSH2 0x532D JUMP JUMPDEST DUP5 PUSH2 0x5706 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x57AE JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x5796 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x2FE0 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x57DE JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x57BE JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x57FC JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP14 AND DUP2 MSTORE DUP12 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x5832 PUSH1 0x40 DUP3 ADD DUP13 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x180 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x584A PUSH2 0x180 DUP4 ADD DUP13 PUSH2 0x36B0 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x585C DUP2 DUP13 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP DUP10 PUSH1 0xA0 DUP5 ADD MSTORE DUP9 PUSH1 0xC0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x587C DUP2 DUP10 PUSH2 0x36DC JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x5891 DUP2 DUP9 PUSH2 0x3738 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH2 0x120 DUP5 ADD MSTORE PUSH2 0x58A6 DUP2 DUP8 PUSH2 0x3738 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH2 0x140 DUP5 ADD MSTORE PUSH2 0x58BB DUP2 DUP7 PUSH2 0x3792 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH2 0x160 DUP5 ADD MSTORE PUSH2 0x58D0 DUP2 DUP6 PUSH2 0x3792 JUMP JUMPDEST SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x58F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0xC0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5919 JUMPI PUSH2 0x5919 PUSH2 0x3A63 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x592E DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x5941 DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x5954 DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x5967 DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x597A DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x59A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x59BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2437 DUP2 PUSH2 0x35B5 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2437 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3DD8 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2437 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3E7D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x59FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x5A1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x5A35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x6 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2437 DUP4 DUP4 PUSH2 0x4663 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2ACD JUMPI PUSH2 0x2ACD PUSH2 0x5648 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x5A93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x5AAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x60 DUP2 MUL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x356A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2437 DUP4 DUP4 PUSH2 0x48A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2437 DUP2 PUSH2 0x41FD JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 MLOAD AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xA0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x5B40 PUSH1 0xC0 DUP5 ADD DUP3 PUSH2 0x36B0 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x32F8 DUP3 DUP3 PUSH2 0x36B0 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5B6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5B7C PUSH2 0x3BCA DUP3 PUSH2 0x41DA JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x5B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42CA JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5BC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5BD0 DUP9 PUSH1 0x20 DUP4 DUP11 ADD ADD PUSH2 0x3BA5 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x5BA3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x100 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x5C1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C22 PUSH2 0x3B2B JUMP JUMPDEST PUSH2 0x5C2B DUP3 PUSH2 0x4658 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C52 DUP7 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C7D DUP7 DUP3 DUP6 ADD PUSH2 0x3BA5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5CB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5CBC DUP7 DUP3 DUP6 ADD PUSH2 0x5B5D JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5CDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5CE7 DUP7 DUP3 DUP6 ADD PUSH2 0x4705 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5D06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5D12 DUP7 DUP3 DUP6 ADD PUSH2 0x48EC JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5D48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5640 DUP5 DUP3 DUP6 ADD PUSH2 0x4A9A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCF0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 PUSH27 0xEECA7C160B50B61024F1F8783D84F8761468E0014F4551B41ACBC3 0x2F 0xE0 DUP6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1014:27475:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18084:2389;;;;;;;;;;-1:-1:-1;18084:2389:50;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;20479:1104;;;;;;;;;;-1:-1:-1;20479:1104:50;;;;;:::i;:::-;;:::i;:::-;;378:175:53;;;;;;;;;;;;;:::i;6594:240:50:-;;;;;;;;;;-1:-1:-1;6594:240:50;;;;;:::i;:::-;;:::i;7404:511::-;;;;;;;;;;-1:-1:-1;7404:511:50;;;;;:::i;:::-;;:::i;4161:214:4:-;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;:::-;;;12947:25:89;;;12935:2;12920:18;3708:134:4;12801:177:89;27909:149:50;;;;;;;;;;-1:-1:-1;27909:149:50;;;;;:::i;:::-;27995:4;28018:33;;;:20;:33;;;;;;;;;27909:149;;;;13379:14:89;;13372:22;13354:41;;13342:2;13327:18;27909:149:50;13214:187:89;3155:101:2;;;;;;;;;;;;;:::i;7236:162:50:-;;;;;;;;;;-1:-1:-1;7236:162:50;;;;;:::i;:::-;;:::i;3257:229:1:-;;;;;;;;;;;;;:::i;23329:1170:50:-;;;;;;;;;;-1:-1:-1;23329:1170:50;;;;;:::i;:::-;;:::i;2441:144:2:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13801:32:89;;;13783:51;;13771:2;13756:18;2441:144:2;13637:203:89;7056:174:50;;;;;;;;;;-1:-1:-1;7056:174:50;;;;;:::i;:::-;;:::i;28162:91::-;;;;;;;;;;-1:-1:-1;28234:12:50;;28162:91;;21957:1366;;;;;;;;;;-1:-1:-1;21957:1366:50;;;;;:::i;:::-;;:::i;1819:58:4:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:4;;;;;;;;;;;;:::i;28378:109:50:-;;;;;;;;;;-1:-1:-1;28459:21:50;;28378:109;;4192:98;;;;;;;;;;;;4247:42;4192:98;;24704:2966;;;;;;:::i;:::-;;:::i;2038:168:1:-;;;;;;;;;;;;;:::i;2524:247::-;;;;;;;;;;-1:-1:-1;2524:247:1;;;;;:::i;:::-;;:::i;18084:2389:50:-;18340:21;18363:51;;18340:21;18456:15;;;;:38;;;;;;;;:::i;:::-;;18452:101;;18517:25;;-1:-1:-1;;;18517:25:50;;;;;;;;;;;18452:101;18567:21;;18563:84;;18611:25;;-1:-1:-1;;;18611:25:50;;;;;;;;;;;18563:84;18662:12;18657:168;;18690:15;:40;;-1:-1:-1;;18690:40:50;18708:22;18690:40;;;18657:168;;;18769:15;:45;;-1:-1:-1;;18769:45:50;18787:27;18769:45;;;18657:168;18835:15;:28;;;18877:40;18921:60;18937:14;18953;;18969:11;;18921:15;:60::i;:::-;18874:107;;;19023:7;:19;;;18992:28;:50;;;;19073:4;19052:18;;:25;;;;;;;;;;;;;;;;;;19088:12;19102:19;19133:4;-1:-1:-1;;;;;19125:18:50;19197:37;;;19252:7;19277:9;;19157:143;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;19157:143:50;;;;;;;;;;;;;;-1:-1:-1;;;;;19157:143:50;-1:-1:-1;;;;;;19157:143:50;;;;;;;;;;19125:185;;;;19157:143;19125:185;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19087:223;;;;19325:7;19321:74;;;19355:29;;-1:-1:-1;;;19355:29:50;;;;;;;;;;;19321:74;19406:20;19428:22;19454:26;19473:6;19454:18;:26::i;:::-;19405:75;;-1:-1:-1;19405:75:50;-1:-1:-1;;;;;;;19495:44:50;;-1:-1:-1;;;19495:44:50;19491:109;;19562:27;;-1:-1:-1;;;19562:27:50;;;;;;;;;;;19491:109;19610:27;19695:9;19684:36;;;;;;;;;;;;:::i;:::-;19647:73;;-1:-1:-1;19647:73:50;-1:-1:-1;19731:575:50;;;;19790:27;19771:15;;;;:46;;;;;;;;:::i;:::-;;19767:214;;19862:14;19851:62;;;;;;;;;;;;:::i;:::-;19837:76;;19936:30;19954:11;19936:30;;;;;;:::i;:::-;;;;;;;;19767:214;19731:575;;;20023:14;:21;20048:1;20023:26;20019:99;;20076:27;;-1:-1:-1;;;20076:27:50;;;;;;;;;;;20019:99;20146:14;-1:-1:-1;20146:14:50;20198:22;20179:15;;;;:41;;;;;;;;:::i;:::-;;20175:121;;20269:11;20247:34;;-1:-1:-1;;;20247:34:50;;;;;;;;:::i;:::-;;;;;;;;20175:121;-1:-1:-1;;20316:15:50;:37;;-1:-1:-1;;20316:37:50;;;;;;20334:19;20370:15;20363:22;;;20395:18;:26;;;;;;;;-1:-1:-1;20431:35:50;-1:-1:-1;18084:2389:50;;;;-1:-1:-1;18084:2389:50;;-1:-1:-1;18084:2389:50;;-1:-1:-1;;;;;;;;;;18084:2389:50:o;20479:1104::-;20627:10;20649:4;20627:27;20623:79;;20677:14;;-1:-1:-1;;;;;;20677:14:50;;;;;;;;;;;20623:79;20735:19;20716:15;;;;:38;;;;;;;;:::i;:::-;;20712:103;;20777:27;;-1:-1:-1;;;20777:27:50;;;;;;;;;;;20712:103;20863:59;;20884:7;20863:59;:::i;:::-;20893:25;;;;:7;:25;:::i;:::-;20919:1;20893:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20863:20;:59::i;:::-;20998:12;21012:19;21043:4;-1:-1:-1;;;;;21035:18:50;21107:29;;;21154:7;21179:9;;21067:135;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;21067:135:50;;;;;;;;;;;;;;-1:-1:-1;;;;;21067:135:50;-1:-1:-1;;;;;;21067:135:50;;;;;;;;;;21035:177;;;;21067:135;21035:177;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20997:215;;;;21227:7;21223:303;;;21250:31;21318:27;21299:15;;;;:46;;;;;;;;:::i;:::-;;21295:155;;21397:37;21386:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;21365:70;;21295:155;21490:4;21496:18;21471:44;;-1:-1:-1;;;21471:44:50;;;;;;;;;:::i;21223:303::-;21562:5;21569:6;21543:33;;-1:-1:-1;;;21543:33:50;;;;;;;;;:::i;378:175:53:-;-1:-1:-1;;;;;;;;;;;8325:39:3;-1:-1:-1;;;;;8325:39:3;432:29:53;428:87;;484:20;;-1:-1:-1;;;484:20:53;;;;;;;;;;;428:87;524:22;:20;:22::i;:::-;378:175::o;6594:240:50:-;-1:-1:-1;;;;;;;;;;;4302:15:3;;-1:-1:-1;;;4302:15:3;;;;4301:16;;-1:-1:-1;;;;;4348:14:3;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:3;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:3;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:3;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:3;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:3;-1:-1:-1;;;5013:22:3;;;4979:67;6713:24:50::1;:22;:24::i;:::-;6747:28;6762:12;6747:14;:28::i;:::-;6786:10;:41:::0;;-1:-1:-1;;;;;;6786:41:50::1;-1:-1:-1::0;;;;;6786:41:50;::::1;;::::0;;5066:101:3;;;;5100:23;;-1:-1:-1;;;;5100:23:3;;;5142:14;;-1:-1:-1;60084:50:89;;5142:14:3;;60072:2:89;60057:18;5142:14:3;;;;;;;5066:101;4092:1081;;;;;6594:240:50;;:::o;7404:511::-;2334:13:2;:11;:13::i;:::-;-1:-1:-1;;;;;7502:16:50;::::1;::::0;;:31:::1;;-1:-1:-1::0;7522:11:50;;7502:31:::1;7498:70;;;7549:8;::::0;::::1;7498:70;7591:21;;7582:6;:30;7578:129;;;7674:21;::::0;7635:61:::1;::::0;-1:-1:-1;;;7635:61:50;;::::1;::::0;7666:6;;7635:61:::1;;60319:25:89::0;;;60375:2;60360:18;;60353:34;60307:2;60292:18;;60145:248;7578:129:50::1;7718:12;7732:21:::0;7757:2:::1;-1:-1:-1::0;;;;;7757:7:50::1;7772:6;7757:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7717:66;;;;7798:7;7793:74;;7847:8;7828:28;;-1:-1:-1::0;;;7828:28:50::1;;;;;;;;:::i;7793:74::-;7902:6;7877:21;;:31;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;7404:511:50:o;4161:214:4:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;3708:134::-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:4;:::o;3155:101:2:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;7236:162:50:-:0;2334:13:2;:11;:13::i;:::-;7306:3:50::1;7313:1;7306:8:::0;7302:62:::1;;7337:16;;-1:-1:-1::0;;;7337:16:50::1;;;;;;;;;;;7302:62;7373:12;:18:::0;7236:162::o;3257:229:1:-;966:10:7;;3352:14:1;:12;:14::i;:::-;-1:-1:-1;;;;;3352:24:1;;3348:96;;3399:34;;-1:-1:-1;;;3399:34:1;;-1:-1:-1;;;;;13801:32:89;;3399:34:1;;;13783:51:89;13756:18;;3399:34:1;13637:203:89;3348:96:1;3453:26;3472:6;3453:18;:26::i;:::-;3299:187;3257:229::o;23329:1170:50:-;23469:10;23491:4;23469:27;23465:79;;23519:14;;-1:-1:-1;;;;;;23519:14:50;;;;;;;;;;;23465:79;23554:21;23578:32;23602:7;23578:23;:32::i;:::-;23554:56;-1:-1:-1;23692:1:50;23666:14;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23666:28:50;;23662:831;;23724:4;23742:21;23787:18;;;;:7;:18;:::i;:::-;23781:37;;-1:-1:-1;23777:615:50;;23839:19;23861:47;23889:7;23898:9;;23861:27;:47::i;:::-;23839:69;-1:-1:-1;23927:23:50;24020:18;;;;:7;:18;:::i;:::-;24004:36;;;;;;;:::i;:::-;;;;;;;;;24063:6;24091:17;;;;:7;:17;:::i;:::-;23953:173;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;23953:173:50;;;;;;;;;;;;;;-1:-1:-1;;;;;23953:173:50;-1:-1:-1;;;;;;23953:173:50;;;;;;;;;;;-1:-1:-1;24173:14:50;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24165:28:50;24201:13;24216:10;24165:62;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24144:83:50;;-1:-1:-1;24144:83:50;-1:-1:-1;23777:615:50;;-1:-1:-1;;23777:615:50;;24264:18;;24260:132;;24331:14;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24323:28:50;24359:13;24323:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24302:75:50;;-1:-1:-1;24302:75:50;-1:-1:-1;24260:132:50;24411:6;24406:77;;24459:8;24444:24;;-1:-1:-1;;;24444:24:50;;;;;;;;:::i;24406:77::-;23696:797;;23662:831;23455:1044;23329:1170;;;:::o;2441:144:2:-;2487:7;;1313:22;2533:20;2570:8;-1:-1:-1;;;;;2570:8:2;;2441:144;-1:-1:-1;;2441:144:2:o;7056:174:50:-;2334:13:2;:11;:13::i;:::-;7164:1:50::1;7140:11:::0;-1:-1:-1;;;;;7140:11:50::1;7132:34:::0;7128:48:::1;;7168:8;::::0;::::1;7128:48;7186:11;:37:::0;;-1:-1:-1;;;;;;7186:37:50::1;-1:-1:-1::0;;;;;7186:37:50;;;::::1;::::0;;;::::1;::::0;;7056:174::o;21957:1366::-;22185:21;;22181:84;;22229:25;;-1:-1:-1;;;22229:25:50;;;;;;;;;;;22181:84;22276:19;22297:40;22341:60;22357:14;22373;;22389:11;;22341:15;:60::i;:::-;22275:126;;;;22450:42;22471:7;22480:11;22450:20;:42::i;:::-;22534:19;;;;;22503:28;:50;22563:18;:25;;-1:-1:-1;;22563:25:50;22584:4;22563:25;;;22735:135;22563:18;;;;22711:4;;-1:-1:-1;;;22775:29:50;22735:135;;22534:7;;22847:9;;;;22735:135;;;:::i;:::-;;;;-1:-1:-1;;22735:135:50;;;;;;;;;;;;;;-1:-1:-1;;;;;22735:135:50;-1:-1:-1;;;;;;22735:135:50;;;;;;;;;;22703:177;;;;22735:135;22703:177;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22665:215;;;;22896:7;22891:293;;22923:6;:13;22940:1;22923:18;22919:56;;22950:25;;-1:-1:-1;;;22950:25:50;;;;;;;;;;;22919:56;22994:51;23017:7;:19;;;23038:6;22994:51;;;;;;;:::i;:::-;;;;;;;;22891:293;;;23089:84;23139:7;:19;;;23089:84;;;;12947:25:89;;12935:2;12920:18;;12801:177;23089:84:50;;;;;;;;22891:293;-1:-1:-1;;;23194:33:50;;;;:20;:33;;;;;:40;;-1:-1:-1;;23194:40:50;;;23230:4;23194:40;;;;23245:18;:26;;;;;;;23288:28;23281:35;-1:-1:-1;;;;;;;;21957:1366:50:o;24704:2966::-;24838:41;24882:59;24910:14;24926;;24882:27;:59::i;:::-;24838:103;;24966:27;25007;25048:28;25090;25131:33;25156:7;25131:24;:33::i;:::-;25288:18;;24952:212;;-1:-1:-1;24952:212:50;;-1:-1:-1;24952:212:50;-1:-1:-1;24952:212:50;-1:-1:-1;25242:19:50;;25288:18;;25284:91;;;-1:-1:-1;25336:28:50;;25284:91;25500:27;25481:15;;;;:46;;;;;;;;:::i;:::-;;25477:1639;;25596:37;:44;;;;;;;25544:49;25596:44;;;;25678:17;;25596:44;;;;;;;25655:40;;-1:-1:-1;;;;;25655:40:50;;;-1:-1:-1;;25655:40:50;;;;;;;;;25709:22;;;:36;;;25759:24;;;:37;;-1:-1:-1;;;;;;25759:37:50;25786:10;25759:37;;;25596:44;25837:17;;;25810:24;;;;;:44;;:24;:44;:::i;:::-;-1:-1:-1;25889:18:50;;;;25868;;;;:39;;:18;:39;:::i;:::-;-1:-1:-1;25946:22:50;;;;25921;;;:47;26007:22;;;;25982;;;:47;-1:-1:-1;26064:212:50;26074:7;:25;;;:32;26070:1;:36;26064:212;;;26127:10;:28;;26161:7;:25;;;26187:1;26161:28;;;;;;;;:::i;:::-;;;;;;;;;;;;26127:63;;;;;;;-1:-1:-1;26127:63:50;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;26240:3:50;;26064:212;;;-1:-1:-1;26290:8:50;26312:170;26323:6;:13;26319:1;:17;26312:170;;;26357:10;:23;;26386:6;26393:1;26386:9;;;;;;;;:::i;:::-;;;;;;;;;;;;26357:39;;;;;;;;-1:-1:-1;26357:39:50;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26357:39:50;-1:-1:-1;;;;;26357:39:50;;;;;;;;;;;;;;;;26446:3;26312:170;;;-1:-1:-1;26496:8:50;26518:170;26529:6;:13;26525:1;:17;26518:170;;;26563:10;:23;;26592:6;26599:1;26592:9;;;;;;;;:::i;:::-;;;;;;;;;;;;26563:39;;;;;;;;-1:-1:-1;26563:39:50;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26563:39:50;-1:-1:-1;;;;;26563:39:50;;;;;;;;;;;;;;;;26652:3;26518:170;;;-1:-1:-1;26701:8:50;26723:174;26734:9;:16;26730:1;:20;26723:174;;;26771:10;:21;;26798:9;26808:1;26798:12;;;;;;;;:::i;:::-;;;;;;;;;;;;26771:40;;;;;;;;-1:-1:-1;26771:40:50;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26771:40:50;-1:-1:-1;;;;;26771:40:50;;;;;;;;;;;;;;;;;;;;;;;;;26861:3;26723:174;;;-1:-1:-1;26910:8:50;26932:174;26943:9;:16;26939:1;:20;26932:174;;;26980:10;:21;;27007:9;27017:1;27007:12;;;;;;;;:::i;:::-;;;;;;;;;;;;26980:40;;;;;;;;-1:-1:-1;26980:40:50;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26980:40:50;-1:-1:-1;;;;;26980:40:50;;;;;;;;;;;;;;;;;;;;;;;;;27070:3;26932:174;;;25529:1587;;25477:1639;27131:531;27176:7;:17;;;27220:11;27260:10;27299:7;:17;;;27339:7;:18;;;27384:7;:22;;;27433:7;:22;;;27488:7;:25;;;27541:6;27575;27607:9;27642;27131:531;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;24828:2842;;;;;;24704:2966;;;:::o;2038:168:1:-;2091:7;;1676:27;2142:25;1545:174;2524:247;2334:13:2;:11;:13::i;:::-;1676:27:1;2680:26;;-1:-1:-1;;;;;;2680:26:1::1;-1:-1:-1::0;;;;;2680:26:1;::::1;::::0;;::::1;::::0;;2746:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;2721:43:1::1;;;;;;;;;;;2603:168;2524:247:::0;:::o;9737:1621:50:-;9888:19;9909:40;;:::i;:::-;9961:17;9981:9;10005:18;;9961:29;;-1:-1:-1;10005:18:50;;10001:84;;;10046:28;;-1:-1:-1;;;10046:28:50;;;;;;;;;;;10001:84;10180:14;;10170:25;;;;;;;:::i;:::-;;;;;;;;;;10157:39;;;67163:19:89;67198:12;10157:39:50;;;-1:-1:-1;;10157:39:50;;;;;;;;;10147:50;;10157:39;10147:50;;;;10270:33;;;;:20;:33;;;;;;10147:50;;-1:-1:-1;10270:33:50;;:41;;:33;:41;10267:114;;10334:36;;-1:-1:-1;;;10334:36:50;;;;;12947:25:89;;;12920:18;;10334:36:50;12801:177:89;10267:114:50;10396:70;10413:52;10446:5;;10453:11;10413:32;:52::i;:::-;10396:16;:70::i;:::-;10391:129;;10489:20;;-1:-1:-1;;;10489:20:50;;;;;;;;;;;10391:129;10540:51;10567:7;10576:14;;10540:26;:51::i;:::-;10530:61;-1:-1:-1;10625:19:50;10606:15;;;;:38;;;;;;;;:::i;:::-;;10602:183;;10683:9;10664:7;:16;;;-1:-1:-1;;;;;10664:28:50;;10660:115;;;10732:16;;;;10719:41;;-1:-1:-1;;;10719:41:50;;-1:-1:-1;;;;;67411:31:89;;;10719:41:50;;;67393:50:89;67459:18;;;67452:34;;;67366:18;;10719:41:50;67221:271:89;10660:115:50;10824:10;;:32;;;-1:-1:-1;;;10824:32:50;;;;10795:26;;-1:-1:-1;;;;;10824:10:50;;:30;;:32;;;;;;;;;;;;;;:10;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10795:61;;10866:12;10908:9;:20;;;10930:9;:28;;;10960:7;:19;;;10891:89;;;;;;;;;68894:19:89;;;68969:3;68947:16;;;;-1:-1:-1;;;;;;68943:51:89;68938:2;68929:12;;68922:73;69020:2;69011:12;;69004:28;69057:2;69048:12;;68711:355;10891:89:50;;;;;;;;;;;;;10881:100;;;;;;10866:115;;10991:21;11031:7;:25;;;:32;11023:4;11015:13;;:48;;;;:::i;:::-;10991:72;;11073:23;11099:7;:25;;;11125:13;11099:40;;;;;;;;:::i;:::-;;;;;;;11073:66;;11172:19;11153:38;;;;;;;;:::i;:::-;:15;;;;:38;;;;;;;;:::i;:::-;;:71;;;;-1:-1:-1;;;;;;11195:29:50;;11214:10;11195:29;;11153:71;:103;;;;-1:-1:-1;;;;;;11228:28:50;;11247:9;11228:28;;11153:103;11149:203;;;11298:19;;;;;11279:62;;-1:-1:-1;;;11279:62:50;;;;;69487:25:89;;;;11319:10:50;69528:18:89;;;69521:60;11331:9:50;69597:18:89;;;69590:60;69460:18;;11279:62:50;69285:371:89;11149:203:50;9951:1407;;;;;9737:1621;;;;;;;;:::o;7946:1525::-;8028:15;8045:17;8199:4;8181:16;8177:27;8171:34;8159:46;;8344:1;8325:16;8319:23;8315:31;8416:4;8410:11;8402:19;;8486:10;8480:4;8473:24;8579:4;8567:10;8563:21;8557:4;8553:32;8547:4;8540:46;8710:4;8692:16;8688:27;8787:4;8781;8777:15;8859:1;8844:162;8901:4;8889:10;8885:21;8873:10;8869:38;8866:1;8863:45;8844:162;;;8976:14;;;8970:21;8956:12;;;8949:43;8923:4;8916:12;8844:162;;;-1:-1:-1;9087:21:50;;;9124;;9121:334;;9301:31;;;9289:44;;;9283:51;-1:-1:-1;;9200:4:50;9196:25;;;9189:5;9185:37;9181:45;9177:50;9402:13;9358:42;;;9351:65;9121:334;;;;;7946:1525;;;:::o;11364:859::-;11476:6;11530:267;11540:7;:12;;;:19;11536:1;:23;11530:267;;;11576:21;11600:7;:12;;;11613:1;11600:15;;;;;;;;:::i;:::-;;;;;;;;;;;11634:11;;11653:15;;;;11634:35;;-1:-1:-1;;;11634:35:50;;11600:15;;-1:-1:-1;;;;;;11634:11:50;;;;:18;;:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11629:99;;11689:11;;:24;;-1:-1:-1;;;11689:24:50;;-1:-1:-1;;;;;11689:11:50;;;;:18;;:24;;11708:4;;11689:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11629:99;-1:-1:-1;11769:3:50;;11530:267;;;-1:-1:-1;11806:8:50;11842:276;11851:7;:15;;;:22;11847:1;:26;11842:276;;;11890:19;11912:7;:15;;;11928:1;11912:18;;;;;;;;:::i;:::-;;;;;;;;;;;11949:11;;11968:15;;;;11949:35;;-1:-1:-1;;;11949:35:50;;11912:18;;-1:-1:-1;;;;;;11949:11:50;;;;:18;;:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11944:105;;12004:11;;:30;;-1:-1:-1;;;12004:30:50;;-1:-1:-1;;;;;12004:11:50;;;;:24;;:30;;12029:4;;12004:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11944:105;-1:-1:-1;12090:3:50;;11842:276;;;12160:56;12180:7;:22;;;12204:11;12160:19;:56::i;:::-;11466:757;11364:859;;:::o;7711:422:3:-;-1:-1:-1;;;;;;;;;;;7900:15:3;;-1:-1:-1;;;7900:15:3;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:3;;;;;;;;;;;7896:76;7985:14;;-1:-1:-1;;;;;7985:14:3;;;:34;7981:146;;8035:33;;-1:-1:-1;;8035:33:3;-1:-1:-1;;;;;8035:33:3;;;;;8087:29;;60084:50:89;;;8087:29:3;;60072:2:89;60057:18;8087:29:3;;;;;;;7760:373;7711:422::o;2970:67:4:-;6931:20:3;:18;:20::i;1847:127:2:-;6931:20:3;:18;:20::i;:::-;1929:38:2::1;1954:12;1929:24;:38::i;2658:162::-:0;966:10:7;2717:7:2;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:2;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:2;;966:10:7;2763:40:2;;;13783:51:89;13756:18;;2763:40:2;13637:203:89;4603:312:4;4683:4;-1:-1:-1;;;;;4692:6:4;4675:23;;;:120;;;4789:6;-1:-1:-1;;;;;4753:42:4;:32;-1:-1:-1;;;;;;;;;;;1519:53:17;-1:-1:-1;;;;;1519:53:17;;1441:138;4753:32:4;-1:-1:-1;;;;;4753:42:4;;;4675:120;4658:251;;;4869:29;;-1:-1:-1;;;4869:29:4;;;;;;;;;;;6840:66:50;2334:13:2;:11;:13::i;6057:538:4:-;6174:17;-1:-1:-1;;;;;6156:50:4;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6156:52:4;;;;;;;;-1:-1:-1;;6156:52:4;;;;;;;;;;;;:::i;:::-;;;6152:437;;6518:60;;-1:-1:-1;;;6518:60:4;;-1:-1:-1;;;;;13801:32:89;;6518:60:4;;;13783:51:89;13756:18;;6518:60:4;13637:203:89;6152:437:4;-1:-1:-1;;;;;;;;;;;6250:40:4;;6246:120;;6317:34;;-1:-1:-1;;;6317:34:4;;;;;12947:25:89;;;12920:18;;6317:34:4;12801:177:89;6246:120:4;6379:54;6409:17;6428:4;6379:29;:54::i;5032:213::-;5106:4;-1:-1:-1;;;;;5115:6:4;5098:23;;5094:145;;5199:29;;-1:-1:-1;;;5199:29:4;;;;;;;;;;;2955:222:1;1676:27;3104:22;;-1:-1:-1;;;;;;3104:22:1;;;3136:34;3161:8;3136:24;:34::i;12229:1852:50:-;12324:21;12357:6;12396:344;12407:12;;;;:7;:12;:::i;:::-;:19;;12403:1;:23;12396:344;;;12443:26;12472:12;;;;:7;:12;:::i;:::-;12485:1;12472:15;;;;;;;:::i;:::-;12506:11;;12472:15;;;;;;;;;-1:-1:-1;;;;;;;12506:11:50;:18;12525:16;;;;12472:15;12525:16;:::i;:::-;12506:36;;-1:-1:-1;;;;;;12506:36:50;;;;;;;-1:-1:-1;;;;;13801:32:89;;;12506:36:50;;;13783:51:89;13756:18;;12506:36:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12501:114;;12583:16;;;;:5;:16;:::i;:::-;12569:31;;-1:-1:-1;;;12569:31:50;;-1:-1:-1;;;;;13801:32:89;;;12569:31:50;;;13783:51:89;13756:18;;12569:31:50;13637:203:89;12501:114:50;12628:42;;;;;;;;12648:5;12628:42;:::i;:::-;12655:14;;;;;;;;:::i;:::-;12628:19;:42::i;:::-;-1:-1:-1;12712:3:50;;12396:344;;;-1:-1:-1;12775:8:50;12793:369;12804:14;;;;:7;:14;:::i;:::-;:21;;12800:1;:25;12793:369;;;12842:26;12871:14;;;;:7;:14;:::i;:::-;12886:1;12871:17;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;4247:42:50;;-1:-1:-1;12906:16:50;;;;12871:17;12906:16;:::i;:::-;-1:-1:-1;;;;;12906:40:50;;12902:191;;12966:29;12983:12;;;;12966:29;;:::i;:::-;;;12902:191;;;13034:44;;;;;;;;13056:5;13034:44;:::i;:::-;13063:14;;;;;;;;:::i;:::-;13034:21;:44::i;:::-;-1:-1:-1;13134:3:50;;12793:369;;;13176:17;;13172:209;;13227:21;13266:23;;;13262:109;;;13316:40;;-1:-1:-1;;;13316:40:50;;;;;60319:25:89;;;60360:18;;;60353:34;;;60292:18;;13316:40:50;60145:248:89;13262:109:50;13195:186;13172:209;-1:-1:-1;13426:8:50;13444:351;13455:15;;;;:7;:15;:::i;:::-;:22;;13451:1;:26;13444:351;;;13494:24;13521:15;;;;:7;:15;:::i;:::-;13537:1;13521:18;;;;;;;:::i;:::-;13558:11;;13521:18;;;;;;;;;-1:-1:-1;;;;;;;13558:11:50;:18;13577:16;;;;13521:18;13577:16;:::i;:::-;13558:36;;-1:-1:-1;;;;;;13558:36:50;;;;;;;-1:-1:-1;;;;;13801:32:89;;;13558:36:50;;;13783:51:89;13756:18;;13558:36:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13553:114;;13635:16;;;;:5;:16;:::i;13553:114::-;13680:45;;;;;;;;13703:5;13680:45;:::i;:::-;13710:14;;;;;;;;:::i;:::-;13680:22;:45::i;:::-;-1:-1:-1;13767:3:50;;13444:351;;;-1:-1:-1;13827:8:50;13845:230;13856:17;;;;:7;:17;:::i;:::-;:24;;13852:1;:28;13845:230;;;13897:24;13924:17;;;;:7;:17;:::i;:::-;13942:1;13924:20;;;;;;;:::i;:::-;;;;;;13897:47;;13958;13983:5;13958:47;;;;;;;;;;:::i;:::-;13990:14;;;;;;;;:::i;:::-;13958:24;:47::i;:::-;-1:-1:-1;14047:3:50;;13845:230;;;12347:1734;12229:1852;;;:::o;3423:867:71:-;3553:19;3585:11;;3631:14;;;;;;;;:::i;:::-;3671:82;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3671:82:71;-1:-1:-1;;;3671:82:71;;;3623:140;;-1:-1:-1;;;;;3623:34:71;;;;;:140;;3671:82;3623:140;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3584:179;;;;3778:6;3777:7;:31;;;-1:-1:-1;3788:15:71;;:20;3777:31;3773:104;;;3851:14;;;;;;;;:::i;:::-;3831:35;;-1:-1:-1;;;3831:35:71;;-1:-1:-1;;;;;13801:32:89;;;3831:35:71;;;13783:51:89;13756:18;;3831:35:71;13637:203:89;3773:104:71;3886:12;3912:8;3901:28;;;;;;;;;;;;:::i;:::-;3886:43;;3943:7;3954:1;3943:12;3939:345;;3991:191;;;;;;;;;;4020:17;;;;:7;:17;:::i;:::-;-1:-1:-1;;;;;3991:191:71;;;4055:17;;;;;3991:191;;;;;4090:19;;;;3991:191;;;;;4127:14;;;;4055:7;4127:14;:::i;:::-;3991:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3991:191:71;;;-1:-1:-1;3991:191:71;;;;;;;;;;;;;;;;;;;;;;;;;;;4159:9;;;;;;3991:191;;4159:9;;;;3991:191;;;;;;;;;-1:-1:-1;;;3991:191:71;;-1:-1:-1;3980:203:71;;;;;;;;:::i;:::-;;;;;;;;;;;;;3971:212;;3939:345;;;4249:14;;;;;;;;:::i;:::-;4229:44;;-1:-1:-1;;;4229:44:71;;-1:-1:-1;;;;;74088:32:89;;;4229:44:71;;;74070:51:89;74137:18;;;74130:34;;;74043:18;;4229:44:71;73896:274:89;3939:345:71;3574:716;;;3423:867;;;;;:::o;2587:830::-;2691:22;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2691:22:71;2729:14;2747:1;2729:19;2725:686;;2764:29;2796:42;;;;2807:14;2796:42;:::i;:::-;2764:74;;2859:455;;;;;;;;2904:9;:19;;;-1:-1:-1;;;;;2859:455:71;;;;;2952:9;:19;;;2859:455;;;;3001:9;:20;;;2859:455;;;;3055:9;:24;;;2859:455;;;;3113:9;:24;;;2859:455;;;;3174:9;:27;;;2859:455;;;;3229:9;:18;;;2859:455;;;;3278:9;:21;;;2859:455;;;2852:462;;;;;2725:686;3360:40;;-1:-1:-1;;;3360:40:71;;;;;12947:25:89;;;12920:18;;3360:40:71;12801:177:89;2725:686:71;2587:830;;;;;:::o;14087:3307:50:-;14196:27;14225;14254:28;14284;14352:7;:16;;;:23;-1:-1:-1;;;;;14334:42:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;14334:42:50;;;;;;;;;;;;;;;;14325:51;;14413:7;:16;;;:23;14439:1;14413:27;;;;:::i;:::-;-1:-1:-1;;;;;14395:46:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;14395:46:50;;;;;;;;;;;;;;;;14386:55;;14451:9;14470;14489;14508:858;14518:7;:16;;;:23;14514:1;:27;14508:858;;;14558:24;14585:7;:16;;;14602:1;14585:19;;;;;;;;:::i;:::-;;;;;;;14558:46;;14622:5;:12;;;14638:1;14622:17;14618:135;;-1:-1:-1;14691:3:50;;;;;14508:858;;14618:135;-1:-1:-1;;;14770:5:50;:12;;;:33;14766:128;;14848:16;;14866:12;;;;14830:49;;-1:-1:-1;;;14830:49:50;;-1:-1:-1;;;;;74088:32:89;;;14830:49:50;;;74070:51:89;74137:18;;;74130:34;74043:18;;14830:49:50;73896:274:89;14766:128:50;14911:11;;14930:16;;14911:36;;-1:-1:-1;;;14911:36:50;;-1:-1:-1;;;;;13801:32:89;;;14911:36:50;;;13783:51:89;14911:11:50;;;:18;;13756::89;;14911:36:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14907:390;;;14967:26;14987:5;14967:19;:26::i;:::-;15023:5;15011:6;15018:1;15011:9;;;;;;;;:::i;:::-;;;;;;;;;;:17;15078:3;;;;;14907:390;;;15150:26;15170:5;15150:19;:26::i;:::-;15206:5;15194:6;15201:1;15194:9;;;;;;;;:::i;:::-;;;;;;;;;;:17;15261:3;;;;;14907:390;-1:-1:-1;15338:3:50;;;;;14508:858;;;15457:18;;15398:9;;15457:18;;15452:498;;15520:12;;15495:7;:22;;;:37;15491:142;;;15581:12;;15595:22;;;;15559:59;;-1:-1:-1;;;15559:59:50;;;;;60319:25:89;;;;60360:18;;;60353:34;60292:18;;15559:59:50;60145:248:89;15491:142:50;15647:16;15691:7;:22;;;15666:7;:22;;;:47;;;;:::i;:::-;15647:66;;15745:8;15731:11;:22;15727:115;;;15780:47;;-1:-1:-1;;;15780:47:50;;;;;60319:25:89;;;15817:9:50;60360:18:89;;;60353:34;60292:18;;15780:47:50;60145:248:89;15727:115:50;15855:23;15870:8;15855:23;;:::i;:::-;;;15917:7;:22;;;15892:21;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;;15452:498:50;15996:15;;15992:374;;-1:-1:-1;;;16031:11:50;:32;16027:130;;16090:52;;-1:-1:-1;;;16090:52:50;;4247:42;16090:52;;;74070:51:89;74137:18;;;74130:34;;;74043:18;;16090:52:50;73896:274:89;16027:130:50;16182:114;;;;;;;;4247:42;-1:-1:-1;;;;;16182:114:50;;;;;16270:11;16182:114;;;16170:6;16177:1;16170:9;;;;;;;;:::i;:::-;;;;;;;;;;:126;16338:3;;;;;15992:374;16428:17;;;16458;;;16577:19;;;;:26;16495:8;;-1:-1:-1;16495:8:50;;;;-1:-1:-1;;;;;16561:43:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16561:43:50;;;;;;;;;;;;;;;;;16549:55;;16642:7;:19;;;:26;-1:-1:-1;;;;;16626:43:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16626:43:50;;;;;;;;;;;;;;;;;16614:55;;16679:584;16688:7;:19;;;:26;16684:1;:30;16679:584;;;16731:22;16756:7;:19;;;16776:1;16756:22;;;;;;;;:::i;:::-;;;;;;;;;;;16796:11;;16815:16;;16796:36;;-1:-1:-1;;;16796:36:50;;-1:-1:-1;;;;;13801:32:89;;;16796:36:50;;;13783:51:89;16756:22:50;;-1:-1:-1;16796:11:50;;:18;;13756::89;;16796:36:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16792:402;;;16852:29;16875:5;16852:22;:29::i;:::-;16914:5;16899:9;16909:1;16899:12;;;;;;;;:::i;:::-;;;;;;;;;;:20;16969:3;;;;;16792:402;;;17041:29;17064:5;17041:22;:29::i;:::-;17103:5;17088:9;17098:1;17088:12;;;;;;;;:::i;:::-;;;;;;;;;;:20;17158:3;;;;;16792:402;-1:-1:-1;17235:3:50;;;;;16679:584;;;-1:-1:-1;17325:20:50;;;17358;;-1:-1:-1;14087:3307:50;;;;-1:-1:-1;17332:9:50;17365;14087:3307::o;5212:318:41:-;5305:7;5347:4;5305:7;5361:134;5381:16;;;5361:134;;;5433:51;5461:12;5475:5;;5481:1;5475:8;;;;;;;:::i;:::-;;;;;;;5433:27;:51::i;:::-;5418:66;-1:-1:-1;5399:3:41;;5361:134;;;-1:-1:-1;5511:12:41;5212:318;-1:-1:-1;;;;5212:318:41:o;9477:254:50:-;9540:4;;9560:15;;;;:38;;;;;;;;:::i;:::-;;9556:169;;9621:10;;:32;;-1:-1:-1;;;9621:32:50;;;;;12947:25:89;;;-1:-1:-1;;;;;9621:10:50;;;;:26;;12920:18:89;;9621:32:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9614:39;9477:254;-1:-1:-1;;9477:254:50:o;9556:169::-;-1:-1:-1;9699:15:50;;9691:23;;9477:254::o;9556:169::-;9477:254;;;:::o;1429:1152:71:-;1532:21;;:::i;:::-;1569:14;1587:1;1569:19;1565:1010;;1604:28;1635:41;;;;1646:14;1635:41;:::i;:::-;1604:72;;1697:782;;;;;;;;1741:9;:19;;;-1:-1:-1;;;;;1697:782:71;;;;;1788:9;:18;;;-1:-1:-1;;;;;1697:782:71;;;;;1837:9;:21;;;1697:782;;;;1887:9;:19;;;1697:782;;;;1932:9;:16;;;-1:-1:-1;;;;;1697:782:71;;;;;1978:9;:20;;;1697:782;;;;2027:9;:19;;;1697:782;;;;2072:9;:16;;;1697:782;;;;2122:9;:24;;;1697:782;;;;2183:9;:27;;;1697:782;;;;2234:9;:14;;;1697:782;;;;2274:9;:16;;;1697:782;;;;2314:9;:14;;;1697:782;;;;2355:9;:17;;;1697:782;;;;2401:9;:19;;;1697:782;;;;2447:9;:17;;;1697:782;;;1690:789;;;;;1565:1010;2525:39;;-1:-1:-1;;;2525:39:71;;;;;12947:25:89;;;12920:18;;2525:39:71;12801:177:89;885:199:70;967:12;;;;:16;963:115;;1020:16;;1054:12;;;;999:68;;-1:-1:-1;;;999:68:70;;-1:-1:-1;;;;;74088:32:89;;;999:68:70;;;74070:51:89;74137:18;;;74130:34;;;;999:43:70;;;;;74043:18:89;;999:68:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7084:141:3;-1:-1:-1;;;;;;;;;;;8560:40:3;-1:-1:-1;;;8560:40:3;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:3;;;;;;;;;;;1980:235:2;6931:20:3;:18;:20::i;:::-;-1:-1:-1;;;;;2076:26:2;::::1;2072:95;;2125:31;::::0;-1:-1:-1;;;2125:31:2;;2153:1:::1;2125:31;::::0;::::1;13783:51:89::0;13756:18;;2125:31:2::1;13637:203:89::0;2264:344:17;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:17;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;3774:248:2:-;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:2;;-1:-1:-1;;;;;3941:19:2;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;1206:195:70:-;1290:12;;;;:16;1286:109;;1371:12;;;;1329:16;;1322:62;;-1:-1:-1;;;;;1322:37:70;;;;1360:9;;1322:37;:62::i;2222:406::-;2333:16;;2325:70;;-1:-1:-1;;;2325:70:70;;-1:-1:-1;;;2325:70:70;;;77256:52:89;-1:-1:-1;;;;;2325:43:70;;;;;;77229:18:89;;2325:70:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2321:301;;;2487:16;;2518:13;;;;2465:71;;-1:-1:-1;;;2465:71:70;;-1:-1:-1;;;;;77576:32:89;;;2465:71:70;;;77558:51:89;77625:18;;;77618:34;;;;77688:2;77668:18;;;77661:30;-1:-1:-1;77707:18:89;;;77700:29;2465:48:70;;;;;77746:19:89;;2465:71:70;77319:452:89;2321:301:70;2594:16;;2574:37;;-1:-1:-1;;;2574:37:70;;-1:-1:-1;;;;;13801:32:89;;;2574:37:70;;;13783:51:89;13756:18;;2574:37:70;13637:203:89;3394:442:70;3507:16;;3499:70;;-1:-1:-1;;;3499:70:70;;-1:-1:-1;;;3499:70:70;;;77256:52:89;-1:-1:-1;;;;;3499:43:70;;;;;;77229:18:89;;3499:70:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3495:335;;;3676:16;;3730:13;;;;3668:76;;-1:-1:-1;;;3668:76:70;;-1:-1:-1;;;;;3668:42:70;;;;;;:76;;3719:4;;3726:2;;3668:76;;;:::i;1486:336::-;1549:12;;;;:16;1545:271;;1706:12;;;;1644:16;;1637:82;;-1:-1:-1;;;;;1637:41:70;;;;1679:10;;1699:4;;1637:41;:82::i;:::-;1754:16;;1792:12;;;;1733:72;;-1:-1:-1;;;1733:72:70;;1785:4;1733:72;;;74070:51:89;74137:18;;;74130:34;;;;-1:-1:-1;;;;;1733:43:70;;;;;;74043:18:89;;1733:72:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1486:336;:::o;1907:194::-;1970:12;;;;:16;1966:129;;2071:12;;;;2009:16;;2002:82;;-1:-1:-1;;;;;2002:41:70;;;;2044:10;;2064:4;;2002:41;:82::i;2707:579::-;2806:16;;2798:70;;-1:-1:-1;;;2798:70:70;;-1:-1:-1;;;2798:70:70;;;77256:52:89;-1:-1:-1;;;;;2798:43:70;;;;;;77229:18:89;;2798:70:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2794:486;;;3049:16;;3107:13;;;;3041:80;;-1:-1:-1;;;3041:80:70;;-1:-1:-1;;;;;3041:38:70;;;;;;:80;;3080:10;;3100:4;;3041:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3157:16:70;;3180:13;;;;3135:59;;-1:-1:-1;;;3135:59:70;;-1:-1:-1;;;;;3135:44:70;;;;-1:-1:-1;3135:44:70;;-1:-1:-1;3135:59:70;;;;12947:25:89;;;12935:2;12920:18;;12801:177;2794:486:70;3252:16;;3232:37;;-1:-1:-1;;;3232:37:70;;-1:-1:-1;;;;;13801:32:89;;;3232:37:70;;;13783:51:89;13756:18;;3232:37:70;13637:203:89;3915:452:70;4014:16;;4006:70;;-1:-1:-1;;;4006:70:70;;-1:-1:-1;;;4006:70:70;;;77256:52:89;-1:-1:-1;;;;;4006:43:70;;;;;;77229:18:89;;4006:70:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4002:359;;;4203:16;;4261:13;;;;4195:80;;-1:-1:-1;;;4195:80:70;;-1:-1:-1;;;;;4195:38:70;;;;;;:80;;4234:10;;4254:4;;4195:80;;;:::i;504:169:40:-;579:7;609:1;605;:5;:61;;866:13;930:15;;;965:4;958:15;;;1011:4;995:21;;605:61;;;-1:-1:-1;866:13:40;930:15;;;965:4;958:15;1011:4;995:21;;;504:169::o;1671:281:17:-;1748:17;-1:-1:-1;;;;;1748:29:17;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:17;;-1:-1:-1;;;;;13801:32:89;;1805:47:17;;;13783:51:89;13756:18;;1805:47:17;13637:203:89;1744:119:17;-1:-1:-1;;;;;;;;;;;1872:73:17;;-1:-1:-1;;;;;;1872:73:17;-1:-1:-1;;;;;1872:73:17;;;;;;;;;;1671:281::o;3900:253:32:-;3983:12;4008;4022:23;4049:6;-1:-1:-1;;;;;4049:19:32;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;3900:253;-1:-1:-1;;;;;3900:253:32:o;6113:122:17:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:17;;;;;;;;;;;1271:160:26;1380:43;;-1:-1:-1;;;;;74088:32:89;;;1380:43:26;;;74070:51:89;74137:18;;;74130:34;;;1353:71:26;;1373:5;;1395:14;;;;;74043:18:89;;1380:43:26;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1380:43:26;;;;;;;;;;;1353:19;:71::i;1670:188::-;1770:81;1790:5;1812;-1:-1:-1;;;;;1812:18:26;;1833:4;1839:2;1843:5;1797:53;;;;;;;;;;:::i;4421:582:32:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4841:17;;:22;:49;;;;-1:-1:-1;;;;;;4867:18:32;;;:23;4841:49;4837:119;;;4917:24;;-1:-1:-1;;;4917:24:32;;-1:-1:-1;;;;;13801:32:89;;4917:24:32;;;13783:51:89;13756:18;;4917:24:32;13637:203:89;4837:119:32;-1:-1:-1;4976:10:32;4969:17;;7738:720:26;7818:18;7846:19;7984:4;7981:1;7974:4;7968:11;7961:4;7955;7951:15;7948:1;7941:5;7934;7929:60;8041:7;8031:176;;8085:4;8079:11;8130:16;8127:1;8122:3;8107:40;8176:16;8171:3;8164:29;8031:176;-1:-1:-1;;8284:1:26;8278:8;8234:16;;-1:-1:-1;8310:15:26;;:68;;8362:11;8377:1;8362:16;;8310:68;;;-1:-1:-1;;;;;8328:26:26;;;:31;8310:68;8306:146;;;8401:40;;-1:-1:-1;;;8401:40:26;;-1:-1:-1;;;;;13801:32:89;;8401:40:26;;;13783:51:89;13756:18;;8401:40:26;13637:203:89;5543:487:32;5674:17;;:21;5670:354;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;-1:-1:-1;;;5994:19:32;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:347:89:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:89;;-1:-1:-1;;;;;202:30:89;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:367::-;429:8;439:6;493:3;486:4;478:6;474:17;470:27;460:55;;511:1;508;501:12;460:55;-1:-1:-1;534:20:89;;-1:-1:-1;;;;;566:30:89;;563:50;;;609:1;606;599:12;563:50;646:4;638:6;634:17;622:29;;706:3;699:4;689:6;686:1;682:14;674:6;670:27;666:38;663:47;660:67;;;723:1;720;713:12;738:118;824:5;817:13;810:21;803:5;800:32;790:60;;846:1;843;836:12;861:1415;1011:6;1019;1027;1035;1043;1051;1059;1067;1075;1128:3;1116:9;1107:7;1103:23;1099:33;1096:53;;;1145:1;1142;1135:12;1096:53;1190:23;;;-1:-1:-1;1288:2:89;1273:18;;1260:32;-1:-1:-1;;;;;1304:30:89;;1301:50;;;1347:1;1344;1337:12;1301:50;1386:58;1436:7;1427:6;1416:9;1412:22;1386:58;:::i;:::-;1463:8;;-1:-1:-1;1360:84:89;-1:-1:-1;;1551:2:89;1536:18;;1523:32;-1:-1:-1;;;;;1567:32:89;;1564:52;;;1612:1;1609;1602:12;1564:52;1651:60;1703:7;1692:8;1681:9;1677:24;1651:60;:::i;:::-;1730:8;;-1:-1:-1;1625:86:89;-1:-1:-1;;1838:2:89;1823:18;;1810:32;;-1:-1:-1;1921:3:89;1906:19;;1893:33;-1:-1:-1;;;;;1938:32:89;;1935:52;;;1983:1;1980;1973:12;1935:52;2022:72;2086:7;2075:8;2064:9;2060:24;2022:72;:::i;:::-;2113:8;;-1:-1:-1;1996:98:89;-1:-1:-1;;2200:3:89;2185:19;;2172:33;2214:30;2172:33;2214:30;:::i;:::-;2263:7;2253:17;;;861:1415;;;;;;;;;;;:::o;2497:250::-;2582:1;2592:113;2606:6;2603:1;2600:13;2592:113;;;2682:11;;;2676:18;2663:11;;;2656:39;2628:2;2621:10;2592:113;;;-1:-1:-1;;2739:1:89;2721:16;;2714:27;2497:250::o;2752:271::-;2794:3;2832:5;2826:12;2859:6;2854:3;2847:19;2875:76;2944:6;2937:4;2932:3;2928:14;2921:4;2914:5;2910:16;2875:76;:::i;:::-;3005:2;2984:15;-1:-1:-1;;2980:29:89;2971:39;;;;3012:4;2967:50;;2752:271;-1:-1:-1;;2752:271:89:o;3028:579::-;3080:3;3111;3143:5;3137:12;3170:6;3165:3;3158:19;3202:4;3197:3;3193:14;3186:21;;3260:4;3250:6;3247:1;3243:14;3236:5;3232:26;3228:37;3299:4;3292:5;3288:16;3322:1;3332:249;3346:6;3343:1;3340:13;3332:249;;;3433:2;3429:7;3421:5;3415:4;3411:16;3407:30;3402:3;3395:43;3459:38;3492:4;3483:6;3477:13;3459:38;:::i;:::-;3532:4;3557:14;;;;3451:46;;-1:-1:-1;3520:17:89;;;;;3368:1;3361:9;3332:249;;;-1:-1:-1;3597:4:89;;3028:579;-1:-1:-1;;;;;;3028:579:89:o;3795:454::-;3859:3;3897:5;3891:12;3924:6;3919:3;3912:19;3956:4;3951:3;3947:14;3940:21;;3995:4;3988:5;3984:16;4018:1;4028:196;4042:6;4039:1;4036:13;4028:196;;;4091:49;4136:3;4127:6;4121:13;3693:12;;-1:-1:-1;;;;;3689:38:89;3677:51;;3777:4;3766:16;;;3760:23;3744:14;;3737:47;3612:178;4091:49;4169:4;4160:14;;;;;4209:4;4197:17;;;;;4064:1;4057:9;4028:196;;;-1:-1:-1;4240:3:89;;3795:454;-1:-1:-1;;;;3795:454:89:o;4556:433::-;4618:3;4656:5;4650:12;4683:6;4678:3;4671:19;4715:4;4710:3;4706:14;4699:21;;4754:4;4747:5;4743:16;4777:1;4787:177;4801:6;4798:1;4795:13;4787:177;;;4895:13;;4358;;-1:-1:-1;;;;;4354:39:89;4342:52;;4444:4;4432:17;;;4426:24;4410:14;;;4403:48;4501:4;4489:17;;;4483:24;4467:14;;;4460:48;4540:4;4531:14;;4850:64;-1:-1:-1;4949:4:89;4937:17;;;;;4823:1;4816:9;4787:177;;4994:2273;5077:3;5108;5140:5;5134:12;5167:6;5162:3;5155:19;5199:4;5194:3;5190:14;5183:21;;5257:4;5247:6;5244:1;5240:14;5233:5;5229:26;5225:37;5296:4;5289:5;5285:16;5319:1;5329:1912;5343:6;5340:1;5337:13;5329:1912;;;5408:16;;;-1:-1:-1;;5404:30:89;5392:43;;5458:13;;5502:9;;-1:-1:-1;;;;;2346:30:89;2334:43;;5569:4;5565:2;5561:13;5555:20;5548:4;5542;5538:15;5531:45;5623:4;5619:2;5615:13;5609:20;5642:49;5685:4;5679;5675:15;5661:12;-1:-1:-1;;;;;2454:31:89;2442:44;;2388:104;5642:49;;5740:4;5736:2;5732:13;5726:20;5783:6;5776:4;5770;5766:15;5759:31;5817:52;5861:6;5855:4;5851:17;5835:14;5817:52;:::i;:::-;5803:66;;5918:4;5914:2;5910:13;5904:20;5973:4;5965:6;5961:17;5954:4;5948;5944:15;5937:42;6006:41;6040:6;6024:14;6006:41;:::i;:::-;5992:55;;;6098:4;6094:2;6090:13;6084:20;6077:4;6071;6067:15;6060:45;6156:4;6152:2;6148:13;6142:20;6135:4;6129;6125:15;6118:45;6212:4;6208:2;6204:13;6198:20;6267:4;6259:6;6255:17;6248:4;6242;6238:15;6231:42;6300:51;6344:6;6328:14;6300:51;:::i;:::-;6286:65;;;6400:6;6396:2;6392:15;6386:22;6459:4;6451:6;6447:17;6438:6;6432:4;6428:17;6421:44;6492:63;6548:6;6532:14;6492:63;:::i;:::-;6478:77;;;6604:6;6600:2;6596:15;6590:22;6663:4;6655:6;6651:17;6642:6;6636:4;6632:17;6625:44;6696:63;6752:6;6736:14;6696:63;:::i;:::-;6682:77;;;6808:6;6804:2;6800:15;6794:22;6867:4;6859:6;6855:17;6846:6;6840:4;6836:17;6829:44;6900:61;6954:6;6938:14;6900:61;:::i;:::-;6886:75;;;7010:6;7006:2;7002:15;6996:22;6974:44;;7069:4;7061:6;7057:17;7048:6;7042:4;7038:17;7031:44;7096:61;7150:6;7134:14;7096:61;:::i;:::-;7192:4;7217:14;;;;7088:69;;-1:-1:-1;7180:17:89;;;;;-1:-1:-1;;5365:1:89;5358:9;5329:1912;;7272:631;7631:6;7624:14;7617:22;7606:9;7599:41;7676:2;7671;7660:9;7656:18;7649:30;7580:4;7702:86;7784:2;7773:9;7769:18;7761:6;7702:86;:::i;:::-;7836:9;7828:6;7824:22;7819:2;7808:9;7804:18;7797:50;7864:33;7890:6;7882;7864:33;:::i;:::-;7856:41;7272:631;-1:-1:-1;;;;;;7272:631:89:o;7908:698::-;8022:6;8030;8038;8091:2;8079:9;8070:7;8066:23;8062:32;8059:52;;;8107:1;8104;8097:12;8059:52;8147:9;8134:23;-1:-1:-1;;;;;8172:6:89;8169:30;8166:50;;;8212:1;8209;8202:12;8166:50;8235:22;;8291:3;8273:16;;;8269:26;8266:46;;;8308:1;8305;8298:12;8266:46;8331:2;-1:-1:-1;8386:2:89;8371:18;;8358:32;-1:-1:-1;;;;;8402:32:89;;8399:52;;;8447:1;8444;8437:12;8399:52;8486:60;8538:7;8527:8;8516:9;8512:24;8486:60;:::i;:::-;7908:698;;8565:8;;-1:-1:-1;8460:86:89;;-1:-1:-1;;;;7908:698:89:o;8611:131::-;-1:-1:-1;;;;;8686:31:89;;8676:42;;8666:70;;8732:1;8729;8722:12;8747:134;8815:20;;8844:31;8815:20;8844:31;:::i;8886:388::-;8954:6;8962;9015:2;9003:9;8994:7;8990:23;8986:32;8983:52;;;9031:1;9028;9021:12;8983:52;9070:9;9057:23;9089:31;9114:5;9089:31;:::i;:::-;9139:5;-1:-1:-1;9196:2:89;9181:18;;9168:32;9209:33;9168:32;9209:33;:::i;:::-;9261:7;9251:17;;;8886:388;;;;;:::o;9279:375::-;9355:6;9363;9416:2;9404:9;9395:7;9391:23;9387:32;9384:52;;;9432:1;9429;9422:12;9384:52;9471:9;9458:23;9490:31;9515:5;9490:31;:::i;:::-;9540:5;9618:2;9603:18;;;;9590:32;;-1:-1:-1;;;9279:375:89:o;9659:127::-;9720:10;9715:3;9711:20;9708:1;9701:31;9751:4;9748:1;9741:15;9775:4;9772:1;9765:15;9791:257;9863:4;9857:11;;;9895:17;;-1:-1:-1;;;;;9927:34:89;;9963:22;;;9924:62;9921:88;;;9989:18;;:::i;:::-;10025:4;10018:24;9791:257;:::o;10053:253::-;10125:2;10119:9;10167:4;10155:17;;-1:-1:-1;;;;;10187:34:89;;10223:22;;;10184:62;10181:88;;;10249:18;;:::i;10311:255::-;10383:2;10377:9;10425:6;10413:19;;-1:-1:-1;;;;;10447:34:89;;10483:22;;;10444:62;10441:88;;;10509:18;;:::i;10571:253::-;10643:2;10637:9;10685:4;10673:17;;-1:-1:-1;;;;;10705:34:89;;10741:22;;;10702:62;10699:88;;;10767:18;;:::i;10829:255::-;10901:2;10895:9;10943:6;10931:19;;-1:-1:-1;;;;;10965:34:89;;11001:22;;;10962:62;10959:88;;;11027:18;;:::i;11089:255::-;11161:2;11155:9;11203:6;11191:19;;-1:-1:-1;;;;;11225:34:89;;11261:22;;;11222:62;11219:88;;;11287:18;;:::i;11349:275::-;11420:2;11414:9;11485:2;11466:13;;-1:-1:-1;;11462:27:89;11450:40;;-1:-1:-1;;;;;11505:34:89;;11541:22;;;11502:62;11499:88;;;11567:18;;:::i;:::-;11603:2;11596:22;11349:275;;-1:-1:-1;11349:275:89:o;11629:186::-;11677:4;-1:-1:-1;;;;;11702:6:89;11699:30;11696:56;;;11732:18;;:::i;:::-;-1:-1:-1;11798:2:89;11777:15;-1:-1:-1;;11773:29:89;11804:4;11769:40;;11629:186::o;11820:516::-;11862:5;11915:3;11908:4;11900:6;11896:17;11892:27;11882:55;;11933:1;11930;11923:12;11882:55;11973:6;11960:20;12012:4;12004:6;12000:17;12041:1;12062:52;12078:35;12106:6;12078:35;:::i;:::-;12062:52;:::i;:::-;12051:63;;12139:6;12130:7;12123:23;12179:3;12170:6;12165:3;12161:16;12158:25;12155:45;;;12196:1;12193;12186:12;12155:45;12247:6;12242:3;12235:4;12226:7;12222:18;12209:45;12303:1;12274:20;;;12296:4;12270:31;12263:42;;;;-1:-1:-1;12278:7:89;11820:516;-1:-1:-1;;;11820:516:89:o;12341:455::-;12418:6;12426;12479:2;12467:9;12458:7;12454:23;12450:32;12447:52;;;12495:1;12492;12485:12;12447:52;12534:9;12521:23;12553:31;12578:5;12553:31;:::i;:::-;12603:5;-1:-1:-1;12659:2:89;12644:18;;12631:32;-1:-1:-1;;;;;12675:30:89;;12672:50;;;12718:1;12715;12708:12;12672:50;12741:49;12782:7;12773:6;12762:9;12758:22;12741:49;:::i;:::-;12731:59;;;12341:455;;;;;:::o;12983:226::-;13042:6;13095:2;13083:9;13074:7;13070:23;13066:32;13063:52;;;13111:1;13108;13101:12;13063:52;-1:-1:-1;13156:23:89;;12983:226;-1:-1:-1;12983:226:89:o;13845:247::-;13904:6;13957:2;13945:9;13936:7;13932:23;13928:32;13925:52;;;13973:1;13970;13963:12;13925:52;14012:9;13999:23;14031:31;14056:5;14031:31;:::i;14279:1300::-;14423:6;14431;14439;14447;14455;14463;14471;14479;14532:3;14520:9;14511:7;14507:23;14503:33;14500:53;;;14549:1;14546;14539:12;14500:53;14594:23;;;-1:-1:-1;14692:2:89;14677:18;;14664:32;-1:-1:-1;;;;;14708:30:89;;14705:50;;;14751:1;14748;14741:12;14705:50;14790:58;14840:7;14831:6;14820:9;14816:22;14790:58;:::i;:::-;14867:8;;-1:-1:-1;14764:84:89;-1:-1:-1;;14955:2:89;14940:18;;14927:32;-1:-1:-1;;;;;14971:32:89;;14968:52;;;15016:1;15013;15006:12;14968:52;15055:72;15119:7;15108:8;15097:9;15093:24;15055:72;:::i;:::-;15146:8;;-1:-1:-1;15029:98:89;-1:-1:-1;;15233:2:89;15218:18;;15205:32;15246:33;15205:32;15246:33;:::i;:::-;15298:7;-1:-1:-1;15358:3:89;15343:19;;15330:33;-1:-1:-1;;;;;15375:32:89;;15372:52;;;15420:1;15417;15410:12;15372:52;15459:60;15511:7;15500:8;15489:9;15485:24;15459:60;:::i;:::-;14279:1300;;;;-1:-1:-1;14279:1300:89;;-1:-1:-1;14279:1300:89;;;;;;15538:8;-1:-1:-1;;;14279:1300:89:o;15584:220::-;15733:2;15722:9;15715:21;15696:4;15753:45;15794:2;15783:9;15779:18;15771:6;15753:45;:::i;15809:523::-;15888:6;15896;15904;15957:2;15945:9;15936:7;15932:23;15928:32;15925:52;;;15973:1;15970;15963:12;15925:52;16018:23;;;-1:-1:-1;16116:2:89;16101:18;;16088:32;-1:-1:-1;;;;;16132:30:89;;16129:50;;;16175:1;16172;16165:12;16337:127;16398:10;16393:3;16389:20;16386:1;16379:31;16429:4;16426:1;16419:15;16453:4;16450:1;16443:15;16469:446;16522:3;16560:5;16554:12;16587:6;16582:3;16575:19;16619:4;16614:3;16610:14;16603:21;;16658:4;16651:5;16647:16;16681:1;16691:199;16705:6;16702:1;16699:13;16691:199;;;16770:13;;-1:-1:-1;;;;;16766:39:89;16754:52;;16835:4;16826:14;;;;16863:17;;;;16802:1;16720:9;16691:199;;16920:592;16972:3;17016:5;17010:12;17043:4;17038:3;17031:17;17069:47;17110:4;17105:3;17101:14;17087:12;17069:47;:::i;:::-;17057:59;;17164:4;17157:5;17153:16;17147:23;17212:3;17206:4;17202:14;17195:4;17190:3;17186:14;17179:38;17240:39;17274:4;17258:14;17240:39;:::i;:::-;17226:53;;;17340:4;17332;17325:5;17321:16;17315:23;17311:34;17304:4;17299:3;17295:14;17288:58;17394:4;17387:5;17383:16;17377:23;17444:3;17436:6;17432:16;17425:4;17420:3;17416:14;17409:40;17465:41;17499:6;17483:14;17465:41;:::i;17517:599::-;17579:3;17610;17642:5;17636:12;17669:6;17664:3;17657:19;17701:4;17696:3;17692:14;17685:21;;17759:4;17749:6;17746:1;17742:14;17735:5;17731:26;17727:37;17798:4;17791:5;17787:16;17821:1;17831:259;17845:6;17842:1;17839:13;17831:259;;;17932:2;17928:7;17920:5;17914:4;17910:16;17906:30;17901:3;17894:43;17958:48;18001:4;17992:6;17986:13;17958:48;:::i;:::-;18041:4;18066:14;;;;17950:56;;-1:-1:-1;18029:17:89;;;;;17867:1;17860:9;17831:259;;18121:690;18171:3;18215:5;18209:12;18242:4;18237:3;18230:17;18268:47;18309:4;18304:3;18300:14;18286:12;18268:47;:::i;:::-;18256:59;;18363:4;18356:5;18352:16;18346:23;18411:3;18405:4;18401:14;18394:4;18389:3;18385:14;18378:38;18439:39;18473:4;18457:14;18439:39;:::i;:::-;18425:53;;;18526:4;18519:5;18515:16;18509:23;18576:3;18568:6;18564:16;18557:4;18552:3;18548:14;18541:40;18604:41;18638:6;18622:14;18604:41;:::i;:::-;18590:55;;;18693:4;18686:5;18682:16;18676:23;18743:3;18735:6;18731:16;18724:4;18719:3;18715:14;18708:40;18764:41;18798:6;18782:14;18764:41;:::i;18816:595::-;18876:3;18907;18939:5;18933:12;18966:6;18961:3;18954:19;18998:4;18993:3;18989:14;18982:21;;19056:4;19046:6;19043:1;19039:14;19032:5;19028:26;19024:37;19095:4;19088:5;19084:16;19118:1;19128:257;19142:6;19139:1;19136:13;19128:257;;;19229:2;19225:7;19217:5;19211:4;19207:16;19203:30;19198:3;19191:43;19255:46;19296:4;19287:6;19281:13;19255:46;:::i;:::-;19336:4;19361:14;;;;19247:54;;-1:-1:-1;19324:17:89;;;;;19164:1;19157:9;19128:257;;19416:266;19504:6;19499:3;19492:19;19556:6;19549:5;19542:4;19537:3;19533:14;19520:43;-1:-1:-1;19608:1:89;19583:16;;;19601:4;19579:27;;;19572:38;;;;19664:2;19643:15;;;-1:-1:-1;;19639:29:89;19630:39;;;19626:50;;19416:266::o;19687:2967::-;19938:2;19927:9;19920:21;19950:52;19998:2;19987:9;19983:18;19974:6;19968:13;-1:-1:-1;;;;;2346:30:89;2334:43;;2281:102;19950:52;19901:4;20049;20041:6;20037:17;20031:24;20064:51;20111:2;20100:9;20096:18;20082:12;-1:-1:-1;;;;;2346:30:89;2334:43;;2281:102;20064:51;;20170:2;20162:6;20158:15;20152:22;20146:3;20135:9;20131:19;20124:51;20230:2;20222:6;20218:15;20212:22;20206:3;20195:9;20191:19;20184:51;20284:3;20276:6;20272:16;20266:23;20298:55;20348:3;20337:9;20333:19;20317:14;-1:-1:-1;;;;;2454:31:89;2442:44;;2388:104;20298:55;;20402:3;20394:6;20390:16;20384:23;20444:6;20438:3;20427:9;20423:19;20416:35;20474:54;20523:3;20512:9;20508:19;20492:14;20474:54;:::i;:::-;20460:68;;20577:3;20569:6;20565:16;20559:23;20651:2;20647:7;20635:9;20627:6;20623:22;20619:36;20613:3;20602:9;20598:19;20591:65;20679:41;20713:6;20697:14;20679:41;:::i;:::-;20665:55;;;20769:3;20761:6;20757:16;20751:23;20843:2;20839:7;20827:9;20819:6;20815:22;20811:36;20805:3;20794:9;20790:19;20783:65;20871:41;20905:6;20889:14;20871:41;:::i;:::-;20857:55;;;20961:3;20953:6;20949:16;20943:23;20975:66;21036:3;21025:9;21021:19;21005:14;3693:12;;-1:-1:-1;;;;;3689:38:89;3677:51;;3777:4;3766:16;;;3760:23;3744:14;;3737:47;3612:178;20975:66;-1:-1:-1;21090:3:89;21078:16;;21072:23;21136:22;;;-1:-1:-1;;21132:36:89;21126:3;21111:19;;21104:65;21192:52;21140:6;21072:23;21192:52;:::i;:::-;21178:66;;;21293:3;21285:6;21281:16;21275:23;21367:2;21363:7;21351:9;21343:6;21339:22;21335:36;21329:3;21318:9;21314:19;21307:65;21395:63;21451:6;21435:14;21395:63;:::i;:::-;21381:77;;;21507:6;21499;21495:19;21489:26;21584:2;21580:7;21568:9;21560:6;21556:22;21552:36;21546:3;21535:9;21531:19;21524:65;21612:63;21668:6;21652:14;21612:63;:::i;:::-;21598:77;;;21724:3;21716:6;21712:16;21706:23;21798:2;21794:7;21782:9;21774:6;21770:22;21766:36;21760:3;21749:9;21745:19;21738:65;21826:61;21880:6;21864:14;21826:61;:::i;:::-;21812:75;;;21937:3;21929:6;21925:16;21919:23;22011:2;22007:7;21995:9;21987:6;21983:22;21979:36;21973:3;21962:9;21958:19;21951:65;22039:62;22094:6;22077:15;22039:62;:::i;:::-;22025:76;;;22151:3;22143:6;22139:16;22133:23;22228:2;22224:7;22212:9;22204:6;22200:22;22196:36;22187:6;22176:9;22172:22;22165:68;22256:62;22311:6;22294:15;22256:62;:::i;:::-;22242:76;;;22368:3;22360:6;22356:16;22350:23;22442:2;22438:7;22426:9;22418:6;22414:22;22410:36;22404:3;22393:9;22389:19;22382:65;22467:60;22520:6;22503:15;22467:60;:::i;:::-;22456:71;;;22574:9;22569:3;22565:19;22558:4;22547:9;22543:20;22536:49;22602:46;22644:3;22636:6;22628;22602:46;:::i;22659:287::-;22788:3;22826:6;22820:13;22842:66;22901:6;22896:3;22889:4;22881:6;22877:17;22842:66;:::i;:::-;22924:16;;;;;22659:287;-1:-1:-1;;22659:287:89:o;22951:320::-;23026:5;23055:52;23071:35;23099:6;23071:35;:::i;23055:52::-;23046:61;;23130:6;23123:5;23116:21;23170:3;23161:6;23156:3;23152:16;23149:25;23146:45;;;23187:1;23184;23177:12;23146:45;23200:65;23258:6;23251:4;23244:5;23240:16;23235:3;23200:65;:::i;23276:579::-;23361:6;23369;23422:2;23410:9;23401:7;23397:23;23393:32;23390:52;;;23438:1;23435;23428:12;23390:52;23470:9;23464:16;23489:28;23511:5;23489:28;:::i;:::-;23585:2;23570:18;;23564:25;23536:5;;-1:-1:-1;;;;;;23601:30:89;;23598:50;;;23644:1;23641;23634:12;23598:50;23667:22;;23720:4;23712:13;;23708:27;-1:-1:-1;23698:55:89;;23749:1;23746;23739:12;23698:55;23772:77;23841:7;23836:2;23830:9;23825:2;23821;23817:11;23772:77;:::i;23860:213::-;23950:4;-1:-1:-1;;;;;23975:6:89;23972:30;23969:56;;;24005:18;;:::i;:::-;-1:-1:-1;24050:1:89;24046:14;24062:4;24042:25;;23860:213::o;24078:129::-;-1:-1:-1;;;;;24156:5:89;24152:30;24145:5;24142:41;24132:69;;24197:1;24194;24187:12;24212:136;24290:13;;24312:30;24290:13;24312:30;:::i;24353:138::-;24432:13;;24454:31;24432:13;24454:31;:::i;24496:236::-;24550:5;24603:3;24596:4;24588:6;24584:17;24580:27;24570:55;;24621:1;24618;24611:12;24570:55;24643:83;24722:3;24713:6;24707:13;24700:4;24692:6;24688:17;24643:83;:::i;24737:865::-;24801:5;24854:3;24847:4;24839:6;24835:17;24831:27;24821:55;;24872:1;24869;24862:12;24821:55;24905:6;24899:13;24932:94;24948:77;25018:6;24948:77;:::i;24932:94::-;25050:3;25074:6;25069:3;25062:19;25106:4;25101:3;25097:14;25090:21;;25167:4;25157:6;25154:1;25150:14;25142:6;25138:27;25134:38;25120:52;;25195:3;25187:6;25184:15;25181:35;;;25212:1;25209;25202:12;25181:35;25248:4;25240:6;25236:17;25262:309;25278:6;25273:3;25270:15;25262:309;;;25359:3;25353:10;-1:-1:-1;;;;;25382:11:89;25379:35;25376:55;;;25427:1;25424;25417:12;25376:55;25456:70;25522:3;25515:4;25501:11;25493:6;25489:24;25485:35;25456:70;:::i;:::-;25444:83;;-1:-1:-1;25556:4:89;25547:14;;;;25295;25262:309;;;-1:-1:-1;25589:7:89;24737:865;-1:-1:-1;;;;;24737:865:89:o;25607:1046::-;25683:5;25736:3;25729:4;25721:6;25717:17;25713:27;25703:55;;25754:1;25751;25744:12;25703:55;25787:6;25781:13;25814:94;25830:77;25900:6;25830:77;:::i;25814:94::-;25932:3;25956:6;25951:3;25944:19;25988:4;25983:3;25979:14;25972:21;;26049:4;26039:6;26036:1;26032:14;26024:6;26020:27;26016:38;26002:52;;26077:3;26069:6;26066:15;26063:35;;;26094:1;26091;26084:12;26063:35;26130:4;26122:6;26118:17;26144:478;26160:6;26155:3;26152:15;26144:478;;;26238:4;26232:3;26227;26223:13;26219:24;26216:44;;;26256:1;26253;26246:12;26216:44;26286:22;;:::i;:::-;26342:3;26336:10;26359:33;26384:7;26359:33;:::i;:::-;26405:22;;26495:4;26486:14;;;26480:21;26521:16;;;26514:33;26560:18;;;26598:14;;;;;26186:4;26177:14;26144:478;;26658:1163;26732:5;26785:3;26778:4;26770:6;26766:17;26762:27;26752:55;;26803:1;26800;26793:12;26752:55;26836:6;26830:13;26863:94;26879:77;26949:6;26879:77;:::i;26863:94::-;26981:3;27005:6;27000:3;26993:19;27037:4;27032:3;27028:14;27021:21;;27101:4;27093;27085:6;27081:17;27073:6;27069:30;27065:41;27051:55;;27129:3;27121:6;27118:15;27115:35;;;27146:1;27143;27136:12;27115:35;27182:4;27174:6;27170:17;27196:594;27212:6;27207:3;27204:15;27196:594;;;27290:4;27284:3;27279;27275:13;27271:24;27268:44;;;27308:1;27305;27298:12;27268:44;27338:22;;:::i;:::-;27394:3;27388:10;27411:33;27436:7;27411:33;:::i;:::-;27457:22;;27547:4;27538:14;;;27532:21;27573:16;;;27566:33;27667:2;27658:12;;;27652:19;27691:14;;;27684:31;27728:18;;;27766:14;;;;;27238:4;27229:14;27196:594;;27826:3332;27970:6;28023:2;28011:9;28002:7;27998:23;27994:32;27991:52;;;28039:1;28036;28029:12;27991:52;28072:9;28066:16;-1:-1:-1;;;;;28097:6:89;28094:30;28091:50;;;28137:1;28134;28127:12;28091:50;28160:22;;28213:4;28205:13;;28201:27;-1:-1:-1;28191:55:89;;28242:1;28239;28232:12;28191:55;28275:2;28269:9;28298:94;28314:77;28384:6;28314:77;:::i;28298:94::-;28414:3;28438:6;28433:3;28426:19;28470:2;28465:3;28461:12;28454:19;;28525:2;28515:6;28512:1;28508:14;28504:2;28500:23;28496:32;28482:46;;28551:7;28543:6;28540:19;28537:39;;;28572:1;28569;28562:12;28537:39;28604:2;28600;28596:11;28616:2512;28632:6;28627:3;28624:15;28616:2512;;;28711:3;28705:10;-1:-1:-1;;;;;28734:11:89;28731:35;28728:55;;;28779:1;28776;28769:12;28728:55;28806:20;;28878:6;28850:16;;;-1:-1:-1;;28846:30:89;28842:43;28839:63;;;28898:1;28895;28888:12;28839:63;28928:22;;:::i;:::-;28977:41;29014:2;29010;29006:11;28977:41;:::i;:::-;28963:56;;29086:2;29078:11;;29072:18;29121:2;29110:14;;29103:31;29170:42;29208:2;29200:11;;29170:42;:::i;:::-;29165:2;29158:5;29154:14;29147:66;29256:3;29252:2;29248:12;29242:19;-1:-1:-1;;;;;29280:8:89;29277:32;29274:52;;;29322:1;29319;29312:12;29274:52;29362:65;29419:7;29414:2;29403:8;29399:2;29395:17;29391:26;29362:65;:::i;:::-;29357:2;29350:5;29346:14;29339:89;;29471:3;29467:2;29463:12;29457:19;-1:-1:-1;;;;;29495:8:89;29492:32;29489:52;;;29537:1;29534;29527:12;29489:52;29578:65;29635:7;29630:2;29619:8;29615:2;29611:17;29607:26;29578:65;:::i;:::-;29572:3;29561:15;;29554:90;-1:-1:-1;29711:3:89;29703:12;;;29697:19;29747:3;29736:15;;29729:32;29828:3;29820:12;;29814:19;29853:15;;;29846:32;29921:3;29913:12;;29907:19;-1:-1:-1;;;;;29942:32:89;;29939:52;;;29987:1;29984;29977:12;29939:52;30028:75;30095:7;30090:2;30079:8;30075:2;30071:17;30067:26;30028:75;:::i;:::-;30022:3;30015:5;30011:15;30004:100;;30147:3;30143:2;30139:12;30133:19;-1:-1:-1;;;;;30171:8:89;30168:32;30165:52;;;30213:1;30210;30203:12;30165:52;30254:87;30333:7;30328:2;30317:8;30313:2;30309:17;30305:26;30254:87;:::i;:::-;30248:3;30241:5;30237:15;30230:112;;30385:3;30381:2;30377:12;30371:19;-1:-1:-1;;;;;30409:8:89;30406:32;30403:52;;;30451:1;30448;30441:12;30403:52;30492:87;30571:7;30566:2;30555:8;30551:2;30547:17;30543:26;30492:87;:::i;:::-;30486:3;30479:5;30475:15;30468:112;;30623:3;30619:2;30615:12;30609:19;-1:-1:-1;;;;;30647:8:89;30644:32;30641:52;;;30689:1;30686;30679:12;30641:52;30730:85;30807:7;30802:2;30791:8;30787:2;30783:17;30779:26;30730:85;:::i;:::-;30724:3;30717:5;30713:15;30706:110;;30859:6;30855:2;30851:15;30845:22;-1:-1:-1;;;;;30886:8:89;30883:32;30880:52;;;30928:1;30925;30918:12;30880:52;30969:85;31046:7;31041:2;31030:8;31026:2;31022:17;31018:26;30969:85;:::i;:::-;30963:3;30952:15;;30945:110;-1:-1:-1;31068:18:89;;-1:-1:-1;31115:2:89;31106:12;;;;28649;28616:2512;;;-1:-1:-1;31147:5:89;27826:3332;-1:-1:-1;;;;;;27826:3332:89:o;31163:389::-;31440:2;31429:9;31422:21;31403:4;31460:86;31542:2;31531:9;31527:18;31519:6;31460:86;:::i;31780:132::-;31847:20;;31876:30;31847:20;31876:30;:::i;31917:411::-;31975:5;32023:4;32011:9;32006:3;32002:19;31998:30;31995:50;;;32041:1;32038;32031:12;31995:50;32063:22;;:::i;:::-;32054:31;;32122:9;32109:23;32141:33;32166:7;32141:33;:::i;:::-;32183:22;;32278:2;32263:18;;;32250:32;32298:14;;;32291:31;;;;32190:5;31917:411;-1:-1:-1;31917:411:89:o;32333:774::-;32387:5;32440:3;32433:4;32425:6;32421:17;32417:27;32407:55;;32458:1;32455;32448:12;32407:55;32498:6;32485:20;32525:94;32541:77;32611:6;32541:77;:::i;32525:94::-;32643:3;32667:6;32662:3;32655:19;32699:4;32694:3;32690:14;32683:21;;32760:4;32750:6;32747:1;32743:14;32735:6;32731:27;32727:38;32713:52;;32788:3;32780:6;32777:15;32774:35;;;32805:1;32802;32795:12;32774:35;32841:4;32833:6;32829:17;32855:221;32871:6;32866:3;32863:15;32855:221;;;32953:3;32940:17;32970:31;32995:5;32970:31;:::i;:::-;33014:18;;33061:4;33052:14;;;;32888;32855:221;;33112:732;33177:5;33230:3;33223:4;33215:6;33211:17;33207:27;33197:55;;33248:1;33245;33238:12;33197:55;33288:6;33275:20;33315:94;33331:77;33401:6;33331:77;:::i;33315:94::-;33433:3;33457:6;33452:3;33445:19;33489:4;33484:3;33480:14;33473:21;;33550:4;33540:6;33537:1;33533:14;33525:6;33521:27;33517:38;33503:52;;33578:3;33570:6;33567:15;33564:35;;;33595:1;33592;33585:12;33564:35;33631:4;33623:6;33619:17;33645:168;33661:6;33656:3;33653:15;33645:168;;;33729:39;33764:3;33759;33729:39;:::i;:::-;33717:52;;33798:4;33789:14;;;;33687:4;33678:14;33645:168;;33849:156;33915:20;;33975:4;33964:16;;33954:27;;33944:55;;33995:1;33992;33985:12;34010:1662;34073:5;34126:3;34119:4;34111:6;34107:17;34103:27;34093:55;;34144:1;34141;34134:12;34093:55;34184:6;34171:20;34211:94;34227:77;34297:6;34227:77;:::i;34211:94::-;34329:3;34353:6;34348:3;34341:19;34385:4;34380:3;34376:14;34369:21;;34446:4;34436:6;34433:1;34429:14;34421:6;34417:27;34413:38;34399:52;;34474:3;34466:6;34463:15;34460:35;;;34491:1;34488;34481:12;34460:35;34527:4;34519:6;34515:17;34541:1100;34557:6;34552:3;34549:15;34541:1100;;;34645:3;34632:17;-1:-1:-1;;;;;34668:11:89;34665:35;34662:55;;;34713:1;34710;34703:12;34662:55;34740:24;;34812:4;34788:12;;;-1:-1:-1;;34784:26:89;34780:37;34777:57;;;34830:1;34827;34820:12;34777:57;34860:22;;:::i;:::-;34932:4;34928:2;34924:13;34911:27;-1:-1:-1;;;;;34957:8:89;34954:32;34951:52;;;34999:1;34996;34989:12;34951:52;35030:51;35077:3;35070:4;35059:8;35055:2;35051:17;35047:28;35030:51;:::i;:::-;35023:5;35016:66;;35132:2;35128;35124:11;35111:25;-1:-1:-1;;;;;35155:8:89;35152:32;35149:52;;;35197:1;35194;35187:12;35149:52;35239:51;35286:3;35279:4;35268:8;35264:2;35260:17;35256:28;35239:51;:::i;:::-;35232:4;35225:5;35221:16;35214:77;;35327:29;35352:2;35348;35344:11;35327:29;:::i;:::-;35322:2;35315:5;35311:14;35304:53;35407:4;35403:2;35399:13;35386:27;-1:-1:-1;;;;;35432:8:89;35429:32;35426:52;;;35474:1;35471;35464:12;35426:52;35514:51;35561:3;35554:4;35543:8;35539:2;35535:17;35531:28;35514:51;:::i;:::-;35509:2;35498:14;;35491:75;-1:-1:-1;35579:18:89;;-1:-1:-1;35626:4:89;35617:14;;;;34574;34541:1100;;35677:526;35733:5;35781:4;35769:9;35764:3;35760:19;35756:30;35753:50;;;35799:1;35796;35789:12;35753:50;35821:22;;:::i;:::-;35812:31;;35880:9;35867:23;35899:33;35924:7;35899:33;:::i;:::-;35941:22;;36036:2;36021:18;;;36008:32;36056:14;;;36049:31;36153:2;36138:18;;;36125:32;36173:14;;;36166:31;;;;35948:5;35677:526;-1:-1:-1;35677:526:89:o;36208:731::-;36271:5;36324:3;36317:4;36309:6;36305:17;36301:27;36291:55;;36342:1;36339;36332:12;36291:55;36382:6;36369:20;36409:94;36425:77;36495:6;36425:77;:::i;36409:94::-;36527:3;36551:6;36546:3;36539:19;36583:4;36578:3;36574:14;36567:21;;36647:4;36639;36631:6;36627:17;36619:6;36615:30;36611:41;36597:55;;36675:3;36667:6;36664:15;36661:35;;;36692:1;36689;36682:12;36661:35;36728:4;36720:6;36716:17;36742:166;36758:6;36753:3;36750:15;36742:166;;;36826:37;36859:3;36854;36826:37;:::i;:::-;36814:50;;36893:4;36884:14;;;;36784:4;36775:14;36742:166;;36944:1801;37005:5;37058:3;37051:4;37043:6;37039:17;37035:27;37025:55;;37076:1;37073;37066:12;37025:55;37116:6;37103:20;37143:94;37159:77;37229:6;37159:77;:::i;37143:94::-;37261:3;37285:6;37280:3;37273:19;37317:4;37312:3;37308:14;37301:21;;37378:4;37368:6;37365:1;37361:14;37353:6;37349:27;37345:38;37331:52;;37406:3;37398:6;37395:15;37392:35;;;37423:1;37420;37413:12;37392:35;37459:4;37451:6;37447:17;37473:1241;37489:6;37484:3;37481:15;37473:1241;;;37577:3;37564:17;-1:-1:-1;;;;;37600:11:89;37597:35;37594:55;;;37645:1;37642;37635:12;37594:55;37672:24;;37744:4;37720:12;;;-1:-1:-1;;37716:26:89;37712:37;37709:57;;;37762:1;37759;37752:12;37709:57;37792:22;;:::i;:::-;37864:4;37860:2;37856:13;37843:27;-1:-1:-1;;;;;37889:8:89;37886:32;37883:52;;;37931:1;37928;37921:12;37883:52;37962:51;38009:3;38002:4;37991:8;37987:2;37983:17;37979:28;37962:51;:::i;:::-;37955:5;37948:66;;38064:2;38060;38056:11;38043:25;-1:-1:-1;;;;;38087:8:89;38084:32;38081:52;;;38129:1;38126;38119:12;38081:52;38171:51;38218:3;38211:4;38200:8;38196:2;38192:17;38188:28;38171:51;:::i;:::-;38164:4;38157:5;38153:16;38146:77;;38273:2;38269;38265:11;38252:25;-1:-1:-1;;;;;38296:8:89;38293:32;38290:52;;;38338:1;38335;38328:12;38290:52;38378:51;38425:3;38418:4;38407:8;38403:2;38399:17;38395:28;38378:51;:::i;:::-;38373:2;38366:5;38362:14;38355:75;;38480:4;38476:2;38472:13;38459:27;-1:-1:-1;;;;;38505:8:89;38502:32;38499:52;;;38547:1;38544;38537:12;38499:52;38587:51;38634:3;38627:4;38616:8;38612:2;38608:17;38604:28;38587:51;:::i;:::-;38582:2;38571:14;;38564:75;-1:-1:-1;38652:18:89;;-1:-1:-1;38699:4:89;38690:14;;;;37506;37473:1241;;38750:2837;38811:5;38859:6;38847:9;38842:3;38838:19;38834:32;38831:52;;;38879:1;38876;38869:12;38831:52;38901:22;;:::i;:::-;38892:31;;38946:28;38964:9;38946:28;:::i;:::-;38939:5;38932:43;39007:37;39040:2;39029:9;39025:18;39007:37;:::i;:::-;39002:2;38991:14;;38984:61;39118:2;39103:18;;;39090:32;39138:14;;;39131:31;39235:2;39220:18;;;39207:32;39255:14;;;39248:31;39312:39;39346:3;39331:19;;39312:39;:::i;:::-;39306:3;39299:5;39295:15;39288:64;39403:3;39392:9;39388:19;39375:33;-1:-1:-1;;;;;39423:6:89;39420:30;39417:50;;;39463:1;39460;39453:12;39417:50;39500:45;39541:3;39532:6;39521:9;39517:22;39500:45;:::i;:::-;39494:3;39487:5;39483:15;39476:70;;39599:3;39588:9;39584:19;39571:33;-1:-1:-1;;;;;39619:8:89;39616:32;39613:52;;;39661:1;39658;39651:12;39613:52;39698:47;39741:3;39730:8;39719:9;39715:24;39698:47;:::i;:::-;39692:3;39685:5;39681:15;39674:72;;39799:3;39788:9;39784:19;39771:33;-1:-1:-1;;;;;39819:8:89;39816:32;39813:52;;;39861:1;39858;39851:12;39813:52;39898:47;39941:3;39930:8;39919:9;39915:24;39898:47;:::i;:::-;39892:3;39885:5;39881:15;39874:72;;39979:55;40030:3;40024;40013:9;40009:19;39979:55;:::i;:::-;39973:3;39966:5;39962:15;39955:80;40088:3;40077:9;40073:19;40060:33;-1:-1:-1;;;;;40108:8:89;40105:32;40102:52;;;40150:1;40147;40140:12;40102:52;40190:59;40245:3;40234:8;40223:9;40219:24;40190:59;:::i;:::-;40181:6;40174:5;40170:18;40163:87;;40303:3;40292:9;40288:19;40275:33;-1:-1:-1;;;;;40323:8:89;40320:32;40317:52;;;40365:1;40362;40355:12;40317:52;40402:70;40468:3;40457:8;40446:9;40442:24;40402:70;:::i;:::-;40396:3;40389:5;40385:15;40378:95;;40526:3;40515:9;40511:19;40498:33;-1:-1:-1;;;;;40546:8:89;40543:32;40540:52;;;40588:1;40585;40578:12;40540:52;40625:70;40691:3;40680:8;40669:9;40665:24;40625:70;:::i;:::-;40619:3;40612:5;40608:15;40601:95;;40749:3;40738:9;40734:19;40721:33;-1:-1:-1;;;;;40769:8:89;40766:32;40763:52;;;40811:1;40808;40801:12;40763:52;40848:68;40912:3;40901:8;40890:9;40886:24;40848:68;:::i;:::-;40842:3;40835:5;40831:15;40824:93;;40970:3;40959:9;40955:19;40942:33;-1:-1:-1;;;;;40990:8:89;40987:32;40984:52;;;41032:1;41029;41022:12;40984:52;41069:68;41133:3;41122:8;41111:9;41107:24;41069:68;:::i;:::-;41063:3;41056:5;41052:15;41045:93;;41191:3;41180:9;41176:19;41163:33;-1:-1:-1;;;;;41211:8:89;41208:32;41205:52;;;41253:1;41250;41243:12;41205:52;41290:68;41354:3;41343:8;41332:9;41328:24;41290:68;:::i;:::-;41284:3;41277:5;41273:15;41266:93;;41412:6;41401:9;41397:22;41384:36;-1:-1:-1;;;;;41435:8:89;41432:32;41429:52;;;41477:1;41474;41467:12;41429:52;41514:66;41576:3;41565:8;41554:9;41550:24;41514:66;:::i;:::-;41508:3;41501:5;41497:15;41490:91;;38750:2837;;;;:::o;41592:216::-;41710:9;41747:55;41787:14;41780:5;41747:55;:::i;41813:545::-;41906:4;41912:6;41972:11;41959:25;42066:2;42062:7;42051:8;42035:14;42031:29;42027:43;42007:18;42003:68;41993:96;;42085:1;42082;42075:12;41993:96;42112:33;;42164:20;;;-1:-1:-1;;;;;;42196:30:89;;42193:50;;;42239:1;42236;42229:12;42193:50;42272:4;42260:17;;-1:-1:-1;42323:1:89;42319:14;;;42303;42299:35;42289:46;;42286:66;;;42348:1;42345;42338:12;42363:127;42424:10;42419:3;42415:20;42412:1;42405:31;42455:4;42452:1;42445:15;42479:4;42476:1;42469:15;42495:501;42554:5;42561:6;42621:3;42608:17;42707:2;42703:7;42692:8;42676:14;42672:29;42668:43;42648:18;42644:68;42634:96;;42726:1;42723;42716:12;42634:96;42754:33;;42858:4;42845:18;;;-1:-1:-1;42806:21:89;;-1:-1:-1;;;;;;42875:30:89;;42872:50;;;42918:1;42915;42908:12;42872:50;42965:6;42949:14;42945:27;42938:5;42934:39;42931:59;;;42986:1;42983;42976:12;43001:326;43103:5;43090:19;43118:33;43143:7;43118:33;:::i;:::-;-1:-1:-1;;;;;43172:33:89;43160:46;;43275:4;43264:16;;;43251:30;43297:14;;43290:31;43001:326::o;43332:520::-;43402:5;43409:6;43469:3;43456:17;43555:2;43551:7;43540:8;43524:14;43520:29;43516:43;43496:18;43492:68;43482:96;;43574:1;43571;43564:12;43482:96;43602:33;;43706:4;43693:18;;;-1:-1:-1;43654:21:89;;-1:-1:-1;;;;;;43723:30:89;;43720:50;;;43766:1;43763;43756:12;43720:50;43820:6;43817:1;43813:14;43797;43793:35;43786:5;43782:47;43779:67;;;43842:1;43839;43832:12;43857:505;43957:6;43952:3;43945:19;43989:4;43984:3;43980:14;43973:21;;43927:3;44017:5;44040:1;44050:287;44064:6;44061:1;44058:13;44050:287;;;44141:6;44128:20;44161:33;44186:7;44161:33;:::i;:::-;-1:-1:-1;;;;;44219:33:89;44207:46;;44282:4;44273:14;;;;44310:17;;;;;44249:1;44079:9;44050:287;;44367:540;44457:5;44464:6;44524:3;44511:17;44610:2;44606:7;44595:8;44579:14;44575:29;44571:43;44551:18;44547:68;44537:96;;44629:1;44626;44619:12;44537:96;44657:33;;44761:4;44748:18;;;-1:-1:-1;44709:21:89;;-1:-1:-1;;;;;;44778:30:89;;44775:50;;;44821:1;44818;44811:12;44775:50;44875:6;44872:1;44868:14;44852;44848:35;44841:5;44837:47;44834:67;;;44897:1;44894;44887:12;44912:436;45032:6;45027:3;45020:19;45064:4;45059:3;45055:14;45048:21;;45002:3;45092:5;45115:1;45125:198;45139:6;45136:1;45133:13;45125:198;;;45188:51;45235:3;45227:6;45188:51;:::i;:::-;45268:4;45259:14;;;;45296:17;;;;;45161:1;45154:9;45125:198;;45353:295;45422:5;45481:3;45468:17;45567:3;45563:8;45552;45536:14;45532:29;45528:44;45508:18;45504:69;45494:97;;45587:1;45584;45577:12;45494:97;45609:33;;;;45353:295;-1:-1:-1;;45353:295:89:o;45653:1373::-;45741:3;45772;45796:6;45791:3;45784:19;45828:4;45823:3;45819:14;45812:21;;45886:4;45876:6;45873:1;45869:14;45862:5;45858:26;45854:37;45914:5;45937:1;45947:1053;45961:6;45958:1;45955:13;45947:1053;;;46026:16;;;-1:-1:-1;;46022:30:89;46010:43;;46076:56;46125:6;46118:5;46076:56;:::i;:::-;46179:39;46215:2;46211;46179:39;:::i;:::-;46244:4;46238;46231:18;46276:70;46340:4;46334;46330:15;46316:12;46302;46276:70;:::i;:::-;46262:84;;;46397:50;46441:4;46437:2;46433:13;46429:2;46397:50;:::i;:::-;46496:4;46488:6;46484:17;46477:4;46471;46467:15;46460:42;46529:65;46587:6;46571:14;46555;46529:65;:::i;:::-;46515:79;;;;46668:4;46635:31;46660:4;46656:2;46652:13;46635:31;:::i;:::-;46631:42;46624:4;46618;46614:15;46607:67;46725:50;46769:4;46765:2;46761:13;46757:2;46725:50;:::i;:::-;46687:88;;46824:4;46816:6;46812:17;46805:4;46799;46795:15;46788:42;46851:65;46909:6;46893:14;46877;46851:65;:::i;:::-;46951:4;46976:14;;;;46843:73;;-1:-1:-1;46939:17:89;;;;;-1:-1:-1;;;45983:1:89;45976:9;45947:1053;;47031:541;47119:5;47126:6;47186:3;47173:17;47272:2;47268:7;47257:8;47241:14;47237:29;47233:43;47213:18;47209:68;47199:96;;47291:1;47288;47281:12;47199:96;47319:33;;47423:4;47410:18;;;-1:-1:-1;47371:21:89;;-1:-1:-1;;;;;;47440:30:89;;47437:50;;;47483:1;47480;47473:12;47437:50;47542:4;47534:6;47530:17;47514:14;47510:38;47503:5;47499:50;47496:70;;;47562:1;47559;47552:12;47577:779;47695:6;47690:3;47683:19;47727:4;47722:3;47718:14;47711:21;;47665:3;47755:5;47778:1;47788:543;47802:6;47799:1;47796:13;47788:543;;;47879:6;47866:20;47899:33;47924:7;47899:33;:::i;:::-;-1:-1:-1;;;;;47957:33:89;47945:46;;48069:4;48057:17;;;48044:31;48095:14;;;48088:31;48197:4;48185:17;;;48172:31;48223:14;;;48216:31;48276:4;48267:14;;;;48304:17;;;;47987:1;47817:9;47788:543;;48361:1539;48447:3;48478;48502:6;48497:3;48490:19;48534:4;48529:3;48525:14;48518:21;;48592:4;48582:6;48579:1;48575:14;48568:5;48564:26;48560:37;48620:5;48643:1;48653:1221;48667:6;48664:1;48661:13;48653:1221;;;48732:16;;;-1:-1:-1;;48728:30:89;48716:43;;48782:56;48831:6;48824:5;48782:56;:::i;:::-;48885:39;48921:2;48917;48885:39;:::i;:::-;48950:4;48944;48937:18;48982:70;49046:4;49040;49036:15;49022:12;49008;48982:70;:::i;:::-;48968:84;;;49103:50;49147:4;49143:2;49139:13;49135:2;49103:50;:::i;:::-;49202:4;49194:6;49190:17;49183:4;49177;49173:15;49166:42;49235:65;49293:6;49277:14;49261;49235:65;:::i;:::-;49221:79;;;;49351:50;49395:4;49391:2;49387:13;49383:2;49351:50;:::i;:::-;49450:4;49442:6;49438:17;49431:4;49425;49421:15;49414:42;49483:65;49541:6;49525:14;49509;49483:65;:::i;:::-;49469:79;;;;49599:50;49643:4;49639:2;49635:13;49631:2;49599:50;:::i;:::-;49561:88;;49698:4;49690:6;49686:17;49679:4;49673;49669:15;49662:42;49725:65;49783:6;49767:14;49751;49725:65;:::i;:::-;49825:4;49850:14;;;;49717:73;;-1:-1:-1;49813:17:89;;;;;-1:-1:-1;;;48689:1:89;48682:9;48653:1221;;49905:4023;50158:2;50147:9;50140:21;50170:64;50230:2;50219:9;50215:18;50188:25;50206:6;50188:25;:::i;:::-;-1:-1:-1;;;;;2346:30:89;2334:43;;2281:102;50170:64;50121:4;50263:36;50293:4;50285:6;50281:17;50263:36;:::i;:::-;-1:-1:-1;;;;;2346:30:89;;50355:2;50340:18;;2334:43;-1:-1:-1;50425:2:89;50413:15;;50400:29;50460:3;50445:19;;;50438:34;;;;50542:2;50530:15;;50517:29;50577:3;50562:19;;50555:36;50622;;50641:16;;50622:36;:::i;:::-;-1:-1:-1;;;;;2454:31:89;50717:3;50702:19;;2442:44;50767:57;50819:3;50807:16;;50811:6;50767:57;:::i;:::-;50861:6;50855:3;50844:9;50840:19;50833:35;50891:76;50962:3;50951:9;50947:19;50933:12;50917:14;50891:76;:::i;:::-;50877:90;;;51014:57;51066:3;51058:6;51054:16;51046:6;51014:57;:::i;:::-;51112:22;;;-1:-1:-1;;51108:36:89;51102:3;51087:19;;51080:65;51168;51116:6;51210:14;51194;51168:65;:::i;:::-;51154:79;;;;51280:57;51332:3;51324:6;51320:16;51312:6;51280:57;:::i;:::-;51378:22;;;-1:-1:-1;;51374:36:89;51368:3;51353:19;;51346:65;51434;51382:6;51476:14;51460;51434:65;:::i;:::-;51420:79;;;;51508:77;51580:3;51569:9;51565:19;51559:3;51551:6;51547:16;51508:77;:::i;:::-;51632:68;51695:3;51687:6;51683:16;51675:6;51632:68;:::i;:::-;51741:22;;;-1:-1:-1;;51737:36:89;51731:3;51716:19;;51709:65;51797:77;51745:6;51851:14;51835;51797:77;:::i;:::-;51783:91;;;;51921;52004:6;51996;51992:19;51984:6;51921:91;:::i;:::-;52053:22;;;-1:-1:-1;;52049:36:89;52043:3;52028:19;;52021:65;52109:97;52057:6;52183:14;52167;52109:97;:::i;:::-;52095:111;;;;52253:88;52336:3;52328:6;52324:16;52316:6;52253:88;:::i;:::-;52382:22;;;-1:-1:-1;;52378:36:89;52372:3;52357:19;;52350:65;52438:97;52386:6;52512:14;52496;52438:97;:::i;:::-;52424:111;;;;52582:68;52645:3;52637:6;52633:16;52625:6;52582:68;:::i;:::-;52691:22;;;-1:-1:-1;;52687:36:89;52681:3;52666:19;;52659:65;52747:95;52695:6;52819:14;52803;52747:95;:::i;:::-;52733:109;;;;52889:86;52970:3;52962:6;52958:16;52950:6;52889:86;:::i;:::-;53016:22;;;-1:-1:-1;;53012:36:89;53006:3;52991:19;;52984:65;53072:95;53020:6;53144:14;53128;53072:95;:::i;:::-;53058:109;;;;53215:86;53296:3;53288:6;53284:16;53276:6;53215:86;:::i;:::-;53345:22;;;-1:-1:-1;;53341:36:89;53332:6;53317:22;;53310:68;53401:96;53349:6;53474:14;53457:15;53401:96;:::i;:::-;53387:110;;;;53545:68;53608:3;53600:6;53596:16;53588:6;53545:68;:::i;:::-;53654:22;;;-1:-1:-1;;53650:36:89;53644:3;53629:19;;53622:65;53707:94;53658:6;53778:14;53761:15;53707:94;:::i;:::-;53696:105;;;;53848:9;53843:3;53839:19;53832:4;53821:9;53817:20;53810:49;53876:46;53918:3;53910:6;53902;53876:46;:::i;54382:380::-;54461:1;54457:12;;;;54504;;;54525:61;;54579:4;54571:6;54567:17;54557:27;;54525:61;54632:2;54624:6;54621:14;54601:18;54598:38;54595:161;;54678:10;54673:3;54669:20;54666:1;54659:31;54713:4;54710:1;54703:15;54741:4;54738:1;54731:15;54767:739;54817:3;54858:5;54852:12;54887:36;54913:9;54887:36;:::i;:::-;54932:19;;;54982:1;54967:17;;54993:150;;;;55157:1;55152:348;;;;54960:540;;54993:150;55056:3;55052:8;55041:9;55037:24;55030:4;55025:3;55021:14;55014:48;55128:4;55116:6;55109:14;55102:22;55099:1;55095:30;55090:3;55086:40;55082:51;55075:58;;54993:150;;55152:348;55183:5;55180:1;55173:16;55230:4;55227:1;55217:18;55257:1;55271:177;55285:6;55282:1;55279:13;55271:177;;;55382:7;55376:14;55369:4;55365:1;55360:3;55356:11;55352:22;55345:46;55432:1;55423:7;55419:15;55408:26;;55307:4;55304:1;55300:12;55295:17;;55271:177;;;55472:11;;55485:4;55468:22;;-1:-1:-1;;54960:540:89;;;;54767:739;;;;:::o;55511:612::-;55571:3;55602;55634:5;55628:12;55661:6;55656:3;55649:19;55693:4;55688:3;55684:14;55677:21;;55751:4;55741:6;55738:1;55734:14;55727:5;55723:26;55719:37;55775:5;55772:1;55765:16;55817:4;55814:1;55804:18;55840:1;55850:247;55864:6;55861:1;55858:13;55850:247;;;55929:16;;;-1:-1:-1;;55925:30:89;55913:43;;55977:39;55933:4;56003:6;55977:39;:::i;:::-;56082:4;56073:14;;;;;55969:47;-1:-1:-1;56051:1:89;56039:14;;;;55879:9;55850:247;;56128:550;56200:3;56238:5;56232:12;56265:6;56260:3;56253:19;56297:4;56292:3;56288:14;56281:21;;56321:5;56318:1;56311:16;56363:4;56360:1;56350:18;56386:1;56396:257;56410:6;56407:1;56404:13;56396:257;;;56475:13;;-1:-1:-1;;;;;56471:39:89;56459:52;;56507:1;56553:14;;;56547:21;56540:4;56531:14;;56524:45;56598:4;56589:14;;;;56638:4;56626:17;;;;56425:9;56396:257;;56683:609;56753:3;56791:5;56785:12;56818:6;56813:3;56806:19;56850:4;56845:3;56841:14;56834:21;;56874:5;56871:1;56864:16;56916:4;56913:1;56903:18;56939:1;56949:318;56963:6;56960:1;56957:13;56949:318;;;57028:13;;-1:-1:-1;;;;;57024:39:89;57012:52;;57060:1;57106:14;;;57100:21;57093:4;57084:14;;57077:45;57176:4;57164:17;;57158:24;57151:4;57142:14;;57135:48;57212:4;57203:14;;;;57252:4;57240:17;;;;56978:9;56949:318;;57297:2325;57531:4;57579:2;57568:9;57564:18;57609:2;57598:9;57591:21;57632:6;57667;57661:13;57698:6;57690;57683:22;57736:2;57725:9;57721:18;57714:25;;57798:2;57788:6;57785:1;57781:14;57770:9;57766:30;57762:39;57748:53;;57820:6;57817:1;57810:17;57863:2;57860:1;57850:16;57884:1;57894:1699;57908:6;57905:1;57902:13;57894:1699;;;58001:2;57997:7;57985:9;57977:6;57973:22;57969:36;57964:3;57957:49;58019:82;58094:6;58037:55;58084:6;58078:13;-1:-1:-1;;;;;54194:35:89;;54100:135;58019:82;58156:1;58144:14;;58138:21;58133:2;58121:15;;58114:46;58253:4;58241:17;;58235:24;-1:-1:-1;;;;;54335:36:89;58318:2;58306:15;;2442:44;58361:6;58354:4;58342:17;;58335:33;;;58395:65;;58440:19;;58433:4;58421:17;;58395:65;:::i;:::-;58511:6;58503;58499:19;58492:4;58484:6;58480:17;58473:46;58546:52;58591:6;58584:4;58576:6;58572:17;58546:52;:::i;:::-;58532:66;;58655:1;58647:6;58643:14;58637:21;58630:4;58622:6;58618:17;58611:48;58716:4;58708:6;58704:17;58698:24;58691:4;58683:6;58679:17;58672:51;58774:6;58766;58762:19;58755:4;58747:6;58743:17;58736:46;58809:62;58864:6;58857:4;58849:6;58845:17;58809:62;:::i;:::-;58795:76;;58924:6;58916;58912:19;58903:6;58895;58891:19;58884:48;58959:74;59026:6;59019:4;59011:6;59007:17;58959:74;:::i;:::-;58945:88;;59086:6;59078;59074:19;59065:6;59057;59053:19;59046:48;59121:74;59188:6;59181:4;59173:6;59169:17;59121:74;:::i;:::-;59107:88;;59248:6;59240;59236:19;59227:6;59219;59215:19;59208:48;59283:72;59348:6;59341:4;59333:6;59329:17;59283:72;:::i;:::-;59269:86;;59408:6;59400;59396:19;59387:6;59379;59375:19;59368:48;59439:72;59504:6;59497:4;59489:6;59485:17;59439:72;:::i;:::-;59429:82;-1:-1:-1;;59580:2:89;59571:12;;;;;59546:4;59534:17;;;;;57930:1;57923:9;57894:1699;;;-1:-1:-1;59610:6:89;;57297:2325;-1:-1:-1;;;;;;57297:2325:89:o;59627:299::-;59810:6;59803:14;59796:22;59785:9;59778:41;59855:2;59850;59839:9;59835:18;59828:30;59759:4;59875:45;59916:2;59905:9;59901:18;59893:6;59875:45;:::i;:::-;59867:53;59627:299;-1:-1:-1;;;;59627:299:89:o;60608:127::-;60669:10;60664:3;60660:20;60657:1;60650:31;60700:4;60697:1;60690:15;60724:4;60721:1;60714:15;60740:128;60807:9;;;60828:11;;;60825:37;;;60842:18;;:::i;60873:522::-;60951:4;60957:6;61017:11;61004:25;61111:2;61107:7;61096:8;61080:14;61076:29;61072:43;61052:18;61048:68;61038:96;;61130:1;61127;61120:12;61038:96;61157:33;;61209:20;;;-1:-1:-1;;;;;;61241:30:89;;61238:50;;;61284:1;61281;61274:12;61238:50;61317:4;61305:17;;-1:-1:-1;61348:14:89;61344:27;;;61334:38;;61331:58;;;61385:1;61382;61375:12;61400:271;61583:6;61575;61570:3;61557:33;61539:3;61609:16;;61634:13;;;61609:16;61400:271;-1:-1:-1;61400:271:89:o;62202:405::-;62405:2;62394:9;62387:21;62368:4;62431:45;62472:2;62461:9;62457:18;62449:6;62431:45;:::i;:::-;62524:9;62516:6;62512:22;62507:2;62496:9;62492:18;62485:50;62552:49;62594:6;62586;62578;62552:49;:::i;62612:289::-;62787:6;62776:9;62769:25;62830:2;62825;62814:9;62810:18;62803:30;62750:4;62850:45;62891:2;62880:9;62876:18;62868:6;62850:45;:::i;62906:518::-;63008:2;63003:3;63000:11;62997:421;;;63044:5;63041:1;63034:16;63088:4;63085:1;63075:18;63158:2;63146:10;63142:19;63139:1;63135:27;63129:4;63125:38;63194:4;63182:10;63179:20;63176:47;;;-1:-1:-1;63217:4:89;63176:47;63272:2;63267:3;63263:12;63260:1;63256:20;63250:4;63246:31;63236:41;;63327:81;63345:2;63338:5;63335:13;63327:81;;;63404:1;63390:16;;63371:1;63360:13;63327:81;;63600:1340;63726:3;63720:10;-1:-1:-1;;;;;63745:6:89;63742:30;63739:56;;;63775:18;;:::i;:::-;63804:97;63894:6;63854:38;63886:4;63880:11;63854:38;:::i;:::-;63848:4;63804:97;:::i;:::-;63950:4;63981:2;63970:14;;63998:1;63993:690;;;;64727:1;64744:6;64741:89;;;-1:-1:-1;64796:19:89;;;64790:26;64741:89;-1:-1:-1;;63557:1:89;63553:11;;;63549:24;63545:29;63535:40;63581:1;63577:11;;;63532:57;64843:81;;63963:971;;63993:690;54047:1;54040:14;;;54084:4;54071:18;;-1:-1:-1;;64029:20:89;;;64188:222;64202:7;64199:1;64196:14;64188:222;;;64284:19;;;64278:26;64263:42;;64391:4;64376:20;;;;64344:1;64332:14;;;;64218:12;64188:222;;;64192:3;64438:6;64429:7;64426:19;64423:201;;;64499:19;;;64493:26;-1:-1:-1;;64582:1:89;64578:14;;;64594:3;64574:24;64570:37;64566:42;64551:58;64536:74;;64423:201;-1:-1:-1;;;;64670:1:89;64654:14;;;64650:22;64637:36;;-1:-1:-1;63600:1340:89:o;64945:2084::-;-1:-1:-1;;;;;2346:30:89;;2334:43;;65978:6;65973:2;65962:9;65958:18;65951:34;65994:46;66036:2;66025:9;66021:18;66013:6;-1:-1:-1;;;;;2454:31:89;2442:44;;2388:104;65994:46;66076:3;66071:2;66060:9;66056:18;66049:31;65887:4;66103:46;66144:3;66133:9;66129:19;66121:6;66103:46;:::i;:::-;66198:9;66190:6;66186:22;66180:3;66169:9;66165:19;66158:51;66232:33;66258:6;66250;66232:33;:::i;:::-;66218:47;;66302:6;66296:3;66285:9;66281:19;66274:35;66346:6;66340:3;66329:9;66325:19;66318:35;66402:9;66394:6;66390:22;66384:3;66373:9;66369:19;66362:51;66436:43;66472:6;66464;66436:43;:::i;:::-;66422:57;;66528:9;66520:6;66516:22;66510:3;66499:9;66495:19;66488:51;66562:55;66610:6;66602;66562:55;:::i;:::-;66548:69;;66666:9;66658:6;66654:22;66648:3;66637:9;66633:19;66626:51;66700:55;66748:6;66740;66700:55;:::i;:::-;66686:69;;66804:9;66796:6;66792:22;66786:3;66775:9;66771:19;66764:51;66838:54;66885:6;66876:7;66838:54;:::i;:::-;66824:68;;66941:9;66933:6;66929:22;66923:3;66912:9;66908:19;66901:51;66969:54;67016:6;67007:7;66969:54;:::i;:::-;66961:62;64945:2084;-1:-1:-1;;;;;;;;;;;;;;;64945:2084:89:o;67497:1209::-;67595:6;67655:3;67643:9;67634:7;67630:23;67626:33;67671:2;67668:22;;;67686:1;67683;67676:12;67668:22;-1:-1:-1;67755:2:89;67749:9;67797:3;67785:16;;-1:-1:-1;;;;;67816:34:89;;67852:22;;;67813:62;67810:88;;;67878:18;;:::i;:::-;67914:2;67907:22;67970:16;;67995:21;;68061:2;68046:18;;68040:25;68074:32;68040:25;68074:32;:::i;:::-;68134:2;68122:15;;68115:32;68192:2;68177:18;;68171:25;68205:32;68171:25;68205:32;:::i;:::-;68265:2;68253:15;;68246:32;68323:2;68308:18;;68302:25;68336:32;68302:25;68336:32;:::i;:::-;68396:2;68384:15;;68377:32;68454:3;68439:19;;68433:26;68468:32;68433:26;68468:32;:::i;:::-;68528:3;68516:16;;68509:33;68587:3;68572:19;;68566:26;68601:32;68566:26;68601:32;:::i;:::-;68661:3;68649:16;;68642:33;68653:6;67497:1209;-1:-1:-1;;;67497:1209:89:o;69071:209::-;69103:1;69129;69119:132;;69173:10;69168:3;69164:20;69161:1;69154:31;69208:4;69205:1;69198:15;69236:4;69233:1;69226:15;69119:132;-1:-1:-1;69265:9:89;;69071:209::o;69661:245::-;69728:6;69781:2;69769:9;69760:7;69756:23;69752:32;69749:52;;;69797:1;69794;69787:12;69749:52;69829:9;69823:16;69848:28;69870:5;69848:28;:::i;69911:266::-;70096:2;70085:9;70078:21;70059:4;70116:55;70167:2;70156:9;70152:18;70144:6;70116:55;:::i;70182:260::-;70363:2;70352:9;70345:21;70326:4;70383:53;70432:2;70421:9;70417:18;70409:6;70383:53;:::i;70652:230::-;70722:6;70775:2;70763:9;70754:7;70750:23;70746:32;70743:52;;;70791:1;70788;70781:12;70743:52;-1:-1:-1;70836:16:89;;70652:230;-1:-1:-1;70652:230:89:o;70887:577::-;71012:4;71018:6;71078:11;71065:25;71172:2;71168:7;71157:8;71141:14;71137:29;71133:43;71113:18;71109:68;71099:96;;71191:1;71188;71181:12;71099:96;71218:33;;71270:20;;;-1:-1:-1;;;;;;71302:30:89;;71299:50;;;71345:1;71342;71335:12;71299:50;71378:4;71366:17;;-1:-1:-1;71429:1:89;71425:14;;;71409;71405:35;71395:46;;71392:66;;;71454:1;71451;71444:12;71469:236;71558:6;71611:2;71599:9;71590:7;71586:23;71582:32;71579:52;;;71627:1;71624;71617:12;71579:52;71650:49;71691:7;71680:9;71650:49;:::i;71710:125::-;71775:9;;;71796:10;;;71793:36;;;71809:18;;:::i;71840:578::-;71963:4;71969:6;72029:11;72016:25;72123:2;72119:7;72108:8;72092:14;72088:29;72084:43;72064:18;72060:68;72050:96;;72142:1;72139;72132:12;72050:96;72169:33;;72221:20;;;-1:-1:-1;;;;;;72253:30:89;;72250:50;;;72296:1;72293;72286:12;72250:50;72329:4;72317:17;;-1:-1:-1;72388:4:89;72376:17;;72360:14;72356:38;72346:49;;72343:69;;;72408:1;72405;72398:12;72423:232;72510:6;72563:2;72551:9;72542:7;72538:23;72534:32;72531:52;;;72579:1;72576;72569:12;72531:52;72602:47;72641:7;72630:9;72602:47;:::i;72895:245::-;72953:6;73006:2;72994:9;72985:7;72981:23;72977:32;72974:52;;;73022:1;73019;73012:12;72974:52;73061:9;73048:23;73080:30;73104:5;73080:30;:::i;73145:746::-;73334:2;73323:9;73316:21;-1:-1:-1;;;;;73383:6:89;73377:13;73373:38;73368:2;73357:9;73353:18;73346:66;73466:2;73458:6;73454:15;73448:22;73443:2;73432:9;73428:18;73421:50;73525:2;73517:6;73513:15;73507:22;73502:2;73491:9;73487:18;73480:50;73297:4;73577:2;73569:6;73565:15;73559:22;73618:4;73612:3;73601:9;73597:19;73590:33;73646:52;73693:3;73682:9;73678:19;73664:12;73646:52;:::i;:::-;73632:66;;73747:3;73739:6;73735:16;73729:23;73822:2;73818:7;73806:9;73798:6;73794:22;73790:36;73783:4;73772:9;73768:20;73761:66;73844:41;73878:6;73862:14;73844:41;:::i;74175:856::-;74228:5;74281:3;74274:4;74266:6;74262:17;74258:27;74248:55;;74299:1;74296;74289:12;74248:55;74339:6;74326:20;74366:94;74382:77;74452:6;74382:77;:::i;74366:94::-;74484:3;74508:6;74503:3;74496:19;74540:4;74535:3;74531:14;74524:21;;74601:4;74591:6;74588:1;74584:14;74576:6;74572:27;74568:38;74554:52;;74629:3;74621:6;74618:15;74615:35;;;74646:1;74643;74636:12;74615:35;74682:4;74674:6;74670:17;74696:304;74712:6;74707:3;74704:15;74696:304;;;74800:3;74787:17;-1:-1:-1;;;;;74823:11:89;74820:35;74817:55;;;74868:1;74865;74858:12;74817:55;74897:58;74951:3;74944:4;74930:11;74922:6;74918:24;74914:35;74897:58;:::i;:::-;74885:71;;-1:-1:-1;74985:4:89;74976:14;;;;74729;74696:304;;75036:1709;75126:6;75179:2;75167:9;75158:7;75154:23;75150:32;75147:52;;;75195:1;75192;75185:12;75147:52;75235:9;75222:23;-1:-1:-1;;;;;75260:6:89;75257:30;75254:50;;;75300:1;75297;75290:12;75254:50;75323:22;;75379:6;75361:16;;;75357:29;75354:49;;;75399:1;75396;75389:12;75354:49;75425:22;;:::i;:::-;75470:21;75488:2;75470:21;:::i;:::-;75463:5;75456:36;75538:2;75534;75530:11;75517:25;-1:-1:-1;;;;;75557:8:89;75554:32;75551:52;;;75599:1;75596;75589:12;75551:52;75635:44;75671:7;75660:8;75656:2;75652:17;75635:44;:::i;:::-;75630:2;75623:5;75619:14;75612:68;;75726:2;75722;75718:11;75705:25;-1:-1:-1;;;;;75745:8:89;75742:32;75739:52;;;75787:1;75784;75777:12;75739:52;75823:44;75859:7;75848:8;75844:2;75840:17;75823:44;:::i;:::-;75818:2;75807:14;;75800:68;-1:-1:-1;75934:2:89;75926:11;;;75913:25;75954:14;;;75947:31;76044:3;76036:12;;;76023:26;76065:15;;;76058:32;76136:3;76128:12;;76115:26;-1:-1:-1;;;;;76153:32:89;;76150:52;;;76198:1;76195;76188:12;76150:52;76235:55;76282:7;76271:8;76267:2;76263:17;76235:55;:::i;:::-;76229:3;76222:5;76218:15;76211:80;;76337:3;76333:2;76329:12;76316:26;-1:-1:-1;;;;;76357:8:89;76354:32;76351:52;;;76399:1;76396;76389:12;76351:52;76436:67;76495:7;76484:8;76480:2;76476:17;76436:67;:::i;:::-;76430:3;76423:5;76419:15;76412:92;;76550:3;76546:2;76542:12;76529:26;-1:-1:-1;;;;;76570:8:89;76567:32;76564:52;;;76612:1;76609;76602:12;76564:52;76649:65;76706:7;76695:8;76691:2;76687:17;76649:65;:::i;:::-;76643:3;76632:15;;76625:90;-1:-1:-1;76636:5:89;75036:1709;-1:-1:-1;;;;75036:1709:89:o;76750:357::-;76839:6;76892:2;76880:9;76871:7;76867:23;76863:32;76860:52;;;76908:1;76905;76898:12;76860:52;76948:9;76935:23;-1:-1:-1;;;;;76973:6:89;76970:30;76967:50;;;77013:1;77010;77003:12;76967:50;77036:65;77093:7;77084:6;77073:9;77069:22;77036:65;:::i;77776:371::-;-1:-1:-1;;;;;77996:32:89;;;77978:51;;78065:32;;;;78060:2;78045:18;;78038:60;78129:2;78114:18;;78107:34;;;;77966:2;77951:18;;77776:371::o"},"methodIdentifiers":{"NATIVE_TOKEN_ADDRESS()":"df2ebdbb","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","acceptOwnership()":"79ba5097","appLayerContext((uint64,uint64,bytes32,uint256,address,string,bytes,string,(address,uint256),address[],(address,uint256)[],(address,uint256)[],(string,string,uint8,string)[],(address,uint256,uint256)[],(address,uint256,uint256)[],(string,string,string,string)[]),bytes)":"8421adc8","disableInitializers()":"31f44900","getCollectedProtocolFee()":"b42156bd","getInMessageState(bytes32)":"5a178931","getProtocolFee()":"a5a41031","initialize(address,address)":"485cc955","owner()":"8da5cb5b","pendingOwner()":"e30c3978","proxiableUUID()":"52d1902d","receiveMessage(uint256,bytes,bytes32[],address,bytes)":"abe13ef7","renounceOwnership()":"715018a6","sendMessage(uint256,bytes)":"e289adcd","setProtocolFee(uint256)":"787dce3d","setTokenUtils(address)":"9856869d","simulateAppLayerContext((uint64,uint64,bytes32,uint256,address,string,bytes,string,(address,uint256),address[],(address,uint256)[],(address,uint256)[],(string,string,uint8,string)[],(address,uint256,uint256)[],(address,uint256,uint256)[],(string,string,string,string)[]),bytes)":"3029a881","simulateReceiveMessage(uint256,bytes,bytes,bytes32,bytes32[],bool)":"0efbc181","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286","withdrawProtocolFee(address,uint256)":"4d3a2a8c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"AppLayerCallError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AppLayerUnexpectedError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BridgeAmountToBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"locked\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toUnlock\",\"type\":\"uint256\"}],\"name\":\"CantUnlockNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"}],\"name\":\"ExecutorIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExtraDataIsNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"attached\",\"type\":\"uint256\"}],\"name\":\"InsufficientFeeAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"attached\",\"type\":\"uint256\"}],\"name\":\"InsufficientNativeAttached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"InsufficientProtocolFeeBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"InvalidInMessageVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMerkleProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"InvalidNFTInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"InvalidOutMessageVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"InvalidProxyVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"InvalidProxyVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"name\":\"MessageAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"NativeFeeTransferError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"NativeTrasferError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"gasLeft\",\"type\":\"uint256\"}],\"name\":\"NotEnoughGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"ProxyCallError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RecursiveMessageProcessing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"SimulationFailedError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationFinished\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SimulationIsNotInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SimulationRecursiveCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SimulationUnexpectedError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SimulationUnexpectedSuccess\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"TargetIsNotTacProxy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"TargetIsNotTacProxy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroFeeSetting\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"AppLayerCallErrorEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"}],\"name\":\"InMessageProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"targetAddress\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"payload\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"executorFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"tvmValidExecutors\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct TokenAmount[]\",\"name\":\"tokensBurned\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct TokenAmount[]\",\"name\":\"tokensLocked\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct NFTAmount[]\",\"name\":\"nftsBurned\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct NFTAmount[]\",\"name\":\"nftsLocked\",\"type\":\"tuple[]\"}],\"name\":\"OutMessageProcessed\",\"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\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"targetAddress\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"payload\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executorFee\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"tvmValidExecutors\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"tokensBurned\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"tokensLocked\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"nftsBurned\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"nftsLocked\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct CrossChainLayer.OutMessageProcessedEventStruct[]\",\"name\":\"outMessages\",\"type\":\"tuple[]\"}],\"name\":\"SimulationSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"caller\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount\",\"name\":\"evmExecutorFee\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"evmValidExecutors\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"mint\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"unlock\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo[]\",\"name\":\"meta\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"mintNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"unlockNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo[]\",\"name\":\"metaNFT\",\"type\":\"tuple[]\"}],\"internalType\":\"struct VersionLib.UnionInMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"appLayerContext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollectedProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"name\":\"getInMessageState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adminAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"consensusAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"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\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"messageVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"address\",\"name\":\"feeReceiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"receiveMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"messageVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedMessage\",\"type\":\"bytes\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenUtils\",\"type\":\"address\"}],\"name\":\"setTokenUtils\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"caller\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount\",\"name\":\"evmExecutorFee\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"evmValidExecutors\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"mint\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"unlock\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo[]\",\"name\":\"meta\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"mintNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"unlockNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo[]\",\"name\":\"metaNFT\",\"type\":\"tuple[]\"}],\"internalType\":\"struct VersionLib.UnionInMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"simulateAppLayerContext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"messageVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bool\",\"name\":\"withMessages\",\"type\":\"bool\"}],\"name\":\"simulateReceiveMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"simulationStatus\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"targetAddress\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"payload\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executorFee\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"tvmValidExecutors\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"tokensBurned\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"tokensLocked\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"nftsBurned\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"nftsLocked\",\"type\":\"tuple[]\"}],\"internalType\":\"struct CrossChainLayer.OutMessageProcessedEventStruct[]\",\"name\":\"outMessages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A contract for managing cross-chain messages and tokens.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AppLayerCallErrorEvent(bytes32,bytes)\":{\"details\":\"Error event for calling the application layer context.\"},\"InMessageProcessed(bytes32)\":{\"details\":\"Input (receive) message executed event\",\"params\":{\"operationId\":\"Operation Id to track message\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OutMessageProcessed(uint64,bytes32,address,string,string,uint256,uint256,string[],(address,uint256)[],(address,uint256)[],(address,uint256,uint256)[],(address,uint256,uint256)[])\":{\"details\":\"Output (send) message executed event\",\"params\":{\"callerAddress\":\"Caller address (EVM message initiator)\",\"executorFee\":\"Executor fee for the message\",\"nftsBurned\":\"NFT burned during message processing\",\"nftsLocked\":\"NFT locked during message processing\",\"operationId\":\"Operation Id to track message\",\"payload\":\"Message payload\",\"protocolFee\":\"Protocol fee for the message\",\"shardsKey\":\"Key to track message\",\"targetAddress\":\"Recipient address (TVM recipient address))\",\"tokensBurned\":\"Token burned during message processing\",\"tokensLocked\":\"Token locked during message processing\",\"tvmValidExecutors\":\"TVM valid executors for the message\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"getCollectedProtocolFee()\":{\"details\":\"Gets collected protocol fee by token address.\",\"returns\":{\"_0\":\"uint256 Collected fee amount.\"}},\"getInMessageState(bytes32)\":{\"details\":\"Checks if the input (receive) message has been processed.\",\"params\":{\"messageHash\":\"Message hash to check.\"},\"returns\":{\"_0\":\"bool True if the message has been processed, false otherwise.\"}},\"getProtocolFee()\":{\"details\":\"Gets the current min protocol fee.\",\"returns\":{\"_0\":\"uint256 Fee amount.\"}},\"initialize(address,address)\":{\"details\":\"Initializer function to initialize the contract with initial state.\",\"params\":{\"adminAddress\":\"admin address.\",\"consensusAddress\":\"Consensus contract address.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"receiveMessage(uint256,bytes,bytes32[],address,bytes)\":{\"details\":\"Accepts an TVM->EVM message to process if the Merkle proof is valid.\",\"params\":{\"encodedMessage\":\"Encoded message to process.\",\"extraData\":\"Untrusted extra data to pass to the message.\",\"feeReceiver\":\"receiver of fee.\",\"merkleProof\":\"Merkle proof for the message.\",\"messageVersion\":\"Message version.\"}},\"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.\"},\"sendMessage(uint256,bytes)\":{\"details\":\"Accepts an EVM->TVM message to process (e.g. a callback from dApp).\",\"params\":{\"encodedMessage\":\"Encoded message to process.\",\"messageVersion\":\"Message version.\"}},\"setTokenUtils(address)\":{\"details\":\"Sets the token utils contract address.\",\"params\":{\"tokenUtils\":\"Token utils contract address.\"}},\"simulateReceiveMessage(uint256,bytes,bytes,bytes32,bytes32[],bool)\":{\"details\":\"Simulates the processing of an TVM->EVM message.\",\"params\":{\"encodedMessage\":\"Message to simulate.\",\"merkleProof\":\"Merkle proof to check.\",\"merkleRoot\":\"Merkle root for checking proofs simulation.\",\"messageVersion\":\"Message version.\",\"withMessages\":\"True if the simulation should include out messages, false - just for gas calculation.\"},\"returns\":{\"errorReason\":\"Encoded error reason if the simulation was unsuccessful.\",\"outMessages\":\"Array of out messages if the simulation was successful.\",\"simulationStatus\":\"True if the simulation was successful, false otherwise.\"}},\"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. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"_simulationOutMessagesProcessedEvents\":{\"details\":\"This array is always empty, because all changes are reverted inside simulateAppLayerContext So the OutMessageProcessedEventStruct struct can be upgraded safely\"}},\"title\":\"CrossChainLayer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/CrossChainLayer.sol\":\"CrossChainLayer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x631dc1958d5308bd2d9f91190bbcde4f9ffb9d9401ce8d358c17b35f1a942bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7ef16d9a6f57eae9ab275116eaba1e8de70efd3d0e3682b1585b8f069d9c3f9\",\"dweb:/ipfs/QmR3JQHAyv4sNWnRHeiC6oaz8Bqn8rtzu5sdAqAJRtBqpj\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"contracts/core/CrossChainLayer.sol\":{\"keccak256\":\"0x929add86e3623013b31f651ac2f5e5f00dd2df4c338861fcba7434ae6f5712c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80e7ed66da62304339e4b55a145739cc1fe9683f5d2bd7fb30ba01b1ad139de3\",\"dweb:/ipfs/Qmbg4e7TRGaz6dfe3CNdh7CibVVtDY9GthpQiSVqjwCe1F\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/TacInitializable.sol\":{\"keccak256\":\"0x1a60834ac4652782e16392d639235d96e1675970c507b8b6d2db9c8644b50941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ab364d4d3e4ea4d477132e98eeac8142d54d208440c7a73fd78138990fc2db5\",\"dweb:/ipfs/QmfRaaiGh4xFE2aDVHQiB57fE2rmu6c6m6vdHGXqKay62C\"]},\"contracts/core/tokens/CrossChainLayerERC20.sol\":{\"keccak256\":\"0xd672630acb9000997a0b26e866fb17bc771d0a6b3ebdd2b86bfb09485f715eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3913c3681964917a34d7134b1cb1a12540dabb2d4264c9b2615d09a4c1fdef83\",\"dweb:/ipfs/QmUNf9Y5cB14GUP6wBHemyz51LdMm7KC11S1hB4bEZUjMF\"]},\"contracts/core/tokens/CrossChainLayerERC721.sol\":{\"keccak256\":\"0x69cbd505626bc8fd1910ff90c4415546130ccad6e7415cc9f4120b11afdda1e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0683106d424f746722cdcac75332322872cba15b3b1c174773d2e211873f6293\",\"dweb:/ipfs/QmcmFYvu1mN8asdotvdrehZsG5LHnN1nd7iFV7RjsN1KMv\"]},\"contracts/interfaces/IConsensus.sol\":{\"keccak256\":\"0x4eca288e0f5adbb4014dffa67f4e22826ec2de858c574f7588d9cd88ceda3e65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a839f1bfeaa8518b6850e79bd524b571d642b325d5b27c78a8bb8d83295ee491\",\"dweb:/ipfs/QmcpFf8DhoNZ5sxfF4A4rsRnG5BmqYg2bPgey5g56iUUNp\"]},\"contracts/interfaces/ICrossChainLayer.sol\":{\"keccak256\":\"0x435aeb361378447362b2bfc59de69237ec85706d9755e53b46b48c84a0ea186c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9d91e1e5c1b2a4b0df3ea28cd7ef3956147f082873d8abf03d9963aaa13a60\",\"dweb:/ipfs/QmVFL9rUScnu5XKk9ZioWZbyqq4sdFPz19dowWsfzE3fUM\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/interfaces/ITokenUtils.sol\":{\"keccak256\":\"0xdcdc40823d891b97559f3655655b66e8fabc4927ac6053491081f430b42d1caa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d377a8f2ce13d3b6a7be5b19e29459d1f2adae2e177019927e25c1ed41c5c794\",\"dweb:/ipfs/QmQ3CW4LS3aMYWhP8wKeTR1j7uy7ohBoJ6WdcQSyczbAYX\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC20.sol\":{\"keccak256\":\"0x4259d98b73075a79ec3a7587fc6632f967f930844d02de1f61d8b292b0b81852\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd61515c9c01c176b4b26130ec977d61534231b3c2222407c0c24876be5fe168\",\"dweb:/ipfs/QmPAY3EvKHhw8ziT8CKCxLepYPBwbezarX343cR69i2UUf\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC721.sol\":{\"keccak256\":\"0x207f34fcfd0746b604ecee8ca8b9abf79a5a614e9ef5355f617d65e0d2c25b1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb9bdcc8e9fcfc33de76cb7e6a8ed4073c9c33db36707e2b5d7e2f2acf047656\",\"dweb:/ipfs/QmRhXA5JwjnNTrTnLvuw6DAVqQt8oG7SmtGxiH9pQU6ngN\"]},\"contracts/libs/TokenHelperLib.sol\":{\"keccak256\":\"0x01a95546abd06a840d73c53a9c1e9c0be873a1ce96a452a4c922b4914ba36573\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2abe80d2026174027c5f0d2e5011ad23443ad96800a0310832d57adaf9baec8d\",\"dweb:/ipfs/QmZkEy3AifvUEpgWUBJLSG1RCrmEaUCEPv1G2ZVvWhpN9e\"]},\"contracts/libs/VersionLib.sol\":{\"keccak256\":\"0xdb9491d0d55586a155c2451f2a08437f79082369d7202ae3b17f8b831ecea215\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88b2ae3aa1a11f0cc317081c6cfbd54a04d51ca53db6acfb8e74dd5c7b7ed18a\",\"dweb:/ipfs/QmNZ9ZNZFAkbbgjmuAeWsvEggiSRz5dX1TowMLSR9zoHfq\"]},\"contracts/proxies/TacProxy.sol\":{\"keccak256\":\"0xbc37790a2523ad054248c90df15a3e8855afabaabf26e90c43a4d23e9cacd962\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee86fe6c1d7dec9068d88059f27aa62e40e7f8ae89ba00c077ed8eafac7edea1\",\"dweb:/ipfs/QmXDMLLkphX2a2jmvvFTmN1TqgtEroefKLpoFmFXNZbu56\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":13636,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_tokenUtils","offset":0,"slot":"0","type":"t_contract(ITokenUtils)17625"},{"astId":13639,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_consensus","offset":0,"slot":"1","type":"t_contract(IConsensus)17376"},{"astId":13641,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_currentInMessageOperationId","offset":0,"slot":"2","type":"t_bytes32"},{"astId":13643,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_receiveInProgress","offset":0,"slot":"3","type":"t_bool"},{"astId":13647,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_processedInMessages","offset":0,"slot":"4","type":"t_mapping(t_bytes32,t_bool)"},{"astId":13654,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_simulationMode","offset":0,"slot":"5","type":"t_enum(SimulationMode)13651"},{"astId":13656,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_simulationRoot","offset":0,"slot":"6","type":"t_bytes32"},{"astId":13696,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_simulationOutMessagesProcessedEvents","offset":0,"slot":"7","type":"t_array(t_struct(OutMessageProcessedEventStruct)13691_storage)dyn_storage"},{"astId":13698,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_protocolFee","offset":0,"slot":"8","type":"t_uint256"},{"astId":13700,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"_collectedProtocolFee","offset":0,"slot":"9","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_string_storage)dyn_storage":{"base":"t_string_storage","encoding":"dynamic_array","label":"string[]","numberOfBytes":"32"},"t_array(t_struct(NFTAmount)16007_storage)dyn_storage":{"base":"t_struct(NFTAmount)16007_storage","encoding":"dynamic_array","label":"struct NFTAmount[]","numberOfBytes":"32"},"t_array(t_struct(OutMessageProcessedEventStruct)13691_storage)dyn_storage":{"base":"t_struct(OutMessageProcessedEventStruct)13691_storage","encoding":"dynamic_array","label":"struct CrossChainLayer.OutMessageProcessedEventStruct[]","numberOfBytes":"32"},"t_array(t_struct(TokenAmount)15999_storage)dyn_storage":{"base":"t_struct(TokenAmount)15999_storage","encoding":"dynamic_array","label":"struct TokenAmount[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(IConsensus)17376":{"encoding":"inplace","label":"contract IConsensus","numberOfBytes":"20"},"t_contract(ITokenUtils)17625":{"encoding":"inplace","label":"contract ITokenUtils","numberOfBytes":"20"},"t_enum(SimulationMode)13651":{"encoding":"inplace","label":"enum CrossChainLayer.SimulationMode","numberOfBytes":"1"},"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(NFTAmount)16007_storage":{"encoding":"inplace","label":"struct NFTAmount","members":[{"astId":16002,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"evmAddress","offset":0,"slot":"0","type":"t_address"},{"astId":16004,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"tokenId","offset":0,"slot":"1","type":"t_uint256"},{"astId":16006,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"amount","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_struct(OutMessageProcessedEventStruct)13691_storage":{"encoding":"inplace","label":"struct CrossChainLayer.OutMessageProcessedEventStruct","members":[{"astId":13659,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"shardsKey","offset":0,"slot":"0","type":"t_uint64"},{"astId":13661,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"operationId","offset":0,"slot":"1","type":"t_bytes32"},{"astId":13663,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"callerAddress","offset":0,"slot":"2","type":"t_address"},{"astId":13665,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"targetAddress","offset":0,"slot":"3","type":"t_string_storage"},{"astId":13667,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"payload","offset":0,"slot":"4","type":"t_string_storage"},{"astId":13669,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"protocolFee","offset":0,"slot":"5","type":"t_uint256"},{"astId":13671,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"executorFee","offset":0,"slot":"6","type":"t_uint256"},{"astId":13674,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"tvmValidExecutors","offset":0,"slot":"7","type":"t_array(t_string_storage)dyn_storage"},{"astId":13678,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"tokensBurned","offset":0,"slot":"8","type":"t_array(t_struct(TokenAmount)15999_storage)dyn_storage"},{"astId":13682,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"tokensLocked","offset":0,"slot":"9","type":"t_array(t_struct(TokenAmount)15999_storage)dyn_storage"},{"astId":13686,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"nftsBurned","offset":0,"slot":"10","type":"t_array(t_struct(NFTAmount)16007_storage)dyn_storage"},{"astId":13690,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"nftsLocked","offset":0,"slot":"11","type":"t_array(t_struct(NFTAmount)16007_storage)dyn_storage"}],"numberOfBytes":"384"},"t_struct(TokenAmount)15999_storage":{"encoding":"inplace","label":"struct TokenAmount","members":[{"astId":15996,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"evmAddress","offset":0,"slot":"0","type":"t_address"},{"astId":15998,"contract":"contracts/core/CrossChainLayer.sol:CrossChainLayer","label":"amount","offset":0,"slot":"1","type":"t_uint256"}],"numberOfBytes":"64"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"contracts/core/Settings.sol":{"Settings":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"ChangingAddressForbidden","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"InvalidKey","type":"error"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"InvalidUintValue","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"AddressSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"BoolSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"variable","type":"bytes32"}],"name":"SettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address[]","name":"executors","type":"address[]"}],"name":"TrustedEVMExecutorsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string[]","name":"executors","type":"string[]"}],"name":"TrustedTVMExecutorsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"UintSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getAddressSetting","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getBoolSetting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getStringSetting","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTrustedEVMExecutors","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTrustedTVMExecutors","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getUintSetting","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value","type":"address"}],"name":"setAddressSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBoolSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"string","name":"value","type":"string"}],"name":"setStringSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"trustedEVMExecutors","type":"address[]"}],"name":"setTrustedEVMExecutors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"trustedTVMExecutors","type":"string[]"}],"name":"setTrustedTVMExecutors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"value","type":"uint64"}],"name":"setUintSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a060405230608052348015601357600080fd5b50608051611e4061003d60003960008181610ea501528181610ece015261101f0152611e406000f3fe6080604052600436106101665760003560e01c806381c04407116100d1578063c1c2c4371161008a578063c8029da811610064578063c8029da814610490578063d547741f146104b2578063f165f4b4146104d2578063fd32b9fa146104f257600080fd5b8063c1c2c4371461042e578063c4d66de81461044e578063c7f7d04a1461046e57600080fd5b806381c044071461032d57806391d148541461034d578063a217fddf1461036d578063ad39965d14610382578063ad3cb1cc146103d0578063b896a1811461040e57600080fd5b806336568abe1161012357806336568abe146102755780633fe8ef0f146102955780634f1ef286146102b557806352d1902d146102c85780637866077b146102dd5780637c74627a146102fd57600080fd5b806301ffc9a71461016b5780631c63030a146101a0578063248a9ca3146101ee5780632a0acc6a1461021c5780632f2ff15d1461023e57806331f4490014610260575b600080fd5b34801561017757600080fd5b5061018b610186366004611676565b610512565b60405190151581526020015b60405180910390f35b3480156101ac57600080fd5b506101d66101bb3660046116a0565b6000908152602081905260409020546001600160401b031690565b6040516001600160401b039091168152602001610197565b3480156101fa57600080fd5b5061020e6102093660046116a0565b610549565b604051908152602001610197565b34801561022857600080fd5b5061020e600080516020611d8b83398151915281565b34801561024a57600080fd5b5061025e6102593660046116d5565b61056b565b005b34801561026c57600080fd5b5061025e61058d565b34801561028157600080fd5b5061025e6102903660046116d5565b6105cd565b3480156102a157600080fd5b5061025e6102b03660046116d5565b610605565b61025e6102c33660046117a2565b610668565b3480156102d457600080fd5b5061020e610687565b3480156102e957600080fd5b5061025e6102f8366004611846565b6106a4565b34801561030957600080fd5b5061018b6103183660046116a0565b60009081526002602052604090205460ff1690565b34801561033957600080fd5b5061025e610348366004611900565b610712565b34801561035957600080fd5b5061018b6103683660046116d5565b61076b565b34801561037957600080fd5b5061020e600081565b34801561038e57600080fd5b506103b861039d3660046116a0565b6000908152600160205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610197565b3480156103dc57600080fd5b50610401604051806040016040528060058152602001640352e302e360dc1b81525081565b604051610197919061198c565b34801561041a57600080fd5b5061025e61042936600461199f565b6107a3565b34801561043a57600080fd5b506104016104493660046116a0565b610810565b34801561045a57600080fd5b5061025e610469366004611a3b565b6108b2565b34801561047a57600080fd5b506104836109e6565b6040516101979190611a56565b34801561049c57600080fd5b506104a5610abf565b6040516101979190611abb565b3480156104be57600080fd5b5061025e6104cd3660046116d5565b610b21565b3480156104de57600080fd5b5061025e6104ed366004611b07565b610b3d565b3480156104fe57600080fd5b5061025e61050d366004611b43565b610baa565b60006001600160e01b03198216637965db0b60e01b148061054357506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000908152600080516020611dab833981519152602052604090206001015490565b61057482610549565b61057d81610bf6565b6105878383610c03565b50505050565b600080516020611deb833981519152546001600160401b0316156105c35760405162dc149f60e41b815260040160405180910390fd5b6105cb610ca8565b565b6001600160a01b03811633146105f65760405163334bd91960e11b815260040160405180910390fd5b6106008282610d43565b505050565b600080516020611d8b83398151915261061d81610bf6565b6106278383610dbf565b60008381526001602052604080822080546001600160a01b0319166001600160a01b038616179055518491600080516020611dcb83398151915291a2505050565b610670610e9a565b61067982610f3f565b6106838282610f57565b5050565b6000610691611014565b50600080516020611d6b83398151915290565b600080516020611d8b8339815191526106bc81610bf6565b81516106cf906005906020850190611553565b50816040516106de9190611b6d565b604051908190038120907fdf0903e67c3a4fc263ca7520a3911c684b4d7004cb5f4651a1e6fb660d414e9d90600090a25050565b600080516020611d8b83398151915261072a81610bf6565b610734838361105d565b600083815260036020526040902061074c8382611c43565b506040518390600080516020611dcb83398151915290600090a2505050565b6000918252600080516020611dab833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020611d8b8339815191526107bb81610bf6565b81516107ce9060049060208501906115a9565b50816040516107dd9190611d01565b604051908190038120907e653e88a963cfbf443e7e07366d26e53c7d4eb4b620a8a9a3cd59490b153e4a90600090a25050565b600081815260036020526040902080546060919061082d90611bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461085990611bbb565b80156108a65780601f1061087b576101008083540402835291602001916108a6565b820191906000526020600020905b81548152906001019060200180831161088957829003601f168201915b50505050509050919050565b600080516020611deb8339815191528054600160401b810460ff1615906001600160401b03166000811580156108e55750825b90506000826001600160401b031660011480156109015750303b155b90508115801561090f575080155b1561092d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561095757845460ff60401b1916600160401b1785555b61095f6110b3565b6109676110b3565b61097f600080516020611d8b833981519152806110bb565b610997600080516020611d8b83398151915287610c03565b5083156109de57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60606005805480602002602001604051908101604052809291908181526020016000905b82821015610ab6578382906000526020600020018054610a2990611bbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5590611bbb565b8015610aa25780601f10610a7757610100808354040283529160200191610aa2565b820191906000526020600020905b815481529060010190602001808311610a8557829003601f168201915b505050505081526020019060010190610a0a565b50505050905090565b60606004805480602002602001604051908101604052809291908181526020018280548015610b1757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610af9575b5050505050905090565b610b2a82610549565b610b3381610bf6565b6105878383610d43565b600080516020611d8b833981519152610b5581610bf6565b610b6883836001600160401b031661111e565b600083815260208190526040808220805467ffffffffffffffff19166001600160401b038616179055518491600080516020611dcb83398151915291a2505050565b600080516020611d8b833981519152610bc281610bf6565b600083815260026020526040808220805460ff1916851515179055518491600080516020611dcb83398151915291a2505050565b610c0081336112d2565b50565b6000600080516020611dab833981519152610c1e848461076b565b610c9e576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055610c543390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610543565b6000915050610543565b600080516020611deb8339815191528054600160401b900460ff1615610ce15760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614610c0057805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b6000600080516020611dab833981519152610d5e848461076b565b15610c9e576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610543565b6001600160a01b038116610dee576040516383cf4a2b60e01b8152600481018390526024015b60405180910390fd5b7f74108225d5b838030da6279474524322f9c8b07ad500246d400a882d1adc4a678203610e1e576106838261130b565b7ffe7a664f6e0c3521ff1c6c504d38ef3e9f443169aed5f833bbef58ef2647083b8203610e4e576106838261130b565b7f211c2745ac5ee6e09e5cfea6b039edcef274b70fb1404ff78779e4759bf707838203610e7e576106838261130b565b604051635326e49560e11b815260048101839052602401610de5565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610f2157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f15600080516020611d6b833981519152546001600160a01b031690565b6001600160a01b031614155b156105cb5760405163703e46dd60e11b815260040160405180910390fd5b600080516020611d8b83398151915261068381610bf6565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb1575060408051601f3d908101601f19168201909252610fae91810190611d35565b60015b610fd957604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610de5565b600080516020611d6b833981519152811461100a57604051632a87526960e21b815260048101829052602401610de5565b6106008383611344565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105cb5760405163703e46dd60e11b815260040160405180910390fd5b7f8966879121cfb6c0f964e7eacbe2052f82e9cfff16d18b638bfd80da1189d0308203611088575050565b7fb91d3c5ffbf64f5db586fb9e283ef216271d92de17b247d061043614a5364b868203610e7e575050565b6105cb61139a565b600080516020611dab83398151915260006110d584610549565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b7f4974a2122f752ac8bcaeec9beacd1bb419a4c873fda1aa7058360e08c5c9401c82036111745780158061115357506103e881115b1561068357604051635631091760e11b815260048101839052602401610de5565b7f7f409c90678ce93e65834482eacce2014a08dd7ce43a3ec31af5320a72db7a6282036111c95780158061115357506103e881111561068357604051635631091760e11b815260048101839052602401610de5565b7fb85db7dee54693d742881af46464432adde0803726a71dd9f6234a601792cf9a82036112165761012c81111561068357604051635631091760e11b815260048101839052602401610de5565b7fc8a0e0a9d335faf7a58f75bc4896d12c9488e34801b4a891a6ba2ff43ae4ad2f820315610683577f30d9b452ee51929ed46b0efac730a78ccd37a793a5acf24feda636390b210516820315610683577f4f27e928da73627e3874c3712f79e2e58f25a77db3929917088d7d5014f08604820315610683577fe30954f078b83da37fe6529e73721e4b7b8cfc0f9ab2bb4f1f9828ca6b2ef12082031561068357604051635326e49560e11b815260048101839052602401610de5565b6112dc828261076b565b6106835760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610de5565b6000818152600160205260409020546001600160a01b031615610c0057604051630d58b82360e31b815260048101829052602401610de5565b61134d826113d1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611392576106008282611436565b6106836114ac565b600080516020611deb83398151915254600160401b900460ff166105cb57604051631afcd79f60e31b815260040160405180910390fd5b806001600160a01b03163b60000361140757604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610de5565b600080516020611d6b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516114539190611d4e565b600060405180830381855af49150503d806000811461148e576040519150601f19603f3d011682016040523d82523d6000602084013e611493565b606091505b50915091506114a38583836114cb565b95945050505050565b34156105cb5760405163b398979f60e01b815260040160405180910390fd5b6060826114e0576114db8261152a565b611523565b81511580156114f757506001600160a01b0384163b155b1561152057604051639996b31560e01b81526001600160a01b0385166004820152602401610de5565b50805b9392505050565b80511561153a5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b828054828255906000526020600020908101928215611599579160200282015b8281111561159957825182906115899082611c43565b5091602001919060010190611573565b506115a592915061160a565b5090565b8280548282559060005260206000209081019282156115fe579160200282015b828111156115fe57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906115c9565b506115a5929150611627565b808211156115a557600061161e828261163c565b5060010161160a565b5b808211156115a55760008155600101611628565b50805461164890611bbb565b6000825580601f10611658575050565b601f016020900490600052602060002090810190610c009190611627565b60006020828403121561168857600080fd5b81356001600160e01b03198116811461152357600080fd5b6000602082840312156116b257600080fd5b5035919050565b80356001600160a01b03811681146116d057600080fd5b919050565b600080604083850312156116e857600080fd5b823591506116f8602084016116b9565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561173f5761173f611701565b604052919050565b6000806001600160401b0384111561176157611761611701565b50601f8301601f191660200161177681611717565b91505082815283838301111561178b57600080fd5b828260208301376000602084830101529392505050565b600080604083850312156117b557600080fd5b6117be836116b9565b915060208301356001600160401b038111156117d957600080fd5b8301601f810185136117ea57600080fd5b6117f985823560208401611747565b9150509250929050565b60006001600160401b0382111561181c5761181c611701565b5060051b60200190565b600082601f83011261183757600080fd5b61152383833560208501611747565b60006020828403121561185857600080fd5b81356001600160401b0381111561186e57600080fd5b8201601f8101841361187f57600080fd5b803561189261188d82611803565b611717565b8082825260208201915060208360051b8501019250868311156118b457600080fd5b602084015b838110156118f55780356001600160401b038111156118d757600080fd5b6118e689602083890101611826565b845250602092830192016118b9565b509695505050505050565b6000806040838503121561191357600080fd5b8235915060208301356001600160401b0381111561193057600080fd5b6117f985828601611826565b60005b8381101561195757818101518382015260200161193f565b50506000910152565b6000815180845261197881602086016020860161193c565b601f01601f19169290920160200192915050565b6020815260006115236020830184611960565b6000602082840312156119b157600080fd5b81356001600160401b038111156119c757600080fd5b8201601f810184136119d857600080fd5b80356119e661188d82611803565b8082825260208201915060208360051b850101925086831115611a0857600080fd5b6020840193505b82841015611a3157611a20846116b9565b825260209384019390910190611a0f565b9695505050505050565b600060208284031215611a4d57600080fd5b611523826116b9565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015611aaf57603f19878603018452611a9a858351611960565b94506020938401939190910190600101611a7e565b50929695505050505050565b602080825282518282018190526000918401906040840190835b81811015611afc5783516001600160a01b0316835260209384019390920191600101611ad5565b509095945050505050565b60008060408385031215611b1a57600080fd5b8235915060208301356001600160401b0381168114611b3857600080fd5b809150509250929050565b60008060408385031215611b5657600080fd5b8235915060208301358015158114611b3857600080fd5b8151600090829060208501835b82811015611bb05781518051611b9481876020850161193c565b601f01601f191694909401935060209190910190600101611b7a565b509195945050505050565b600181811c90821680611bcf57607f821691505b602082108103611bef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561060057806000526020600020601f840160051c81016020851015611c1c5750805b601f840160051c820191505b81811015611c3c5760008155600101611c28565b5050505050565b81516001600160401b03811115611c5c57611c5c611701565b611c7081611c6a8454611bbb565b84611bf5565b6020601f821160018114611ca45760008315611c8c5750848201515b600019600385901b1c1916600184901b178455611c3c565b600084815260208120601f198516915b82811015611cd45787850151825560209485019460019092019101611cb4565b5084821015611cf25786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b8151600090829060208501835b82811015611bb05781516001600160a01b0316845260209384019390910190600101611d0e565b600060208284031215611d4757600080fd5b5051919050565b60008251611d6081846020870161193c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060fff43fb3dd5e4309106861e1122d0446898fbf9d2162cf48cb55d05801ca52f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b4ff7badb8df11c032272822ec2676f4ca9fb821e6f4d6963f68a4293b81bb9564736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x1E40 PUSH2 0x3D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0xEA5 ADD MSTORE DUP2 DUP2 PUSH2 0xECE ADD MSTORE PUSH2 0x101F ADD MSTORE PUSH2 0x1E40 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x166 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x81C04407 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xC1C2C437 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xC8029DA8 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xC8029DA8 EQ PUSH2 0x490 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x4B2 JUMPI DUP1 PUSH4 0xF165F4B4 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0xFD32B9FA EQ PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC1C2C437 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0xC7F7D04A EQ PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x81C04407 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0xAD39965D EQ PUSH2 0x382 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xB896A181 EQ PUSH2 0x40E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0x123 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x275 JUMPI DUP1 PUSH4 0x3FE8EF0F EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x2C8 JUMPI DUP1 PUSH4 0x7866077B EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x7C74627A EQ PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x1C63030A EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x31F44900 EQ PUSH2 0x260 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x186 CALLDATASIZE PUSH1 0x4 PUSH2 0x1676 JUMP JUMPDEST PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D6 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x197 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH2 0x549 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x197 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x259 CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x58D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x290 CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0x5CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x2B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0x605 JUMP JUMPDEST PUSH2 0x25E PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x17A2 JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH2 0x687 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x2F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1846 JUMP JUMPDEST PUSH2 0x6A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x318 CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x348 CALLDATASIZE PUSH1 0x4 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x712 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0x76B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x379 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B8 PUSH2 0x39D CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x197 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x401 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x198C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x429 CALLDATASIZE PUSH1 0x4 PUSH2 0x199F JUMP JUMPDEST PUSH2 0x7A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x401 PUSH2 0x449 CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH2 0x810 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x469 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A3B JUMP JUMPDEST PUSH2 0x8B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x483 PUSH2 0x9E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A5 PUSH2 0xABF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x1ABB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x4CD CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0xB21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x4ED CALLDATASIZE PUSH1 0x4 PUSH2 0x1B07 JUMP JUMPDEST PUSH2 0xB3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x543 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x574 DUP3 PUSH2 0x549 JUMP JUMPDEST PUSH2 0x57D DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x587 DUP4 DUP4 PUSH2 0xC03 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DEB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO PUSH2 0x5C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5CB PUSH2 0xCA8 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x5F6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x600 DUP3 DUP3 PUSH2 0xD43 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x61D DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x627 DUP4 DUP4 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND OR SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DCB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0x670 PUSH2 0xE9A JUMP JUMPDEST PUSH2 0x679 DUP3 PUSH2 0xF3F JUMP JUMPDEST PUSH2 0x683 DUP3 DUP3 PUSH2 0xF57 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x691 PUSH2 0x1014 JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D6B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x6BC DUP2 PUSH2 0xBF6 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x6CF SWAP1 PUSH1 0x5 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x1553 JUMP JUMPDEST POP DUP2 PUSH1 0x40 MLOAD PUSH2 0x6DE SWAP2 SWAP1 PUSH2 0x1B6D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH32 0xDF0903E67C3A4FC263CA7520A3911C684B4D7004CB5F4651A1E6FB660D414E9D SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x72A DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x734 DUP4 DUP4 PUSH2 0x105D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x74C DUP4 DUP3 PUSH2 0x1C43 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DCB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x7BB DUP2 PUSH2 0xBF6 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x7CE SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x15A9 JUMP JUMPDEST POP DUP2 PUSH1 0x40 MLOAD PUSH2 0x7DD SWAP2 SWAP1 PUSH2 0x1D01 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH31 0x653E88A963CFBF443E7E07366D26E53C7D4EB4B620A8A9A3CD59490B153E4A SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH2 0x82D SWAP1 PUSH2 0x1BBB 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 0x859 SWAP1 PUSH2 0x1BBB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8A6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x87B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8A6 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 0x889 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DEB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x8E5 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x901 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x90F JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x957 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x95F PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x967 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x97F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x10BB JUMP JUMPDEST PUSH2 0x997 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP8 PUSH2 0xC03 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x9DE JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xAB6 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0xA29 SWAP1 PUSH2 0x1BBB 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 0xA55 SWAP1 PUSH2 0x1BBB JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA77 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA2 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 0xA85 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xA0A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xB17 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xAF9 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xB2A DUP3 PUSH2 0x549 JUMP JUMPDEST PUSH2 0xB33 DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x587 DUP4 DUP4 PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xB55 DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0xB68 DUP4 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x111E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND OR SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DCB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xBC2 DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO OR SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DCB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0xC00 DUP2 CALLER PUSH2 0x12D2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC1E DUP5 DUP5 PUSH2 0x76B JUMP JUMPDEST PUSH2 0xC9E JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xC54 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x543 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x543 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DEB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xCE1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0xC00 JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xD5E DUP5 DUP5 PUSH2 0x76B JUMP JUMPDEST ISZERO PUSH2 0xC9E JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP8 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x543 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xDEE JUMPI PUSH1 0x40 MLOAD PUSH4 0x83CF4A2B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x74108225D5B838030DA6279474524322F9C8B07AD500246D400A882D1ADC4A67 DUP3 SUB PUSH2 0xE1E JUMPI PUSH2 0x683 DUP3 PUSH2 0x130B JUMP JUMPDEST PUSH32 0xFE7A664F6E0C3521FF1C6C504D38EF3E9F443169AED5F833BBEF58EF2647083B DUP3 SUB PUSH2 0xE4E JUMPI PUSH2 0x683 DUP3 PUSH2 0x130B JUMP JUMPDEST PUSH32 0x211C2745AC5EE6E09E5CFEA6B039EDCEF274B70FB1404FF78779E4759BF70783 DUP3 SUB PUSH2 0xE7E JUMPI PUSH2 0x683 DUP3 PUSH2 0x130B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5326E495 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0xF21 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xF15 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D6B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x683 DUP2 PUSH2 0xBF6 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xFB1 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xFAE SWAP2 DUP2 ADD SWAP1 PUSH2 0x1D35 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xFD9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D6B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x100A JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH2 0x600 DUP4 DUP4 PUSH2 0x1344 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x8966879121CFB6C0F964E7EACBE2052F82E9CFFF16D18B638BFD80DA1189D030 DUP3 SUB PUSH2 0x1088 JUMPI POP POP JUMP JUMPDEST PUSH32 0xB91D3C5FFBF64F5DB586FB9E283EF216271D92DE17B247D061043614A5364B86 DUP3 SUB PUSH2 0xE7E JUMPI POP POP JUMP JUMPDEST PUSH2 0x5CB PUSH2 0x139A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 PUSH2 0x10D5 DUP5 PUSH2 0x549 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP7 SWAP1 SSTORE MLOAD SWAP2 SWAP3 POP DUP5 SWAP2 DUP4 SWAP2 DUP8 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4974A2122F752AC8BCAEEC9BEACD1BB419A4C873FDA1AA7058360E08C5C9401C DUP3 SUB PUSH2 0x1174 JUMPI DUP1 ISZERO DUP1 PUSH2 0x1153 JUMPI POP PUSH2 0x3E8 DUP2 GT JUMPDEST ISZERO PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0x56310917 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH32 0x7F409C90678CE93E65834482EACCE2014A08DD7CE43A3EC31AF5320A72DB7A62 DUP3 SUB PUSH2 0x11C9 JUMPI DUP1 ISZERO DUP1 PUSH2 0x1153 JUMPI POP PUSH2 0x3E8 DUP2 GT ISZERO PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0x56310917 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH32 0xB85DB7DEE54693D742881AF46464432ADDE0803726A71DD9F6234A601792CF9A DUP3 SUB PUSH2 0x1216 JUMPI PUSH2 0x12C DUP2 GT ISZERO PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0x56310917 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH32 0xC8A0E0A9D335FAF7A58F75BC4896D12C9488E34801B4A891A6BA2FF43AE4AD2F DUP3 SUB ISZERO PUSH2 0x683 JUMPI PUSH32 0x30D9B452EE51929ED46B0EFAC730A78CCD37A793A5ACF24FEDA636390B210516 DUP3 SUB ISZERO PUSH2 0x683 JUMPI PUSH32 0x4F27E928DA73627E3874C3712F79E2E58F25A77DB3929917088D7D5014F08604 DUP3 SUB ISZERO PUSH2 0x683 JUMPI PUSH32 0xE30954F078B83DA37FE6529E73721E4B7B8CFC0F9AB2BB4F1F9828CA6B2EF120 DUP3 SUB ISZERO PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5326E495 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH2 0x12DC DUP3 DUP3 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD58B823 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH2 0x134D DUP3 PUSH2 0x13D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x1392 JUMPI PUSH2 0x600 DUP3 DUP3 PUSH2 0x1436 JUMP JUMPDEST PUSH2 0x683 PUSH2 0x14AC JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DEB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x1407 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D6B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1453 SWAP2 SWAP1 PUSH2 0x1D4E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x148E 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 0x1493 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x14A3 DUP6 DUP4 DUP4 PUSH2 0x14CB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x14E0 JUMPI PUSH2 0x14DB DUP3 PUSH2 0x152A JUMP JUMPDEST PUSH2 0x1523 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x14F7 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x1520 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x153A JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1599 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1599 JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x1589 SWAP1 DUP3 PUSH2 0x1C43 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1573 JUMP JUMPDEST POP PUSH2 0x15A5 SWAP3 SWAP2 POP PUSH2 0x160A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x15FE JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x15FE JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x15C9 JUMP JUMPDEST POP PUSH2 0x15A5 SWAP3 SWAP2 POP PUSH2 0x1627 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x15A5 JUMPI PUSH1 0x0 PUSH2 0x161E DUP3 DUP3 PUSH2 0x163C JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x160A JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x15A5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x1648 SWAP1 PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x1658 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xC00 SWAP2 SWAP1 PUSH2 0x1627 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1523 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x16D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x16E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x16F8 PUSH1 0x20 DUP5 ADD PUSH2 0x16B9 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x173F JUMPI PUSH2 0x173F PUSH2 0x1701 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x1761 JUMPI PUSH2 0x1761 PUSH2 0x1701 JUMP JUMPDEST POP PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1776 DUP2 PUSH2 0x1717 JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x178B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17BE DUP4 PUSH2 0x16B9 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x17D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x17EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17F9 DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1747 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x181C JUMPI PUSH2 0x181C PUSH2 0x1701 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1523 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1858 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x186E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x187F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1892 PUSH2 0x188D DUP3 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x1717 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP6 ADD ADD SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x18B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x18F5 JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x18D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E6 DUP10 PUSH1 0x20 DUP4 DUP10 ADD ADD PUSH2 0x1826 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x18B9 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17F9 DUP6 DUP3 DUP7 ADD PUSH2 0x1826 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1957 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x193F JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1978 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x193C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1523 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1960 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x19C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x19D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x19E6 PUSH2 0x188D DUP3 PUSH2 0x1803 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP6 ADD ADD SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x1A08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x1A31 JUMPI PUSH2 0x1A20 DUP5 PUSH2 0x16B9 JUMP JUMPDEST DUP3 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1A0F JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1523 DUP3 PUSH2 0x16B9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AAF JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x1A9A DUP6 DUP4 MLOAD PUSH2 0x1960 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1A7E JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 ADD SWAP1 PUSH1 0x40 DUP5 ADD SWAP1 DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1AFC JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1AD5 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1B38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1B38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP6 ADD DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BB0 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH2 0x1B94 DUP2 DUP8 PUSH1 0x20 DUP6 ADD PUSH2 0x193C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP5 SWAP1 SWAP5 ADD SWAP4 POP PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1B7A JUMP JUMPDEST POP SWAP2 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1BCF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1BEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x600 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1C1C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C3C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1C28 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1C5C JUMPI PUSH2 0x1C5C PUSH2 0x1701 JUMP JUMPDEST PUSH2 0x1C70 DUP2 PUSH2 0x1C6A DUP5 SLOAD PUSH2 0x1BBB JUMP JUMPDEST DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1CA4 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x1C8C JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x1C3C JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1CD4 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1CB4 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x1CF2 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP6 ADD DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BB0 JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1D60 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x193C JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCDF8B4C520FFE197C5343C6 CREATE2 0xAE 0xC5 SWAP6 PUSH17 0x151EF9A492F2C624FD45DDDE6135EC4202 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP PUSH1 0xFF DELEGATECALL EXTCODEHASH 0xB3 0xDD MCOPY NUMBER MULMOD LT PUSH9 0x61E1122D0446898FBF SWAP14 0x21 PUSH3 0xCF48CB SSTORE 0xD0 PC ADD 0xCA MSTORE CREATE 0xC5 PUSH31 0x16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00A264 PUSH10 0x70667358221220B4FF7B 0xAD 0xB8 0xDF GT 0xC0 ORIGIN 0x27 0x28 0x22 0xEC 0x26 PUSH23 0xF4CA9FB821E6F4D6963F68A4293B81BB9564736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"552:7115:51:-:0;;;1171:4:4;1128:48;;552:7115:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ADMIN_15491":{"entryPoint":null,"id":15491,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_28":{"entryPoint":null,"id":28,"parameterSlots":0,"returnSlots":0},"@UPGRADE_INTERFACE_VERSION_972":{"entryPoint":null,"id":972,"parameterSlots":0,"returnSlots":0},"@__AccessControl_init_63":{"entryPoint":null,"id":63,"parameterSlots":0,"returnSlots":0},"@__UUPSUpgradeable_init_1002":{"entryPoint":4275,"id":1002,"parameterSlots":0,"returnSlots":0},"@_authorizeUpgrade_15549":{"entryPoint":3903,"id":15549,"parameterSlots":1,"returnSlots":0},"@_checkAddressSetting_15814":{"entryPoint":3519,"id":15814,"parameterSlots":2,"returnSlots":0},"@_checkBoolSetting_15863":{"entryPoint":null,"id":15863,"parameterSlots":2,"returnSlots":0},"@_checkInitializing_870":{"entryPoint":5018,"id":870,"parameterSlots":0,"returnSlots":0},"@_checkNonPayable_3695":{"entryPoint":5292,"id":3695,"parameterSlots":0,"returnSlots":0},"@_checkNotDelegated_1078":{"entryPoint":4116,"id":1078,"parameterSlots":0,"returnSlots":0},"@_checkProxy_1062":{"entryPoint":3738,"id":1062,"parameterSlots":0,"returnSlots":0},"@_checkRole_129":{"entryPoint":3062,"id":129,"parameterSlots":1,"returnSlots":0},"@_checkRole_150":{"entryPoint":4818,"id":150,"parameterSlots":2,"returnSlots":0},"@_checkStringSetting_15930":{"entryPoint":4189,"id":15930,"parameterSlots":2,"returnSlots":0},"@_checkUintSetting_15641":{"entryPoint":4382,"id":15641,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_916":{"entryPoint":3240,"id":916,"parameterSlots":0,"returnSlots":0},"@_forbiddenChangingAddress_15759":{"entryPoint":4875,"id":15759,"parameterSlots":1,"returnSlots":0},"@_getAccessControlStorage_46":{"entryPoint":null,"id":46,"parameterSlots":0,"returnSlots":1},"@_getInitializableStorage_947":{"entryPoint":null,"id":947,"parameterSlots":0,"returnSlots":1},"@_getInitializedVersion_927":{"entryPoint":null,"id":927,"parameterSlots":0,"returnSlots":1},"@_grantRole_315":{"entryPoint":3075,"id":315,"parameterSlots":2,"returnSlots":1},"@_isInitializing_938":{"entryPoint":null,"id":938,"parameterSlots":0,"returnSlots":1},"@_msgSender_2855":{"entryPoint":null,"id":2855,"parameterSlots":0,"returnSlots":1},"@_revert_6627":{"entryPoint":5418,"id":6627,"parameterSlots":1,"returnSlots":0},"@_revokeRole_361":{"entryPoint":3395,"id":361,"parameterSlots":2,"returnSlots":1},"@_setImplementation_3475":{"entryPoint":5073,"id":3475,"parameterSlots":1,"returnSlots":0},"@_setRoleAdmin_268":{"entryPoint":4283,"id":268,"parameterSlots":2,"returnSlots":0},"@_upgradeToAndCallUUPS_1129":{"entryPoint":3927,"id":1129,"parameterSlots":2,"returnSlots":0},"@disableInitializers_16246":{"entryPoint":1421,"id":16246,"parameterSlots":0,"returnSlots":0},"@functionDelegateCall_6545":{"entryPoint":5174,"id":6545,"parameterSlots":2,"returnSlots":1},"@getAddressSetting_15854":{"entryPoint":null,"id":15854,"parameterSlots":1,"returnSlots":1},"@getAddressSlot_6935":{"entryPoint":null,"id":6935,"parameterSlots":1,"returnSlots":1},"@getBoolSetting_15903":{"entryPoint":null,"id":15903,"parameterSlots":1,"returnSlots":1},"@getImplementation_3448":{"entryPoint":null,"id":3448,"parameterSlots":0,"returnSlots":1},"@getRoleAdmin_171":{"entryPoint":1353,"id":171,"parameterSlots":1,"returnSlots":1},"@getStringSetting_15970":{"entryPoint":2064,"id":15970,"parameterSlots":1,"returnSlots":1},"@getTrustedEVMExecutors_15670":{"entryPoint":2751,"id":15670,"parameterSlots":0,"returnSlots":1},"@getTrustedTVMExecutors_15699":{"entryPoint":2534,"id":15699,"parameterSlots":0,"returnSlots":1},"@getUintSetting_15739":{"entryPoint":null,"id":15739,"parameterSlots":1,"returnSlots":1},"@grantRole_190":{"entryPoint":1387,"id":190,"parameterSlots":2,"returnSlots":0},"@hasRole_116":{"entryPoint":1899,"id":116,"parameterSlots":2,"returnSlots":1},"@initialize_15538":{"entryPoint":2226,"id":15538,"parameterSlots":1,"returnSlots":0},"@proxiableUUID_1020":{"entryPoint":1671,"id":1020,"parameterSlots":0,"returnSlots":1},"@renounceRole_232":{"entryPoint":1485,"id":232,"parameterSlots":2,"returnSlots":0},"@revokeRole_209":{"entryPoint":2849,"id":209,"parameterSlots":2,"returnSlots":0},"@setAddressSetting_15841":{"entryPoint":1541,"id":15841,"parameterSlots":2,"returnSlots":0},"@setBoolSetting_15890":{"entryPoint":2986,"id":15890,"parameterSlots":2,"returnSlots":0},"@setStringSetting_15957":{"entryPoint":1810,"id":15957,"parameterSlots":2,"returnSlots":0},"@setTrustedEVMExecutors_15660":{"entryPoint":1955,"id":15660,"parameterSlots":1,"returnSlots":0},"@setTrustedTVMExecutors_15689":{"entryPoint":1700,"id":15689,"parameterSlots":1,"returnSlots":0},"@setUintSetting_15726":{"entryPoint":2877,"id":15726,"parameterSlots":2,"returnSlots":0},"@supportsInterface_2912":{"entryPoint":null,"id":2912,"parameterSlots":1,"returnSlots":1},"@supportsInterface_91":{"entryPoint":1298,"id":91,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_1040":{"entryPoint":1640,"id":1040,"parameterSlots":2,"returnSlots":0},"@upgradeToAndCall_3511":{"entryPoint":4932,"id":3511,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_6585":{"entryPoint":5323,"id":6585,"parameterSlots":3,"returnSlots":1},"abi_decode_address":{"entryPoint":5817,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_bytes":{"entryPoint":5959,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_string":{"entryPoint":6182,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6715,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":6050,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6559,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr":{"entryPoint":6214,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":5792,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":7477,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":5845,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_bool":{"entryPoint":6979,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_string_memory_ptr":{"entryPoint":6400,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint64":{"entryPoint":6919,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":5750,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":6496,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":7425,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":7021,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":7502,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":6843,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":6742,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6540,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":5911,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_string_dyn":{"entryPoint":6147,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":7157,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":7235,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":6460,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":7099,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":5889,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13921:89","nodeType":"YulBlock","src":"0:13921:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"83:217:89","nodeType":"YulBlock","src":"83:217:89","statements":[{"body":{"nativeSrc":"129:16:89","nodeType":"YulBlock","src":"129:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:89","nodeType":"YulLiteral","src":"138:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:89","nodeType":"YulLiteral","src":"141:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:89","nodeType":"YulIdentifier","src":"131:6:89"},"nativeSrc":"131:12:89","nodeType":"YulFunctionCall","src":"131:12:89"},"nativeSrc":"131:12:89","nodeType":"YulExpressionStatement","src":"131:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:89","nodeType":"YulIdentifier","src":"104:7:89"},{"name":"headStart","nativeSrc":"113:9:89","nodeType":"YulIdentifier","src":"113:9:89"}],"functionName":{"name":"sub","nativeSrc":"100:3:89","nodeType":"YulIdentifier","src":"100:3:89"},"nativeSrc":"100:23:89","nodeType":"YulFunctionCall","src":"100:23:89"},{"kind":"number","nativeSrc":"125:2:89","nodeType":"YulLiteral","src":"125:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:89","nodeType":"YulIdentifier","src":"96:3:89"},"nativeSrc":"96:32:89","nodeType":"YulFunctionCall","src":"96:32:89"},"nativeSrc":"93:52:89","nodeType":"YulIf","src":"93:52:89"},{"nativeSrc":"154:36:89","nodeType":"YulVariableDeclaration","src":"154:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:89","nodeType":"YulIdentifier","src":"180:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:89","nodeType":"YulIdentifier","src":"167:12:89"},"nativeSrc":"167:23:89","nodeType":"YulFunctionCall","src":"167:23:89"},"variables":[{"name":"value","nativeSrc":"158:5:89","nodeType":"YulTypedName","src":"158:5:89","type":""}]},{"body":{"nativeSrc":"254:16:89","nodeType":"YulBlock","src":"254:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:89","nodeType":"YulLiteral","src":"263:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:89","nodeType":"YulLiteral","src":"266:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:89","nodeType":"YulIdentifier","src":"256:6:89"},"nativeSrc":"256:12:89","nodeType":"YulFunctionCall","src":"256:12:89"},"nativeSrc":"256:12:89","nodeType":"YulExpressionStatement","src":"256:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:89","nodeType":"YulIdentifier","src":"212:5:89"},{"arguments":[{"name":"value","nativeSrc":"223:5:89","nodeType":"YulIdentifier","src":"223:5:89"},{"arguments":[{"kind":"number","nativeSrc":"234:3:89","nodeType":"YulLiteral","src":"234:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:89","nodeType":"YulLiteral","src":"239:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:89","nodeType":"YulIdentifier","src":"230:3:89"},"nativeSrc":"230:20:89","nodeType":"YulFunctionCall","src":"230:20:89"}],"functionName":{"name":"and","nativeSrc":"219:3:89","nodeType":"YulIdentifier","src":"219:3:89"},"nativeSrc":"219:32:89","nodeType":"YulFunctionCall","src":"219:32:89"}],"functionName":{"name":"eq","nativeSrc":"209:2:89","nodeType":"YulIdentifier","src":"209:2:89"},"nativeSrc":"209:43:89","nodeType":"YulFunctionCall","src":"209:43:89"}],"functionName":{"name":"iszero","nativeSrc":"202:6:89","nodeType":"YulIdentifier","src":"202:6:89"},"nativeSrc":"202:51:89","nodeType":"YulFunctionCall","src":"202:51:89"},"nativeSrc":"199:71:89","nodeType":"YulIf","src":"199:71:89"},{"nativeSrc":"279:15:89","nodeType":"YulAssignment","src":"279:15:89","value":{"name":"value","nativeSrc":"289:5:89","nodeType":"YulIdentifier","src":"289:5:89"},"variableNames":[{"name":"value0","nativeSrc":"279:6:89","nodeType":"YulIdentifier","src":"279:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:89","nodeType":"YulTypedName","src":"49:9:89","type":""},{"name":"dataEnd","nativeSrc":"60:7:89","nodeType":"YulTypedName","src":"60:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:89","nodeType":"YulTypedName","src":"72:6:89","type":""}],"src":"14:286:89"},{"body":{"nativeSrc":"400:92:89","nodeType":"YulBlock","src":"400:92:89","statements":[{"nativeSrc":"410:26:89","nodeType":"YulAssignment","src":"410:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:89","nodeType":"YulIdentifier","src":"422:9:89"},{"kind":"number","nativeSrc":"433:2:89","nodeType":"YulLiteral","src":"433:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:89","nodeType":"YulIdentifier","src":"418:3:89"},"nativeSrc":"418:18:89","nodeType":"YulFunctionCall","src":"418:18:89"},"variableNames":[{"name":"tail","nativeSrc":"410:4:89","nodeType":"YulIdentifier","src":"410:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:89","nodeType":"YulIdentifier","src":"452:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:89","nodeType":"YulIdentifier","src":"477:6:89"}],"functionName":{"name":"iszero","nativeSrc":"470:6:89","nodeType":"YulIdentifier","src":"470:6:89"},"nativeSrc":"470:14:89","nodeType":"YulFunctionCall","src":"470:14:89"}],"functionName":{"name":"iszero","nativeSrc":"463:6:89","nodeType":"YulIdentifier","src":"463:6:89"},"nativeSrc":"463:22:89","nodeType":"YulFunctionCall","src":"463:22:89"}],"functionName":{"name":"mstore","nativeSrc":"445:6:89","nodeType":"YulIdentifier","src":"445:6:89"},"nativeSrc":"445:41:89","nodeType":"YulFunctionCall","src":"445:41:89"},"nativeSrc":"445:41:89","nodeType":"YulExpressionStatement","src":"445:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:89","nodeType":"YulTypedName","src":"369:9:89","type":""},{"name":"value0","nativeSrc":"380:6:89","nodeType":"YulTypedName","src":"380:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:89","nodeType":"YulTypedName","src":"391:4:89","type":""}],"src":"305:187:89"},{"body":{"nativeSrc":"567:156:89","nodeType":"YulBlock","src":"567:156:89","statements":[{"body":{"nativeSrc":"613:16:89","nodeType":"YulBlock","src":"613:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"622:1:89","nodeType":"YulLiteral","src":"622:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"625:1:89","nodeType":"YulLiteral","src":"625:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"615:6:89","nodeType":"YulIdentifier","src":"615:6:89"},"nativeSrc":"615:12:89","nodeType":"YulFunctionCall","src":"615:12:89"},"nativeSrc":"615:12:89","nodeType":"YulExpressionStatement","src":"615:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"588:7:89","nodeType":"YulIdentifier","src":"588:7:89"},{"name":"headStart","nativeSrc":"597:9:89","nodeType":"YulIdentifier","src":"597:9:89"}],"functionName":{"name":"sub","nativeSrc":"584:3:89","nodeType":"YulIdentifier","src":"584:3:89"},"nativeSrc":"584:23:89","nodeType":"YulFunctionCall","src":"584:23:89"},{"kind":"number","nativeSrc":"609:2:89","nodeType":"YulLiteral","src":"609:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"580:3:89","nodeType":"YulIdentifier","src":"580:3:89"},"nativeSrc":"580:32:89","nodeType":"YulFunctionCall","src":"580:32:89"},"nativeSrc":"577:52:89","nodeType":"YulIf","src":"577:52:89"},{"nativeSrc":"638:14:89","nodeType":"YulVariableDeclaration","src":"638:14:89","value":{"kind":"number","nativeSrc":"651:1:89","nodeType":"YulLiteral","src":"651:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"642:5:89","nodeType":"YulTypedName","src":"642:5:89","type":""}]},{"nativeSrc":"661:32:89","nodeType":"YulAssignment","src":"661:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"683:9:89","nodeType":"YulIdentifier","src":"683:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"670:12:89","nodeType":"YulIdentifier","src":"670:12:89"},"nativeSrc":"670:23:89","nodeType":"YulFunctionCall","src":"670:23:89"},"variableNames":[{"name":"value","nativeSrc":"661:5:89","nodeType":"YulIdentifier","src":"661:5:89"}]},{"nativeSrc":"702:15:89","nodeType":"YulAssignment","src":"702:15:89","value":{"name":"value","nativeSrc":"712:5:89","nodeType":"YulIdentifier","src":"712:5:89"},"variableNames":[{"name":"value0","nativeSrc":"702:6:89","nodeType":"YulIdentifier","src":"702:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"497:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"533:9:89","nodeType":"YulTypedName","src":"533:9:89","type":""},{"name":"dataEnd","nativeSrc":"544:7:89","nodeType":"YulTypedName","src":"544:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"556:6:89","nodeType":"YulTypedName","src":"556:6:89","type":""}],"src":"497:226:89"},{"body":{"nativeSrc":"827:101:89","nodeType":"YulBlock","src":"827:101:89","statements":[{"nativeSrc":"837:26:89","nodeType":"YulAssignment","src":"837:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"849:9:89","nodeType":"YulIdentifier","src":"849:9:89"},{"kind":"number","nativeSrc":"860:2:89","nodeType":"YulLiteral","src":"860:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"845:3:89","nodeType":"YulIdentifier","src":"845:3:89"},"nativeSrc":"845:18:89","nodeType":"YulFunctionCall","src":"845:18:89"},"variableNames":[{"name":"tail","nativeSrc":"837:4:89","nodeType":"YulIdentifier","src":"837:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"879:9:89","nodeType":"YulIdentifier","src":"879:9:89"},{"arguments":[{"name":"value0","nativeSrc":"894:6:89","nodeType":"YulIdentifier","src":"894:6:89"},{"kind":"number","nativeSrc":"902:18:89","nodeType":"YulLiteral","src":"902:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"890:3:89","nodeType":"YulIdentifier","src":"890:3:89"},"nativeSrc":"890:31:89","nodeType":"YulFunctionCall","src":"890:31:89"}],"functionName":{"name":"mstore","nativeSrc":"872:6:89","nodeType":"YulIdentifier","src":"872:6:89"},"nativeSrc":"872:50:89","nodeType":"YulFunctionCall","src":"872:50:89"},"nativeSrc":"872:50:89","nodeType":"YulExpressionStatement","src":"872:50:89"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"728:200:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"796:9:89","nodeType":"YulTypedName","src":"796:9:89","type":""},{"name":"value0","nativeSrc":"807:6:89","nodeType":"YulTypedName","src":"807:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"818:4:89","nodeType":"YulTypedName","src":"818:4:89","type":""}],"src":"728:200:89"},{"body":{"nativeSrc":"1034:76:89","nodeType":"YulBlock","src":"1034:76:89","statements":[{"nativeSrc":"1044:26:89","nodeType":"YulAssignment","src":"1044:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1056:9:89","nodeType":"YulIdentifier","src":"1056:9:89"},{"kind":"number","nativeSrc":"1067:2:89","nodeType":"YulLiteral","src":"1067:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1052:3:89","nodeType":"YulIdentifier","src":"1052:3:89"},"nativeSrc":"1052:18:89","nodeType":"YulFunctionCall","src":"1052:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1044:4:89","nodeType":"YulIdentifier","src":"1044:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1086:9:89","nodeType":"YulIdentifier","src":"1086:9:89"},{"name":"value0","nativeSrc":"1097:6:89","nodeType":"YulIdentifier","src":"1097:6:89"}],"functionName":{"name":"mstore","nativeSrc":"1079:6:89","nodeType":"YulIdentifier","src":"1079:6:89"},"nativeSrc":"1079:25:89","nodeType":"YulFunctionCall","src":"1079:25:89"},"nativeSrc":"1079:25:89","nodeType":"YulExpressionStatement","src":"1079:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"933:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1003:9:89","nodeType":"YulTypedName","src":"1003:9:89","type":""},{"name":"value0","nativeSrc":"1014:6:89","nodeType":"YulTypedName","src":"1014:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1025:4:89","nodeType":"YulTypedName","src":"1025:4:89","type":""}],"src":"933:177:89"},{"body":{"nativeSrc":"1164:124:89","nodeType":"YulBlock","src":"1164:124:89","statements":[{"nativeSrc":"1174:29:89","nodeType":"YulAssignment","src":"1174:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"1196:6:89","nodeType":"YulIdentifier","src":"1196:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"1183:12:89","nodeType":"YulIdentifier","src":"1183:12:89"},"nativeSrc":"1183:20:89","nodeType":"YulFunctionCall","src":"1183:20:89"},"variableNames":[{"name":"value","nativeSrc":"1174:5:89","nodeType":"YulIdentifier","src":"1174:5:89"}]},{"body":{"nativeSrc":"1266:16:89","nodeType":"YulBlock","src":"1266:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1275:1:89","nodeType":"YulLiteral","src":"1275:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1278:1:89","nodeType":"YulLiteral","src":"1278:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1268:6:89","nodeType":"YulIdentifier","src":"1268:6:89"},"nativeSrc":"1268:12:89","nodeType":"YulFunctionCall","src":"1268:12:89"},"nativeSrc":"1268:12:89","nodeType":"YulExpressionStatement","src":"1268:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1225:5:89","nodeType":"YulIdentifier","src":"1225:5:89"},{"arguments":[{"name":"value","nativeSrc":"1236:5:89","nodeType":"YulIdentifier","src":"1236:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1251:3:89","nodeType":"YulLiteral","src":"1251:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1256:1:89","nodeType":"YulLiteral","src":"1256:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1247:3:89","nodeType":"YulIdentifier","src":"1247:3:89"},"nativeSrc":"1247:11:89","nodeType":"YulFunctionCall","src":"1247:11:89"},{"kind":"number","nativeSrc":"1260:1:89","nodeType":"YulLiteral","src":"1260:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1243:3:89","nodeType":"YulIdentifier","src":"1243:3:89"},"nativeSrc":"1243:19:89","nodeType":"YulFunctionCall","src":"1243:19:89"}],"functionName":{"name":"and","nativeSrc":"1232:3:89","nodeType":"YulIdentifier","src":"1232:3:89"},"nativeSrc":"1232:31:89","nodeType":"YulFunctionCall","src":"1232:31:89"}],"functionName":{"name":"eq","nativeSrc":"1222:2:89","nodeType":"YulIdentifier","src":"1222:2:89"},"nativeSrc":"1222:42:89","nodeType":"YulFunctionCall","src":"1222:42:89"}],"functionName":{"name":"iszero","nativeSrc":"1215:6:89","nodeType":"YulIdentifier","src":"1215:6:89"},"nativeSrc":"1215:50:89","nodeType":"YulFunctionCall","src":"1215:50:89"},"nativeSrc":"1212:70:89","nodeType":"YulIf","src":"1212:70:89"}]},"name":"abi_decode_address","nativeSrc":"1115:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1143:6:89","nodeType":"YulTypedName","src":"1143:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1154:5:89","nodeType":"YulTypedName","src":"1154:5:89","type":""}],"src":"1115:173:89"},{"body":{"nativeSrc":"1380:213:89","nodeType":"YulBlock","src":"1380:213:89","statements":[{"body":{"nativeSrc":"1426:16:89","nodeType":"YulBlock","src":"1426:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1435:1:89","nodeType":"YulLiteral","src":"1435:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1438:1:89","nodeType":"YulLiteral","src":"1438:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1428:6:89","nodeType":"YulIdentifier","src":"1428:6:89"},"nativeSrc":"1428:12:89","nodeType":"YulFunctionCall","src":"1428:12:89"},"nativeSrc":"1428:12:89","nodeType":"YulExpressionStatement","src":"1428:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1401:7:89","nodeType":"YulIdentifier","src":"1401:7:89"},{"name":"headStart","nativeSrc":"1410:9:89","nodeType":"YulIdentifier","src":"1410:9:89"}],"functionName":{"name":"sub","nativeSrc":"1397:3:89","nodeType":"YulIdentifier","src":"1397:3:89"},"nativeSrc":"1397:23:89","nodeType":"YulFunctionCall","src":"1397:23:89"},{"kind":"number","nativeSrc":"1422:2:89","nodeType":"YulLiteral","src":"1422:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1393:3:89","nodeType":"YulIdentifier","src":"1393:3:89"},"nativeSrc":"1393:32:89","nodeType":"YulFunctionCall","src":"1393:32:89"},"nativeSrc":"1390:52:89","nodeType":"YulIf","src":"1390:52:89"},{"nativeSrc":"1451:14:89","nodeType":"YulVariableDeclaration","src":"1451:14:89","value":{"kind":"number","nativeSrc":"1464:1:89","nodeType":"YulLiteral","src":"1464:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1455:5:89","nodeType":"YulTypedName","src":"1455:5:89","type":""}]},{"nativeSrc":"1474:32:89","nodeType":"YulAssignment","src":"1474:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1496:9:89","nodeType":"YulIdentifier","src":"1496:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1483:12:89","nodeType":"YulIdentifier","src":"1483:12:89"},"nativeSrc":"1483:23:89","nodeType":"YulFunctionCall","src":"1483:23:89"},"variableNames":[{"name":"value","nativeSrc":"1474:5:89","nodeType":"YulIdentifier","src":"1474:5:89"}]},{"nativeSrc":"1515:15:89","nodeType":"YulAssignment","src":"1515:15:89","value":{"name":"value","nativeSrc":"1525:5:89","nodeType":"YulIdentifier","src":"1525:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1515:6:89","nodeType":"YulIdentifier","src":"1515:6:89"}]},{"nativeSrc":"1539:48:89","nodeType":"YulAssignment","src":"1539:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1572:9:89","nodeType":"YulIdentifier","src":"1572:9:89"},{"kind":"number","nativeSrc":"1583:2:89","nodeType":"YulLiteral","src":"1583:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1568:3:89","nodeType":"YulIdentifier","src":"1568:3:89"},"nativeSrc":"1568:18:89","nodeType":"YulFunctionCall","src":"1568:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1549:18:89","nodeType":"YulIdentifier","src":"1549:18:89"},"nativeSrc":"1549:38:89","nodeType":"YulFunctionCall","src":"1549:38:89"},"variableNames":[{"name":"value1","nativeSrc":"1539:6:89","nodeType":"YulIdentifier","src":"1539:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"1293:300:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1338:9:89","nodeType":"YulTypedName","src":"1338:9:89","type":""},{"name":"dataEnd","nativeSrc":"1349:7:89","nodeType":"YulTypedName","src":"1349:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1361:6:89","nodeType":"YulTypedName","src":"1361:6:89","type":""},{"name":"value1","nativeSrc":"1369:6:89","nodeType":"YulTypedName","src":"1369:6:89","type":""}],"src":"1293:300:89"},{"body":{"nativeSrc":"1630:95:89","nodeType":"YulBlock","src":"1630:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1647:1:89","nodeType":"YulLiteral","src":"1647:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1654:3:89","nodeType":"YulLiteral","src":"1654:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"1659:10:89","nodeType":"YulLiteral","src":"1659:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1650:3:89","nodeType":"YulIdentifier","src":"1650:3:89"},"nativeSrc":"1650:20:89","nodeType":"YulFunctionCall","src":"1650:20:89"}],"functionName":{"name":"mstore","nativeSrc":"1640:6:89","nodeType":"YulIdentifier","src":"1640:6:89"},"nativeSrc":"1640:31:89","nodeType":"YulFunctionCall","src":"1640:31:89"},"nativeSrc":"1640:31:89","nodeType":"YulExpressionStatement","src":"1640:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1687:1:89","nodeType":"YulLiteral","src":"1687:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"1690:4:89","nodeType":"YulLiteral","src":"1690:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1680:6:89","nodeType":"YulIdentifier","src":"1680:6:89"},"nativeSrc":"1680:15:89","nodeType":"YulFunctionCall","src":"1680:15:89"},"nativeSrc":"1680:15:89","nodeType":"YulExpressionStatement","src":"1680:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1711:1:89","nodeType":"YulLiteral","src":"1711:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1714:4:89","nodeType":"YulLiteral","src":"1714:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1704:6:89","nodeType":"YulIdentifier","src":"1704:6:89"},"nativeSrc":"1704:15:89","nodeType":"YulFunctionCall","src":"1704:15:89"},"nativeSrc":"1704:15:89","nodeType":"YulExpressionStatement","src":"1704:15:89"}]},"name":"panic_error_0x41","nativeSrc":"1598:127:89","nodeType":"YulFunctionDefinition","src":"1598:127:89"},{"body":{"nativeSrc":"1775:230:89","nodeType":"YulBlock","src":"1775:230:89","statements":[{"nativeSrc":"1785:19:89","nodeType":"YulAssignment","src":"1785:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"1801:2:89","nodeType":"YulLiteral","src":"1801:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1795:5:89","nodeType":"YulIdentifier","src":"1795:5:89"},"nativeSrc":"1795:9:89","nodeType":"YulFunctionCall","src":"1795:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"1785:6:89","nodeType":"YulIdentifier","src":"1785:6:89"}]},{"nativeSrc":"1813:58:89","nodeType":"YulVariableDeclaration","src":"1813:58:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"1835:6:89","nodeType":"YulIdentifier","src":"1835:6:89"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"1851:4:89","nodeType":"YulIdentifier","src":"1851:4:89"},{"kind":"number","nativeSrc":"1857:2:89","nodeType":"YulLiteral","src":"1857:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1847:3:89","nodeType":"YulIdentifier","src":"1847:3:89"},"nativeSrc":"1847:13:89","nodeType":"YulFunctionCall","src":"1847:13:89"},{"arguments":[{"kind":"number","nativeSrc":"1866:2:89","nodeType":"YulLiteral","src":"1866:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1862:3:89","nodeType":"YulIdentifier","src":"1862:3:89"},"nativeSrc":"1862:7:89","nodeType":"YulFunctionCall","src":"1862:7:89"}],"functionName":{"name":"and","nativeSrc":"1843:3:89","nodeType":"YulIdentifier","src":"1843:3:89"},"nativeSrc":"1843:27:89","nodeType":"YulFunctionCall","src":"1843:27:89"}],"functionName":{"name":"add","nativeSrc":"1831:3:89","nodeType":"YulIdentifier","src":"1831:3:89"},"nativeSrc":"1831:40:89","nodeType":"YulFunctionCall","src":"1831:40:89"},"variables":[{"name":"newFreePtr","nativeSrc":"1817:10:89","nodeType":"YulTypedName","src":"1817:10:89","type":""}]},{"body":{"nativeSrc":"1946:22:89","nodeType":"YulBlock","src":"1946:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1948:16:89","nodeType":"YulIdentifier","src":"1948:16:89"},"nativeSrc":"1948:18:89","nodeType":"YulFunctionCall","src":"1948:18:89"},"nativeSrc":"1948:18:89","nodeType":"YulExpressionStatement","src":"1948:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1889:10:89","nodeType":"YulIdentifier","src":"1889:10:89"},{"kind":"number","nativeSrc":"1901:18:89","nodeType":"YulLiteral","src":"1901:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1886:2:89","nodeType":"YulIdentifier","src":"1886:2:89"},"nativeSrc":"1886:34:89","nodeType":"YulFunctionCall","src":"1886:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1925:10:89","nodeType":"YulIdentifier","src":"1925:10:89"},{"name":"memPtr","nativeSrc":"1937:6:89","nodeType":"YulIdentifier","src":"1937:6:89"}],"functionName":{"name":"lt","nativeSrc":"1922:2:89","nodeType":"YulIdentifier","src":"1922:2:89"},"nativeSrc":"1922:22:89","nodeType":"YulFunctionCall","src":"1922:22:89"}],"functionName":{"name":"or","nativeSrc":"1883:2:89","nodeType":"YulIdentifier","src":"1883:2:89"},"nativeSrc":"1883:62:89","nodeType":"YulFunctionCall","src":"1883:62:89"},"nativeSrc":"1880:88:89","nodeType":"YulIf","src":"1880:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1984:2:89","nodeType":"YulLiteral","src":"1984:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1988:10:89","nodeType":"YulIdentifier","src":"1988:10:89"}],"functionName":{"name":"mstore","nativeSrc":"1977:6:89","nodeType":"YulIdentifier","src":"1977:6:89"},"nativeSrc":"1977:22:89","nodeType":"YulFunctionCall","src":"1977:22:89"},"nativeSrc":"1977:22:89","nodeType":"YulExpressionStatement","src":"1977:22:89"}]},"name":"allocate_memory","nativeSrc":"1730:275:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1755:4:89","nodeType":"YulTypedName","src":"1755:4:89","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1764:6:89","nodeType":"YulTypedName","src":"1764:6:89","type":""}],"src":"1730:275:89"},{"body":{"nativeSrc":"2084:375:89","nodeType":"YulBlock","src":"2084:375:89","statements":[{"nativeSrc":"2094:13:89","nodeType":"YulVariableDeclaration","src":"2094:13:89","value":{"kind":"number","nativeSrc":"2106:1:89","nodeType":"YulLiteral","src":"2106:1:89","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"2098:4:89","nodeType":"YulTypedName","src":"2098:4:89","type":""}]},{"body":{"nativeSrc":"2150:22:89","nodeType":"YulBlock","src":"2150:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2152:16:89","nodeType":"YulIdentifier","src":"2152:16:89"},"nativeSrc":"2152:18:89","nodeType":"YulFunctionCall","src":"2152:18:89"},"nativeSrc":"2152:18:89","nodeType":"YulExpressionStatement","src":"2152:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2122:6:89","nodeType":"YulIdentifier","src":"2122:6:89"},{"kind":"number","nativeSrc":"2130:18:89","nodeType":"YulLiteral","src":"2130:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2119:2:89","nodeType":"YulIdentifier","src":"2119:2:89"},"nativeSrc":"2119:30:89","nodeType":"YulFunctionCall","src":"2119:30:89"},"nativeSrc":"2116:56:89","nodeType":"YulIf","src":"2116:56:89"},{"nativeSrc":"2181:48:89","nodeType":"YulAssignment","src":"2181:48:89","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2201:6:89","nodeType":"YulIdentifier","src":"2201:6:89"},{"kind":"number","nativeSrc":"2209:2:89","nodeType":"YulLiteral","src":"2209:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2197:3:89","nodeType":"YulIdentifier","src":"2197:3:89"},"nativeSrc":"2197:15:89","nodeType":"YulFunctionCall","src":"2197:15:89"},{"arguments":[{"kind":"number","nativeSrc":"2218:2:89","nodeType":"YulLiteral","src":"2218:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2214:3:89","nodeType":"YulIdentifier","src":"2214:3:89"},"nativeSrc":"2214:7:89","nodeType":"YulFunctionCall","src":"2214:7:89"}],"functionName":{"name":"and","nativeSrc":"2193:3:89","nodeType":"YulIdentifier","src":"2193:3:89"},"nativeSrc":"2193:29:89","nodeType":"YulFunctionCall","src":"2193:29:89"},{"kind":"number","nativeSrc":"2224:4:89","nodeType":"YulLiteral","src":"2224:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2189:3:89","nodeType":"YulIdentifier","src":"2189:3:89"},"nativeSrc":"2189:40:89","nodeType":"YulFunctionCall","src":"2189:40:89"},"variableNames":[{"name":"size","nativeSrc":"2181:4:89","nodeType":"YulIdentifier","src":"2181:4:89"}]},{"nativeSrc":"2238:30:89","nodeType":"YulAssignment","src":"2238:30:89","value":{"arguments":[{"name":"size","nativeSrc":"2263:4:89","nodeType":"YulIdentifier","src":"2263:4:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"2247:15:89","nodeType":"YulIdentifier","src":"2247:15:89"},"nativeSrc":"2247:21:89","nodeType":"YulFunctionCall","src":"2247:21:89"},"variableNames":[{"name":"array","nativeSrc":"2238:5:89","nodeType":"YulIdentifier","src":"2238:5:89"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2284:5:89","nodeType":"YulIdentifier","src":"2284:5:89"},{"name":"length","nativeSrc":"2291:6:89","nodeType":"YulIdentifier","src":"2291:6:89"}],"functionName":{"name":"mstore","nativeSrc":"2277:6:89","nodeType":"YulIdentifier","src":"2277:6:89"},"nativeSrc":"2277:21:89","nodeType":"YulFunctionCall","src":"2277:21:89"},"nativeSrc":"2277:21:89","nodeType":"YulExpressionStatement","src":"2277:21:89"},{"body":{"nativeSrc":"2336:16:89","nodeType":"YulBlock","src":"2336:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2345:1:89","nodeType":"YulLiteral","src":"2345:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2348:1:89","nodeType":"YulLiteral","src":"2348:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2338:6:89","nodeType":"YulIdentifier","src":"2338:6:89"},"nativeSrc":"2338:12:89","nodeType":"YulFunctionCall","src":"2338:12:89"},"nativeSrc":"2338:12:89","nodeType":"YulExpressionStatement","src":"2338:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2317:3:89","nodeType":"YulIdentifier","src":"2317:3:89"},{"name":"length","nativeSrc":"2322:6:89","nodeType":"YulIdentifier","src":"2322:6:89"}],"functionName":{"name":"add","nativeSrc":"2313:3:89","nodeType":"YulIdentifier","src":"2313:3:89"},"nativeSrc":"2313:16:89","nodeType":"YulFunctionCall","src":"2313:16:89"},{"name":"end","nativeSrc":"2331:3:89","nodeType":"YulIdentifier","src":"2331:3:89"}],"functionName":{"name":"gt","nativeSrc":"2310:2:89","nodeType":"YulIdentifier","src":"2310:2:89"},"nativeSrc":"2310:25:89","nodeType":"YulFunctionCall","src":"2310:25:89"},"nativeSrc":"2307:45:89","nodeType":"YulIf","src":"2307:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"array","nativeSrc":"2378:5:89","nodeType":"YulIdentifier","src":"2378:5:89"},{"kind":"number","nativeSrc":"2385:4:89","nodeType":"YulLiteral","src":"2385:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2374:3:89","nodeType":"YulIdentifier","src":"2374:3:89"},"nativeSrc":"2374:16:89","nodeType":"YulFunctionCall","src":"2374:16:89"},{"name":"src","nativeSrc":"2392:3:89","nodeType":"YulIdentifier","src":"2392:3:89"},{"name":"length","nativeSrc":"2397:6:89","nodeType":"YulIdentifier","src":"2397:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"2361:12:89","nodeType":"YulIdentifier","src":"2361:12:89"},"nativeSrc":"2361:43:89","nodeType":"YulFunctionCall","src":"2361:43:89"},"nativeSrc":"2361:43:89","nodeType":"YulExpressionStatement","src":"2361:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nativeSrc":"2428:5:89","nodeType":"YulIdentifier","src":"2428:5:89"},{"name":"length","nativeSrc":"2435:6:89","nodeType":"YulIdentifier","src":"2435:6:89"}],"functionName":{"name":"add","nativeSrc":"2424:3:89","nodeType":"YulIdentifier","src":"2424:3:89"},"nativeSrc":"2424:18:89","nodeType":"YulFunctionCall","src":"2424:18:89"},{"kind":"number","nativeSrc":"2444:4:89","nodeType":"YulLiteral","src":"2444:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2420:3:89","nodeType":"YulIdentifier","src":"2420:3:89"},"nativeSrc":"2420:29:89","nodeType":"YulFunctionCall","src":"2420:29:89"},{"kind":"number","nativeSrc":"2451:1:89","nodeType":"YulLiteral","src":"2451:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2413:6:89","nodeType":"YulIdentifier","src":"2413:6:89"},"nativeSrc":"2413:40:89","nodeType":"YulFunctionCall","src":"2413:40:89"},"nativeSrc":"2413:40:89","nodeType":"YulExpressionStatement","src":"2413:40:89"}]},"name":"abi_decode_available_length_bytes","nativeSrc":"2010:449:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2053:3:89","nodeType":"YulTypedName","src":"2053:3:89","type":""},{"name":"length","nativeSrc":"2058:6:89","nodeType":"YulTypedName","src":"2058:6:89","type":""},{"name":"end","nativeSrc":"2066:3:89","nodeType":"YulTypedName","src":"2066:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2074:5:89","nodeType":"YulTypedName","src":"2074:5:89","type":""}],"src":"2010:449:89"},{"body":{"nativeSrc":"2560:427:89","nodeType":"YulBlock","src":"2560:427:89","statements":[{"body":{"nativeSrc":"2606:16:89","nodeType":"YulBlock","src":"2606:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2615:1:89","nodeType":"YulLiteral","src":"2615:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2618:1:89","nodeType":"YulLiteral","src":"2618:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2608:6:89","nodeType":"YulIdentifier","src":"2608:6:89"},"nativeSrc":"2608:12:89","nodeType":"YulFunctionCall","src":"2608:12:89"},"nativeSrc":"2608:12:89","nodeType":"YulExpressionStatement","src":"2608:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2581:7:89","nodeType":"YulIdentifier","src":"2581:7:89"},{"name":"headStart","nativeSrc":"2590:9:89","nodeType":"YulIdentifier","src":"2590:9:89"}],"functionName":{"name":"sub","nativeSrc":"2577:3:89","nodeType":"YulIdentifier","src":"2577:3:89"},"nativeSrc":"2577:23:89","nodeType":"YulFunctionCall","src":"2577:23:89"},{"kind":"number","nativeSrc":"2602:2:89","nodeType":"YulLiteral","src":"2602:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2573:3:89","nodeType":"YulIdentifier","src":"2573:3:89"},"nativeSrc":"2573:32:89","nodeType":"YulFunctionCall","src":"2573:32:89"},"nativeSrc":"2570:52:89","nodeType":"YulIf","src":"2570:52:89"},{"nativeSrc":"2631:39:89","nodeType":"YulAssignment","src":"2631:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2660:9:89","nodeType":"YulIdentifier","src":"2660:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2641:18:89","nodeType":"YulIdentifier","src":"2641:18:89"},"nativeSrc":"2641:29:89","nodeType":"YulFunctionCall","src":"2641:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2631:6:89","nodeType":"YulIdentifier","src":"2631:6:89"}]},{"nativeSrc":"2679:46:89","nodeType":"YulVariableDeclaration","src":"2679:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2710:9:89","nodeType":"YulIdentifier","src":"2710:9:89"},{"kind":"number","nativeSrc":"2721:2:89","nodeType":"YulLiteral","src":"2721:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2706:3:89","nodeType":"YulIdentifier","src":"2706:3:89"},"nativeSrc":"2706:18:89","nodeType":"YulFunctionCall","src":"2706:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"2693:12:89","nodeType":"YulIdentifier","src":"2693:12:89"},"nativeSrc":"2693:32:89","nodeType":"YulFunctionCall","src":"2693:32:89"},"variables":[{"name":"offset","nativeSrc":"2683:6:89","nodeType":"YulTypedName","src":"2683:6:89","type":""}]},{"body":{"nativeSrc":"2768:16:89","nodeType":"YulBlock","src":"2768:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2777:1:89","nodeType":"YulLiteral","src":"2777:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2780:1:89","nodeType":"YulLiteral","src":"2780:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2770:6:89","nodeType":"YulIdentifier","src":"2770:6:89"},"nativeSrc":"2770:12:89","nodeType":"YulFunctionCall","src":"2770:12:89"},"nativeSrc":"2770:12:89","nodeType":"YulExpressionStatement","src":"2770:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2740:6:89","nodeType":"YulIdentifier","src":"2740:6:89"},{"kind":"number","nativeSrc":"2748:18:89","nodeType":"YulLiteral","src":"2748:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2737:2:89","nodeType":"YulIdentifier","src":"2737:2:89"},"nativeSrc":"2737:30:89","nodeType":"YulFunctionCall","src":"2737:30:89"},"nativeSrc":"2734:50:89","nodeType":"YulIf","src":"2734:50:89"},{"nativeSrc":"2793:32:89","nodeType":"YulVariableDeclaration","src":"2793:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2807:9:89","nodeType":"YulIdentifier","src":"2807:9:89"},{"name":"offset","nativeSrc":"2818:6:89","nodeType":"YulIdentifier","src":"2818:6:89"}],"functionName":{"name":"add","nativeSrc":"2803:3:89","nodeType":"YulIdentifier","src":"2803:3:89"},"nativeSrc":"2803:22:89","nodeType":"YulFunctionCall","src":"2803:22:89"},"variables":[{"name":"_1","nativeSrc":"2797:2:89","nodeType":"YulTypedName","src":"2797:2:89","type":""}]},{"body":{"nativeSrc":"2873:16:89","nodeType":"YulBlock","src":"2873:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2882:1:89","nodeType":"YulLiteral","src":"2882:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2885:1:89","nodeType":"YulLiteral","src":"2885:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2875:6:89","nodeType":"YulIdentifier","src":"2875:6:89"},"nativeSrc":"2875:12:89","nodeType":"YulFunctionCall","src":"2875:12:89"},"nativeSrc":"2875:12:89","nodeType":"YulExpressionStatement","src":"2875:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"2852:2:89","nodeType":"YulIdentifier","src":"2852:2:89"},{"kind":"number","nativeSrc":"2856:4:89","nodeType":"YulLiteral","src":"2856:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2848:3:89","nodeType":"YulIdentifier","src":"2848:3:89"},"nativeSrc":"2848:13:89","nodeType":"YulFunctionCall","src":"2848:13:89"},{"name":"dataEnd","nativeSrc":"2863:7:89","nodeType":"YulIdentifier","src":"2863:7:89"}],"functionName":{"name":"slt","nativeSrc":"2844:3:89","nodeType":"YulIdentifier","src":"2844:3:89"},"nativeSrc":"2844:27:89","nodeType":"YulFunctionCall","src":"2844:27:89"}],"functionName":{"name":"iszero","nativeSrc":"2837:6:89","nodeType":"YulIdentifier","src":"2837:6:89"},"nativeSrc":"2837:35:89","nodeType":"YulFunctionCall","src":"2837:35:89"},"nativeSrc":"2834:55:89","nodeType":"YulIf","src":"2834:55:89"},{"nativeSrc":"2898:83:89","nodeType":"YulAssignment","src":"2898:83:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"2946:2:89","nodeType":"YulIdentifier","src":"2946:2:89"},{"kind":"number","nativeSrc":"2950:2:89","nodeType":"YulLiteral","src":"2950:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2942:3:89","nodeType":"YulIdentifier","src":"2942:3:89"},"nativeSrc":"2942:11:89","nodeType":"YulFunctionCall","src":"2942:11:89"},{"arguments":[{"name":"_1","nativeSrc":"2968:2:89","nodeType":"YulIdentifier","src":"2968:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"2955:12:89","nodeType":"YulIdentifier","src":"2955:12:89"},"nativeSrc":"2955:16:89","nodeType":"YulFunctionCall","src":"2955:16:89"},{"name":"dataEnd","nativeSrc":"2973:7:89","nodeType":"YulIdentifier","src":"2973:7:89"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"2908:33:89","nodeType":"YulIdentifier","src":"2908:33:89"},"nativeSrc":"2908:73:89","nodeType":"YulFunctionCall","src":"2908:73:89"},"variableNames":[{"name":"value1","nativeSrc":"2898:6:89","nodeType":"YulIdentifier","src":"2898:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"2464:523:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2518:9:89","nodeType":"YulTypedName","src":"2518:9:89","type":""},{"name":"dataEnd","nativeSrc":"2529:7:89","nodeType":"YulTypedName","src":"2529:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2541:6:89","nodeType":"YulTypedName","src":"2541:6:89","type":""},{"name":"value1","nativeSrc":"2549:6:89","nodeType":"YulTypedName","src":"2549:6:89","type":""}],"src":"2464:523:89"},{"body":{"nativeSrc":"3060:114:89","nodeType":"YulBlock","src":"3060:114:89","statements":[{"body":{"nativeSrc":"3104:22:89","nodeType":"YulBlock","src":"3104:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3106:16:89","nodeType":"YulIdentifier","src":"3106:16:89"},"nativeSrc":"3106:18:89","nodeType":"YulFunctionCall","src":"3106:18:89"},"nativeSrc":"3106:18:89","nodeType":"YulExpressionStatement","src":"3106:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3076:6:89","nodeType":"YulIdentifier","src":"3076:6:89"},{"kind":"number","nativeSrc":"3084:18:89","nodeType":"YulLiteral","src":"3084:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3073:2:89","nodeType":"YulIdentifier","src":"3073:2:89"},"nativeSrc":"3073:30:89","nodeType":"YulFunctionCall","src":"3073:30:89"},"nativeSrc":"3070:56:89","nodeType":"YulIf","src":"3070:56:89"},{"nativeSrc":"3135:33:89","nodeType":"YulAssignment","src":"3135:33:89","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3151:1:89","nodeType":"YulLiteral","src":"3151:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"3154:6:89","nodeType":"YulIdentifier","src":"3154:6:89"}],"functionName":{"name":"shl","nativeSrc":"3147:3:89","nodeType":"YulIdentifier","src":"3147:3:89"},"nativeSrc":"3147:14:89","nodeType":"YulFunctionCall","src":"3147:14:89"},{"kind":"number","nativeSrc":"3163:4:89","nodeType":"YulLiteral","src":"3163:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3143:3:89","nodeType":"YulIdentifier","src":"3143:3:89"},"nativeSrc":"3143:25:89","nodeType":"YulFunctionCall","src":"3143:25:89"},"variableNames":[{"name":"size","nativeSrc":"3135:4:89","nodeType":"YulIdentifier","src":"3135:4:89"}]}]},"name":"array_allocation_size_array_string_dyn","nativeSrc":"2992:182:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"3040:6:89","nodeType":"YulTypedName","src":"3040:6:89","type":""}],"returnVariables":[{"name":"size","nativeSrc":"3051:4:89","nodeType":"YulTypedName","src":"3051:4:89","type":""}],"src":"2992:182:89"},{"body":{"nativeSrc":"3232:168:89","nodeType":"YulBlock","src":"3232:168:89","statements":[{"body":{"nativeSrc":"3281:16:89","nodeType":"YulBlock","src":"3281:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3290:1:89","nodeType":"YulLiteral","src":"3290:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3293:1:89","nodeType":"YulLiteral","src":"3293:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3283:6:89","nodeType":"YulIdentifier","src":"3283:6:89"},"nativeSrc":"3283:12:89","nodeType":"YulFunctionCall","src":"3283:12:89"},"nativeSrc":"3283:12:89","nodeType":"YulExpressionStatement","src":"3283:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3260:6:89","nodeType":"YulIdentifier","src":"3260:6:89"},{"kind":"number","nativeSrc":"3268:4:89","nodeType":"YulLiteral","src":"3268:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3256:3:89","nodeType":"YulIdentifier","src":"3256:3:89"},"nativeSrc":"3256:17:89","nodeType":"YulFunctionCall","src":"3256:17:89"},{"name":"end","nativeSrc":"3275:3:89","nodeType":"YulIdentifier","src":"3275:3:89"}],"functionName":{"name":"slt","nativeSrc":"3252:3:89","nodeType":"YulIdentifier","src":"3252:3:89"},"nativeSrc":"3252:27:89","nodeType":"YulFunctionCall","src":"3252:27:89"}],"functionName":{"name":"iszero","nativeSrc":"3245:6:89","nodeType":"YulIdentifier","src":"3245:6:89"},"nativeSrc":"3245:35:89","nodeType":"YulFunctionCall","src":"3245:35:89"},"nativeSrc":"3242:55:89","nodeType":"YulIf","src":"3242:55:89"},{"nativeSrc":"3306:88:89","nodeType":"YulAssignment","src":"3306:88:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3353:6:89","nodeType":"YulIdentifier","src":"3353:6:89"},{"kind":"number","nativeSrc":"3361:4:89","nodeType":"YulLiteral","src":"3361:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3349:3:89","nodeType":"YulIdentifier","src":"3349:3:89"},"nativeSrc":"3349:17:89","nodeType":"YulFunctionCall","src":"3349:17:89"},{"arguments":[{"name":"offset","nativeSrc":"3381:6:89","nodeType":"YulIdentifier","src":"3381:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"3368:12:89","nodeType":"YulIdentifier","src":"3368:12:89"},"nativeSrc":"3368:20:89","nodeType":"YulFunctionCall","src":"3368:20:89"},{"name":"end","nativeSrc":"3390:3:89","nodeType":"YulIdentifier","src":"3390:3:89"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"3315:33:89","nodeType":"YulIdentifier","src":"3315:33:89"},"nativeSrc":"3315:79:89","nodeType":"YulFunctionCall","src":"3315:79:89"},"variableNames":[{"name":"array","nativeSrc":"3306:5:89","nodeType":"YulIdentifier","src":"3306:5:89"}]}]},"name":"abi_decode_string","nativeSrc":"3179:221:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3206:6:89","nodeType":"YulTypedName","src":"3206:6:89","type":""},{"name":"end","nativeSrc":"3214:3:89","nodeType":"YulTypedName","src":"3214:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3222:5:89","nodeType":"YulTypedName","src":"3222:5:89","type":""}],"src":"3179:221:89"},{"body":{"nativeSrc":"3510:947:89","nodeType":"YulBlock","src":"3510:947:89","statements":[{"body":{"nativeSrc":"3556:16:89","nodeType":"YulBlock","src":"3556:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3565:1:89","nodeType":"YulLiteral","src":"3565:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3568:1:89","nodeType":"YulLiteral","src":"3568:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3558:6:89","nodeType":"YulIdentifier","src":"3558:6:89"},"nativeSrc":"3558:12:89","nodeType":"YulFunctionCall","src":"3558:12:89"},"nativeSrc":"3558:12:89","nodeType":"YulExpressionStatement","src":"3558:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3531:7:89","nodeType":"YulIdentifier","src":"3531:7:89"},{"name":"headStart","nativeSrc":"3540:9:89","nodeType":"YulIdentifier","src":"3540:9:89"}],"functionName":{"name":"sub","nativeSrc":"3527:3:89","nodeType":"YulIdentifier","src":"3527:3:89"},"nativeSrc":"3527:23:89","nodeType":"YulFunctionCall","src":"3527:23:89"},{"kind":"number","nativeSrc":"3552:2:89","nodeType":"YulLiteral","src":"3552:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3523:3:89","nodeType":"YulIdentifier","src":"3523:3:89"},"nativeSrc":"3523:32:89","nodeType":"YulFunctionCall","src":"3523:32:89"},"nativeSrc":"3520:52:89","nodeType":"YulIf","src":"3520:52:89"},{"nativeSrc":"3581:37:89","nodeType":"YulVariableDeclaration","src":"3581:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3608:9:89","nodeType":"YulIdentifier","src":"3608:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3595:12:89","nodeType":"YulIdentifier","src":"3595:12:89"},"nativeSrc":"3595:23:89","nodeType":"YulFunctionCall","src":"3595:23:89"},"variables":[{"name":"offset","nativeSrc":"3585:6:89","nodeType":"YulTypedName","src":"3585:6:89","type":""}]},{"body":{"nativeSrc":"3661:16:89","nodeType":"YulBlock","src":"3661:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3670:1:89","nodeType":"YulLiteral","src":"3670:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3673:1:89","nodeType":"YulLiteral","src":"3673:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3663:6:89","nodeType":"YulIdentifier","src":"3663:6:89"},"nativeSrc":"3663:12:89","nodeType":"YulFunctionCall","src":"3663:12:89"},"nativeSrc":"3663:12:89","nodeType":"YulExpressionStatement","src":"3663:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3633:6:89","nodeType":"YulIdentifier","src":"3633:6:89"},{"kind":"number","nativeSrc":"3641:18:89","nodeType":"YulLiteral","src":"3641:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3630:2:89","nodeType":"YulIdentifier","src":"3630:2:89"},"nativeSrc":"3630:30:89","nodeType":"YulFunctionCall","src":"3630:30:89"},"nativeSrc":"3627:50:89","nodeType":"YulIf","src":"3627:50:89"},{"nativeSrc":"3686:32:89","nodeType":"YulVariableDeclaration","src":"3686:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3700:9:89","nodeType":"YulIdentifier","src":"3700:9:89"},{"name":"offset","nativeSrc":"3711:6:89","nodeType":"YulIdentifier","src":"3711:6:89"}],"functionName":{"name":"add","nativeSrc":"3696:3:89","nodeType":"YulIdentifier","src":"3696:3:89"},"nativeSrc":"3696:22:89","nodeType":"YulFunctionCall","src":"3696:22:89"},"variables":[{"name":"_1","nativeSrc":"3690:2:89","nodeType":"YulTypedName","src":"3690:2:89","type":""}]},{"body":{"nativeSrc":"3766:16:89","nodeType":"YulBlock","src":"3766:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3775:1:89","nodeType":"YulLiteral","src":"3775:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3778:1:89","nodeType":"YulLiteral","src":"3778:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3768:6:89","nodeType":"YulIdentifier","src":"3768:6:89"},"nativeSrc":"3768:12:89","nodeType":"YulFunctionCall","src":"3768:12:89"},"nativeSrc":"3768:12:89","nodeType":"YulExpressionStatement","src":"3768:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"3745:2:89","nodeType":"YulIdentifier","src":"3745:2:89"},{"kind":"number","nativeSrc":"3749:4:89","nodeType":"YulLiteral","src":"3749:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3741:3:89","nodeType":"YulIdentifier","src":"3741:3:89"},"nativeSrc":"3741:13:89","nodeType":"YulFunctionCall","src":"3741:13:89"},{"name":"dataEnd","nativeSrc":"3756:7:89","nodeType":"YulIdentifier","src":"3756:7:89"}],"functionName":{"name":"slt","nativeSrc":"3737:3:89","nodeType":"YulIdentifier","src":"3737:3:89"},"nativeSrc":"3737:27:89","nodeType":"YulFunctionCall","src":"3737:27:89"}],"functionName":{"name":"iszero","nativeSrc":"3730:6:89","nodeType":"YulIdentifier","src":"3730:6:89"},"nativeSrc":"3730:35:89","nodeType":"YulFunctionCall","src":"3730:35:89"},"nativeSrc":"3727:55:89","nodeType":"YulIf","src":"3727:55:89"},{"nativeSrc":"3791:30:89","nodeType":"YulVariableDeclaration","src":"3791:30:89","value":{"arguments":[{"name":"_1","nativeSrc":"3818:2:89","nodeType":"YulIdentifier","src":"3818:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"3805:12:89","nodeType":"YulIdentifier","src":"3805:12:89"},"nativeSrc":"3805:16:89","nodeType":"YulFunctionCall","src":"3805:16:89"},"variables":[{"name":"length","nativeSrc":"3795:6:89","nodeType":"YulTypedName","src":"3795:6:89","type":""}]},{"nativeSrc":"3830:74:89","nodeType":"YulVariableDeclaration","src":"3830:74:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3896:6:89","nodeType":"YulIdentifier","src":"3896:6:89"}],"functionName":{"name":"array_allocation_size_array_string_dyn","nativeSrc":"3857:38:89","nodeType":"YulIdentifier","src":"3857:38:89"},"nativeSrc":"3857:46:89","nodeType":"YulFunctionCall","src":"3857:46:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"3841:15:89","nodeType":"YulIdentifier","src":"3841:15:89"},"nativeSrc":"3841:63:89","nodeType":"YulFunctionCall","src":"3841:63:89"},"variables":[{"name":"dst","nativeSrc":"3834:3:89","nodeType":"YulTypedName","src":"3834:3:89","type":""}]},{"nativeSrc":"3913:16:89","nodeType":"YulVariableDeclaration","src":"3913:16:89","value":{"name":"dst","nativeSrc":"3926:3:89","nodeType":"YulIdentifier","src":"3926:3:89"},"variables":[{"name":"array","nativeSrc":"3917:5:89","nodeType":"YulTypedName","src":"3917:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"3945:3:89","nodeType":"YulIdentifier","src":"3945:3:89"},{"name":"length","nativeSrc":"3950:6:89","nodeType":"YulIdentifier","src":"3950:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3938:6:89","nodeType":"YulIdentifier","src":"3938:6:89"},"nativeSrc":"3938:19:89","nodeType":"YulFunctionCall","src":"3938:19:89"},"nativeSrc":"3938:19:89","nodeType":"YulExpressionStatement","src":"3938:19:89"},{"nativeSrc":"3966:19:89","nodeType":"YulAssignment","src":"3966:19:89","value":{"arguments":[{"name":"dst","nativeSrc":"3977:3:89","nodeType":"YulIdentifier","src":"3977:3:89"},{"kind":"number","nativeSrc":"3982:2:89","nodeType":"YulLiteral","src":"3982:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3973:3:89","nodeType":"YulIdentifier","src":"3973:3:89"},"nativeSrc":"3973:12:89","nodeType":"YulFunctionCall","src":"3973:12:89"},"variableNames":[{"name":"dst","nativeSrc":"3966:3:89","nodeType":"YulIdentifier","src":"3966:3:89"}]},{"nativeSrc":"3994:46:89","nodeType":"YulVariableDeclaration","src":"3994:46:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4016:2:89","nodeType":"YulIdentifier","src":"4016:2:89"},{"arguments":[{"kind":"number","nativeSrc":"4024:1:89","nodeType":"YulLiteral","src":"4024:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"4027:6:89","nodeType":"YulIdentifier","src":"4027:6:89"}],"functionName":{"name":"shl","nativeSrc":"4020:3:89","nodeType":"YulIdentifier","src":"4020:3:89"},"nativeSrc":"4020:14:89","nodeType":"YulFunctionCall","src":"4020:14:89"}],"functionName":{"name":"add","nativeSrc":"4012:3:89","nodeType":"YulIdentifier","src":"4012:3:89"},"nativeSrc":"4012:23:89","nodeType":"YulFunctionCall","src":"4012:23:89"},{"kind":"number","nativeSrc":"4037:2:89","nodeType":"YulLiteral","src":"4037:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4008:3:89","nodeType":"YulIdentifier","src":"4008:3:89"},"nativeSrc":"4008:32:89","nodeType":"YulFunctionCall","src":"4008:32:89"},"variables":[{"name":"srcEnd","nativeSrc":"3998:6:89","nodeType":"YulTypedName","src":"3998:6:89","type":""}]},{"body":{"nativeSrc":"4072:16:89","nodeType":"YulBlock","src":"4072:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4081:1:89","nodeType":"YulLiteral","src":"4081:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4084:1:89","nodeType":"YulLiteral","src":"4084:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4074:6:89","nodeType":"YulIdentifier","src":"4074:6:89"},"nativeSrc":"4074:12:89","nodeType":"YulFunctionCall","src":"4074:12:89"},"nativeSrc":"4074:12:89","nodeType":"YulExpressionStatement","src":"4074:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"4055:6:89","nodeType":"YulIdentifier","src":"4055:6:89"},{"name":"dataEnd","nativeSrc":"4063:7:89","nodeType":"YulIdentifier","src":"4063:7:89"}],"functionName":{"name":"gt","nativeSrc":"4052:2:89","nodeType":"YulIdentifier","src":"4052:2:89"},"nativeSrc":"4052:19:89","nodeType":"YulFunctionCall","src":"4052:19:89"},"nativeSrc":"4049:39:89","nodeType":"YulIf","src":"4049:39:89"},{"nativeSrc":"4097:22:89","nodeType":"YulVariableDeclaration","src":"4097:22:89","value":{"arguments":[{"name":"_1","nativeSrc":"4112:2:89","nodeType":"YulIdentifier","src":"4112:2:89"},{"kind":"number","nativeSrc":"4116:2:89","nodeType":"YulLiteral","src":"4116:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4108:3:89","nodeType":"YulIdentifier","src":"4108:3:89"},"nativeSrc":"4108:11:89","nodeType":"YulFunctionCall","src":"4108:11:89"},"variables":[{"name":"src","nativeSrc":"4101:3:89","nodeType":"YulTypedName","src":"4101:3:89","type":""}]},{"body":{"nativeSrc":"4184:243:89","nodeType":"YulBlock","src":"4184:243:89","statements":[{"nativeSrc":"4198:36:89","nodeType":"YulVariableDeclaration","src":"4198:36:89","value":{"arguments":[{"name":"src","nativeSrc":"4230:3:89","nodeType":"YulIdentifier","src":"4230:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"4217:12:89","nodeType":"YulIdentifier","src":"4217:12:89"},"nativeSrc":"4217:17:89","nodeType":"YulFunctionCall","src":"4217:17:89"},"variables":[{"name":"innerOffset","nativeSrc":"4202:11:89","nodeType":"YulTypedName","src":"4202:11:89","type":""}]},{"body":{"nativeSrc":"4286:16:89","nodeType":"YulBlock","src":"4286:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4295:1:89","nodeType":"YulLiteral","src":"4295:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4298:1:89","nodeType":"YulLiteral","src":"4298:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4288:6:89","nodeType":"YulIdentifier","src":"4288:6:89"},"nativeSrc":"4288:12:89","nodeType":"YulFunctionCall","src":"4288:12:89"},"nativeSrc":"4288:12:89","nodeType":"YulExpressionStatement","src":"4288:12:89"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"4253:11:89","nodeType":"YulIdentifier","src":"4253:11:89"},{"kind":"number","nativeSrc":"4266:18:89","nodeType":"YulLiteral","src":"4266:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4250:2:89","nodeType":"YulIdentifier","src":"4250:2:89"},"nativeSrc":"4250:35:89","nodeType":"YulFunctionCall","src":"4250:35:89"},"nativeSrc":"4247:55:89","nodeType":"YulIf","src":"4247:55:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"4322:3:89","nodeType":"YulIdentifier","src":"4322:3:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4353:2:89","nodeType":"YulIdentifier","src":"4353:2:89"},{"name":"innerOffset","nativeSrc":"4357:11:89","nodeType":"YulIdentifier","src":"4357:11:89"}],"functionName":{"name":"add","nativeSrc":"4349:3:89","nodeType":"YulIdentifier","src":"4349:3:89"},"nativeSrc":"4349:20:89","nodeType":"YulFunctionCall","src":"4349:20:89"},{"kind":"number","nativeSrc":"4371:2:89","nodeType":"YulLiteral","src":"4371:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4345:3:89","nodeType":"YulIdentifier","src":"4345:3:89"},"nativeSrc":"4345:29:89","nodeType":"YulFunctionCall","src":"4345:29:89"},{"name":"dataEnd","nativeSrc":"4376:7:89","nodeType":"YulIdentifier","src":"4376:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4327:17:89","nodeType":"YulIdentifier","src":"4327:17:89"},"nativeSrc":"4327:57:89","nodeType":"YulFunctionCall","src":"4327:57:89"}],"functionName":{"name":"mstore","nativeSrc":"4315:6:89","nodeType":"YulIdentifier","src":"4315:6:89"},"nativeSrc":"4315:70:89","nodeType":"YulFunctionCall","src":"4315:70:89"},"nativeSrc":"4315:70:89","nodeType":"YulExpressionStatement","src":"4315:70:89"},{"nativeSrc":"4398:19:89","nodeType":"YulAssignment","src":"4398:19:89","value":{"arguments":[{"name":"dst","nativeSrc":"4409:3:89","nodeType":"YulIdentifier","src":"4409:3:89"},{"kind":"number","nativeSrc":"4414:2:89","nodeType":"YulLiteral","src":"4414:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4405:3:89","nodeType":"YulIdentifier","src":"4405:3:89"},"nativeSrc":"4405:12:89","nodeType":"YulFunctionCall","src":"4405:12:89"},"variableNames":[{"name":"dst","nativeSrc":"4398:3:89","nodeType":"YulIdentifier","src":"4398:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"4139:3:89","nodeType":"YulIdentifier","src":"4139:3:89"},{"name":"srcEnd","nativeSrc":"4144:6:89","nodeType":"YulIdentifier","src":"4144:6:89"}],"functionName":{"name":"lt","nativeSrc":"4136:2:89","nodeType":"YulIdentifier","src":"4136:2:89"},"nativeSrc":"4136:15:89","nodeType":"YulFunctionCall","src":"4136:15:89"},"nativeSrc":"4128:299:89","nodeType":"YulForLoop","post":{"nativeSrc":"4152:23:89","nodeType":"YulBlock","src":"4152:23:89","statements":[{"nativeSrc":"4154:19:89","nodeType":"YulAssignment","src":"4154:19:89","value":{"arguments":[{"name":"src","nativeSrc":"4165:3:89","nodeType":"YulIdentifier","src":"4165:3:89"},{"kind":"number","nativeSrc":"4170:2:89","nodeType":"YulLiteral","src":"4170:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4161:3:89","nodeType":"YulIdentifier","src":"4161:3:89"},"nativeSrc":"4161:12:89","nodeType":"YulFunctionCall","src":"4161:12:89"},"variableNames":[{"name":"src","nativeSrc":"4154:3:89","nodeType":"YulIdentifier","src":"4154:3:89"}]}]},"pre":{"nativeSrc":"4132:3:89","nodeType":"YulBlock","src":"4132:3:89","statements":[]},"src":"4128:299:89"},{"nativeSrc":"4436:15:89","nodeType":"YulAssignment","src":"4436:15:89","value":{"name":"array","nativeSrc":"4446:5:89","nodeType":"YulIdentifier","src":"4446:5:89"},"variableNames":[{"name":"value0","nativeSrc":"4436:6:89","nodeType":"YulIdentifier","src":"4436:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr","nativeSrc":"3405:1052:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3476:9:89","nodeType":"YulTypedName","src":"3476:9:89","type":""},{"name":"dataEnd","nativeSrc":"3487:7:89","nodeType":"YulTypedName","src":"3487:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3499:6:89","nodeType":"YulTypedName","src":"3499:6:89","type":""}],"src":"3405:1052:89"},{"body":{"nativeSrc":"4559:339:89","nodeType":"YulBlock","src":"4559:339:89","statements":[{"body":{"nativeSrc":"4605:16:89","nodeType":"YulBlock","src":"4605:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4614:1:89","nodeType":"YulLiteral","src":"4614:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4617:1:89","nodeType":"YulLiteral","src":"4617:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4607:6:89","nodeType":"YulIdentifier","src":"4607:6:89"},"nativeSrc":"4607:12:89","nodeType":"YulFunctionCall","src":"4607:12:89"},"nativeSrc":"4607:12:89","nodeType":"YulExpressionStatement","src":"4607:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4580:7:89","nodeType":"YulIdentifier","src":"4580:7:89"},{"name":"headStart","nativeSrc":"4589:9:89","nodeType":"YulIdentifier","src":"4589:9:89"}],"functionName":{"name":"sub","nativeSrc":"4576:3:89","nodeType":"YulIdentifier","src":"4576:3:89"},"nativeSrc":"4576:23:89","nodeType":"YulFunctionCall","src":"4576:23:89"},{"kind":"number","nativeSrc":"4601:2:89","nodeType":"YulLiteral","src":"4601:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4572:3:89","nodeType":"YulIdentifier","src":"4572:3:89"},"nativeSrc":"4572:32:89","nodeType":"YulFunctionCall","src":"4572:32:89"},"nativeSrc":"4569:52:89","nodeType":"YulIf","src":"4569:52:89"},{"nativeSrc":"4630:14:89","nodeType":"YulVariableDeclaration","src":"4630:14:89","value":{"kind":"number","nativeSrc":"4643:1:89","nodeType":"YulLiteral","src":"4643:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4634:5:89","nodeType":"YulTypedName","src":"4634:5:89","type":""}]},{"nativeSrc":"4653:32:89","nodeType":"YulAssignment","src":"4653:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4675:9:89","nodeType":"YulIdentifier","src":"4675:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"4662:12:89","nodeType":"YulIdentifier","src":"4662:12:89"},"nativeSrc":"4662:23:89","nodeType":"YulFunctionCall","src":"4662:23:89"},"variableNames":[{"name":"value","nativeSrc":"4653:5:89","nodeType":"YulIdentifier","src":"4653:5:89"}]},{"nativeSrc":"4694:15:89","nodeType":"YulAssignment","src":"4694:15:89","value":{"name":"value","nativeSrc":"4704:5:89","nodeType":"YulIdentifier","src":"4704:5:89"},"variableNames":[{"name":"value0","nativeSrc":"4694:6:89","nodeType":"YulIdentifier","src":"4694:6:89"}]},{"nativeSrc":"4718:46:89","nodeType":"YulVariableDeclaration","src":"4718:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4749:9:89","nodeType":"YulIdentifier","src":"4749:9:89"},{"kind":"number","nativeSrc":"4760:2:89","nodeType":"YulLiteral","src":"4760:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4745:3:89","nodeType":"YulIdentifier","src":"4745:3:89"},"nativeSrc":"4745:18:89","nodeType":"YulFunctionCall","src":"4745:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4732:12:89","nodeType":"YulIdentifier","src":"4732:12:89"},"nativeSrc":"4732:32:89","nodeType":"YulFunctionCall","src":"4732:32:89"},"variables":[{"name":"offset","nativeSrc":"4722:6:89","nodeType":"YulTypedName","src":"4722:6:89","type":""}]},{"body":{"nativeSrc":"4807:16:89","nodeType":"YulBlock","src":"4807:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4816:1:89","nodeType":"YulLiteral","src":"4816:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4819:1:89","nodeType":"YulLiteral","src":"4819:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4809:6:89","nodeType":"YulIdentifier","src":"4809:6:89"},"nativeSrc":"4809:12:89","nodeType":"YulFunctionCall","src":"4809:12:89"},"nativeSrc":"4809:12:89","nodeType":"YulExpressionStatement","src":"4809:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4779:6:89","nodeType":"YulIdentifier","src":"4779:6:89"},{"kind":"number","nativeSrc":"4787:18:89","nodeType":"YulLiteral","src":"4787:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4776:2:89","nodeType":"YulIdentifier","src":"4776:2:89"},"nativeSrc":"4776:30:89","nodeType":"YulFunctionCall","src":"4776:30:89"},"nativeSrc":"4773:50:89","nodeType":"YulIf","src":"4773:50:89"},{"nativeSrc":"4832:60:89","nodeType":"YulAssignment","src":"4832:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4864:9:89","nodeType":"YulIdentifier","src":"4864:9:89"},{"name":"offset","nativeSrc":"4875:6:89","nodeType":"YulIdentifier","src":"4875:6:89"}],"functionName":{"name":"add","nativeSrc":"4860:3:89","nodeType":"YulIdentifier","src":"4860:3:89"},"nativeSrc":"4860:22:89","nodeType":"YulFunctionCall","src":"4860:22:89"},{"name":"dataEnd","nativeSrc":"4884:7:89","nodeType":"YulIdentifier","src":"4884:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4842:17:89","nodeType":"YulIdentifier","src":"4842:17:89"},"nativeSrc":"4842:50:89","nodeType":"YulFunctionCall","src":"4842:50:89"},"variableNames":[{"name":"value1","nativeSrc":"4832:6:89","nodeType":"YulIdentifier","src":"4832:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_string_memory_ptr","nativeSrc":"4462:436:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4517:9:89","nodeType":"YulTypedName","src":"4517:9:89","type":""},{"name":"dataEnd","nativeSrc":"4528:7:89","nodeType":"YulTypedName","src":"4528:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4540:6:89","nodeType":"YulTypedName","src":"4540:6:89","type":""},{"name":"value1","nativeSrc":"4548:6:89","nodeType":"YulTypedName","src":"4548:6:89","type":""}],"src":"4462:436:89"},{"body":{"nativeSrc":"5004:102:89","nodeType":"YulBlock","src":"5004:102:89","statements":[{"nativeSrc":"5014:26:89","nodeType":"YulAssignment","src":"5014:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5026:9:89","nodeType":"YulIdentifier","src":"5026:9:89"},{"kind":"number","nativeSrc":"5037:2:89","nodeType":"YulLiteral","src":"5037:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5022:3:89","nodeType":"YulIdentifier","src":"5022:3:89"},"nativeSrc":"5022:18:89","nodeType":"YulFunctionCall","src":"5022:18:89"},"variableNames":[{"name":"tail","nativeSrc":"5014:4:89","nodeType":"YulIdentifier","src":"5014:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5056:9:89","nodeType":"YulIdentifier","src":"5056:9:89"},{"arguments":[{"name":"value0","nativeSrc":"5071:6:89","nodeType":"YulIdentifier","src":"5071:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5087:3:89","nodeType":"YulLiteral","src":"5087:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"5092:1:89","nodeType":"YulLiteral","src":"5092:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5083:3:89","nodeType":"YulIdentifier","src":"5083:3:89"},"nativeSrc":"5083:11:89","nodeType":"YulFunctionCall","src":"5083:11:89"},{"kind":"number","nativeSrc":"5096:1:89","nodeType":"YulLiteral","src":"5096:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5079:3:89","nodeType":"YulIdentifier","src":"5079:3:89"},"nativeSrc":"5079:19:89","nodeType":"YulFunctionCall","src":"5079:19:89"}],"functionName":{"name":"and","nativeSrc":"5067:3:89","nodeType":"YulIdentifier","src":"5067:3:89"},"nativeSrc":"5067:32:89","nodeType":"YulFunctionCall","src":"5067:32:89"}],"functionName":{"name":"mstore","nativeSrc":"5049:6:89","nodeType":"YulIdentifier","src":"5049:6:89"},"nativeSrc":"5049:51:89","nodeType":"YulFunctionCall","src":"5049:51:89"},"nativeSrc":"5049:51:89","nodeType":"YulExpressionStatement","src":"5049:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4903:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4973:9:89","nodeType":"YulTypedName","src":"4973:9:89","type":""},{"name":"value0","nativeSrc":"4984:6:89","nodeType":"YulTypedName","src":"4984:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4995:4:89","nodeType":"YulTypedName","src":"4995:4:89","type":""}],"src":"4903:203:89"},{"body":{"nativeSrc":"5177:184:89","nodeType":"YulBlock","src":"5177:184:89","statements":[{"nativeSrc":"5187:10:89","nodeType":"YulVariableDeclaration","src":"5187:10:89","value":{"kind":"number","nativeSrc":"5196:1:89","nodeType":"YulLiteral","src":"5196:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5191:1:89","nodeType":"YulTypedName","src":"5191:1:89","type":""}]},{"body":{"nativeSrc":"5256:63:89","nodeType":"YulBlock","src":"5256:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5281:3:89","nodeType":"YulIdentifier","src":"5281:3:89"},{"name":"i","nativeSrc":"5286:1:89","nodeType":"YulIdentifier","src":"5286:1:89"}],"functionName":{"name":"add","nativeSrc":"5277:3:89","nodeType":"YulIdentifier","src":"5277:3:89"},"nativeSrc":"5277:11:89","nodeType":"YulFunctionCall","src":"5277:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5300:3:89","nodeType":"YulIdentifier","src":"5300:3:89"},{"name":"i","nativeSrc":"5305:1:89","nodeType":"YulIdentifier","src":"5305:1:89"}],"functionName":{"name":"add","nativeSrc":"5296:3:89","nodeType":"YulIdentifier","src":"5296:3:89"},"nativeSrc":"5296:11:89","nodeType":"YulFunctionCall","src":"5296:11:89"}],"functionName":{"name":"mload","nativeSrc":"5290:5:89","nodeType":"YulIdentifier","src":"5290:5:89"},"nativeSrc":"5290:18:89","nodeType":"YulFunctionCall","src":"5290:18:89"}],"functionName":{"name":"mstore","nativeSrc":"5270:6:89","nodeType":"YulIdentifier","src":"5270:6:89"},"nativeSrc":"5270:39:89","nodeType":"YulFunctionCall","src":"5270:39:89"},"nativeSrc":"5270:39:89","nodeType":"YulExpressionStatement","src":"5270:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5217:1:89","nodeType":"YulIdentifier","src":"5217:1:89"},{"name":"length","nativeSrc":"5220:6:89","nodeType":"YulIdentifier","src":"5220:6:89"}],"functionName":{"name":"lt","nativeSrc":"5214:2:89","nodeType":"YulIdentifier","src":"5214:2:89"},"nativeSrc":"5214:13:89","nodeType":"YulFunctionCall","src":"5214:13:89"},"nativeSrc":"5206:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"5228:19:89","nodeType":"YulBlock","src":"5228:19:89","statements":[{"nativeSrc":"5230:15:89","nodeType":"YulAssignment","src":"5230:15:89","value":{"arguments":[{"name":"i","nativeSrc":"5239:1:89","nodeType":"YulIdentifier","src":"5239:1:89"},{"kind":"number","nativeSrc":"5242:2:89","nodeType":"YulLiteral","src":"5242:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5235:3:89","nodeType":"YulIdentifier","src":"5235:3:89"},"nativeSrc":"5235:10:89","nodeType":"YulFunctionCall","src":"5235:10:89"},"variableNames":[{"name":"i","nativeSrc":"5230:1:89","nodeType":"YulIdentifier","src":"5230:1:89"}]}]},"pre":{"nativeSrc":"5210:3:89","nodeType":"YulBlock","src":"5210:3:89","statements":[]},"src":"5206:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5339:3:89","nodeType":"YulIdentifier","src":"5339:3:89"},{"name":"length","nativeSrc":"5344:6:89","nodeType":"YulIdentifier","src":"5344:6:89"}],"functionName":{"name":"add","nativeSrc":"5335:3:89","nodeType":"YulIdentifier","src":"5335:3:89"},"nativeSrc":"5335:16:89","nodeType":"YulFunctionCall","src":"5335:16:89"},{"kind":"number","nativeSrc":"5353:1:89","nodeType":"YulLiteral","src":"5353:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5328:6:89","nodeType":"YulIdentifier","src":"5328:6:89"},"nativeSrc":"5328:27:89","nodeType":"YulFunctionCall","src":"5328:27:89"},"nativeSrc":"5328:27:89","nodeType":"YulExpressionStatement","src":"5328:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5111:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5155:3:89","nodeType":"YulTypedName","src":"5155:3:89","type":""},{"name":"dst","nativeSrc":"5160:3:89","nodeType":"YulTypedName","src":"5160:3:89","type":""},{"name":"length","nativeSrc":"5165:6:89","nodeType":"YulTypedName","src":"5165:6:89","type":""}],"src":"5111:250:89"},{"body":{"nativeSrc":"5416:221:89","nodeType":"YulBlock","src":"5416:221:89","statements":[{"nativeSrc":"5426:26:89","nodeType":"YulVariableDeclaration","src":"5426:26:89","value":{"arguments":[{"name":"value","nativeSrc":"5446:5:89","nodeType":"YulIdentifier","src":"5446:5:89"}],"functionName":{"name":"mload","nativeSrc":"5440:5:89","nodeType":"YulIdentifier","src":"5440:5:89"},"nativeSrc":"5440:12:89","nodeType":"YulFunctionCall","src":"5440:12:89"},"variables":[{"name":"length","nativeSrc":"5430:6:89","nodeType":"YulTypedName","src":"5430:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5468:3:89","nodeType":"YulIdentifier","src":"5468:3:89"},{"name":"length","nativeSrc":"5473:6:89","nodeType":"YulIdentifier","src":"5473:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5461:6:89","nodeType":"YulIdentifier","src":"5461:6:89"},"nativeSrc":"5461:19:89","nodeType":"YulFunctionCall","src":"5461:19:89"},"nativeSrc":"5461:19:89","nodeType":"YulExpressionStatement","src":"5461:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5528:5:89","nodeType":"YulIdentifier","src":"5528:5:89"},{"kind":"number","nativeSrc":"5535:4:89","nodeType":"YulLiteral","src":"5535:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5524:3:89","nodeType":"YulIdentifier","src":"5524:3:89"},"nativeSrc":"5524:16:89","nodeType":"YulFunctionCall","src":"5524:16:89"},{"arguments":[{"name":"pos","nativeSrc":"5546:3:89","nodeType":"YulIdentifier","src":"5546:3:89"},{"kind":"number","nativeSrc":"5551:4:89","nodeType":"YulLiteral","src":"5551:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5542:3:89","nodeType":"YulIdentifier","src":"5542:3:89"},"nativeSrc":"5542:14:89","nodeType":"YulFunctionCall","src":"5542:14:89"},{"name":"length","nativeSrc":"5558:6:89","nodeType":"YulIdentifier","src":"5558:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5489:34:89","nodeType":"YulIdentifier","src":"5489:34:89"},"nativeSrc":"5489:76:89","nodeType":"YulFunctionCall","src":"5489:76:89"},"nativeSrc":"5489:76:89","nodeType":"YulExpressionStatement","src":"5489:76:89"},{"nativeSrc":"5574:57:89","nodeType":"YulAssignment","src":"5574:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5589:3:89","nodeType":"YulIdentifier","src":"5589:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5602:6:89","nodeType":"YulIdentifier","src":"5602:6:89"},{"kind":"number","nativeSrc":"5610:2:89","nodeType":"YulLiteral","src":"5610:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5598:3:89","nodeType":"YulIdentifier","src":"5598:3:89"},"nativeSrc":"5598:15:89","nodeType":"YulFunctionCall","src":"5598:15:89"},{"arguments":[{"kind":"number","nativeSrc":"5619:2:89","nodeType":"YulLiteral","src":"5619:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5615:3:89","nodeType":"YulIdentifier","src":"5615:3:89"},"nativeSrc":"5615:7:89","nodeType":"YulFunctionCall","src":"5615:7:89"}],"functionName":{"name":"and","nativeSrc":"5594:3:89","nodeType":"YulIdentifier","src":"5594:3:89"},"nativeSrc":"5594:29:89","nodeType":"YulFunctionCall","src":"5594:29:89"}],"functionName":{"name":"add","nativeSrc":"5585:3:89","nodeType":"YulIdentifier","src":"5585:3:89"},"nativeSrc":"5585:39:89","nodeType":"YulFunctionCall","src":"5585:39:89"},{"kind":"number","nativeSrc":"5626:4:89","nodeType":"YulLiteral","src":"5626:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5581:3:89","nodeType":"YulIdentifier","src":"5581:3:89"},"nativeSrc":"5581:50:89","nodeType":"YulFunctionCall","src":"5581:50:89"},"variableNames":[{"name":"end","nativeSrc":"5574:3:89","nodeType":"YulIdentifier","src":"5574:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"5366:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5393:5:89","nodeType":"YulTypedName","src":"5393:5:89","type":""},{"name":"pos","nativeSrc":"5400:3:89","nodeType":"YulTypedName","src":"5400:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5408:3:89","nodeType":"YulTypedName","src":"5408:3:89","type":""}],"src":"5366:271:89"},{"body":{"nativeSrc":"5763:99:89","nodeType":"YulBlock","src":"5763:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5780:9:89","nodeType":"YulIdentifier","src":"5780:9:89"},{"kind":"number","nativeSrc":"5791:2:89","nodeType":"YulLiteral","src":"5791:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5773:6:89","nodeType":"YulIdentifier","src":"5773:6:89"},"nativeSrc":"5773:21:89","nodeType":"YulFunctionCall","src":"5773:21:89"},"nativeSrc":"5773:21:89","nodeType":"YulExpressionStatement","src":"5773:21:89"},{"nativeSrc":"5803:53:89","nodeType":"YulAssignment","src":"5803:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"5829:6:89","nodeType":"YulIdentifier","src":"5829:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"5841:9:89","nodeType":"YulIdentifier","src":"5841:9:89"},{"kind":"number","nativeSrc":"5852:2:89","nodeType":"YulLiteral","src":"5852:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5837:3:89","nodeType":"YulIdentifier","src":"5837:3:89"},"nativeSrc":"5837:18:89","nodeType":"YulFunctionCall","src":"5837:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5811:17:89","nodeType":"YulIdentifier","src":"5811:17:89"},"nativeSrc":"5811:45:89","nodeType":"YulFunctionCall","src":"5811:45:89"},"variableNames":[{"name":"tail","nativeSrc":"5803:4:89","nodeType":"YulIdentifier","src":"5803:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5642:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5732:9:89","nodeType":"YulTypedName","src":"5732:9:89","type":""},{"name":"value0","nativeSrc":"5743:6:89","nodeType":"YulTypedName","src":"5743:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5754:4:89","nodeType":"YulTypedName","src":"5754:4:89","type":""}],"src":"5642:220:89"},{"body":{"nativeSrc":"5962:796:89","nodeType":"YulBlock","src":"5962:796:89","statements":[{"body":{"nativeSrc":"6008:16:89","nodeType":"YulBlock","src":"6008:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6017:1:89","nodeType":"YulLiteral","src":"6017:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6020:1:89","nodeType":"YulLiteral","src":"6020:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6010:6:89","nodeType":"YulIdentifier","src":"6010:6:89"},"nativeSrc":"6010:12:89","nodeType":"YulFunctionCall","src":"6010:12:89"},"nativeSrc":"6010:12:89","nodeType":"YulExpressionStatement","src":"6010:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5983:7:89","nodeType":"YulIdentifier","src":"5983:7:89"},{"name":"headStart","nativeSrc":"5992:9:89","nodeType":"YulIdentifier","src":"5992:9:89"}],"functionName":{"name":"sub","nativeSrc":"5979:3:89","nodeType":"YulIdentifier","src":"5979:3:89"},"nativeSrc":"5979:23:89","nodeType":"YulFunctionCall","src":"5979:23:89"},{"kind":"number","nativeSrc":"6004:2:89","nodeType":"YulLiteral","src":"6004:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5975:3:89","nodeType":"YulIdentifier","src":"5975:3:89"},"nativeSrc":"5975:32:89","nodeType":"YulFunctionCall","src":"5975:32:89"},"nativeSrc":"5972:52:89","nodeType":"YulIf","src":"5972:52:89"},{"nativeSrc":"6033:37:89","nodeType":"YulVariableDeclaration","src":"6033:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6060:9:89","nodeType":"YulIdentifier","src":"6060:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"6047:12:89","nodeType":"YulIdentifier","src":"6047:12:89"},"nativeSrc":"6047:23:89","nodeType":"YulFunctionCall","src":"6047:23:89"},"variables":[{"name":"offset","nativeSrc":"6037:6:89","nodeType":"YulTypedName","src":"6037:6:89","type":""}]},{"body":{"nativeSrc":"6113:16:89","nodeType":"YulBlock","src":"6113:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6122:1:89","nodeType":"YulLiteral","src":"6122:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6125:1:89","nodeType":"YulLiteral","src":"6125:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6115:6:89","nodeType":"YulIdentifier","src":"6115:6:89"},"nativeSrc":"6115:12:89","nodeType":"YulFunctionCall","src":"6115:12:89"},"nativeSrc":"6115:12:89","nodeType":"YulExpressionStatement","src":"6115:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6085:6:89","nodeType":"YulIdentifier","src":"6085:6:89"},{"kind":"number","nativeSrc":"6093:18:89","nodeType":"YulLiteral","src":"6093:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6082:2:89","nodeType":"YulIdentifier","src":"6082:2:89"},"nativeSrc":"6082:30:89","nodeType":"YulFunctionCall","src":"6082:30:89"},"nativeSrc":"6079:50:89","nodeType":"YulIf","src":"6079:50:89"},{"nativeSrc":"6138:32:89","nodeType":"YulVariableDeclaration","src":"6138:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6152:9:89","nodeType":"YulIdentifier","src":"6152:9:89"},{"name":"offset","nativeSrc":"6163:6:89","nodeType":"YulIdentifier","src":"6163:6:89"}],"functionName":{"name":"add","nativeSrc":"6148:3:89","nodeType":"YulIdentifier","src":"6148:3:89"},"nativeSrc":"6148:22:89","nodeType":"YulFunctionCall","src":"6148:22:89"},"variables":[{"name":"_1","nativeSrc":"6142:2:89","nodeType":"YulTypedName","src":"6142:2:89","type":""}]},{"body":{"nativeSrc":"6218:16:89","nodeType":"YulBlock","src":"6218:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6227:1:89","nodeType":"YulLiteral","src":"6227:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6230:1:89","nodeType":"YulLiteral","src":"6230:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6220:6:89","nodeType":"YulIdentifier","src":"6220:6:89"},"nativeSrc":"6220:12:89","nodeType":"YulFunctionCall","src":"6220:12:89"},"nativeSrc":"6220:12:89","nodeType":"YulExpressionStatement","src":"6220:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6197:2:89","nodeType":"YulIdentifier","src":"6197:2:89"},{"kind":"number","nativeSrc":"6201:4:89","nodeType":"YulLiteral","src":"6201:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6193:3:89","nodeType":"YulIdentifier","src":"6193:3:89"},"nativeSrc":"6193:13:89","nodeType":"YulFunctionCall","src":"6193:13:89"},{"name":"dataEnd","nativeSrc":"6208:7:89","nodeType":"YulIdentifier","src":"6208:7:89"}],"functionName":{"name":"slt","nativeSrc":"6189:3:89","nodeType":"YulIdentifier","src":"6189:3:89"},"nativeSrc":"6189:27:89","nodeType":"YulFunctionCall","src":"6189:27:89"}],"functionName":{"name":"iszero","nativeSrc":"6182:6:89","nodeType":"YulIdentifier","src":"6182:6:89"},"nativeSrc":"6182:35:89","nodeType":"YulFunctionCall","src":"6182:35:89"},"nativeSrc":"6179:55:89","nodeType":"YulIf","src":"6179:55:89"},{"nativeSrc":"6243:30:89","nodeType":"YulVariableDeclaration","src":"6243:30:89","value":{"arguments":[{"name":"_1","nativeSrc":"6270:2:89","nodeType":"YulIdentifier","src":"6270:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"6257:12:89","nodeType":"YulIdentifier","src":"6257:12:89"},"nativeSrc":"6257:16:89","nodeType":"YulFunctionCall","src":"6257:16:89"},"variables":[{"name":"length","nativeSrc":"6247:6:89","nodeType":"YulTypedName","src":"6247:6:89","type":""}]},{"nativeSrc":"6282:74:89","nodeType":"YulVariableDeclaration","src":"6282:74:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6348:6:89","nodeType":"YulIdentifier","src":"6348:6:89"}],"functionName":{"name":"array_allocation_size_array_string_dyn","nativeSrc":"6309:38:89","nodeType":"YulIdentifier","src":"6309:38:89"},"nativeSrc":"6309:46:89","nodeType":"YulFunctionCall","src":"6309:46:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"6293:15:89","nodeType":"YulIdentifier","src":"6293:15:89"},"nativeSrc":"6293:63:89","nodeType":"YulFunctionCall","src":"6293:63:89"},"variables":[{"name":"dst","nativeSrc":"6286:3:89","nodeType":"YulTypedName","src":"6286:3:89","type":""}]},{"nativeSrc":"6365:16:89","nodeType":"YulVariableDeclaration","src":"6365:16:89","value":{"name":"dst","nativeSrc":"6378:3:89","nodeType":"YulIdentifier","src":"6378:3:89"},"variables":[{"name":"array","nativeSrc":"6369:5:89","nodeType":"YulTypedName","src":"6369:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"6397:3:89","nodeType":"YulIdentifier","src":"6397:3:89"},{"name":"length","nativeSrc":"6402:6:89","nodeType":"YulIdentifier","src":"6402:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6390:6:89","nodeType":"YulIdentifier","src":"6390:6:89"},"nativeSrc":"6390:19:89","nodeType":"YulFunctionCall","src":"6390:19:89"},"nativeSrc":"6390:19:89","nodeType":"YulExpressionStatement","src":"6390:19:89"},{"nativeSrc":"6418:19:89","nodeType":"YulAssignment","src":"6418:19:89","value":{"arguments":[{"name":"dst","nativeSrc":"6429:3:89","nodeType":"YulIdentifier","src":"6429:3:89"},{"kind":"number","nativeSrc":"6434:2:89","nodeType":"YulLiteral","src":"6434:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6425:3:89","nodeType":"YulIdentifier","src":"6425:3:89"},"nativeSrc":"6425:12:89","nodeType":"YulFunctionCall","src":"6425:12:89"},"variableNames":[{"name":"dst","nativeSrc":"6418:3:89","nodeType":"YulIdentifier","src":"6418:3:89"}]},{"nativeSrc":"6446:46:89","nodeType":"YulVariableDeclaration","src":"6446:46:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6468:2:89","nodeType":"YulIdentifier","src":"6468:2:89"},{"arguments":[{"kind":"number","nativeSrc":"6476:1:89","nodeType":"YulLiteral","src":"6476:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"6479:6:89","nodeType":"YulIdentifier","src":"6479:6:89"}],"functionName":{"name":"shl","nativeSrc":"6472:3:89","nodeType":"YulIdentifier","src":"6472:3:89"},"nativeSrc":"6472:14:89","nodeType":"YulFunctionCall","src":"6472:14:89"}],"functionName":{"name":"add","nativeSrc":"6464:3:89","nodeType":"YulIdentifier","src":"6464:3:89"},"nativeSrc":"6464:23:89","nodeType":"YulFunctionCall","src":"6464:23:89"},{"kind":"number","nativeSrc":"6489:2:89","nodeType":"YulLiteral","src":"6489:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6460:3:89","nodeType":"YulIdentifier","src":"6460:3:89"},"nativeSrc":"6460:32:89","nodeType":"YulFunctionCall","src":"6460:32:89"},"variables":[{"name":"srcEnd","nativeSrc":"6450:6:89","nodeType":"YulTypedName","src":"6450:6:89","type":""}]},{"body":{"nativeSrc":"6524:16:89","nodeType":"YulBlock","src":"6524:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6533:1:89","nodeType":"YulLiteral","src":"6533:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6536:1:89","nodeType":"YulLiteral","src":"6536:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6526:6:89","nodeType":"YulIdentifier","src":"6526:6:89"},"nativeSrc":"6526:12:89","nodeType":"YulFunctionCall","src":"6526:12:89"},"nativeSrc":"6526:12:89","nodeType":"YulExpressionStatement","src":"6526:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"6507:6:89","nodeType":"YulIdentifier","src":"6507:6:89"},{"name":"dataEnd","nativeSrc":"6515:7:89","nodeType":"YulIdentifier","src":"6515:7:89"}],"functionName":{"name":"gt","nativeSrc":"6504:2:89","nodeType":"YulIdentifier","src":"6504:2:89"},"nativeSrc":"6504:19:89","nodeType":"YulFunctionCall","src":"6504:19:89"},"nativeSrc":"6501:39:89","nodeType":"YulIf","src":"6501:39:89"},{"nativeSrc":"6549:22:89","nodeType":"YulVariableDeclaration","src":"6549:22:89","value":{"arguments":[{"name":"_1","nativeSrc":"6564:2:89","nodeType":"YulIdentifier","src":"6564:2:89"},{"kind":"number","nativeSrc":"6568:2:89","nodeType":"YulLiteral","src":"6568:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6560:3:89","nodeType":"YulIdentifier","src":"6560:3:89"},"nativeSrc":"6560:11:89","nodeType":"YulFunctionCall","src":"6560:11:89"},"variables":[{"name":"src","nativeSrc":"6553:3:89","nodeType":"YulTypedName","src":"6553:3:89","type":""}]},{"body":{"nativeSrc":"6636:92:89","nodeType":"YulBlock","src":"6636:92:89","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"6657:3:89","nodeType":"YulIdentifier","src":"6657:3:89"},{"arguments":[{"name":"src","nativeSrc":"6681:3:89","nodeType":"YulIdentifier","src":"6681:3:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"6662:18:89","nodeType":"YulIdentifier","src":"6662:18:89"},"nativeSrc":"6662:23:89","nodeType":"YulFunctionCall","src":"6662:23:89"}],"functionName":{"name":"mstore","nativeSrc":"6650:6:89","nodeType":"YulIdentifier","src":"6650:6:89"},"nativeSrc":"6650:36:89","nodeType":"YulFunctionCall","src":"6650:36:89"},"nativeSrc":"6650:36:89","nodeType":"YulExpressionStatement","src":"6650:36:89"},{"nativeSrc":"6699:19:89","nodeType":"YulAssignment","src":"6699:19:89","value":{"arguments":[{"name":"dst","nativeSrc":"6710:3:89","nodeType":"YulIdentifier","src":"6710:3:89"},{"kind":"number","nativeSrc":"6715:2:89","nodeType":"YulLiteral","src":"6715:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6706:3:89","nodeType":"YulIdentifier","src":"6706:3:89"},"nativeSrc":"6706:12:89","nodeType":"YulFunctionCall","src":"6706:12:89"},"variableNames":[{"name":"dst","nativeSrc":"6699:3:89","nodeType":"YulIdentifier","src":"6699:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"6591:3:89","nodeType":"YulIdentifier","src":"6591:3:89"},{"name":"srcEnd","nativeSrc":"6596:6:89","nodeType":"YulIdentifier","src":"6596:6:89"}],"functionName":{"name":"lt","nativeSrc":"6588:2:89","nodeType":"YulIdentifier","src":"6588:2:89"},"nativeSrc":"6588:15:89","nodeType":"YulFunctionCall","src":"6588:15:89"},"nativeSrc":"6580:148:89","nodeType":"YulForLoop","post":{"nativeSrc":"6604:23:89","nodeType":"YulBlock","src":"6604:23:89","statements":[{"nativeSrc":"6606:19:89","nodeType":"YulAssignment","src":"6606:19:89","value":{"arguments":[{"name":"src","nativeSrc":"6617:3:89","nodeType":"YulIdentifier","src":"6617:3:89"},{"kind":"number","nativeSrc":"6622:2:89","nodeType":"YulLiteral","src":"6622:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6613:3:89","nodeType":"YulIdentifier","src":"6613:3:89"},"nativeSrc":"6613:12:89","nodeType":"YulFunctionCall","src":"6613:12:89"},"variableNames":[{"name":"src","nativeSrc":"6606:3:89","nodeType":"YulIdentifier","src":"6606:3:89"}]}]},"pre":{"nativeSrc":"6584:3:89","nodeType":"YulBlock","src":"6584:3:89","statements":[]},"src":"6580:148:89"},{"nativeSrc":"6737:15:89","nodeType":"YulAssignment","src":"6737:15:89","value":{"name":"array","nativeSrc":"6747:5:89","nodeType":"YulIdentifier","src":"6747:5:89"},"variableNames":[{"name":"value0","nativeSrc":"6737:6:89","nodeType":"YulIdentifier","src":"6737:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"5867:891:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5928:9:89","nodeType":"YulTypedName","src":"5928:9:89","type":""},{"name":"dataEnd","nativeSrc":"5939:7:89","nodeType":"YulTypedName","src":"5939:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5951:6:89","nodeType":"YulTypedName","src":"5951:6:89","type":""}],"src":"5867:891:89"},{"body":{"nativeSrc":"6833:116:89","nodeType":"YulBlock","src":"6833:116:89","statements":[{"body":{"nativeSrc":"6879:16:89","nodeType":"YulBlock","src":"6879:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6888:1:89","nodeType":"YulLiteral","src":"6888:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6891:1:89","nodeType":"YulLiteral","src":"6891:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6881:6:89","nodeType":"YulIdentifier","src":"6881:6:89"},"nativeSrc":"6881:12:89","nodeType":"YulFunctionCall","src":"6881:12:89"},"nativeSrc":"6881:12:89","nodeType":"YulExpressionStatement","src":"6881:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6854:7:89","nodeType":"YulIdentifier","src":"6854:7:89"},{"name":"headStart","nativeSrc":"6863:9:89","nodeType":"YulIdentifier","src":"6863:9:89"}],"functionName":{"name":"sub","nativeSrc":"6850:3:89","nodeType":"YulIdentifier","src":"6850:3:89"},"nativeSrc":"6850:23:89","nodeType":"YulFunctionCall","src":"6850:23:89"},{"kind":"number","nativeSrc":"6875:2:89","nodeType":"YulLiteral","src":"6875:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6846:3:89","nodeType":"YulIdentifier","src":"6846:3:89"},"nativeSrc":"6846:32:89","nodeType":"YulFunctionCall","src":"6846:32:89"},"nativeSrc":"6843:52:89","nodeType":"YulIf","src":"6843:52:89"},{"nativeSrc":"6904:39:89","nodeType":"YulAssignment","src":"6904:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6933:9:89","nodeType":"YulIdentifier","src":"6933:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"6914:18:89","nodeType":"YulIdentifier","src":"6914:18:89"},"nativeSrc":"6914:29:89","nodeType":"YulFunctionCall","src":"6914:29:89"},"variableNames":[{"name":"value0","nativeSrc":"6904:6:89","nodeType":"YulIdentifier","src":"6904:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6763:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6799:9:89","nodeType":"YulTypedName","src":"6799:9:89","type":""},{"name":"dataEnd","nativeSrc":"6810:7:89","nodeType":"YulTypedName","src":"6810:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6822:6:89","nodeType":"YulTypedName","src":"6822:6:89","type":""}],"src":"6763:186:89"},{"body":{"nativeSrc":"7125:611:89","nodeType":"YulBlock","src":"7125:611:89","statements":[{"nativeSrc":"7135:32:89","nodeType":"YulVariableDeclaration","src":"7135:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7153:9:89","nodeType":"YulIdentifier","src":"7153:9:89"},{"kind":"number","nativeSrc":"7164:2:89","nodeType":"YulLiteral","src":"7164:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7149:3:89","nodeType":"YulIdentifier","src":"7149:3:89"},"nativeSrc":"7149:18:89","nodeType":"YulFunctionCall","src":"7149:18:89"},"variables":[{"name":"tail_1","nativeSrc":"7139:6:89","nodeType":"YulTypedName","src":"7139:6:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7183:9:89","nodeType":"YulIdentifier","src":"7183:9:89"},{"kind":"number","nativeSrc":"7194:2:89","nodeType":"YulLiteral","src":"7194:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7176:6:89","nodeType":"YulIdentifier","src":"7176:6:89"},"nativeSrc":"7176:21:89","nodeType":"YulFunctionCall","src":"7176:21:89"},"nativeSrc":"7176:21:89","nodeType":"YulExpressionStatement","src":"7176:21:89"},{"nativeSrc":"7206:17:89","nodeType":"YulVariableDeclaration","src":"7206:17:89","value":{"name":"tail_1","nativeSrc":"7217:6:89","nodeType":"YulIdentifier","src":"7217:6:89"},"variables":[{"name":"pos","nativeSrc":"7210:3:89","nodeType":"YulTypedName","src":"7210:3:89","type":""}]},{"nativeSrc":"7232:27:89","nodeType":"YulVariableDeclaration","src":"7232:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"7252:6:89","nodeType":"YulIdentifier","src":"7252:6:89"}],"functionName":{"name":"mload","nativeSrc":"7246:5:89","nodeType":"YulIdentifier","src":"7246:5:89"},"nativeSrc":"7246:13:89","nodeType":"YulFunctionCall","src":"7246:13:89"},"variables":[{"name":"length","nativeSrc":"7236:6:89","nodeType":"YulTypedName","src":"7236:6:89","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"7275:6:89","nodeType":"YulIdentifier","src":"7275:6:89"},{"name":"length","nativeSrc":"7283:6:89","nodeType":"YulIdentifier","src":"7283:6:89"}],"functionName":{"name":"mstore","nativeSrc":"7268:6:89","nodeType":"YulIdentifier","src":"7268:6:89"},"nativeSrc":"7268:22:89","nodeType":"YulFunctionCall","src":"7268:22:89"},"nativeSrc":"7268:22:89","nodeType":"YulExpressionStatement","src":"7268:22:89"},{"nativeSrc":"7299:25:89","nodeType":"YulAssignment","src":"7299:25:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7310:9:89","nodeType":"YulIdentifier","src":"7310:9:89"},{"kind":"number","nativeSrc":"7321:2:89","nodeType":"YulLiteral","src":"7321:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7306:3:89","nodeType":"YulIdentifier","src":"7306:3:89"},"nativeSrc":"7306:18:89","nodeType":"YulFunctionCall","src":"7306:18:89"},"variableNames":[{"name":"pos","nativeSrc":"7299:3:89","nodeType":"YulIdentifier","src":"7299:3:89"}]},{"nativeSrc":"7333:53:89","nodeType":"YulVariableDeclaration","src":"7333:53:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7355:9:89","nodeType":"YulIdentifier","src":"7355:9:89"},{"arguments":[{"kind":"number","nativeSrc":"7370:1:89","nodeType":"YulLiteral","src":"7370:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"7373:6:89","nodeType":"YulIdentifier","src":"7373:6:89"}],"functionName":{"name":"shl","nativeSrc":"7366:3:89","nodeType":"YulIdentifier","src":"7366:3:89"},"nativeSrc":"7366:14:89","nodeType":"YulFunctionCall","src":"7366:14:89"}],"functionName":{"name":"add","nativeSrc":"7351:3:89","nodeType":"YulIdentifier","src":"7351:3:89"},"nativeSrc":"7351:30:89","nodeType":"YulFunctionCall","src":"7351:30:89"},{"kind":"number","nativeSrc":"7383:2:89","nodeType":"YulLiteral","src":"7383:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7347:3:89","nodeType":"YulIdentifier","src":"7347:3:89"},"nativeSrc":"7347:39:89","nodeType":"YulFunctionCall","src":"7347:39:89"},"variables":[{"name":"tail_2","nativeSrc":"7337:6:89","nodeType":"YulTypedName","src":"7337:6:89","type":""}]},{"nativeSrc":"7395:29:89","nodeType":"YulVariableDeclaration","src":"7395:29:89","value":{"arguments":[{"name":"value0","nativeSrc":"7413:6:89","nodeType":"YulIdentifier","src":"7413:6:89"},{"kind":"number","nativeSrc":"7421:2:89","nodeType":"YulLiteral","src":"7421:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7409:3:89","nodeType":"YulIdentifier","src":"7409:3:89"},"nativeSrc":"7409:15:89","nodeType":"YulFunctionCall","src":"7409:15:89"},"variables":[{"name":"srcPtr","nativeSrc":"7399:6:89","nodeType":"YulTypedName","src":"7399:6:89","type":""}]},{"nativeSrc":"7433:10:89","nodeType":"YulVariableDeclaration","src":"7433:10:89","value":{"kind":"number","nativeSrc":"7442:1:89","nodeType":"YulLiteral","src":"7442:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"7437:1:89","nodeType":"YulTypedName","src":"7437:1:89","type":""}]},{"body":{"nativeSrc":"7501:206:89","nodeType":"YulBlock","src":"7501:206:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7522:3:89","nodeType":"YulIdentifier","src":"7522:3:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"7535:6:89","nodeType":"YulIdentifier","src":"7535:6:89"},{"name":"headStart","nativeSrc":"7543:9:89","nodeType":"YulIdentifier","src":"7543:9:89"}],"functionName":{"name":"sub","nativeSrc":"7531:3:89","nodeType":"YulIdentifier","src":"7531:3:89"},"nativeSrc":"7531:22:89","nodeType":"YulFunctionCall","src":"7531:22:89"},{"arguments":[{"kind":"number","nativeSrc":"7559:2:89","nodeType":"YulLiteral","src":"7559:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"7555:3:89","nodeType":"YulIdentifier","src":"7555:3:89"},"nativeSrc":"7555:7:89","nodeType":"YulFunctionCall","src":"7555:7:89"}],"functionName":{"name":"add","nativeSrc":"7527:3:89","nodeType":"YulIdentifier","src":"7527:3:89"},"nativeSrc":"7527:36:89","nodeType":"YulFunctionCall","src":"7527:36:89"}],"functionName":{"name":"mstore","nativeSrc":"7515:6:89","nodeType":"YulIdentifier","src":"7515:6:89"},"nativeSrc":"7515:49:89","nodeType":"YulFunctionCall","src":"7515:49:89"},"nativeSrc":"7515:49:89","nodeType":"YulExpressionStatement","src":"7515:49:89"},{"nativeSrc":"7577:50:89","nodeType":"YulAssignment","src":"7577:50:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"7611:6:89","nodeType":"YulIdentifier","src":"7611:6:89"}],"functionName":{"name":"mload","nativeSrc":"7605:5:89","nodeType":"YulIdentifier","src":"7605:5:89"},"nativeSrc":"7605:13:89","nodeType":"YulFunctionCall","src":"7605:13:89"},{"name":"tail_2","nativeSrc":"7620:6:89","nodeType":"YulIdentifier","src":"7620:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"7587:17:89","nodeType":"YulIdentifier","src":"7587:17:89"},"nativeSrc":"7587:40:89","nodeType":"YulFunctionCall","src":"7587:40:89"},"variableNames":[{"name":"tail_2","nativeSrc":"7577:6:89","nodeType":"YulIdentifier","src":"7577:6:89"}]},{"nativeSrc":"7640:25:89","nodeType":"YulAssignment","src":"7640:25:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"7654:6:89","nodeType":"YulIdentifier","src":"7654:6:89"},{"kind":"number","nativeSrc":"7662:2:89","nodeType":"YulLiteral","src":"7662:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7650:3:89","nodeType":"YulIdentifier","src":"7650:3:89"},"nativeSrc":"7650:15:89","nodeType":"YulFunctionCall","src":"7650:15:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"7640:6:89","nodeType":"YulIdentifier","src":"7640:6:89"}]},{"nativeSrc":"7678:19:89","nodeType":"YulAssignment","src":"7678:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"7689:3:89","nodeType":"YulIdentifier","src":"7689:3:89"},{"kind":"number","nativeSrc":"7694:2:89","nodeType":"YulLiteral","src":"7694:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7685:3:89","nodeType":"YulIdentifier","src":"7685:3:89"},"nativeSrc":"7685:12:89","nodeType":"YulFunctionCall","src":"7685:12:89"},"variableNames":[{"name":"pos","nativeSrc":"7678:3:89","nodeType":"YulIdentifier","src":"7678:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"7463:1:89","nodeType":"YulIdentifier","src":"7463:1:89"},{"name":"length","nativeSrc":"7466:6:89","nodeType":"YulIdentifier","src":"7466:6:89"}],"functionName":{"name":"lt","nativeSrc":"7460:2:89","nodeType":"YulIdentifier","src":"7460:2:89"},"nativeSrc":"7460:13:89","nodeType":"YulFunctionCall","src":"7460:13:89"},"nativeSrc":"7452:255:89","nodeType":"YulForLoop","post":{"nativeSrc":"7474:18:89","nodeType":"YulBlock","src":"7474:18:89","statements":[{"nativeSrc":"7476:14:89","nodeType":"YulAssignment","src":"7476:14:89","value":{"arguments":[{"name":"i","nativeSrc":"7485:1:89","nodeType":"YulIdentifier","src":"7485:1:89"},{"kind":"number","nativeSrc":"7488:1:89","nodeType":"YulLiteral","src":"7488:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7481:3:89","nodeType":"YulIdentifier","src":"7481:3:89"},"nativeSrc":"7481:9:89","nodeType":"YulFunctionCall","src":"7481:9:89"},"variableNames":[{"name":"i","nativeSrc":"7476:1:89","nodeType":"YulIdentifier","src":"7476:1:89"}]}]},"pre":{"nativeSrc":"7456:3:89","nodeType":"YulBlock","src":"7456:3:89","statements":[]},"src":"7452:255:89"},{"nativeSrc":"7716:14:89","nodeType":"YulAssignment","src":"7716:14:89","value":{"name":"tail_2","nativeSrc":"7724:6:89","nodeType":"YulIdentifier","src":"7724:6:89"},"variableNames":[{"name":"tail","nativeSrc":"7716:4:89","nodeType":"YulIdentifier","src":"7716:4:89"}]}]},"name":"abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"6954:782:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7094:9:89","nodeType":"YulTypedName","src":"7094:9:89","type":""},{"name":"value0","nativeSrc":"7105:6:89","nodeType":"YulTypedName","src":"7105:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7116:4:89","nodeType":"YulTypedName","src":"7116:4:89","type":""}],"src":"6954:782:89"},{"body":{"nativeSrc":"7892:486:89","nodeType":"YulBlock","src":"7892:486:89","statements":[{"nativeSrc":"7902:32:89","nodeType":"YulVariableDeclaration","src":"7902:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7920:9:89","nodeType":"YulIdentifier","src":"7920:9:89"},{"kind":"number","nativeSrc":"7931:2:89","nodeType":"YulLiteral","src":"7931:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7916:3:89","nodeType":"YulIdentifier","src":"7916:3:89"},"nativeSrc":"7916:18:89","nodeType":"YulFunctionCall","src":"7916:18:89"},"variables":[{"name":"tail_1","nativeSrc":"7906:6:89","nodeType":"YulTypedName","src":"7906:6:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7950:9:89","nodeType":"YulIdentifier","src":"7950:9:89"},{"kind":"number","nativeSrc":"7961:2:89","nodeType":"YulLiteral","src":"7961:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7943:6:89","nodeType":"YulIdentifier","src":"7943:6:89"},"nativeSrc":"7943:21:89","nodeType":"YulFunctionCall","src":"7943:21:89"},"nativeSrc":"7943:21:89","nodeType":"YulExpressionStatement","src":"7943:21:89"},{"nativeSrc":"7973:17:89","nodeType":"YulVariableDeclaration","src":"7973:17:89","value":{"name":"tail_1","nativeSrc":"7984:6:89","nodeType":"YulIdentifier","src":"7984:6:89"},"variables":[{"name":"pos","nativeSrc":"7977:3:89","nodeType":"YulTypedName","src":"7977:3:89","type":""}]},{"nativeSrc":"7999:27:89","nodeType":"YulVariableDeclaration","src":"7999:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"8019:6:89","nodeType":"YulIdentifier","src":"8019:6:89"}],"functionName":{"name":"mload","nativeSrc":"8013:5:89","nodeType":"YulIdentifier","src":"8013:5:89"},"nativeSrc":"8013:13:89","nodeType":"YulFunctionCall","src":"8013:13:89"},"variables":[{"name":"length","nativeSrc":"8003:6:89","nodeType":"YulTypedName","src":"8003:6:89","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"8042:6:89","nodeType":"YulIdentifier","src":"8042:6:89"},{"name":"length","nativeSrc":"8050:6:89","nodeType":"YulIdentifier","src":"8050:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8035:6:89","nodeType":"YulIdentifier","src":"8035:6:89"},"nativeSrc":"8035:22:89","nodeType":"YulFunctionCall","src":"8035:22:89"},"nativeSrc":"8035:22:89","nodeType":"YulExpressionStatement","src":"8035:22:89"},{"nativeSrc":"8066:25:89","nodeType":"YulAssignment","src":"8066:25:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8077:9:89","nodeType":"YulIdentifier","src":"8077:9:89"},{"kind":"number","nativeSrc":"8088:2:89","nodeType":"YulLiteral","src":"8088:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8073:3:89","nodeType":"YulIdentifier","src":"8073:3:89"},"nativeSrc":"8073:18:89","nodeType":"YulFunctionCall","src":"8073:18:89"},"variableNames":[{"name":"pos","nativeSrc":"8066:3:89","nodeType":"YulIdentifier","src":"8066:3:89"}]},{"nativeSrc":"8100:29:89","nodeType":"YulVariableDeclaration","src":"8100:29:89","value":{"arguments":[{"name":"value0","nativeSrc":"8118:6:89","nodeType":"YulIdentifier","src":"8118:6:89"},{"kind":"number","nativeSrc":"8126:2:89","nodeType":"YulLiteral","src":"8126:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8114:3:89","nodeType":"YulIdentifier","src":"8114:3:89"},"nativeSrc":"8114:15:89","nodeType":"YulFunctionCall","src":"8114:15:89"},"variables":[{"name":"srcPtr","nativeSrc":"8104:6:89","nodeType":"YulTypedName","src":"8104:6:89","type":""}]},{"nativeSrc":"8138:10:89","nodeType":"YulVariableDeclaration","src":"8138:10:89","value":{"kind":"number","nativeSrc":"8147:1:89","nodeType":"YulLiteral","src":"8147:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8142:1:89","nodeType":"YulTypedName","src":"8142:1:89","type":""}]},{"body":{"nativeSrc":"8206:146:89","nodeType":"YulBlock","src":"8206:146:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8227:3:89","nodeType":"YulIdentifier","src":"8227:3:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"8242:6:89","nodeType":"YulIdentifier","src":"8242:6:89"}],"functionName":{"name":"mload","nativeSrc":"8236:5:89","nodeType":"YulIdentifier","src":"8236:5:89"},"nativeSrc":"8236:13:89","nodeType":"YulFunctionCall","src":"8236:13:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8259:3:89","nodeType":"YulLiteral","src":"8259:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"8264:1:89","nodeType":"YulLiteral","src":"8264:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8255:3:89","nodeType":"YulIdentifier","src":"8255:3:89"},"nativeSrc":"8255:11:89","nodeType":"YulFunctionCall","src":"8255:11:89"},{"kind":"number","nativeSrc":"8268:1:89","nodeType":"YulLiteral","src":"8268:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8251:3:89","nodeType":"YulIdentifier","src":"8251:3:89"},"nativeSrc":"8251:19:89","nodeType":"YulFunctionCall","src":"8251:19:89"}],"functionName":{"name":"and","nativeSrc":"8232:3:89","nodeType":"YulIdentifier","src":"8232:3:89"},"nativeSrc":"8232:39:89","nodeType":"YulFunctionCall","src":"8232:39:89"}],"functionName":{"name":"mstore","nativeSrc":"8220:6:89","nodeType":"YulIdentifier","src":"8220:6:89"},"nativeSrc":"8220:52:89","nodeType":"YulFunctionCall","src":"8220:52:89"},"nativeSrc":"8220:52:89","nodeType":"YulExpressionStatement","src":"8220:52:89"},{"nativeSrc":"8285:19:89","nodeType":"YulAssignment","src":"8285:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"8296:3:89","nodeType":"YulIdentifier","src":"8296:3:89"},{"kind":"number","nativeSrc":"8301:2:89","nodeType":"YulLiteral","src":"8301:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8292:3:89","nodeType":"YulIdentifier","src":"8292:3:89"},"nativeSrc":"8292:12:89","nodeType":"YulFunctionCall","src":"8292:12:89"},"variableNames":[{"name":"pos","nativeSrc":"8285:3:89","nodeType":"YulIdentifier","src":"8285:3:89"}]},{"nativeSrc":"8317:25:89","nodeType":"YulAssignment","src":"8317:25:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"8331:6:89","nodeType":"YulIdentifier","src":"8331:6:89"},{"kind":"number","nativeSrc":"8339:2:89","nodeType":"YulLiteral","src":"8339:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8327:3:89","nodeType":"YulIdentifier","src":"8327:3:89"},"nativeSrc":"8327:15:89","nodeType":"YulFunctionCall","src":"8327:15:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"8317:6:89","nodeType":"YulIdentifier","src":"8317:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8168:1:89","nodeType":"YulIdentifier","src":"8168:1:89"},{"name":"length","nativeSrc":"8171:6:89","nodeType":"YulIdentifier","src":"8171:6:89"}],"functionName":{"name":"lt","nativeSrc":"8165:2:89","nodeType":"YulIdentifier","src":"8165:2:89"},"nativeSrc":"8165:13:89","nodeType":"YulFunctionCall","src":"8165:13:89"},"nativeSrc":"8157:195:89","nodeType":"YulForLoop","post":{"nativeSrc":"8179:18:89","nodeType":"YulBlock","src":"8179:18:89","statements":[{"nativeSrc":"8181:14:89","nodeType":"YulAssignment","src":"8181:14:89","value":{"arguments":[{"name":"i","nativeSrc":"8190:1:89","nodeType":"YulIdentifier","src":"8190:1:89"},{"kind":"number","nativeSrc":"8193:1:89","nodeType":"YulLiteral","src":"8193:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8186:3:89","nodeType":"YulIdentifier","src":"8186:3:89"},"nativeSrc":"8186:9:89","nodeType":"YulFunctionCall","src":"8186:9:89"},"variableNames":[{"name":"i","nativeSrc":"8181:1:89","nodeType":"YulIdentifier","src":"8181:1:89"}]}]},"pre":{"nativeSrc":"8161:3:89","nodeType":"YulBlock","src":"8161:3:89","statements":[]},"src":"8157:195:89"},{"nativeSrc":"8361:11:89","nodeType":"YulAssignment","src":"8361:11:89","value":{"name":"pos","nativeSrc":"8369:3:89","nodeType":"YulIdentifier","src":"8369:3:89"},"variableNames":[{"name":"tail","nativeSrc":"8361:4:89","nodeType":"YulIdentifier","src":"8361:4:89"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"7741:637:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7861:9:89","nodeType":"YulTypedName","src":"7861:9:89","type":""},{"name":"value0","nativeSrc":"7872:6:89","nodeType":"YulTypedName","src":"7872:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7883:4:89","nodeType":"YulTypedName","src":"7883:4:89","type":""}],"src":"7741:637:89"},{"body":{"nativeSrc":"8469:320:89","nodeType":"YulBlock","src":"8469:320:89","statements":[{"body":{"nativeSrc":"8515:16:89","nodeType":"YulBlock","src":"8515:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8524:1:89","nodeType":"YulLiteral","src":"8524:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8527:1:89","nodeType":"YulLiteral","src":"8527:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8517:6:89","nodeType":"YulIdentifier","src":"8517:6:89"},"nativeSrc":"8517:12:89","nodeType":"YulFunctionCall","src":"8517:12:89"},"nativeSrc":"8517:12:89","nodeType":"YulExpressionStatement","src":"8517:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8490:7:89","nodeType":"YulIdentifier","src":"8490:7:89"},{"name":"headStart","nativeSrc":"8499:9:89","nodeType":"YulIdentifier","src":"8499:9:89"}],"functionName":{"name":"sub","nativeSrc":"8486:3:89","nodeType":"YulIdentifier","src":"8486:3:89"},"nativeSrc":"8486:23:89","nodeType":"YulFunctionCall","src":"8486:23:89"},{"kind":"number","nativeSrc":"8511:2:89","nodeType":"YulLiteral","src":"8511:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8482:3:89","nodeType":"YulIdentifier","src":"8482:3:89"},"nativeSrc":"8482:32:89","nodeType":"YulFunctionCall","src":"8482:32:89"},"nativeSrc":"8479:52:89","nodeType":"YulIf","src":"8479:52:89"},{"nativeSrc":"8540:14:89","nodeType":"YulVariableDeclaration","src":"8540:14:89","value":{"kind":"number","nativeSrc":"8553:1:89","nodeType":"YulLiteral","src":"8553:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8544:5:89","nodeType":"YulTypedName","src":"8544:5:89","type":""}]},{"nativeSrc":"8563:32:89","nodeType":"YulAssignment","src":"8563:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8585:9:89","nodeType":"YulIdentifier","src":"8585:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"8572:12:89","nodeType":"YulIdentifier","src":"8572:12:89"},"nativeSrc":"8572:23:89","nodeType":"YulFunctionCall","src":"8572:23:89"},"variableNames":[{"name":"value","nativeSrc":"8563:5:89","nodeType":"YulIdentifier","src":"8563:5:89"}]},{"nativeSrc":"8604:15:89","nodeType":"YulAssignment","src":"8604:15:89","value":{"name":"value","nativeSrc":"8614:5:89","nodeType":"YulIdentifier","src":"8614:5:89"},"variableNames":[{"name":"value0","nativeSrc":"8604:6:89","nodeType":"YulIdentifier","src":"8604:6:89"}]},{"nativeSrc":"8628:47:89","nodeType":"YulVariableDeclaration","src":"8628:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8660:9:89","nodeType":"YulIdentifier","src":"8660:9:89"},{"kind":"number","nativeSrc":"8671:2:89","nodeType":"YulLiteral","src":"8671:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8656:3:89","nodeType":"YulIdentifier","src":"8656:3:89"},"nativeSrc":"8656:18:89","nodeType":"YulFunctionCall","src":"8656:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"8643:12:89","nodeType":"YulIdentifier","src":"8643:12:89"},"nativeSrc":"8643:32:89","nodeType":"YulFunctionCall","src":"8643:32:89"},"variables":[{"name":"value_1","nativeSrc":"8632:7:89","nodeType":"YulTypedName","src":"8632:7:89","type":""}]},{"body":{"nativeSrc":"8741:16:89","nodeType":"YulBlock","src":"8741:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8750:1:89","nodeType":"YulLiteral","src":"8750:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8753:1:89","nodeType":"YulLiteral","src":"8753:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8743:6:89","nodeType":"YulIdentifier","src":"8743:6:89"},"nativeSrc":"8743:12:89","nodeType":"YulFunctionCall","src":"8743:12:89"},"nativeSrc":"8743:12:89","nodeType":"YulExpressionStatement","src":"8743:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"8697:7:89","nodeType":"YulIdentifier","src":"8697:7:89"},{"arguments":[{"name":"value_1","nativeSrc":"8710:7:89","nodeType":"YulIdentifier","src":"8710:7:89"},{"kind":"number","nativeSrc":"8719:18:89","nodeType":"YulLiteral","src":"8719:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8706:3:89","nodeType":"YulIdentifier","src":"8706:3:89"},"nativeSrc":"8706:32:89","nodeType":"YulFunctionCall","src":"8706:32:89"}],"functionName":{"name":"eq","nativeSrc":"8694:2:89","nodeType":"YulIdentifier","src":"8694:2:89"},"nativeSrc":"8694:45:89","nodeType":"YulFunctionCall","src":"8694:45:89"}],"functionName":{"name":"iszero","nativeSrc":"8687:6:89","nodeType":"YulIdentifier","src":"8687:6:89"},"nativeSrc":"8687:53:89","nodeType":"YulFunctionCall","src":"8687:53:89"},"nativeSrc":"8684:73:89","nodeType":"YulIf","src":"8684:73:89"},{"nativeSrc":"8766:17:89","nodeType":"YulAssignment","src":"8766:17:89","value":{"name":"value_1","nativeSrc":"8776:7:89","nodeType":"YulIdentifier","src":"8776:7:89"},"variableNames":[{"name":"value1","nativeSrc":"8766:6:89","nodeType":"YulIdentifier","src":"8766:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint64","nativeSrc":"8383:406:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8427:9:89","nodeType":"YulTypedName","src":"8427:9:89","type":""},{"name":"dataEnd","nativeSrc":"8438:7:89","nodeType":"YulTypedName","src":"8438:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8450:6:89","nodeType":"YulTypedName","src":"8450:6:89","type":""},{"name":"value1","nativeSrc":"8458:6:89","nodeType":"YulTypedName","src":"8458:6:89","type":""}],"src":"8383:406:89"},{"body":{"nativeSrc":"8878:311:89","nodeType":"YulBlock","src":"8878:311:89","statements":[{"body":{"nativeSrc":"8924:16:89","nodeType":"YulBlock","src":"8924:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8933:1:89","nodeType":"YulLiteral","src":"8933:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8936:1:89","nodeType":"YulLiteral","src":"8936:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8926:6:89","nodeType":"YulIdentifier","src":"8926:6:89"},"nativeSrc":"8926:12:89","nodeType":"YulFunctionCall","src":"8926:12:89"},"nativeSrc":"8926:12:89","nodeType":"YulExpressionStatement","src":"8926:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8899:7:89","nodeType":"YulIdentifier","src":"8899:7:89"},{"name":"headStart","nativeSrc":"8908:9:89","nodeType":"YulIdentifier","src":"8908:9:89"}],"functionName":{"name":"sub","nativeSrc":"8895:3:89","nodeType":"YulIdentifier","src":"8895:3:89"},"nativeSrc":"8895:23:89","nodeType":"YulFunctionCall","src":"8895:23:89"},{"kind":"number","nativeSrc":"8920:2:89","nodeType":"YulLiteral","src":"8920:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8891:3:89","nodeType":"YulIdentifier","src":"8891:3:89"},"nativeSrc":"8891:32:89","nodeType":"YulFunctionCall","src":"8891:32:89"},"nativeSrc":"8888:52:89","nodeType":"YulIf","src":"8888:52:89"},{"nativeSrc":"8949:14:89","nodeType":"YulVariableDeclaration","src":"8949:14:89","value":{"kind":"number","nativeSrc":"8962:1:89","nodeType":"YulLiteral","src":"8962:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8953:5:89","nodeType":"YulTypedName","src":"8953:5:89","type":""}]},{"nativeSrc":"8972:32:89","nodeType":"YulAssignment","src":"8972:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8994:9:89","nodeType":"YulIdentifier","src":"8994:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"8981:12:89","nodeType":"YulIdentifier","src":"8981:12:89"},"nativeSrc":"8981:23:89","nodeType":"YulFunctionCall","src":"8981:23:89"},"variableNames":[{"name":"value","nativeSrc":"8972:5:89","nodeType":"YulIdentifier","src":"8972:5:89"}]},{"nativeSrc":"9013:15:89","nodeType":"YulAssignment","src":"9013:15:89","value":{"name":"value","nativeSrc":"9023:5:89","nodeType":"YulIdentifier","src":"9023:5:89"},"variableNames":[{"name":"value0","nativeSrc":"9013:6:89","nodeType":"YulIdentifier","src":"9013:6:89"}]},{"nativeSrc":"9037:47:89","nodeType":"YulVariableDeclaration","src":"9037:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9069:9:89","nodeType":"YulIdentifier","src":"9069:9:89"},{"kind":"number","nativeSrc":"9080:2:89","nodeType":"YulLiteral","src":"9080:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9065:3:89","nodeType":"YulIdentifier","src":"9065:3:89"},"nativeSrc":"9065:18:89","nodeType":"YulFunctionCall","src":"9065:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"9052:12:89","nodeType":"YulIdentifier","src":"9052:12:89"},"nativeSrc":"9052:32:89","nodeType":"YulFunctionCall","src":"9052:32:89"},"variables":[{"name":"value_1","nativeSrc":"9041:7:89","nodeType":"YulTypedName","src":"9041:7:89","type":""}]},{"body":{"nativeSrc":"9141:16:89","nodeType":"YulBlock","src":"9141:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9150:1:89","nodeType":"YulLiteral","src":"9150:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9153:1:89","nodeType":"YulLiteral","src":"9153:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9143:6:89","nodeType":"YulIdentifier","src":"9143:6:89"},"nativeSrc":"9143:12:89","nodeType":"YulFunctionCall","src":"9143:12:89"},"nativeSrc":"9143:12:89","nodeType":"YulExpressionStatement","src":"9143:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"9106:7:89","nodeType":"YulIdentifier","src":"9106:7:89"},{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"9129:7:89","nodeType":"YulIdentifier","src":"9129:7:89"}],"functionName":{"name":"iszero","nativeSrc":"9122:6:89","nodeType":"YulIdentifier","src":"9122:6:89"},"nativeSrc":"9122:15:89","nodeType":"YulFunctionCall","src":"9122:15:89"}],"functionName":{"name":"iszero","nativeSrc":"9115:6:89","nodeType":"YulIdentifier","src":"9115:6:89"},"nativeSrc":"9115:23:89","nodeType":"YulFunctionCall","src":"9115:23:89"}],"functionName":{"name":"eq","nativeSrc":"9103:2:89","nodeType":"YulIdentifier","src":"9103:2:89"},"nativeSrc":"9103:36:89","nodeType":"YulFunctionCall","src":"9103:36:89"}],"functionName":{"name":"iszero","nativeSrc":"9096:6:89","nodeType":"YulIdentifier","src":"9096:6:89"},"nativeSrc":"9096:44:89","nodeType":"YulFunctionCall","src":"9096:44:89"},"nativeSrc":"9093:64:89","nodeType":"YulIf","src":"9093:64:89"},{"nativeSrc":"9166:17:89","nodeType":"YulAssignment","src":"9166:17:89","value":{"name":"value_1","nativeSrc":"9176:7:89","nodeType":"YulIdentifier","src":"9176:7:89"},"variableNames":[{"name":"value1","nativeSrc":"9166:6:89","nodeType":"YulIdentifier","src":"9166:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_bool","nativeSrc":"8794:395:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8836:9:89","nodeType":"YulTypedName","src":"8836:9:89","type":""},{"name":"dataEnd","nativeSrc":"8847:7:89","nodeType":"YulTypedName","src":"8847:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8859:6:89","nodeType":"YulTypedName","src":"8859:6:89","type":""},{"name":"value1","nativeSrc":"8867:6:89","nodeType":"YulTypedName","src":"8867:6:89","type":""}],"src":"8794:395:89"},{"body":{"nativeSrc":"9383:496:89","nodeType":"YulBlock","src":"9383:496:89","statements":[{"nativeSrc":"9393:16:89","nodeType":"YulVariableDeclaration","src":"9393:16:89","value":{"name":"pos","nativeSrc":"9406:3:89","nodeType":"YulIdentifier","src":"9406:3:89"},"variables":[{"name":"pos_1","nativeSrc":"9397:5:89","nodeType":"YulTypedName","src":"9397:5:89","type":""}]},{"nativeSrc":"9418:27:89","nodeType":"YulVariableDeclaration","src":"9418:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"9438:6:89","nodeType":"YulIdentifier","src":"9438:6:89"}],"functionName":{"name":"mload","nativeSrc":"9432:5:89","nodeType":"YulIdentifier","src":"9432:5:89"},"nativeSrc":"9432:13:89","nodeType":"YulFunctionCall","src":"9432:13:89"},"variables":[{"name":"length","nativeSrc":"9422:6:89","nodeType":"YulTypedName","src":"9422:6:89","type":""}]},{"nativeSrc":"9454:12:89","nodeType":"YulAssignment","src":"9454:12:89","value":{"name":"pos","nativeSrc":"9463:3:89","nodeType":"YulIdentifier","src":"9463:3:89"},"variableNames":[{"name":"pos_1","nativeSrc":"9454:5:89","nodeType":"YulIdentifier","src":"9454:5:89"}]},{"nativeSrc":"9475:31:89","nodeType":"YulVariableDeclaration","src":"9475:31:89","value":{"arguments":[{"name":"value0","nativeSrc":"9493:6:89","nodeType":"YulIdentifier","src":"9493:6:89"},{"kind":"number","nativeSrc":"9501:4:89","nodeType":"YulLiteral","src":"9501:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9489:3:89","nodeType":"YulIdentifier","src":"9489:3:89"},"nativeSrc":"9489:17:89","nodeType":"YulFunctionCall","src":"9489:17:89"},"variables":[{"name":"srcPtr","nativeSrc":"9479:6:89","nodeType":"YulTypedName","src":"9479:6:89","type":""}]},{"nativeSrc":"9515:10:89","nodeType":"YulVariableDeclaration","src":"9515:10:89","value":{"kind":"number","nativeSrc":"9524:1:89","nodeType":"YulLiteral","src":"9524:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"9519:1:89","nodeType":"YulTypedName","src":"9519:1:89","type":""}]},{"body":{"nativeSrc":"9583:269:89","nodeType":"YulBlock","src":"9583:269:89","statements":[{"nativeSrc":"9597:23:89","nodeType":"YulVariableDeclaration","src":"9597:23:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"9613:6:89","nodeType":"YulIdentifier","src":"9613:6:89"}],"functionName":{"name":"mload","nativeSrc":"9607:5:89","nodeType":"YulIdentifier","src":"9607:5:89"},"nativeSrc":"9607:13:89","nodeType":"YulFunctionCall","src":"9607:13:89"},"variables":[{"name":"_1","nativeSrc":"9601:2:89","nodeType":"YulTypedName","src":"9601:2:89","type":""}]},{"nativeSrc":"9633:25:89","nodeType":"YulVariableDeclaration","src":"9633:25:89","value":{"arguments":[{"name":"_1","nativeSrc":"9655:2:89","nodeType":"YulIdentifier","src":"9655:2:89"}],"functionName":{"name":"mload","nativeSrc":"9649:5:89","nodeType":"YulIdentifier","src":"9649:5:89"},"nativeSrc":"9649:9:89","nodeType":"YulFunctionCall","src":"9649:9:89"},"variables":[{"name":"length_1","nativeSrc":"9637:8:89","nodeType":"YulTypedName","src":"9637:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"9710:2:89","nodeType":"YulIdentifier","src":"9710:2:89"},{"kind":"number","nativeSrc":"9714:4:89","nodeType":"YulLiteral","src":"9714:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9706:3:89","nodeType":"YulIdentifier","src":"9706:3:89"},"nativeSrc":"9706:13:89","nodeType":"YulFunctionCall","src":"9706:13:89"},{"name":"pos_1","nativeSrc":"9721:5:89","nodeType":"YulIdentifier","src":"9721:5:89"},{"name":"length_1","nativeSrc":"9728:8:89","nodeType":"YulIdentifier","src":"9728:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9671:34:89","nodeType":"YulIdentifier","src":"9671:34:89"},"nativeSrc":"9671:66:89","nodeType":"YulFunctionCall","src":"9671:66:89"},"nativeSrc":"9671:66:89","nodeType":"YulExpressionStatement","src":"9671:66:89"},{"nativeSrc":"9750:52:89","nodeType":"YulAssignment","src":"9750:52:89","value":{"arguments":[{"name":"pos_1","nativeSrc":"9763:5:89","nodeType":"YulIdentifier","src":"9763:5:89"},{"arguments":[{"arguments":[{"name":"length_1","nativeSrc":"9778:8:89","nodeType":"YulIdentifier","src":"9778:8:89"},{"kind":"number","nativeSrc":"9788:2:89","nodeType":"YulLiteral","src":"9788:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9774:3:89","nodeType":"YulIdentifier","src":"9774:3:89"},"nativeSrc":"9774:17:89","nodeType":"YulFunctionCall","src":"9774:17:89"},{"arguments":[{"kind":"number","nativeSrc":"9797:2:89","nodeType":"YulLiteral","src":"9797:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9793:3:89","nodeType":"YulIdentifier","src":"9793:3:89"},"nativeSrc":"9793:7:89","nodeType":"YulFunctionCall","src":"9793:7:89"}],"functionName":{"name":"and","nativeSrc":"9770:3:89","nodeType":"YulIdentifier","src":"9770:3:89"},"nativeSrc":"9770:31:89","nodeType":"YulFunctionCall","src":"9770:31:89"}],"functionName":{"name":"add","nativeSrc":"9759:3:89","nodeType":"YulIdentifier","src":"9759:3:89"},"nativeSrc":"9759:43:89","nodeType":"YulFunctionCall","src":"9759:43:89"},"variableNames":[{"name":"pos_1","nativeSrc":"9750:5:89","nodeType":"YulIdentifier","src":"9750:5:89"}]},{"nativeSrc":"9815:27:89","nodeType":"YulAssignment","src":"9815:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"9829:6:89","nodeType":"YulIdentifier","src":"9829:6:89"},{"kind":"number","nativeSrc":"9837:4:89","nodeType":"YulLiteral","src":"9837:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9825:3:89","nodeType":"YulIdentifier","src":"9825:3:89"},"nativeSrc":"9825:17:89","nodeType":"YulFunctionCall","src":"9825:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"9815:6:89","nodeType":"YulIdentifier","src":"9815:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"9545:1:89","nodeType":"YulIdentifier","src":"9545:1:89"},{"name":"length","nativeSrc":"9548:6:89","nodeType":"YulIdentifier","src":"9548:6:89"}],"functionName":{"name":"lt","nativeSrc":"9542:2:89","nodeType":"YulIdentifier","src":"9542:2:89"},"nativeSrc":"9542:13:89","nodeType":"YulFunctionCall","src":"9542:13:89"},"nativeSrc":"9534:318:89","nodeType":"YulForLoop","post":{"nativeSrc":"9556:18:89","nodeType":"YulBlock","src":"9556:18:89","statements":[{"nativeSrc":"9558:14:89","nodeType":"YulAssignment","src":"9558:14:89","value":{"arguments":[{"name":"i","nativeSrc":"9567:1:89","nodeType":"YulIdentifier","src":"9567:1:89"},{"kind":"number","nativeSrc":"9570:1:89","nodeType":"YulLiteral","src":"9570:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9563:3:89","nodeType":"YulIdentifier","src":"9563:3:89"},"nativeSrc":"9563:9:89","nodeType":"YulFunctionCall","src":"9563:9:89"},"variableNames":[{"name":"i","nativeSrc":"9558:1:89","nodeType":"YulIdentifier","src":"9558:1:89"}]}]},"pre":{"nativeSrc":"9538:3:89","nodeType":"YulBlock","src":"9538:3:89","statements":[]},"src":"9534:318:89"},{"nativeSrc":"9861:12:89","nodeType":"YulAssignment","src":"9861:12:89","value":{"name":"pos_1","nativeSrc":"9868:5:89","nodeType":"YulIdentifier","src":"9868:5:89"},"variableNames":[{"name":"end","nativeSrc":"9861:3:89","nodeType":"YulIdentifier","src":"9861:3:89"}]}]},"name":"abi_encode_tuple_packed_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"9194:685:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9359:3:89","nodeType":"YulTypedName","src":"9359:3:89","type":""},{"name":"value0","nativeSrc":"9364:6:89","nodeType":"YulTypedName","src":"9364:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9375:3:89","nodeType":"YulTypedName","src":"9375:3:89","type":""}],"src":"9194:685:89"},{"body":{"nativeSrc":"9939:325:89","nodeType":"YulBlock","src":"9939:325:89","statements":[{"nativeSrc":"9949:22:89","nodeType":"YulAssignment","src":"9949:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"9963:1:89","nodeType":"YulLiteral","src":"9963:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"9966:4:89","nodeType":"YulIdentifier","src":"9966:4:89"}],"functionName":{"name":"shr","nativeSrc":"9959:3:89","nodeType":"YulIdentifier","src":"9959:3:89"},"nativeSrc":"9959:12:89","nodeType":"YulFunctionCall","src":"9959:12:89"},"variableNames":[{"name":"length","nativeSrc":"9949:6:89","nodeType":"YulIdentifier","src":"9949:6:89"}]},{"nativeSrc":"9980:38:89","nodeType":"YulVariableDeclaration","src":"9980:38:89","value":{"arguments":[{"name":"data","nativeSrc":"10010:4:89","nodeType":"YulIdentifier","src":"10010:4:89"},{"kind":"number","nativeSrc":"10016:1:89","nodeType":"YulLiteral","src":"10016:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"10006:3:89","nodeType":"YulIdentifier","src":"10006:3:89"},"nativeSrc":"10006:12:89","nodeType":"YulFunctionCall","src":"10006:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"9984:18:89","nodeType":"YulTypedName","src":"9984:18:89","type":""}]},{"body":{"nativeSrc":"10057:31:89","nodeType":"YulBlock","src":"10057:31:89","statements":[{"nativeSrc":"10059:27:89","nodeType":"YulAssignment","src":"10059:27:89","value":{"arguments":[{"name":"length","nativeSrc":"10073:6:89","nodeType":"YulIdentifier","src":"10073:6:89"},{"kind":"number","nativeSrc":"10081:4:89","nodeType":"YulLiteral","src":"10081:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"10069:3:89","nodeType":"YulIdentifier","src":"10069:3:89"},"nativeSrc":"10069:17:89","nodeType":"YulFunctionCall","src":"10069:17:89"},"variableNames":[{"name":"length","nativeSrc":"10059:6:89","nodeType":"YulIdentifier","src":"10059:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10037:18:89","nodeType":"YulIdentifier","src":"10037:18:89"}],"functionName":{"name":"iszero","nativeSrc":"10030:6:89","nodeType":"YulIdentifier","src":"10030:6:89"},"nativeSrc":"10030:26:89","nodeType":"YulFunctionCall","src":"10030:26:89"},"nativeSrc":"10027:61:89","nodeType":"YulIf","src":"10027:61:89"},{"body":{"nativeSrc":"10147:111:89","nodeType":"YulBlock","src":"10147:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10168:1:89","nodeType":"YulLiteral","src":"10168:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"10175:3:89","nodeType":"YulLiteral","src":"10175:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"10180:10:89","nodeType":"YulLiteral","src":"10180:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"10171:3:89","nodeType":"YulIdentifier","src":"10171:3:89"},"nativeSrc":"10171:20:89","nodeType":"YulFunctionCall","src":"10171:20:89"}],"functionName":{"name":"mstore","nativeSrc":"10161:6:89","nodeType":"YulIdentifier","src":"10161:6:89"},"nativeSrc":"10161:31:89","nodeType":"YulFunctionCall","src":"10161:31:89"},"nativeSrc":"10161:31:89","nodeType":"YulExpressionStatement","src":"10161:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10212:1:89","nodeType":"YulLiteral","src":"10212:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"10215:4:89","nodeType":"YulLiteral","src":"10215:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"10205:6:89","nodeType":"YulIdentifier","src":"10205:6:89"},"nativeSrc":"10205:15:89","nodeType":"YulFunctionCall","src":"10205:15:89"},"nativeSrc":"10205:15:89","nodeType":"YulExpressionStatement","src":"10205:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10240:1:89","nodeType":"YulLiteral","src":"10240:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10243:4:89","nodeType":"YulLiteral","src":"10243:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10233:6:89","nodeType":"YulIdentifier","src":"10233:6:89"},"nativeSrc":"10233:15:89","nodeType":"YulFunctionCall","src":"10233:15:89"},"nativeSrc":"10233:15:89","nodeType":"YulExpressionStatement","src":"10233:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10103:18:89","nodeType":"YulIdentifier","src":"10103:18:89"},{"arguments":[{"name":"length","nativeSrc":"10126:6:89","nodeType":"YulIdentifier","src":"10126:6:89"},{"kind":"number","nativeSrc":"10134:2:89","nodeType":"YulLiteral","src":"10134:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10123:2:89","nodeType":"YulIdentifier","src":"10123:2:89"},"nativeSrc":"10123:14:89","nodeType":"YulFunctionCall","src":"10123:14:89"}],"functionName":{"name":"eq","nativeSrc":"10100:2:89","nodeType":"YulIdentifier","src":"10100:2:89"},"nativeSrc":"10100:38:89","nodeType":"YulFunctionCall","src":"10100:38:89"},"nativeSrc":"10097:161:89","nodeType":"YulIf","src":"10097:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"9884:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"9919:4:89","nodeType":"YulTypedName","src":"9919:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"9928:6:89","nodeType":"YulTypedName","src":"9928:6:89","type":""}],"src":"9884:380:89"},{"body":{"nativeSrc":"10325:65:89","nodeType":"YulBlock","src":"10325:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10342:1:89","nodeType":"YulLiteral","src":"10342:1:89","type":"","value":"0"},{"name":"ptr","nativeSrc":"10345:3:89","nodeType":"YulIdentifier","src":"10345:3:89"}],"functionName":{"name":"mstore","nativeSrc":"10335:6:89","nodeType":"YulIdentifier","src":"10335:6:89"},"nativeSrc":"10335:14:89","nodeType":"YulFunctionCall","src":"10335:14:89"},"nativeSrc":"10335:14:89","nodeType":"YulExpressionStatement","src":"10335:14:89"},{"nativeSrc":"10358:26:89","nodeType":"YulAssignment","src":"10358:26:89","value":{"arguments":[{"kind":"number","nativeSrc":"10376:1:89","nodeType":"YulLiteral","src":"10376:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10379:4:89","nodeType":"YulLiteral","src":"10379:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"10366:9:89","nodeType":"YulIdentifier","src":"10366:9:89"},"nativeSrc":"10366:18:89","nodeType":"YulFunctionCall","src":"10366:18:89"},"variableNames":[{"name":"data","nativeSrc":"10358:4:89","nodeType":"YulIdentifier","src":"10358:4:89"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"10269:121:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"10308:3:89","nodeType":"YulTypedName","src":"10308:3:89","type":""}],"returnVariables":[{"name":"data","nativeSrc":"10316:4:89","nodeType":"YulTypedName","src":"10316:4:89","type":""}],"src":"10269:121:89"},{"body":{"nativeSrc":"10476:437:89","nodeType":"YulBlock","src":"10476:437:89","statements":[{"body":{"nativeSrc":"10509:398:89","nodeType":"YulBlock","src":"10509:398:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10530:1:89","nodeType":"YulLiteral","src":"10530:1:89","type":"","value":"0"},{"name":"array","nativeSrc":"10533:5:89","nodeType":"YulIdentifier","src":"10533:5:89"}],"functionName":{"name":"mstore","nativeSrc":"10523:6:89","nodeType":"YulIdentifier","src":"10523:6:89"},"nativeSrc":"10523:16:89","nodeType":"YulFunctionCall","src":"10523:16:89"},"nativeSrc":"10523:16:89","nodeType":"YulExpressionStatement","src":"10523:16:89"},{"nativeSrc":"10552:30:89","nodeType":"YulVariableDeclaration","src":"10552:30:89","value":{"arguments":[{"kind":"number","nativeSrc":"10574:1:89","nodeType":"YulLiteral","src":"10574:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10577:4:89","nodeType":"YulLiteral","src":"10577:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"10564:9:89","nodeType":"YulIdentifier","src":"10564:9:89"},"nativeSrc":"10564:18:89","nodeType":"YulFunctionCall","src":"10564:18:89"},"variables":[{"name":"data","nativeSrc":"10556:4:89","nodeType":"YulTypedName","src":"10556:4:89","type":""}]},{"nativeSrc":"10595:57:89","nodeType":"YulVariableDeclaration","src":"10595:57:89","value":{"arguments":[{"name":"data","nativeSrc":"10618:4:89","nodeType":"YulIdentifier","src":"10618:4:89"},{"arguments":[{"kind":"number","nativeSrc":"10628:1:89","nodeType":"YulLiteral","src":"10628:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"10635:10:89","nodeType":"YulIdentifier","src":"10635:10:89"},{"kind":"number","nativeSrc":"10647:2:89","nodeType":"YulLiteral","src":"10647:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10631:3:89","nodeType":"YulIdentifier","src":"10631:3:89"},"nativeSrc":"10631:19:89","nodeType":"YulFunctionCall","src":"10631:19:89"}],"functionName":{"name":"shr","nativeSrc":"10624:3:89","nodeType":"YulIdentifier","src":"10624:3:89"},"nativeSrc":"10624:27:89","nodeType":"YulFunctionCall","src":"10624:27:89"}],"functionName":{"name":"add","nativeSrc":"10614:3:89","nodeType":"YulIdentifier","src":"10614:3:89"},"nativeSrc":"10614:38:89","nodeType":"YulFunctionCall","src":"10614:38:89"},"variables":[{"name":"deleteStart","nativeSrc":"10599:11:89","nodeType":"YulTypedName","src":"10599:11:89","type":""}]},{"body":{"nativeSrc":"10689:23:89","nodeType":"YulBlock","src":"10689:23:89","statements":[{"nativeSrc":"10691:19:89","nodeType":"YulAssignment","src":"10691:19:89","value":{"name":"data","nativeSrc":"10706:4:89","nodeType":"YulIdentifier","src":"10706:4:89"},"variableNames":[{"name":"deleteStart","nativeSrc":"10691:11:89","nodeType":"YulIdentifier","src":"10691:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"10671:10:89","nodeType":"YulIdentifier","src":"10671:10:89"},{"kind":"number","nativeSrc":"10683:4:89","nodeType":"YulLiteral","src":"10683:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"10668:2:89","nodeType":"YulIdentifier","src":"10668:2:89"},"nativeSrc":"10668:20:89","nodeType":"YulFunctionCall","src":"10668:20:89"},"nativeSrc":"10665:47:89","nodeType":"YulIf","src":"10665:47:89"},{"nativeSrc":"10725:41:89","nodeType":"YulVariableDeclaration","src":"10725:41:89","value":{"arguments":[{"name":"data","nativeSrc":"10739:4:89","nodeType":"YulIdentifier","src":"10739:4:89"},{"arguments":[{"kind":"number","nativeSrc":"10749:1:89","nodeType":"YulLiteral","src":"10749:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"10756:3:89","nodeType":"YulIdentifier","src":"10756:3:89"},{"kind":"number","nativeSrc":"10761:2:89","nodeType":"YulLiteral","src":"10761:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10752:3:89","nodeType":"YulIdentifier","src":"10752:3:89"},"nativeSrc":"10752:12:89","nodeType":"YulFunctionCall","src":"10752:12:89"}],"functionName":{"name":"shr","nativeSrc":"10745:3:89","nodeType":"YulIdentifier","src":"10745:3:89"},"nativeSrc":"10745:20:89","nodeType":"YulFunctionCall","src":"10745:20:89"}],"functionName":{"name":"add","nativeSrc":"10735:3:89","nodeType":"YulIdentifier","src":"10735:3:89"},"nativeSrc":"10735:31:89","nodeType":"YulFunctionCall","src":"10735:31:89"},"variables":[{"name":"_1","nativeSrc":"10729:2:89","nodeType":"YulTypedName","src":"10729:2:89","type":""}]},{"nativeSrc":"10779:24:89","nodeType":"YulVariableDeclaration","src":"10779:24:89","value":{"name":"deleteStart","nativeSrc":"10792:11:89","nodeType":"YulIdentifier","src":"10792:11:89"},"variables":[{"name":"start","nativeSrc":"10783:5:89","nodeType":"YulTypedName","src":"10783:5:89","type":""}]},{"body":{"nativeSrc":"10877:20:89","nodeType":"YulBlock","src":"10877:20:89","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"10886:5:89","nodeType":"YulIdentifier","src":"10886:5:89"},{"kind":"number","nativeSrc":"10893:1:89","nodeType":"YulLiteral","src":"10893:1:89","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"10879:6:89","nodeType":"YulIdentifier","src":"10879:6:89"},"nativeSrc":"10879:16:89","nodeType":"YulFunctionCall","src":"10879:16:89"},"nativeSrc":"10879:16:89","nodeType":"YulExpressionStatement","src":"10879:16:89"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"10827:5:89","nodeType":"YulIdentifier","src":"10827:5:89"},{"name":"_1","nativeSrc":"10834:2:89","nodeType":"YulIdentifier","src":"10834:2:89"}],"functionName":{"name":"lt","nativeSrc":"10824:2:89","nodeType":"YulIdentifier","src":"10824:2:89"},"nativeSrc":"10824:13:89","nodeType":"YulFunctionCall","src":"10824:13:89"},"nativeSrc":"10816:81:89","nodeType":"YulForLoop","post":{"nativeSrc":"10838:26:89","nodeType":"YulBlock","src":"10838:26:89","statements":[{"nativeSrc":"10840:22:89","nodeType":"YulAssignment","src":"10840:22:89","value":{"arguments":[{"name":"start","nativeSrc":"10853:5:89","nodeType":"YulIdentifier","src":"10853:5:89"},{"kind":"number","nativeSrc":"10860:1:89","nodeType":"YulLiteral","src":"10860:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10849:3:89","nodeType":"YulIdentifier","src":"10849:3:89"},"nativeSrc":"10849:13:89","nodeType":"YulFunctionCall","src":"10849:13:89"},"variableNames":[{"name":"start","nativeSrc":"10840:5:89","nodeType":"YulIdentifier","src":"10840:5:89"}]}]},"pre":{"nativeSrc":"10820:3:89","nodeType":"YulBlock","src":"10820:3:89","statements":[]},"src":"10816:81:89"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"10492:3:89","nodeType":"YulIdentifier","src":"10492:3:89"},{"kind":"number","nativeSrc":"10497:2:89","nodeType":"YulLiteral","src":"10497:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"10489:2:89","nodeType":"YulIdentifier","src":"10489:2:89"},"nativeSrc":"10489:11:89","nodeType":"YulFunctionCall","src":"10489:11:89"},"nativeSrc":"10486:421:89","nodeType":"YulIf","src":"10486:421:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"10395:518:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"10448:5:89","nodeType":"YulTypedName","src":"10448:5:89","type":""},{"name":"len","nativeSrc":"10455:3:89","nodeType":"YulTypedName","src":"10455:3:89","type":""},{"name":"startIndex","nativeSrc":"10460:10:89","nodeType":"YulTypedName","src":"10460:10:89","type":""}],"src":"10395:518:89"},{"body":{"nativeSrc":"11003:81:89","nodeType":"YulBlock","src":"11003:81:89","statements":[{"nativeSrc":"11013:65:89","nodeType":"YulAssignment","src":"11013:65:89","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"11028:4:89","nodeType":"YulIdentifier","src":"11028:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11046:1:89","nodeType":"YulLiteral","src":"11046:1:89","type":"","value":"3"},{"name":"len","nativeSrc":"11049:3:89","nodeType":"YulIdentifier","src":"11049:3:89"}],"functionName":{"name":"shl","nativeSrc":"11042:3:89","nodeType":"YulIdentifier","src":"11042:3:89"},"nativeSrc":"11042:11:89","nodeType":"YulFunctionCall","src":"11042:11:89"},{"arguments":[{"kind":"number","nativeSrc":"11059:1:89","nodeType":"YulLiteral","src":"11059:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"11055:3:89","nodeType":"YulIdentifier","src":"11055:3:89"},"nativeSrc":"11055:6:89","nodeType":"YulFunctionCall","src":"11055:6:89"}],"functionName":{"name":"shr","nativeSrc":"11038:3:89","nodeType":"YulIdentifier","src":"11038:3:89"},"nativeSrc":"11038:24:89","nodeType":"YulFunctionCall","src":"11038:24:89"}],"functionName":{"name":"not","nativeSrc":"11034:3:89","nodeType":"YulIdentifier","src":"11034:3:89"},"nativeSrc":"11034:29:89","nodeType":"YulFunctionCall","src":"11034:29:89"}],"functionName":{"name":"and","nativeSrc":"11024:3:89","nodeType":"YulIdentifier","src":"11024:3:89"},"nativeSrc":"11024:40:89","nodeType":"YulFunctionCall","src":"11024:40:89"},{"arguments":[{"kind":"number","nativeSrc":"11070:1:89","nodeType":"YulLiteral","src":"11070:1:89","type":"","value":"1"},{"name":"len","nativeSrc":"11073:3:89","nodeType":"YulIdentifier","src":"11073:3:89"}],"functionName":{"name":"shl","nativeSrc":"11066:3:89","nodeType":"YulIdentifier","src":"11066:3:89"},"nativeSrc":"11066:11:89","nodeType":"YulFunctionCall","src":"11066:11:89"}],"functionName":{"name":"or","nativeSrc":"11021:2:89","nodeType":"YulIdentifier","src":"11021:2:89"},"nativeSrc":"11021:57:89","nodeType":"YulFunctionCall","src":"11021:57:89"},"variableNames":[{"name":"used","nativeSrc":"11013:4:89","nodeType":"YulIdentifier","src":"11013:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"10918:166:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"10980:4:89","nodeType":"YulTypedName","src":"10980:4:89","type":""},{"name":"len","nativeSrc":"10986:3:89","nodeType":"YulTypedName","src":"10986:3:89","type":""}],"returnVariables":[{"name":"used","nativeSrc":"10994:4:89","nodeType":"YulTypedName","src":"10994:4:89","type":""}],"src":"10918:166:89"},{"body":{"nativeSrc":"11185:1203:89","nodeType":"YulBlock","src":"11185:1203:89","statements":[{"nativeSrc":"11195:24:89","nodeType":"YulVariableDeclaration","src":"11195:24:89","value":{"arguments":[{"name":"src","nativeSrc":"11215:3:89","nodeType":"YulIdentifier","src":"11215:3:89"}],"functionName":{"name":"mload","nativeSrc":"11209:5:89","nodeType":"YulIdentifier","src":"11209:5:89"},"nativeSrc":"11209:10:89","nodeType":"YulFunctionCall","src":"11209:10:89"},"variables":[{"name":"newLen","nativeSrc":"11199:6:89","nodeType":"YulTypedName","src":"11199:6:89","type":""}]},{"body":{"nativeSrc":"11262:22:89","nodeType":"YulBlock","src":"11262:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11264:16:89","nodeType":"YulIdentifier","src":"11264:16:89"},"nativeSrc":"11264:18:89","nodeType":"YulFunctionCall","src":"11264:18:89"},"nativeSrc":"11264:18:89","nodeType":"YulExpressionStatement","src":"11264:18:89"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"11234:6:89","nodeType":"YulIdentifier","src":"11234:6:89"},{"kind":"number","nativeSrc":"11242:18:89","nodeType":"YulLiteral","src":"11242:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11231:2:89","nodeType":"YulIdentifier","src":"11231:2:89"},"nativeSrc":"11231:30:89","nodeType":"YulFunctionCall","src":"11231:30:89"},"nativeSrc":"11228:56:89","nodeType":"YulIf","src":"11228:56:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"11337:4:89","nodeType":"YulIdentifier","src":"11337:4:89"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"11375:4:89","nodeType":"YulIdentifier","src":"11375:4:89"}],"functionName":{"name":"sload","nativeSrc":"11369:5:89","nodeType":"YulIdentifier","src":"11369:5:89"},"nativeSrc":"11369:11:89","nodeType":"YulFunctionCall","src":"11369:11:89"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"11343:25:89","nodeType":"YulIdentifier","src":"11343:25:89"},"nativeSrc":"11343:38:89","nodeType":"YulFunctionCall","src":"11343:38:89"},{"name":"newLen","nativeSrc":"11383:6:89","nodeType":"YulIdentifier","src":"11383:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"11293:43:89","nodeType":"YulIdentifier","src":"11293:43:89"},"nativeSrc":"11293:97:89","nodeType":"YulFunctionCall","src":"11293:97:89"},"nativeSrc":"11293:97:89","nodeType":"YulExpressionStatement","src":"11293:97:89"},{"nativeSrc":"11399:18:89","nodeType":"YulVariableDeclaration","src":"11399:18:89","value":{"kind":"number","nativeSrc":"11416:1:89","nodeType":"YulLiteral","src":"11416:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"11403:9:89","nodeType":"YulTypedName","src":"11403:9:89","type":""}]},{"nativeSrc":"11426:17:89","nodeType":"YulAssignment","src":"11426:17:89","value":{"kind":"number","nativeSrc":"11439:4:89","nodeType":"YulLiteral","src":"11439:4:89","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"11426:9:89","nodeType":"YulIdentifier","src":"11426:9:89"}]},{"cases":[{"body":{"nativeSrc":"11489:642:89","nodeType":"YulBlock","src":"11489:642:89","statements":[{"nativeSrc":"11503:35:89","nodeType":"YulVariableDeclaration","src":"11503:35:89","value":{"arguments":[{"name":"newLen","nativeSrc":"11522:6:89","nodeType":"YulIdentifier","src":"11522:6:89"},{"arguments":[{"kind":"number","nativeSrc":"11534:2:89","nodeType":"YulLiteral","src":"11534:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11530:3:89","nodeType":"YulIdentifier","src":"11530:3:89"},"nativeSrc":"11530:7:89","nodeType":"YulFunctionCall","src":"11530:7:89"}],"functionName":{"name":"and","nativeSrc":"11518:3:89","nodeType":"YulIdentifier","src":"11518:3:89"},"nativeSrc":"11518:20:89","nodeType":"YulFunctionCall","src":"11518:20:89"},"variables":[{"name":"loopEnd","nativeSrc":"11507:7:89","nodeType":"YulTypedName","src":"11507:7:89","type":""}]},{"nativeSrc":"11551:49:89","nodeType":"YulVariableDeclaration","src":"11551:49:89","value":{"arguments":[{"name":"slot","nativeSrc":"11595:4:89","nodeType":"YulIdentifier","src":"11595:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"11565:29:89","nodeType":"YulIdentifier","src":"11565:29:89"},"nativeSrc":"11565:35:89","nodeType":"YulFunctionCall","src":"11565:35:89"},"variables":[{"name":"dstPtr","nativeSrc":"11555:6:89","nodeType":"YulTypedName","src":"11555:6:89","type":""}]},{"nativeSrc":"11613:10:89","nodeType":"YulVariableDeclaration","src":"11613:10:89","value":{"kind":"number","nativeSrc":"11622:1:89","nodeType":"YulLiteral","src":"11622:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"11617:1:89","nodeType":"YulTypedName","src":"11617:1:89","type":""}]},{"body":{"nativeSrc":"11693:165:89","nodeType":"YulBlock","src":"11693:165:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"11718:6:89","nodeType":"YulIdentifier","src":"11718:6:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11736:3:89","nodeType":"YulIdentifier","src":"11736:3:89"},{"name":"srcOffset","nativeSrc":"11741:9:89","nodeType":"YulIdentifier","src":"11741:9:89"}],"functionName":{"name":"add","nativeSrc":"11732:3:89","nodeType":"YulIdentifier","src":"11732:3:89"},"nativeSrc":"11732:19:89","nodeType":"YulFunctionCall","src":"11732:19:89"}],"functionName":{"name":"mload","nativeSrc":"11726:5:89","nodeType":"YulIdentifier","src":"11726:5:89"},"nativeSrc":"11726:26:89","nodeType":"YulFunctionCall","src":"11726:26:89"}],"functionName":{"name":"sstore","nativeSrc":"11711:6:89","nodeType":"YulIdentifier","src":"11711:6:89"},"nativeSrc":"11711:42:89","nodeType":"YulFunctionCall","src":"11711:42:89"},"nativeSrc":"11711:42:89","nodeType":"YulExpressionStatement","src":"11711:42:89"},{"nativeSrc":"11770:24:89","nodeType":"YulAssignment","src":"11770:24:89","value":{"arguments":[{"name":"dstPtr","nativeSrc":"11784:6:89","nodeType":"YulIdentifier","src":"11784:6:89"},{"kind":"number","nativeSrc":"11792:1:89","nodeType":"YulLiteral","src":"11792:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11780:3:89","nodeType":"YulIdentifier","src":"11780:3:89"},"nativeSrc":"11780:14:89","nodeType":"YulFunctionCall","src":"11780:14:89"},"variableNames":[{"name":"dstPtr","nativeSrc":"11770:6:89","nodeType":"YulIdentifier","src":"11770:6:89"}]},{"nativeSrc":"11811:33:89","nodeType":"YulAssignment","src":"11811:33:89","value":{"arguments":[{"name":"srcOffset","nativeSrc":"11828:9:89","nodeType":"YulIdentifier","src":"11828:9:89"},{"kind":"number","nativeSrc":"11839:4:89","nodeType":"YulLiteral","src":"11839:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11824:3:89","nodeType":"YulIdentifier","src":"11824:3:89"},"nativeSrc":"11824:20:89","nodeType":"YulFunctionCall","src":"11824:20:89"},"variableNames":[{"name":"srcOffset","nativeSrc":"11811:9:89","nodeType":"YulIdentifier","src":"11811:9:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"11647:1:89","nodeType":"YulIdentifier","src":"11647:1:89"},{"name":"loopEnd","nativeSrc":"11650:7:89","nodeType":"YulIdentifier","src":"11650:7:89"}],"functionName":{"name":"lt","nativeSrc":"11644:2:89","nodeType":"YulIdentifier","src":"11644:2:89"},"nativeSrc":"11644:14:89","nodeType":"YulFunctionCall","src":"11644:14:89"},"nativeSrc":"11636:222:89","nodeType":"YulForLoop","post":{"nativeSrc":"11659:21:89","nodeType":"YulBlock","src":"11659:21:89","statements":[{"nativeSrc":"11661:17:89","nodeType":"YulAssignment","src":"11661:17:89","value":{"arguments":[{"name":"i","nativeSrc":"11670:1:89","nodeType":"YulIdentifier","src":"11670:1:89"},{"kind":"number","nativeSrc":"11673:4:89","nodeType":"YulLiteral","src":"11673:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11666:3:89","nodeType":"YulIdentifier","src":"11666:3:89"},"nativeSrc":"11666:12:89","nodeType":"YulFunctionCall","src":"11666:12:89"},"variableNames":[{"name":"i","nativeSrc":"11661:1:89","nodeType":"YulIdentifier","src":"11661:1:89"}]}]},"pre":{"nativeSrc":"11640:3:89","nodeType":"YulBlock","src":"11640:3:89","statements":[]},"src":"11636:222:89"},{"body":{"nativeSrc":"11906:166:89","nodeType":"YulBlock","src":"11906:166:89","statements":[{"nativeSrc":"11924:43:89","nodeType":"YulVariableDeclaration","src":"11924:43:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11951:3:89","nodeType":"YulIdentifier","src":"11951:3:89"},{"name":"srcOffset","nativeSrc":"11956:9:89","nodeType":"YulIdentifier","src":"11956:9:89"}],"functionName":{"name":"add","nativeSrc":"11947:3:89","nodeType":"YulIdentifier","src":"11947:3:89"},"nativeSrc":"11947:19:89","nodeType":"YulFunctionCall","src":"11947:19:89"}],"functionName":{"name":"mload","nativeSrc":"11941:5:89","nodeType":"YulIdentifier","src":"11941:5:89"},"nativeSrc":"11941:26:89","nodeType":"YulFunctionCall","src":"11941:26:89"},"variables":[{"name":"lastValue","nativeSrc":"11928:9:89","nodeType":"YulTypedName","src":"11928:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"11991:6:89","nodeType":"YulIdentifier","src":"11991:6:89"},{"arguments":[{"name":"lastValue","nativeSrc":"12003:9:89","nodeType":"YulIdentifier","src":"12003:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12030:1:89","nodeType":"YulLiteral","src":"12030:1:89","type":"","value":"3"},{"name":"newLen","nativeSrc":"12033:6:89","nodeType":"YulIdentifier","src":"12033:6:89"}],"functionName":{"name":"shl","nativeSrc":"12026:3:89","nodeType":"YulIdentifier","src":"12026:3:89"},"nativeSrc":"12026:14:89","nodeType":"YulFunctionCall","src":"12026:14:89"},{"kind":"number","nativeSrc":"12042:3:89","nodeType":"YulLiteral","src":"12042:3:89","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"12022:3:89","nodeType":"YulIdentifier","src":"12022:3:89"},"nativeSrc":"12022:24:89","nodeType":"YulFunctionCall","src":"12022:24:89"},{"arguments":[{"kind":"number","nativeSrc":"12052:1:89","nodeType":"YulLiteral","src":"12052:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"12048:3:89","nodeType":"YulIdentifier","src":"12048:3:89"},"nativeSrc":"12048:6:89","nodeType":"YulFunctionCall","src":"12048:6:89"}],"functionName":{"name":"shr","nativeSrc":"12018:3:89","nodeType":"YulIdentifier","src":"12018:3:89"},"nativeSrc":"12018:37:89","nodeType":"YulFunctionCall","src":"12018:37:89"}],"functionName":{"name":"not","nativeSrc":"12014:3:89","nodeType":"YulIdentifier","src":"12014:3:89"},"nativeSrc":"12014:42:89","nodeType":"YulFunctionCall","src":"12014:42:89"}],"functionName":{"name":"and","nativeSrc":"11999:3:89","nodeType":"YulIdentifier","src":"11999:3:89"},"nativeSrc":"11999:58:89","nodeType":"YulFunctionCall","src":"11999:58:89"}],"functionName":{"name":"sstore","nativeSrc":"11984:6:89","nodeType":"YulIdentifier","src":"11984:6:89"},"nativeSrc":"11984:74:89","nodeType":"YulFunctionCall","src":"11984:74:89"},"nativeSrc":"11984:74:89","nodeType":"YulExpressionStatement","src":"11984:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"11877:7:89","nodeType":"YulIdentifier","src":"11877:7:89"},{"name":"newLen","nativeSrc":"11886:6:89","nodeType":"YulIdentifier","src":"11886:6:89"}],"functionName":{"name":"lt","nativeSrc":"11874:2:89","nodeType":"YulIdentifier","src":"11874:2:89"},"nativeSrc":"11874:19:89","nodeType":"YulFunctionCall","src":"11874:19:89"},"nativeSrc":"11871:201:89","nodeType":"YulIf","src":"11871:201:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"12092:4:89","nodeType":"YulIdentifier","src":"12092:4:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12106:1:89","nodeType":"YulLiteral","src":"12106:1:89","type":"","value":"1"},{"name":"newLen","nativeSrc":"12109:6:89","nodeType":"YulIdentifier","src":"12109:6:89"}],"functionName":{"name":"shl","nativeSrc":"12102:3:89","nodeType":"YulIdentifier","src":"12102:3:89"},"nativeSrc":"12102:14:89","nodeType":"YulFunctionCall","src":"12102:14:89"},{"kind":"number","nativeSrc":"12118:1:89","nodeType":"YulLiteral","src":"12118:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12098:3:89","nodeType":"YulIdentifier","src":"12098:3:89"},"nativeSrc":"12098:22:89","nodeType":"YulFunctionCall","src":"12098:22:89"}],"functionName":{"name":"sstore","nativeSrc":"12085:6:89","nodeType":"YulIdentifier","src":"12085:6:89"},"nativeSrc":"12085:36:89","nodeType":"YulFunctionCall","src":"12085:36:89"},"nativeSrc":"12085:36:89","nodeType":"YulExpressionStatement","src":"12085:36:89"}]},"nativeSrc":"11482:649:89","nodeType":"YulCase","src":"11482:649:89","value":{"kind":"number","nativeSrc":"11487:1:89","nodeType":"YulLiteral","src":"11487:1:89","type":"","value":"1"}},{"body":{"nativeSrc":"12148:234:89","nodeType":"YulBlock","src":"12148:234:89","statements":[{"nativeSrc":"12162:14:89","nodeType":"YulVariableDeclaration","src":"12162:14:89","value":{"kind":"number","nativeSrc":"12175:1:89","nodeType":"YulLiteral","src":"12175:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"12166:5:89","nodeType":"YulTypedName","src":"12166:5:89","type":""}]},{"body":{"nativeSrc":"12211:67:89","nodeType":"YulBlock","src":"12211:67:89","statements":[{"nativeSrc":"12229:35:89","nodeType":"YulAssignment","src":"12229:35:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"12248:3:89","nodeType":"YulIdentifier","src":"12248:3:89"},{"name":"srcOffset","nativeSrc":"12253:9:89","nodeType":"YulIdentifier","src":"12253:9:89"}],"functionName":{"name":"add","nativeSrc":"12244:3:89","nodeType":"YulIdentifier","src":"12244:3:89"},"nativeSrc":"12244:19:89","nodeType":"YulFunctionCall","src":"12244:19:89"}],"functionName":{"name":"mload","nativeSrc":"12238:5:89","nodeType":"YulIdentifier","src":"12238:5:89"},"nativeSrc":"12238:26:89","nodeType":"YulFunctionCall","src":"12238:26:89"},"variableNames":[{"name":"value","nativeSrc":"12229:5:89","nodeType":"YulIdentifier","src":"12229:5:89"}]}]},"condition":{"name":"newLen","nativeSrc":"12192:6:89","nodeType":"YulIdentifier","src":"12192:6:89"},"nativeSrc":"12189:89:89","nodeType":"YulIf","src":"12189:89:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"12298:4:89","nodeType":"YulIdentifier","src":"12298:4:89"},{"arguments":[{"name":"value","nativeSrc":"12357:5:89","nodeType":"YulIdentifier","src":"12357:5:89"},{"name":"newLen","nativeSrc":"12364:6:89","nodeType":"YulIdentifier","src":"12364:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"12304:52:89","nodeType":"YulIdentifier","src":"12304:52:89"},"nativeSrc":"12304:67:89","nodeType":"YulFunctionCall","src":"12304:67:89"}],"functionName":{"name":"sstore","nativeSrc":"12291:6:89","nodeType":"YulIdentifier","src":"12291:6:89"},"nativeSrc":"12291:81:89","nodeType":"YulFunctionCall","src":"12291:81:89"},"nativeSrc":"12291:81:89","nodeType":"YulExpressionStatement","src":"12291:81:89"}]},"nativeSrc":"12140:242:89","nodeType":"YulCase","src":"12140:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"11462:6:89","nodeType":"YulIdentifier","src":"11462:6:89"},{"kind":"number","nativeSrc":"11470:2:89","nodeType":"YulLiteral","src":"11470:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"11459:2:89","nodeType":"YulIdentifier","src":"11459:2:89"},"nativeSrc":"11459:14:89","nodeType":"YulFunctionCall","src":"11459:14:89"},"nativeSrc":"11452:930:89","nodeType":"YulSwitch","src":"11452:930:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"11089:1299:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"11170:4:89","nodeType":"YulTypedName","src":"11170:4:89","type":""},{"name":"src","nativeSrc":"11176:3:89","nodeType":"YulTypedName","src":"11176:3:89","type":""}],"src":"11089:1299:89"},{"body":{"nativeSrc":"12562:383:89","nodeType":"YulBlock","src":"12562:383:89","statements":[{"nativeSrc":"12572:16:89","nodeType":"YulVariableDeclaration","src":"12572:16:89","value":{"name":"pos","nativeSrc":"12585:3:89","nodeType":"YulIdentifier","src":"12585:3:89"},"variables":[{"name":"pos_1","nativeSrc":"12576:5:89","nodeType":"YulTypedName","src":"12576:5:89","type":""}]},{"nativeSrc":"12597:27:89","nodeType":"YulVariableDeclaration","src":"12597:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"12617:6:89","nodeType":"YulIdentifier","src":"12617:6:89"}],"functionName":{"name":"mload","nativeSrc":"12611:5:89","nodeType":"YulIdentifier","src":"12611:5:89"},"nativeSrc":"12611:13:89","nodeType":"YulFunctionCall","src":"12611:13:89"},"variables":[{"name":"length","nativeSrc":"12601:6:89","nodeType":"YulTypedName","src":"12601:6:89","type":""}]},{"nativeSrc":"12633:12:89","nodeType":"YulAssignment","src":"12633:12:89","value":{"name":"pos","nativeSrc":"12642:3:89","nodeType":"YulIdentifier","src":"12642:3:89"},"variableNames":[{"name":"pos_1","nativeSrc":"12633:5:89","nodeType":"YulIdentifier","src":"12633:5:89"}]},{"nativeSrc":"12654:31:89","nodeType":"YulVariableDeclaration","src":"12654:31:89","value":{"arguments":[{"name":"value0","nativeSrc":"12672:6:89","nodeType":"YulIdentifier","src":"12672:6:89"},{"kind":"number","nativeSrc":"12680:4:89","nodeType":"YulLiteral","src":"12680:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12668:3:89","nodeType":"YulIdentifier","src":"12668:3:89"},"nativeSrc":"12668:17:89","nodeType":"YulFunctionCall","src":"12668:17:89"},"variables":[{"name":"srcPtr","nativeSrc":"12658:6:89","nodeType":"YulTypedName","src":"12658:6:89","type":""}]},{"nativeSrc":"12694:10:89","nodeType":"YulVariableDeclaration","src":"12694:10:89","value":{"kind":"number","nativeSrc":"12703:1:89","nodeType":"YulLiteral","src":"12703:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"12698:1:89","nodeType":"YulTypedName","src":"12698:1:89","type":""}]},{"body":{"nativeSrc":"12762:156:89","nodeType":"YulBlock","src":"12762:156:89","statements":[{"expression":{"arguments":[{"name":"pos_1","nativeSrc":"12783:5:89","nodeType":"YulIdentifier","src":"12783:5:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"12800:6:89","nodeType":"YulIdentifier","src":"12800:6:89"}],"functionName":{"name":"mload","nativeSrc":"12794:5:89","nodeType":"YulIdentifier","src":"12794:5:89"},"nativeSrc":"12794:13:89","nodeType":"YulFunctionCall","src":"12794:13:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12817:3:89","nodeType":"YulLiteral","src":"12817:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"12822:1:89","nodeType":"YulLiteral","src":"12822:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12813:3:89","nodeType":"YulIdentifier","src":"12813:3:89"},"nativeSrc":"12813:11:89","nodeType":"YulFunctionCall","src":"12813:11:89"},{"kind":"number","nativeSrc":"12826:1:89","nodeType":"YulLiteral","src":"12826:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12809:3:89","nodeType":"YulIdentifier","src":"12809:3:89"},"nativeSrc":"12809:19:89","nodeType":"YulFunctionCall","src":"12809:19:89"}],"functionName":{"name":"and","nativeSrc":"12790:3:89","nodeType":"YulIdentifier","src":"12790:3:89"},"nativeSrc":"12790:39:89","nodeType":"YulFunctionCall","src":"12790:39:89"}],"functionName":{"name":"mstore","nativeSrc":"12776:6:89","nodeType":"YulIdentifier","src":"12776:6:89"},"nativeSrc":"12776:54:89","nodeType":"YulFunctionCall","src":"12776:54:89"},"nativeSrc":"12776:54:89","nodeType":"YulExpressionStatement","src":"12776:54:89"},{"nativeSrc":"12843:25:89","nodeType":"YulAssignment","src":"12843:25:89","value":{"arguments":[{"name":"pos_1","nativeSrc":"12856:5:89","nodeType":"YulIdentifier","src":"12856:5:89"},{"kind":"number","nativeSrc":"12863:4:89","nodeType":"YulLiteral","src":"12863:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12852:3:89","nodeType":"YulIdentifier","src":"12852:3:89"},"nativeSrc":"12852:16:89","nodeType":"YulFunctionCall","src":"12852:16:89"},"variableNames":[{"name":"pos_1","nativeSrc":"12843:5:89","nodeType":"YulIdentifier","src":"12843:5:89"}]},{"nativeSrc":"12881:27:89","nodeType":"YulAssignment","src":"12881:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"12895:6:89","nodeType":"YulIdentifier","src":"12895:6:89"},{"kind":"number","nativeSrc":"12903:4:89","nodeType":"YulLiteral","src":"12903:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12891:3:89","nodeType":"YulIdentifier","src":"12891:3:89"},"nativeSrc":"12891:17:89","nodeType":"YulFunctionCall","src":"12891:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"12881:6:89","nodeType":"YulIdentifier","src":"12881:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"12724:1:89","nodeType":"YulIdentifier","src":"12724:1:89"},{"name":"length","nativeSrc":"12727:6:89","nodeType":"YulIdentifier","src":"12727:6:89"}],"functionName":{"name":"lt","nativeSrc":"12721:2:89","nodeType":"YulIdentifier","src":"12721:2:89"},"nativeSrc":"12721:13:89","nodeType":"YulFunctionCall","src":"12721:13:89"},"nativeSrc":"12713:205:89","nodeType":"YulForLoop","post":{"nativeSrc":"12735:18:89","nodeType":"YulBlock","src":"12735:18:89","statements":[{"nativeSrc":"12737:14:89","nodeType":"YulAssignment","src":"12737:14:89","value":{"arguments":[{"name":"i","nativeSrc":"12746:1:89","nodeType":"YulIdentifier","src":"12746:1:89"},{"kind":"number","nativeSrc":"12749:1:89","nodeType":"YulLiteral","src":"12749:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12742:3:89","nodeType":"YulIdentifier","src":"12742:3:89"},"nativeSrc":"12742:9:89","nodeType":"YulFunctionCall","src":"12742:9:89"},"variableNames":[{"name":"i","nativeSrc":"12737:1:89","nodeType":"YulIdentifier","src":"12737:1:89"}]}]},"pre":{"nativeSrc":"12717:3:89","nodeType":"YulBlock","src":"12717:3:89","statements":[]},"src":"12713:205:89"},{"nativeSrc":"12927:12:89","nodeType":"YulAssignment","src":"12927:12:89","value":{"name":"pos_1","nativeSrc":"12934:5:89","nodeType":"YulIdentifier","src":"12934:5:89"},"variableNames":[{"name":"end","nativeSrc":"12927:3:89","nodeType":"YulIdentifier","src":"12927:3:89"}]}]},"name":"abi_encode_tuple_packed_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12393:552:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12538:3:89","nodeType":"YulTypedName","src":"12538:3:89","type":""},{"name":"value0","nativeSrc":"12543:6:89","nodeType":"YulTypedName","src":"12543:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12554:3:89","nodeType":"YulTypedName","src":"12554:3:89","type":""}],"src":"12393:552:89"},{"body":{"nativeSrc":"13058:101:89","nodeType":"YulBlock","src":"13058:101:89","statements":[{"nativeSrc":"13068:26:89","nodeType":"YulAssignment","src":"13068:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13080:9:89","nodeType":"YulIdentifier","src":"13080:9:89"},{"kind":"number","nativeSrc":"13091:2:89","nodeType":"YulLiteral","src":"13091:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13076:3:89","nodeType":"YulIdentifier","src":"13076:3:89"},"nativeSrc":"13076:18:89","nodeType":"YulFunctionCall","src":"13076:18:89"},"variableNames":[{"name":"tail","nativeSrc":"13068:4:89","nodeType":"YulIdentifier","src":"13068:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13110:9:89","nodeType":"YulIdentifier","src":"13110:9:89"},{"arguments":[{"name":"value0","nativeSrc":"13125:6:89","nodeType":"YulIdentifier","src":"13125:6:89"},{"kind":"number","nativeSrc":"13133:18:89","nodeType":"YulLiteral","src":"13133:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"13121:3:89","nodeType":"YulIdentifier","src":"13121:3:89"},"nativeSrc":"13121:31:89","nodeType":"YulFunctionCall","src":"13121:31:89"}],"functionName":{"name":"mstore","nativeSrc":"13103:6:89","nodeType":"YulIdentifier","src":"13103:6:89"},"nativeSrc":"13103:50:89","nodeType":"YulFunctionCall","src":"13103:50:89"},"nativeSrc":"13103:50:89","nodeType":"YulExpressionStatement","src":"13103:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"12950:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13027:9:89","nodeType":"YulTypedName","src":"13027:9:89","type":""},{"name":"value0","nativeSrc":"13038:6:89","nodeType":"YulTypedName","src":"13038:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13049:4:89","nodeType":"YulTypedName","src":"13049:4:89","type":""}],"src":"12950:209:89"},{"body":{"nativeSrc":"13245:103:89","nodeType":"YulBlock","src":"13245:103:89","statements":[{"body":{"nativeSrc":"13291:16:89","nodeType":"YulBlock","src":"13291:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13300:1:89","nodeType":"YulLiteral","src":"13300:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13303:1:89","nodeType":"YulLiteral","src":"13303:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13293:6:89","nodeType":"YulIdentifier","src":"13293:6:89"},"nativeSrc":"13293:12:89","nodeType":"YulFunctionCall","src":"13293:12:89"},"nativeSrc":"13293:12:89","nodeType":"YulExpressionStatement","src":"13293:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13266:7:89","nodeType":"YulIdentifier","src":"13266:7:89"},{"name":"headStart","nativeSrc":"13275:9:89","nodeType":"YulIdentifier","src":"13275:9:89"}],"functionName":{"name":"sub","nativeSrc":"13262:3:89","nodeType":"YulIdentifier","src":"13262:3:89"},"nativeSrc":"13262:23:89","nodeType":"YulFunctionCall","src":"13262:23:89"},{"kind":"number","nativeSrc":"13287:2:89","nodeType":"YulLiteral","src":"13287:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13258:3:89","nodeType":"YulIdentifier","src":"13258:3:89"},"nativeSrc":"13258:32:89","nodeType":"YulFunctionCall","src":"13258:32:89"},"nativeSrc":"13255:52:89","nodeType":"YulIf","src":"13255:52:89"},{"nativeSrc":"13316:26:89","nodeType":"YulAssignment","src":"13316:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13332:9:89","nodeType":"YulIdentifier","src":"13332:9:89"}],"functionName":{"name":"mload","nativeSrc":"13326:5:89","nodeType":"YulIdentifier","src":"13326:5:89"},"nativeSrc":"13326:16:89","nodeType":"YulFunctionCall","src":"13326:16:89"},"variableNames":[{"name":"value0","nativeSrc":"13316:6:89","nodeType":"YulIdentifier","src":"13316:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"13164:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13211:9:89","nodeType":"YulTypedName","src":"13211:9:89","type":""},{"name":"dataEnd","nativeSrc":"13222:7:89","nodeType":"YulTypedName","src":"13222:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13234:6:89","nodeType":"YulTypedName","src":"13234:6:89","type":""}],"src":"13164:184:89"},{"body":{"nativeSrc":"13482:145:89","nodeType":"YulBlock","src":"13482:145:89","statements":[{"nativeSrc":"13492:26:89","nodeType":"YulAssignment","src":"13492:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13504:9:89","nodeType":"YulIdentifier","src":"13504:9:89"},{"kind":"number","nativeSrc":"13515:2:89","nodeType":"YulLiteral","src":"13515:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13500:3:89","nodeType":"YulIdentifier","src":"13500:3:89"},"nativeSrc":"13500:18:89","nodeType":"YulFunctionCall","src":"13500:18:89"},"variableNames":[{"name":"tail","nativeSrc":"13492:4:89","nodeType":"YulIdentifier","src":"13492:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13534:9:89","nodeType":"YulIdentifier","src":"13534:9:89"},{"arguments":[{"name":"value0","nativeSrc":"13549:6:89","nodeType":"YulIdentifier","src":"13549:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13565:3:89","nodeType":"YulLiteral","src":"13565:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"13570:1:89","nodeType":"YulLiteral","src":"13570:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13561:3:89","nodeType":"YulIdentifier","src":"13561:3:89"},"nativeSrc":"13561:11:89","nodeType":"YulFunctionCall","src":"13561:11:89"},{"kind":"number","nativeSrc":"13574:1:89","nodeType":"YulLiteral","src":"13574:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13557:3:89","nodeType":"YulIdentifier","src":"13557:3:89"},"nativeSrc":"13557:19:89","nodeType":"YulFunctionCall","src":"13557:19:89"}],"functionName":{"name":"and","nativeSrc":"13545:3:89","nodeType":"YulIdentifier","src":"13545:3:89"},"nativeSrc":"13545:32:89","nodeType":"YulFunctionCall","src":"13545:32:89"}],"functionName":{"name":"mstore","nativeSrc":"13527:6:89","nodeType":"YulIdentifier","src":"13527:6:89"},"nativeSrc":"13527:51:89","nodeType":"YulFunctionCall","src":"13527:51:89"},"nativeSrc":"13527:51:89","nodeType":"YulExpressionStatement","src":"13527:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13598:9:89","nodeType":"YulIdentifier","src":"13598:9:89"},{"kind":"number","nativeSrc":"13609:2:89","nodeType":"YulLiteral","src":"13609:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13594:3:89","nodeType":"YulIdentifier","src":"13594:3:89"},"nativeSrc":"13594:18:89","nodeType":"YulFunctionCall","src":"13594:18:89"},{"name":"value1","nativeSrc":"13614:6:89","nodeType":"YulIdentifier","src":"13614:6:89"}],"functionName":{"name":"mstore","nativeSrc":"13587:6:89","nodeType":"YulIdentifier","src":"13587:6:89"},"nativeSrc":"13587:34:89","nodeType":"YulFunctionCall","src":"13587:34:89"},"nativeSrc":"13587:34:89","nodeType":"YulExpressionStatement","src":"13587:34:89"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"13353:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13443:9:89","nodeType":"YulTypedName","src":"13443:9:89","type":""},{"name":"value1","nativeSrc":"13454:6:89","nodeType":"YulTypedName","src":"13454:6:89","type":""},{"name":"value0","nativeSrc":"13462:6:89","nodeType":"YulTypedName","src":"13462:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13473:4:89","nodeType":"YulTypedName","src":"13473:4:89","type":""}],"src":"13353:274:89"},{"body":{"nativeSrc":"13769:150:89","nodeType":"YulBlock","src":"13769:150:89","statements":[{"nativeSrc":"13779:27:89","nodeType":"YulVariableDeclaration","src":"13779:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"13799:6:89","nodeType":"YulIdentifier","src":"13799:6:89"}],"functionName":{"name":"mload","nativeSrc":"13793:5:89","nodeType":"YulIdentifier","src":"13793:5:89"},"nativeSrc":"13793:13:89","nodeType":"YulFunctionCall","src":"13793:13:89"},"variables":[{"name":"length","nativeSrc":"13783:6:89","nodeType":"YulTypedName","src":"13783:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"13854:6:89","nodeType":"YulIdentifier","src":"13854:6:89"},{"kind":"number","nativeSrc":"13862:4:89","nodeType":"YulLiteral","src":"13862:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13850:3:89","nodeType":"YulIdentifier","src":"13850:3:89"},"nativeSrc":"13850:17:89","nodeType":"YulFunctionCall","src":"13850:17:89"},{"name":"pos","nativeSrc":"13869:3:89","nodeType":"YulIdentifier","src":"13869:3:89"},{"name":"length","nativeSrc":"13874:6:89","nodeType":"YulIdentifier","src":"13874:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13815:34:89","nodeType":"YulIdentifier","src":"13815:34:89"},"nativeSrc":"13815:66:89","nodeType":"YulFunctionCall","src":"13815:66:89"},"nativeSrc":"13815:66:89","nodeType":"YulExpressionStatement","src":"13815:66:89"},{"nativeSrc":"13890:23:89","nodeType":"YulAssignment","src":"13890:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"13901:3:89","nodeType":"YulIdentifier","src":"13901:3:89"},{"name":"length","nativeSrc":"13906:6:89","nodeType":"YulIdentifier","src":"13906:6:89"}],"functionName":{"name":"add","nativeSrc":"13897:3:89","nodeType":"YulIdentifier","src":"13897:3:89"},"nativeSrc":"13897:16:89","nodeType":"YulFunctionCall","src":"13897:16:89"},"variableNames":[{"name":"end","nativeSrc":"13890:3:89","nodeType":"YulIdentifier","src":"13890:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"13632:287:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13745:3:89","nodeType":"YulTypedName","src":"13745:3:89","type":""},{"name":"value0","nativeSrc":"13750:6:89","nodeType":"YulTypedName","src":"13750:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13761:3:89","nodeType":"YulTypedName","src":"13761:3:89","type":""}],"src":"13632:287:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n        array := allocate_memory(size)\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), src, length)\n        mstore(add(add(array, length), 0x20), 0)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value1 := abi_decode_available_length_bytes(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function array_allocation_size_array_string_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_bytes(add(offset, 0x20), calldataload(offset), end)\n    }\n    function abi_decode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        let dst := allocate_memory(array_allocation_size_array_string_dyn(length))\n        let array := dst\n        mstore(dst, length)\n        dst := add(dst, 32)\n        let srcEnd := add(add(_1, shl(5, length)), 32)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_1, 32)\n        for { } lt(src, srcEnd) { src := add(src, 32) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(dst, abi_decode_string(add(add(_1, innerOffset), 32), dataEnd))\n            dst := add(dst, 32)\n        }\n        value0 := array\n    }\n    function abi_decode_tuple_t_bytes32t_string_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        let dst := allocate_memory(array_allocation_size_array_string_dyn(length))\n        let array := dst\n        mstore(dst, length)\n        dst := add(dst, 32)\n        let srcEnd := add(add(_1, shl(5, length)), 32)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_1, 32)\n        for { } lt(src, srcEnd) { src := add(src, 32) }\n        {\n            mstore(dst, abi_decode_address(src))\n            dst := add(dst, 32)\n        }\n        value0 := array\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let tail_2 := add(add(headStart, shl(5, length)), 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, headStart), not(63)))\n            tail_2 := abi_encode_string(mload(srcPtr), tail_2)\n            srcPtr := add(srcPtr, 32)\n            pos := add(pos, 32)\n        }\n        tail := tail_2\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, 32)\n            srcPtr := add(srcPtr, 32)\n        }\n        tail := pos\n    }\n    function abi_decode_tuple_t_bytes32t_uint64(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        if iszero(eq(value_1, and(value_1, 0xffffffffffffffff))) { revert(0, 0) }\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_bytes32t_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n        value1 := value_1\n    }\n    function abi_encode_tuple_packed_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value0)\n        pos_1 := pos\n        let srcPtr := add(value0, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let _1 := mload(srcPtr)\n            let length_1 := mload(_1)\n            copy_memory_to_memory_with_cleanup(add(_1, 0x20), pos_1, length_1)\n            pos_1 := add(pos_1, and(add(length_1, 31), not(31)))\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos_1\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_packed_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value0)\n        pos_1 := pos\n        let srcPtr := add(value0, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos_1, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos_1 := add(pos_1, 0x20)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos_1\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"968":[{"length":32,"start":3749},{"length":32,"start":3790},{"length":32,"start":4127}]},"linkReferences":{},"object":"6080604052600436106101665760003560e01c806381c04407116100d1578063c1c2c4371161008a578063c8029da811610064578063c8029da814610490578063d547741f146104b2578063f165f4b4146104d2578063fd32b9fa146104f257600080fd5b8063c1c2c4371461042e578063c4d66de81461044e578063c7f7d04a1461046e57600080fd5b806381c044071461032d57806391d148541461034d578063a217fddf1461036d578063ad39965d14610382578063ad3cb1cc146103d0578063b896a1811461040e57600080fd5b806336568abe1161012357806336568abe146102755780633fe8ef0f146102955780634f1ef286146102b557806352d1902d146102c85780637866077b146102dd5780637c74627a146102fd57600080fd5b806301ffc9a71461016b5780631c63030a146101a0578063248a9ca3146101ee5780632a0acc6a1461021c5780632f2ff15d1461023e57806331f4490014610260575b600080fd5b34801561017757600080fd5b5061018b610186366004611676565b610512565b60405190151581526020015b60405180910390f35b3480156101ac57600080fd5b506101d66101bb3660046116a0565b6000908152602081905260409020546001600160401b031690565b6040516001600160401b039091168152602001610197565b3480156101fa57600080fd5b5061020e6102093660046116a0565b610549565b604051908152602001610197565b34801561022857600080fd5b5061020e600080516020611d8b83398151915281565b34801561024a57600080fd5b5061025e6102593660046116d5565b61056b565b005b34801561026c57600080fd5b5061025e61058d565b34801561028157600080fd5b5061025e6102903660046116d5565b6105cd565b3480156102a157600080fd5b5061025e6102b03660046116d5565b610605565b61025e6102c33660046117a2565b610668565b3480156102d457600080fd5b5061020e610687565b3480156102e957600080fd5b5061025e6102f8366004611846565b6106a4565b34801561030957600080fd5b5061018b6103183660046116a0565b60009081526002602052604090205460ff1690565b34801561033957600080fd5b5061025e610348366004611900565b610712565b34801561035957600080fd5b5061018b6103683660046116d5565b61076b565b34801561037957600080fd5b5061020e600081565b34801561038e57600080fd5b506103b861039d3660046116a0565b6000908152600160205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610197565b3480156103dc57600080fd5b50610401604051806040016040528060058152602001640352e302e360dc1b81525081565b604051610197919061198c565b34801561041a57600080fd5b5061025e61042936600461199f565b6107a3565b34801561043a57600080fd5b506104016104493660046116a0565b610810565b34801561045a57600080fd5b5061025e610469366004611a3b565b6108b2565b34801561047a57600080fd5b506104836109e6565b6040516101979190611a56565b34801561049c57600080fd5b506104a5610abf565b6040516101979190611abb565b3480156104be57600080fd5b5061025e6104cd3660046116d5565b610b21565b3480156104de57600080fd5b5061025e6104ed366004611b07565b610b3d565b3480156104fe57600080fd5b5061025e61050d366004611b43565b610baa565b60006001600160e01b03198216637965db0b60e01b148061054357506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000908152600080516020611dab833981519152602052604090206001015490565b61057482610549565b61057d81610bf6565b6105878383610c03565b50505050565b600080516020611deb833981519152546001600160401b0316156105c35760405162dc149f60e41b815260040160405180910390fd5b6105cb610ca8565b565b6001600160a01b03811633146105f65760405163334bd91960e11b815260040160405180910390fd5b6106008282610d43565b505050565b600080516020611d8b83398151915261061d81610bf6565b6106278383610dbf565b60008381526001602052604080822080546001600160a01b0319166001600160a01b038616179055518491600080516020611dcb83398151915291a2505050565b610670610e9a565b61067982610f3f565b6106838282610f57565b5050565b6000610691611014565b50600080516020611d6b83398151915290565b600080516020611d8b8339815191526106bc81610bf6565b81516106cf906005906020850190611553565b50816040516106de9190611b6d565b604051908190038120907fdf0903e67c3a4fc263ca7520a3911c684b4d7004cb5f4651a1e6fb660d414e9d90600090a25050565b600080516020611d8b83398151915261072a81610bf6565b610734838361105d565b600083815260036020526040902061074c8382611c43565b506040518390600080516020611dcb83398151915290600090a2505050565b6000918252600080516020611dab833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020611d8b8339815191526107bb81610bf6565b81516107ce9060049060208501906115a9565b50816040516107dd9190611d01565b604051908190038120907e653e88a963cfbf443e7e07366d26e53c7d4eb4b620a8a9a3cd59490b153e4a90600090a25050565b600081815260036020526040902080546060919061082d90611bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461085990611bbb565b80156108a65780601f1061087b576101008083540402835291602001916108a6565b820191906000526020600020905b81548152906001019060200180831161088957829003601f168201915b50505050509050919050565b600080516020611deb8339815191528054600160401b810460ff1615906001600160401b03166000811580156108e55750825b90506000826001600160401b031660011480156109015750303b155b90508115801561090f575080155b1561092d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561095757845460ff60401b1916600160401b1785555b61095f6110b3565b6109676110b3565b61097f600080516020611d8b833981519152806110bb565b610997600080516020611d8b83398151915287610c03565b5083156109de57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60606005805480602002602001604051908101604052809291908181526020016000905b82821015610ab6578382906000526020600020018054610a2990611bbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5590611bbb565b8015610aa25780601f10610a7757610100808354040283529160200191610aa2565b820191906000526020600020905b815481529060010190602001808311610a8557829003601f168201915b505050505081526020019060010190610a0a565b50505050905090565b60606004805480602002602001604051908101604052809291908181526020018280548015610b1757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610af9575b5050505050905090565b610b2a82610549565b610b3381610bf6565b6105878383610d43565b600080516020611d8b833981519152610b5581610bf6565b610b6883836001600160401b031661111e565b600083815260208190526040808220805467ffffffffffffffff19166001600160401b038616179055518491600080516020611dcb83398151915291a2505050565b600080516020611d8b833981519152610bc281610bf6565b600083815260026020526040808220805460ff1916851515179055518491600080516020611dcb83398151915291a2505050565b610c0081336112d2565b50565b6000600080516020611dab833981519152610c1e848461076b565b610c9e576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055610c543390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610543565b6000915050610543565b600080516020611deb8339815191528054600160401b900460ff1615610ce15760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614610c0057805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b6000600080516020611dab833981519152610d5e848461076b565b15610c9e576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610543565b6001600160a01b038116610dee576040516383cf4a2b60e01b8152600481018390526024015b60405180910390fd5b7f74108225d5b838030da6279474524322f9c8b07ad500246d400a882d1adc4a678203610e1e576106838261130b565b7ffe7a664f6e0c3521ff1c6c504d38ef3e9f443169aed5f833bbef58ef2647083b8203610e4e576106838261130b565b7f211c2745ac5ee6e09e5cfea6b039edcef274b70fb1404ff78779e4759bf707838203610e7e576106838261130b565b604051635326e49560e11b815260048101839052602401610de5565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610f2157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f15600080516020611d6b833981519152546001600160a01b031690565b6001600160a01b031614155b156105cb5760405163703e46dd60e11b815260040160405180910390fd5b600080516020611d8b83398151915261068381610bf6565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb1575060408051601f3d908101601f19168201909252610fae91810190611d35565b60015b610fd957604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610de5565b600080516020611d6b833981519152811461100a57604051632a87526960e21b815260048101829052602401610de5565b6106008383611344565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105cb5760405163703e46dd60e11b815260040160405180910390fd5b7f8966879121cfb6c0f964e7eacbe2052f82e9cfff16d18b638bfd80da1189d0308203611088575050565b7fb91d3c5ffbf64f5db586fb9e283ef216271d92de17b247d061043614a5364b868203610e7e575050565b6105cb61139a565b600080516020611dab83398151915260006110d584610549565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b7f4974a2122f752ac8bcaeec9beacd1bb419a4c873fda1aa7058360e08c5c9401c82036111745780158061115357506103e881115b1561068357604051635631091760e11b815260048101839052602401610de5565b7f7f409c90678ce93e65834482eacce2014a08dd7ce43a3ec31af5320a72db7a6282036111c95780158061115357506103e881111561068357604051635631091760e11b815260048101839052602401610de5565b7fb85db7dee54693d742881af46464432adde0803726a71dd9f6234a601792cf9a82036112165761012c81111561068357604051635631091760e11b815260048101839052602401610de5565b7fc8a0e0a9d335faf7a58f75bc4896d12c9488e34801b4a891a6ba2ff43ae4ad2f820315610683577f30d9b452ee51929ed46b0efac730a78ccd37a793a5acf24feda636390b210516820315610683577f4f27e928da73627e3874c3712f79e2e58f25a77db3929917088d7d5014f08604820315610683577fe30954f078b83da37fe6529e73721e4b7b8cfc0f9ab2bb4f1f9828ca6b2ef12082031561068357604051635326e49560e11b815260048101839052602401610de5565b6112dc828261076b565b6106835760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610de5565b6000818152600160205260409020546001600160a01b031615610c0057604051630d58b82360e31b815260048101829052602401610de5565b61134d826113d1565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611392576106008282611436565b6106836114ac565b600080516020611deb83398151915254600160401b900460ff166105cb57604051631afcd79f60e31b815260040160405180910390fd5b806001600160a01b03163b60000361140757604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610de5565b600080516020611d6b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516114539190611d4e565b600060405180830381855af49150503d806000811461148e576040519150601f19603f3d011682016040523d82523d6000602084013e611493565b606091505b50915091506114a38583836114cb565b95945050505050565b34156105cb5760405163b398979f60e01b815260040160405180910390fd5b6060826114e0576114db8261152a565b611523565b81511580156114f757506001600160a01b0384163b155b1561152057604051639996b31560e01b81526001600160a01b0385166004820152602401610de5565b50805b9392505050565b80511561153a5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b828054828255906000526020600020908101928215611599579160200282015b8281111561159957825182906115899082611c43565b5091602001919060010190611573565b506115a592915061160a565b5090565b8280548282559060005260206000209081019282156115fe579160200282015b828111156115fe57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906115c9565b506115a5929150611627565b808211156115a557600061161e828261163c565b5060010161160a565b5b808211156115a55760008155600101611628565b50805461164890611bbb565b6000825580601f10611658575050565b601f016020900490600052602060002090810190610c009190611627565b60006020828403121561168857600080fd5b81356001600160e01b03198116811461152357600080fd5b6000602082840312156116b257600080fd5b5035919050565b80356001600160a01b03811681146116d057600080fd5b919050565b600080604083850312156116e857600080fd5b823591506116f8602084016116b9565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561173f5761173f611701565b604052919050565b6000806001600160401b0384111561176157611761611701565b50601f8301601f191660200161177681611717565b91505082815283838301111561178b57600080fd5b828260208301376000602084830101529392505050565b600080604083850312156117b557600080fd5b6117be836116b9565b915060208301356001600160401b038111156117d957600080fd5b8301601f810185136117ea57600080fd5b6117f985823560208401611747565b9150509250929050565b60006001600160401b0382111561181c5761181c611701565b5060051b60200190565b600082601f83011261183757600080fd5b61152383833560208501611747565b60006020828403121561185857600080fd5b81356001600160401b0381111561186e57600080fd5b8201601f8101841361187f57600080fd5b803561189261188d82611803565b611717565b8082825260208201915060208360051b8501019250868311156118b457600080fd5b602084015b838110156118f55780356001600160401b038111156118d757600080fd5b6118e689602083890101611826565b845250602092830192016118b9565b509695505050505050565b6000806040838503121561191357600080fd5b8235915060208301356001600160401b0381111561193057600080fd5b6117f985828601611826565b60005b8381101561195757818101518382015260200161193f565b50506000910152565b6000815180845261197881602086016020860161193c565b601f01601f19169290920160200192915050565b6020815260006115236020830184611960565b6000602082840312156119b157600080fd5b81356001600160401b038111156119c757600080fd5b8201601f810184136119d857600080fd5b80356119e661188d82611803565b8082825260208201915060208360051b850101925086831115611a0857600080fd5b6020840193505b82841015611a3157611a20846116b9565b825260209384019390910190611a0f565b9695505050505050565b600060208284031215611a4d57600080fd5b611523826116b9565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015611aaf57603f19878603018452611a9a858351611960565b94506020938401939190910190600101611a7e565b50929695505050505050565b602080825282518282018190526000918401906040840190835b81811015611afc5783516001600160a01b0316835260209384019390920191600101611ad5565b509095945050505050565b60008060408385031215611b1a57600080fd5b8235915060208301356001600160401b0381168114611b3857600080fd5b809150509250929050565b60008060408385031215611b5657600080fd5b8235915060208301358015158114611b3857600080fd5b8151600090829060208501835b82811015611bb05781518051611b9481876020850161193c565b601f01601f191694909401935060209190910190600101611b7a565b509195945050505050565b600181811c90821680611bcf57607f821691505b602082108103611bef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561060057806000526020600020601f840160051c81016020851015611c1c5750805b601f840160051c820191505b81811015611c3c5760008155600101611c28565b5050505050565b81516001600160401b03811115611c5c57611c5c611701565b611c7081611c6a8454611bbb565b84611bf5565b6020601f821160018114611ca45760008315611c8c5750848201515b600019600385901b1c1916600184901b178455611c3c565b600084815260208120601f198516915b82811015611cd45787850151825560209485019460019092019101611cb4565b5084821015611cf25786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b8151600090829060208501835b82811015611bb05781516001600160a01b0316845260209384019390910190600101611d0e565b600060208284031215611d4757600080fd5b5051919050565b60008251611d6081846020870161193c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060fff43fb3dd5e4309106861e1122d0446898fbf9d2162cf48cb55d05801ca52f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b4ff7badb8df11c032272822ec2676f4ca9fb821e6f4d6963f68a4293b81bb9564736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x166 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x81C04407 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xC1C2C437 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xC8029DA8 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xC8029DA8 EQ PUSH2 0x490 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x4B2 JUMPI DUP1 PUSH4 0xF165F4B4 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0xFD32B9FA EQ PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC1C2C437 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0xC7F7D04A EQ PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x81C04407 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0xAD39965D EQ PUSH2 0x382 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xB896A181 EQ PUSH2 0x40E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0x123 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x275 JUMPI DUP1 PUSH4 0x3FE8EF0F EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x2C8 JUMPI DUP1 PUSH4 0x7866077B EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x7C74627A EQ PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x1C63030A EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x31F44900 EQ PUSH2 0x260 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x186 CALLDATASIZE PUSH1 0x4 PUSH2 0x1676 JUMP JUMPDEST PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D6 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x197 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH2 0x549 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x197 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x259 CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x58D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x290 CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0x5CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x2B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0x605 JUMP JUMPDEST PUSH2 0x25E PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x17A2 JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH2 0x687 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x2F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1846 JUMP JUMPDEST PUSH2 0x6A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x318 CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x348 CALLDATASIZE PUSH1 0x4 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x712 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0x76B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x379 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20E PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B8 PUSH2 0x39D CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x197 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x401 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x198C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x429 CALLDATASIZE PUSH1 0x4 PUSH2 0x199F JUMP JUMPDEST PUSH2 0x7A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x401 PUSH2 0x449 CALLDATASIZE PUSH1 0x4 PUSH2 0x16A0 JUMP JUMPDEST PUSH2 0x810 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x469 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A3B JUMP JUMPDEST PUSH2 0x8B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x483 PUSH2 0x9E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A5 PUSH2 0xABF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x1ABB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x4CD CALLDATASIZE PUSH1 0x4 PUSH2 0x16D5 JUMP JUMPDEST PUSH2 0xB21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x4ED CALLDATASIZE PUSH1 0x4 PUSH2 0x1B07 JUMP JUMPDEST PUSH2 0xB3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x543 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x574 DUP3 PUSH2 0x549 JUMP JUMPDEST PUSH2 0x57D DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x587 DUP4 DUP4 PUSH2 0xC03 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DEB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO PUSH2 0x5C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5CB PUSH2 0xCA8 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x5F6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x600 DUP3 DUP3 PUSH2 0xD43 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x61D DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x627 DUP4 DUP4 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND OR SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DCB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0x670 PUSH2 0xE9A JUMP JUMPDEST PUSH2 0x679 DUP3 PUSH2 0xF3F JUMP JUMPDEST PUSH2 0x683 DUP3 DUP3 PUSH2 0xF57 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x691 PUSH2 0x1014 JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D6B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x6BC DUP2 PUSH2 0xBF6 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x6CF SWAP1 PUSH1 0x5 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x1553 JUMP JUMPDEST POP DUP2 PUSH1 0x40 MLOAD PUSH2 0x6DE SWAP2 SWAP1 PUSH2 0x1B6D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH32 0xDF0903E67C3A4FC263CA7520A3911C684B4D7004CB5F4651A1E6FB660D414E9D SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x72A DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x734 DUP4 DUP4 PUSH2 0x105D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x74C DUP4 DUP3 PUSH2 0x1C43 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DCB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x7BB DUP2 PUSH2 0xBF6 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x7CE SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x15A9 JUMP JUMPDEST POP DUP2 PUSH1 0x40 MLOAD PUSH2 0x7DD SWAP2 SWAP1 PUSH2 0x1D01 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH31 0x653E88A963CFBF443E7E07366D26E53C7D4EB4B620A8A9A3CD59490B153E4A SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH2 0x82D SWAP1 PUSH2 0x1BBB 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 0x859 SWAP1 PUSH2 0x1BBB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8A6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x87B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8A6 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 0x889 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DEB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x8E5 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x901 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x90F JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x957 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x95F PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x967 PUSH2 0x10B3 JUMP JUMPDEST PUSH2 0x97F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x10BB JUMP JUMPDEST PUSH2 0x997 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP8 PUSH2 0xC03 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x9DE JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xAB6 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0xA29 SWAP1 PUSH2 0x1BBB 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 0xA55 SWAP1 PUSH2 0x1BBB JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA77 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA2 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 0xA85 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xA0A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xB17 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xAF9 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xB2A DUP3 PUSH2 0x549 JUMP JUMPDEST PUSH2 0xB33 DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x587 DUP4 DUP4 PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xB55 DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0xB68 DUP4 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x111E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND OR SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DCB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xBC2 DUP2 PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO OR SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DCB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0xC00 DUP2 CALLER PUSH2 0x12D2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC1E DUP5 DUP5 PUSH2 0x76B JUMP JUMPDEST PUSH2 0xC9E JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xC54 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x543 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x543 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DEB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xCE1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0xC00 JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xD5E DUP5 DUP5 PUSH2 0x76B JUMP JUMPDEST ISZERO PUSH2 0xC9E JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP8 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x543 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xDEE JUMPI PUSH1 0x40 MLOAD PUSH4 0x83CF4A2B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x74108225D5B838030DA6279474524322F9C8B07AD500246D400A882D1ADC4A67 DUP3 SUB PUSH2 0xE1E JUMPI PUSH2 0x683 DUP3 PUSH2 0x130B JUMP JUMPDEST PUSH32 0xFE7A664F6E0C3521FF1C6C504D38EF3E9F443169AED5F833BBEF58EF2647083B DUP3 SUB PUSH2 0xE4E JUMPI PUSH2 0x683 DUP3 PUSH2 0x130B JUMP JUMPDEST PUSH32 0x211C2745AC5EE6E09E5CFEA6B039EDCEF274B70FB1404FF78779E4759BF70783 DUP3 SUB PUSH2 0xE7E JUMPI PUSH2 0x683 DUP3 PUSH2 0x130B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5326E495 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0xF21 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xF15 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D6B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D8B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x683 DUP2 PUSH2 0xBF6 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xFB1 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xFAE SWAP2 DUP2 ADD SWAP1 PUSH2 0x1D35 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xFD9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D6B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x100A JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH2 0x600 DUP4 DUP4 PUSH2 0x1344 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x8966879121CFB6C0F964E7EACBE2052F82E9CFFF16D18B638BFD80DA1189D030 DUP3 SUB PUSH2 0x1088 JUMPI POP POP JUMP JUMPDEST PUSH32 0xB91D3C5FFBF64F5DB586FB9E283EF216271D92DE17B247D061043614A5364B86 DUP3 SUB PUSH2 0xE7E JUMPI POP POP JUMP JUMPDEST PUSH2 0x5CB PUSH2 0x139A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DAB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 PUSH2 0x10D5 DUP5 PUSH2 0x549 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP7 SWAP1 SSTORE MLOAD SWAP2 SWAP3 POP DUP5 SWAP2 DUP4 SWAP2 DUP8 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4974A2122F752AC8BCAEEC9BEACD1BB419A4C873FDA1AA7058360E08C5C9401C DUP3 SUB PUSH2 0x1174 JUMPI DUP1 ISZERO DUP1 PUSH2 0x1153 JUMPI POP PUSH2 0x3E8 DUP2 GT JUMPDEST ISZERO PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0x56310917 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH32 0x7F409C90678CE93E65834482EACCE2014A08DD7CE43A3EC31AF5320A72DB7A62 DUP3 SUB PUSH2 0x11C9 JUMPI DUP1 ISZERO DUP1 PUSH2 0x1153 JUMPI POP PUSH2 0x3E8 DUP2 GT ISZERO PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0x56310917 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH32 0xB85DB7DEE54693D742881AF46464432ADDE0803726A71DD9F6234A601792CF9A DUP3 SUB PUSH2 0x1216 JUMPI PUSH2 0x12C DUP2 GT ISZERO PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0x56310917 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH32 0xC8A0E0A9D335FAF7A58F75BC4896D12C9488E34801B4A891A6BA2FF43AE4AD2F DUP3 SUB ISZERO PUSH2 0x683 JUMPI PUSH32 0x30D9B452EE51929ED46B0EFAC730A78CCD37A793A5ACF24FEDA636390B210516 DUP3 SUB ISZERO PUSH2 0x683 JUMPI PUSH32 0x4F27E928DA73627E3874C3712F79E2E58F25A77DB3929917088D7D5014F08604 DUP3 SUB ISZERO PUSH2 0x683 JUMPI PUSH32 0xE30954F078B83DA37FE6529E73721E4B7B8CFC0F9AB2BB4F1F9828CA6B2EF120 DUP3 SUB ISZERO PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5326E495 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH2 0x12DC DUP3 DUP3 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD58B823 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH2 0x134D DUP3 PUSH2 0x13D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x1392 JUMPI PUSH2 0x600 DUP3 DUP3 PUSH2 0x1436 JUMP JUMPDEST PUSH2 0x683 PUSH2 0x14AC JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DEB DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x1407 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1D6B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1453 SWAP2 SWAP1 PUSH2 0x1D4E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x148E 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 0x1493 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x14A3 DUP6 DUP4 DUP4 PUSH2 0x14CB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x14E0 JUMPI PUSH2 0x14DB DUP3 PUSH2 0x152A JUMP JUMPDEST PUSH2 0x1523 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x14F7 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x1520 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xDE5 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x153A JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1599 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1599 JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x1589 SWAP1 DUP3 PUSH2 0x1C43 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1573 JUMP JUMPDEST POP PUSH2 0x15A5 SWAP3 SWAP2 POP PUSH2 0x160A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x15FE JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x15FE JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x15C9 JUMP JUMPDEST POP PUSH2 0x15A5 SWAP3 SWAP2 POP PUSH2 0x1627 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x15A5 JUMPI PUSH1 0x0 PUSH2 0x161E DUP3 DUP3 PUSH2 0x163C JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x160A JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x15A5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x1648 SWAP1 PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x1658 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xC00 SWAP2 SWAP1 PUSH2 0x1627 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1523 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x16D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x16E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x16F8 PUSH1 0x20 DUP5 ADD PUSH2 0x16B9 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x173F JUMPI PUSH2 0x173F PUSH2 0x1701 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x1761 JUMPI PUSH2 0x1761 PUSH2 0x1701 JUMP JUMPDEST POP PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1776 DUP2 PUSH2 0x1717 JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x178B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17BE DUP4 PUSH2 0x16B9 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x17D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x17EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17F9 DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1747 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x181C JUMPI PUSH2 0x181C PUSH2 0x1701 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1523 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1858 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x186E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x187F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1892 PUSH2 0x188D DUP3 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x1717 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP6 ADD ADD SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x18B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x18F5 JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x18D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E6 DUP10 PUSH1 0x20 DUP4 DUP10 ADD ADD PUSH2 0x1826 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x18B9 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17F9 DUP6 DUP3 DUP7 ADD PUSH2 0x1826 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1957 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x193F JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1978 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x193C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1523 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1960 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x19C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x19D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x19E6 PUSH2 0x188D DUP3 PUSH2 0x1803 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP6 ADD ADD SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x1A08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x1A31 JUMPI PUSH2 0x1A20 DUP5 PUSH2 0x16B9 JUMP JUMPDEST DUP3 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1A0F JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1523 DUP3 PUSH2 0x16B9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AAF JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x1A9A DUP6 DUP4 MLOAD PUSH2 0x1960 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1A7E JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 ADD SWAP1 PUSH1 0x40 DUP5 ADD SWAP1 DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1AFC JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1AD5 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1B38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1B38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP6 ADD DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BB0 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH2 0x1B94 DUP2 DUP8 PUSH1 0x20 DUP6 ADD PUSH2 0x193C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP5 SWAP1 SWAP5 ADD SWAP4 POP PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1B7A JUMP JUMPDEST POP SWAP2 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1BCF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1BEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x600 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1C1C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C3C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1C28 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1C5C JUMPI PUSH2 0x1C5C PUSH2 0x1701 JUMP JUMPDEST PUSH2 0x1C70 DUP2 PUSH2 0x1C6A DUP5 SLOAD PUSH2 0x1BBB JUMP JUMPDEST DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1CA4 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x1C8C JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x1C3C JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1CD4 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1CB4 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x1CF2 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP6 ADD DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BB0 JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1D60 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x193C JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCDF8B4C520FFE197C5343C6 CREATE2 0xAE 0xC5 SWAP6 PUSH17 0x151EF9A492F2C624FD45DDDE6135EC4202 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP PUSH1 0xFF DELEGATECALL EXTCODEHASH 0xB3 0xDD MCOPY NUMBER MULMOD LT PUSH9 0x61E1122D0446898FBF SWAP14 0x21 PUSH3 0xCF48CB SSTORE 0xD0 PC ADD 0xCA MSTORE CREATE 0xC5 PUSH31 0x16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00A264 PUSH10 0x70667358221220B4FF7B 0xAD 0xB8 0xDF GT 0xC0 ORIGIN 0x27 0x28 0x22 0xEC 0x26 PUSH23 0xF4CA9FB821E6F4D6963F68A4293B81BB9564736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"552:7115:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:202:0;;;;;;;;;;-1:-1:-1;3443:202:0;;;;;:::i;:::-;;:::i;:::-;;;470:14:89;;463:22;445:41;;433:2;418:18;3443:202:0;;;;;;;;4693:108:51;;;;;;;;;;-1:-1:-1;4693:108:51;;;;;:::i;:::-;4751:6;4776:18;;;;;;;;;;;-1:-1:-1;;;;;4776:18:51;;4693:108;;;;-1:-1:-1;;;;;890:31:89;;;872:50;;860:2;845:18;4693:108:51;728:200:89;4759:191:0;;;;;;;;;;-1:-1:-1;4759:191:0;;;;;:::i;:::-;;:::i;:::-;;;1079:25:89;;;1067:2;1052:18;4759:191:0;933:177:89;1166:50:51;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1166:50:51;;5246:136:0;;;;;;;;;;-1:-1:-1;5246:136:0;;;;;:::i;:::-;;:::i;:::-;;378:175:53;;;;;;;;;;;;;:::i;6348:245:0:-;;;;;;;;;;-1:-1:-1;6348:245:0;;;;;:::i;:::-;;:::i;5689:201:51:-;;;;;;;;;;-1:-1:-1;5689:201:51;;;;;:::i;:::-;;:::i;4161:214:4:-;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;3860:213:51:-;;;;;;;;;;-1:-1:-1;3860:213:51;;;;;:::i;:::-;;:::i;6661:106::-;;;;;;;;;;-1:-1:-1;6661:106:51;;;;;:::i;:::-;6719:4;6742:18;;;:13;:18;;;;;;;;;6661:106;7216:204;;;;;;;;;;-1:-1:-1;7216:204:51;;;;;:::i;:::-;;:::i;3732:207:0:-;;;;;;;;;;-1:-1:-1;3732:207:0;;;;;:::i;:::-;;:::i;2317:49::-;;;;;;;;;;-1:-1:-1;2317:49:0;2362:4;2317:49;;6017:115:51;;;;;;;;;;-1:-1:-1;6017:115:51;;;;;:::i;:::-;6078:7;6104:21;;;:16;:21;;;;;;-1:-1:-1;;;;;6104:21:51;;6017:115;;;;-1:-1:-1;;;;;5067:32:89;;;5049:51;;5037:2;5022:18;6017:115:51;4903:203:89;1819:58:4;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:4;;;;;;;;;;;;:::i;3347:214:51:-;;;;;;;;;;-1:-1:-1;3347:214:51;;;;;:::i;:::-;;:::i;7545:119::-;;;;;;;;;;-1:-1:-1;7545:119:51;;;;;:::i;:::-;;:::i;1706:213::-;;;;;;;;;;-1:-1:-1;1706:213:51;;;;;:::i;:::-;;:::i;4132:116::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3620:117::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5662:138:0:-;;;;;;;;;;-1:-1:-1;5662:138:0;;;;;:::i;:::-;;:::i;4377:191:51:-;;;;;;;;;;-1:-1:-1;4377:191:51;;;;;:::i;:::-;;:::i;6349:189::-;;;;;;;;;;-1:-1:-1;6349:189:51;;;;;:::i;:::-;;:::i;3443:202:0:-;3528:4;-1:-1:-1;;;;;;3551:47:0;;-1:-1:-1;;;3551:47:0;;:87;;-1:-1:-1;;;;;;;;;;1134:40:8;;;3602:36:0;3544:94;3443:202;-1:-1:-1;;3443:202:0:o;4759:191::-;4824:7;4919:14;;;-1:-1:-1;;;;;;;;;;;4919:14:0;;;;;:24;;;;4759:191::o;5246:136::-;5320:18;5333:4;5320:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5350:25:::1;5361:4;5367:7;5350:10;:25::i;:::-;;5246:136:::0;;;:::o;378:175:53:-;-1:-1:-1;;;;;;;;;;;8325:39:3;-1:-1:-1;;;;;8325:39:3;432:29:53;428:87;;484:20;;-1:-1:-1;;;484:20:53;;;;;;;;;;;428:87;524:22;:20;:22::i;:::-;378:175::o;6348:245:0:-;-1:-1:-1;;;;;6441:34:0;;966:10:7;6441:34:0;6437:102;;6498:30;;-1:-1:-1;;;6498:30:0;;;;;;;;;;;6437:102;6549:37;6561:4;6567:18;6549:11;:37::i;:::-;;6348:245;;:::o;5689:201:51:-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;5777:32:51::1;5798:3;5803:5;5777:20;:32::i;:::-;5819:21;::::0;;;:16:::1;:21;::::0;;;;;:29;;-1:-1:-1;;;;;;5819:29:51::1;-1:-1:-1::0;;;;;5819:29:51;::::1;;::::0;;5863:20;5819:21;;-1:-1:-1;;;;;;;;;;;5863:20:51;::::1;5689:201:::0;;;:::o;4161:214:4:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;3708:134::-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:4;:::o;3860:213:51:-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;3962:42:51;;::::1;::::0;:20:::1;::::0;:42:::1;::::0;::::1;::::0;::::1;:::i;:::-;;4046:19;4019:47;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;3860:213:::0;;:::o;7216:204::-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;7309:31:51::1;7329:3;7334:5;7309:19;:31::i;:::-;7350:20;::::0;;;:15:::1;:20;::::0;;;;:28:::1;7373:5:::0;7350:20;:28:::1;:::i;:::-;-1:-1:-1::0;7393:20:51::1;::::0;7409:3;;-1:-1:-1;;;;;;;;;;;7393:20:51;;;::::1;7216:204:::0;;;:::o;3732:207:0:-;3809:4;3901:14;;;-1:-1:-1;;;;;;;;;;;3901:14:0;;;;;;;;-1:-1:-1;;;;;3901:31:0;;;;;;;;;;;;;;;3732:207::o;3347:214:51:-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;3450:42:51;;::::1;::::0;:20:::1;::::0;:42:::1;::::0;::::1;::::0;::::1;:::i;:::-;;3534:19;3507:47;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;3347:214:::0;;:::o;7545:119::-;7637:20;;;;:15;:20;;;;;7630:27;;7605:13;;7637:20;7630:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7545:119;;;:::o;1706:213::-;-1:-1:-1;;;;;;;;;;;4302:15:3;;-1:-1:-1;;;4302:15:3;;;;4301:16;;-1:-1:-1;;;;;4348:14:3;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:3;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:3;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:3;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:3;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:3;-1:-1:-1;;;5013:22:3;;;4979:67;1777:24:51::1;:22;:24::i;:::-;1811:22;:20;:22::i;:::-;1844:27;-1:-1:-1::0;;;;;;;;;;;1198:18:51;1844:13:::1;:27::i;:::-;1881:31;-1:-1:-1::0;;;;;;;;;;;1899:12:51::1;1881:10;:31::i;:::-;;5070:14:3::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:3;;;5142:14;;-1:-1:-1;872:50:89;;5142:14:3;;860:2:89;845:18;5142:14:3;;;;;;;5066:101;4092:1081;;;;;1706:213:51;:::o;4132:116::-;4187:15;4221:20;4214:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4132:116;:::o;3620:117::-;3675:16;3710:20;3703:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3703:27:51;;;;;;;;;;;;;;;;;;;;;;;3620:117;:::o;5662:138:0:-;5737:18;5750:4;5737:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5767:26:::1;5779:4;5785:7;5767:11;:26::i;4377:191:51:-:0;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;4461:29:51::1;4479:3;4484:5;-1:-1:-1::0;;;;;4461:29:51::1;:17;:29::i;:::-;4500:13;:18:::0;;;::::1;::::0;;;;;;;:26;;-1:-1:-1;;4500:26:51::1;-1:-1:-1::0;;;;;4500:26:51;::::1;;::::0;;4541:20;4500:18;;-1:-1:-1;;;;;;;;;;;4541:20:51;::::1;4377:191:::0;;;:::o;6349:189::-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;6470:18:51::1;::::0;;;:13:::1;:18;::::0;;;;;:26;;-1:-1:-1;;6470:26:51::1;::::0;::::1;;;::::0;;6511:20;6470:18;;-1:-1:-1;;;;;;;;;;;6511:20:51;::::1;6349:189:::0;;;:::o;4148:103:0:-;4214:30;4225:4;966:10:7;4214::0;:30::i;:::-;4148:103;:::o;7270:387::-;7347:4;-1:-1:-1;;;;;;;;;;;7437:22:0;7445:4;7451:7;7437;:22::i;:::-;7432:219;;7475:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7475:31:0;;;;;;;;;:38;;-1:-1:-1;;7475:38:0;7509:4;7475:38;;;7559:12;966:10:7;;887:96;7559:12:0;-1:-1:-1;;;;;7532:40:0;7550:7;-1:-1:-1;;;;;7532:40:0;7544:4;7532:40;;;;;;;;;;7593:4;7586:11;;;;;7432:219;7635:5;7628:12;;;;;7711:422:3;-1:-1:-1;;;;;;;;;;;7900:15:3;;-1:-1:-1;;;7900:15:3;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:3;;;;;;;;;;;7896:76;7985:14;;-1:-1:-1;;;;;7985:14:3;;;:34;7981:146;;8035:33;;-1:-1:-1;;8035:33:3;-1:-1:-1;;;;;8035:33:3;;;;;8087:29;;872:50:89;;;8087:29:3;;860:2:89;845:18;8087:29:3;;;;;;;7760:373;7711:422::o;7892:388:0:-;7970:4;-1:-1:-1;;;;;;;;;;;8059:22:0;8067:4;8073:7;8059;:22::i;:::-;8055:219;;;8131:5;8097:14;;;;;;;;;;;-1:-1:-1;;;;;8097:31:0;;;;;;;;;;:39;;-1:-1:-1;;8097:39:0;;;8155:40;966:10:7;;8097:14:0;;8155:40;;8131:5;8155:40;8216:4;8209:11;;;;;4997:553:51;-1:-1:-1;;;;;5083:19:51;;5079:73;;5125:16;;-1:-1:-1;;;5125:16:51;;;;;1079:25:89;;;1052:18;;5125:16:51;;;;;;;;5079:73;2154:29:69;5166:3:51;:46;5162:382;;5228:30;5254:3;5228:25;:30::i;5162:382::-;1975:35:69;5279:3:51;:40;5275:269;;5335:30;5361:3;5335:25;:30::i;5275:269::-;2068:30:69;5386:3:51;:48;5382:162;;5450:30;5476:3;5450:25;:30::i;5382:162::-;5518:15;;-1:-1:-1;;;5518:15:51;;;;;1079:25:89;;;1052:18;;5518:15:51;933:177:89;4603:312:4;4683:4;-1:-1:-1;;;;;4692:6:4;4675:23;;;:120;;;4789:6;-1:-1:-1;;;;;4753:42:4;:32;-1:-1:-1;;;;;;;;;;;1519:53:17;-1:-1:-1;;;;;1519:53:17;;1441:138;4753:32:4;-1:-1:-1;;;;;4753:42:4;;;4675:120;4658:251;;;4869:29;;-1:-1:-1;;;4869:29:4;;;;;;;;;;;1976:72:51;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;6057:538:4:-;6174:17;-1:-1:-1;;;;;6156:50:4;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6156:52:4;;;;;;;;-1:-1:-1;;6156:52:4;;;;;;;;;;;;:::i;:::-;;;6152:437;;6518:60;;-1:-1:-1;;;6518:60:4;;-1:-1:-1;;;;;5067:32:89;;6518:60:4;;;5049:51:89;5022:18;;6518:60:4;4903:203:89;6152:437:4;-1:-1:-1;;;;;;;;;;;6250:40:4;;6246:120;;6317:34;;-1:-1:-1;;;6317:34:4;;;;;1079:25:89;;;1052:18;;6317:34:4;933:177:89;6246:120:4;6379:54;6409:17;6428:4;6379:29;:54::i;5032:213::-;5106:4;-1:-1:-1;;;;;5115:6:4;5098:23;;5094:145;;5199:29;;-1:-1:-1;;;5199:29:4;;;;;;;;;;;6773:307:51;2349:25:69;6858:3:51;:43;6854:220;;6773:307;;:::o;6854:220::-;2531:26:69;6944:3:51;:44;6940:134;;6773:307;;:::o;2970:67:4:-;6931:20:3;:18;:20::i;6718:318:0:-;-1:-1:-1;;;;;;;;;;;6801:30:0;6898:18;6911:4;6898:12;:18::i;:::-;6926:8;:14;;;;;;;;;;;:24;;:36;;;6977:52;6870:46;;-1:-1:-1;6953:9:0;;6870:46;;6935:4;;6977:52;;6926:8;6977:52;6791:245;;6718:318;;:::o;2080:1144:51:-;977:47:69;2161:3:51;:55;2157:1061;;2236:10;;;:53;;;130:4:69;2250:5:51;:39;2236:53;2232:120;;;2316:21;;-1:-1:-1;;;2316:21:51;;;;;1079:25:89;;;1052:18;;2316:21:51;933:177:89;2157:1061:51;1091:48:69;2372:3:51;:57;2368:850;;2449:10;;;:53;;;130:4:69;2463:5:51;:39;2445:120;;;2529:21;;-1:-1:-1;;;2529:21:51;;;;;1079:25:89;;;1052:18;;2529:21:51;933:177:89;2368:850:51;1189:33:69;2585:3:51;:40;2581:637;;2675:3;2667:5;:11;2663:78;;;2705:21;;-1:-1:-1;;;2705:21:51;;;;;1079:25:89;;;1052:18;;2705:21:51;933:177:89;2581:637:51;1274:31:69;2761:3:51;:42;2757:461;;;1361:39:69;2859:3:51;:46;2855:363;;;1457:39:69;2961:3:51;:47;2957:261;;;1561:36:69;3064:3:51;:55;3060:158;;;3192:15;;-1:-1:-1;;;3192:15:51;;;;;1079:25:89;;;1052:18;;3192:15:51;933:177:89;4381:197:0;4469:22;4477:4;4483:7;4469;:22::i;:::-;4464:108;;4514:47;;-1:-1:-1;;;4514:47:0;;-1:-1:-1;;;;;13545:32:89;;4514:47:0;;;13527:51:89;13594:18;;;13587:34;;;13500:18;;4514:47:0;13353:274:89;4807:184:51;4916:1;4883:21;;;:16;:21;;;;;;-1:-1:-1;;;;;4883:21:51;:35;4879:106;;4945:29;;-1:-1:-1;;;4945:29:51;;;;;1079:25:89;;;1052:18;;4945:29:51;933:177:89;2264:344:17;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:17;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;7084:141:3:-;-1:-1:-1;;;;;;;;;;;8560:40:3;-1:-1:-1;;;8560:40:3;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:3;;;;;;;;;;;1671:281:17;1748:17;-1:-1:-1;;;;;1748:29:17;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:17;;-1:-1:-1;;;;;5067:32:89;;1805:47:17;;;5049:51:89;5022:18;;1805:47:17;4903:203:89;1744:119:17;-1:-1:-1;;;;;;;;;;;1872:73:17;;-1:-1:-1;;;;;;1872:73:17;-1:-1:-1;;;;;1872:73:17;;;;;;;;;;1671:281::o;3900:253:32:-;3983:12;4008;4022:23;4049:6;-1:-1:-1;;;;;4049:19:32;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;3900:253;-1:-1:-1;;;;;3900:253:32:o;6113:122:17:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:17;;;;;;;;;;;4421:582:32;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4841:17;;:22;:49;;;;-1:-1:-1;;;;;;4867:18:32;;;:23;4841:49;4837:119;;;4917:24;;-1:-1:-1;;;4917:24:32;;-1:-1:-1;;;;;5067:32:89;;4917:24:32;;;5049:51:89;5022:18;;4917:24:32;4903:203:89;4837:119:32;-1:-1:-1;4976:10:32;4589:408;4421:582;;;;;:::o;5543:487::-;5674:17;;:21;5670:354;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;-1:-1:-1;;;5994:19:32;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;14:286:89:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:89;;209:43;;199:71;;266:1;263;256:12;497:226;556:6;609:2;597:9;588:7;584:23;580:32;577:52;;;625:1;622;615:12;577:52;-1:-1:-1;670:23:89;;497:226;-1:-1:-1;497:226:89:o;1115:173::-;1183:20;;-1:-1:-1;;;;;1232:31:89;;1222:42;;1212:70;;1278:1;1275;1268:12;1212:70;1115:173;;;:::o;1293:300::-;1361:6;1369;1422:2;1410:9;1401:7;1397:23;1393:32;1390:52;;;1438:1;1435;1428:12;1390:52;1483:23;;;-1:-1:-1;1549:38:89;1583:2;1568:18;;1549:38;:::i;:::-;1539:48;;1293:300;;;;;:::o;1598:127::-;1659:10;1654:3;1650:20;1647:1;1640:31;1690:4;1687:1;1680:15;1714:4;1711:1;1704:15;1730:275;1801:2;1795:9;1866:2;1847:13;;-1:-1:-1;;1843:27:89;1831:40;;-1:-1:-1;;;;;1886:34:89;;1922:22;;;1883:62;1880:88;;;1948:18;;:::i;:::-;1984:2;1977:22;1730:275;;-1:-1:-1;1730:275:89:o;2010:449::-;2074:5;2106:1;-1:-1:-1;;;;;2122:6:89;2119:30;2116:56;;;2152:18;;:::i;:::-;-1:-1:-1;2218:2:89;2197:15;;-1:-1:-1;;2193:29:89;2224:4;2189:40;2247:21;2189:40;2247:21;:::i;:::-;2238:30;;;2291:6;2284:5;2277:21;2331:3;2322:6;2317:3;2313:16;2310:25;2307:45;;;2348:1;2345;2338:12;2307:45;2397:6;2392:3;2385:4;2378:5;2374:16;2361:43;2451:1;2444:4;2435:6;2428:5;2424:18;2420:29;2413:40;2010:449;;;;;:::o;2464:523::-;2541:6;2549;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2641:29;2660:9;2641:29;:::i;:::-;2631:39;;2721:2;2710:9;2706:18;2693:32;-1:-1:-1;;;;;2740:6:89;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:89;;2885:1;2882;2875:12;2834:55;2908:73;2973:7;2968:2;2955:16;2950:2;2946;2942:11;2908:73;:::i;:::-;2898:83;;;2464:523;;;;;:::o;2992:182::-;3051:4;-1:-1:-1;;;;;3076:6:89;3073:30;3070:56;;;3106:18;;:::i;:::-;-1:-1:-1;3151:1:89;3147:14;3163:4;3143:25;;2992:182::o;3179:221::-;3222:5;3275:3;3268:4;3260:6;3256:17;3252:27;3242:55;;3293:1;3290;3283:12;3242:55;3315:79;3390:3;3381:6;3368:20;3361:4;3353:6;3349:17;3315:79;:::i;3405:1052::-;3499:6;3552:2;3540:9;3531:7;3527:23;3523:32;3520:52;;;3568:1;3565;3558:12;3520:52;3608:9;3595:23;-1:-1:-1;;;;;3633:6:89;3630:30;3627:50;;;3673:1;3670;3663:12;3627:50;3696:22;;3749:4;3741:13;;3737:27;-1:-1:-1;3727:55:89;;3778:1;3775;3768:12;3727:55;3818:2;3805:16;3841:63;3857:46;3896:6;3857:46;:::i;:::-;3841:63;:::i;:::-;3926:3;3950:6;3945:3;3938:19;3982:2;3977:3;3973:12;3966:19;;4037:2;4027:6;4024:1;4020:14;4016:2;4012:23;4008:32;3994:46;;4063:7;4055:6;4052:19;4049:39;;;4084:1;4081;4074:12;4049:39;4116:2;4112;4108:11;4128:299;4144:6;4139:3;4136:15;4128:299;;;4230:3;4217:17;-1:-1:-1;;;;;4253:11:89;4250:35;4247:55;;;4298:1;4295;4288:12;4247:55;4327:57;4376:7;4371:2;4357:11;4353:2;4349:20;4345:29;4327:57;:::i;:::-;4315:70;;-1:-1:-1;4414:2:89;4405:12;;;;4161;4128:299;;;-1:-1:-1;4446:5:89;3405:1052;-1:-1:-1;;;;;;3405:1052:89:o;4462:436::-;4540:6;4548;4601:2;4589:9;4580:7;4576:23;4572:32;4569:52;;;4617:1;4614;4607:12;4569:52;4662:23;;;-1:-1:-1;4760:2:89;4745:18;;4732:32;-1:-1:-1;;;;;4776:30:89;;4773:50;;;4819:1;4816;4809:12;4773:50;4842;4884:7;4875:6;4864:9;4860:22;4842:50;:::i;5111:250::-;5196:1;5206:113;5220:6;5217:1;5214:13;5206:113;;;5296:11;;;5290:18;5277:11;;;5270:39;5242:2;5235:10;5206:113;;;-1:-1:-1;;5353:1:89;5335:16;;5328:27;5111:250::o;5366:271::-;5408:3;5446:5;5440:12;5473:6;5468:3;5461:19;5489:76;5558:6;5551:4;5546:3;5542:14;5535:4;5528:5;5524:16;5489:76;:::i;:::-;5619:2;5598:15;-1:-1:-1;;5594:29:89;5585:39;;;;5626:4;5581:50;;5366:271;-1:-1:-1;;5366:271:89:o;5642:220::-;5791:2;5780:9;5773:21;5754:4;5811:45;5852:2;5841:9;5837:18;5829:6;5811:45;:::i;5867:891::-;5951:6;6004:2;5992:9;5983:7;5979:23;5975:32;5972:52;;;6020:1;6017;6010:12;5972:52;6060:9;6047:23;-1:-1:-1;;;;;6085:6:89;6082:30;6079:50;;;6125:1;6122;6115:12;6079:50;6148:22;;6201:4;6193:13;;6189:27;-1:-1:-1;6179:55:89;;6230:1;6227;6220:12;6179:55;6270:2;6257:16;6293:63;6309:46;6348:6;6309:46;:::i;6293:63::-;6378:3;6402:6;6397:3;6390:19;6434:2;6429:3;6425:12;6418:19;;6489:2;6479:6;6476:1;6472:14;6468:2;6464:23;6460:32;6446:46;;6515:7;6507:6;6504:19;6501:39;;;6536:1;6533;6526:12;6501:39;6568:2;6564;6560:11;6549:22;;6580:148;6596:6;6591:3;6588:15;6580:148;;;6662:23;6681:3;6662:23;:::i;:::-;6650:36;;6715:2;6613:12;;;;6706;;;;6580:148;;;6747:5;5867:891;-1:-1:-1;;;;;;5867:891:89:o;6763:186::-;6822:6;6875:2;6863:9;6854:7;6850:23;6846:32;6843:52;;;6891:1;6888;6881:12;6843:52;6914:29;6933:9;6914:29;:::i;6954:782::-;7116:4;7164:2;7153:9;7149:18;7194:2;7183:9;7176:21;7217:6;7252;7246:13;7283:6;7275;7268:22;7321:2;7310:9;7306:18;7299:25;;7383:2;7373:6;7370:1;7366:14;7355:9;7351:30;7347:39;7333:53;;7421:2;7413:6;7409:15;7442:1;7452:255;7466:6;7463:1;7460:13;7452:255;;;7559:2;7555:7;7543:9;7535:6;7531:22;7527:36;7522:3;7515:49;7587:40;7620:6;7611;7605:13;7587:40;:::i;:::-;7577:50;-1:-1:-1;7662:2:89;7685:12;;;;7650:15;;;;;7488:1;7481:9;7452:255;;;-1:-1:-1;7724:6:89;;6954:782;-1:-1:-1;;;;;;6954:782:89:o;7741:637::-;7931:2;7943:21;;;8013:13;;7916:18;;;8035:22;;;7883:4;;8114:15;;;8088:2;8073:18;;;7883:4;8157:195;8171:6;8168:1;8165:13;8157:195;;;8236:13;;-1:-1:-1;;;;;8232:39:89;8220:52;;8301:2;8327:15;;;;8292:12;;;;8268:1;8186:9;8157:195;;;-1:-1:-1;8369:3:89;;7741:637;-1:-1:-1;;;;;7741:637:89:o;8383:406::-;8450:6;8458;8511:2;8499:9;8490:7;8486:23;8482:32;8479:52;;;8527:1;8524;8517:12;8479:52;8572:23;;;-1:-1:-1;8671:2:89;8656:18;;8643:32;-1:-1:-1;;;;;8706:32:89;;8694:45;;8684:73;;8753:1;8750;8743:12;8684:73;8776:7;8766:17;;;8383:406;;;;;:::o;8794:395::-;8859:6;8867;8920:2;8908:9;8899:7;8895:23;8891:32;8888:52;;;8936:1;8933;8926:12;8888:52;8981:23;;;-1:-1:-1;9080:2:89;9065:18;;9052:32;9122:15;;9115:23;9103:36;;9093:64;;9153:1;9150;9143:12;9194:685;9432:13;;9375:3;;9406;;9501:4;9489:17;;9375:3;9534:318;9548:6;9545:1;9542:13;9534:318;;;9613:6;9607:13;9655:2;9649:9;9671:66;9728:8;9721:5;9714:4;9710:2;9706:13;9671:66;:::i;:::-;9797:2;9774:17;-1:-1:-1;;9770:31:89;9759:43;;;;;-1:-1:-1;9837:4:89;9825:17;;;;;9570:1;9563:9;9534:318;;;-1:-1:-1;9868:5:89;;9194:685;-1:-1:-1;;;;;9194:685:89:o;9884:380::-;9963:1;9959:12;;;;10006;;;10027:61;;10081:4;10073:6;10069:17;10059:27;;10027:61;10134:2;10126:6;10123:14;10103:18;10100:38;10097:161;;10180:10;10175:3;10171:20;10168:1;10161:31;10215:4;10212:1;10205:15;10243:4;10240:1;10233:15;10097:161;;9884:380;;;:::o;10395:518::-;10497:2;10492:3;10489:11;10486:421;;;10533:5;10530:1;10523:16;10577:4;10574:1;10564:18;10647:2;10635:10;10631:19;10628:1;10624:27;10618:4;10614:38;10683:4;10671:10;10668:20;10665:47;;;-1:-1:-1;10706:4:89;10665:47;10761:2;10756:3;10752:12;10749:1;10745:20;10739:4;10735:31;10725:41;;10816:81;10834:2;10827:5;10824:13;10816:81;;;10893:1;10879:16;;10860:1;10849:13;10816:81;;;10820:3;;10395:518;;;:::o;11089:1299::-;11215:3;11209:10;-1:-1:-1;;;;;11234:6:89;11231:30;11228:56;;;11264:18;;:::i;:::-;11293:97;11383:6;11343:38;11375:4;11369:11;11343:38;:::i;:::-;11337:4;11293:97;:::i;:::-;11439:4;11470:2;11459:14;;11487:1;11482:649;;;;12175:1;12192:6;12189:89;;;-1:-1:-1;12244:19:89;;;12238:26;12189:89;-1:-1:-1;;11046:1:89;11042:11;;;11038:24;11034:29;11024:40;11070:1;11066:11;;;11021:57;12291:81;;11452:930;;11482:649;10342:1;10335:14;;;10379:4;10366:18;;-1:-1:-1;;11518:20:89;;;11636:222;11650:7;11647:1;11644:14;11636:222;;;11732:19;;;11726:26;11711:42;;11839:4;11824:20;;;;11792:1;11780:14;;;;11666:12;11636:222;;;11640:3;11886:6;11877:7;11874:19;11871:201;;;11947:19;;;11941:26;-1:-1:-1;;12030:1:89;12026:14;;;12042:3;12022:24;12018:37;12014:42;11999:58;11984:74;;11871:201;-1:-1:-1;;;;12118:1:89;12102:14;;;12098:22;12085:36;;-1:-1:-1;11089:1299:89:o;12393:552::-;12611:13;;12554:3;;12585;;12680:4;12668:17;;12554:3;12713:205;12727:6;12724:1;12721:13;12713:205;;;12794:13;;-1:-1:-1;;;;;12790:39:89;12776:54;;12863:4;12852:16;;;;12891:17;;;;12826:1;12742:9;12713:205;;13164:184;13234:6;13287:2;13275:9;13266:7;13262:23;13258:32;13255:52;;;13303:1;13300;13293:12;13255:52;-1:-1:-1;13326:16:89;;13164:184;-1:-1:-1;13164:184:89:o;13632:287::-;13761:3;13799:6;13793:13;13815:66;13874:6;13869:3;13862:4;13854:6;13850:17;13815:66;:::i;:::-;13897:16;;;;;13632:287;-1:-1:-1;;13632:287:89:o"},"methodIdentifiers":{"ADMIN()":"2a0acc6a","DEFAULT_ADMIN_ROLE()":"a217fddf","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","disableInitializers()":"31f44900","getAddressSetting(bytes32)":"ad39965d","getBoolSetting(bytes32)":"7c74627a","getRoleAdmin(bytes32)":"248a9ca3","getStringSetting(bytes32)":"c1c2c437","getTrustedEVMExecutors()":"c8029da8","getTrustedTVMExecutors()":"c7f7d04a","getUintSetting(bytes32)":"1c63030a","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","proxiableUUID()":"52d1902d","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setAddressSetting(bytes32,address)":"3fe8ef0f","setBoolSetting(bytes32,bool)":"fd32b9fa","setStringSetting(bytes32,string)":"81c04407","setTrustedEVMExecutors(address[])":"b896a181","setTrustedTVMExecutors(string[])":"7866077b","setUintSetting(bytes32,uint64)":"f165f4b4","supportsInterface(bytes4)":"01ffc9a7","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"ChangingAddressForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"InvalidKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"InvalidUintValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"AddressSettingsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"BoolSettingsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"variable\",\"type\":\"bytes32\"}],\"name\":\"SettingsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address[]\",\"name\":\"executors\",\"type\":\"address[]\"}],\"name\":\"TrustedEVMExecutorsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string[]\",\"name\":\"executors\",\"type\":\"string[]\"}],\"name\":\"TrustedTVMExecutorsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"UintSettingsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getAddressSetting\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getBoolSetting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getStringSetting\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedEVMExecutors\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedTVMExecutors\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getUintSetting\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adminAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"setAddressSetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setBoolSetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setStringSetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"trustedEVMExecutors\",\"type\":\"address[]\"}],\"name\":\"setTrustedEVMExecutors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"trustedTVMExecutors\",\"type\":\"string[]\"}],\"name\":\"setTrustedTVMExecutors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"value\",\"type\":\"uint64\"}],\"name\":\"setUintSetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A contract for storing Cross-Chain Layer configuration\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SettingsUpdated(bytes32)\":{\"details\":\"Cross-Chain Layer configuration setting changed event\",\"params\":{\"variable\":\"Name of the variable updated\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"getAddressSetting(bytes32)\":{\"details\":\"Get an address setting.\",\"params\":{\"key\":\"The setting key.\"},\"returns\":{\"_0\":\"The setting value.\"}},\"getBoolSetting(bytes32)\":{\"details\":\"Get a bool setting.\",\"params\":{\"key\":\"The setting key.\"},\"returns\":{\"_0\":\"The setting value.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getStringSetting(bytes32)\":{\"details\":\"Get a string setting.\",\"params\":{\"key\":\"The setting key.\"},\"returns\":{\"_0\":\"The setting value.\"}},\"getTrustedEVMExecutors()\":{\"details\":\"Get trustedEVMExecutors.\"},\"getTrustedTVMExecutors()\":{\"details\":\"Get trustedTVMExecutors.\"},\"getUintSetting(bytes32)\":{\"details\":\"Get a uint64 setting.\",\"params\":{\"key\":\"The setting key.\"},\"returns\":{\"_0\":\"The setting value.\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address)\":{\"details\":\"Constructor function to initialize the contract with initial state.\",\"params\":{\"adminAddress\":\"Admin address.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setAddressSetting(bytes32,address)\":{\"details\":\"Update an address setting.\",\"params\":{\"key\":\"The setting key.\",\"value\":\"The new address value.\"}},\"setBoolSetting(bytes32,bool)\":{\"details\":\"Update a bool setting.\",\"params\":{\"key\":\"The setting key.\",\"value\":\"The new bool value.\"}},\"setStringSetting(bytes32,string)\":{\"details\":\"Update a string setting.\",\"params\":{\"key\":\"The setting key.\",\"value\":\"The new string value.\"}},\"setTrustedEVMExecutors(address[])\":{\"details\":\"Update trustedEVMExecutors setting.\",\"params\":{\"trustedEVMExecutors\":\"Trusted executors.\"}},\"setTrustedTVMExecutors(string[])\":{\"details\":\"Update trustedTVMExecutors setting.\",\"params\":{\"trustedTVMExecutors\":\"Trusted executors.\"}},\"setUintSetting(bytes32,uint64)\":{\"details\":\"Update a uint64 setting.\",\"params\":{\"key\":\"The setting key.\",\"value\":\"The new value.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"Settings\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Settings.sol\":\"Settings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"contracts/core/Settings.sol\":{\"keccak256\":\"0x062f4f84c8a210e0a4bb39e253149574799b9dfc71995245f7ceb928fec342dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2d56f2ee21a1738af96e391527ea680a99ba3824f95b4952cba01ea6a3ae03d\",\"dweb:/ipfs/QmSkqfXN3YkM81RYSQv9ebPtWg6E2c2GVdnsKWH9CNBKN3\"]},\"contracts/core/TacInitializable.sol\":{\"keccak256\":\"0x1a60834ac4652782e16392d639235d96e1675970c507b8b6d2db9c8644b50941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ab364d4d3e4ea4d477132e98eeac8142d54d208440c7a73fd78138990fc2db5\",\"dweb:/ipfs/QmfRaaiGh4xFE2aDVHQiB57fE2rmu6c6m6vdHGXqKay62C\"]},\"contracts/interfaces/ISettings.sol\":{\"keccak256\":\"0x046f20ecb6bf3a96d87c04715fe0206003b4adc89d42a6f4ce42ddf8d0f798fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec9b5ae056914ee154fd32057c3f76d5baad103741844da950fad1eeae5735e9\",\"dweb:/ipfs/QmPC85c95Q61mWS8BHcCn5JL3N7dgHbLLD6F8zUYSDZQop\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/libs/SettingsConstants.sol\":{\"keccak256\":\"0x43d823f76c580dd90dd0ab04455088a61c2126a4d9e4bac290e4481c54252b21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cec8f837e82e4c8766bb081d9b17e2664c533d72e72a76f6d4d23a594a63bdd3\",\"dweb:/ipfs/QmStGaGDxmHA5JtWQKpy9f84gYHGaT7qhv4ExnkoocSMJC\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":15495,"contract":"contracts/core/Settings.sol:Settings","label":"_uintSettings","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_uint64)"},{"astId":15499,"contract":"contracts/core/Settings.sol:Settings","label":"_addressSettings","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_address)"},{"astId":15503,"contract":"contracts/core/Settings.sol:Settings","label":"_boolSettings","offset":0,"slot":"2","type":"t_mapping(t_bytes32,t_bool)"},{"astId":15507,"contract":"contracts/core/Settings.sol:Settings","label":"_stringSettings","offset":0,"slot":"3","type":"t_mapping(t_bytes32,t_string_storage)"},{"astId":15510,"contract":"contracts/core/Settings.sol:Settings","label":"_trustedEVMExecutors","offset":0,"slot":"4","type":"t_array(t_address)dyn_storage"},{"astId":15513,"contract":"contracts/core/Settings.sol:Settings","label":"_trustedTVMExecutors","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"base":"t_address","encoding":"dynamic_array","label":"address[]","numberOfBytes":"32"},"t_array(t_string_storage)dyn_storage":{"base":"t_string_storage","encoding":"dynamic_array","label":"string[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_string_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_bytes32,t_uint64)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"contracts/core/Structs.sol":{"IStructsInterface":{"abi":[{"inputs":[{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint64","name":"prevMessageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"messageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"prevEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"currEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"nextVotingTime","type":"uint64"}],"internalType":"struct EpochInfo","name":"epochInfo","type":"tuple"}],"name":"__EpochInfo","outputs":[{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint64","name":"prevMessageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"messageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"prevEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"currEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"nextVotingTime","type":"uint64"}],"internalType":"struct EpochInfo","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"string","name":"methodName","type":"string"},{"internalType":"bytes","name":"arguments","type":"bytes"},{"internalType":"string","name":"caller","type":"string"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount","name":"evmExecutorFee","type":"tuple"},{"internalType":"address[]","name":"evmValidExecutors","type":"address[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"mint","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"unlock","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo[]","name":"meta","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"mintNFT","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"unlockNFT","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo[]","name":"metaNFT","type":"tuple[]"}],"internalType":"struct InMessageV1","name":"message","type":"tuple"}],"name":"__InMessageV1","outputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"string","name":"methodName","type":"string"},{"internalType":"bytes","name":"arguments","type":"bytes"},{"internalType":"string","name":"caller","type":"string"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount","name":"evmExecutorFee","type":"tuple"},{"internalType":"address[]","name":"evmValidExecutors","type":"address[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"mint","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"unlock","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo[]","name":"meta","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"mintNFT","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"unlockNFT","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo[]","name":"metaNFT","type":"tuple[]"}],"internalType":"struct InMessageV1","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount","name":"nftAmount","type":"tuple"}],"name":"__NFTAmount","outputs":[{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo","name":"nftInfo","type":"tuple"}],"name":"__NFTInfo","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"string","name":"tvmTarget","type":"string"},{"internalType":"string","name":"tvmPayload","type":"string"},{"internalType":"uint256","name":"tvmProtocolFee","type":"uint256"},{"internalType":"uint256","name":"tvmExecutorFee","type":"uint256"},{"internalType":"string[]","name":"tvmValidExecutors","type":"string[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"toBridge","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"toBridgeNFT","type":"tuple[]"}],"internalType":"struct OutMessageV1","name":"message","type":"tuple"}],"name":"__OutMessageV1","outputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"string","name":"tvmTarget","type":"string"},{"internalType":"string","name":"tvmPayload","type":"string"},{"internalType":"uint256","name":"tvmProtocolFee","type":"uint256"},{"internalType":"uint256","name":"tvmExecutorFee","type":"uint256"},{"internalType":"string[]","name":"tvmValidExecutors","type":"string[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"toBridge","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"toBridgeNFT","type":"tuple[]"}],"internalType":"struct OutMessageV1","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"messageVersion","type":"uint256"},{"internalType":"bytes","name":"encodedMessage","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"bool","name":"withMessages","type":"bool"}],"internalType":"struct SimulationParams","name":"simulationParams","type":"tuple"}],"name":"__SimulationParams","outputs":[{"components":[{"internalType":"uint256","name":"messageVersion","type":"uint256"},{"internalType":"bytes","name":"encodedMessage","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"bool","name":"withMessages","type":"bool"}],"internalType":"struct SimulationParams","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"protocolFee","type":"uint256"},{"internalType":"uint256","name":"executorFee","type":"uint256"}],"internalType":"struct TVMFeeInfo","name":"tvmFeeInfo","type":"tuple"}],"name":"__TVMFeeInfo","outputs":[{"components":[{"internalType":"uint256","name":"protocolFee","type":"uint256"},{"internalType":"uint256","name":"executorFee","type":"uint256"}],"internalType":"struct TVMFeeInfo","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"string","name":"tvmCaller","type":"string"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct TacHeaderV1","name":"tacHeader","type":"tuple"}],"name":"__TacHeaderV1","outputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"string","name":"tvmCaller","type":"string"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct TacHeaderV1","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount","name":"tokenAmount","type":"tuple"}],"name":"__TokenAmount","outputs":[{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo","name":"tokenInfo","type":"tuple"}],"name":"__TokenInfo","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"__EpochInfo((bytes32,uint64,uint64,uint64,uint64,uint64))":"95394908","__InMessageV1((uint64,uint64,bytes32,uint256,address,string,bytes,string,(address,uint256),address[],(address,uint256)[],(address,uint256)[],(string,string,uint8,string)[],(address,uint256,uint256)[],(address,uint256,uint256)[],(string,string,string,string)[]))":"f80ca3f5","__NFTAmount((address,uint256,uint256))":"15acde58","__NFTInfo((string,string,string,string))":"fce96012","__OutMessageV1((uint64,string,string,uint256,uint256,string[],(address,uint256)[],(address,uint256,uint256)[]))":"87c2d35b","__SimulationParams((uint256,bytes,bytes,bytes32,bytes32[],bool))":"a60615f3","__TVMFeeInfo((uint256,uint256))":"972aae27","__TacHeaderV1((uint64,uint256,bytes32,string,bytes))":"e18fd0fd","__TokenAmount((address,uint256))":"875a36fc","__TokenInfo((string,string,uint8,string))":"0b249f25"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"prevMessageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"currEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextVotingTime\",\"type\":\"uint64\"}],\"internalType\":\"struct EpochInfo\",\"name\":\"epochInfo\",\"type\":\"tuple\"}],\"name\":\"__EpochInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"prevMessageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"currEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextVotingTime\",\"type\":\"uint64\"}],\"internalType\":\"struct EpochInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"caller\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount\",\"name\":\"evmExecutorFee\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"evmValidExecutors\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"mint\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"unlock\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo[]\",\"name\":\"meta\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"mintNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"unlockNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo[]\",\"name\":\"metaNFT\",\"type\":\"tuple[]\"}],\"internalType\":\"struct InMessageV1\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"__InMessageV1\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"caller\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount\",\"name\":\"evmExecutorFee\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"evmValidExecutors\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"mint\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"unlock\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo[]\",\"name\":\"meta\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"mintNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"unlockNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo[]\",\"name\":\"metaNFT\",\"type\":\"tuple[]\"}],\"internalType\":\"struct InMessageV1\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount\",\"name\":\"nftAmount\",\"type\":\"tuple\"}],\"name\":\"__NFTAmount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo\",\"name\":\"nftInfo\",\"type\":\"tuple\"}],\"name\":\"__NFTInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"tvmTarget\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmPayload\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"tvmProtocolFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tvmExecutorFee\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"tvmValidExecutors\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"toBridge\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"toBridgeNFT\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OutMessageV1\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"__OutMessageV1\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"tvmTarget\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmPayload\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"tvmProtocolFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tvmExecutorFee\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"tvmValidExecutors\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"toBridge\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"toBridgeNFT\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OutMessageV1\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"messageVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bool\",\"name\":\"withMessages\",\"type\":\"bool\"}],\"internalType\":\"struct SimulationParams\",\"name\":\"simulationParams\",\"type\":\"tuple\"}],\"name\":\"__SimulationParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"messageVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bool\",\"name\":\"withMessages\",\"type\":\"bool\"}],\"internalType\":\"struct SimulationParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executorFee\",\"type\":\"uint256\"}],\"internalType\":\"struct TVMFeeInfo\",\"name\":\"tvmFeeInfo\",\"type\":\"tuple\"}],\"name\":\"__TVMFeeInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executorFee\",\"type\":\"uint256\"}],\"internalType\":\"struct TVMFeeInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tvmCaller\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct TacHeaderV1\",\"name\":\"tacHeader\",\"type\":\"tuple\"}],\"name\":\"__TacHeaderV1\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tvmCaller\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct TacHeaderV1\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount\",\"name\":\"tokenAmount\",\"type\":\"tuple\"}],\"name\":\"__TokenAmount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo\",\"name\":\"tokenInfo\",\"type\":\"tuple\"}],\"name\":\"__TokenInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Unusable interface for structs typechain generation\",\"kind\":\"dev\",\"methods\":{},\"title\":\"IStructsInterface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Structs.sol\":\"IStructsInterface\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/core/TacInitializable.sol":{"TacInitializable":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"disableInitializers()":"31f44900"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"title\":\"TacInitializable\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/TacInitializable.sol\":\"TacInitializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"contracts/core/TacInitializable.sol\":{\"keccak256\":\"0x1a60834ac4652782e16392d639235d96e1675970c507b8b6d2db9c8644b50941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ab364d4d3e4ea4d477132e98eeac8142d54d208440c7a73fd78138990fc2db5\",\"dweb:/ipfs/QmfRaaiGh4xFE2aDVHQiB57fE2rmu6c6m6vdHGXqKay62C\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/core/TokenFactories/ERC20TokenFactory.sol":{"ERC20TokenFactory":{"abi":[{"inputs":[],"name":"Create2EmptyBytecode","type":"error"},{"inputs":[],"name":"FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"address","name":"deployer","type":"address"}],"name":"computeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"initData","type":"bytes"}],"name":"deploy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506115ef8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806319cdeff11461003b578063a31809781461006a575b600080fd5b61004e6100493660046102f5565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e610078366004610374565b610164565b600080604051806020016100909061029f565b601f1982820381018352601f9091011660408190526100b6919088908890602001610403565b604051602081830303815290604052905060006100d5600089846101ca565b905060008080806100e8888a018a6104d0565b9350935093509350846001600160a01b031663cdbed7ad858585856040518563ffffffff1660e01b815260040161012294939291906105a9565b600060405180830381600087803b15801561013c57600080fd5b505af1158015610150573d6000803e3d6000fd5b50969e9d5050505050505050505050505050565b600080604051806020016101779061029f565b601f1982820381018352601f90910116604081905261019d919087908790602001610403565b60405160208183030381529060405290506101c08682805190602001208561026c565b9695505050505050565b6000834710156101fa5760405163cf47918160e01b81524760048201526024810185905260440160405180910390fd5b815160000361021c57604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d15198115161561023e576040513d6000823e3d81fd5b6001600160a01b0381166102655760405163b06ebf3d60e01b815260040160405180910390fd5b9392505050565b6000604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b610fc3806105f783390190565b60008083601f8401126102be57600080fd5b50813567ffffffffffffffff8111156102d657600080fd5b6020830191508360208285010111156102ee57600080fd5b9250929050565b60008060008060006060868803121561030d57600080fd5b85359450602086013567ffffffffffffffff81111561032b57600080fd5b610337888289016102ac565b909550935050604086013567ffffffffffffffff81111561035757600080fd5b610363888289016102ac565b969995985093965092949392505050565b6000806000806060858703121561038a57600080fd5b84359350602085013567ffffffffffffffff8111156103a857600080fd5b6103b4878288016102ac565b90945092505060408501356001600160a01b03811681146103d457600080fd5b939692955090935050565b60005b838110156103fa5781810151838201526020016103e2565b50506000910152565b600084516104158184602089016103df565b8201838582376000930192835250909392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045257600080fd5b813567ffffffffffffffff81111561046c5761046c61042b565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561049b5761049b61042b565b6040528181528382016020018510156104b357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156104e657600080fd5b843567ffffffffffffffff8111156104fd57600080fd5b61050987828801610441565b945050602085013567ffffffffffffffff81111561052657600080fd5b61053287828801610441565b935050604085013560ff8116811461054957600080fd5b9150606085013567ffffffffffffffff81111561056557600080fd5b61057187828801610441565b91505092959194509250565b600081518084526105958160208601602086016103df565b601f01601f19169290920160200192915050565b6080815260006105bc608083018761057d565b82810360208401526105ce818761057d565b905060ff8516604084015282810360608401526105eb818561057d565b97965050505050505056fe6080604052348015600f57600080fd5b50604051610fc3380380610fc3833981016040819052602c916059565b600280546001600160a01b039092166001600160a01b031992831617905560038054909116331790556087565b600060208284031215606a57600080fd5b81516001600160a01b0381168114608057600080fd5b9392505050565b610f2d806100966000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635a9b0b891161008c5780639dc29fac116100665780639dc29fac146101d6578063a9059cbb146101e9578063cdbed7ad146101fc578063dd62ed3e1461020f57600080fd5b80635a9b0b891461018357806370a082311461019857806395d89b41146101ce57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610146578063313ce5671461015957806340c10f191461016e575b600080fd5b6100dc610222565b6040516100e99190610acc565b60405180910390f35b610105610100366004610b02565b6102e5565b60405190151581526020016100e9565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040519081526020016100e9565b610105610154366004610b2c565b6102ff565b60005460405160ff90911681526020016100e9565b61018161017c366004610b02565b610323565b005b61018b610339565b6040516100e99190610b69565b6101386101a6366004610bd6565b6001600160a01b03166000908152600080516020610ed8833981519152602052604090205490565b6100dc610433565b6101816101e4366004610b02565b610472565b6101056101f7366004610b02565b610484565b61018161020a366004610c96565b610492565b61013861021d366004610d43565b6105ca565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace038054606091600080516020610ed88339815191529161026190610d76565b80601f016020809104026020016040519081016040528092919081815260200182805461028d90610d76565b80156102da5780601f106102af576101008083540402835291602001916102da565b820191906000526020600020905b8154815290600101906020018083116102bd57829003601f168201915b505050505091505090565b6000336102f3818585610614565b60019150505b92915050565b60003361030d858285610626565b610318858585610691565b506001949350505050565b61032b6106f0565b610335828261071d565b5050565b61036760405180608001604052806060815260200160608152602001600060ff168152602001606081525090565b604051806080016040528061037a610222565b8152602001610387610433565b815260200161039860005460ff1690565b60ff168152602001600180546103ad90610d76565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610d76565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815250905090565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace048054606091600080516020610ed88339815191529161026190610d76565b61047a6106f0565b6103358282610753565b6000336102f3818585610691565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104d85750825b905060008267ffffffffffffffff1660011480156104f55750303b155b905081158015610503575080155b156105215760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561054b57845460ff60401b1916600160401b1785555b610553610789565b61055d89896107b4565b6000805460ff191660ff891617905560016105788782610df7565b5083156105bf57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b61062183838360016107c6565b505050565b600061063284846105ca565b9050600019811461068b578181101561067c57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61068b848484840360006107c6565b50505050565b6001600160a01b0383166106bb57604051634b637e8f60e11b815260006004820152602401610673565b6001600160a01b0382166106e55760405163ec442f0560e01b815260006004820152602401610673565b6106218383836108ae565b6002546001600160a01b0316331461071b57604051631a27eac360e11b815260040160405180910390fd5b565b6001600160a01b0382166107475760405163ec442f0560e01b815260006004820152602401610673565b610335600083836108ae565b6001600160a01b03821661077d57604051634b637e8f60e11b815260006004820152602401610673565b610335826000836108ae565b6003546001600160a01b0316331461071b57604051631a27eac360e11b815260040160405180910390fd5b6107bc6109ec565b6103358282610a35565b600080516020610ed88339815191526001600160a01b0385166107ff5760405163e602df0560e01b815260006004820152602401610673565b6001600160a01b03841661082957604051634a1406b160e11b815260006004820152602401610673565b6001600160a01b038086166000908152600183016020908152604080832093881683529290522083905581156108a757836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161089e91815260200190565b60405180910390a35b5050505050565b600080516020610ed88339815191526001600160a01b0384166108ea57818160020160008282546108df9190610eb6565b9091555061095c9050565b6001600160a01b0384166000908152602082905260409020548281101561093d5760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610673565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b03831661097a576002810180548390039055610999565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109de91815260200190565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661071b57604051631afcd79f60e31b815260040160405180910390fd5b610a3d6109ec565b600080516020610ed88339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610a778482610df7565b506004810161068b8382610df7565b6000815180845260005b81811015610aac57602081850181015186830182015201610a90565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610adf6020830184610a86565b9392505050565b80356001600160a01b0381168114610afd57600080fd5b919050565b60008060408385031215610b1557600080fd5b610b1e83610ae6565b946020939093013593505050565b600080600060608486031215610b4157600080fd5b610b4a84610ae6565b9250610b5860208501610ae6565b929592945050506040919091013590565b602081526000825160806020840152610b8560a0840182610a86565b90506020840151601f19848303016040850152610ba28282610a86565b91505060ff60408501511660608401526060840151601f19848303016080850152610bcd8282610a86565b95945050505050565b600060208284031215610be857600080fd5b610adf82610ae6565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610c1857600080fd5b813567ffffffffffffffff811115610c3257610c32610bf1565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610c6157610c61610bf1565b604052818152838201602001851015610c7957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215610cac57600080fd5b843567ffffffffffffffff811115610cc357600080fd5b610ccf87828801610c07565b945050602085013567ffffffffffffffff811115610cec57600080fd5b610cf887828801610c07565b935050604085013560ff81168114610d0f57600080fd5b9150606085013567ffffffffffffffff811115610d2b57600080fd5b610d3787828801610c07565b91505092959194509250565b60008060408385031215610d5657600080fd5b610d5f83610ae6565b9150610d6d60208401610ae6565b90509250929050565b600181811c90821680610d8a57607f821691505b602082108103610daa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561062157806000526020600020601f840160051c81016020851015610dd75750805b601f840160051c820191505b818110156108a75760008155600101610de3565b815167ffffffffffffffff811115610e1157610e11610bf1565b610e2581610e1f8454610d76565b84610db0565b6020601f821160018114610e595760008315610e415750848201515b600019600385901b1c1916600184901b1784556108a7565b600084815260208120601f198516915b82811015610e895787850151825560209485019460019092019101610e69565b5084821015610ea75786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b808201808211156102f957634e487b7160e01b600052601160045260246000fdfe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a264697066735822122023a6c413dc1757c23ec545827b60ed6a546baff705514eb212fe9bef93dfd7ca64736f6c634300081c0033a2646970667358221220f1d82c145cf8e5dbf03a4ea10486d256998d03dd25f4d77cb1303034a6cf9ead64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15EF DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19CDEFF1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA3180978 EQ PUSH2 0x6A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x78 CALLDATASIZE PUSH1 0x4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x164 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x90 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0xB6 SWAP2 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0xD5 PUSH1 0x0 DUP10 DUP5 PUSH2 0x1CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0xE8 DUP9 DUP11 ADD DUP11 PUSH2 0x4D0 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCDBED7AD DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x122 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x150 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP7 SWAP15 SWAP14 POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x177 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x19D SWAP2 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x20 ADD PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1C0 DUP7 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 PUSH2 0x26C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SELFBALANCE LT ISZERO PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x21C JUMPI PUSH1 0x40 MLOAD PUSH4 0x13289277 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 MLOAD PUSH1 0x20 DUP5 ADD DUP7 CREATE2 SWAP1 POP RETURNDATASIZE ISZERO NOT DUP2 ISZERO AND ISZERO PUSH2 0x23E JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x265 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB06EBF3D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 PUSH1 0x40 DUP3 ADD MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP3 DUP2 MSTORE PUSH1 0xB DUP2 ADD SWAP1 POP PUSH1 0xFF DUP2 MSTORE8 PUSH1 0x55 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFC3 DUP1 PUSH2 0x5F7 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x337 DUP9 DUP3 DUP10 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x363 DUP9 DUP3 DUP10 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x38A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B4 DUP8 DUP3 DUP9 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3FA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E2 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH2 0x415 DUP2 DUP5 PUSH1 0x20 DUP10 ADD PUSH2 0x3DF JUMP JUMPDEST DUP3 ADD DUP4 DUP6 DUP3 CALLDATACOPY PUSH1 0x0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46C JUMPI PUSH2 0x46C PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x49B JUMPI PUSH2 0x49B PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x509 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x526 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x532 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x549 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x571 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x595 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5BC PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x57D JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x5CE DUP2 DUP8 PUSH2 0x57D JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x5EB DUP2 DUP6 PUSH2 0x57D JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xFC3 CODESIZE SUB DUP1 PUSH2 0xFC3 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x59 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP2 AND CALLER OR SWAP1 SSTORE PUSH1 0x87 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF2D DUP1 PUSH2 0x96 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 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5A9B0B89 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9DC29FAC GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xCDBED7AD EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5A9B0B89 EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x16E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xACC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE02 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xB2C JUMP JUMPDEST PUSH2 0x2FF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x17C CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x323 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18B PUSH2 0x339 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xB69 JUMP JUMPDEST PUSH2 0x138 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0xBD6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x433 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x472 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0xC96 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH2 0x138 PUSH2 0x21D CALLDATASIZE PUSH1 0x4 PUSH2 0xD43 JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE03 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x261 SWAP1 PUSH2 0xD76 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 0x28D SWAP1 PUSH2 0xD76 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2DA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2AF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2DA 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 0x2BD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2F3 DUP2 DUP6 DUP6 PUSH2 0x614 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x30D DUP6 DUP3 DUP6 PUSH2 0x626 JUMP JUMPDEST PUSH2 0x318 DUP6 DUP6 DUP6 PUSH2 0x691 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x32B PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0x71D JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x367 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x37A PUSH2 0x222 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x387 PUSH2 0x433 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x398 PUSH1 0x0 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xD76 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 0x3D9 SWAP1 PUSH2 0xD76 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 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 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE04 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x261 SWAP1 PUSH2 0xD76 JUMP JUMPDEST PUSH2 0x47A PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0x753 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2F3 DUP2 DUP6 DUP6 PUSH2 0x691 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x4D8 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x4F5 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x503 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x521 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x54B JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x553 PUSH2 0x789 JUMP JUMPDEST PUSH2 0x55D DUP10 DUP10 PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP10 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH2 0x578 DUP8 DUP3 PUSH2 0xDF7 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x5BF JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE01 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x621 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x7C6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x632 DUP5 DUP5 PUSH2 0x5CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x68B JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x67C JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x68B DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x7C6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x621 DUP4 DUP4 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x335 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x77D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x335 DUP3 PUSH1 0x0 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7BC PUSH2 0x9EC JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0xA35 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x7FF JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x829 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP4 SWAP1 SSTORE DUP2 ISZERO PUSH2 0x8A7 JUMPI DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP6 PUSH1 0x40 MLOAD PUSH2 0x89E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x8EA JUMPI DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8DF SWAP2 SWAP1 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x95C SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x93D JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x97A JUMPI PUSH1 0x2 DUP2 ADD DUP1 SLOAD DUP4 SWAP1 SUB SWAP1 SSTORE PUSH2 0x999 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 ADD SWAP1 SSTORE JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x9DE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA3D PUSH2 0x9EC JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE03 PUSH2 0xA77 DUP5 DUP3 PUSH2 0xDF7 JUMP JUMPDEST POP PUSH1 0x4 DUP2 ADD PUSH2 0x68B DUP4 DUP3 PUSH2 0xDF7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAAC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xA90 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xADF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB1E DUP4 PUSH2 0xAE6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB4A DUP5 PUSH2 0xAE6 JUMP JUMPDEST SWAP3 POP PUSH2 0xB58 PUSH1 0x20 DUP6 ADD PUSH2 0xAE6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB85 PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0xBA2 DUP3 DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF PUSH1 0x40 DUP6 ADD MLOAD AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0xBCD DUP3 DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xADF DUP3 PUSH2 0xAE6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC32 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC61 JUMPI PUSH2 0xC61 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0xC79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCCF DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCF8 DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD37 DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD5F DUP4 PUSH2 0xAE6 JUMP JUMPDEST SWAP2 POP PUSH2 0xD6D PUSH1 0x20 DUP5 ADD PUSH2 0xAE6 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xD8A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDAA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x621 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0xDD7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xDE3 JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE11 JUMPI PUSH2 0xE11 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xE25 DUP2 PUSH2 0xE1F DUP5 SLOAD PUSH2 0xD76 JUMP JUMPDEST DUP5 PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0xE59 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0xE41 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xE89 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xE69 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2F9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID MSTORE 0xC6 ORIGIN SELFBALANCE 0xE1 DELEGATECALL PUSH30 0xB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE00A264697066 PUSH20 0x5822122023A6C413DC1757C23EC545827B60ED6A SLOAD PUSH12 0xAFF705514EB212FE9BEF93DF 0xD7 0xCA PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL 0xD8 0x2C EQ TLOAD 0xF8 0xE5 0xDB CREATE GASPRICE 0x4E LOG1 DIV DUP7 0xD2 JUMP SWAP10 DUP14 SUB 0xDD 0x25 DELEGATECALL 0xD7 PUSH29 0xB1303034A6CF9EAD64736F6C634300081C003300000000000000000000 ","sourceMap":"272:1589:54:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@computeAddress_16357":{"entryPoint":356,"id":16357,"parameterSlots":4,"returnSlots":1},"@computeAddress_6756":{"entryPoint":620,"id":6756,"parameterSlots":3,"returnSlots":1},"@deploy_16324":{"entryPoint":125,"id":16324,"parameterSlots":5,"returnSlots":1},"@deploy_6722":{"entryPoint":458,"id":6722,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":684,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_string":{"entryPoint":1089,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_address":{"entryPoint":884,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":757,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_string_memory_ptr":{"entryPoint":1232,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_string":{"entryPoint":1405,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1027,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_uint8_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_uint8_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1449,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":991,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":1067,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5782:89","nodeType":"YulBlock","src":"0:5782:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"86:275:89","nodeType":"YulBlock","src":"86:275:89","statements":[{"body":{"nativeSrc":"135:16:89","nodeType":"YulBlock","src":"135:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"144:1:89","nodeType":"YulLiteral","src":"144:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"147:1:89","nodeType":"YulLiteral","src":"147:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"137:6:89","nodeType":"YulIdentifier","src":"137:6:89"},"nativeSrc":"137:12:89","nodeType":"YulFunctionCall","src":"137:12:89"},"nativeSrc":"137:12:89","nodeType":"YulExpressionStatement","src":"137:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"114:6:89","nodeType":"YulIdentifier","src":"114:6:89"},{"kind":"number","nativeSrc":"122:4:89","nodeType":"YulLiteral","src":"122:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"110:3:89","nodeType":"YulIdentifier","src":"110:3:89"},"nativeSrc":"110:17:89","nodeType":"YulFunctionCall","src":"110:17:89"},{"name":"end","nativeSrc":"129:3:89","nodeType":"YulIdentifier","src":"129:3:89"}],"functionName":{"name":"slt","nativeSrc":"106:3:89","nodeType":"YulIdentifier","src":"106:3:89"},"nativeSrc":"106:27:89","nodeType":"YulFunctionCall","src":"106:27:89"}],"functionName":{"name":"iszero","nativeSrc":"99:6:89","nodeType":"YulIdentifier","src":"99:6:89"},"nativeSrc":"99:35:89","nodeType":"YulFunctionCall","src":"99:35:89"},"nativeSrc":"96:55:89","nodeType":"YulIf","src":"96:55:89"},{"nativeSrc":"160:30:89","nodeType":"YulAssignment","src":"160:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"183:6:89","nodeType":"YulIdentifier","src":"183:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"170:12:89","nodeType":"YulIdentifier","src":"170:12:89"},"nativeSrc":"170:20:89","nodeType":"YulFunctionCall","src":"170:20:89"},"variableNames":[{"name":"length","nativeSrc":"160:6:89","nodeType":"YulIdentifier","src":"160:6:89"}]},{"body":{"nativeSrc":"233:16:89","nodeType":"YulBlock","src":"233:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"242:1:89","nodeType":"YulLiteral","src":"242:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"245:1:89","nodeType":"YulLiteral","src":"245:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"235:6:89","nodeType":"YulIdentifier","src":"235:6:89"},"nativeSrc":"235:12:89","nodeType":"YulFunctionCall","src":"235:12:89"},"nativeSrc":"235:12:89","nodeType":"YulExpressionStatement","src":"235:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"205:6:89","nodeType":"YulIdentifier","src":"205:6:89"},{"kind":"number","nativeSrc":"213:18:89","nodeType":"YulLiteral","src":"213:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"202:2:89","nodeType":"YulIdentifier","src":"202:2:89"},"nativeSrc":"202:30:89","nodeType":"YulFunctionCall","src":"202:30:89"},"nativeSrc":"199:50:89","nodeType":"YulIf","src":"199:50:89"},{"nativeSrc":"258:29:89","nodeType":"YulAssignment","src":"258:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"274:6:89","nodeType":"YulIdentifier","src":"274:6:89"},{"kind":"number","nativeSrc":"282:4:89","nodeType":"YulLiteral","src":"282:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"270:3:89","nodeType":"YulIdentifier","src":"270:3:89"},"nativeSrc":"270:17:89","nodeType":"YulFunctionCall","src":"270:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"258:8:89","nodeType":"YulIdentifier","src":"258:8:89"}]},{"body":{"nativeSrc":"339:16:89","nodeType":"YulBlock","src":"339:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"348:1:89","nodeType":"YulLiteral","src":"348:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"351:1:89","nodeType":"YulLiteral","src":"351:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"341:6:89","nodeType":"YulIdentifier","src":"341:6:89"},"nativeSrc":"341:12:89","nodeType":"YulFunctionCall","src":"341:12:89"},"nativeSrc":"341:12:89","nodeType":"YulExpressionStatement","src":"341:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"310:6:89","nodeType":"YulIdentifier","src":"310:6:89"},{"name":"length","nativeSrc":"318:6:89","nodeType":"YulIdentifier","src":"318:6:89"}],"functionName":{"name":"add","nativeSrc":"306:3:89","nodeType":"YulIdentifier","src":"306:3:89"},"nativeSrc":"306:19:89","nodeType":"YulFunctionCall","src":"306:19:89"},{"kind":"number","nativeSrc":"327:4:89","nodeType":"YulLiteral","src":"327:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"302:3:89","nodeType":"YulIdentifier","src":"302:3:89"},"nativeSrc":"302:30:89","nodeType":"YulFunctionCall","src":"302:30:89"},{"name":"end","nativeSrc":"334:3:89","nodeType":"YulIdentifier","src":"334:3:89"}],"functionName":{"name":"gt","nativeSrc":"299:2:89","nodeType":"YulIdentifier","src":"299:2:89"},"nativeSrc":"299:39:89","nodeType":"YulFunctionCall","src":"299:39:89"},"nativeSrc":"296:59:89","nodeType":"YulIf","src":"296:59:89"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"14:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"49:6:89","nodeType":"YulTypedName","src":"49:6:89","type":""},{"name":"end","nativeSrc":"57:3:89","nodeType":"YulTypedName","src":"57:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"65:8:89","nodeType":"YulTypedName","src":"65:8:89","type":""},{"name":"length","nativeSrc":"75:6:89","nodeType":"YulTypedName","src":"75:6:89","type":""}],"src":"14:347:89"},{"body":{"nativeSrc":"508:684:89","nodeType":"YulBlock","src":"508:684:89","statements":[{"body":{"nativeSrc":"554:16:89","nodeType":"YulBlock","src":"554:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:89","nodeType":"YulLiteral","src":"563:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:89","nodeType":"YulLiteral","src":"566:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:89","nodeType":"YulIdentifier","src":"556:6:89"},"nativeSrc":"556:12:89","nodeType":"YulFunctionCall","src":"556:12:89"},"nativeSrc":"556:12:89","nodeType":"YulExpressionStatement","src":"556:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"529:7:89","nodeType":"YulIdentifier","src":"529:7:89"},{"name":"headStart","nativeSrc":"538:9:89","nodeType":"YulIdentifier","src":"538:9:89"}],"functionName":{"name":"sub","nativeSrc":"525:3:89","nodeType":"YulIdentifier","src":"525:3:89"},"nativeSrc":"525:23:89","nodeType":"YulFunctionCall","src":"525:23:89"},{"kind":"number","nativeSrc":"550:2:89","nodeType":"YulLiteral","src":"550:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"521:3:89","nodeType":"YulIdentifier","src":"521:3:89"},"nativeSrc":"521:32:89","nodeType":"YulFunctionCall","src":"521:32:89"},"nativeSrc":"518:52:89","nodeType":"YulIf","src":"518:52:89"},{"nativeSrc":"579:14:89","nodeType":"YulVariableDeclaration","src":"579:14:89","value":{"kind":"number","nativeSrc":"592:1:89","nodeType":"YulLiteral","src":"592:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"583:5:89","nodeType":"YulTypedName","src":"583:5:89","type":""}]},{"nativeSrc":"602:32:89","nodeType":"YulAssignment","src":"602:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"624:9:89","nodeType":"YulIdentifier","src":"624:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"611:12:89","nodeType":"YulIdentifier","src":"611:12:89"},"nativeSrc":"611:23:89","nodeType":"YulFunctionCall","src":"611:23:89"},"variableNames":[{"name":"value","nativeSrc":"602:5:89","nodeType":"YulIdentifier","src":"602:5:89"}]},{"nativeSrc":"643:15:89","nodeType":"YulAssignment","src":"643:15:89","value":{"name":"value","nativeSrc":"653:5:89","nodeType":"YulIdentifier","src":"653:5:89"},"variableNames":[{"name":"value0","nativeSrc":"643:6:89","nodeType":"YulIdentifier","src":"643:6:89"}]},{"nativeSrc":"667:46:89","nodeType":"YulVariableDeclaration","src":"667:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"698:9:89","nodeType":"YulIdentifier","src":"698:9:89"},{"kind":"number","nativeSrc":"709:2:89","nodeType":"YulLiteral","src":"709:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"694:3:89","nodeType":"YulIdentifier","src":"694:3:89"},"nativeSrc":"694:18:89","nodeType":"YulFunctionCall","src":"694:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"681:12:89","nodeType":"YulIdentifier","src":"681:12:89"},"nativeSrc":"681:32:89","nodeType":"YulFunctionCall","src":"681:32:89"},"variables":[{"name":"offset","nativeSrc":"671:6:89","nodeType":"YulTypedName","src":"671:6:89","type":""}]},{"body":{"nativeSrc":"756:16:89","nodeType":"YulBlock","src":"756:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"765:1:89","nodeType":"YulLiteral","src":"765:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"768:1:89","nodeType":"YulLiteral","src":"768:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"758:6:89","nodeType":"YulIdentifier","src":"758:6:89"},"nativeSrc":"758:12:89","nodeType":"YulFunctionCall","src":"758:12:89"},"nativeSrc":"758:12:89","nodeType":"YulExpressionStatement","src":"758:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"728:6:89","nodeType":"YulIdentifier","src":"728:6:89"},{"kind":"number","nativeSrc":"736:18:89","nodeType":"YulLiteral","src":"736:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"725:2:89","nodeType":"YulIdentifier","src":"725:2:89"},"nativeSrc":"725:30:89","nodeType":"YulFunctionCall","src":"725:30:89"},"nativeSrc":"722:50:89","nodeType":"YulIf","src":"722:50:89"},{"nativeSrc":"781:84:89","nodeType":"YulVariableDeclaration","src":"781:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"837:9:89","nodeType":"YulIdentifier","src":"837:9:89"},{"name":"offset","nativeSrc":"848:6:89","nodeType":"YulIdentifier","src":"848:6:89"}],"functionName":{"name":"add","nativeSrc":"833:3:89","nodeType":"YulIdentifier","src":"833:3:89"},"nativeSrc":"833:22:89","nodeType":"YulFunctionCall","src":"833:22:89"},{"name":"dataEnd","nativeSrc":"857:7:89","nodeType":"YulIdentifier","src":"857:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"807:25:89","nodeType":"YulIdentifier","src":"807:25:89"},"nativeSrc":"807:58:89","nodeType":"YulFunctionCall","src":"807:58:89"},"variables":[{"name":"value1_1","nativeSrc":"785:8:89","nodeType":"YulTypedName","src":"785:8:89","type":""},{"name":"value2_1","nativeSrc":"795:8:89","nodeType":"YulTypedName","src":"795:8:89","type":""}]},{"nativeSrc":"874:18:89","nodeType":"YulAssignment","src":"874:18:89","value":{"name":"value1_1","nativeSrc":"884:8:89","nodeType":"YulIdentifier","src":"884:8:89"},"variableNames":[{"name":"value1","nativeSrc":"874:6:89","nodeType":"YulIdentifier","src":"874:6:89"}]},{"nativeSrc":"901:18:89","nodeType":"YulAssignment","src":"901:18:89","value":{"name":"value2_1","nativeSrc":"911:8:89","nodeType":"YulIdentifier","src":"911:8:89"},"variableNames":[{"name":"value2","nativeSrc":"901:6:89","nodeType":"YulIdentifier","src":"901:6:89"}]},{"nativeSrc":"928:48:89","nodeType":"YulVariableDeclaration","src":"928:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"961:9:89","nodeType":"YulIdentifier","src":"961:9:89"},{"kind":"number","nativeSrc":"972:2:89","nodeType":"YulLiteral","src":"972:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"957:3:89","nodeType":"YulIdentifier","src":"957:3:89"},"nativeSrc":"957:18:89","nodeType":"YulFunctionCall","src":"957:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"944:12:89","nodeType":"YulIdentifier","src":"944:12:89"},"nativeSrc":"944:32:89","nodeType":"YulFunctionCall","src":"944:32:89"},"variables":[{"name":"offset_1","nativeSrc":"932:8:89","nodeType":"YulTypedName","src":"932:8:89","type":""}]},{"body":{"nativeSrc":"1021:16:89","nodeType":"YulBlock","src":"1021:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1030:1:89","nodeType":"YulLiteral","src":"1030:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1033:1:89","nodeType":"YulLiteral","src":"1033:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1023:6:89","nodeType":"YulIdentifier","src":"1023:6:89"},"nativeSrc":"1023:12:89","nodeType":"YulFunctionCall","src":"1023:12:89"},"nativeSrc":"1023:12:89","nodeType":"YulExpressionStatement","src":"1023:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"991:8:89","nodeType":"YulIdentifier","src":"991:8:89"},{"kind":"number","nativeSrc":"1001:18:89","nodeType":"YulLiteral","src":"1001:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"988:2:89","nodeType":"YulIdentifier","src":"988:2:89"},"nativeSrc":"988:32:89","nodeType":"YulFunctionCall","src":"988:32:89"},"nativeSrc":"985:52:89","nodeType":"YulIf","src":"985:52:89"},{"nativeSrc":"1046:86:89","nodeType":"YulVariableDeclaration","src":"1046:86:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1102:9:89","nodeType":"YulIdentifier","src":"1102:9:89"},{"name":"offset_1","nativeSrc":"1113:8:89","nodeType":"YulIdentifier","src":"1113:8:89"}],"functionName":{"name":"add","nativeSrc":"1098:3:89","nodeType":"YulIdentifier","src":"1098:3:89"},"nativeSrc":"1098:24:89","nodeType":"YulFunctionCall","src":"1098:24:89"},{"name":"dataEnd","nativeSrc":"1124:7:89","nodeType":"YulIdentifier","src":"1124:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1072:25:89","nodeType":"YulIdentifier","src":"1072:25:89"},"nativeSrc":"1072:60:89","nodeType":"YulFunctionCall","src":"1072:60:89"},"variables":[{"name":"value3_1","nativeSrc":"1050:8:89","nodeType":"YulTypedName","src":"1050:8:89","type":""},{"name":"value4_1","nativeSrc":"1060:8:89","nodeType":"YulTypedName","src":"1060:8:89","type":""}]},{"nativeSrc":"1141:18:89","nodeType":"YulAssignment","src":"1141:18:89","value":{"name":"value3_1","nativeSrc":"1151:8:89","nodeType":"YulIdentifier","src":"1151:8:89"},"variableNames":[{"name":"value3","nativeSrc":"1141:6:89","nodeType":"YulIdentifier","src":"1141:6:89"}]},{"nativeSrc":"1168:18:89","nodeType":"YulAssignment","src":"1168:18:89","value":{"name":"value4_1","nativeSrc":"1178:8:89","nodeType":"YulIdentifier","src":"1178:8:89"},"variableNames":[{"name":"value4","nativeSrc":"1168:6:89","nodeType":"YulIdentifier","src":"1168:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"366:826:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"442:9:89","nodeType":"YulTypedName","src":"442:9:89","type":""},{"name":"dataEnd","nativeSrc":"453:7:89","nodeType":"YulTypedName","src":"453:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"465:6:89","nodeType":"YulTypedName","src":"465:6:89","type":""},{"name":"value1","nativeSrc":"473:6:89","nodeType":"YulTypedName","src":"473:6:89","type":""},{"name":"value2","nativeSrc":"481:6:89","nodeType":"YulTypedName","src":"481:6:89","type":""},{"name":"value3","nativeSrc":"489:6:89","nodeType":"YulTypedName","src":"489:6:89","type":""},{"name":"value4","nativeSrc":"497:6:89","nodeType":"YulTypedName","src":"497:6:89","type":""}],"src":"366:826:89"},{"body":{"nativeSrc":"1298:102:89","nodeType":"YulBlock","src":"1298:102:89","statements":[{"nativeSrc":"1308:26:89","nodeType":"YulAssignment","src":"1308:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1320:9:89","nodeType":"YulIdentifier","src":"1320:9:89"},{"kind":"number","nativeSrc":"1331:2:89","nodeType":"YulLiteral","src":"1331:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1316:3:89","nodeType":"YulIdentifier","src":"1316:3:89"},"nativeSrc":"1316:18:89","nodeType":"YulFunctionCall","src":"1316:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1308:4:89","nodeType":"YulIdentifier","src":"1308:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1350:9:89","nodeType":"YulIdentifier","src":"1350:9:89"},{"arguments":[{"name":"value0","nativeSrc":"1365:6:89","nodeType":"YulIdentifier","src":"1365:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1381:3:89","nodeType":"YulLiteral","src":"1381:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1386:1:89","nodeType":"YulLiteral","src":"1386:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1377:3:89","nodeType":"YulIdentifier","src":"1377:3:89"},"nativeSrc":"1377:11:89","nodeType":"YulFunctionCall","src":"1377:11:89"},{"kind":"number","nativeSrc":"1390:1:89","nodeType":"YulLiteral","src":"1390:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1373:3:89","nodeType":"YulIdentifier","src":"1373:3:89"},"nativeSrc":"1373:19:89","nodeType":"YulFunctionCall","src":"1373:19:89"}],"functionName":{"name":"and","nativeSrc":"1361:3:89","nodeType":"YulIdentifier","src":"1361:3:89"},"nativeSrc":"1361:32:89","nodeType":"YulFunctionCall","src":"1361:32:89"}],"functionName":{"name":"mstore","nativeSrc":"1343:6:89","nodeType":"YulIdentifier","src":"1343:6:89"},"nativeSrc":"1343:51:89","nodeType":"YulFunctionCall","src":"1343:51:89"},"nativeSrc":"1343:51:89","nodeType":"YulExpressionStatement","src":"1343:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1197:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1267:9:89","nodeType":"YulTypedName","src":"1267:9:89","type":""},{"name":"value0","nativeSrc":"1278:6:89","nodeType":"YulTypedName","src":"1278:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1289:4:89","nodeType":"YulTypedName","src":"1289:4:89","type":""}],"src":"1197:203:89"},{"body":{"nativeSrc":"1528:582:89","nodeType":"YulBlock","src":"1528:582:89","statements":[{"body":{"nativeSrc":"1574:16:89","nodeType":"YulBlock","src":"1574:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1583:1:89","nodeType":"YulLiteral","src":"1583:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1586:1:89","nodeType":"YulLiteral","src":"1586:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1576:6:89","nodeType":"YulIdentifier","src":"1576:6:89"},"nativeSrc":"1576:12:89","nodeType":"YulFunctionCall","src":"1576:12:89"},"nativeSrc":"1576:12:89","nodeType":"YulExpressionStatement","src":"1576:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1549:7:89","nodeType":"YulIdentifier","src":"1549:7:89"},{"name":"headStart","nativeSrc":"1558:9:89","nodeType":"YulIdentifier","src":"1558:9:89"}],"functionName":{"name":"sub","nativeSrc":"1545:3:89","nodeType":"YulIdentifier","src":"1545:3:89"},"nativeSrc":"1545:23:89","nodeType":"YulFunctionCall","src":"1545:23:89"},{"kind":"number","nativeSrc":"1570:2:89","nodeType":"YulLiteral","src":"1570:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1541:3:89","nodeType":"YulIdentifier","src":"1541:3:89"},"nativeSrc":"1541:32:89","nodeType":"YulFunctionCall","src":"1541:32:89"},"nativeSrc":"1538:52:89","nodeType":"YulIf","src":"1538:52:89"},{"nativeSrc":"1599:14:89","nodeType":"YulVariableDeclaration","src":"1599:14:89","value":{"kind":"number","nativeSrc":"1612:1:89","nodeType":"YulLiteral","src":"1612:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1603:5:89","nodeType":"YulTypedName","src":"1603:5:89","type":""}]},{"nativeSrc":"1622:32:89","nodeType":"YulAssignment","src":"1622:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1644:9:89","nodeType":"YulIdentifier","src":"1644:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1631:12:89","nodeType":"YulIdentifier","src":"1631:12:89"},"nativeSrc":"1631:23:89","nodeType":"YulFunctionCall","src":"1631:23:89"},"variableNames":[{"name":"value","nativeSrc":"1622:5:89","nodeType":"YulIdentifier","src":"1622:5:89"}]},{"nativeSrc":"1663:15:89","nodeType":"YulAssignment","src":"1663:15:89","value":{"name":"value","nativeSrc":"1673:5:89","nodeType":"YulIdentifier","src":"1673:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1663:6:89","nodeType":"YulIdentifier","src":"1663:6:89"}]},{"nativeSrc":"1687:46:89","nodeType":"YulVariableDeclaration","src":"1687:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1718:9:89","nodeType":"YulIdentifier","src":"1718:9:89"},{"kind":"number","nativeSrc":"1729:2:89","nodeType":"YulLiteral","src":"1729:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1714:3:89","nodeType":"YulIdentifier","src":"1714:3:89"},"nativeSrc":"1714:18:89","nodeType":"YulFunctionCall","src":"1714:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1701:12:89","nodeType":"YulIdentifier","src":"1701:12:89"},"nativeSrc":"1701:32:89","nodeType":"YulFunctionCall","src":"1701:32:89"},"variables":[{"name":"offset","nativeSrc":"1691:6:89","nodeType":"YulTypedName","src":"1691:6:89","type":""}]},{"body":{"nativeSrc":"1776:16:89","nodeType":"YulBlock","src":"1776:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1785:1:89","nodeType":"YulLiteral","src":"1785:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1788:1:89","nodeType":"YulLiteral","src":"1788:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1778:6:89","nodeType":"YulIdentifier","src":"1778:6:89"},"nativeSrc":"1778:12:89","nodeType":"YulFunctionCall","src":"1778:12:89"},"nativeSrc":"1778:12:89","nodeType":"YulExpressionStatement","src":"1778:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1748:6:89","nodeType":"YulIdentifier","src":"1748:6:89"},{"kind":"number","nativeSrc":"1756:18:89","nodeType":"YulLiteral","src":"1756:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1745:2:89","nodeType":"YulIdentifier","src":"1745:2:89"},"nativeSrc":"1745:30:89","nodeType":"YulFunctionCall","src":"1745:30:89"},"nativeSrc":"1742:50:89","nodeType":"YulIf","src":"1742:50:89"},{"nativeSrc":"1801:84:89","nodeType":"YulVariableDeclaration","src":"1801:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1857:9:89","nodeType":"YulIdentifier","src":"1857:9:89"},{"name":"offset","nativeSrc":"1868:6:89","nodeType":"YulIdentifier","src":"1868:6:89"}],"functionName":{"name":"add","nativeSrc":"1853:3:89","nodeType":"YulIdentifier","src":"1853:3:89"},"nativeSrc":"1853:22:89","nodeType":"YulFunctionCall","src":"1853:22:89"},{"name":"dataEnd","nativeSrc":"1877:7:89","nodeType":"YulIdentifier","src":"1877:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1827:25:89","nodeType":"YulIdentifier","src":"1827:25:89"},"nativeSrc":"1827:58:89","nodeType":"YulFunctionCall","src":"1827:58:89"},"variables":[{"name":"value1_1","nativeSrc":"1805:8:89","nodeType":"YulTypedName","src":"1805:8:89","type":""},{"name":"value2_1","nativeSrc":"1815:8:89","nodeType":"YulTypedName","src":"1815:8:89","type":""}]},{"nativeSrc":"1894:18:89","nodeType":"YulAssignment","src":"1894:18:89","value":{"name":"value1_1","nativeSrc":"1904:8:89","nodeType":"YulIdentifier","src":"1904:8:89"},"variableNames":[{"name":"value1","nativeSrc":"1894:6:89","nodeType":"YulIdentifier","src":"1894:6:89"}]},{"nativeSrc":"1921:18:89","nodeType":"YulAssignment","src":"1921:18:89","value":{"name":"value2_1","nativeSrc":"1931:8:89","nodeType":"YulIdentifier","src":"1931:8:89"},"variableNames":[{"name":"value2","nativeSrc":"1921:6:89","nodeType":"YulIdentifier","src":"1921:6:89"}]},{"nativeSrc":"1948:47:89","nodeType":"YulVariableDeclaration","src":"1948:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1980:9:89","nodeType":"YulIdentifier","src":"1980:9:89"},{"kind":"number","nativeSrc":"1991:2:89","nodeType":"YulLiteral","src":"1991:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1976:3:89","nodeType":"YulIdentifier","src":"1976:3:89"},"nativeSrc":"1976:18:89","nodeType":"YulFunctionCall","src":"1976:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1963:12:89","nodeType":"YulIdentifier","src":"1963:12:89"},"nativeSrc":"1963:32:89","nodeType":"YulFunctionCall","src":"1963:32:89"},"variables":[{"name":"value_1","nativeSrc":"1952:7:89","nodeType":"YulTypedName","src":"1952:7:89","type":""}]},{"body":{"nativeSrc":"2062:16:89","nodeType":"YulBlock","src":"2062:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2071:1:89","nodeType":"YulLiteral","src":"2071:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2074:1:89","nodeType":"YulLiteral","src":"2074:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2064:6:89","nodeType":"YulIdentifier","src":"2064:6:89"},"nativeSrc":"2064:12:89","nodeType":"YulFunctionCall","src":"2064:12:89"},"nativeSrc":"2064:12:89","nodeType":"YulExpressionStatement","src":"2064:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"2017:7:89","nodeType":"YulIdentifier","src":"2017:7:89"},{"arguments":[{"name":"value_1","nativeSrc":"2030:7:89","nodeType":"YulIdentifier","src":"2030:7:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2047:3:89","nodeType":"YulLiteral","src":"2047:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"2052:1:89","nodeType":"YulLiteral","src":"2052:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2043:3:89","nodeType":"YulIdentifier","src":"2043:3:89"},"nativeSrc":"2043:11:89","nodeType":"YulFunctionCall","src":"2043:11:89"},{"kind":"number","nativeSrc":"2056:1:89","nodeType":"YulLiteral","src":"2056:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2039:3:89","nodeType":"YulIdentifier","src":"2039:3:89"},"nativeSrc":"2039:19:89","nodeType":"YulFunctionCall","src":"2039:19:89"}],"functionName":{"name":"and","nativeSrc":"2026:3:89","nodeType":"YulIdentifier","src":"2026:3:89"},"nativeSrc":"2026:33:89","nodeType":"YulFunctionCall","src":"2026:33:89"}],"functionName":{"name":"eq","nativeSrc":"2014:2:89","nodeType":"YulIdentifier","src":"2014:2:89"},"nativeSrc":"2014:46:89","nodeType":"YulFunctionCall","src":"2014:46:89"}],"functionName":{"name":"iszero","nativeSrc":"2007:6:89","nodeType":"YulIdentifier","src":"2007:6:89"},"nativeSrc":"2007:54:89","nodeType":"YulFunctionCall","src":"2007:54:89"},"nativeSrc":"2004:74:89","nodeType":"YulIf","src":"2004:74:89"},{"nativeSrc":"2087:17:89","nodeType":"YulAssignment","src":"2087:17:89","value":{"name":"value_1","nativeSrc":"2097:7:89","nodeType":"YulIdentifier","src":"2097:7:89"},"variableNames":[{"name":"value3","nativeSrc":"2087:6:89","nodeType":"YulIdentifier","src":"2087:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_address","nativeSrc":"1405:705:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1470:9:89","nodeType":"YulTypedName","src":"1470:9:89","type":""},{"name":"dataEnd","nativeSrc":"1481:7:89","nodeType":"YulTypedName","src":"1481:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1493:6:89","nodeType":"YulTypedName","src":"1493:6:89","type":""},{"name":"value1","nativeSrc":"1501:6:89","nodeType":"YulTypedName","src":"1501:6:89","type":""},{"name":"value2","nativeSrc":"1509:6:89","nodeType":"YulTypedName","src":"1509:6:89","type":""},{"name":"value3","nativeSrc":"1517:6:89","nodeType":"YulTypedName","src":"1517:6:89","type":""}],"src":"1405:705:89"},{"body":{"nativeSrc":"2181:184:89","nodeType":"YulBlock","src":"2181:184:89","statements":[{"nativeSrc":"2191:10:89","nodeType":"YulVariableDeclaration","src":"2191:10:89","value":{"kind":"number","nativeSrc":"2200:1:89","nodeType":"YulLiteral","src":"2200:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2195:1:89","nodeType":"YulTypedName","src":"2195:1:89","type":""}]},{"body":{"nativeSrc":"2260:63:89","nodeType":"YulBlock","src":"2260:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2285:3:89","nodeType":"YulIdentifier","src":"2285:3:89"},{"name":"i","nativeSrc":"2290:1:89","nodeType":"YulIdentifier","src":"2290:1:89"}],"functionName":{"name":"add","nativeSrc":"2281:3:89","nodeType":"YulIdentifier","src":"2281:3:89"},"nativeSrc":"2281:11:89","nodeType":"YulFunctionCall","src":"2281:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2304:3:89","nodeType":"YulIdentifier","src":"2304:3:89"},{"name":"i","nativeSrc":"2309:1:89","nodeType":"YulIdentifier","src":"2309:1:89"}],"functionName":{"name":"add","nativeSrc":"2300:3:89","nodeType":"YulIdentifier","src":"2300:3:89"},"nativeSrc":"2300:11:89","nodeType":"YulFunctionCall","src":"2300:11:89"}],"functionName":{"name":"mload","nativeSrc":"2294:5:89","nodeType":"YulIdentifier","src":"2294:5:89"},"nativeSrc":"2294:18:89","nodeType":"YulFunctionCall","src":"2294:18:89"}],"functionName":{"name":"mstore","nativeSrc":"2274:6:89","nodeType":"YulIdentifier","src":"2274:6:89"},"nativeSrc":"2274:39:89","nodeType":"YulFunctionCall","src":"2274:39:89"},"nativeSrc":"2274:39:89","nodeType":"YulExpressionStatement","src":"2274:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2221:1:89","nodeType":"YulIdentifier","src":"2221:1:89"},{"name":"length","nativeSrc":"2224:6:89","nodeType":"YulIdentifier","src":"2224:6:89"}],"functionName":{"name":"lt","nativeSrc":"2218:2:89","nodeType":"YulIdentifier","src":"2218:2:89"},"nativeSrc":"2218:13:89","nodeType":"YulFunctionCall","src":"2218:13:89"},"nativeSrc":"2210:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"2232:19:89","nodeType":"YulBlock","src":"2232:19:89","statements":[{"nativeSrc":"2234:15:89","nodeType":"YulAssignment","src":"2234:15:89","value":{"arguments":[{"name":"i","nativeSrc":"2243:1:89","nodeType":"YulIdentifier","src":"2243:1:89"},{"kind":"number","nativeSrc":"2246:2:89","nodeType":"YulLiteral","src":"2246:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2239:3:89","nodeType":"YulIdentifier","src":"2239:3:89"},"nativeSrc":"2239:10:89","nodeType":"YulFunctionCall","src":"2239:10:89"},"variableNames":[{"name":"i","nativeSrc":"2234:1:89","nodeType":"YulIdentifier","src":"2234:1:89"}]}]},"pre":{"nativeSrc":"2214:3:89","nodeType":"YulBlock","src":"2214:3:89","statements":[]},"src":"2210:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2343:3:89","nodeType":"YulIdentifier","src":"2343:3:89"},{"name":"length","nativeSrc":"2348:6:89","nodeType":"YulIdentifier","src":"2348:6:89"}],"functionName":{"name":"add","nativeSrc":"2339:3:89","nodeType":"YulIdentifier","src":"2339:3:89"},"nativeSrc":"2339:16:89","nodeType":"YulFunctionCall","src":"2339:16:89"},{"kind":"number","nativeSrc":"2357:1:89","nodeType":"YulLiteral","src":"2357:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2332:6:89","nodeType":"YulIdentifier","src":"2332:6:89"},"nativeSrc":"2332:27:89","nodeType":"YulFunctionCall","src":"2332:27:89"},"nativeSrc":"2332:27:89","nodeType":"YulExpressionStatement","src":"2332:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2115:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2159:3:89","nodeType":"YulTypedName","src":"2159:3:89","type":""},{"name":"dst","nativeSrc":"2164:3:89","nodeType":"YulTypedName","src":"2164:3:89","type":""},{"name":"length","nativeSrc":"2169:6:89","nodeType":"YulTypedName","src":"2169:6:89","type":""}],"src":"2115:250:89"},{"body":{"nativeSrc":"2563:277:89","nodeType":"YulBlock","src":"2563:277:89","statements":[{"nativeSrc":"2573:27:89","nodeType":"YulVariableDeclaration","src":"2573:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"2593:6:89","nodeType":"YulIdentifier","src":"2593:6:89"}],"functionName":{"name":"mload","nativeSrc":"2587:5:89","nodeType":"YulIdentifier","src":"2587:5:89"},"nativeSrc":"2587:13:89","nodeType":"YulFunctionCall","src":"2587:13:89"},"variables":[{"name":"length","nativeSrc":"2577:6:89","nodeType":"YulTypedName","src":"2577:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2648:6:89","nodeType":"YulIdentifier","src":"2648:6:89"},{"kind":"number","nativeSrc":"2656:4:89","nodeType":"YulLiteral","src":"2656:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2644:3:89","nodeType":"YulIdentifier","src":"2644:3:89"},"nativeSrc":"2644:17:89","nodeType":"YulFunctionCall","src":"2644:17:89"},{"name":"pos","nativeSrc":"2663:3:89","nodeType":"YulIdentifier","src":"2663:3:89"},{"name":"length","nativeSrc":"2668:6:89","nodeType":"YulIdentifier","src":"2668:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2609:34:89","nodeType":"YulIdentifier","src":"2609:34:89"},"nativeSrc":"2609:66:89","nodeType":"YulFunctionCall","src":"2609:66:89"},"nativeSrc":"2609:66:89","nodeType":"YulExpressionStatement","src":"2609:66:89"},{"nativeSrc":"2684:29:89","nodeType":"YulVariableDeclaration","src":"2684:29:89","value":{"arguments":[{"name":"pos","nativeSrc":"2701:3:89","nodeType":"YulIdentifier","src":"2701:3:89"},{"name":"length","nativeSrc":"2706:6:89","nodeType":"YulIdentifier","src":"2706:6:89"}],"functionName":{"name":"add","nativeSrc":"2697:3:89","nodeType":"YulIdentifier","src":"2697:3:89"},"nativeSrc":"2697:16:89","nodeType":"YulFunctionCall","src":"2697:16:89"},"variables":[{"name":"end_1","nativeSrc":"2688:5:89","nodeType":"YulTypedName","src":"2688:5:89","type":""}]},{"expression":{"arguments":[{"name":"end_1","nativeSrc":"2735:5:89","nodeType":"YulIdentifier","src":"2735:5:89"},{"name":"value1","nativeSrc":"2742:6:89","nodeType":"YulIdentifier","src":"2742:6:89"},{"name":"value2","nativeSrc":"2750:6:89","nodeType":"YulIdentifier","src":"2750:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"2722:12:89","nodeType":"YulIdentifier","src":"2722:12:89"},"nativeSrc":"2722:35:89","nodeType":"YulFunctionCall","src":"2722:35:89"},"nativeSrc":"2722:35:89","nodeType":"YulExpressionStatement","src":"2722:35:89"},{"nativeSrc":"2766:28:89","nodeType":"YulVariableDeclaration","src":"2766:28:89","value":{"arguments":[{"name":"end_1","nativeSrc":"2780:5:89","nodeType":"YulIdentifier","src":"2780:5:89"},{"name":"value2","nativeSrc":"2787:6:89","nodeType":"YulIdentifier","src":"2787:6:89"}],"functionName":{"name":"add","nativeSrc":"2776:3:89","nodeType":"YulIdentifier","src":"2776:3:89"},"nativeSrc":"2776:18:89","nodeType":"YulFunctionCall","src":"2776:18:89"},"variables":[{"name":"_1","nativeSrc":"2770:2:89","nodeType":"YulTypedName","src":"2770:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"2810:2:89","nodeType":"YulIdentifier","src":"2810:2:89"},{"kind":"number","nativeSrc":"2814:1:89","nodeType":"YulLiteral","src":"2814:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2803:6:89","nodeType":"YulIdentifier","src":"2803:6:89"},"nativeSrc":"2803:13:89","nodeType":"YulFunctionCall","src":"2803:13:89"},"nativeSrc":"2803:13:89","nodeType":"YulExpressionStatement","src":"2803:13:89"},{"nativeSrc":"2825:9:89","nodeType":"YulAssignment","src":"2825:9:89","value":{"name":"_1","nativeSrc":"2832:2:89","nodeType":"YulIdentifier","src":"2832:2:89"},"variableNames":[{"name":"end","nativeSrc":"2825:3:89","nodeType":"YulIdentifier","src":"2825:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"2370:470:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2523:3:89","nodeType":"YulTypedName","src":"2523:3:89","type":""},{"name":"value2","nativeSrc":"2528:6:89","nodeType":"YulTypedName","src":"2528:6:89","type":""},{"name":"value1","nativeSrc":"2536:6:89","nodeType":"YulTypedName","src":"2536:6:89","type":""},{"name":"value0","nativeSrc":"2544:6:89","nodeType":"YulTypedName","src":"2544:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2555:3:89","nodeType":"YulTypedName","src":"2555:3:89","type":""}],"src":"2370:470:89"},{"body":{"nativeSrc":"2877:95:89","nodeType":"YulBlock","src":"2877:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2894:1:89","nodeType":"YulLiteral","src":"2894:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2901:3:89","nodeType":"YulLiteral","src":"2901:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"2906:10:89","nodeType":"YulLiteral","src":"2906:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2897:3:89","nodeType":"YulIdentifier","src":"2897:3:89"},"nativeSrc":"2897:20:89","nodeType":"YulFunctionCall","src":"2897:20:89"}],"functionName":{"name":"mstore","nativeSrc":"2887:6:89","nodeType":"YulIdentifier","src":"2887:6:89"},"nativeSrc":"2887:31:89","nodeType":"YulFunctionCall","src":"2887:31:89"},"nativeSrc":"2887:31:89","nodeType":"YulExpressionStatement","src":"2887:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2934:1:89","nodeType":"YulLiteral","src":"2934:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"2937:4:89","nodeType":"YulLiteral","src":"2937:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2927:6:89","nodeType":"YulIdentifier","src":"2927:6:89"},"nativeSrc":"2927:15:89","nodeType":"YulFunctionCall","src":"2927:15:89"},"nativeSrc":"2927:15:89","nodeType":"YulExpressionStatement","src":"2927:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:89","nodeType":"YulLiteral","src":"2958:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2961:4:89","nodeType":"YulLiteral","src":"2961:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2951:6:89","nodeType":"YulIdentifier","src":"2951:6:89"},"nativeSrc":"2951:15:89","nodeType":"YulFunctionCall","src":"2951:15:89"},"nativeSrc":"2951:15:89","nodeType":"YulExpressionStatement","src":"2951:15:89"}]},"name":"panic_error_0x41","nativeSrc":"2845:127:89","nodeType":"YulFunctionDefinition","src":"2845:127:89"},{"body":{"nativeSrc":"3030:673:89","nodeType":"YulBlock","src":"3030:673:89","statements":[{"body":{"nativeSrc":"3079:16:89","nodeType":"YulBlock","src":"3079:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3088:1:89","nodeType":"YulLiteral","src":"3088:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3091:1:89","nodeType":"YulLiteral","src":"3091:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3081:6:89","nodeType":"YulIdentifier","src":"3081:6:89"},"nativeSrc":"3081:12:89","nodeType":"YulFunctionCall","src":"3081:12:89"},"nativeSrc":"3081:12:89","nodeType":"YulExpressionStatement","src":"3081:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3058:6:89","nodeType":"YulIdentifier","src":"3058:6:89"},{"kind":"number","nativeSrc":"3066:4:89","nodeType":"YulLiteral","src":"3066:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3054:3:89","nodeType":"YulIdentifier","src":"3054:3:89"},"nativeSrc":"3054:17:89","nodeType":"YulFunctionCall","src":"3054:17:89"},{"name":"end","nativeSrc":"3073:3:89","nodeType":"YulIdentifier","src":"3073:3:89"}],"functionName":{"name":"slt","nativeSrc":"3050:3:89","nodeType":"YulIdentifier","src":"3050:3:89"},"nativeSrc":"3050:27:89","nodeType":"YulFunctionCall","src":"3050:27:89"}],"functionName":{"name":"iszero","nativeSrc":"3043:6:89","nodeType":"YulIdentifier","src":"3043:6:89"},"nativeSrc":"3043:35:89","nodeType":"YulFunctionCall","src":"3043:35:89"},"nativeSrc":"3040:55:89","nodeType":"YulIf","src":"3040:55:89"},{"nativeSrc":"3104:34:89","nodeType":"YulVariableDeclaration","src":"3104:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"3131:6:89","nodeType":"YulIdentifier","src":"3131:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"3118:12:89","nodeType":"YulIdentifier","src":"3118:12:89"},"nativeSrc":"3118:20:89","nodeType":"YulFunctionCall","src":"3118:20:89"},"variables":[{"name":"length","nativeSrc":"3108:6:89","nodeType":"YulTypedName","src":"3108:6:89","type":""}]},{"body":{"nativeSrc":"3181:22:89","nodeType":"YulBlock","src":"3181:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3183:16:89","nodeType":"YulIdentifier","src":"3183:16:89"},"nativeSrc":"3183:18:89","nodeType":"YulFunctionCall","src":"3183:18:89"},"nativeSrc":"3183:18:89","nodeType":"YulExpressionStatement","src":"3183:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3153:6:89","nodeType":"YulIdentifier","src":"3153:6:89"},{"kind":"number","nativeSrc":"3161:18:89","nodeType":"YulLiteral","src":"3161:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3150:2:89","nodeType":"YulIdentifier","src":"3150:2:89"},"nativeSrc":"3150:30:89","nodeType":"YulFunctionCall","src":"3150:30:89"},"nativeSrc":"3147:56:89","nodeType":"YulIf","src":"3147:56:89"},{"nativeSrc":"3212:23:89","nodeType":"YulVariableDeclaration","src":"3212:23:89","value":{"arguments":[{"kind":"number","nativeSrc":"3232:2:89","nodeType":"YulLiteral","src":"3232:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"3226:5:89","nodeType":"YulIdentifier","src":"3226:5:89"},"nativeSrc":"3226:9:89","nodeType":"YulFunctionCall","src":"3226:9:89"},"variables":[{"name":"memPtr","nativeSrc":"3216:6:89","nodeType":"YulTypedName","src":"3216:6:89","type":""}]},{"nativeSrc":"3244:85:89","nodeType":"YulVariableDeclaration","src":"3244:85:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"3266:6:89","nodeType":"YulIdentifier","src":"3266:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3290:6:89","nodeType":"YulIdentifier","src":"3290:6:89"},{"kind":"number","nativeSrc":"3298:4:89","nodeType":"YulLiteral","src":"3298:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3286:3:89","nodeType":"YulIdentifier","src":"3286:3:89"},"nativeSrc":"3286:17:89","nodeType":"YulFunctionCall","src":"3286:17:89"},{"arguments":[{"kind":"number","nativeSrc":"3309:2:89","nodeType":"YulLiteral","src":"3309:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3305:3:89","nodeType":"YulIdentifier","src":"3305:3:89"},"nativeSrc":"3305:7:89","nodeType":"YulFunctionCall","src":"3305:7:89"}],"functionName":{"name":"and","nativeSrc":"3282:3:89","nodeType":"YulIdentifier","src":"3282:3:89"},"nativeSrc":"3282:31:89","nodeType":"YulFunctionCall","src":"3282:31:89"},{"kind":"number","nativeSrc":"3315:2:89","nodeType":"YulLiteral","src":"3315:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"3278:3:89","nodeType":"YulIdentifier","src":"3278:3:89"},"nativeSrc":"3278:40:89","nodeType":"YulFunctionCall","src":"3278:40:89"},{"arguments":[{"kind":"number","nativeSrc":"3324:2:89","nodeType":"YulLiteral","src":"3324:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3320:3:89","nodeType":"YulIdentifier","src":"3320:3:89"},"nativeSrc":"3320:7:89","nodeType":"YulFunctionCall","src":"3320:7:89"}],"functionName":{"name":"and","nativeSrc":"3274:3:89","nodeType":"YulIdentifier","src":"3274:3:89"},"nativeSrc":"3274:54:89","nodeType":"YulFunctionCall","src":"3274:54:89"}],"functionName":{"name":"add","nativeSrc":"3262:3:89","nodeType":"YulIdentifier","src":"3262:3:89"},"nativeSrc":"3262:67:89","nodeType":"YulFunctionCall","src":"3262:67:89"},"variables":[{"name":"newFreePtr","nativeSrc":"3248:10:89","nodeType":"YulTypedName","src":"3248:10:89","type":""}]},{"body":{"nativeSrc":"3404:22:89","nodeType":"YulBlock","src":"3404:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3406:16:89","nodeType":"YulIdentifier","src":"3406:16:89"},"nativeSrc":"3406:18:89","nodeType":"YulFunctionCall","src":"3406:18:89"},"nativeSrc":"3406:18:89","nodeType":"YulExpressionStatement","src":"3406:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3347:10:89","nodeType":"YulIdentifier","src":"3347:10:89"},{"kind":"number","nativeSrc":"3359:18:89","nodeType":"YulLiteral","src":"3359:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3344:2:89","nodeType":"YulIdentifier","src":"3344:2:89"},"nativeSrc":"3344:34:89","nodeType":"YulFunctionCall","src":"3344:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3383:10:89","nodeType":"YulIdentifier","src":"3383:10:89"},{"name":"memPtr","nativeSrc":"3395:6:89","nodeType":"YulIdentifier","src":"3395:6:89"}],"functionName":{"name":"lt","nativeSrc":"3380:2:89","nodeType":"YulIdentifier","src":"3380:2:89"},"nativeSrc":"3380:22:89","nodeType":"YulFunctionCall","src":"3380:22:89"}],"functionName":{"name":"or","nativeSrc":"3341:2:89","nodeType":"YulIdentifier","src":"3341:2:89"},"nativeSrc":"3341:62:89","nodeType":"YulFunctionCall","src":"3341:62:89"},"nativeSrc":"3338:88:89","nodeType":"YulIf","src":"3338:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3442:2:89","nodeType":"YulLiteral","src":"3442:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3446:10:89","nodeType":"YulIdentifier","src":"3446:10:89"}],"functionName":{"name":"mstore","nativeSrc":"3435:6:89","nodeType":"YulIdentifier","src":"3435:6:89"},"nativeSrc":"3435:22:89","nodeType":"YulFunctionCall","src":"3435:22:89"},"nativeSrc":"3435:22:89","nodeType":"YulExpressionStatement","src":"3435:22:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3473:6:89","nodeType":"YulIdentifier","src":"3473:6:89"},{"name":"length","nativeSrc":"3481:6:89","nodeType":"YulIdentifier","src":"3481:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3466:6:89","nodeType":"YulIdentifier","src":"3466:6:89"},"nativeSrc":"3466:22:89","nodeType":"YulFunctionCall","src":"3466:22:89"},"nativeSrc":"3466:22:89","nodeType":"YulExpressionStatement","src":"3466:22:89"},{"body":{"nativeSrc":"3540:16:89","nodeType":"YulBlock","src":"3540:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3549:1:89","nodeType":"YulLiteral","src":"3549:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3552:1:89","nodeType":"YulLiteral","src":"3552:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3542:6:89","nodeType":"YulIdentifier","src":"3542:6:89"},"nativeSrc":"3542:12:89","nodeType":"YulFunctionCall","src":"3542:12:89"},"nativeSrc":"3542:12:89","nodeType":"YulExpressionStatement","src":"3542:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3511:6:89","nodeType":"YulIdentifier","src":"3511:6:89"},{"name":"length","nativeSrc":"3519:6:89","nodeType":"YulIdentifier","src":"3519:6:89"}],"functionName":{"name":"add","nativeSrc":"3507:3:89","nodeType":"YulIdentifier","src":"3507:3:89"},"nativeSrc":"3507:19:89","nodeType":"YulFunctionCall","src":"3507:19:89"},{"kind":"number","nativeSrc":"3528:4:89","nodeType":"YulLiteral","src":"3528:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3503:3:89","nodeType":"YulIdentifier","src":"3503:3:89"},"nativeSrc":"3503:30:89","nodeType":"YulFunctionCall","src":"3503:30:89"},{"name":"end","nativeSrc":"3535:3:89","nodeType":"YulIdentifier","src":"3535:3:89"}],"functionName":{"name":"gt","nativeSrc":"3500:2:89","nodeType":"YulIdentifier","src":"3500:2:89"},"nativeSrc":"3500:39:89","nodeType":"YulFunctionCall","src":"3500:39:89"},"nativeSrc":"3497:59:89","nodeType":"YulIf","src":"3497:59:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3582:6:89","nodeType":"YulIdentifier","src":"3582:6:89"},{"kind":"number","nativeSrc":"3590:4:89","nodeType":"YulLiteral","src":"3590:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3578:3:89","nodeType":"YulIdentifier","src":"3578:3:89"},"nativeSrc":"3578:17:89","nodeType":"YulFunctionCall","src":"3578:17:89"},{"arguments":[{"name":"offset","nativeSrc":"3601:6:89","nodeType":"YulIdentifier","src":"3601:6:89"},{"kind":"number","nativeSrc":"3609:4:89","nodeType":"YulLiteral","src":"3609:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3597:3:89","nodeType":"YulIdentifier","src":"3597:3:89"},"nativeSrc":"3597:17:89","nodeType":"YulFunctionCall","src":"3597:17:89"},{"name":"length","nativeSrc":"3616:6:89","nodeType":"YulIdentifier","src":"3616:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"3565:12:89","nodeType":"YulIdentifier","src":"3565:12:89"},"nativeSrc":"3565:58:89","nodeType":"YulFunctionCall","src":"3565:58:89"},"nativeSrc":"3565:58:89","nodeType":"YulExpressionStatement","src":"3565:58:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3647:6:89","nodeType":"YulIdentifier","src":"3647:6:89"},{"name":"length","nativeSrc":"3655:6:89","nodeType":"YulIdentifier","src":"3655:6:89"}],"functionName":{"name":"add","nativeSrc":"3643:3:89","nodeType":"YulIdentifier","src":"3643:3:89"},"nativeSrc":"3643:19:89","nodeType":"YulFunctionCall","src":"3643:19:89"},{"kind":"number","nativeSrc":"3664:4:89","nodeType":"YulLiteral","src":"3664:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3639:3:89","nodeType":"YulIdentifier","src":"3639:3:89"},"nativeSrc":"3639:30:89","nodeType":"YulFunctionCall","src":"3639:30:89"},{"kind":"number","nativeSrc":"3671:1:89","nodeType":"YulLiteral","src":"3671:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3632:6:89","nodeType":"YulIdentifier","src":"3632:6:89"},"nativeSrc":"3632:41:89","nodeType":"YulFunctionCall","src":"3632:41:89"},"nativeSrc":"3632:41:89","nodeType":"YulExpressionStatement","src":"3632:41:89"},{"nativeSrc":"3682:15:89","nodeType":"YulAssignment","src":"3682:15:89","value":{"name":"memPtr","nativeSrc":"3691:6:89","nodeType":"YulIdentifier","src":"3691:6:89"},"variableNames":[{"name":"array","nativeSrc":"3682:5:89","nodeType":"YulIdentifier","src":"3682:5:89"}]}]},"name":"abi_decode_string","nativeSrc":"2977:726:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3004:6:89","nodeType":"YulTypedName","src":"3004:6:89","type":""},{"name":"end","nativeSrc":"3012:3:89","nodeType":"YulTypedName","src":"3012:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3020:5:89","nodeType":"YulTypedName","src":"3020:5:89","type":""}],"src":"2977:726:89"},{"body":{"nativeSrc":"3857:763:89","nodeType":"YulBlock","src":"3857:763:89","statements":[{"body":{"nativeSrc":"3904:16:89","nodeType":"YulBlock","src":"3904:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3913:1:89","nodeType":"YulLiteral","src":"3913:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3916:1:89","nodeType":"YulLiteral","src":"3916:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3906:6:89","nodeType":"YulIdentifier","src":"3906:6:89"},"nativeSrc":"3906:12:89","nodeType":"YulFunctionCall","src":"3906:12:89"},"nativeSrc":"3906:12:89","nodeType":"YulExpressionStatement","src":"3906:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3878:7:89","nodeType":"YulIdentifier","src":"3878:7:89"},{"name":"headStart","nativeSrc":"3887:9:89","nodeType":"YulIdentifier","src":"3887:9:89"}],"functionName":{"name":"sub","nativeSrc":"3874:3:89","nodeType":"YulIdentifier","src":"3874:3:89"},"nativeSrc":"3874:23:89","nodeType":"YulFunctionCall","src":"3874:23:89"},{"kind":"number","nativeSrc":"3899:3:89","nodeType":"YulLiteral","src":"3899:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3870:3:89","nodeType":"YulIdentifier","src":"3870:3:89"},"nativeSrc":"3870:33:89","nodeType":"YulFunctionCall","src":"3870:33:89"},"nativeSrc":"3867:53:89","nodeType":"YulIf","src":"3867:53:89"},{"nativeSrc":"3929:37:89","nodeType":"YulVariableDeclaration","src":"3929:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3956:9:89","nodeType":"YulIdentifier","src":"3956:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3943:12:89","nodeType":"YulIdentifier","src":"3943:12:89"},"nativeSrc":"3943:23:89","nodeType":"YulFunctionCall","src":"3943:23:89"},"variables":[{"name":"offset","nativeSrc":"3933:6:89","nodeType":"YulTypedName","src":"3933:6:89","type":""}]},{"body":{"nativeSrc":"4009:16:89","nodeType":"YulBlock","src":"4009:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4018:1:89","nodeType":"YulLiteral","src":"4018:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4021:1:89","nodeType":"YulLiteral","src":"4021:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4011:6:89","nodeType":"YulIdentifier","src":"4011:6:89"},"nativeSrc":"4011:12:89","nodeType":"YulFunctionCall","src":"4011:12:89"},"nativeSrc":"4011:12:89","nodeType":"YulExpressionStatement","src":"4011:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3981:6:89","nodeType":"YulIdentifier","src":"3981:6:89"},{"kind":"number","nativeSrc":"3989:18:89","nodeType":"YulLiteral","src":"3989:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3978:2:89","nodeType":"YulIdentifier","src":"3978:2:89"},"nativeSrc":"3978:30:89","nodeType":"YulFunctionCall","src":"3978:30:89"},"nativeSrc":"3975:50:89","nodeType":"YulIf","src":"3975:50:89"},{"nativeSrc":"4034:60:89","nodeType":"YulAssignment","src":"4034:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4066:9:89","nodeType":"YulIdentifier","src":"4066:9:89"},{"name":"offset","nativeSrc":"4077:6:89","nodeType":"YulIdentifier","src":"4077:6:89"}],"functionName":{"name":"add","nativeSrc":"4062:3:89","nodeType":"YulIdentifier","src":"4062:3:89"},"nativeSrc":"4062:22:89","nodeType":"YulFunctionCall","src":"4062:22:89"},{"name":"dataEnd","nativeSrc":"4086:7:89","nodeType":"YulIdentifier","src":"4086:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4044:17:89","nodeType":"YulIdentifier","src":"4044:17:89"},"nativeSrc":"4044:50:89","nodeType":"YulFunctionCall","src":"4044:50:89"},"variableNames":[{"name":"value0","nativeSrc":"4034:6:89","nodeType":"YulIdentifier","src":"4034:6:89"}]},{"nativeSrc":"4103:48:89","nodeType":"YulVariableDeclaration","src":"4103:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4136:9:89","nodeType":"YulIdentifier","src":"4136:9:89"},{"kind":"number","nativeSrc":"4147:2:89","nodeType":"YulLiteral","src":"4147:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4132:3:89","nodeType":"YulIdentifier","src":"4132:3:89"},"nativeSrc":"4132:18:89","nodeType":"YulFunctionCall","src":"4132:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4119:12:89","nodeType":"YulIdentifier","src":"4119:12:89"},"nativeSrc":"4119:32:89","nodeType":"YulFunctionCall","src":"4119:32:89"},"variables":[{"name":"offset_1","nativeSrc":"4107:8:89","nodeType":"YulTypedName","src":"4107:8:89","type":""}]},{"body":{"nativeSrc":"4196:16:89","nodeType":"YulBlock","src":"4196:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4205:1:89","nodeType":"YulLiteral","src":"4205:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4208:1:89","nodeType":"YulLiteral","src":"4208:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4198:6:89","nodeType":"YulIdentifier","src":"4198:6:89"},"nativeSrc":"4198:12:89","nodeType":"YulFunctionCall","src":"4198:12:89"},"nativeSrc":"4198:12:89","nodeType":"YulExpressionStatement","src":"4198:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"4166:8:89","nodeType":"YulIdentifier","src":"4166:8:89"},{"kind":"number","nativeSrc":"4176:18:89","nodeType":"YulLiteral","src":"4176:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4163:2:89","nodeType":"YulIdentifier","src":"4163:2:89"},"nativeSrc":"4163:32:89","nodeType":"YulFunctionCall","src":"4163:32:89"},"nativeSrc":"4160:52:89","nodeType":"YulIf","src":"4160:52:89"},{"nativeSrc":"4221:62:89","nodeType":"YulAssignment","src":"4221:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4253:9:89","nodeType":"YulIdentifier","src":"4253:9:89"},{"name":"offset_1","nativeSrc":"4264:8:89","nodeType":"YulIdentifier","src":"4264:8:89"}],"functionName":{"name":"add","nativeSrc":"4249:3:89","nodeType":"YulIdentifier","src":"4249:3:89"},"nativeSrc":"4249:24:89","nodeType":"YulFunctionCall","src":"4249:24:89"},{"name":"dataEnd","nativeSrc":"4275:7:89","nodeType":"YulIdentifier","src":"4275:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4231:17:89","nodeType":"YulIdentifier","src":"4231:17:89"},"nativeSrc":"4231:52:89","nodeType":"YulFunctionCall","src":"4231:52:89"},"variableNames":[{"name":"value1","nativeSrc":"4221:6:89","nodeType":"YulIdentifier","src":"4221:6:89"}]},{"nativeSrc":"4292:45:89","nodeType":"YulVariableDeclaration","src":"4292:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4322:9:89","nodeType":"YulIdentifier","src":"4322:9:89"},{"kind":"number","nativeSrc":"4333:2:89","nodeType":"YulLiteral","src":"4333:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4318:3:89","nodeType":"YulIdentifier","src":"4318:3:89"},"nativeSrc":"4318:18:89","nodeType":"YulFunctionCall","src":"4318:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4305:12:89","nodeType":"YulIdentifier","src":"4305:12:89"},"nativeSrc":"4305:32:89","nodeType":"YulFunctionCall","src":"4305:32:89"},"variables":[{"name":"value","nativeSrc":"4296:5:89","nodeType":"YulTypedName","src":"4296:5:89","type":""}]},{"body":{"nativeSrc":"4385:16:89","nodeType":"YulBlock","src":"4385:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4394:1:89","nodeType":"YulLiteral","src":"4394:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4397:1:89","nodeType":"YulLiteral","src":"4397:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4387:6:89","nodeType":"YulIdentifier","src":"4387:6:89"},"nativeSrc":"4387:12:89","nodeType":"YulFunctionCall","src":"4387:12:89"},"nativeSrc":"4387:12:89","nodeType":"YulExpressionStatement","src":"4387:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4359:5:89","nodeType":"YulIdentifier","src":"4359:5:89"},{"arguments":[{"name":"value","nativeSrc":"4370:5:89","nodeType":"YulIdentifier","src":"4370:5:89"},{"kind":"number","nativeSrc":"4377:4:89","nodeType":"YulLiteral","src":"4377:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4366:3:89","nodeType":"YulIdentifier","src":"4366:3:89"},"nativeSrc":"4366:16:89","nodeType":"YulFunctionCall","src":"4366:16:89"}],"functionName":{"name":"eq","nativeSrc":"4356:2:89","nodeType":"YulIdentifier","src":"4356:2:89"},"nativeSrc":"4356:27:89","nodeType":"YulFunctionCall","src":"4356:27:89"}],"functionName":{"name":"iszero","nativeSrc":"4349:6:89","nodeType":"YulIdentifier","src":"4349:6:89"},"nativeSrc":"4349:35:89","nodeType":"YulFunctionCall","src":"4349:35:89"},"nativeSrc":"4346:55:89","nodeType":"YulIf","src":"4346:55:89"},{"nativeSrc":"4410:15:89","nodeType":"YulAssignment","src":"4410:15:89","value":{"name":"value","nativeSrc":"4420:5:89","nodeType":"YulIdentifier","src":"4420:5:89"},"variableNames":[{"name":"value2","nativeSrc":"4410:6:89","nodeType":"YulIdentifier","src":"4410:6:89"}]},{"nativeSrc":"4434:48:89","nodeType":"YulVariableDeclaration","src":"4434:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4467:9:89","nodeType":"YulIdentifier","src":"4467:9:89"},{"kind":"number","nativeSrc":"4478:2:89","nodeType":"YulLiteral","src":"4478:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4463:3:89","nodeType":"YulIdentifier","src":"4463:3:89"},"nativeSrc":"4463:18:89","nodeType":"YulFunctionCall","src":"4463:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4450:12:89","nodeType":"YulIdentifier","src":"4450:12:89"},"nativeSrc":"4450:32:89","nodeType":"YulFunctionCall","src":"4450:32:89"},"variables":[{"name":"offset_2","nativeSrc":"4438:8:89","nodeType":"YulTypedName","src":"4438:8:89","type":""}]},{"body":{"nativeSrc":"4527:16:89","nodeType":"YulBlock","src":"4527:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4536:1:89","nodeType":"YulLiteral","src":"4536:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4539:1:89","nodeType":"YulLiteral","src":"4539:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4529:6:89","nodeType":"YulIdentifier","src":"4529:6:89"},"nativeSrc":"4529:12:89","nodeType":"YulFunctionCall","src":"4529:12:89"},"nativeSrc":"4529:12:89","nodeType":"YulExpressionStatement","src":"4529:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"4497:8:89","nodeType":"YulIdentifier","src":"4497:8:89"},{"kind":"number","nativeSrc":"4507:18:89","nodeType":"YulLiteral","src":"4507:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4494:2:89","nodeType":"YulIdentifier","src":"4494:2:89"},"nativeSrc":"4494:32:89","nodeType":"YulFunctionCall","src":"4494:32:89"},"nativeSrc":"4491:52:89","nodeType":"YulIf","src":"4491:52:89"},{"nativeSrc":"4552:62:89","nodeType":"YulAssignment","src":"4552:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4584:9:89","nodeType":"YulIdentifier","src":"4584:9:89"},{"name":"offset_2","nativeSrc":"4595:8:89","nodeType":"YulIdentifier","src":"4595:8:89"}],"functionName":{"name":"add","nativeSrc":"4580:3:89","nodeType":"YulIdentifier","src":"4580:3:89"},"nativeSrc":"4580:24:89","nodeType":"YulFunctionCall","src":"4580:24:89"},{"name":"dataEnd","nativeSrc":"4606:7:89","nodeType":"YulIdentifier","src":"4606:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4562:17:89","nodeType":"YulIdentifier","src":"4562:17:89"},"nativeSrc":"4562:52:89","nodeType":"YulFunctionCall","src":"4562:52:89"},"variableNames":[{"name":"value3","nativeSrc":"4552:6:89","nodeType":"YulIdentifier","src":"4552:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_string_memory_ptr","nativeSrc":"3708:912:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3799:9:89","nodeType":"YulTypedName","src":"3799:9:89","type":""},{"name":"dataEnd","nativeSrc":"3810:7:89","nodeType":"YulTypedName","src":"3810:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3822:6:89","nodeType":"YulTypedName","src":"3822:6:89","type":""},{"name":"value1","nativeSrc":"3830:6:89","nodeType":"YulTypedName","src":"3830:6:89","type":""},{"name":"value2","nativeSrc":"3838:6:89","nodeType":"YulTypedName","src":"3838:6:89","type":""},{"name":"value3","nativeSrc":"3846:6:89","nodeType":"YulTypedName","src":"3846:6:89","type":""}],"src":"3708:912:89"},{"body":{"nativeSrc":"4675:221:89","nodeType":"YulBlock","src":"4675:221:89","statements":[{"nativeSrc":"4685:26:89","nodeType":"YulVariableDeclaration","src":"4685:26:89","value":{"arguments":[{"name":"value","nativeSrc":"4705:5:89","nodeType":"YulIdentifier","src":"4705:5:89"}],"functionName":{"name":"mload","nativeSrc":"4699:5:89","nodeType":"YulIdentifier","src":"4699:5:89"},"nativeSrc":"4699:12:89","nodeType":"YulFunctionCall","src":"4699:12:89"},"variables":[{"name":"length","nativeSrc":"4689:6:89","nodeType":"YulTypedName","src":"4689:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4727:3:89","nodeType":"YulIdentifier","src":"4727:3:89"},{"name":"length","nativeSrc":"4732:6:89","nodeType":"YulIdentifier","src":"4732:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4720:6:89","nodeType":"YulIdentifier","src":"4720:6:89"},"nativeSrc":"4720:19:89","nodeType":"YulFunctionCall","src":"4720:19:89"},"nativeSrc":"4720:19:89","nodeType":"YulExpressionStatement","src":"4720:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4787:5:89","nodeType":"YulIdentifier","src":"4787:5:89"},{"kind":"number","nativeSrc":"4794:4:89","nodeType":"YulLiteral","src":"4794:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4783:3:89","nodeType":"YulIdentifier","src":"4783:3:89"},"nativeSrc":"4783:16:89","nodeType":"YulFunctionCall","src":"4783:16:89"},{"arguments":[{"name":"pos","nativeSrc":"4805:3:89","nodeType":"YulIdentifier","src":"4805:3:89"},{"kind":"number","nativeSrc":"4810:4:89","nodeType":"YulLiteral","src":"4810:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4801:3:89","nodeType":"YulIdentifier","src":"4801:3:89"},"nativeSrc":"4801:14:89","nodeType":"YulFunctionCall","src":"4801:14:89"},{"name":"length","nativeSrc":"4817:6:89","nodeType":"YulIdentifier","src":"4817:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4748:34:89","nodeType":"YulIdentifier","src":"4748:34:89"},"nativeSrc":"4748:76:89","nodeType":"YulFunctionCall","src":"4748:76:89"},"nativeSrc":"4748:76:89","nodeType":"YulExpressionStatement","src":"4748:76:89"},{"nativeSrc":"4833:57:89","nodeType":"YulAssignment","src":"4833:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4848:3:89","nodeType":"YulIdentifier","src":"4848:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4861:6:89","nodeType":"YulIdentifier","src":"4861:6:89"},{"kind":"number","nativeSrc":"4869:2:89","nodeType":"YulLiteral","src":"4869:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4857:3:89","nodeType":"YulIdentifier","src":"4857:3:89"},"nativeSrc":"4857:15:89","nodeType":"YulFunctionCall","src":"4857:15:89"},{"arguments":[{"kind":"number","nativeSrc":"4878:2:89","nodeType":"YulLiteral","src":"4878:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4874:3:89","nodeType":"YulIdentifier","src":"4874:3:89"},"nativeSrc":"4874:7:89","nodeType":"YulFunctionCall","src":"4874:7:89"}],"functionName":{"name":"and","nativeSrc":"4853:3:89","nodeType":"YulIdentifier","src":"4853:3:89"},"nativeSrc":"4853:29:89","nodeType":"YulFunctionCall","src":"4853:29:89"}],"functionName":{"name":"add","nativeSrc":"4844:3:89","nodeType":"YulIdentifier","src":"4844:3:89"},"nativeSrc":"4844:39:89","nodeType":"YulFunctionCall","src":"4844:39:89"},{"kind":"number","nativeSrc":"4885:4:89","nodeType":"YulLiteral","src":"4885:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4840:3:89","nodeType":"YulIdentifier","src":"4840:3:89"},"nativeSrc":"4840:50:89","nodeType":"YulFunctionCall","src":"4840:50:89"},"variableNames":[{"name":"end","nativeSrc":"4833:3:89","nodeType":"YulIdentifier","src":"4833:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"4625:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4652:5:89","nodeType":"YulTypedName","src":"4652:5:89","type":""},{"name":"pos","nativeSrc":"4659:3:89","nodeType":"YulTypedName","src":"4659:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4667:3:89","nodeType":"YulTypedName","src":"4667:3:89","type":""}],"src":"4625:271:89"},{"body":{"nativeSrc":"5142:385:89","nodeType":"YulBlock","src":"5142:385:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5159:9:89","nodeType":"YulIdentifier","src":"5159:9:89"},{"kind":"number","nativeSrc":"5170:3:89","nodeType":"YulLiteral","src":"5170:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"5152:6:89","nodeType":"YulIdentifier","src":"5152:6:89"},"nativeSrc":"5152:22:89","nodeType":"YulFunctionCall","src":"5152:22:89"},"nativeSrc":"5152:22:89","nodeType":"YulExpressionStatement","src":"5152:22:89"},{"nativeSrc":"5183:60:89","nodeType":"YulVariableDeclaration","src":"5183:60:89","value":{"arguments":[{"name":"value0","nativeSrc":"5215:6:89","nodeType":"YulIdentifier","src":"5215:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"5227:9:89","nodeType":"YulIdentifier","src":"5227:9:89"},{"kind":"number","nativeSrc":"5238:3:89","nodeType":"YulLiteral","src":"5238:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5223:3:89","nodeType":"YulIdentifier","src":"5223:3:89"},"nativeSrc":"5223:19:89","nodeType":"YulFunctionCall","src":"5223:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5197:17:89","nodeType":"YulIdentifier","src":"5197:17:89"},"nativeSrc":"5197:46:89","nodeType":"YulFunctionCall","src":"5197:46:89"},"variables":[{"name":"tail_1","nativeSrc":"5187:6:89","nodeType":"YulTypedName","src":"5187:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5263:9:89","nodeType":"YulIdentifier","src":"5263:9:89"},{"kind":"number","nativeSrc":"5274:2:89","nodeType":"YulLiteral","src":"5274:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5259:3:89","nodeType":"YulIdentifier","src":"5259:3:89"},"nativeSrc":"5259:18:89","nodeType":"YulFunctionCall","src":"5259:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"5283:6:89","nodeType":"YulIdentifier","src":"5283:6:89"},{"name":"headStart","nativeSrc":"5291:9:89","nodeType":"YulIdentifier","src":"5291:9:89"}],"functionName":{"name":"sub","nativeSrc":"5279:3:89","nodeType":"YulIdentifier","src":"5279:3:89"},"nativeSrc":"5279:22:89","nodeType":"YulFunctionCall","src":"5279:22:89"}],"functionName":{"name":"mstore","nativeSrc":"5252:6:89","nodeType":"YulIdentifier","src":"5252:6:89"},"nativeSrc":"5252:50:89","nodeType":"YulFunctionCall","src":"5252:50:89"},"nativeSrc":"5252:50:89","nodeType":"YulExpressionStatement","src":"5252:50:89"},{"nativeSrc":"5311:47:89","nodeType":"YulVariableDeclaration","src":"5311:47:89","value":{"arguments":[{"name":"value1","nativeSrc":"5343:6:89","nodeType":"YulIdentifier","src":"5343:6:89"},{"name":"tail_1","nativeSrc":"5351:6:89","nodeType":"YulIdentifier","src":"5351:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5325:17:89","nodeType":"YulIdentifier","src":"5325:17:89"},"nativeSrc":"5325:33:89","nodeType":"YulFunctionCall","src":"5325:33:89"},"variables":[{"name":"tail_2","nativeSrc":"5315:6:89","nodeType":"YulTypedName","src":"5315:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5378:9:89","nodeType":"YulIdentifier","src":"5378:9:89"},{"kind":"number","nativeSrc":"5389:2:89","nodeType":"YulLiteral","src":"5389:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5374:3:89","nodeType":"YulIdentifier","src":"5374:3:89"},"nativeSrc":"5374:18:89","nodeType":"YulFunctionCall","src":"5374:18:89"},{"arguments":[{"name":"value2","nativeSrc":"5398:6:89","nodeType":"YulIdentifier","src":"5398:6:89"},{"kind":"number","nativeSrc":"5406:4:89","nodeType":"YulLiteral","src":"5406:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"5394:3:89","nodeType":"YulIdentifier","src":"5394:3:89"},"nativeSrc":"5394:17:89","nodeType":"YulFunctionCall","src":"5394:17:89"}],"functionName":{"name":"mstore","nativeSrc":"5367:6:89","nodeType":"YulIdentifier","src":"5367:6:89"},"nativeSrc":"5367:45:89","nodeType":"YulFunctionCall","src":"5367:45:89"},"nativeSrc":"5367:45:89","nodeType":"YulExpressionStatement","src":"5367:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5432:9:89","nodeType":"YulIdentifier","src":"5432:9:89"},{"kind":"number","nativeSrc":"5443:2:89","nodeType":"YulLiteral","src":"5443:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5428:3:89","nodeType":"YulIdentifier","src":"5428:3:89"},"nativeSrc":"5428:18:89","nodeType":"YulFunctionCall","src":"5428:18:89"},{"arguments":[{"name":"tail_2","nativeSrc":"5452:6:89","nodeType":"YulIdentifier","src":"5452:6:89"},{"name":"headStart","nativeSrc":"5460:9:89","nodeType":"YulIdentifier","src":"5460:9:89"}],"functionName":{"name":"sub","nativeSrc":"5448:3:89","nodeType":"YulIdentifier","src":"5448:3:89"},"nativeSrc":"5448:22:89","nodeType":"YulFunctionCall","src":"5448:22:89"}],"functionName":{"name":"mstore","nativeSrc":"5421:6:89","nodeType":"YulIdentifier","src":"5421:6:89"},"nativeSrc":"5421:50:89","nodeType":"YulFunctionCall","src":"5421:50:89"},"nativeSrc":"5421:50:89","nodeType":"YulExpressionStatement","src":"5421:50:89"},{"nativeSrc":"5480:41:89","nodeType":"YulAssignment","src":"5480:41:89","value":{"arguments":[{"name":"value3","nativeSrc":"5506:6:89","nodeType":"YulIdentifier","src":"5506:6:89"},{"name":"tail_2","nativeSrc":"5514:6:89","nodeType":"YulIdentifier","src":"5514:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5488:17:89","nodeType":"YulIdentifier","src":"5488:17:89"},"nativeSrc":"5488:33:89","nodeType":"YulFunctionCall","src":"5488:33:89"},"variableNames":[{"name":"tail","nativeSrc":"5480:4:89","nodeType":"YulIdentifier","src":"5480:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_uint8_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_uint8_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4901:626:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5087:9:89","nodeType":"YulTypedName","src":"5087:9:89","type":""},{"name":"value3","nativeSrc":"5098:6:89","nodeType":"YulTypedName","src":"5098:6:89","type":""},{"name":"value2","nativeSrc":"5106:6:89","nodeType":"YulTypedName","src":"5106:6:89","type":""},{"name":"value1","nativeSrc":"5114:6:89","nodeType":"YulTypedName","src":"5114:6:89","type":""},{"name":"value0","nativeSrc":"5122:6:89","nodeType":"YulTypedName","src":"5122:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5133:4:89","nodeType":"YulTypedName","src":"5133:4:89","type":""}],"src":"4901:626:89"},{"body":{"nativeSrc":"5661:119:89","nodeType":"YulBlock","src":"5661:119:89","statements":[{"nativeSrc":"5671:26:89","nodeType":"YulAssignment","src":"5671:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5683:9:89","nodeType":"YulIdentifier","src":"5683:9:89"},{"kind":"number","nativeSrc":"5694:2:89","nodeType":"YulLiteral","src":"5694:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5679:3:89","nodeType":"YulIdentifier","src":"5679:3:89"},"nativeSrc":"5679:18:89","nodeType":"YulFunctionCall","src":"5679:18:89"},"variableNames":[{"name":"tail","nativeSrc":"5671:4:89","nodeType":"YulIdentifier","src":"5671:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5713:9:89","nodeType":"YulIdentifier","src":"5713:9:89"},{"name":"value0","nativeSrc":"5724:6:89","nodeType":"YulIdentifier","src":"5724:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5706:6:89","nodeType":"YulIdentifier","src":"5706:6:89"},"nativeSrc":"5706:25:89","nodeType":"YulFunctionCall","src":"5706:25:89"},"nativeSrc":"5706:25:89","nodeType":"YulExpressionStatement","src":"5706:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5751:9:89","nodeType":"YulIdentifier","src":"5751:9:89"},{"kind":"number","nativeSrc":"5762:2:89","nodeType":"YulLiteral","src":"5762:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5747:3:89","nodeType":"YulIdentifier","src":"5747:3:89"},"nativeSrc":"5747:18:89","nodeType":"YulFunctionCall","src":"5747:18:89"},{"name":"value1","nativeSrc":"5767:6:89","nodeType":"YulIdentifier","src":"5767:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5740:6:89","nodeType":"YulIdentifier","src":"5740:6:89"},"nativeSrc":"5740:34:89","nodeType":"YulFunctionCall","src":"5740:34:89"},"nativeSrc":"5740:34:89","nodeType":"YulExpressionStatement","src":"5740:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"5532:248:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5622:9:89","nodeType":"YulTypedName","src":"5622:9:89","type":""},{"name":"value1","nativeSrc":"5633:6:89","nodeType":"YulTypedName","src":"5633:6:89","type":""},{"name":"value0","nativeSrc":"5641:6:89","nodeType":"YulTypedName","src":"5641:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5652:4:89","nodeType":"YulTypedName","src":"5652:4:89","type":""}],"src":"5532:248:89"}]},"contents":"{\n    { }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value_1 := calldataload(add(headStart, 64))\n        if iszero(eq(value_1, and(value_1, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value3 := value_1\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        calldatacopy(end_1, value1, value2)\n        let _1 := add(end_1, value2)\n        mstore(_1, 0)\n        end := _1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n        let value := calldataload(add(headStart, 64))\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value2 := value\n        let offset_2 := calldataload(add(headStart, 96))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_string(add(headStart, offset_2), dataEnd)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_uint8_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_uint8_t_string_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_string(value0, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_string(value1, tail_1)\n        mstore(add(headStart, 64), and(value2, 0xff))\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        tail := abi_encode_string(value3, tail_2)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c806319cdeff11461003b578063a31809781461006a575b600080fd5b61004e6100493660046102f5565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e610078366004610374565b610164565b600080604051806020016100909061029f565b601f1982820381018352601f9091011660408190526100b6919088908890602001610403565b604051602081830303815290604052905060006100d5600089846101ca565b905060008080806100e8888a018a6104d0565b9350935093509350846001600160a01b031663cdbed7ad858585856040518563ffffffff1660e01b815260040161012294939291906105a9565b600060405180830381600087803b15801561013c57600080fd5b505af1158015610150573d6000803e3d6000fd5b50969e9d5050505050505050505050505050565b600080604051806020016101779061029f565b601f1982820381018352601f90910116604081905261019d919087908790602001610403565b60405160208183030381529060405290506101c08682805190602001208561026c565b9695505050505050565b6000834710156101fa5760405163cf47918160e01b81524760048201526024810185905260440160405180910390fd5b815160000361021c57604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d15198115161561023e576040513d6000823e3d81fd5b6001600160a01b0381166102655760405163b06ebf3d60e01b815260040160405180910390fd5b9392505050565b6000604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b610fc3806105f783390190565b60008083601f8401126102be57600080fd5b50813567ffffffffffffffff8111156102d657600080fd5b6020830191508360208285010111156102ee57600080fd5b9250929050565b60008060008060006060868803121561030d57600080fd5b85359450602086013567ffffffffffffffff81111561032b57600080fd5b610337888289016102ac565b909550935050604086013567ffffffffffffffff81111561035757600080fd5b610363888289016102ac565b969995985093965092949392505050565b6000806000806060858703121561038a57600080fd5b84359350602085013567ffffffffffffffff8111156103a857600080fd5b6103b4878288016102ac565b90945092505060408501356001600160a01b03811681146103d457600080fd5b939692955090935050565b60005b838110156103fa5781810151838201526020016103e2565b50506000910152565b600084516104158184602089016103df565b8201838582376000930192835250909392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045257600080fd5b813567ffffffffffffffff81111561046c5761046c61042b565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561049b5761049b61042b565b6040528181528382016020018510156104b357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156104e657600080fd5b843567ffffffffffffffff8111156104fd57600080fd5b61050987828801610441565b945050602085013567ffffffffffffffff81111561052657600080fd5b61053287828801610441565b935050604085013560ff8116811461054957600080fd5b9150606085013567ffffffffffffffff81111561056557600080fd5b61057187828801610441565b91505092959194509250565b600081518084526105958160208601602086016103df565b601f01601f19169290920160200192915050565b6080815260006105bc608083018761057d565b82810360208401526105ce818761057d565b905060ff8516604084015282810360608401526105eb818561057d565b97965050505050505056fe6080604052348015600f57600080fd5b50604051610fc3380380610fc3833981016040819052602c916059565b600280546001600160a01b039092166001600160a01b031992831617905560038054909116331790556087565b600060208284031215606a57600080fd5b81516001600160a01b0381168114608057600080fd5b9392505050565b610f2d806100966000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635a9b0b891161008c5780639dc29fac116100665780639dc29fac146101d6578063a9059cbb146101e9578063cdbed7ad146101fc578063dd62ed3e1461020f57600080fd5b80635a9b0b891461018357806370a082311461019857806395d89b41146101ce57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610146578063313ce5671461015957806340c10f191461016e575b600080fd5b6100dc610222565b6040516100e99190610acc565b60405180910390f35b610105610100366004610b02565b6102e5565b60405190151581526020016100e9565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040519081526020016100e9565b610105610154366004610b2c565b6102ff565b60005460405160ff90911681526020016100e9565b61018161017c366004610b02565b610323565b005b61018b610339565b6040516100e99190610b69565b6101386101a6366004610bd6565b6001600160a01b03166000908152600080516020610ed8833981519152602052604090205490565b6100dc610433565b6101816101e4366004610b02565b610472565b6101056101f7366004610b02565b610484565b61018161020a366004610c96565b610492565b61013861021d366004610d43565b6105ca565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace038054606091600080516020610ed88339815191529161026190610d76565b80601f016020809104026020016040519081016040528092919081815260200182805461028d90610d76565b80156102da5780601f106102af576101008083540402835291602001916102da565b820191906000526020600020905b8154815290600101906020018083116102bd57829003601f168201915b505050505091505090565b6000336102f3818585610614565b60019150505b92915050565b60003361030d858285610626565b610318858585610691565b506001949350505050565b61032b6106f0565b610335828261071d565b5050565b61036760405180608001604052806060815260200160608152602001600060ff168152602001606081525090565b604051806080016040528061037a610222565b8152602001610387610433565b815260200161039860005460ff1690565b60ff168152602001600180546103ad90610d76565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610d76565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815250905090565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace048054606091600080516020610ed88339815191529161026190610d76565b61047a6106f0565b6103358282610753565b6000336102f3818585610691565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104d85750825b905060008267ffffffffffffffff1660011480156104f55750303b155b905081158015610503575080155b156105215760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561054b57845460ff60401b1916600160401b1785555b610553610789565b61055d89896107b4565b6000805460ff191660ff891617905560016105788782610df7565b5083156105bf57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b61062183838360016107c6565b505050565b600061063284846105ca565b9050600019811461068b578181101561067c57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61068b848484840360006107c6565b50505050565b6001600160a01b0383166106bb57604051634b637e8f60e11b815260006004820152602401610673565b6001600160a01b0382166106e55760405163ec442f0560e01b815260006004820152602401610673565b6106218383836108ae565b6002546001600160a01b0316331461071b57604051631a27eac360e11b815260040160405180910390fd5b565b6001600160a01b0382166107475760405163ec442f0560e01b815260006004820152602401610673565b610335600083836108ae565b6001600160a01b03821661077d57604051634b637e8f60e11b815260006004820152602401610673565b610335826000836108ae565b6003546001600160a01b0316331461071b57604051631a27eac360e11b815260040160405180910390fd5b6107bc6109ec565b6103358282610a35565b600080516020610ed88339815191526001600160a01b0385166107ff5760405163e602df0560e01b815260006004820152602401610673565b6001600160a01b03841661082957604051634a1406b160e11b815260006004820152602401610673565b6001600160a01b038086166000908152600183016020908152604080832093881683529290522083905581156108a757836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161089e91815260200190565b60405180910390a35b5050505050565b600080516020610ed88339815191526001600160a01b0384166108ea57818160020160008282546108df9190610eb6565b9091555061095c9050565b6001600160a01b0384166000908152602082905260409020548281101561093d5760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610673565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b03831661097a576002810180548390039055610999565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109de91815260200190565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661071b57604051631afcd79f60e31b815260040160405180910390fd5b610a3d6109ec565b600080516020610ed88339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610a778482610df7565b506004810161068b8382610df7565b6000815180845260005b81811015610aac57602081850181015186830182015201610a90565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610adf6020830184610a86565b9392505050565b80356001600160a01b0381168114610afd57600080fd5b919050565b60008060408385031215610b1557600080fd5b610b1e83610ae6565b946020939093013593505050565b600080600060608486031215610b4157600080fd5b610b4a84610ae6565b9250610b5860208501610ae6565b929592945050506040919091013590565b602081526000825160806020840152610b8560a0840182610a86565b90506020840151601f19848303016040850152610ba28282610a86565b91505060ff60408501511660608401526060840151601f19848303016080850152610bcd8282610a86565b95945050505050565b600060208284031215610be857600080fd5b610adf82610ae6565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610c1857600080fd5b813567ffffffffffffffff811115610c3257610c32610bf1565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610c6157610c61610bf1565b604052818152838201602001851015610c7957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215610cac57600080fd5b843567ffffffffffffffff811115610cc357600080fd5b610ccf87828801610c07565b945050602085013567ffffffffffffffff811115610cec57600080fd5b610cf887828801610c07565b935050604085013560ff81168114610d0f57600080fd5b9150606085013567ffffffffffffffff811115610d2b57600080fd5b610d3787828801610c07565b91505092959194509250565b60008060408385031215610d5657600080fd5b610d5f83610ae6565b9150610d6d60208401610ae6565b90509250929050565b600181811c90821680610d8a57607f821691505b602082108103610daa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561062157806000526020600020601f840160051c81016020851015610dd75750805b601f840160051c820191505b818110156108a75760008155600101610de3565b815167ffffffffffffffff811115610e1157610e11610bf1565b610e2581610e1f8454610d76565b84610db0565b6020601f821160018114610e595760008315610e415750848201515b600019600385901b1c1916600184901b1784556108a7565b600084815260208120601f198516915b82811015610e895787850151825560209485019460019092019101610e69565b5084821015610ea75786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b808201808211156102f957634e487b7160e01b600052601160045260246000fdfe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a264697066735822122023a6c413dc1757c23ec545827b60ed6a546baff705514eb212fe9bef93dfd7ca64736f6c634300081c0033a2646970667358221220f1d82c145cf8e5dbf03a4ea10486d256998d03dd25f4d77cb1303034a6cf9ead64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19CDEFF1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA3180978 EQ PUSH2 0x6A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x78 CALLDATASIZE PUSH1 0x4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x164 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x90 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0xB6 SWAP2 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0xD5 PUSH1 0x0 DUP10 DUP5 PUSH2 0x1CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0xE8 DUP9 DUP11 ADD DUP11 PUSH2 0x4D0 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCDBED7AD DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x122 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x150 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP7 SWAP15 SWAP14 POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x177 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x19D SWAP2 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x20 ADD PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1C0 DUP7 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 PUSH2 0x26C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SELFBALANCE LT ISZERO PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x21C JUMPI PUSH1 0x40 MLOAD PUSH4 0x13289277 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 MLOAD PUSH1 0x20 DUP5 ADD DUP7 CREATE2 SWAP1 POP RETURNDATASIZE ISZERO NOT DUP2 ISZERO AND ISZERO PUSH2 0x23E JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x265 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB06EBF3D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 PUSH1 0x40 DUP3 ADD MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP3 DUP2 MSTORE PUSH1 0xB DUP2 ADD SWAP1 POP PUSH1 0xFF DUP2 MSTORE8 PUSH1 0x55 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFC3 DUP1 PUSH2 0x5F7 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x337 DUP9 DUP3 DUP10 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x363 DUP9 DUP3 DUP10 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x38A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B4 DUP8 DUP3 DUP9 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3FA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E2 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH2 0x415 DUP2 DUP5 PUSH1 0x20 DUP10 ADD PUSH2 0x3DF JUMP JUMPDEST DUP3 ADD DUP4 DUP6 DUP3 CALLDATACOPY PUSH1 0x0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46C JUMPI PUSH2 0x46C PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x49B JUMPI PUSH2 0x49B PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x509 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x526 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x532 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x549 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x571 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x595 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5BC PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x57D JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x5CE DUP2 DUP8 PUSH2 0x57D JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x5EB DUP2 DUP6 PUSH2 0x57D JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xFC3 CODESIZE SUB DUP1 PUSH2 0xFC3 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x59 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP2 AND CALLER OR SWAP1 SSTORE PUSH1 0x87 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF2D DUP1 PUSH2 0x96 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 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5A9B0B89 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9DC29FAC GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xCDBED7AD EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5A9B0B89 EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x16E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xACC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE02 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xB2C JUMP JUMPDEST PUSH2 0x2FF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x17C CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x323 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18B PUSH2 0x339 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xB69 JUMP JUMPDEST PUSH2 0x138 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0xBD6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x433 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x472 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0xC96 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH2 0x138 PUSH2 0x21D CALLDATASIZE PUSH1 0x4 PUSH2 0xD43 JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE03 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x261 SWAP1 PUSH2 0xD76 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 0x28D SWAP1 PUSH2 0xD76 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2DA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2AF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2DA 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 0x2BD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2F3 DUP2 DUP6 DUP6 PUSH2 0x614 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x30D DUP6 DUP3 DUP6 PUSH2 0x626 JUMP JUMPDEST PUSH2 0x318 DUP6 DUP6 DUP6 PUSH2 0x691 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x32B PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0x71D JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x367 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x37A PUSH2 0x222 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x387 PUSH2 0x433 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x398 PUSH1 0x0 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xD76 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 0x3D9 SWAP1 PUSH2 0xD76 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 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 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE04 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x261 SWAP1 PUSH2 0xD76 JUMP JUMPDEST PUSH2 0x47A PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0x753 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2F3 DUP2 DUP6 DUP6 PUSH2 0x691 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x4D8 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x4F5 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x503 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x521 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x54B JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x553 PUSH2 0x789 JUMP JUMPDEST PUSH2 0x55D DUP10 DUP10 PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP10 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH2 0x578 DUP8 DUP3 PUSH2 0xDF7 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x5BF JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE01 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x621 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x7C6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x632 DUP5 DUP5 PUSH2 0x5CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x68B JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x67C JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x68B DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x7C6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x621 DUP4 DUP4 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x335 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x77D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x335 DUP3 PUSH1 0x0 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7BC PUSH2 0x9EC JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0xA35 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x7FF JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x829 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP4 SWAP1 SSTORE DUP2 ISZERO PUSH2 0x8A7 JUMPI DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP6 PUSH1 0x40 MLOAD PUSH2 0x89E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x8EA JUMPI DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8DF SWAP2 SWAP1 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x95C SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x93D JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x97A JUMPI PUSH1 0x2 DUP2 ADD DUP1 SLOAD DUP4 SWAP1 SUB SWAP1 SSTORE PUSH2 0x999 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 ADD SWAP1 SSTORE JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x9DE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA3D PUSH2 0x9EC JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE03 PUSH2 0xA77 DUP5 DUP3 PUSH2 0xDF7 JUMP JUMPDEST POP PUSH1 0x4 DUP2 ADD PUSH2 0x68B DUP4 DUP3 PUSH2 0xDF7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAAC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xA90 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xADF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB1E DUP4 PUSH2 0xAE6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB4A DUP5 PUSH2 0xAE6 JUMP JUMPDEST SWAP3 POP PUSH2 0xB58 PUSH1 0x20 DUP6 ADD PUSH2 0xAE6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB85 PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0xBA2 DUP3 DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF PUSH1 0x40 DUP6 ADD MLOAD AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0xBCD DUP3 DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xADF DUP3 PUSH2 0xAE6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC32 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC61 JUMPI PUSH2 0xC61 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0xC79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCCF DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCF8 DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD37 DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD5F DUP4 PUSH2 0xAE6 JUMP JUMPDEST SWAP2 POP PUSH2 0xD6D PUSH1 0x20 DUP5 ADD PUSH2 0xAE6 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xD8A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDAA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x621 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0xDD7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xDE3 JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE11 JUMPI PUSH2 0xE11 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xE25 DUP2 PUSH2 0xE1F DUP5 SLOAD PUSH2 0xD76 JUMP JUMPDEST DUP5 PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0xE59 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0xE41 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xE89 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xE69 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2F9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID MSTORE 0xC6 ORIGIN SELFBALANCE 0xE1 DELEGATECALL PUSH30 0xB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE00A264697066 PUSH20 0x5822122023A6C413DC1757C23EC545827B60ED6A SLOAD PUSH12 0xAFF705514EB212FE9BEF93DF 0xD7 0xCA PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL 0xD8 0x2C EQ TLOAD 0xF8 0xE5 0xDB CREATE GASPRICE 0x4E LOG1 DIV DUP7 0xD2 JUMP SWAP10 DUP14 SUB 0xDD 0x25 DELEGATECALL 0xD7 PUSH29 0xB1303034A6CF9EAD64736F6C634300081C003300000000000000000000 ","sourceMap":"272:1589:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;630:625;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1361:32:89;;;1343:51;;1331:2;1316:18;630:625:54;;;;;;;1528:331;;;;;;:::i;:::-;;:::i;630:625::-;728:7;747:21;801:39;;;;;;;;:::i;:::-;-1:-1:-1;;801:39:54;;;;;;;;;;;;;;;;771:101;;801:39;854:8;;;;801:39;771:101;;:::i;:::-;;;;;;;;;;;;;747:125;;882:13;898:33;913:1;916:4;922:8;898:14;:33::i;:::-;882:49;-1:-1:-1;956:18:54;;;;1087:53;;;;1098:8;1087:53;:::i;:::-;942:198;;;;;;;;1172:5;-1:-1:-1;;;;;1151:38:54;;1190:4;1196:6;1204:8;1214:10;1151:74;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1243:5:54;;630:625;-1:-1:-1;;;;;;;;;;;;;;630:625:54:o;1528:331::-;1632:7;1651:21;1705:39;;;;;;;;:::i;:::-;-1:-1:-1;;1705:39:54;;;;;;;;;;;;;;;;1675:101;;1705:39;1758:8;;;;1705:39;1675:101;;:::i;:::-;;;;;;;;;;;;;1651:125;;1793:59;1816:4;1832:8;1822:19;;;;;;1843:8;1793:22;:59::i;:::-;1786:66;1528:331;-1:-1:-1;;;;;;1528:331:54:o;1210:847:34:-;1297:12;1349:6;1325:21;:30;1321:125;;;1378:57;;-1:-1:-1;;;1378:57:34;;1405:21;1378:57;;;5706:25:89;5747:18;;;5740:34;;;5679:18;;1378:57:34;;;;;;;1321:125;1459:8;:15;1478:1;1459:20;1455:80;;1502:22;;-1:-1:-1;;;1502:22:34;;;;;;;;;;;1455:80;1645:4;1634:8;1628:15;1621:4;1611:8;1607:19;1599:6;1591:59;1583:67;;1780:16;1773:24;1769:29;1762:4;1755:12;1751:48;1748:203;;;1833:4;1827:11;1876:16;1873:1;1870;1855:38;1920:16;1917:1;1910:27;1748:203;-1:-1:-1;;;;;1974:18:34;;1970:81;;2015:25;;-1:-1:-1;;;2015:25:34;;;;;;;;;;;1970:81;1210:847;;;;;:::o;2669:1794::-;2770:12;2850:4;2844:11;4069:12;4062:4;4057:3;4053:14;4046:36;4118:4;4111;4106:3;4102:14;4095:28;4148:8;4143:3;4136:21;4241:4;4236:3;4232:14;4219:27;;4352:4;4345:5;4337:20;4399:2;4382:20;;-1:-1:-1;;;;;4378:69:34;;2669:1794;-1:-1:-1;;;;2669:1794:34:o;-1:-1:-1:-;;;;;;;;:::o;14:347:89:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:89;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:826::-;465:6;473;481;489;497;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;611:23;;;-1:-1:-1;709:2:89;694:18;;681:32;736:18;725:30;;722:50;;;768:1;765;758:12;722:50;807:58;857:7;848:6;837:9;833:22;807:58;:::i;:::-;884:8;;-1:-1:-1;781:84:89;-1:-1:-1;;972:2:89;957:18;;944:32;1001:18;988:32;;985:52;;;1033:1;1030;1023:12;985:52;1072:60;1124:7;1113:8;1102:9;1098:24;1072:60;:::i;:::-;366:826;;;;-1:-1:-1;366:826:89;;-1:-1:-1;1151:8:89;;1046:86;366:826;-1:-1:-1;;;366:826:89:o;1405:705::-;1493:6;1501;1509;1517;1570:2;1558:9;1549:7;1545:23;1541:32;1538:52;;;1586:1;1583;1576:12;1538:52;1631:23;;;-1:-1:-1;1729:2:89;1714:18;;1701:32;1756:18;1745:30;;1742:50;;;1788:1;1785;1778:12;1742:50;1827:58;1877:7;1868:6;1857:9;1853:22;1827:58;:::i;:::-;1904:8;;-1:-1:-1;1801:84:89;-1:-1:-1;;1991:2:89;1976:18;;1963:32;-1:-1:-1;;;;;2026:33:89;;2014:46;;2004:74;;2074:1;2071;2064:12;2004:74;1405:705;;;;-1:-1:-1;1405:705:89;;-1:-1:-1;;1405:705:89:o;2115:250::-;2200:1;2210:113;2224:6;2221:1;2218:13;2210:113;;;2300:11;;;2294:18;2281:11;;;2274:39;2246:2;2239:10;2210:113;;;-1:-1:-1;;2357:1:89;2339:16;;2332:27;2115:250::o;2370:470::-;2555:3;2593:6;2587:13;2609:66;2668:6;2663:3;2656:4;2648:6;2644:17;2609:66;:::i;:::-;2697:16;;2750:6;2742;2697:16;2722:35;2814:1;2776:18;;2803:13;;;-1:-1:-1;2776:18:89;;2370:470;-1:-1:-1;;;2370:470:89:o;2845:127::-;2906:10;2901:3;2897:20;2894:1;2887:31;2937:4;2934:1;2927:15;2961:4;2958:1;2951:15;2977:726;3020:5;3073:3;3066:4;3058:6;3054:17;3050:27;3040:55;;3091:1;3088;3081:12;3040:55;3131:6;3118:20;3161:18;3153:6;3150:30;3147:56;;;3183:18;;:::i;:::-;3232:2;3226:9;3324:2;3286:17;;-1:-1:-1;;3282:31:89;;;3315:2;3278:40;3274:54;3262:67;;3359:18;3344:34;;3380:22;;;3341:62;3338:88;;;3406:18;;:::i;:::-;3442:2;3435:22;3466;;;3507:19;;;3528:4;3503:30;3500:39;-1:-1:-1;3497:59:89;;;3552:1;3549;3542:12;3497:59;3616:6;3609:4;3601:6;3597:17;3590:4;3582:6;3578:17;3565:58;3671:1;3643:19;;;3664:4;3639:30;3632:41;;;;3647:6;2977:726;-1:-1:-1;;;2977:726:89:o;3708:912::-;3822:6;3830;3838;3846;3899:3;3887:9;3878:7;3874:23;3870:33;3867:53;;;3916:1;3913;3906:12;3867:53;3956:9;3943:23;3989:18;3981:6;3978:30;3975:50;;;4021:1;4018;4011:12;3975:50;4044;4086:7;4077:6;4066:9;4062:22;4044:50;:::i;:::-;4034:60;;;4147:2;4136:9;4132:18;4119:32;4176:18;4166:8;4163:32;4160:52;;;4208:1;4205;4198:12;4160:52;4231;4275:7;4264:8;4253:9;4249:24;4231:52;:::i;:::-;4221:62;;;4333:2;4322:9;4318:18;4305:32;4377:4;4370:5;4366:16;4359:5;4356:27;4346:55;;4397:1;4394;4387:12;4346:55;4420:5;-1:-1:-1;4478:2:89;4463:18;;4450:32;4507:18;4494:32;;4491:52;;;4539:1;4536;4529:12;4491:52;4562;4606:7;4595:8;4584:9;4580:24;4562:52;:::i;:::-;4552:62;;;3708:912;;;;;;;:::o;4625:271::-;4667:3;4705:5;4699:12;4732:6;4727:3;4720:19;4748:76;4817:6;4810:4;4805:3;4801:14;4794:4;4787:5;4783:16;4748:76;:::i;:::-;4878:2;4857:15;-1:-1:-1;;4853:29:89;4844:39;;;;4885:4;4840:50;;4625:271;-1:-1:-1;;4625:271:89:o;4901:626::-;5170:3;5159:9;5152:22;5133:4;5197:46;5238:3;5227:9;5223:19;5215:6;5197:46;:::i;:::-;5291:9;5283:6;5279:22;5274:2;5263:9;5259:18;5252:50;5325:33;5351:6;5343;5325:33;:::i;:::-;5311:47;;5406:4;5398:6;5394:17;5389:2;5378:9;5374:18;5367:45;5460:9;5452:6;5448:22;5443:2;5432:9;5428:18;5421:50;5488:33;5514:6;5506;5488:33;:::i;:::-;5480:41;4901:626;-1:-1:-1;;;;;;;4901:626:89:o"},"methodIdentifiers":{"computeAddress(bytes32,bytes,address)":"a3180978","deploy(bytes32,bytes,bytes)":"19cdeff1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"initData\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"kind\":\"dev\",\"methods\":{\"computeAddress(bytes32,bytes,address)\":{\"details\":\"Compute address of the token contract\",\"params\":{\"deployer\":\"Address of the deployer\",\"initCode\":\"Constructor params of the token\",\"salt\":\"Salt for the contract deployment\"},\"returns\":{\"_0\":\"Calculated address of the token\"}},\"deploy(bytes32,bytes,bytes)\":{\"details\":\"Deploy new ERC20 token, must be called by tokenUtils with delegate call\",\"params\":{\"initCode\":\"constructor params of the token\",\"initData\":\"initializer params of the token\",\"salt\":\"salt for the contract deployment\"},\"returns\":{\"_0\":\"address of the deployed token\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/TokenFactories/ERC20TokenFactory.sol\":\"ERC20TokenFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/TokenFactories/ERC20TokenFactory.sol\":{\"keccak256\":\"0x9faf5037b79eebd1553c93fb515c36ba7b384c82f8b883906a61980157657f78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9e0ab8f364c11d506b3a7aadc4c627c079372fb247363a691960e1d717c581a\",\"dweb:/ipfs/QmfNaGDKXT9UqWnWcxpQ7rcgsKryRWJu9c9gcefjuTWkN8\"]},\"contracts/core/tokens/CrossChainLayerERC20.sol\":{\"keccak256\":\"0xd672630acb9000997a0b26e866fb17bc771d0a6b3ebdd2b86bfb09485f715eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3913c3681964917a34d7134b1cb1a12540dabb2d4264c9b2615d09a4c1fdef83\",\"dweb:/ipfs/QmUNf9Y5cB14GUP6wBHemyz51LdMm7KC11S1hB4bEZUjMF\"]},\"contracts/interfaces/ITokenFactory.sol\":{\"keccak256\":\"0x7d5876f09848176c3d24b4c70373f57888ce07a9a8398b34ea88ef7bf6d9459b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://748c941428a6b58fb3b4cee0a29ffcc32f3d828eada1654e430c1c25931597ca\",\"dweb:/ipfs/QmRARDh9XRMLqJrUmWKhVSVzw3aaUqD7jYkLAYrEz9PTdq\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC20.sol\":{\"keccak256\":\"0x4259d98b73075a79ec3a7587fc6632f967f930844d02de1f61d8b292b0b81852\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd61515c9c01c176b4b26130ec977d61534231b3c2222407c0c24876be5fe168\",\"dweb:/ipfs/QmPAY3EvKHhw8ziT8CKCxLepYPBwbezarX343cR69i2UUf\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/core/TokenFactories/ERC721TokenFactory.sol":{"ERC721TokenFactory":{"abi":[{"inputs":[],"name":"Create2EmptyBytecode","type":"error"},{"inputs":[],"name":"FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"address","name":"deployer","type":"address"}],"name":"computeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"initData","type":"bytes"}],"name":"deploy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506120038061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806319cdeff11461003b578063a31809781461006a575b600080fd5b61004e6100493660046102f5565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e610078366004610374565b610164565b600080604051806020016100909061029f565b601f1982820381018352601f9091011660408190526100b6919088908890602001610403565b604051602081830303815290604052905060006100d5600089846101ca565b905060008080806100e8888a018a6104d0565b9350935093509350846001600160a01b031663a523d35e858585856040518563ffffffff1660e01b815260040161012294939291906105bc565b600060405180830381600087803b15801561013c57600080fd5b505af1158015610150573d6000803e3d6000fd5b50969e9d5050505050505050505050505050565b600080604051806020016101779061029f565b601f1982820381018352601f90910116604081905261019d919087908790602001610403565b60405160208183030381529060405290506101c08682805190602001208561026c565b9695505050505050565b6000834710156101fa5760405163cf47918160e01b81524760048201526024810185905260440160405180910390fd5b815160000361021c57604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d15198115161561023e576040513d6000823e3d81fd5b6001600160a01b0381166102655760405163b06ebf3d60e01b815260040160405180910390fd5b9392505050565b6000604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b6119b98061061583390190565b60008083601f8401126102be57600080fd5b50813567ffffffffffffffff8111156102d657600080fd5b6020830191508360208285010111156102ee57600080fd5b9250929050565b60008060008060006060868803121561030d57600080fd5b85359450602086013567ffffffffffffffff81111561032b57600080fd5b610337888289016102ac565b909550935050604086013567ffffffffffffffff81111561035757600080fd5b610363888289016102ac565b969995985093965092949392505050565b6000806000806060858703121561038a57600080fd5b84359350602085013567ffffffffffffffff8111156103a857600080fd5b6103b4878288016102ac565b90945092505060408501356001600160a01b03811681146103d457600080fd5b939692955090935050565b60005b838110156103fa5781810151838201526020016103e2565b50506000910152565b600084516104158184602089016103df565b8201838582376000930192835250909392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045257600080fd5b813567ffffffffffffffff81111561046c5761046c61042b565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561049b5761049b61042b565b6040528181528382016020018510156104b357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156104e657600080fd5b843567ffffffffffffffff8111156104fd57600080fd5b61050987828801610441565b945050602085013567ffffffffffffffff81111561052657600080fd5b61053287828801610441565b935050604085013567ffffffffffffffff81111561054f57600080fd5b61055b87828801610441565b925050606085013567ffffffffffffffff81111561057857600080fd5b61058487828801610441565b91505092959194509250565b600081518084526105a88160208601602086016103df565b601f01601f19169290920160200192915050565b6080815260006105cf6080830187610590565b82810360208401526105e18187610590565b905082810360408401526105f58186610590565b905082810360608401526106098185610590565b97965050505050505056fe6080604052348015600f57600080fd5b506040516119b93803806119b9833981016040819052602c916059565b600180546001600160a01b039092166001600160a01b031992831617905560028054909116331790556087565b600060208284031215606a57600080fd5b81516001600160a01b0381168114608057600080fd5b9392505050565b611923806100966000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80636352211e116100a2578063a22cb46511610071578063a22cb46514610248578063a523d35e1461025b578063b88d4fde1461026e578063c87b56dd14610281578063e985e9c51461029457600080fd5b80636352211e146101f957806370a082311461020c5780638832e6e31461022d57806395d89b411461024057600080fd5b806323b872dd116100e957806323b872dd1461019857806342842e0e146101ab57806342966c68146101be57806355f804b3146101d15780635a9b0b89146101e457600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e6101293660046111a5565b6102a7565b60405190151581526020015b60405180910390f35b61014b6102d2565b60405161013a9190611212565b61016b610166366004611225565b610376565b6040516001600160a01b03909116815260200161013a565b61019661019136600461125a565b61038b565b005b6101966101a6366004611284565b61039a565b6101966101b9366004611284565b61042a565b6101966101cc366004611225565b61044a565b6101966101df3660046112c1565b61045e565b6101ec610473565b60405161013a9190611333565b61016b610207366004611225565b610563565b61021f61021a3660046113b1565b61056e565b60405190815260200161013a565b61019661023b366004611476565b6105ca565b61014b6105dd565b6101966102563660046114cc565b61061c565b610196610269366004611508565b610627565b61019661027c3660046115c4565b61075b565b61014b61028f366004611225565b610773565b61012e6102a2366004611613565b6107db565b60006001600160e01b0319821663c5c785b160e01b14806102cc57506102cc82610828565b92915050565b6000805160206118ce83398151915280546060919081906102f290611646565b80601f016020809104026020016040519081016040528092919081815260200182805461031e90611646565b801561036b5780601f106103405761010080835404028352916020019161036b565b820191906000526020600020905b81548152906001019060200180831161034e57829003601f168201915b505050505091505090565b600061038182610878565b506102cc826108b0565b6103968282336108ea565b5050565b6001600160a01b0382166103c957604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d68383336108f7565b9050836001600160a01b0316816001600160a01b031614610424576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103c0565b50505050565b6104458383836040518060200160405280600081525061075b565b505050565b610452610a01565b61045b81610a2e565b50565b610466610a69565b60036104458284836116c7565b61049e6040518060800160405280606081526020016060815260200160608152602001606081525090565b60405180608001604052806104b16102d2565b81526020016104be6105dd565b81526020016104cb610a94565b8152602001600080546104dd90611646565b80601f016020809104026020016040519081016040528092919081815260200182805461050990611646565b80156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b5050505050815250905090565b60006102cc82610878565b60006000805160206118ce8339815191526001600160a01b0383166105a9576040516322718ad960e21b8152600060048201526024016103c0565b6001600160a01b039092166000908152600390920160205250604090205490565b6105d2610a01565b610445838383610b26565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206118ce833981519152916102f290611646565b610396338383610b3e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561066c5750825b90506000826001600160401b031660011480156106885750303b155b905081158015610696575080155b156106b45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106de57845460ff60401b1916600160401b1785555b6106e6610a69565b6106f08989610bef565b60036106fc8882611786565b5060006107098782611786565b50831561075057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b61076684848461039a565b6104243385858585610c01565b606061077e82610878565b506000610789610a94565b905060008151116107a957604051806020016040528060008152506107d4565b806107b384610d2c565b6040516020016107c4929190611844565b6040516020818303038152906040525b9392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061085957506001600160e01b03198216635b5e139f60e01b145b806102cc57506301ffc9a760e01b6001600160e01b03198316146102cc565b60008061088483610dbe565b90506001600160a01b0381166102cc57604051637e27328960e01b8152600481018490526024016103c0565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6104458383836001610df8565b60006000805160206118ce8339815191528161091285610dbe565b90506001600160a01b0384161561092e5761092e818587610f0e565b6001600160a01b0381161561096e5761094b600086600080610df8565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b0386161561099f576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001546001600160a01b03163314610a2c57604051631a27eac360e11b815260040160405180910390fd5b565b6000610a3d60008360006108f7565b90506001600160a01b03811661039657604051637e27328960e01b8152600481018390526024016103c0565b6002546001600160a01b03163314610a2c57604051631a27eac360e11b815260040160405180910390fd5b606060038054610aa390611646565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf90611646565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b5050505050905090565b610b308383610f72565b610445336000858585610c01565b6000805160206118ce8339815191526001600160a01b038316610b7f57604051630b61174360e31b81526001600160a01b03841660048201526024016103c0565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b610bf7610fd7565b6103968282611020565b6001600160a01b0383163b15610d2557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610c43908890889087908790600401611873565b6020604051808303816000875af1925050508015610c7e575060408051601f3d908101601f19168201909252610c7b918101906118b0565b60015b610ce7573d808015610cac576040519150601f19603f3d011682016040523d82523d6000602084013e610cb1565b606091505b508051600003610cdf57604051633250574960e11b81526001600160a01b03851660048201526024016103c0565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610d2357604051633250574960e11b81526001600160a01b03851660048201526024016103c0565b505b5050505050565b60606000610d3983611051565b60010190506000816001600160401b03811115610d5857610d586113cc565b6040519080825280601f01601f191660200182016040528015610d82576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610d8c57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206118ce8339815191528180610e1b57506001600160a01b03831615155b15610edd576000610e2b85610878565b90506001600160a01b03841615801590610e575750836001600160a01b0316816001600160a01b031614155b8015610e6a5750610e6881856107db565b155b15610e935760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103c0565b8215610edb5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f19838383611129565b610445576001600160a01b038316610f4757604051637e27328960e01b8152600481018290526024016103c0565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103c0565b6001600160a01b038216610f9c57604051633250574960e11b8152600060048201526024016103c0565b6000610faa838360006108f7565b90506001600160a01b03811615610445576040516339e3563760e11b8152600060048201526024016103c0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610a2c57604051631afcd79f60e31b815260040160405180910390fd5b611028610fd7565b6000805160206118ce833981519152806110428482611786565b50600181016104248382611786565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106110905772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106110bc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106110da57662386f26fc10000830492506010015b6305f5e10083106110f2576305f5e100830492506008015b612710831061110657612710830492506004015b60648310611118576064830492506002015b600a83106102cc5760010192915050565b60006001600160a01b038316158015906111875750826001600160a01b0316846001600160a01b03161480611163575061116384846107db565b806111875750826001600160a01b031661117c836108b0565b6001600160a01b0316145b949350505050565b6001600160e01b03198116811461045b57600080fd5b6000602082840312156111b757600080fd5b81356107d48161118f565b60005b838110156111dd5781810151838201526020016111c5565b50506000910152565b600081518084526111fe8160208601602086016111c2565b601f01601f19169290920160200192915050565b6020815260006107d460208301846111e6565b60006020828403121561123757600080fd5b5035919050565b80356001600160a01b038116811461125557600080fd5b919050565b6000806040838503121561126d57600080fd5b6112768361123e565b946020939093013593505050565b60008060006060848603121561129957600080fd5b6112a28461123e565b92506112b06020850161123e565b929592945050506040919091013590565b600080602083850312156112d457600080fd5b82356001600160401b038111156112ea57600080fd5b8301601f810185136112fb57600080fd5b80356001600160401b0381111561131157600080fd5b85602082840101111561132357600080fd5b6020919091019590945092505050565b60208152600082516080602084015261134f60a08401826111e6565b90506020840151601f1984830301604085015261136c82826111e6565b9150506040840151601f1984830301606085015261138a82826111e6565b9150506060840151601f198483030160808501526113a882826111e6565b95945050505050565b6000602082840312156113c357600080fd5b6107d48261123e565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126113f357600080fd5b8135602083016000806001600160401b03841115611413576114136113cc565b50604051601f19601f85018116603f011681018181106001600160401b0382111715611441576114416113cc565b60405283815290508082840187101561145957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561148b57600080fd5b6114948461123e565b92506020840135915060408401356001600160401b038111156114b657600080fd5b6114c2868287016113e2565b9150509250925092565b600080604083850312156114df57600080fd5b6114e88361123e565b9150602083013580151581146114fd57600080fd5b809150509250929050565b6000806000806080858703121561151e57600080fd5b84356001600160401b0381111561153457600080fd5b611540878288016113e2565b94505060208501356001600160401b0381111561155c57600080fd5b611568878288016113e2565b93505060408501356001600160401b0381111561158457600080fd5b611590878288016113e2565b92505060608501356001600160401b038111156115ac57600080fd5b6115b8878288016113e2565b91505092959194509250565b600080600080608085870312156115da57600080fd5b6115e38561123e565b93506115f16020860161123e565b92506040850135915060608501356001600160401b038111156115ac57600080fd5b6000806040838503121561162657600080fd5b61162f8361123e565b915061163d6020840161123e565b90509250929050565b600181811c9082168061165a57607f821691505b60208210810361167a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561044557806000526020600020601f840160051c810160208510156116a75750805b601f840160051c820191505b81811015610d2557600081556001016116b3565b6001600160401b038311156116de576116de6113cc565b6116f2836116ec8354611646565b83611680565b6000601f841160018114611726576000851561170e5750838201355b600019600387901b1c1916600186901b178355610d25565b600083815260209020601f19861690835b828110156117575786850135825560209485019460019092019101611737565b50868210156117745760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b0381111561179f5761179f6113cc565b6117b3816117ad8454611646565b84611680565b6020601f8211600181146117e757600083156117cf5750848201515b600019600385901b1c1916600184901b178455610d25565b600084815260208120601f198516915b8281101561181757878501518255602094850194600190920191016117f7565b50848210156118355786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b600083516118568184602088016111c2565b83519083019061186a8183602088016111c2565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906118a6908301846111e6565b9695505050505050565b6000602082840312156118c257600080fd5b81516107d48161118f56fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300a264697066735822122005d67ce4f8cb4ac98e8d7edac86a6415c3f0467ec7830f8611056bfd261367e164736f6c634300081c0033a26469706673582212205aedf3061a4c49de659f7bf75763966084182c5f0baad9ea095a4f3b5c9aee8f64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2003 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19CDEFF1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA3180978 EQ PUSH2 0x6A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x78 CALLDATASIZE PUSH1 0x4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x164 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x90 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0xB6 SWAP2 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0xD5 PUSH1 0x0 DUP10 DUP5 PUSH2 0x1CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0xE8 DUP9 DUP11 ADD DUP11 PUSH2 0x4D0 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA523D35E DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x122 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5BC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x150 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP7 SWAP15 SWAP14 POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x177 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x19D SWAP2 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x20 ADD PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1C0 DUP7 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 PUSH2 0x26C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SELFBALANCE LT ISZERO PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x21C JUMPI PUSH1 0x40 MLOAD PUSH4 0x13289277 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 MLOAD PUSH1 0x20 DUP5 ADD DUP7 CREATE2 SWAP1 POP RETURNDATASIZE ISZERO NOT DUP2 ISZERO AND ISZERO PUSH2 0x23E JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x265 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB06EBF3D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 PUSH1 0x40 DUP3 ADD MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP3 DUP2 MSTORE PUSH1 0xB DUP2 ADD SWAP1 POP PUSH1 0xFF DUP2 MSTORE8 PUSH1 0x55 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x19B9 DUP1 PUSH2 0x615 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x337 DUP9 DUP3 DUP10 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x363 DUP9 DUP3 DUP10 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x38A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B4 DUP8 DUP3 DUP9 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3FA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E2 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH2 0x415 DUP2 DUP5 PUSH1 0x20 DUP10 ADD PUSH2 0x3DF JUMP JUMPDEST DUP3 ADD DUP4 DUP6 DUP3 CALLDATACOPY PUSH1 0x0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46C JUMPI PUSH2 0x46C PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x49B JUMPI PUSH2 0x49B PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x509 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x526 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x532 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x54F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55B DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x584 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x5A8 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5CF PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x590 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x5E1 DUP2 DUP8 PUSH2 0x590 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x5F5 DUP2 DUP7 PUSH2 0x590 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x609 DUP2 DUP6 PUSH2 0x590 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x19B9 CODESIZE SUB DUP1 PUSH2 0x19B9 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x59 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP2 AND CALLER OR SWAP1 SSTORE PUSH1 0x87 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1923 DUP1 PUSH2 0x96 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 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xA523D35E EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x8832E6E3 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x5A9B0B89 EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x183 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x11A5 JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1212 JUMP JUMPDEST PUSH2 0x16B PUSH2 0x166 CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x191 CALLDATASIZE PUSH1 0x4 PUSH2 0x125A JUMP JUMPDEST PUSH2 0x38B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x196 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1284 JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1284 JUMP JUMPDEST PUSH2 0x42A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1CC CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x12C1 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1EC PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1333 JUMP JUMPDEST PUSH2 0x16B PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x563 JUMP JUMPDEST PUSH2 0x21F PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x1476 JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH2 0x14B PUSH2 0x5DD JUMP JUMPDEST PUSH2 0x196 PUSH2 0x256 CALLDATASIZE PUSH1 0x4 PUSH2 0x14CC JUMP JUMPDEST PUSH2 0x61C JUMP JUMPDEST PUSH2 0x196 PUSH2 0x269 CALLDATASIZE PUSH1 0x4 PUSH2 0x1508 JUMP JUMPDEST PUSH2 0x627 JUMP JUMPDEST PUSH2 0x196 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x15C4 JUMP JUMPDEST PUSH2 0x75B JUMP JUMPDEST PUSH2 0x14B PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x773 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1613 JUMP JUMPDEST PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xC5C785B1 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2CC JUMPI POP PUSH2 0x2CC DUP3 PUSH2 0x828 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x2F2 SWAP1 PUSH2 0x1646 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 0x31E SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x36B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x340 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36B 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 0x34E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x381 DUP3 PUSH2 0x878 JUMP JUMPDEST POP PUSH2 0x2CC DUP3 PUSH2 0x8B0 JUMP JUMPDEST PUSH2 0x396 DUP3 DUP3 CALLER PUSH2 0x8EA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3D6 DUP4 DUP4 CALLER PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x75B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x452 PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x45B DUP2 PUSH2 0xA2E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x466 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x3 PUSH2 0x445 DUP3 DUP5 DUP4 PUSH2 0x16C7 JUMP JUMPDEST PUSH2 0x49E PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x4B1 PUSH2 0x2D2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4BE PUSH2 0x5DD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4CB PUSH2 0xA94 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 SLOAD PUSH2 0x4DD SWAP1 PUSH2 0x1646 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 0x509 SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x556 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x52B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x556 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 0x539 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CC DUP3 PUSH2 0x878 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x5D2 PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH2 0xB26 JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2F2 SWAP1 PUSH2 0x1646 JUMP JUMPDEST PUSH2 0x396 CALLER DUP4 DUP4 PUSH2 0xB3E JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x66C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x688 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x696 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x6B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x6DE JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x6E6 PUSH2 0xA69 JUMP JUMPDEST PUSH2 0x6F0 DUP10 DUP10 PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x3 PUSH2 0x6FC DUP9 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x709 DUP8 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x750 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x766 DUP5 DUP5 DUP5 PUSH2 0x39A JUMP JUMPDEST PUSH2 0x424 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x77E DUP3 PUSH2 0x878 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x789 PUSH2 0xA94 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x7A9 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7D4 JUMP JUMPDEST DUP1 PUSH2 0x7B3 DUP5 PUSH2 0xD2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7C4 SWAP3 SWAP2 SWAP1 PUSH2 0x1844 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x859 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x2CC JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x884 DUP4 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2CC JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xDF8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x912 DUP6 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x92E JUMPI PUSH2 0x92E DUP2 DUP6 DUP8 PUSH2 0xF0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x96E JUMPI PUSH2 0x94B PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0xDF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x99F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA3D PUSH1 0x0 DUP4 PUSH1 0x0 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x396 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0xAA3 SWAP1 PUSH2 0x1646 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 0xACF SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB1C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAF1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB1C 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 0xAFF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xB30 DUP4 DUP4 PUSH2 0xF72 JUMP JUMPDEST PUSH2 0x445 CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xB7F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH2 0xBF7 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x396 DUP3 DUP3 PUSH2 0x1020 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xD25 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xC43 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xC7E JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xC7B SWAP2 DUP2 ADD SWAP1 PUSH2 0x18B0 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xCE7 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xCAC 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 0xCB1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xCDF JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xD23 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xD39 DUP4 PUSH2 0x1051 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH2 0xD58 PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD82 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xD8C JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0xE1B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 PUSH2 0xE2B DUP6 PUSH2 0x878 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xE57 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE6A JUMPI POP PUSH2 0xE68 DUP2 DUP6 PUSH2 0x7DB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xE93 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xEDB JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xF19 DUP4 DUP4 DUP4 PUSH2 0x1129 JUMP JUMPDEST PUSH2 0x445 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFAA DUP4 DUP4 PUSH1 0x0 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x445 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1028 PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x1042 DUP5 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x424 DUP4 DUP3 PUSH2 0x1786 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x1090 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x10BC JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x10DA JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x10F2 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1106 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1118 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2CC JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1187 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1163 JUMPI POP PUSH2 0x1163 DUP5 DUP5 PUSH2 0x7DB JUMP JUMPDEST DUP1 PUSH2 0x1187 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x117C DUP4 PUSH2 0x8B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7D4 DUP2 PUSH2 0x118F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11DD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x11C5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x11FE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x11C2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x7D4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x126D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1276 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12A2 DUP5 PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH2 0x12B0 PUSH1 0x20 DUP6 ADD PUSH2 0x123E JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x12EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x12FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0x1323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x134F PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x136C DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x138A DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x13A8 DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D4 DUP3 PUSH2 0x123E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x1413 JUMPI PUSH2 0x1413 PUSH2 0x13CC JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1441 JUMPI PUSH2 0x1441 PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x1459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x148B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1494 DUP5 PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14C2 DUP7 DUP3 DUP8 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14E8 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x14FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x151E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1540 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x155C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1568 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1590 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15B8 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x123E JUMP JUMPDEST SWAP4 POP PUSH2 0x15F1 PUSH1 0x20 DUP7 ADD PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x162F DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP2 POP PUSH2 0x163D PUSH1 0x20 DUP5 ADD PUSH2 0x123E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x165A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x167A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x445 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x16A7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD25 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x16B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x16DE JUMPI PUSH2 0x16DE PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x16F2 DUP4 PUSH2 0x16EC DUP4 SLOAD PUSH2 0x1646 JUMP JUMPDEST DUP4 PUSH2 0x1680 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1726 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x170E JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1757 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1737 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x1774 JUMPI PUSH1 0x0 NOT PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x179F JUMPI PUSH2 0x179F PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x17B3 DUP2 PUSH2 0x17AD DUP5 SLOAD PUSH2 0x1646 JUMP JUMPDEST DUP5 PUSH2 0x1680 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x17E7 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x17CF JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1817 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x17F7 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x1835 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1856 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x11C2 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x186A DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x11C2 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x18A6 SWAP1 DUP4 ADD DUP5 PUSH2 0x11E6 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7D4 DUP2 PUSH2 0x118F JUMP INVALID DUP1 0xBB 0x2B PUSH4 0x8CC20BC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB0079300A264697066735822122005D67CE4F8CB BLOBBASEFEE 0xC9 DUP15 DUP14 PUSH31 0xDAC86A6415C3F0467EC7830F8611056BFD261367E164736F6C634300081C00 CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GAS 0xED RETURN MOD BYTE 0x4C BLOBHASH 0xDE PUSH6 0x9F7BF7576396 PUSH1 0x84 XOR 0x2C PUSH0 SIGNEXTEND 0xAA 0xD9 0xEA MULMOD GAS 0x4F EXTCODESIZE TLOAD SWAP11 0xEE DUP16 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"275:1601:55:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@computeAddress_16468":{"entryPoint":356,"id":16468,"parameterSlots":4,"returnSlots":1},"@computeAddress_6756":{"entryPoint":620,"id":6756,"parameterSlots":3,"returnSlots":1},"@deploy_16435":{"entryPoint":125,"id":16435,"parameterSlots":5,"returnSlots":1},"@deploy_6722":{"entryPoint":458,"id":6722,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":684,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_string":{"entryPoint":1089,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_address":{"entryPoint":884,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":757,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptr":{"entryPoint":1232,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_string":{"entryPoint":1424,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1027,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1468,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":991,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":1067,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5926:89","nodeType":"YulBlock","src":"0:5926:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"86:275:89","nodeType":"YulBlock","src":"86:275:89","statements":[{"body":{"nativeSrc":"135:16:89","nodeType":"YulBlock","src":"135:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"144:1:89","nodeType":"YulLiteral","src":"144:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"147:1:89","nodeType":"YulLiteral","src":"147:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"137:6:89","nodeType":"YulIdentifier","src":"137:6:89"},"nativeSrc":"137:12:89","nodeType":"YulFunctionCall","src":"137:12:89"},"nativeSrc":"137:12:89","nodeType":"YulExpressionStatement","src":"137:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"114:6:89","nodeType":"YulIdentifier","src":"114:6:89"},{"kind":"number","nativeSrc":"122:4:89","nodeType":"YulLiteral","src":"122:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"110:3:89","nodeType":"YulIdentifier","src":"110:3:89"},"nativeSrc":"110:17:89","nodeType":"YulFunctionCall","src":"110:17:89"},{"name":"end","nativeSrc":"129:3:89","nodeType":"YulIdentifier","src":"129:3:89"}],"functionName":{"name":"slt","nativeSrc":"106:3:89","nodeType":"YulIdentifier","src":"106:3:89"},"nativeSrc":"106:27:89","nodeType":"YulFunctionCall","src":"106:27:89"}],"functionName":{"name":"iszero","nativeSrc":"99:6:89","nodeType":"YulIdentifier","src":"99:6:89"},"nativeSrc":"99:35:89","nodeType":"YulFunctionCall","src":"99:35:89"},"nativeSrc":"96:55:89","nodeType":"YulIf","src":"96:55:89"},{"nativeSrc":"160:30:89","nodeType":"YulAssignment","src":"160:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"183:6:89","nodeType":"YulIdentifier","src":"183:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"170:12:89","nodeType":"YulIdentifier","src":"170:12:89"},"nativeSrc":"170:20:89","nodeType":"YulFunctionCall","src":"170:20:89"},"variableNames":[{"name":"length","nativeSrc":"160:6:89","nodeType":"YulIdentifier","src":"160:6:89"}]},{"body":{"nativeSrc":"233:16:89","nodeType":"YulBlock","src":"233:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"242:1:89","nodeType":"YulLiteral","src":"242:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"245:1:89","nodeType":"YulLiteral","src":"245:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"235:6:89","nodeType":"YulIdentifier","src":"235:6:89"},"nativeSrc":"235:12:89","nodeType":"YulFunctionCall","src":"235:12:89"},"nativeSrc":"235:12:89","nodeType":"YulExpressionStatement","src":"235:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"205:6:89","nodeType":"YulIdentifier","src":"205:6:89"},{"kind":"number","nativeSrc":"213:18:89","nodeType":"YulLiteral","src":"213:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"202:2:89","nodeType":"YulIdentifier","src":"202:2:89"},"nativeSrc":"202:30:89","nodeType":"YulFunctionCall","src":"202:30:89"},"nativeSrc":"199:50:89","nodeType":"YulIf","src":"199:50:89"},{"nativeSrc":"258:29:89","nodeType":"YulAssignment","src":"258:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"274:6:89","nodeType":"YulIdentifier","src":"274:6:89"},{"kind":"number","nativeSrc":"282:4:89","nodeType":"YulLiteral","src":"282:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"270:3:89","nodeType":"YulIdentifier","src":"270:3:89"},"nativeSrc":"270:17:89","nodeType":"YulFunctionCall","src":"270:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"258:8:89","nodeType":"YulIdentifier","src":"258:8:89"}]},{"body":{"nativeSrc":"339:16:89","nodeType":"YulBlock","src":"339:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"348:1:89","nodeType":"YulLiteral","src":"348:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"351:1:89","nodeType":"YulLiteral","src":"351:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"341:6:89","nodeType":"YulIdentifier","src":"341:6:89"},"nativeSrc":"341:12:89","nodeType":"YulFunctionCall","src":"341:12:89"},"nativeSrc":"341:12:89","nodeType":"YulExpressionStatement","src":"341:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"310:6:89","nodeType":"YulIdentifier","src":"310:6:89"},{"name":"length","nativeSrc":"318:6:89","nodeType":"YulIdentifier","src":"318:6:89"}],"functionName":{"name":"add","nativeSrc":"306:3:89","nodeType":"YulIdentifier","src":"306:3:89"},"nativeSrc":"306:19:89","nodeType":"YulFunctionCall","src":"306:19:89"},{"kind":"number","nativeSrc":"327:4:89","nodeType":"YulLiteral","src":"327:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"302:3:89","nodeType":"YulIdentifier","src":"302:3:89"},"nativeSrc":"302:30:89","nodeType":"YulFunctionCall","src":"302:30:89"},{"name":"end","nativeSrc":"334:3:89","nodeType":"YulIdentifier","src":"334:3:89"}],"functionName":{"name":"gt","nativeSrc":"299:2:89","nodeType":"YulIdentifier","src":"299:2:89"},"nativeSrc":"299:39:89","nodeType":"YulFunctionCall","src":"299:39:89"},"nativeSrc":"296:59:89","nodeType":"YulIf","src":"296:59:89"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"14:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"49:6:89","nodeType":"YulTypedName","src":"49:6:89","type":""},{"name":"end","nativeSrc":"57:3:89","nodeType":"YulTypedName","src":"57:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"65:8:89","nodeType":"YulTypedName","src":"65:8:89","type":""},{"name":"length","nativeSrc":"75:6:89","nodeType":"YulTypedName","src":"75:6:89","type":""}],"src":"14:347:89"},{"body":{"nativeSrc":"508:684:89","nodeType":"YulBlock","src":"508:684:89","statements":[{"body":{"nativeSrc":"554:16:89","nodeType":"YulBlock","src":"554:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:89","nodeType":"YulLiteral","src":"563:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:89","nodeType":"YulLiteral","src":"566:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:89","nodeType":"YulIdentifier","src":"556:6:89"},"nativeSrc":"556:12:89","nodeType":"YulFunctionCall","src":"556:12:89"},"nativeSrc":"556:12:89","nodeType":"YulExpressionStatement","src":"556:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"529:7:89","nodeType":"YulIdentifier","src":"529:7:89"},{"name":"headStart","nativeSrc":"538:9:89","nodeType":"YulIdentifier","src":"538:9:89"}],"functionName":{"name":"sub","nativeSrc":"525:3:89","nodeType":"YulIdentifier","src":"525:3:89"},"nativeSrc":"525:23:89","nodeType":"YulFunctionCall","src":"525:23:89"},{"kind":"number","nativeSrc":"550:2:89","nodeType":"YulLiteral","src":"550:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"521:3:89","nodeType":"YulIdentifier","src":"521:3:89"},"nativeSrc":"521:32:89","nodeType":"YulFunctionCall","src":"521:32:89"},"nativeSrc":"518:52:89","nodeType":"YulIf","src":"518:52:89"},{"nativeSrc":"579:14:89","nodeType":"YulVariableDeclaration","src":"579:14:89","value":{"kind":"number","nativeSrc":"592:1:89","nodeType":"YulLiteral","src":"592:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"583:5:89","nodeType":"YulTypedName","src":"583:5:89","type":""}]},{"nativeSrc":"602:32:89","nodeType":"YulAssignment","src":"602:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"624:9:89","nodeType":"YulIdentifier","src":"624:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"611:12:89","nodeType":"YulIdentifier","src":"611:12:89"},"nativeSrc":"611:23:89","nodeType":"YulFunctionCall","src":"611:23:89"},"variableNames":[{"name":"value","nativeSrc":"602:5:89","nodeType":"YulIdentifier","src":"602:5:89"}]},{"nativeSrc":"643:15:89","nodeType":"YulAssignment","src":"643:15:89","value":{"name":"value","nativeSrc":"653:5:89","nodeType":"YulIdentifier","src":"653:5:89"},"variableNames":[{"name":"value0","nativeSrc":"643:6:89","nodeType":"YulIdentifier","src":"643:6:89"}]},{"nativeSrc":"667:46:89","nodeType":"YulVariableDeclaration","src":"667:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"698:9:89","nodeType":"YulIdentifier","src":"698:9:89"},{"kind":"number","nativeSrc":"709:2:89","nodeType":"YulLiteral","src":"709:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"694:3:89","nodeType":"YulIdentifier","src":"694:3:89"},"nativeSrc":"694:18:89","nodeType":"YulFunctionCall","src":"694:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"681:12:89","nodeType":"YulIdentifier","src":"681:12:89"},"nativeSrc":"681:32:89","nodeType":"YulFunctionCall","src":"681:32:89"},"variables":[{"name":"offset","nativeSrc":"671:6:89","nodeType":"YulTypedName","src":"671:6:89","type":""}]},{"body":{"nativeSrc":"756:16:89","nodeType":"YulBlock","src":"756:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"765:1:89","nodeType":"YulLiteral","src":"765:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"768:1:89","nodeType":"YulLiteral","src":"768:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"758:6:89","nodeType":"YulIdentifier","src":"758:6:89"},"nativeSrc":"758:12:89","nodeType":"YulFunctionCall","src":"758:12:89"},"nativeSrc":"758:12:89","nodeType":"YulExpressionStatement","src":"758:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"728:6:89","nodeType":"YulIdentifier","src":"728:6:89"},{"kind":"number","nativeSrc":"736:18:89","nodeType":"YulLiteral","src":"736:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"725:2:89","nodeType":"YulIdentifier","src":"725:2:89"},"nativeSrc":"725:30:89","nodeType":"YulFunctionCall","src":"725:30:89"},"nativeSrc":"722:50:89","nodeType":"YulIf","src":"722:50:89"},{"nativeSrc":"781:84:89","nodeType":"YulVariableDeclaration","src":"781:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"837:9:89","nodeType":"YulIdentifier","src":"837:9:89"},{"name":"offset","nativeSrc":"848:6:89","nodeType":"YulIdentifier","src":"848:6:89"}],"functionName":{"name":"add","nativeSrc":"833:3:89","nodeType":"YulIdentifier","src":"833:3:89"},"nativeSrc":"833:22:89","nodeType":"YulFunctionCall","src":"833:22:89"},{"name":"dataEnd","nativeSrc":"857:7:89","nodeType":"YulIdentifier","src":"857:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"807:25:89","nodeType":"YulIdentifier","src":"807:25:89"},"nativeSrc":"807:58:89","nodeType":"YulFunctionCall","src":"807:58:89"},"variables":[{"name":"value1_1","nativeSrc":"785:8:89","nodeType":"YulTypedName","src":"785:8:89","type":""},{"name":"value2_1","nativeSrc":"795:8:89","nodeType":"YulTypedName","src":"795:8:89","type":""}]},{"nativeSrc":"874:18:89","nodeType":"YulAssignment","src":"874:18:89","value":{"name":"value1_1","nativeSrc":"884:8:89","nodeType":"YulIdentifier","src":"884:8:89"},"variableNames":[{"name":"value1","nativeSrc":"874:6:89","nodeType":"YulIdentifier","src":"874:6:89"}]},{"nativeSrc":"901:18:89","nodeType":"YulAssignment","src":"901:18:89","value":{"name":"value2_1","nativeSrc":"911:8:89","nodeType":"YulIdentifier","src":"911:8:89"},"variableNames":[{"name":"value2","nativeSrc":"901:6:89","nodeType":"YulIdentifier","src":"901:6:89"}]},{"nativeSrc":"928:48:89","nodeType":"YulVariableDeclaration","src":"928:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"961:9:89","nodeType":"YulIdentifier","src":"961:9:89"},{"kind":"number","nativeSrc":"972:2:89","nodeType":"YulLiteral","src":"972:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"957:3:89","nodeType":"YulIdentifier","src":"957:3:89"},"nativeSrc":"957:18:89","nodeType":"YulFunctionCall","src":"957:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"944:12:89","nodeType":"YulIdentifier","src":"944:12:89"},"nativeSrc":"944:32:89","nodeType":"YulFunctionCall","src":"944:32:89"},"variables":[{"name":"offset_1","nativeSrc":"932:8:89","nodeType":"YulTypedName","src":"932:8:89","type":""}]},{"body":{"nativeSrc":"1021:16:89","nodeType":"YulBlock","src":"1021:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1030:1:89","nodeType":"YulLiteral","src":"1030:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1033:1:89","nodeType":"YulLiteral","src":"1033:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1023:6:89","nodeType":"YulIdentifier","src":"1023:6:89"},"nativeSrc":"1023:12:89","nodeType":"YulFunctionCall","src":"1023:12:89"},"nativeSrc":"1023:12:89","nodeType":"YulExpressionStatement","src":"1023:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"991:8:89","nodeType":"YulIdentifier","src":"991:8:89"},{"kind":"number","nativeSrc":"1001:18:89","nodeType":"YulLiteral","src":"1001:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"988:2:89","nodeType":"YulIdentifier","src":"988:2:89"},"nativeSrc":"988:32:89","nodeType":"YulFunctionCall","src":"988:32:89"},"nativeSrc":"985:52:89","nodeType":"YulIf","src":"985:52:89"},{"nativeSrc":"1046:86:89","nodeType":"YulVariableDeclaration","src":"1046:86:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1102:9:89","nodeType":"YulIdentifier","src":"1102:9:89"},{"name":"offset_1","nativeSrc":"1113:8:89","nodeType":"YulIdentifier","src":"1113:8:89"}],"functionName":{"name":"add","nativeSrc":"1098:3:89","nodeType":"YulIdentifier","src":"1098:3:89"},"nativeSrc":"1098:24:89","nodeType":"YulFunctionCall","src":"1098:24:89"},{"name":"dataEnd","nativeSrc":"1124:7:89","nodeType":"YulIdentifier","src":"1124:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1072:25:89","nodeType":"YulIdentifier","src":"1072:25:89"},"nativeSrc":"1072:60:89","nodeType":"YulFunctionCall","src":"1072:60:89"},"variables":[{"name":"value3_1","nativeSrc":"1050:8:89","nodeType":"YulTypedName","src":"1050:8:89","type":""},{"name":"value4_1","nativeSrc":"1060:8:89","nodeType":"YulTypedName","src":"1060:8:89","type":""}]},{"nativeSrc":"1141:18:89","nodeType":"YulAssignment","src":"1141:18:89","value":{"name":"value3_1","nativeSrc":"1151:8:89","nodeType":"YulIdentifier","src":"1151:8:89"},"variableNames":[{"name":"value3","nativeSrc":"1141:6:89","nodeType":"YulIdentifier","src":"1141:6:89"}]},{"nativeSrc":"1168:18:89","nodeType":"YulAssignment","src":"1168:18:89","value":{"name":"value4_1","nativeSrc":"1178:8:89","nodeType":"YulIdentifier","src":"1178:8:89"},"variableNames":[{"name":"value4","nativeSrc":"1168:6:89","nodeType":"YulIdentifier","src":"1168:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"366:826:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"442:9:89","nodeType":"YulTypedName","src":"442:9:89","type":""},{"name":"dataEnd","nativeSrc":"453:7:89","nodeType":"YulTypedName","src":"453:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"465:6:89","nodeType":"YulTypedName","src":"465:6:89","type":""},{"name":"value1","nativeSrc":"473:6:89","nodeType":"YulTypedName","src":"473:6:89","type":""},{"name":"value2","nativeSrc":"481:6:89","nodeType":"YulTypedName","src":"481:6:89","type":""},{"name":"value3","nativeSrc":"489:6:89","nodeType":"YulTypedName","src":"489:6:89","type":""},{"name":"value4","nativeSrc":"497:6:89","nodeType":"YulTypedName","src":"497:6:89","type":""}],"src":"366:826:89"},{"body":{"nativeSrc":"1298:102:89","nodeType":"YulBlock","src":"1298:102:89","statements":[{"nativeSrc":"1308:26:89","nodeType":"YulAssignment","src":"1308:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1320:9:89","nodeType":"YulIdentifier","src":"1320:9:89"},{"kind":"number","nativeSrc":"1331:2:89","nodeType":"YulLiteral","src":"1331:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1316:3:89","nodeType":"YulIdentifier","src":"1316:3:89"},"nativeSrc":"1316:18:89","nodeType":"YulFunctionCall","src":"1316:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1308:4:89","nodeType":"YulIdentifier","src":"1308:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1350:9:89","nodeType":"YulIdentifier","src":"1350:9:89"},{"arguments":[{"name":"value0","nativeSrc":"1365:6:89","nodeType":"YulIdentifier","src":"1365:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1381:3:89","nodeType":"YulLiteral","src":"1381:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1386:1:89","nodeType":"YulLiteral","src":"1386:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1377:3:89","nodeType":"YulIdentifier","src":"1377:3:89"},"nativeSrc":"1377:11:89","nodeType":"YulFunctionCall","src":"1377:11:89"},{"kind":"number","nativeSrc":"1390:1:89","nodeType":"YulLiteral","src":"1390:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1373:3:89","nodeType":"YulIdentifier","src":"1373:3:89"},"nativeSrc":"1373:19:89","nodeType":"YulFunctionCall","src":"1373:19:89"}],"functionName":{"name":"and","nativeSrc":"1361:3:89","nodeType":"YulIdentifier","src":"1361:3:89"},"nativeSrc":"1361:32:89","nodeType":"YulFunctionCall","src":"1361:32:89"}],"functionName":{"name":"mstore","nativeSrc":"1343:6:89","nodeType":"YulIdentifier","src":"1343:6:89"},"nativeSrc":"1343:51:89","nodeType":"YulFunctionCall","src":"1343:51:89"},"nativeSrc":"1343:51:89","nodeType":"YulExpressionStatement","src":"1343:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1197:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1267:9:89","nodeType":"YulTypedName","src":"1267:9:89","type":""},{"name":"value0","nativeSrc":"1278:6:89","nodeType":"YulTypedName","src":"1278:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1289:4:89","nodeType":"YulTypedName","src":"1289:4:89","type":""}],"src":"1197:203:89"},{"body":{"nativeSrc":"1528:582:89","nodeType":"YulBlock","src":"1528:582:89","statements":[{"body":{"nativeSrc":"1574:16:89","nodeType":"YulBlock","src":"1574:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1583:1:89","nodeType":"YulLiteral","src":"1583:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1586:1:89","nodeType":"YulLiteral","src":"1586:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1576:6:89","nodeType":"YulIdentifier","src":"1576:6:89"},"nativeSrc":"1576:12:89","nodeType":"YulFunctionCall","src":"1576:12:89"},"nativeSrc":"1576:12:89","nodeType":"YulExpressionStatement","src":"1576:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1549:7:89","nodeType":"YulIdentifier","src":"1549:7:89"},{"name":"headStart","nativeSrc":"1558:9:89","nodeType":"YulIdentifier","src":"1558:9:89"}],"functionName":{"name":"sub","nativeSrc":"1545:3:89","nodeType":"YulIdentifier","src":"1545:3:89"},"nativeSrc":"1545:23:89","nodeType":"YulFunctionCall","src":"1545:23:89"},{"kind":"number","nativeSrc":"1570:2:89","nodeType":"YulLiteral","src":"1570:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1541:3:89","nodeType":"YulIdentifier","src":"1541:3:89"},"nativeSrc":"1541:32:89","nodeType":"YulFunctionCall","src":"1541:32:89"},"nativeSrc":"1538:52:89","nodeType":"YulIf","src":"1538:52:89"},{"nativeSrc":"1599:14:89","nodeType":"YulVariableDeclaration","src":"1599:14:89","value":{"kind":"number","nativeSrc":"1612:1:89","nodeType":"YulLiteral","src":"1612:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1603:5:89","nodeType":"YulTypedName","src":"1603:5:89","type":""}]},{"nativeSrc":"1622:32:89","nodeType":"YulAssignment","src":"1622:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1644:9:89","nodeType":"YulIdentifier","src":"1644:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1631:12:89","nodeType":"YulIdentifier","src":"1631:12:89"},"nativeSrc":"1631:23:89","nodeType":"YulFunctionCall","src":"1631:23:89"},"variableNames":[{"name":"value","nativeSrc":"1622:5:89","nodeType":"YulIdentifier","src":"1622:5:89"}]},{"nativeSrc":"1663:15:89","nodeType":"YulAssignment","src":"1663:15:89","value":{"name":"value","nativeSrc":"1673:5:89","nodeType":"YulIdentifier","src":"1673:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1663:6:89","nodeType":"YulIdentifier","src":"1663:6:89"}]},{"nativeSrc":"1687:46:89","nodeType":"YulVariableDeclaration","src":"1687:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1718:9:89","nodeType":"YulIdentifier","src":"1718:9:89"},{"kind":"number","nativeSrc":"1729:2:89","nodeType":"YulLiteral","src":"1729:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1714:3:89","nodeType":"YulIdentifier","src":"1714:3:89"},"nativeSrc":"1714:18:89","nodeType":"YulFunctionCall","src":"1714:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1701:12:89","nodeType":"YulIdentifier","src":"1701:12:89"},"nativeSrc":"1701:32:89","nodeType":"YulFunctionCall","src":"1701:32:89"},"variables":[{"name":"offset","nativeSrc":"1691:6:89","nodeType":"YulTypedName","src":"1691:6:89","type":""}]},{"body":{"nativeSrc":"1776:16:89","nodeType":"YulBlock","src":"1776:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1785:1:89","nodeType":"YulLiteral","src":"1785:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1788:1:89","nodeType":"YulLiteral","src":"1788:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1778:6:89","nodeType":"YulIdentifier","src":"1778:6:89"},"nativeSrc":"1778:12:89","nodeType":"YulFunctionCall","src":"1778:12:89"},"nativeSrc":"1778:12:89","nodeType":"YulExpressionStatement","src":"1778:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1748:6:89","nodeType":"YulIdentifier","src":"1748:6:89"},{"kind":"number","nativeSrc":"1756:18:89","nodeType":"YulLiteral","src":"1756:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1745:2:89","nodeType":"YulIdentifier","src":"1745:2:89"},"nativeSrc":"1745:30:89","nodeType":"YulFunctionCall","src":"1745:30:89"},"nativeSrc":"1742:50:89","nodeType":"YulIf","src":"1742:50:89"},{"nativeSrc":"1801:84:89","nodeType":"YulVariableDeclaration","src":"1801:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1857:9:89","nodeType":"YulIdentifier","src":"1857:9:89"},{"name":"offset","nativeSrc":"1868:6:89","nodeType":"YulIdentifier","src":"1868:6:89"}],"functionName":{"name":"add","nativeSrc":"1853:3:89","nodeType":"YulIdentifier","src":"1853:3:89"},"nativeSrc":"1853:22:89","nodeType":"YulFunctionCall","src":"1853:22:89"},{"name":"dataEnd","nativeSrc":"1877:7:89","nodeType":"YulIdentifier","src":"1877:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1827:25:89","nodeType":"YulIdentifier","src":"1827:25:89"},"nativeSrc":"1827:58:89","nodeType":"YulFunctionCall","src":"1827:58:89"},"variables":[{"name":"value1_1","nativeSrc":"1805:8:89","nodeType":"YulTypedName","src":"1805:8:89","type":""},{"name":"value2_1","nativeSrc":"1815:8:89","nodeType":"YulTypedName","src":"1815:8:89","type":""}]},{"nativeSrc":"1894:18:89","nodeType":"YulAssignment","src":"1894:18:89","value":{"name":"value1_1","nativeSrc":"1904:8:89","nodeType":"YulIdentifier","src":"1904:8:89"},"variableNames":[{"name":"value1","nativeSrc":"1894:6:89","nodeType":"YulIdentifier","src":"1894:6:89"}]},{"nativeSrc":"1921:18:89","nodeType":"YulAssignment","src":"1921:18:89","value":{"name":"value2_1","nativeSrc":"1931:8:89","nodeType":"YulIdentifier","src":"1931:8:89"},"variableNames":[{"name":"value2","nativeSrc":"1921:6:89","nodeType":"YulIdentifier","src":"1921:6:89"}]},{"nativeSrc":"1948:47:89","nodeType":"YulVariableDeclaration","src":"1948:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1980:9:89","nodeType":"YulIdentifier","src":"1980:9:89"},{"kind":"number","nativeSrc":"1991:2:89","nodeType":"YulLiteral","src":"1991:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1976:3:89","nodeType":"YulIdentifier","src":"1976:3:89"},"nativeSrc":"1976:18:89","nodeType":"YulFunctionCall","src":"1976:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1963:12:89","nodeType":"YulIdentifier","src":"1963:12:89"},"nativeSrc":"1963:32:89","nodeType":"YulFunctionCall","src":"1963:32:89"},"variables":[{"name":"value_1","nativeSrc":"1952:7:89","nodeType":"YulTypedName","src":"1952:7:89","type":""}]},{"body":{"nativeSrc":"2062:16:89","nodeType":"YulBlock","src":"2062:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2071:1:89","nodeType":"YulLiteral","src":"2071:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2074:1:89","nodeType":"YulLiteral","src":"2074:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2064:6:89","nodeType":"YulIdentifier","src":"2064:6:89"},"nativeSrc":"2064:12:89","nodeType":"YulFunctionCall","src":"2064:12:89"},"nativeSrc":"2064:12:89","nodeType":"YulExpressionStatement","src":"2064:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"2017:7:89","nodeType":"YulIdentifier","src":"2017:7:89"},{"arguments":[{"name":"value_1","nativeSrc":"2030:7:89","nodeType":"YulIdentifier","src":"2030:7:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2047:3:89","nodeType":"YulLiteral","src":"2047:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"2052:1:89","nodeType":"YulLiteral","src":"2052:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2043:3:89","nodeType":"YulIdentifier","src":"2043:3:89"},"nativeSrc":"2043:11:89","nodeType":"YulFunctionCall","src":"2043:11:89"},{"kind":"number","nativeSrc":"2056:1:89","nodeType":"YulLiteral","src":"2056:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2039:3:89","nodeType":"YulIdentifier","src":"2039:3:89"},"nativeSrc":"2039:19:89","nodeType":"YulFunctionCall","src":"2039:19:89"}],"functionName":{"name":"and","nativeSrc":"2026:3:89","nodeType":"YulIdentifier","src":"2026:3:89"},"nativeSrc":"2026:33:89","nodeType":"YulFunctionCall","src":"2026:33:89"}],"functionName":{"name":"eq","nativeSrc":"2014:2:89","nodeType":"YulIdentifier","src":"2014:2:89"},"nativeSrc":"2014:46:89","nodeType":"YulFunctionCall","src":"2014:46:89"}],"functionName":{"name":"iszero","nativeSrc":"2007:6:89","nodeType":"YulIdentifier","src":"2007:6:89"},"nativeSrc":"2007:54:89","nodeType":"YulFunctionCall","src":"2007:54:89"},"nativeSrc":"2004:74:89","nodeType":"YulIf","src":"2004:74:89"},{"nativeSrc":"2087:17:89","nodeType":"YulAssignment","src":"2087:17:89","value":{"name":"value_1","nativeSrc":"2097:7:89","nodeType":"YulIdentifier","src":"2097:7:89"},"variableNames":[{"name":"value3","nativeSrc":"2087:6:89","nodeType":"YulIdentifier","src":"2087:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_address","nativeSrc":"1405:705:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1470:9:89","nodeType":"YulTypedName","src":"1470:9:89","type":""},{"name":"dataEnd","nativeSrc":"1481:7:89","nodeType":"YulTypedName","src":"1481:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1493:6:89","nodeType":"YulTypedName","src":"1493:6:89","type":""},{"name":"value1","nativeSrc":"1501:6:89","nodeType":"YulTypedName","src":"1501:6:89","type":""},{"name":"value2","nativeSrc":"1509:6:89","nodeType":"YulTypedName","src":"1509:6:89","type":""},{"name":"value3","nativeSrc":"1517:6:89","nodeType":"YulTypedName","src":"1517:6:89","type":""}],"src":"1405:705:89"},{"body":{"nativeSrc":"2181:184:89","nodeType":"YulBlock","src":"2181:184:89","statements":[{"nativeSrc":"2191:10:89","nodeType":"YulVariableDeclaration","src":"2191:10:89","value":{"kind":"number","nativeSrc":"2200:1:89","nodeType":"YulLiteral","src":"2200:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2195:1:89","nodeType":"YulTypedName","src":"2195:1:89","type":""}]},{"body":{"nativeSrc":"2260:63:89","nodeType":"YulBlock","src":"2260:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2285:3:89","nodeType":"YulIdentifier","src":"2285:3:89"},{"name":"i","nativeSrc":"2290:1:89","nodeType":"YulIdentifier","src":"2290:1:89"}],"functionName":{"name":"add","nativeSrc":"2281:3:89","nodeType":"YulIdentifier","src":"2281:3:89"},"nativeSrc":"2281:11:89","nodeType":"YulFunctionCall","src":"2281:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2304:3:89","nodeType":"YulIdentifier","src":"2304:3:89"},{"name":"i","nativeSrc":"2309:1:89","nodeType":"YulIdentifier","src":"2309:1:89"}],"functionName":{"name":"add","nativeSrc":"2300:3:89","nodeType":"YulIdentifier","src":"2300:3:89"},"nativeSrc":"2300:11:89","nodeType":"YulFunctionCall","src":"2300:11:89"}],"functionName":{"name":"mload","nativeSrc":"2294:5:89","nodeType":"YulIdentifier","src":"2294:5:89"},"nativeSrc":"2294:18:89","nodeType":"YulFunctionCall","src":"2294:18:89"}],"functionName":{"name":"mstore","nativeSrc":"2274:6:89","nodeType":"YulIdentifier","src":"2274:6:89"},"nativeSrc":"2274:39:89","nodeType":"YulFunctionCall","src":"2274:39:89"},"nativeSrc":"2274:39:89","nodeType":"YulExpressionStatement","src":"2274:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2221:1:89","nodeType":"YulIdentifier","src":"2221:1:89"},{"name":"length","nativeSrc":"2224:6:89","nodeType":"YulIdentifier","src":"2224:6:89"}],"functionName":{"name":"lt","nativeSrc":"2218:2:89","nodeType":"YulIdentifier","src":"2218:2:89"},"nativeSrc":"2218:13:89","nodeType":"YulFunctionCall","src":"2218:13:89"},"nativeSrc":"2210:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"2232:19:89","nodeType":"YulBlock","src":"2232:19:89","statements":[{"nativeSrc":"2234:15:89","nodeType":"YulAssignment","src":"2234:15:89","value":{"arguments":[{"name":"i","nativeSrc":"2243:1:89","nodeType":"YulIdentifier","src":"2243:1:89"},{"kind":"number","nativeSrc":"2246:2:89","nodeType":"YulLiteral","src":"2246:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2239:3:89","nodeType":"YulIdentifier","src":"2239:3:89"},"nativeSrc":"2239:10:89","nodeType":"YulFunctionCall","src":"2239:10:89"},"variableNames":[{"name":"i","nativeSrc":"2234:1:89","nodeType":"YulIdentifier","src":"2234:1:89"}]}]},"pre":{"nativeSrc":"2214:3:89","nodeType":"YulBlock","src":"2214:3:89","statements":[]},"src":"2210:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2343:3:89","nodeType":"YulIdentifier","src":"2343:3:89"},{"name":"length","nativeSrc":"2348:6:89","nodeType":"YulIdentifier","src":"2348:6:89"}],"functionName":{"name":"add","nativeSrc":"2339:3:89","nodeType":"YulIdentifier","src":"2339:3:89"},"nativeSrc":"2339:16:89","nodeType":"YulFunctionCall","src":"2339:16:89"},{"kind":"number","nativeSrc":"2357:1:89","nodeType":"YulLiteral","src":"2357:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2332:6:89","nodeType":"YulIdentifier","src":"2332:6:89"},"nativeSrc":"2332:27:89","nodeType":"YulFunctionCall","src":"2332:27:89"},"nativeSrc":"2332:27:89","nodeType":"YulExpressionStatement","src":"2332:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2115:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2159:3:89","nodeType":"YulTypedName","src":"2159:3:89","type":""},{"name":"dst","nativeSrc":"2164:3:89","nodeType":"YulTypedName","src":"2164:3:89","type":""},{"name":"length","nativeSrc":"2169:6:89","nodeType":"YulTypedName","src":"2169:6:89","type":""}],"src":"2115:250:89"},{"body":{"nativeSrc":"2563:277:89","nodeType":"YulBlock","src":"2563:277:89","statements":[{"nativeSrc":"2573:27:89","nodeType":"YulVariableDeclaration","src":"2573:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"2593:6:89","nodeType":"YulIdentifier","src":"2593:6:89"}],"functionName":{"name":"mload","nativeSrc":"2587:5:89","nodeType":"YulIdentifier","src":"2587:5:89"},"nativeSrc":"2587:13:89","nodeType":"YulFunctionCall","src":"2587:13:89"},"variables":[{"name":"length","nativeSrc":"2577:6:89","nodeType":"YulTypedName","src":"2577:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2648:6:89","nodeType":"YulIdentifier","src":"2648:6:89"},{"kind":"number","nativeSrc":"2656:4:89","nodeType":"YulLiteral","src":"2656:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2644:3:89","nodeType":"YulIdentifier","src":"2644:3:89"},"nativeSrc":"2644:17:89","nodeType":"YulFunctionCall","src":"2644:17:89"},{"name":"pos","nativeSrc":"2663:3:89","nodeType":"YulIdentifier","src":"2663:3:89"},{"name":"length","nativeSrc":"2668:6:89","nodeType":"YulIdentifier","src":"2668:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2609:34:89","nodeType":"YulIdentifier","src":"2609:34:89"},"nativeSrc":"2609:66:89","nodeType":"YulFunctionCall","src":"2609:66:89"},"nativeSrc":"2609:66:89","nodeType":"YulExpressionStatement","src":"2609:66:89"},{"nativeSrc":"2684:29:89","nodeType":"YulVariableDeclaration","src":"2684:29:89","value":{"arguments":[{"name":"pos","nativeSrc":"2701:3:89","nodeType":"YulIdentifier","src":"2701:3:89"},{"name":"length","nativeSrc":"2706:6:89","nodeType":"YulIdentifier","src":"2706:6:89"}],"functionName":{"name":"add","nativeSrc":"2697:3:89","nodeType":"YulIdentifier","src":"2697:3:89"},"nativeSrc":"2697:16:89","nodeType":"YulFunctionCall","src":"2697:16:89"},"variables":[{"name":"end_1","nativeSrc":"2688:5:89","nodeType":"YulTypedName","src":"2688:5:89","type":""}]},{"expression":{"arguments":[{"name":"end_1","nativeSrc":"2735:5:89","nodeType":"YulIdentifier","src":"2735:5:89"},{"name":"value1","nativeSrc":"2742:6:89","nodeType":"YulIdentifier","src":"2742:6:89"},{"name":"value2","nativeSrc":"2750:6:89","nodeType":"YulIdentifier","src":"2750:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"2722:12:89","nodeType":"YulIdentifier","src":"2722:12:89"},"nativeSrc":"2722:35:89","nodeType":"YulFunctionCall","src":"2722:35:89"},"nativeSrc":"2722:35:89","nodeType":"YulExpressionStatement","src":"2722:35:89"},{"nativeSrc":"2766:28:89","nodeType":"YulVariableDeclaration","src":"2766:28:89","value":{"arguments":[{"name":"end_1","nativeSrc":"2780:5:89","nodeType":"YulIdentifier","src":"2780:5:89"},{"name":"value2","nativeSrc":"2787:6:89","nodeType":"YulIdentifier","src":"2787:6:89"}],"functionName":{"name":"add","nativeSrc":"2776:3:89","nodeType":"YulIdentifier","src":"2776:3:89"},"nativeSrc":"2776:18:89","nodeType":"YulFunctionCall","src":"2776:18:89"},"variables":[{"name":"_1","nativeSrc":"2770:2:89","nodeType":"YulTypedName","src":"2770:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"2810:2:89","nodeType":"YulIdentifier","src":"2810:2:89"},{"kind":"number","nativeSrc":"2814:1:89","nodeType":"YulLiteral","src":"2814:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2803:6:89","nodeType":"YulIdentifier","src":"2803:6:89"},"nativeSrc":"2803:13:89","nodeType":"YulFunctionCall","src":"2803:13:89"},"nativeSrc":"2803:13:89","nodeType":"YulExpressionStatement","src":"2803:13:89"},{"nativeSrc":"2825:9:89","nodeType":"YulAssignment","src":"2825:9:89","value":{"name":"_1","nativeSrc":"2832:2:89","nodeType":"YulIdentifier","src":"2832:2:89"},"variableNames":[{"name":"end","nativeSrc":"2825:3:89","nodeType":"YulIdentifier","src":"2825:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"2370:470:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2523:3:89","nodeType":"YulTypedName","src":"2523:3:89","type":""},{"name":"value2","nativeSrc":"2528:6:89","nodeType":"YulTypedName","src":"2528:6:89","type":""},{"name":"value1","nativeSrc":"2536:6:89","nodeType":"YulTypedName","src":"2536:6:89","type":""},{"name":"value0","nativeSrc":"2544:6:89","nodeType":"YulTypedName","src":"2544:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2555:3:89","nodeType":"YulTypedName","src":"2555:3:89","type":""}],"src":"2370:470:89"},{"body":{"nativeSrc":"2877:95:89","nodeType":"YulBlock","src":"2877:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2894:1:89","nodeType":"YulLiteral","src":"2894:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2901:3:89","nodeType":"YulLiteral","src":"2901:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"2906:10:89","nodeType":"YulLiteral","src":"2906:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2897:3:89","nodeType":"YulIdentifier","src":"2897:3:89"},"nativeSrc":"2897:20:89","nodeType":"YulFunctionCall","src":"2897:20:89"}],"functionName":{"name":"mstore","nativeSrc":"2887:6:89","nodeType":"YulIdentifier","src":"2887:6:89"},"nativeSrc":"2887:31:89","nodeType":"YulFunctionCall","src":"2887:31:89"},"nativeSrc":"2887:31:89","nodeType":"YulExpressionStatement","src":"2887:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2934:1:89","nodeType":"YulLiteral","src":"2934:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"2937:4:89","nodeType":"YulLiteral","src":"2937:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2927:6:89","nodeType":"YulIdentifier","src":"2927:6:89"},"nativeSrc":"2927:15:89","nodeType":"YulFunctionCall","src":"2927:15:89"},"nativeSrc":"2927:15:89","nodeType":"YulExpressionStatement","src":"2927:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:89","nodeType":"YulLiteral","src":"2958:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2961:4:89","nodeType":"YulLiteral","src":"2961:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2951:6:89","nodeType":"YulIdentifier","src":"2951:6:89"},"nativeSrc":"2951:15:89","nodeType":"YulFunctionCall","src":"2951:15:89"},"nativeSrc":"2951:15:89","nodeType":"YulExpressionStatement","src":"2951:15:89"}]},"name":"panic_error_0x41","nativeSrc":"2845:127:89","nodeType":"YulFunctionDefinition","src":"2845:127:89"},{"body":{"nativeSrc":"3030:673:89","nodeType":"YulBlock","src":"3030:673:89","statements":[{"body":{"nativeSrc":"3079:16:89","nodeType":"YulBlock","src":"3079:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3088:1:89","nodeType":"YulLiteral","src":"3088:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3091:1:89","nodeType":"YulLiteral","src":"3091:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3081:6:89","nodeType":"YulIdentifier","src":"3081:6:89"},"nativeSrc":"3081:12:89","nodeType":"YulFunctionCall","src":"3081:12:89"},"nativeSrc":"3081:12:89","nodeType":"YulExpressionStatement","src":"3081:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3058:6:89","nodeType":"YulIdentifier","src":"3058:6:89"},{"kind":"number","nativeSrc":"3066:4:89","nodeType":"YulLiteral","src":"3066:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3054:3:89","nodeType":"YulIdentifier","src":"3054:3:89"},"nativeSrc":"3054:17:89","nodeType":"YulFunctionCall","src":"3054:17:89"},{"name":"end","nativeSrc":"3073:3:89","nodeType":"YulIdentifier","src":"3073:3:89"}],"functionName":{"name":"slt","nativeSrc":"3050:3:89","nodeType":"YulIdentifier","src":"3050:3:89"},"nativeSrc":"3050:27:89","nodeType":"YulFunctionCall","src":"3050:27:89"}],"functionName":{"name":"iszero","nativeSrc":"3043:6:89","nodeType":"YulIdentifier","src":"3043:6:89"},"nativeSrc":"3043:35:89","nodeType":"YulFunctionCall","src":"3043:35:89"},"nativeSrc":"3040:55:89","nodeType":"YulIf","src":"3040:55:89"},{"nativeSrc":"3104:34:89","nodeType":"YulVariableDeclaration","src":"3104:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"3131:6:89","nodeType":"YulIdentifier","src":"3131:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"3118:12:89","nodeType":"YulIdentifier","src":"3118:12:89"},"nativeSrc":"3118:20:89","nodeType":"YulFunctionCall","src":"3118:20:89"},"variables":[{"name":"length","nativeSrc":"3108:6:89","nodeType":"YulTypedName","src":"3108:6:89","type":""}]},{"body":{"nativeSrc":"3181:22:89","nodeType":"YulBlock","src":"3181:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3183:16:89","nodeType":"YulIdentifier","src":"3183:16:89"},"nativeSrc":"3183:18:89","nodeType":"YulFunctionCall","src":"3183:18:89"},"nativeSrc":"3183:18:89","nodeType":"YulExpressionStatement","src":"3183:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3153:6:89","nodeType":"YulIdentifier","src":"3153:6:89"},{"kind":"number","nativeSrc":"3161:18:89","nodeType":"YulLiteral","src":"3161:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3150:2:89","nodeType":"YulIdentifier","src":"3150:2:89"},"nativeSrc":"3150:30:89","nodeType":"YulFunctionCall","src":"3150:30:89"},"nativeSrc":"3147:56:89","nodeType":"YulIf","src":"3147:56:89"},{"nativeSrc":"3212:23:89","nodeType":"YulVariableDeclaration","src":"3212:23:89","value":{"arguments":[{"kind":"number","nativeSrc":"3232:2:89","nodeType":"YulLiteral","src":"3232:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"3226:5:89","nodeType":"YulIdentifier","src":"3226:5:89"},"nativeSrc":"3226:9:89","nodeType":"YulFunctionCall","src":"3226:9:89"},"variables":[{"name":"memPtr","nativeSrc":"3216:6:89","nodeType":"YulTypedName","src":"3216:6:89","type":""}]},{"nativeSrc":"3244:85:89","nodeType":"YulVariableDeclaration","src":"3244:85:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"3266:6:89","nodeType":"YulIdentifier","src":"3266:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3290:6:89","nodeType":"YulIdentifier","src":"3290:6:89"},{"kind":"number","nativeSrc":"3298:4:89","nodeType":"YulLiteral","src":"3298:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3286:3:89","nodeType":"YulIdentifier","src":"3286:3:89"},"nativeSrc":"3286:17:89","nodeType":"YulFunctionCall","src":"3286:17:89"},{"arguments":[{"kind":"number","nativeSrc":"3309:2:89","nodeType":"YulLiteral","src":"3309:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3305:3:89","nodeType":"YulIdentifier","src":"3305:3:89"},"nativeSrc":"3305:7:89","nodeType":"YulFunctionCall","src":"3305:7:89"}],"functionName":{"name":"and","nativeSrc":"3282:3:89","nodeType":"YulIdentifier","src":"3282:3:89"},"nativeSrc":"3282:31:89","nodeType":"YulFunctionCall","src":"3282:31:89"},{"kind":"number","nativeSrc":"3315:2:89","nodeType":"YulLiteral","src":"3315:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"3278:3:89","nodeType":"YulIdentifier","src":"3278:3:89"},"nativeSrc":"3278:40:89","nodeType":"YulFunctionCall","src":"3278:40:89"},{"arguments":[{"kind":"number","nativeSrc":"3324:2:89","nodeType":"YulLiteral","src":"3324:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3320:3:89","nodeType":"YulIdentifier","src":"3320:3:89"},"nativeSrc":"3320:7:89","nodeType":"YulFunctionCall","src":"3320:7:89"}],"functionName":{"name":"and","nativeSrc":"3274:3:89","nodeType":"YulIdentifier","src":"3274:3:89"},"nativeSrc":"3274:54:89","nodeType":"YulFunctionCall","src":"3274:54:89"}],"functionName":{"name":"add","nativeSrc":"3262:3:89","nodeType":"YulIdentifier","src":"3262:3:89"},"nativeSrc":"3262:67:89","nodeType":"YulFunctionCall","src":"3262:67:89"},"variables":[{"name":"newFreePtr","nativeSrc":"3248:10:89","nodeType":"YulTypedName","src":"3248:10:89","type":""}]},{"body":{"nativeSrc":"3404:22:89","nodeType":"YulBlock","src":"3404:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3406:16:89","nodeType":"YulIdentifier","src":"3406:16:89"},"nativeSrc":"3406:18:89","nodeType":"YulFunctionCall","src":"3406:18:89"},"nativeSrc":"3406:18:89","nodeType":"YulExpressionStatement","src":"3406:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3347:10:89","nodeType":"YulIdentifier","src":"3347:10:89"},{"kind":"number","nativeSrc":"3359:18:89","nodeType":"YulLiteral","src":"3359:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3344:2:89","nodeType":"YulIdentifier","src":"3344:2:89"},"nativeSrc":"3344:34:89","nodeType":"YulFunctionCall","src":"3344:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3383:10:89","nodeType":"YulIdentifier","src":"3383:10:89"},{"name":"memPtr","nativeSrc":"3395:6:89","nodeType":"YulIdentifier","src":"3395:6:89"}],"functionName":{"name":"lt","nativeSrc":"3380:2:89","nodeType":"YulIdentifier","src":"3380:2:89"},"nativeSrc":"3380:22:89","nodeType":"YulFunctionCall","src":"3380:22:89"}],"functionName":{"name":"or","nativeSrc":"3341:2:89","nodeType":"YulIdentifier","src":"3341:2:89"},"nativeSrc":"3341:62:89","nodeType":"YulFunctionCall","src":"3341:62:89"},"nativeSrc":"3338:88:89","nodeType":"YulIf","src":"3338:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3442:2:89","nodeType":"YulLiteral","src":"3442:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3446:10:89","nodeType":"YulIdentifier","src":"3446:10:89"}],"functionName":{"name":"mstore","nativeSrc":"3435:6:89","nodeType":"YulIdentifier","src":"3435:6:89"},"nativeSrc":"3435:22:89","nodeType":"YulFunctionCall","src":"3435:22:89"},"nativeSrc":"3435:22:89","nodeType":"YulExpressionStatement","src":"3435:22:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3473:6:89","nodeType":"YulIdentifier","src":"3473:6:89"},{"name":"length","nativeSrc":"3481:6:89","nodeType":"YulIdentifier","src":"3481:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3466:6:89","nodeType":"YulIdentifier","src":"3466:6:89"},"nativeSrc":"3466:22:89","nodeType":"YulFunctionCall","src":"3466:22:89"},"nativeSrc":"3466:22:89","nodeType":"YulExpressionStatement","src":"3466:22:89"},{"body":{"nativeSrc":"3540:16:89","nodeType":"YulBlock","src":"3540:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3549:1:89","nodeType":"YulLiteral","src":"3549:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3552:1:89","nodeType":"YulLiteral","src":"3552:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3542:6:89","nodeType":"YulIdentifier","src":"3542:6:89"},"nativeSrc":"3542:12:89","nodeType":"YulFunctionCall","src":"3542:12:89"},"nativeSrc":"3542:12:89","nodeType":"YulExpressionStatement","src":"3542:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3511:6:89","nodeType":"YulIdentifier","src":"3511:6:89"},{"name":"length","nativeSrc":"3519:6:89","nodeType":"YulIdentifier","src":"3519:6:89"}],"functionName":{"name":"add","nativeSrc":"3507:3:89","nodeType":"YulIdentifier","src":"3507:3:89"},"nativeSrc":"3507:19:89","nodeType":"YulFunctionCall","src":"3507:19:89"},{"kind":"number","nativeSrc":"3528:4:89","nodeType":"YulLiteral","src":"3528:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3503:3:89","nodeType":"YulIdentifier","src":"3503:3:89"},"nativeSrc":"3503:30:89","nodeType":"YulFunctionCall","src":"3503:30:89"},{"name":"end","nativeSrc":"3535:3:89","nodeType":"YulIdentifier","src":"3535:3:89"}],"functionName":{"name":"gt","nativeSrc":"3500:2:89","nodeType":"YulIdentifier","src":"3500:2:89"},"nativeSrc":"3500:39:89","nodeType":"YulFunctionCall","src":"3500:39:89"},"nativeSrc":"3497:59:89","nodeType":"YulIf","src":"3497:59:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3582:6:89","nodeType":"YulIdentifier","src":"3582:6:89"},{"kind":"number","nativeSrc":"3590:4:89","nodeType":"YulLiteral","src":"3590:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3578:3:89","nodeType":"YulIdentifier","src":"3578:3:89"},"nativeSrc":"3578:17:89","nodeType":"YulFunctionCall","src":"3578:17:89"},{"arguments":[{"name":"offset","nativeSrc":"3601:6:89","nodeType":"YulIdentifier","src":"3601:6:89"},{"kind":"number","nativeSrc":"3609:4:89","nodeType":"YulLiteral","src":"3609:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3597:3:89","nodeType":"YulIdentifier","src":"3597:3:89"},"nativeSrc":"3597:17:89","nodeType":"YulFunctionCall","src":"3597:17:89"},{"name":"length","nativeSrc":"3616:6:89","nodeType":"YulIdentifier","src":"3616:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"3565:12:89","nodeType":"YulIdentifier","src":"3565:12:89"},"nativeSrc":"3565:58:89","nodeType":"YulFunctionCall","src":"3565:58:89"},"nativeSrc":"3565:58:89","nodeType":"YulExpressionStatement","src":"3565:58:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3647:6:89","nodeType":"YulIdentifier","src":"3647:6:89"},{"name":"length","nativeSrc":"3655:6:89","nodeType":"YulIdentifier","src":"3655:6:89"}],"functionName":{"name":"add","nativeSrc":"3643:3:89","nodeType":"YulIdentifier","src":"3643:3:89"},"nativeSrc":"3643:19:89","nodeType":"YulFunctionCall","src":"3643:19:89"},{"kind":"number","nativeSrc":"3664:4:89","nodeType":"YulLiteral","src":"3664:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3639:3:89","nodeType":"YulIdentifier","src":"3639:3:89"},"nativeSrc":"3639:30:89","nodeType":"YulFunctionCall","src":"3639:30:89"},{"kind":"number","nativeSrc":"3671:1:89","nodeType":"YulLiteral","src":"3671:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3632:6:89","nodeType":"YulIdentifier","src":"3632:6:89"},"nativeSrc":"3632:41:89","nodeType":"YulFunctionCall","src":"3632:41:89"},"nativeSrc":"3632:41:89","nodeType":"YulExpressionStatement","src":"3632:41:89"},{"nativeSrc":"3682:15:89","nodeType":"YulAssignment","src":"3682:15:89","value":{"name":"memPtr","nativeSrc":"3691:6:89","nodeType":"YulIdentifier","src":"3691:6:89"},"variableNames":[{"name":"array","nativeSrc":"3682:5:89","nodeType":"YulIdentifier","src":"3682:5:89"}]}]},"name":"abi_decode_string","nativeSrc":"2977:726:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3004:6:89","nodeType":"YulTypedName","src":"3004:6:89","type":""},{"name":"end","nativeSrc":"3012:3:89","nodeType":"YulTypedName","src":"3012:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3020:5:89","nodeType":"YulTypedName","src":"3020:5:89","type":""}],"src":"2977:726:89"},{"body":{"nativeSrc":"3869:810:89","nodeType":"YulBlock","src":"3869:810:89","statements":[{"body":{"nativeSrc":"3916:16:89","nodeType":"YulBlock","src":"3916:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3925:1:89","nodeType":"YulLiteral","src":"3925:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3928:1:89","nodeType":"YulLiteral","src":"3928:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3918:6:89","nodeType":"YulIdentifier","src":"3918:6:89"},"nativeSrc":"3918:12:89","nodeType":"YulFunctionCall","src":"3918:12:89"},"nativeSrc":"3918:12:89","nodeType":"YulExpressionStatement","src":"3918:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3890:7:89","nodeType":"YulIdentifier","src":"3890:7:89"},{"name":"headStart","nativeSrc":"3899:9:89","nodeType":"YulIdentifier","src":"3899:9:89"}],"functionName":{"name":"sub","nativeSrc":"3886:3:89","nodeType":"YulIdentifier","src":"3886:3:89"},"nativeSrc":"3886:23:89","nodeType":"YulFunctionCall","src":"3886:23:89"},{"kind":"number","nativeSrc":"3911:3:89","nodeType":"YulLiteral","src":"3911:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3882:3:89","nodeType":"YulIdentifier","src":"3882:3:89"},"nativeSrc":"3882:33:89","nodeType":"YulFunctionCall","src":"3882:33:89"},"nativeSrc":"3879:53:89","nodeType":"YulIf","src":"3879:53:89"},{"nativeSrc":"3941:37:89","nodeType":"YulVariableDeclaration","src":"3941:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3968:9:89","nodeType":"YulIdentifier","src":"3968:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3955:12:89","nodeType":"YulIdentifier","src":"3955:12:89"},"nativeSrc":"3955:23:89","nodeType":"YulFunctionCall","src":"3955:23:89"},"variables":[{"name":"offset","nativeSrc":"3945:6:89","nodeType":"YulTypedName","src":"3945:6:89","type":""}]},{"body":{"nativeSrc":"4021:16:89","nodeType":"YulBlock","src":"4021:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4030:1:89","nodeType":"YulLiteral","src":"4030:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4033:1:89","nodeType":"YulLiteral","src":"4033:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4023:6:89","nodeType":"YulIdentifier","src":"4023:6:89"},"nativeSrc":"4023:12:89","nodeType":"YulFunctionCall","src":"4023:12:89"},"nativeSrc":"4023:12:89","nodeType":"YulExpressionStatement","src":"4023:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3993:6:89","nodeType":"YulIdentifier","src":"3993:6:89"},{"kind":"number","nativeSrc":"4001:18:89","nodeType":"YulLiteral","src":"4001:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3990:2:89","nodeType":"YulIdentifier","src":"3990:2:89"},"nativeSrc":"3990:30:89","nodeType":"YulFunctionCall","src":"3990:30:89"},"nativeSrc":"3987:50:89","nodeType":"YulIf","src":"3987:50:89"},{"nativeSrc":"4046:60:89","nodeType":"YulAssignment","src":"4046:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4078:9:89","nodeType":"YulIdentifier","src":"4078:9:89"},{"name":"offset","nativeSrc":"4089:6:89","nodeType":"YulIdentifier","src":"4089:6:89"}],"functionName":{"name":"add","nativeSrc":"4074:3:89","nodeType":"YulIdentifier","src":"4074:3:89"},"nativeSrc":"4074:22:89","nodeType":"YulFunctionCall","src":"4074:22:89"},{"name":"dataEnd","nativeSrc":"4098:7:89","nodeType":"YulIdentifier","src":"4098:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4056:17:89","nodeType":"YulIdentifier","src":"4056:17:89"},"nativeSrc":"4056:50:89","nodeType":"YulFunctionCall","src":"4056:50:89"},"variableNames":[{"name":"value0","nativeSrc":"4046:6:89","nodeType":"YulIdentifier","src":"4046:6:89"}]},{"nativeSrc":"4115:48:89","nodeType":"YulVariableDeclaration","src":"4115:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4148:9:89","nodeType":"YulIdentifier","src":"4148:9:89"},{"kind":"number","nativeSrc":"4159:2:89","nodeType":"YulLiteral","src":"4159:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4144:3:89","nodeType":"YulIdentifier","src":"4144:3:89"},"nativeSrc":"4144:18:89","nodeType":"YulFunctionCall","src":"4144:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4131:12:89","nodeType":"YulIdentifier","src":"4131:12:89"},"nativeSrc":"4131:32:89","nodeType":"YulFunctionCall","src":"4131:32:89"},"variables":[{"name":"offset_1","nativeSrc":"4119:8:89","nodeType":"YulTypedName","src":"4119:8:89","type":""}]},{"body":{"nativeSrc":"4208:16:89","nodeType":"YulBlock","src":"4208:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4217:1:89","nodeType":"YulLiteral","src":"4217:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4220:1:89","nodeType":"YulLiteral","src":"4220:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4210:6:89","nodeType":"YulIdentifier","src":"4210:6:89"},"nativeSrc":"4210:12:89","nodeType":"YulFunctionCall","src":"4210:12:89"},"nativeSrc":"4210:12:89","nodeType":"YulExpressionStatement","src":"4210:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"4178:8:89","nodeType":"YulIdentifier","src":"4178:8:89"},{"kind":"number","nativeSrc":"4188:18:89","nodeType":"YulLiteral","src":"4188:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4175:2:89","nodeType":"YulIdentifier","src":"4175:2:89"},"nativeSrc":"4175:32:89","nodeType":"YulFunctionCall","src":"4175:32:89"},"nativeSrc":"4172:52:89","nodeType":"YulIf","src":"4172:52:89"},{"nativeSrc":"4233:62:89","nodeType":"YulAssignment","src":"4233:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4265:9:89","nodeType":"YulIdentifier","src":"4265:9:89"},{"name":"offset_1","nativeSrc":"4276:8:89","nodeType":"YulIdentifier","src":"4276:8:89"}],"functionName":{"name":"add","nativeSrc":"4261:3:89","nodeType":"YulIdentifier","src":"4261:3:89"},"nativeSrc":"4261:24:89","nodeType":"YulFunctionCall","src":"4261:24:89"},{"name":"dataEnd","nativeSrc":"4287:7:89","nodeType":"YulIdentifier","src":"4287:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4243:17:89","nodeType":"YulIdentifier","src":"4243:17:89"},"nativeSrc":"4243:52:89","nodeType":"YulFunctionCall","src":"4243:52:89"},"variableNames":[{"name":"value1","nativeSrc":"4233:6:89","nodeType":"YulIdentifier","src":"4233:6:89"}]},{"nativeSrc":"4304:48:89","nodeType":"YulVariableDeclaration","src":"4304:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4337:9:89","nodeType":"YulIdentifier","src":"4337:9:89"},{"kind":"number","nativeSrc":"4348:2:89","nodeType":"YulLiteral","src":"4348:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4333:3:89","nodeType":"YulIdentifier","src":"4333:3:89"},"nativeSrc":"4333:18:89","nodeType":"YulFunctionCall","src":"4333:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4320:12:89","nodeType":"YulIdentifier","src":"4320:12:89"},"nativeSrc":"4320:32:89","nodeType":"YulFunctionCall","src":"4320:32:89"},"variables":[{"name":"offset_2","nativeSrc":"4308:8:89","nodeType":"YulTypedName","src":"4308:8:89","type":""}]},{"body":{"nativeSrc":"4397:16:89","nodeType":"YulBlock","src":"4397:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4406:1:89","nodeType":"YulLiteral","src":"4406:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4409:1:89","nodeType":"YulLiteral","src":"4409:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4399:6:89","nodeType":"YulIdentifier","src":"4399:6:89"},"nativeSrc":"4399:12:89","nodeType":"YulFunctionCall","src":"4399:12:89"},"nativeSrc":"4399:12:89","nodeType":"YulExpressionStatement","src":"4399:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"4367:8:89","nodeType":"YulIdentifier","src":"4367:8:89"},{"kind":"number","nativeSrc":"4377:18:89","nodeType":"YulLiteral","src":"4377:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4364:2:89","nodeType":"YulIdentifier","src":"4364:2:89"},"nativeSrc":"4364:32:89","nodeType":"YulFunctionCall","src":"4364:32:89"},"nativeSrc":"4361:52:89","nodeType":"YulIf","src":"4361:52:89"},{"nativeSrc":"4422:62:89","nodeType":"YulAssignment","src":"4422:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4454:9:89","nodeType":"YulIdentifier","src":"4454:9:89"},{"name":"offset_2","nativeSrc":"4465:8:89","nodeType":"YulIdentifier","src":"4465:8:89"}],"functionName":{"name":"add","nativeSrc":"4450:3:89","nodeType":"YulIdentifier","src":"4450:3:89"},"nativeSrc":"4450:24:89","nodeType":"YulFunctionCall","src":"4450:24:89"},{"name":"dataEnd","nativeSrc":"4476:7:89","nodeType":"YulIdentifier","src":"4476:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4432:17:89","nodeType":"YulIdentifier","src":"4432:17:89"},"nativeSrc":"4432:52:89","nodeType":"YulFunctionCall","src":"4432:52:89"},"variableNames":[{"name":"value2","nativeSrc":"4422:6:89","nodeType":"YulIdentifier","src":"4422:6:89"}]},{"nativeSrc":"4493:48:89","nodeType":"YulVariableDeclaration","src":"4493:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4526:9:89","nodeType":"YulIdentifier","src":"4526:9:89"},{"kind":"number","nativeSrc":"4537:2:89","nodeType":"YulLiteral","src":"4537:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4522:3:89","nodeType":"YulIdentifier","src":"4522:3:89"},"nativeSrc":"4522:18:89","nodeType":"YulFunctionCall","src":"4522:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4509:12:89","nodeType":"YulIdentifier","src":"4509:12:89"},"nativeSrc":"4509:32:89","nodeType":"YulFunctionCall","src":"4509:32:89"},"variables":[{"name":"offset_3","nativeSrc":"4497:8:89","nodeType":"YulTypedName","src":"4497:8:89","type":""}]},{"body":{"nativeSrc":"4586:16:89","nodeType":"YulBlock","src":"4586:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4595:1:89","nodeType":"YulLiteral","src":"4595:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4598:1:89","nodeType":"YulLiteral","src":"4598:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4588:6:89","nodeType":"YulIdentifier","src":"4588:6:89"},"nativeSrc":"4588:12:89","nodeType":"YulFunctionCall","src":"4588:12:89"},"nativeSrc":"4588:12:89","nodeType":"YulExpressionStatement","src":"4588:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"4556:8:89","nodeType":"YulIdentifier","src":"4556:8:89"},{"kind":"number","nativeSrc":"4566:18:89","nodeType":"YulLiteral","src":"4566:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4553:2:89","nodeType":"YulIdentifier","src":"4553:2:89"},"nativeSrc":"4553:32:89","nodeType":"YulFunctionCall","src":"4553:32:89"},"nativeSrc":"4550:52:89","nodeType":"YulIf","src":"4550:52:89"},{"nativeSrc":"4611:62:89","nodeType":"YulAssignment","src":"4611:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4643:9:89","nodeType":"YulIdentifier","src":"4643:9:89"},{"name":"offset_3","nativeSrc":"4654:8:89","nodeType":"YulIdentifier","src":"4654:8:89"}],"functionName":{"name":"add","nativeSrc":"4639:3:89","nodeType":"YulIdentifier","src":"4639:3:89"},"nativeSrc":"4639:24:89","nodeType":"YulFunctionCall","src":"4639:24:89"},{"name":"dataEnd","nativeSrc":"4665:7:89","nodeType":"YulIdentifier","src":"4665:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4621:17:89","nodeType":"YulIdentifier","src":"4621:17:89"},"nativeSrc":"4621:52:89","nodeType":"YulFunctionCall","src":"4621:52:89"},"variableNames":[{"name":"value3","nativeSrc":"4611:6:89","nodeType":"YulIdentifier","src":"4611:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptr","nativeSrc":"3708:971:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3811:9:89","nodeType":"YulTypedName","src":"3811:9:89","type":""},{"name":"dataEnd","nativeSrc":"3822:7:89","nodeType":"YulTypedName","src":"3822:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3834:6:89","nodeType":"YulTypedName","src":"3834:6:89","type":""},{"name":"value1","nativeSrc":"3842:6:89","nodeType":"YulTypedName","src":"3842:6:89","type":""},{"name":"value2","nativeSrc":"3850:6:89","nodeType":"YulTypedName","src":"3850:6:89","type":""},{"name":"value3","nativeSrc":"3858:6:89","nodeType":"YulTypedName","src":"3858:6:89","type":""}],"src":"3708:971:89"},{"body":{"nativeSrc":"4734:221:89","nodeType":"YulBlock","src":"4734:221:89","statements":[{"nativeSrc":"4744:26:89","nodeType":"YulVariableDeclaration","src":"4744:26:89","value":{"arguments":[{"name":"value","nativeSrc":"4764:5:89","nodeType":"YulIdentifier","src":"4764:5:89"}],"functionName":{"name":"mload","nativeSrc":"4758:5:89","nodeType":"YulIdentifier","src":"4758:5:89"},"nativeSrc":"4758:12:89","nodeType":"YulFunctionCall","src":"4758:12:89"},"variables":[{"name":"length","nativeSrc":"4748:6:89","nodeType":"YulTypedName","src":"4748:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4786:3:89","nodeType":"YulIdentifier","src":"4786:3:89"},{"name":"length","nativeSrc":"4791:6:89","nodeType":"YulIdentifier","src":"4791:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4779:6:89","nodeType":"YulIdentifier","src":"4779:6:89"},"nativeSrc":"4779:19:89","nodeType":"YulFunctionCall","src":"4779:19:89"},"nativeSrc":"4779:19:89","nodeType":"YulExpressionStatement","src":"4779:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4846:5:89","nodeType":"YulIdentifier","src":"4846:5:89"},{"kind":"number","nativeSrc":"4853:4:89","nodeType":"YulLiteral","src":"4853:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4842:3:89","nodeType":"YulIdentifier","src":"4842:3:89"},"nativeSrc":"4842:16:89","nodeType":"YulFunctionCall","src":"4842:16:89"},{"arguments":[{"name":"pos","nativeSrc":"4864:3:89","nodeType":"YulIdentifier","src":"4864:3:89"},{"kind":"number","nativeSrc":"4869:4:89","nodeType":"YulLiteral","src":"4869:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4860:3:89","nodeType":"YulIdentifier","src":"4860:3:89"},"nativeSrc":"4860:14:89","nodeType":"YulFunctionCall","src":"4860:14:89"},{"name":"length","nativeSrc":"4876:6:89","nodeType":"YulIdentifier","src":"4876:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4807:34:89","nodeType":"YulIdentifier","src":"4807:34:89"},"nativeSrc":"4807:76:89","nodeType":"YulFunctionCall","src":"4807:76:89"},"nativeSrc":"4807:76:89","nodeType":"YulExpressionStatement","src":"4807:76:89"},{"nativeSrc":"4892:57:89","nodeType":"YulAssignment","src":"4892:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4907:3:89","nodeType":"YulIdentifier","src":"4907:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4920:6:89","nodeType":"YulIdentifier","src":"4920:6:89"},{"kind":"number","nativeSrc":"4928:2:89","nodeType":"YulLiteral","src":"4928:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4916:3:89","nodeType":"YulIdentifier","src":"4916:3:89"},"nativeSrc":"4916:15:89","nodeType":"YulFunctionCall","src":"4916:15:89"},{"arguments":[{"kind":"number","nativeSrc":"4937:2:89","nodeType":"YulLiteral","src":"4937:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4933:3:89","nodeType":"YulIdentifier","src":"4933:3:89"},"nativeSrc":"4933:7:89","nodeType":"YulFunctionCall","src":"4933:7:89"}],"functionName":{"name":"and","nativeSrc":"4912:3:89","nodeType":"YulIdentifier","src":"4912:3:89"},"nativeSrc":"4912:29:89","nodeType":"YulFunctionCall","src":"4912:29:89"}],"functionName":{"name":"add","nativeSrc":"4903:3:89","nodeType":"YulIdentifier","src":"4903:3:89"},"nativeSrc":"4903:39:89","nodeType":"YulFunctionCall","src":"4903:39:89"},{"kind":"number","nativeSrc":"4944:4:89","nodeType":"YulLiteral","src":"4944:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4899:3:89","nodeType":"YulIdentifier","src":"4899:3:89"},"nativeSrc":"4899:50:89","nodeType":"YulFunctionCall","src":"4899:50:89"},"variableNames":[{"name":"end","nativeSrc":"4892:3:89","nodeType":"YulIdentifier","src":"4892:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"4684:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4711:5:89","nodeType":"YulTypedName","src":"4711:5:89","type":""},{"name":"pos","nativeSrc":"4718:3:89","nodeType":"YulTypedName","src":"4718:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4726:3:89","nodeType":"YulTypedName","src":"4726:3:89","type":""}],"src":"4684:271:89"},{"body":{"nativeSrc":"5225:446:89","nodeType":"YulBlock","src":"5225:446:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5242:9:89","nodeType":"YulIdentifier","src":"5242:9:89"},{"kind":"number","nativeSrc":"5253:3:89","nodeType":"YulLiteral","src":"5253:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"5235:6:89","nodeType":"YulIdentifier","src":"5235:6:89"},"nativeSrc":"5235:22:89","nodeType":"YulFunctionCall","src":"5235:22:89"},"nativeSrc":"5235:22:89","nodeType":"YulExpressionStatement","src":"5235:22:89"},{"nativeSrc":"5266:60:89","nodeType":"YulVariableDeclaration","src":"5266:60:89","value":{"arguments":[{"name":"value0","nativeSrc":"5298:6:89","nodeType":"YulIdentifier","src":"5298:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"5310:9:89","nodeType":"YulIdentifier","src":"5310:9:89"},{"kind":"number","nativeSrc":"5321:3:89","nodeType":"YulLiteral","src":"5321:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5306:3:89","nodeType":"YulIdentifier","src":"5306:3:89"},"nativeSrc":"5306:19:89","nodeType":"YulFunctionCall","src":"5306:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5280:17:89","nodeType":"YulIdentifier","src":"5280:17:89"},"nativeSrc":"5280:46:89","nodeType":"YulFunctionCall","src":"5280:46:89"},"variables":[{"name":"tail_1","nativeSrc":"5270:6:89","nodeType":"YulTypedName","src":"5270:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5346:9:89","nodeType":"YulIdentifier","src":"5346:9:89"},{"kind":"number","nativeSrc":"5357:2:89","nodeType":"YulLiteral","src":"5357:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5342:3:89","nodeType":"YulIdentifier","src":"5342:3:89"},"nativeSrc":"5342:18:89","nodeType":"YulFunctionCall","src":"5342:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"5366:6:89","nodeType":"YulIdentifier","src":"5366:6:89"},{"name":"headStart","nativeSrc":"5374:9:89","nodeType":"YulIdentifier","src":"5374:9:89"}],"functionName":{"name":"sub","nativeSrc":"5362:3:89","nodeType":"YulIdentifier","src":"5362:3:89"},"nativeSrc":"5362:22:89","nodeType":"YulFunctionCall","src":"5362:22:89"}],"functionName":{"name":"mstore","nativeSrc":"5335:6:89","nodeType":"YulIdentifier","src":"5335:6:89"},"nativeSrc":"5335:50:89","nodeType":"YulFunctionCall","src":"5335:50:89"},"nativeSrc":"5335:50:89","nodeType":"YulExpressionStatement","src":"5335:50:89"},{"nativeSrc":"5394:47:89","nodeType":"YulVariableDeclaration","src":"5394:47:89","value":{"arguments":[{"name":"value1","nativeSrc":"5426:6:89","nodeType":"YulIdentifier","src":"5426:6:89"},{"name":"tail_1","nativeSrc":"5434:6:89","nodeType":"YulIdentifier","src":"5434:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5408:17:89","nodeType":"YulIdentifier","src":"5408:17:89"},"nativeSrc":"5408:33:89","nodeType":"YulFunctionCall","src":"5408:33:89"},"variables":[{"name":"tail_2","nativeSrc":"5398:6:89","nodeType":"YulTypedName","src":"5398:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5461:9:89","nodeType":"YulIdentifier","src":"5461:9:89"},{"kind":"number","nativeSrc":"5472:2:89","nodeType":"YulLiteral","src":"5472:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5457:3:89","nodeType":"YulIdentifier","src":"5457:3:89"},"nativeSrc":"5457:18:89","nodeType":"YulFunctionCall","src":"5457:18:89"},{"arguments":[{"name":"tail_2","nativeSrc":"5481:6:89","nodeType":"YulIdentifier","src":"5481:6:89"},{"name":"headStart","nativeSrc":"5489:9:89","nodeType":"YulIdentifier","src":"5489:9:89"}],"functionName":{"name":"sub","nativeSrc":"5477:3:89","nodeType":"YulIdentifier","src":"5477:3:89"},"nativeSrc":"5477:22:89","nodeType":"YulFunctionCall","src":"5477:22:89"}],"functionName":{"name":"mstore","nativeSrc":"5450:6:89","nodeType":"YulIdentifier","src":"5450:6:89"},"nativeSrc":"5450:50:89","nodeType":"YulFunctionCall","src":"5450:50:89"},"nativeSrc":"5450:50:89","nodeType":"YulExpressionStatement","src":"5450:50:89"},{"nativeSrc":"5509:47:89","nodeType":"YulVariableDeclaration","src":"5509:47:89","value":{"arguments":[{"name":"value2","nativeSrc":"5541:6:89","nodeType":"YulIdentifier","src":"5541:6:89"},{"name":"tail_2","nativeSrc":"5549:6:89","nodeType":"YulIdentifier","src":"5549:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5523:17:89","nodeType":"YulIdentifier","src":"5523:17:89"},"nativeSrc":"5523:33:89","nodeType":"YulFunctionCall","src":"5523:33:89"},"variables":[{"name":"tail_3","nativeSrc":"5513:6:89","nodeType":"YulTypedName","src":"5513:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5576:9:89","nodeType":"YulIdentifier","src":"5576:9:89"},{"kind":"number","nativeSrc":"5587:2:89","nodeType":"YulLiteral","src":"5587:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5572:3:89","nodeType":"YulIdentifier","src":"5572:3:89"},"nativeSrc":"5572:18:89","nodeType":"YulFunctionCall","src":"5572:18:89"},{"arguments":[{"name":"tail_3","nativeSrc":"5596:6:89","nodeType":"YulIdentifier","src":"5596:6:89"},{"name":"headStart","nativeSrc":"5604:9:89","nodeType":"YulIdentifier","src":"5604:9:89"}],"functionName":{"name":"sub","nativeSrc":"5592:3:89","nodeType":"YulIdentifier","src":"5592:3:89"},"nativeSrc":"5592:22:89","nodeType":"YulFunctionCall","src":"5592:22:89"}],"functionName":{"name":"mstore","nativeSrc":"5565:6:89","nodeType":"YulIdentifier","src":"5565:6:89"},"nativeSrc":"5565:50:89","nodeType":"YulFunctionCall","src":"5565:50:89"},"nativeSrc":"5565:50:89","nodeType":"YulExpressionStatement","src":"5565:50:89"},{"nativeSrc":"5624:41:89","nodeType":"YulAssignment","src":"5624:41:89","value":{"arguments":[{"name":"value3","nativeSrc":"5650:6:89","nodeType":"YulIdentifier","src":"5650:6:89"},{"name":"tail_3","nativeSrc":"5658:6:89","nodeType":"YulIdentifier","src":"5658:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5632:17:89","nodeType":"YulIdentifier","src":"5632:17:89"},"nativeSrc":"5632:33:89","nodeType":"YulFunctionCall","src":"5632:33:89"},"variableNames":[{"name":"tail","nativeSrc":"5624:4:89","nodeType":"YulIdentifier","src":"5624:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4960:711:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5170:9:89","nodeType":"YulTypedName","src":"5170:9:89","type":""},{"name":"value3","nativeSrc":"5181:6:89","nodeType":"YulTypedName","src":"5181:6:89","type":""},{"name":"value2","nativeSrc":"5189:6:89","nodeType":"YulTypedName","src":"5189:6:89","type":""},{"name":"value1","nativeSrc":"5197:6:89","nodeType":"YulTypedName","src":"5197:6:89","type":""},{"name":"value0","nativeSrc":"5205:6:89","nodeType":"YulTypedName","src":"5205:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5216:4:89","nodeType":"YulTypedName","src":"5216:4:89","type":""}],"src":"4960:711:89"},{"body":{"nativeSrc":"5805:119:89","nodeType":"YulBlock","src":"5805:119:89","statements":[{"nativeSrc":"5815:26:89","nodeType":"YulAssignment","src":"5815:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5827:9:89","nodeType":"YulIdentifier","src":"5827:9:89"},{"kind":"number","nativeSrc":"5838:2:89","nodeType":"YulLiteral","src":"5838:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5823:3:89","nodeType":"YulIdentifier","src":"5823:3:89"},"nativeSrc":"5823:18:89","nodeType":"YulFunctionCall","src":"5823:18:89"},"variableNames":[{"name":"tail","nativeSrc":"5815:4:89","nodeType":"YulIdentifier","src":"5815:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5857:9:89","nodeType":"YulIdentifier","src":"5857:9:89"},{"name":"value0","nativeSrc":"5868:6:89","nodeType":"YulIdentifier","src":"5868:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5850:6:89","nodeType":"YulIdentifier","src":"5850:6:89"},"nativeSrc":"5850:25:89","nodeType":"YulFunctionCall","src":"5850:25:89"},"nativeSrc":"5850:25:89","nodeType":"YulExpressionStatement","src":"5850:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5895:9:89","nodeType":"YulIdentifier","src":"5895:9:89"},{"kind":"number","nativeSrc":"5906:2:89","nodeType":"YulLiteral","src":"5906:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5891:3:89","nodeType":"YulIdentifier","src":"5891:3:89"},"nativeSrc":"5891:18:89","nodeType":"YulFunctionCall","src":"5891:18:89"},{"name":"value1","nativeSrc":"5911:6:89","nodeType":"YulIdentifier","src":"5911:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5884:6:89","nodeType":"YulIdentifier","src":"5884:6:89"},"nativeSrc":"5884:34:89","nodeType":"YulFunctionCall","src":"5884:34:89"},"nativeSrc":"5884:34:89","nodeType":"YulExpressionStatement","src":"5884:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"5676:248:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5766:9:89","nodeType":"YulTypedName","src":"5766:9:89","type":""},{"name":"value1","nativeSrc":"5777:6:89","nodeType":"YulTypedName","src":"5777:6:89","type":""},{"name":"value0","nativeSrc":"5785:6:89","nodeType":"YulTypedName","src":"5785:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5796:4:89","nodeType":"YulTypedName","src":"5796:4:89","type":""}],"src":"5676:248:89"}]},"contents":"{\n    { }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value_1 := calldataload(add(headStart, 64))\n        if iszero(eq(value_1, and(value_1, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value3 := value_1\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        calldatacopy(end_1, value1, value2)\n        let _1 := add(end_1, value2)\n        mstore(_1, 0)\n        end := _1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        value2 := abi_decode_string(add(headStart, offset_2), dataEnd)\n        let offset_3 := calldataload(add(headStart, 96))\n        if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_string(add(headStart, offset_3), dataEnd)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_string(value0, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_string(value1, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        let tail_3 := abi_encode_string(value2, tail_2)\n        mstore(add(headStart, 96), sub(tail_3, headStart))\n        tail := abi_encode_string(value3, tail_3)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c806319cdeff11461003b578063a31809781461006a575b600080fd5b61004e6100493660046102f5565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e610078366004610374565b610164565b600080604051806020016100909061029f565b601f1982820381018352601f9091011660408190526100b6919088908890602001610403565b604051602081830303815290604052905060006100d5600089846101ca565b905060008080806100e8888a018a6104d0565b9350935093509350846001600160a01b031663a523d35e858585856040518563ffffffff1660e01b815260040161012294939291906105bc565b600060405180830381600087803b15801561013c57600080fd5b505af1158015610150573d6000803e3d6000fd5b50969e9d5050505050505050505050505050565b600080604051806020016101779061029f565b601f1982820381018352601f90910116604081905261019d919087908790602001610403565b60405160208183030381529060405290506101c08682805190602001208561026c565b9695505050505050565b6000834710156101fa5760405163cf47918160e01b81524760048201526024810185905260440160405180910390fd5b815160000361021c57604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d15198115161561023e576040513d6000823e3d81fd5b6001600160a01b0381166102655760405163b06ebf3d60e01b815260040160405180910390fd5b9392505050565b6000604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b6119b98061061583390190565b60008083601f8401126102be57600080fd5b50813567ffffffffffffffff8111156102d657600080fd5b6020830191508360208285010111156102ee57600080fd5b9250929050565b60008060008060006060868803121561030d57600080fd5b85359450602086013567ffffffffffffffff81111561032b57600080fd5b610337888289016102ac565b909550935050604086013567ffffffffffffffff81111561035757600080fd5b610363888289016102ac565b969995985093965092949392505050565b6000806000806060858703121561038a57600080fd5b84359350602085013567ffffffffffffffff8111156103a857600080fd5b6103b4878288016102ac565b90945092505060408501356001600160a01b03811681146103d457600080fd5b939692955090935050565b60005b838110156103fa5781810151838201526020016103e2565b50506000910152565b600084516104158184602089016103df565b8201838582376000930192835250909392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045257600080fd5b813567ffffffffffffffff81111561046c5761046c61042b565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561049b5761049b61042b565b6040528181528382016020018510156104b357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156104e657600080fd5b843567ffffffffffffffff8111156104fd57600080fd5b61050987828801610441565b945050602085013567ffffffffffffffff81111561052657600080fd5b61053287828801610441565b935050604085013567ffffffffffffffff81111561054f57600080fd5b61055b87828801610441565b925050606085013567ffffffffffffffff81111561057857600080fd5b61058487828801610441565b91505092959194509250565b600081518084526105a88160208601602086016103df565b601f01601f19169290920160200192915050565b6080815260006105cf6080830187610590565b82810360208401526105e18187610590565b905082810360408401526105f58186610590565b905082810360608401526106098185610590565b97965050505050505056fe6080604052348015600f57600080fd5b506040516119b93803806119b9833981016040819052602c916059565b600180546001600160a01b039092166001600160a01b031992831617905560028054909116331790556087565b600060208284031215606a57600080fd5b81516001600160a01b0381168114608057600080fd5b9392505050565b611923806100966000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80636352211e116100a2578063a22cb46511610071578063a22cb46514610248578063a523d35e1461025b578063b88d4fde1461026e578063c87b56dd14610281578063e985e9c51461029457600080fd5b80636352211e146101f957806370a082311461020c5780638832e6e31461022d57806395d89b411461024057600080fd5b806323b872dd116100e957806323b872dd1461019857806342842e0e146101ab57806342966c68146101be57806355f804b3146101d15780635a9b0b89146101e457600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e6101293660046111a5565b6102a7565b60405190151581526020015b60405180910390f35b61014b6102d2565b60405161013a9190611212565b61016b610166366004611225565b610376565b6040516001600160a01b03909116815260200161013a565b61019661019136600461125a565b61038b565b005b6101966101a6366004611284565b61039a565b6101966101b9366004611284565b61042a565b6101966101cc366004611225565b61044a565b6101966101df3660046112c1565b61045e565b6101ec610473565b60405161013a9190611333565b61016b610207366004611225565b610563565b61021f61021a3660046113b1565b61056e565b60405190815260200161013a565b61019661023b366004611476565b6105ca565b61014b6105dd565b6101966102563660046114cc565b61061c565b610196610269366004611508565b610627565b61019661027c3660046115c4565b61075b565b61014b61028f366004611225565b610773565b61012e6102a2366004611613565b6107db565b60006001600160e01b0319821663c5c785b160e01b14806102cc57506102cc82610828565b92915050565b6000805160206118ce83398151915280546060919081906102f290611646565b80601f016020809104026020016040519081016040528092919081815260200182805461031e90611646565b801561036b5780601f106103405761010080835404028352916020019161036b565b820191906000526020600020905b81548152906001019060200180831161034e57829003601f168201915b505050505091505090565b600061038182610878565b506102cc826108b0565b6103968282336108ea565b5050565b6001600160a01b0382166103c957604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d68383336108f7565b9050836001600160a01b0316816001600160a01b031614610424576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103c0565b50505050565b6104458383836040518060200160405280600081525061075b565b505050565b610452610a01565b61045b81610a2e565b50565b610466610a69565b60036104458284836116c7565b61049e6040518060800160405280606081526020016060815260200160608152602001606081525090565b60405180608001604052806104b16102d2565b81526020016104be6105dd565b81526020016104cb610a94565b8152602001600080546104dd90611646565b80601f016020809104026020016040519081016040528092919081815260200182805461050990611646565b80156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b5050505050815250905090565b60006102cc82610878565b60006000805160206118ce8339815191526001600160a01b0383166105a9576040516322718ad960e21b8152600060048201526024016103c0565b6001600160a01b039092166000908152600390920160205250604090205490565b6105d2610a01565b610445838383610b26565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206118ce833981519152916102f290611646565b610396338383610b3e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561066c5750825b90506000826001600160401b031660011480156106885750303b155b905081158015610696575080155b156106b45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106de57845460ff60401b1916600160401b1785555b6106e6610a69565b6106f08989610bef565b60036106fc8882611786565b5060006107098782611786565b50831561075057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b61076684848461039a565b6104243385858585610c01565b606061077e82610878565b506000610789610a94565b905060008151116107a957604051806020016040528060008152506107d4565b806107b384610d2c565b6040516020016107c4929190611844565b6040516020818303038152906040525b9392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061085957506001600160e01b03198216635b5e139f60e01b145b806102cc57506301ffc9a760e01b6001600160e01b03198316146102cc565b60008061088483610dbe565b90506001600160a01b0381166102cc57604051637e27328960e01b8152600481018490526024016103c0565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6104458383836001610df8565b60006000805160206118ce8339815191528161091285610dbe565b90506001600160a01b0384161561092e5761092e818587610f0e565b6001600160a01b0381161561096e5761094b600086600080610df8565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b0386161561099f576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001546001600160a01b03163314610a2c57604051631a27eac360e11b815260040160405180910390fd5b565b6000610a3d60008360006108f7565b90506001600160a01b03811661039657604051637e27328960e01b8152600481018390526024016103c0565b6002546001600160a01b03163314610a2c57604051631a27eac360e11b815260040160405180910390fd5b606060038054610aa390611646565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf90611646565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b5050505050905090565b610b308383610f72565b610445336000858585610c01565b6000805160206118ce8339815191526001600160a01b038316610b7f57604051630b61174360e31b81526001600160a01b03841660048201526024016103c0565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b610bf7610fd7565b6103968282611020565b6001600160a01b0383163b15610d2557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610c43908890889087908790600401611873565b6020604051808303816000875af1925050508015610c7e575060408051601f3d908101601f19168201909252610c7b918101906118b0565b60015b610ce7573d808015610cac576040519150601f19603f3d011682016040523d82523d6000602084013e610cb1565b606091505b508051600003610cdf57604051633250574960e11b81526001600160a01b03851660048201526024016103c0565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610d2357604051633250574960e11b81526001600160a01b03851660048201526024016103c0565b505b5050505050565b60606000610d3983611051565b60010190506000816001600160401b03811115610d5857610d586113cc565b6040519080825280601f01601f191660200182016040528015610d82576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610d8c57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206118ce8339815191528180610e1b57506001600160a01b03831615155b15610edd576000610e2b85610878565b90506001600160a01b03841615801590610e575750836001600160a01b0316816001600160a01b031614155b8015610e6a5750610e6881856107db565b155b15610e935760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103c0565b8215610edb5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f19838383611129565b610445576001600160a01b038316610f4757604051637e27328960e01b8152600481018290526024016103c0565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103c0565b6001600160a01b038216610f9c57604051633250574960e11b8152600060048201526024016103c0565b6000610faa838360006108f7565b90506001600160a01b03811615610445576040516339e3563760e11b8152600060048201526024016103c0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610a2c57604051631afcd79f60e31b815260040160405180910390fd5b611028610fd7565b6000805160206118ce833981519152806110428482611786565b50600181016104248382611786565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106110905772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106110bc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106110da57662386f26fc10000830492506010015b6305f5e10083106110f2576305f5e100830492506008015b612710831061110657612710830492506004015b60648310611118576064830492506002015b600a83106102cc5760010192915050565b60006001600160a01b038316158015906111875750826001600160a01b0316846001600160a01b03161480611163575061116384846107db565b806111875750826001600160a01b031661117c836108b0565b6001600160a01b0316145b949350505050565b6001600160e01b03198116811461045b57600080fd5b6000602082840312156111b757600080fd5b81356107d48161118f565b60005b838110156111dd5781810151838201526020016111c5565b50506000910152565b600081518084526111fe8160208601602086016111c2565b601f01601f19169290920160200192915050565b6020815260006107d460208301846111e6565b60006020828403121561123757600080fd5b5035919050565b80356001600160a01b038116811461125557600080fd5b919050565b6000806040838503121561126d57600080fd5b6112768361123e565b946020939093013593505050565b60008060006060848603121561129957600080fd5b6112a28461123e565b92506112b06020850161123e565b929592945050506040919091013590565b600080602083850312156112d457600080fd5b82356001600160401b038111156112ea57600080fd5b8301601f810185136112fb57600080fd5b80356001600160401b0381111561131157600080fd5b85602082840101111561132357600080fd5b6020919091019590945092505050565b60208152600082516080602084015261134f60a08401826111e6565b90506020840151601f1984830301604085015261136c82826111e6565b9150506040840151601f1984830301606085015261138a82826111e6565b9150506060840151601f198483030160808501526113a882826111e6565b95945050505050565b6000602082840312156113c357600080fd5b6107d48261123e565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126113f357600080fd5b8135602083016000806001600160401b03841115611413576114136113cc565b50604051601f19601f85018116603f011681018181106001600160401b0382111715611441576114416113cc565b60405283815290508082840187101561145957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561148b57600080fd5b6114948461123e565b92506020840135915060408401356001600160401b038111156114b657600080fd5b6114c2868287016113e2565b9150509250925092565b600080604083850312156114df57600080fd5b6114e88361123e565b9150602083013580151581146114fd57600080fd5b809150509250929050565b6000806000806080858703121561151e57600080fd5b84356001600160401b0381111561153457600080fd5b611540878288016113e2565b94505060208501356001600160401b0381111561155c57600080fd5b611568878288016113e2565b93505060408501356001600160401b0381111561158457600080fd5b611590878288016113e2565b92505060608501356001600160401b038111156115ac57600080fd5b6115b8878288016113e2565b91505092959194509250565b600080600080608085870312156115da57600080fd5b6115e38561123e565b93506115f16020860161123e565b92506040850135915060608501356001600160401b038111156115ac57600080fd5b6000806040838503121561162657600080fd5b61162f8361123e565b915061163d6020840161123e565b90509250929050565b600181811c9082168061165a57607f821691505b60208210810361167a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561044557806000526020600020601f840160051c810160208510156116a75750805b601f840160051c820191505b81811015610d2557600081556001016116b3565b6001600160401b038311156116de576116de6113cc565b6116f2836116ec8354611646565b83611680565b6000601f841160018114611726576000851561170e5750838201355b600019600387901b1c1916600186901b178355610d25565b600083815260209020601f19861690835b828110156117575786850135825560209485019460019092019101611737565b50868210156117745760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b0381111561179f5761179f6113cc565b6117b3816117ad8454611646565b84611680565b6020601f8211600181146117e757600083156117cf5750848201515b600019600385901b1c1916600184901b178455610d25565b600084815260208120601f198516915b8281101561181757878501518255602094850194600190920191016117f7565b50848210156118355786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b600083516118568184602088016111c2565b83519083019061186a8183602088016111c2565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906118a6908301846111e6565b9695505050505050565b6000602082840312156118c257600080fd5b81516107d48161118f56fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300a264697066735822122005d67ce4f8cb4ac98e8d7edac86a6415c3f0467ec7830f8611056bfd261367e164736f6c634300081c0033a26469706673582212205aedf3061a4c49de659f7bf75763966084182c5f0baad9ea095a4f3b5c9aee8f64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19CDEFF1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA3180978 EQ PUSH2 0x6A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x78 CALLDATASIZE PUSH1 0x4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x164 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x90 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0xB6 SWAP2 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0xD5 PUSH1 0x0 DUP10 DUP5 PUSH2 0x1CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0xE8 DUP9 DUP11 ADD DUP11 PUSH2 0x4D0 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA523D35E DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x122 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5BC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x150 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP7 SWAP15 SWAP14 POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x177 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x19D SWAP2 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x20 ADD PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1C0 DUP7 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 PUSH2 0x26C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SELFBALANCE LT ISZERO PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x21C JUMPI PUSH1 0x40 MLOAD PUSH4 0x13289277 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 MLOAD PUSH1 0x20 DUP5 ADD DUP7 CREATE2 SWAP1 POP RETURNDATASIZE ISZERO NOT DUP2 ISZERO AND ISZERO PUSH2 0x23E JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x265 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB06EBF3D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 PUSH1 0x40 DUP3 ADD MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP3 DUP2 MSTORE PUSH1 0xB DUP2 ADD SWAP1 POP PUSH1 0xFF DUP2 MSTORE8 PUSH1 0x55 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x19B9 DUP1 PUSH2 0x615 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x337 DUP9 DUP3 DUP10 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x363 DUP9 DUP3 DUP10 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x38A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B4 DUP8 DUP3 DUP9 ADD PUSH2 0x2AC JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3FA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3E2 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH2 0x415 DUP2 DUP5 PUSH1 0x20 DUP10 ADD PUSH2 0x3DF JUMP JUMPDEST DUP3 ADD DUP4 DUP6 DUP3 CALLDATACOPY PUSH1 0x0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46C JUMPI PUSH2 0x46C PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x49B JUMPI PUSH2 0x49B PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x509 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x526 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x532 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x54F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55B DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x584 DUP8 DUP3 DUP9 ADD PUSH2 0x441 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x5A8 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5CF PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x590 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x5E1 DUP2 DUP8 PUSH2 0x590 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x5F5 DUP2 DUP7 PUSH2 0x590 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x609 DUP2 DUP6 PUSH2 0x590 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x19B9 CODESIZE SUB DUP1 PUSH2 0x19B9 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x59 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP2 AND CALLER OR SWAP1 SSTORE PUSH1 0x87 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1923 DUP1 PUSH2 0x96 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 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xA523D35E EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x8832E6E3 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x5A9B0B89 EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x183 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x11A5 JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1212 JUMP JUMPDEST PUSH2 0x16B PUSH2 0x166 CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x191 CALLDATASIZE PUSH1 0x4 PUSH2 0x125A JUMP JUMPDEST PUSH2 0x38B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x196 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1284 JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1284 JUMP JUMPDEST PUSH2 0x42A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1CC CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x12C1 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1EC PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1333 JUMP JUMPDEST PUSH2 0x16B PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x563 JUMP JUMPDEST PUSH2 0x21F PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x1476 JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH2 0x14B PUSH2 0x5DD JUMP JUMPDEST PUSH2 0x196 PUSH2 0x256 CALLDATASIZE PUSH1 0x4 PUSH2 0x14CC JUMP JUMPDEST PUSH2 0x61C JUMP JUMPDEST PUSH2 0x196 PUSH2 0x269 CALLDATASIZE PUSH1 0x4 PUSH2 0x1508 JUMP JUMPDEST PUSH2 0x627 JUMP JUMPDEST PUSH2 0x196 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x15C4 JUMP JUMPDEST PUSH2 0x75B JUMP JUMPDEST PUSH2 0x14B PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x773 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1613 JUMP JUMPDEST PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xC5C785B1 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2CC JUMPI POP PUSH2 0x2CC DUP3 PUSH2 0x828 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x2F2 SWAP1 PUSH2 0x1646 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 0x31E SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x36B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x340 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36B 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 0x34E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x381 DUP3 PUSH2 0x878 JUMP JUMPDEST POP PUSH2 0x2CC DUP3 PUSH2 0x8B0 JUMP JUMPDEST PUSH2 0x396 DUP3 DUP3 CALLER PUSH2 0x8EA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3D6 DUP4 DUP4 CALLER PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x75B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x452 PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x45B DUP2 PUSH2 0xA2E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x466 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x3 PUSH2 0x445 DUP3 DUP5 DUP4 PUSH2 0x16C7 JUMP JUMPDEST PUSH2 0x49E PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x4B1 PUSH2 0x2D2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4BE PUSH2 0x5DD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4CB PUSH2 0xA94 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 SLOAD PUSH2 0x4DD SWAP1 PUSH2 0x1646 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 0x509 SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x556 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x52B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x556 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 0x539 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CC DUP3 PUSH2 0x878 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x5D2 PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH2 0xB26 JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2F2 SWAP1 PUSH2 0x1646 JUMP JUMPDEST PUSH2 0x396 CALLER DUP4 DUP4 PUSH2 0xB3E JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x66C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x688 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x696 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x6B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x6DE JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x6E6 PUSH2 0xA69 JUMP JUMPDEST PUSH2 0x6F0 DUP10 DUP10 PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x3 PUSH2 0x6FC DUP9 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x709 DUP8 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x750 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x766 DUP5 DUP5 DUP5 PUSH2 0x39A JUMP JUMPDEST PUSH2 0x424 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x77E DUP3 PUSH2 0x878 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x789 PUSH2 0xA94 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x7A9 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7D4 JUMP JUMPDEST DUP1 PUSH2 0x7B3 DUP5 PUSH2 0xD2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7C4 SWAP3 SWAP2 SWAP1 PUSH2 0x1844 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x859 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x2CC JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x884 DUP4 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2CC JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xDF8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x912 DUP6 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x92E JUMPI PUSH2 0x92E DUP2 DUP6 DUP8 PUSH2 0xF0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x96E JUMPI PUSH2 0x94B PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0xDF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x99F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA3D PUSH1 0x0 DUP4 PUSH1 0x0 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x396 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0xAA3 SWAP1 PUSH2 0x1646 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 0xACF SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB1C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAF1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB1C 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 0xAFF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xB30 DUP4 DUP4 PUSH2 0xF72 JUMP JUMPDEST PUSH2 0x445 CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xB7F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH2 0xBF7 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x396 DUP3 DUP3 PUSH2 0x1020 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xD25 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xC43 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xC7E JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xC7B SWAP2 DUP2 ADD SWAP1 PUSH2 0x18B0 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xCE7 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xCAC 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 0xCB1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xCDF JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xD23 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xD39 DUP4 PUSH2 0x1051 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH2 0xD58 PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD82 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xD8C JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0xE1B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 PUSH2 0xE2B DUP6 PUSH2 0x878 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xE57 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE6A JUMPI POP PUSH2 0xE68 DUP2 DUP6 PUSH2 0x7DB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xE93 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xEDB JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xF19 DUP4 DUP4 DUP4 PUSH2 0x1129 JUMP JUMPDEST PUSH2 0x445 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFAA DUP4 DUP4 PUSH1 0x0 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x445 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1028 PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x1042 DUP5 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x424 DUP4 DUP3 PUSH2 0x1786 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x1090 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x10BC JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x10DA JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x10F2 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1106 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1118 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2CC JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1187 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1163 JUMPI POP PUSH2 0x1163 DUP5 DUP5 PUSH2 0x7DB JUMP JUMPDEST DUP1 PUSH2 0x1187 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x117C DUP4 PUSH2 0x8B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7D4 DUP2 PUSH2 0x118F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11DD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x11C5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x11FE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x11C2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x7D4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x126D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1276 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12A2 DUP5 PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH2 0x12B0 PUSH1 0x20 DUP6 ADD PUSH2 0x123E JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x12EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x12FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0x1323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x134F PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x136C DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x138A DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x13A8 DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D4 DUP3 PUSH2 0x123E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x1413 JUMPI PUSH2 0x1413 PUSH2 0x13CC JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1441 JUMPI PUSH2 0x1441 PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x1459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x148B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1494 DUP5 PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14C2 DUP7 DUP3 DUP8 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14E8 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x14FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x151E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1540 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x155C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1568 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1590 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15B8 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x123E JUMP JUMPDEST SWAP4 POP PUSH2 0x15F1 PUSH1 0x20 DUP7 ADD PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x162F DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP2 POP PUSH2 0x163D PUSH1 0x20 DUP5 ADD PUSH2 0x123E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x165A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x167A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x445 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x16A7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD25 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x16B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x16DE JUMPI PUSH2 0x16DE PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x16F2 DUP4 PUSH2 0x16EC DUP4 SLOAD PUSH2 0x1646 JUMP JUMPDEST DUP4 PUSH2 0x1680 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1726 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x170E JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1757 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1737 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x1774 JUMPI PUSH1 0x0 NOT PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x179F JUMPI PUSH2 0x179F PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x17B3 DUP2 PUSH2 0x17AD DUP5 SLOAD PUSH2 0x1646 JUMP JUMPDEST DUP5 PUSH2 0x1680 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x17E7 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x17CF JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1817 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x17F7 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x1835 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1856 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x11C2 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x186A DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x11C2 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x18A6 SWAP1 DUP4 ADD DUP5 PUSH2 0x11E6 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7D4 DUP2 PUSH2 0x118F JUMP INVALID DUP1 0xBB 0x2B PUSH4 0x8CC20BC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB0079300A264697066735822122005D67CE4F8CB BLOBBASEFEE 0xC9 DUP15 DUP14 PUSH31 0xDAC86A6415C3F0467EC7830F8611056BFD261367E164736F6C634300081C00 CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GAS 0xED RETURN MOD BYTE 0x4C BLOBHASH 0xDE PUSH6 0x9F7BF7576396 PUSH1 0x84 XOR 0x2C PUSH0 SIGNEXTEND 0xAA 0xD9 0xEA MULMOD GAS 0x4F EXTCODESIZE TLOAD SWAP11 0xEE DUP16 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"275:1601:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;635:634;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1361:32:89;;;1343:51;;1331:2;1316:18;635:634:55;;;;;;;1542:332;;;;;;:::i;:::-;;:::i;635:634::-;733:7;752:21;806:40;;;;;;;;:::i;:::-;-1:-1:-1;;806:40:55;;;;;;;;;;;;;;;;776:102;;806:40;860:8;;;;806:40;776:102;;:::i;:::-;;;;;;;;;;;;;752:126;;888:13;904:33;919:1;922:4;928:8;904:14;:33::i;:::-;888:49;-1:-1:-1;962:18:55;;;;1100:54;;;;1111:8;1100:54;:::i;:::-;948:206;;;;;;;;1187:5;-1:-1:-1;;;;;1165:39:55;;1205:4;1211:6;1219:7;1228:10;1165:74;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:5:55;;635:634;-1:-1:-1;;;;;;;;;;;;;;635:634:55:o;1542:332::-;1646:7;1665:21;1719:40;;;;;;;;:::i;:::-;-1:-1:-1;;1719:40:55;;;;;;;;;;;;;;;;1689:102;;1719:40;1773:8;;;;1719:40;1689:102;;:::i;:::-;;;;;;;;;;;;;1665:126;;1808:59;1831:4;1847:8;1837:19;;;;;;1858:8;1808:22;:59::i;:::-;1801:66;1542:332;-1:-1:-1;;;;;;1542:332:55:o;1210:847:34:-;1297:12;1349:6;1325:21;:30;1321:125;;;1378:57;;-1:-1:-1;;;1378:57:34;;1405:21;1378:57;;;5850:25:89;5891:18;;;5884:34;;;5823:18;;1378:57:34;;;;;;;1321:125;1459:8;:15;1478:1;1459:20;1455:80;;1502:22;;-1:-1:-1;;;1502:22:34;;;;;;;;;;;1455:80;1645:4;1634:8;1628:15;1621:4;1611:8;1607:19;1599:6;1591:59;1583:67;;1780:16;1773:24;1769:29;1762:4;1755:12;1751:48;1748:203;;;1833:4;1827:11;1876:16;1873:1;1870;1855:38;1920:16;1917:1;1910:27;1748:203;-1:-1:-1;;;;;1974:18:34;;1970:81;;2015:25;;-1:-1:-1;;;2015:25:34;;;;;;;;;;;1970:81;1210:847;;;;;:::o;2669:1794::-;2770:12;2850:4;2844:11;4069:12;4062:4;4057:3;4053:14;4046:36;4118:4;4111;4106:3;4102:14;4095:28;4148:8;4143:3;4136:21;4241:4;4236:3;4232:14;4219:27;;4352:4;4345:5;4337:20;4399:2;4382:20;;-1:-1:-1;;;;;4378:69:34;;2669:1794;-1:-1:-1;;;;2669:1794:34:o;-1:-1:-1:-;;;;;;;;:::o;14:347:89:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:89;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:826::-;465:6;473;481;489;497;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;611:23;;;-1:-1:-1;709:2:89;694:18;;681:32;736:18;725:30;;722:50;;;768:1;765;758:12;722:50;807:58;857:7;848:6;837:9;833:22;807:58;:::i;:::-;884:8;;-1:-1:-1;781:84:89;-1:-1:-1;;972:2:89;957:18;;944:32;1001:18;988:32;;985:52;;;1033:1;1030;1023:12;985:52;1072:60;1124:7;1113:8;1102:9;1098:24;1072:60;:::i;:::-;366:826;;;;-1:-1:-1;366:826:89;;-1:-1:-1;1151:8:89;;1046:86;366:826;-1:-1:-1;;;366:826:89:o;1405:705::-;1493:6;1501;1509;1517;1570:2;1558:9;1549:7;1545:23;1541:32;1538:52;;;1586:1;1583;1576:12;1538:52;1631:23;;;-1:-1:-1;1729:2:89;1714:18;;1701:32;1756:18;1745:30;;1742:50;;;1788:1;1785;1778:12;1742:50;1827:58;1877:7;1868:6;1857:9;1853:22;1827:58;:::i;:::-;1904:8;;-1:-1:-1;1801:84:89;-1:-1:-1;;1991:2:89;1976:18;;1963:32;-1:-1:-1;;;;;2026:33:89;;2014:46;;2004:74;;2074:1;2071;2064:12;2004:74;1405:705;;;;-1:-1:-1;1405:705:89;;-1:-1:-1;;1405:705:89:o;2115:250::-;2200:1;2210:113;2224:6;2221:1;2218:13;2210:113;;;2300:11;;;2294:18;2281:11;;;2274:39;2246:2;2239:10;2210:113;;;-1:-1:-1;;2357:1:89;2339:16;;2332:27;2115:250::o;2370:470::-;2555:3;2593:6;2587:13;2609:66;2668:6;2663:3;2656:4;2648:6;2644:17;2609:66;:::i;:::-;2697:16;;2750:6;2742;2697:16;2722:35;2814:1;2776:18;;2803:13;;;-1:-1:-1;2776:18:89;;2370:470;-1:-1:-1;;;2370:470:89:o;2845:127::-;2906:10;2901:3;2897:20;2894:1;2887:31;2937:4;2934:1;2927:15;2961:4;2958:1;2951:15;2977:726;3020:5;3073:3;3066:4;3058:6;3054:17;3050:27;3040:55;;3091:1;3088;3081:12;3040:55;3131:6;3118:20;3161:18;3153:6;3150:30;3147:56;;;3183:18;;:::i;:::-;3232:2;3226:9;3324:2;3286:17;;-1:-1:-1;;3282:31:89;;;3315:2;3278:40;3274:54;3262:67;;3359:18;3344:34;;3380:22;;;3341:62;3338:88;;;3406:18;;:::i;:::-;3442:2;3435:22;3466;;;3507:19;;;3528:4;3503:30;3500:39;-1:-1:-1;3497:59:89;;;3552:1;3549;3542:12;3497:59;3616:6;3609:4;3601:6;3597:17;3590:4;3582:6;3578:17;3565:58;3671:1;3643:19;;;3664:4;3639:30;3632:41;;;;3647:6;2977:726;-1:-1:-1;;;2977:726:89:o;3708:971::-;3834:6;3842;3850;3858;3911:3;3899:9;3890:7;3886:23;3882:33;3879:53;;;3928:1;3925;3918:12;3879:53;3968:9;3955:23;4001:18;3993:6;3990:30;3987:50;;;4033:1;4030;4023:12;3987:50;4056;4098:7;4089:6;4078:9;4074:22;4056:50;:::i;:::-;4046:60;;;4159:2;4148:9;4144:18;4131:32;4188:18;4178:8;4175:32;4172:52;;;4220:1;4217;4210:12;4172:52;4243;4287:7;4276:8;4265:9;4261:24;4243:52;:::i;:::-;4233:62;;;4348:2;4337:9;4333:18;4320:32;4377:18;4367:8;4364:32;4361:52;;;4409:1;4406;4399:12;4361:52;4432;4476:7;4465:8;4454:9;4450:24;4432:52;:::i;:::-;4422:62;;;4537:2;4526:9;4522:18;4509:32;4566:18;4556:8;4553:32;4550:52;;;4598:1;4595;4588:12;4550:52;4621;4665:7;4654:8;4643:9;4639:24;4621:52;:::i;:::-;4611:62;;;3708:971;;;;;;;:::o;4684:271::-;4726:3;4764:5;4758:12;4791:6;4786:3;4779:19;4807:76;4876:6;4869:4;4864:3;4860:14;4853:4;4846:5;4842:16;4807:76;:::i;:::-;4937:2;4916:15;-1:-1:-1;;4912:29:89;4903:39;;;;4944:4;4899:50;;4684:271;-1:-1:-1;;4684:271:89:o;4960:711::-;5253:3;5242:9;5235:22;5216:4;5280:46;5321:3;5310:9;5306:19;5298:6;5280:46;:::i;:::-;5374:9;5366:6;5362:22;5357:2;5346:9;5342:18;5335:50;5408:33;5434:6;5426;5408:33;:::i;:::-;5394:47;;5489:9;5481:6;5477:22;5472:2;5461:9;5457:18;5450:50;5523:33;5549:6;5541;5523:33;:::i;:::-;5509:47;;5604:9;5596:6;5592:22;5587:2;5576:9;5572:18;5565:50;5632:33;5658:6;5650;5632:33;:::i;:::-;5624:41;4960:711;-1:-1:-1;;;;;;;4960:711:89:o"},"methodIdentifiers":{"computeAddress(bytes32,bytes,address)":"a3180978","deploy(bytes32,bytes,bytes)":"19cdeff1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"initData\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"kind\":\"dev\",\"methods\":{\"computeAddress(bytes32,bytes,address)\":{\"details\":\"Compute address of the token contract\",\"params\":{\"deployer\":\"Address of the deployer\",\"initCode\":\"Constructor params of the token\",\"salt\":\"Salt for the contract deployment\"},\"returns\":{\"_0\":\"Calculated address of the token\"}},\"deploy(bytes32,bytes,bytes)\":{\"details\":\"Deploy new ERC20 token, must be called by tokenUtils with delegate call\",\"params\":{\"initCode\":\"constructor params of the token\",\"initData\":\"initializer params of the token\",\"salt\":\"salt for the contract deployment\"},\"returns\":{\"_0\":\"address of the deployed token\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/TokenFactories/ERC721TokenFactory.sol\":\"ERC721TokenFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/TokenFactories/ERC721TokenFactory.sol\":{\"keccak256\":\"0xd62a27dc7d81907e9b33f6f96a28839ec166cd7b6477d417eb39e1121b7fb9c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e4021ff143126e050f52cbd8fba0500cd8accec002bd13b5ab1cafd02a95958\",\"dweb:/ipfs/QmUFdEWoWUdB24ckPQUBLMzbELqqviakT3KfYibSqnB31A\"]},\"contracts/core/tokens/CrossChainLayerERC721.sol\":{\"keccak256\":\"0x69cbd505626bc8fd1910ff90c4415546130ccad6e7415cc9f4120b11afdda1e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0683106d424f746722cdcac75332322872cba15b3b1c174773d2e211873f6293\",\"dweb:/ipfs/QmcmFYvu1mN8asdotvdrehZsG5LHnN1nd7iFV7RjsN1KMv\"]},\"contracts/interfaces/ITokenFactory.sol\":{\"keccak256\":\"0x7d5876f09848176c3d24b4c70373f57888ce07a9a8398b34ea88ef7bf6d9459b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://748c941428a6b58fb3b4cee0a29ffcc32f3d828eada1654e430c1c25931597ca\",\"dweb:/ipfs/QmRARDh9XRMLqJrUmWKhVSVzw3aaUqD7jYkLAYrEz9PTdq\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC721.sol\":{\"keccak256\":\"0x207f34fcfd0746b604ecee8ca8b9abf79a5a614e9ef5355f617d65e0d2c25b1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb9bdcc8e9fcfc33de76cb7e6a8ed4073c9c33db36707e2b5d7e2f2acf047656\",\"dweb:/ipfs/QmRhXA5JwjnNTrTnLvuw6DAVqQt8oG7SmtGxiH9pQU6ngN\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/core/TokenUtils.sol":{"TokenUtils":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"InvalidTokenType","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"TokenNotFound","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"inputs":[],"name":"UnauthorizedAccess","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"tvmAddress","type":"string"},{"indexed":false,"internalType":"address","name":"evmAddress","type":"address"},{"indexed":false,"internalType":"uint8","name":"tokenType","type":"uint8"}],"name":"TokenCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC20_TYPE","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC721_TYPE","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"tvmAddress","type":"string"}],"name":"computeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"tvmAddress","type":"string"}],"name":"computeAddressERC721","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo","name":"info","type":"tuple"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo","name":"info","type":"tuple"}],"name":"createERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tvmAddress","type":"string"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"evmAddress","type":"address"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"evmAddress","type":"address"}],"name":"getTokenDeployTime","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"},{"internalType":"address","name":"crossChainLayer","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"erc721Token","type":"address"},{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenType","type":"uint256"},{"internalType":"address","name":"factory","type":"address"}],"name":"setTokenFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a060405230608052348015601357600080fd5b50608051611a1a61003d60003960008181610fd201528181610ffb015261114c0152611a1a6000f3fe60806040526004361061014b5760003560e01c806352d1902d116100b657806391d148541161006f57806391d14854146103e457806396c8e82014610404578063a217fddf14610424578063ad3cb1cc14610439578063d547741f14610477578063f6a3d24e1461049757600080fd5b806352d1902d146102f75780636f3769c01461030c57806372798a89146103335780637f26b45c14610348578063851bdf111461036857806388433651146103c457600080fd5b80632a0acc6a116101085780632a0acc6a1461024d5780632f2ff15d1461026f57806331f449001461028f57806336568abe146102a4578063485cc955146102c45780634f1ef286146102e457600080fd5b806301ffc9a7146101505780631963202b146101855780631adc56db146101a75780631f596f89146101c7578063248a9ca3146101ff578063261a323e1461022d575b600080fd5b34801561015c57600080fd5b5061017061016b3660046113cf565b6104d2565b60405190151581526020015b60405180910390f35b34801561019157600080fd5b506101a56101a0366004611411565b610509565b005b3480156101b357600080fd5b506101a56101c2366004611411565b6105ba565b3480156101d357600080fd5b506101e76101e2366004611495565b61065d565b6040516001600160a01b03909116815260200161017c565b34801561020b57600080fd5b5061021f61021a3660046114d6565b610672565b60405190815260200161017c565b34801561023957600080fd5b50610170610248366004611495565b610694565b34801561025957600080fd5b5061021f60008051602061198583398151915281565b34801561027b57600080fd5b506101a561028a366004611504565b6106d5565b34801561029b57600080fd5b506101a56106f7565b3480156102b057600080fd5b506101a56102bf366004611504565b610737565b3480156102d057600080fd5b506101a56102df366004611534565b61076a565b6101a56102f2366004611578565b6108ba565b34801561030357600080fd5b5061021f6108d9565b34801561031857600080fd5b50610321600181565b60405160ff909116815260200161017c565b34801561033f57600080fd5b50610321600281565b34801561035457600080fd5b506101a5610363366004611504565b6108f6565b34801561037457600080fd5b506103ac610383366004611641565b6001600160a01b031660009081526020819052604090205461010090046001600160401b031690565b6040516001600160401b03909116815260200161017c565b3480156103d057600080fd5b506101a56103df36600461165e565b610975565b3480156103f057600080fd5b506101706103ff366004611504565b610a3a565b34801561041057600080fd5b506101e761041f366004611495565b610a72565b34801561043057600080fd5b5061021f600081565b34801561044557600080fd5b5061046a604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161017c9190611702565b34801561048357600080fd5b506101a5610492366004611504565b610a80565b3480156104a357600080fd5b506101706104b2366004611641565b6001600160a01b031660009081526020819052604090205460ff16151590565b60006001600160e01b03198216637965db0b60e01b148061050357506301ffc9a760e01b6001600160e01b03198316145b92915050565b610511610a9c565b600354604080516001600160a01b0390921660208301526000910160408051601f198184030181529190529050600061054a8380611715565b6105576020860186611715565b610567606088016040890161175b565b6105746060890189611715565b60405160200161058a97969594939291906117a7565b60408051601f1981840301815291905290506105b560016105ae6060860186611715565b8585610ac7565b505050565b6105c2610a9c565b600354604080516001600160a01b0390921660208301526000910160408051601f19818403018152919052905060006105fb8380611715565b6106086020860186611715565b6106156040880188611715565b61062260608a018a611715565b6040516020016106399897969594939291906117fa565b60408051601f1981840301815291905290506105b560026105ae6060860186611715565b600061066b83836001610cb3565b9392505050565b60009081526000805160206119a5833981519152602052604090206001015490565b6000806001600160a01b0316600184846040516106b292919061185a565b908152604051908190036020019020546001600160a01b03161415905092915050565b6106de82610672565b6106e781610d93565b6106f18383610da0565b50505050565b6000805160206119c5833981519152546001600160401b03161561072d5760405162dc149f60e41b815260040160405180910390fd5b610735610e45565b565b6001600160a01b03811633146107605760405163334bd91960e11b815260040160405180910390fd5b6105b58282610ee0565b6000805160206119c58339815191528054600160401b810460ff1615906001600160401b031660008115801561079d5750825b90506000826001600160401b031660011480156107b95750303b155b9050811580156107c7575080155b156107e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561080f57845460ff60401b1916600160401b1785555b610817610f5c565b61081f610f5c565b61083760008051602061198583398151915280610f64565b61084f60008051602061198583398151915288610da0565b50600380546001600160a01b0319166001600160a01b03881617905583156108b157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6108c2610fc7565b6108cb8261106c565b6108d58282611084565b5050565b60006108e3611141565b5060008051602061196583398151915290565b60008051602061198583398151915261090e81610d93565b60018314801590610920575060028314155b15610946576040516332c5af1f60e11b8152600481018490526024015b60405180910390fd5b5060009182526002602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60008051602061198583398151915261098d81610d93565b6001600160a01b03841660009081526020819052604090205460ff166002146109d45760405163de6137d160e01b81526001600160a01b038516600482015260240161093d565b6040516355f804b360e01b81526001600160a01b038516906355f804b390610a02908690869060040161186a565b600060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b5050505050505050565b60009182526000805160206119a5833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061066b83836002610cb3565b610a8982610672565b610a9281610d93565b6106f18383610ee0565b6003546001600160a01b0316331461073557604051631a27eac360e11b815260040160405180910390fd5b60008484604051602001610adc92919061185a565b60408051601f19818403018152828252805160209182012060ff8a1660009081526002909252918120549193509182916001600160a01b0316906319cdeff160e01b90610b319086908990899060240161187e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610b6f91906118a9565b600060405180830381855af49150503d8060008114610baa576040519150601f19603f3d011682016040523d82523d6000602084013e610baf565b606091505b509150915081610bc25780518082602001fd5b600081806020019051810190610bd891906118c5565b90508060018989604051610bed92919061185a565b90815260408051918290036020908101832080546001600160a01b039586166001600160a01b0319909116179055828201825260ff808e1684526001600160401b03428116858401908152958716600090815292839052918390209351845495519092166101000268ffffffffffffffffff19909516911617929092179055517f8987aafc647b2712c770282704dba882de96544516cfc1e40cb00a9bf467e88e90610ca0908a908a9085908e906118e2565b60405180910390a1505050505050505050565b6000808484604051602001610cc992919061185a565b60408051808303601f1901815282825280516020918201206003546001600160a01b03169184019190915292506000910160408051601f19818403018152828252600087815260026020529190912054631463012f60e31b83529092506001600160a01b03169063a318097890610d489085908590309060040161191a565b602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8991906118c5565b9695505050505050565b610d9d813361118a565b50565b60006000805160206119a5833981519152610dbb8484610a3a565b610e3b576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055610df13390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610503565b6000915050610503565b6000805160206119c58339815191528054600160401b900460ff1615610e7e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614610d9d57805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b60006000805160206119a5833981519152610efb8484610a3a565b15610e3b576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610503565b6107356111c3565b6000805160206119a58339815191526000610f7e84610672565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061104e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611042600080516020611965833981519152546001600160a01b031690565b6001600160a01b031614155b156107355760405163703e46dd60e11b815260040160405180910390fd5b6000805160206119858339815191526108d581610d93565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110de575060408051601f3d908101601f191682019092526110db9181019061194b565b60015b61110657604051634c9c8ce360e01b81526001600160a01b038316600482015260240161093d565b600080516020611965833981519152811461113757604051632a87526960e21b81526004810182905260240161093d565b6105b583836111fa565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107355760405163703e46dd60e11b815260040160405180910390fd5b6111948282610a3a565b6108d55760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161093d565b6000805160206119c583398151915254600160401b900460ff1661073557604051631afcd79f60e31b815260040160405180910390fd5b61120382611250565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611248576105b582826112b5565b6108d561132b565b806001600160a01b03163b60000361128657604051634c9c8ce360e01b81526001600160a01b038216600482015260240161093d565b60008051602061196583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516112d291906118a9565b600060405180830381855af49150503d806000811461130d576040519150601f19603f3d011682016040523d82523d6000602084013e611312565b606091505b509150915061132285838361134a565b95945050505050565b34156107355760405163b398979f60e01b815260040160405180910390fd5b60608261135f5761135a826113a6565b61066b565b815115801561137657506001600160a01b0384163b155b1561139f57604051639996b31560e01b81526001600160a01b038516600482015260240161093d565b508061066b565b8051156113b65780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000602082840312156113e157600080fd5b81356001600160e01b03198116811461066b57600080fd5b60006080828403121561140b57600080fd5b50919050565b60006020828403121561142357600080fd5b81356001600160401b0381111561143957600080fd5b611445848285016113f9565b949350505050565b60008083601f84011261145f57600080fd5b5081356001600160401b0381111561147657600080fd5b60208301915083602082850101111561148e57600080fd5b9250929050565b600080602083850312156114a857600080fd5b82356001600160401b038111156114be57600080fd5b6114ca8582860161144d565b90969095509350505050565b6000602082840312156114e857600080fd5b5035919050565b6001600160a01b0381168114610d9d57600080fd5b6000806040838503121561151757600080fd5b823591506020830135611529816114ef565b809150509250929050565b6000806040838503121561154757600080fd5b8235611552816114ef565b91506020830135611529816114ef565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561158b57600080fd5b8235611596816114ef565b915060208301356001600160401b038111156115b157600080fd5b8301601f810185136115c257600080fd5b80356001600160401b038111156115db576115db611562565b604051601f8201601f19908116603f011681016001600160401b038111828210171561160957611609611562565b60405281815282820160200187101561162157600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006020828403121561165357600080fd5b813561066b816114ef565b60008060006040848603121561167357600080fd5b833561167e816114ef565b925060208401356001600160401b0381111561169957600080fd5b6116a58682870161144d565b9497909650939450505050565b60005b838110156116cd5781810151838201526020016116b5565b50506000910152565b600081518084526116ee8160208601602086016116b2565b601f01601f19169290920160200192915050565b60208152600061066b60208301846116d6565b6000808335601e1984360301811261172c57600080fd5b8301803591506001600160401b0382111561174657600080fd5b60200191503681900382131561148e57600080fd5b60006020828403121561176d57600080fd5b813560ff8116811461066b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6080815260006117bb60808301898b61177e565b82810360208401526117ce81888a61177e565b905060ff8616604084015282810360608401526117ec81858761177e565b9a9950505050505050505050565b60808152600061180e608083018a8c61177e565b828103602084015261182181898b61177e565b9050828103604084015261183681878961177e565b9050828103606084015261184b81858761177e565b9b9a5050505050505050505050565b8183823760009101908152919050565b60208152600061144560208301848661177e565b83815260606020820152600061189760608301856116d6565b8281036040840152610d8981856116d6565b600082516118bb8184602087016116b2565b9190910192915050565b6000602082840312156118d757600080fd5b815161066b816114ef565b6060815260006118f660608301868861177e565b6001600160a01b039490941660208301525060ff9190911660409091015292915050565b83815260606020820152600061193360608301856116d6565b905060018060a01b0383166040830152949350505050565b60006020828403121561195d57600080fd5b505191905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220fb7a538a64b7ff8cd5968b9f62da801e8c2c9e694e1ae6950c31012e1aea865664736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x1A1A PUSH2 0x3D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0xFD2 ADD MSTORE DUP2 DUP2 PUSH2 0xFFB ADD MSTORE PUSH2 0x114C ADD MSTORE PUSH2 0x1A1A PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0x91D14854 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x3E4 JUMPI DUP1 PUSH4 0x96C8E820 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x439 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x477 JUMPI DUP1 PUSH4 0xF6A3D24E EQ PUSH2 0x497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x52D1902D EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x6F3769C0 EQ PUSH2 0x30C JUMPI DUP1 PUSH4 0x72798A89 EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x7F26B45C EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x851BDF11 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x88433651 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A0ACC6A GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x31F44900 EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x150 JUMPI DUP1 PUSH4 0x1963202B EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x1ADC56DB EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x1F596F89 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x261A323E EQ PUSH2 0x22D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x16B CALLDATASIZE PUSH1 0x4 PUSH2 0x13CF JUMP JUMPDEST PUSH2 0x4D2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1411 JUMP JUMPDEST PUSH2 0x509 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x1C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1411 JUMP JUMPDEST PUSH2 0x5BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0x694 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0x6D5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x6F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x2BF CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0x737 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1534 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x2F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1578 JUMP JUMPDEST PUSH2 0x8BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x8D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x321 PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x321 PUSH1 0x2 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x363 CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0x8F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AC PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x1641 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x3DF CALLDATASIZE PUSH1 0x4 PUSH2 0x165E JUMP JUMPDEST PUSH2 0x975 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0xA3A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0xA72 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x445 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17C SWAP2 SWAP1 PUSH2 0x1702 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x492 CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0xA80 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x4B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1641 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x503 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x511 PUSH2 0xA9C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0x54A DUP4 DUP1 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x557 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x567 PUSH1 0x60 DUP9 ADD PUSH1 0x40 DUP10 ADD PUSH2 0x175B JUMP JUMPDEST PUSH2 0x574 PUSH1 0x60 DUP10 ADD DUP10 PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x58A SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE SWAP1 POP PUSH2 0x5B5 PUSH1 0x1 PUSH2 0x5AE PUSH1 0x60 DUP7 ADD DUP7 PUSH2 0x1715 JUMP JUMPDEST DUP6 DUP6 PUSH2 0xAC7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5C2 PUSH2 0xA9C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0x5FB DUP4 DUP1 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x608 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x615 PUSH1 0x40 DUP9 ADD DUP9 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x622 PUSH1 0x60 DUP11 ADD DUP11 PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x639 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x17FA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE SWAP1 POP PUSH2 0x5B5 PUSH1 0x2 PUSH2 0x5AE PUSH1 0x60 DUP7 ADD DUP7 PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66B DUP4 DUP4 PUSH1 0x1 PUSH2 0xCB3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x6B2 SWAP3 SWAP2 SWAP1 PUSH2 0x185A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6DE DUP3 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x6E7 DUP2 PUSH2 0xD93 JUMP JUMPDEST PUSH2 0x6F1 DUP4 DUP4 PUSH2 0xDA0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19C5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x735 PUSH2 0xE45 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x760 JUMPI PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5B5 DUP3 DUP3 PUSH2 0xEE0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19C5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x7B9 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x7C7 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x80F JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x817 PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x81F PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x837 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0xF64 JUMP JUMPDEST PUSH2 0x84F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP9 PUSH2 0xDA0 JUMP JUMPDEST POP PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x8B1 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8C2 PUSH2 0xFC7 JUMP JUMPDEST PUSH2 0x8CB DUP3 PUSH2 0x106C JUMP JUMPDEST PUSH2 0x8D5 DUP3 DUP3 PUSH2 0x1084 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E3 PUSH2 0x1141 JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1965 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x90E DUP2 PUSH2 0xD93 JUMP JUMPDEST PUSH1 0x1 DUP4 EQ DUP1 ISZERO SWAP1 PUSH2 0x920 JUMPI POP PUSH1 0x2 DUP4 EQ ISZERO JUMPDEST ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32C5AF1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x98D DUP2 PUSH2 0xD93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ PUSH2 0x9D4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDE6137D1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x55F804B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x55F804B3 SWAP1 PUSH2 0xA02 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x186A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66B DUP4 DUP4 PUSH1 0x2 PUSH2 0xCB3 JUMP JUMPDEST PUSH2 0xA89 DUP3 PUSH2 0x672 JUMP JUMPDEST PUSH2 0xA92 DUP2 PUSH2 0xD93 JUMP JUMPDEST PUSH2 0x6F1 DUP4 DUP4 PUSH2 0xEE0 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xADC SWAP3 SWAP2 SWAP1 PUSH2 0x185A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0xFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 SLOAD SWAP2 SWAP4 POP SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x19CDEFF1 PUSH1 0xE0 SHL SWAP1 PUSH2 0xB31 SWAP1 DUP7 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x24 ADD PUSH2 0x187E 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 0xB6F SWAP2 SWAP1 PUSH2 0x18A9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xBAA 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 0xBAF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xBC2 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBD8 SWAP2 SWAP1 PUSH2 0x18C5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0xBED SWAP3 SWAP2 SWAP1 PUSH2 0x185A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xFF DUP1 DUP15 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB TIMESTAMP DUP2 AND DUP6 DUP5 ADD SWAP1 DUP2 MSTORE SWAP6 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 DUP4 SWAP1 MSTORE SWAP2 DUP4 SWAP1 KECCAK256 SWAP4 MLOAD DUP5 SLOAD SWAP6 MLOAD SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH9 0xFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP6 AND SWAP2 AND OR SWAP3 SWAP1 SWAP3 OR SWAP1 SSTORE MLOAD PUSH32 0x8987AAFC647B2712C770282704DBA882DE96544516CFC1E40CB00A9BF467E88E SWAP1 PUSH2 0xCA0 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP6 SWAP1 DUP15 SWAP1 PUSH2 0x18E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCC9 SWAP3 SWAP2 SWAP1 PUSH2 0x185A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 POP PUSH1 0x0 SWAP2 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SLOAD PUSH4 0x1463012F PUSH1 0xE3 SHL DUP4 MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3180978 SWAP1 PUSH2 0xD48 SWAP1 DUP6 SWAP1 DUP6 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x191A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD65 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 0xD89 SWAP2 SWAP1 PUSH2 0x18C5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD9D DUP2 CALLER PUSH2 0x118A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xDBB DUP5 DUP5 PUSH2 0xA3A JUMP JUMPDEST PUSH2 0xE3B JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xDF1 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x503 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x503 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19C5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE7E JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0xD9D JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xEFB DUP5 DUP5 PUSH2 0xA3A JUMP JUMPDEST ISZERO PUSH2 0xE3B JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP8 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x503 JUMP JUMPDEST PUSH2 0x735 PUSH2 0x11C3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 PUSH2 0xF7E DUP5 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP7 SWAP1 SSTORE MLOAD SWAP2 SWAP3 POP DUP5 SWAP2 DUP4 SWAP2 DUP8 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x104E JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1042 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1965 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x8D5 DUP2 PUSH2 0xD93 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x10DE JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x10DB SWAP2 DUP2 ADD SWAP1 PUSH2 0x194B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1106 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1965 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x1137 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST PUSH2 0x5B5 DUP4 DUP4 PUSH2 0x11FA JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1194 DUP3 DUP3 PUSH2 0xA3A JUMP JUMPDEST PUSH2 0x8D5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x93D JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19C5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1203 DUP3 PUSH2 0x1250 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x1248 JUMPI PUSH2 0x5B5 DUP3 DUP3 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x8D5 PUSH2 0x132B JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x1286 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1965 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x12D2 SWAP2 SWAP1 PUSH2 0x18A9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x130D 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 0x1312 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1322 DUP6 DUP4 DUP4 PUSH2 0x134A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x135F JUMPI PUSH2 0x135A DUP3 PUSH2 0x13A6 JUMP JUMPDEST PUSH2 0x66B JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x1376 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x139F JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST POP DUP1 PUSH2 0x66B JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x13B6 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1439 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1445 DUP5 DUP3 DUP6 ADD PUSH2 0x13F9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x145F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x148E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14CA DUP6 DUP3 DUP7 ADD PUSH2 0x144D JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1529 DUP2 PUSH2 0x14EF JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1552 DUP2 PUSH2 0x14EF JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1529 DUP2 PUSH2 0x14EF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x158B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1596 DUP2 PUSH2 0x14EF JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x15C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15DB JUMPI PUSH2 0x15DB PUSH2 0x1562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1609 JUMPI PUSH2 0x1609 PUSH2 0x1562 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x1621 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x66B DUP2 PUSH2 0x14EF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1673 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x167E DUP2 PUSH2 0x14EF JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1699 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16A5 DUP7 DUP3 DUP8 ADD PUSH2 0x144D JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16CD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x16B5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x16EE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x16B2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x66B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x16D6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x172C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x148E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x176D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x17BB PUSH1 0x80 DUP4 ADD DUP10 DUP12 PUSH2 0x177E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x17CE DUP2 DUP9 DUP11 PUSH2 0x177E JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x17EC DUP2 DUP6 DUP8 PUSH2 0x177E JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x180E PUSH1 0x80 DUP4 ADD DUP11 DUP13 PUSH2 0x177E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1821 DUP2 DUP10 DUP12 PUSH2 0x177E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x1836 DUP2 DUP8 DUP10 PUSH2 0x177E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x184B DUP2 DUP6 DUP8 PUSH2 0x177E JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1445 PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x177E JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1897 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x16D6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xD89 DUP2 DUP6 PUSH2 0x16D6 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x18BB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x16B2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x66B DUP2 PUSH2 0x14EF JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x18F6 PUSH1 0x60 DUP4 ADD DUP7 DUP9 PUSH2 0x177E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1933 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x195D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCDF8B4C520FFE197C5343C6 CREATE2 0xAE 0xC5 SWAP6 PUSH17 0x151EF9A492F2C624FD45DDDE6135EC4202 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP CREATE 0xC5 PUSH31 0x16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00A264 PUSH10 0x70667358221220FB7A53 DUP11 PUSH5 0xB7FF8CD596 DUP12 SWAP16 PUSH3 0xDA801E DUP13 0x2C SWAP15 PUSH10 0x4E1AE6950C31012E1AEA DUP7 JUMP PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"862:6518:56:-:0;;;1171:4:4;1128:48;;862:6518:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ADMIN_16523":{"entryPoint":null,"id":16523,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_28":{"entryPoint":null,"id":28,"parameterSlots":0,"returnSlots":0},"@ERC20_TYPE_16526":{"entryPoint":null,"id":16526,"parameterSlots":0,"returnSlots":0},"@ERC721_TYPE_16529":{"entryPoint":null,"id":16529,"parameterSlots":0,"returnSlots":0},"@UPGRADE_INTERFACE_VERSION_972":{"entryPoint":null,"id":972,"parameterSlots":0,"returnSlots":0},"@__AccessControl_init_63":{"entryPoint":null,"id":63,"parameterSlots":0,"returnSlots":0},"@__UUPSUpgradeable_init_1002":{"entryPoint":3932,"id":1002,"parameterSlots":0,"returnSlots":0},"@_authorizeUpgrade_16592":{"entryPoint":4204,"id":16592,"parameterSlots":1,"returnSlots":0},"@_checkCrossChainLayer_16605":{"entryPoint":2716,"id":16605,"parameterSlots":0,"returnSlots":0},"@_checkInitializing_870":{"entryPoint":4547,"id":870,"parameterSlots":0,"returnSlots":0},"@_checkNonPayable_3695":{"entryPoint":4907,"id":3695,"parameterSlots":0,"returnSlots":0},"@_checkNotDelegated_1078":{"entryPoint":4417,"id":1078,"parameterSlots":0,"returnSlots":0},"@_checkProxy_1062":{"entryPoint":4039,"id":1062,"parameterSlots":0,"returnSlots":0},"@_checkRole_129":{"entryPoint":3475,"id":129,"parameterSlots":1,"returnSlots":0},"@_checkRole_150":{"entryPoint":4490,"id":150,"parameterSlots":2,"returnSlots":0},"@_computeAddress_16913":{"entryPoint":3251,"id":16913,"parameterSlots":3,"returnSlots":1},"@_create_16752":{"entryPoint":2759,"id":16752,"parameterSlots":5,"returnSlots":0},"@_disableInitializers_916":{"entryPoint":3653,"id":916,"parameterSlots":0,"returnSlots":0},"@_getAccessControlStorage_46":{"entryPoint":null,"id":46,"parameterSlots":0,"returnSlots":1},"@_getInitializableStorage_947":{"entryPoint":null,"id":947,"parameterSlots":0,"returnSlots":1},"@_getInitializedVersion_927":{"entryPoint":null,"id":927,"parameterSlots":0,"returnSlots":1},"@_grantRole_315":{"entryPoint":3488,"id":315,"parameterSlots":2,"returnSlots":1},"@_isInitializing_938":{"entryPoint":null,"id":938,"parameterSlots":0,"returnSlots":1},"@_msgSender_2855":{"entryPoint":null,"id":2855,"parameterSlots":0,"returnSlots":1},"@_revert_6627":{"entryPoint":5030,"id":6627,"parameterSlots":1,"returnSlots":0},"@_revokeRole_361":{"entryPoint":3808,"id":361,"parameterSlots":2,"returnSlots":1},"@_setImplementation_3475":{"entryPoint":4688,"id":3475,"parameterSlots":1,"returnSlots":0},"@_setRoleAdmin_268":{"entryPoint":3940,"id":268,"parameterSlots":2,"returnSlots":0},"@_upgradeToAndCallUUPS_1129":{"entryPoint":4228,"id":1129,"parameterSlots":2,"returnSlots":0},"@computeAddressERC721_16941":{"entryPoint":2674,"id":16941,"parameterSlots":2,"returnSlots":1},"@computeAddress_16927":{"entryPoint":1629,"id":16927,"parameterSlots":2,"returnSlots":1},"@createERC721_16838":{"entryPoint":1466,"id":16838,"parameterSlots":1,"returnSlots":0},"@create_16795":{"entryPoint":1289,"id":16795,"parameterSlots":1,"returnSlots":0},"@disableInitializers_16246":{"entryPoint":1783,"id":16246,"parameterSlots":0,"returnSlots":0},"@exists_16854":{"entryPoint":null,"id":16854,"parameterSlots":1,"returnSlots":1},"@exists_16872":{"entryPoint":1684,"id":16872,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_6545":{"entryPoint":4789,"id":6545,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_6935":{"entryPoint":null,"id":6935,"parameterSlots":1,"returnSlots":1},"@getImplementation_3448":{"entryPoint":null,"id":3448,"parameterSlots":0,"returnSlots":1},"@getRoleAdmin_171":{"entryPoint":1650,"id":171,"parameterSlots":1,"returnSlots":1},"@getTokenDeployTime_16955":{"entryPoint":null,"id":16955,"parameterSlots":1,"returnSlots":1},"@grantRole_190":{"entryPoint":1749,"id":190,"parameterSlots":2,"returnSlots":0},"@hasRole_116":{"entryPoint":2618,"id":116,"parameterSlots":2,"returnSlots":1},"@initialize_16581":{"entryPoint":1898,"id":16581,"parameterSlots":2,"returnSlots":0},"@proxiableUUID_1020":{"entryPoint":2265,"id":1020,"parameterSlots":0,"returnSlots":1},"@renounceRole_232":{"entryPoint":1847,"id":232,"parameterSlots":2,"returnSlots":0},"@revokeRole_209":{"entryPoint":2688,"id":209,"parameterSlots":2,"returnSlots":0},"@setBaseURI_16669":{"entryPoint":2421,"id":16669,"parameterSlots":3,"returnSlots":0},"@setTokenFactory_16638":{"entryPoint":2294,"id":16638,"parameterSlots":2,"returnSlots":0},"@supportsInterface_2912":{"entryPoint":null,"id":2912,"parameterSlots":1,"returnSlots":1},"@supportsInterface_91":{"entryPoint":1234,"id":91,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_1040":{"entryPoint":2234,"id":1040,"parameterSlots":2,"returnSlots":0},"@upgradeToAndCall_3511":{"entryPoint":4602,"id":3511,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_6585":{"entryPoint":4938,"id":6585,"parameterSlots":3,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":5197,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_struct_TokenInfo_calldata":{"entryPoint":5113,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5697,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payable_fromMemory":{"entryPoint":6341,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":5428,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":5496,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_string_calldata_ptr":{"entryPoint":5726,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32":{"entryPoint":5334,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":6475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":5380,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":5071,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":5269,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_NFTInfo_$15993_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_TokenInfo_$15983_calldata_ptr":{"entryPoint":5137,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8":{"entryPoint":5979,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":5846,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_calldata":{"entryPoint":6014,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":6313,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":6234,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_address__to_t_bytes32_t_bytes_memory_ptr_t_address__fromStack_reversed":{"entryPoint":6426,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6270,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6250,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr_t_address_t_uint8__to_t_string_memory_ptr_t_address_t_uint8__fromStack_reversed":{"entryPoint":6370,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr_t_string_calldata_ptr_t_string_calldata_ptr_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6138,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr_t_string_calldata_ptr_t_uint8_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_uint8_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6055,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5890,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_string_calldata_ptr":{"entryPoint":5909,"id":null,"parameterSlots":2,"returnSlots":2},"copy_memory_to_memory_with_cleanup":{"entryPoint":5810,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":5474,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":5359,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13255:89","nodeType":"YulBlock","src":"0:13255:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"83:217:89","nodeType":"YulBlock","src":"83:217:89","statements":[{"body":{"nativeSrc":"129:16:89","nodeType":"YulBlock","src":"129:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:89","nodeType":"YulLiteral","src":"138:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:89","nodeType":"YulLiteral","src":"141:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:89","nodeType":"YulIdentifier","src":"131:6:89"},"nativeSrc":"131:12:89","nodeType":"YulFunctionCall","src":"131:12:89"},"nativeSrc":"131:12:89","nodeType":"YulExpressionStatement","src":"131:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:89","nodeType":"YulIdentifier","src":"104:7:89"},{"name":"headStart","nativeSrc":"113:9:89","nodeType":"YulIdentifier","src":"113:9:89"}],"functionName":{"name":"sub","nativeSrc":"100:3:89","nodeType":"YulIdentifier","src":"100:3:89"},"nativeSrc":"100:23:89","nodeType":"YulFunctionCall","src":"100:23:89"},{"kind":"number","nativeSrc":"125:2:89","nodeType":"YulLiteral","src":"125:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:89","nodeType":"YulIdentifier","src":"96:3:89"},"nativeSrc":"96:32:89","nodeType":"YulFunctionCall","src":"96:32:89"},"nativeSrc":"93:52:89","nodeType":"YulIf","src":"93:52:89"},{"nativeSrc":"154:36:89","nodeType":"YulVariableDeclaration","src":"154:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:89","nodeType":"YulIdentifier","src":"180:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:89","nodeType":"YulIdentifier","src":"167:12:89"},"nativeSrc":"167:23:89","nodeType":"YulFunctionCall","src":"167:23:89"},"variables":[{"name":"value","nativeSrc":"158:5:89","nodeType":"YulTypedName","src":"158:5:89","type":""}]},{"body":{"nativeSrc":"254:16:89","nodeType":"YulBlock","src":"254:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:89","nodeType":"YulLiteral","src":"263:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:89","nodeType":"YulLiteral","src":"266:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:89","nodeType":"YulIdentifier","src":"256:6:89"},"nativeSrc":"256:12:89","nodeType":"YulFunctionCall","src":"256:12:89"},"nativeSrc":"256:12:89","nodeType":"YulExpressionStatement","src":"256:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:89","nodeType":"YulIdentifier","src":"212:5:89"},{"arguments":[{"name":"value","nativeSrc":"223:5:89","nodeType":"YulIdentifier","src":"223:5:89"},{"arguments":[{"kind":"number","nativeSrc":"234:3:89","nodeType":"YulLiteral","src":"234:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:89","nodeType":"YulLiteral","src":"239:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:89","nodeType":"YulIdentifier","src":"230:3:89"},"nativeSrc":"230:20:89","nodeType":"YulFunctionCall","src":"230:20:89"}],"functionName":{"name":"and","nativeSrc":"219:3:89","nodeType":"YulIdentifier","src":"219:3:89"},"nativeSrc":"219:32:89","nodeType":"YulFunctionCall","src":"219:32:89"}],"functionName":{"name":"eq","nativeSrc":"209:2:89","nodeType":"YulIdentifier","src":"209:2:89"},"nativeSrc":"209:43:89","nodeType":"YulFunctionCall","src":"209:43:89"}],"functionName":{"name":"iszero","nativeSrc":"202:6:89","nodeType":"YulIdentifier","src":"202:6:89"},"nativeSrc":"202:51:89","nodeType":"YulFunctionCall","src":"202:51:89"},"nativeSrc":"199:71:89","nodeType":"YulIf","src":"199:71:89"},{"nativeSrc":"279:15:89","nodeType":"YulAssignment","src":"279:15:89","value":{"name":"value","nativeSrc":"289:5:89","nodeType":"YulIdentifier","src":"289:5:89"},"variableNames":[{"name":"value0","nativeSrc":"279:6:89","nodeType":"YulIdentifier","src":"279:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:89","nodeType":"YulTypedName","src":"49:9:89","type":""},{"name":"dataEnd","nativeSrc":"60:7:89","nodeType":"YulTypedName","src":"60:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:89","nodeType":"YulTypedName","src":"72:6:89","type":""}],"src":"14:286:89"},{"body":{"nativeSrc":"400:92:89","nodeType":"YulBlock","src":"400:92:89","statements":[{"nativeSrc":"410:26:89","nodeType":"YulAssignment","src":"410:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:89","nodeType":"YulIdentifier","src":"422:9:89"},{"kind":"number","nativeSrc":"433:2:89","nodeType":"YulLiteral","src":"433:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:89","nodeType":"YulIdentifier","src":"418:3:89"},"nativeSrc":"418:18:89","nodeType":"YulFunctionCall","src":"418:18:89"},"variableNames":[{"name":"tail","nativeSrc":"410:4:89","nodeType":"YulIdentifier","src":"410:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:89","nodeType":"YulIdentifier","src":"452:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:89","nodeType":"YulIdentifier","src":"477:6:89"}],"functionName":{"name":"iszero","nativeSrc":"470:6:89","nodeType":"YulIdentifier","src":"470:6:89"},"nativeSrc":"470:14:89","nodeType":"YulFunctionCall","src":"470:14:89"}],"functionName":{"name":"iszero","nativeSrc":"463:6:89","nodeType":"YulIdentifier","src":"463:6:89"},"nativeSrc":"463:22:89","nodeType":"YulFunctionCall","src":"463:22:89"}],"functionName":{"name":"mstore","nativeSrc":"445:6:89","nodeType":"YulIdentifier","src":"445:6:89"},"nativeSrc":"445:41:89","nodeType":"YulFunctionCall","src":"445:41:89"},"nativeSrc":"445:41:89","nodeType":"YulExpressionStatement","src":"445:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:89","nodeType":"YulTypedName","src":"369:9:89","type":""},{"name":"value0","nativeSrc":"380:6:89","nodeType":"YulTypedName","src":"380:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:89","nodeType":"YulTypedName","src":"391:4:89","type":""}],"src":"305:187:89"},{"body":{"nativeSrc":"569:86:89","nodeType":"YulBlock","src":"569:86:89","statements":[{"body":{"nativeSrc":"609:16:89","nodeType":"YulBlock","src":"609:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"618:1:89","nodeType":"YulLiteral","src":"618:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"621:1:89","nodeType":"YulLiteral","src":"621:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"611:6:89","nodeType":"YulIdentifier","src":"611:6:89"},"nativeSrc":"611:12:89","nodeType":"YulFunctionCall","src":"611:12:89"},"nativeSrc":"611:12:89","nodeType":"YulExpressionStatement","src":"611:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"590:3:89","nodeType":"YulIdentifier","src":"590:3:89"},{"name":"offset","nativeSrc":"595:6:89","nodeType":"YulIdentifier","src":"595:6:89"}],"functionName":{"name":"sub","nativeSrc":"586:3:89","nodeType":"YulIdentifier","src":"586:3:89"},"nativeSrc":"586:16:89","nodeType":"YulFunctionCall","src":"586:16:89"},{"kind":"number","nativeSrc":"604:3:89","nodeType":"YulLiteral","src":"604:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"582:3:89","nodeType":"YulIdentifier","src":"582:3:89"},"nativeSrc":"582:26:89","nodeType":"YulFunctionCall","src":"582:26:89"},"nativeSrc":"579:46:89","nodeType":"YulIf","src":"579:46:89"},{"nativeSrc":"634:15:89","nodeType":"YulAssignment","src":"634:15:89","value":{"name":"offset","nativeSrc":"643:6:89","nodeType":"YulIdentifier","src":"643:6:89"},"variableNames":[{"name":"value","nativeSrc":"634:5:89","nodeType":"YulIdentifier","src":"634:5:89"}]}]},"name":"abi_decode_struct_TokenInfo_calldata","nativeSrc":"497:158:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"543:6:89","nodeType":"YulTypedName","src":"543:6:89","type":""},{"name":"end","nativeSrc":"551:3:89","nodeType":"YulTypedName","src":"551:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"559:5:89","nodeType":"YulTypedName","src":"559:5:89","type":""}],"src":"497:158:89"},{"body":{"nativeSrc":"760:261:89","nodeType":"YulBlock","src":"760:261:89","statements":[{"body":{"nativeSrc":"806:16:89","nodeType":"YulBlock","src":"806:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"815:1:89","nodeType":"YulLiteral","src":"815:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"818:1:89","nodeType":"YulLiteral","src":"818:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"808:6:89","nodeType":"YulIdentifier","src":"808:6:89"},"nativeSrc":"808:12:89","nodeType":"YulFunctionCall","src":"808:12:89"},"nativeSrc":"808:12:89","nodeType":"YulExpressionStatement","src":"808:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"781:7:89","nodeType":"YulIdentifier","src":"781:7:89"},{"name":"headStart","nativeSrc":"790:9:89","nodeType":"YulIdentifier","src":"790:9:89"}],"functionName":{"name":"sub","nativeSrc":"777:3:89","nodeType":"YulIdentifier","src":"777:3:89"},"nativeSrc":"777:23:89","nodeType":"YulFunctionCall","src":"777:23:89"},{"kind":"number","nativeSrc":"802:2:89","nodeType":"YulLiteral","src":"802:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"773:3:89","nodeType":"YulIdentifier","src":"773:3:89"},"nativeSrc":"773:32:89","nodeType":"YulFunctionCall","src":"773:32:89"},"nativeSrc":"770:52:89","nodeType":"YulIf","src":"770:52:89"},{"nativeSrc":"831:37:89","nodeType":"YulVariableDeclaration","src":"831:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"858:9:89","nodeType":"YulIdentifier","src":"858:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"845:12:89","nodeType":"YulIdentifier","src":"845:12:89"},"nativeSrc":"845:23:89","nodeType":"YulFunctionCall","src":"845:23:89"},"variables":[{"name":"offset","nativeSrc":"835:6:89","nodeType":"YulTypedName","src":"835:6:89","type":""}]},{"body":{"nativeSrc":"911:16:89","nodeType":"YulBlock","src":"911:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"920:1:89","nodeType":"YulLiteral","src":"920:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"923:1:89","nodeType":"YulLiteral","src":"923:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"913:6:89","nodeType":"YulIdentifier","src":"913:6:89"},"nativeSrc":"913:12:89","nodeType":"YulFunctionCall","src":"913:12:89"},"nativeSrc":"913:12:89","nodeType":"YulExpressionStatement","src":"913:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"883:6:89","nodeType":"YulIdentifier","src":"883:6:89"},{"kind":"number","nativeSrc":"891:18:89","nodeType":"YulLiteral","src":"891:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"880:2:89","nodeType":"YulIdentifier","src":"880:2:89"},"nativeSrc":"880:30:89","nodeType":"YulFunctionCall","src":"880:30:89"},"nativeSrc":"877:50:89","nodeType":"YulIf","src":"877:50:89"},{"nativeSrc":"936:79:89","nodeType":"YulAssignment","src":"936:79:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"987:9:89","nodeType":"YulIdentifier","src":"987:9:89"},{"name":"offset","nativeSrc":"998:6:89","nodeType":"YulIdentifier","src":"998:6:89"}],"functionName":{"name":"add","nativeSrc":"983:3:89","nodeType":"YulIdentifier","src":"983:3:89"},"nativeSrc":"983:22:89","nodeType":"YulFunctionCall","src":"983:22:89"},{"name":"dataEnd","nativeSrc":"1007:7:89","nodeType":"YulIdentifier","src":"1007:7:89"}],"functionName":{"name":"abi_decode_struct_TokenInfo_calldata","nativeSrc":"946:36:89","nodeType":"YulIdentifier","src":"946:36:89"},"nativeSrc":"946:69:89","nodeType":"YulFunctionCall","src":"946:69:89"},"variableNames":[{"name":"value0","nativeSrc":"936:6:89","nodeType":"YulIdentifier","src":"936:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_TokenInfo_$15983_calldata_ptr","nativeSrc":"660:361:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"726:9:89","nodeType":"YulTypedName","src":"726:9:89","type":""},{"name":"dataEnd","nativeSrc":"737:7:89","nodeType":"YulTypedName","src":"737:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"749:6:89","nodeType":"YulTypedName","src":"749:6:89","type":""}],"src":"660:361:89"},{"body":{"nativeSrc":"1124:261:89","nodeType":"YulBlock","src":"1124:261:89","statements":[{"body":{"nativeSrc":"1170:16:89","nodeType":"YulBlock","src":"1170:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1179:1:89","nodeType":"YulLiteral","src":"1179:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1182:1:89","nodeType":"YulLiteral","src":"1182:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1172:6:89","nodeType":"YulIdentifier","src":"1172:6:89"},"nativeSrc":"1172:12:89","nodeType":"YulFunctionCall","src":"1172:12:89"},"nativeSrc":"1172:12:89","nodeType":"YulExpressionStatement","src":"1172:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1145:7:89","nodeType":"YulIdentifier","src":"1145:7:89"},{"name":"headStart","nativeSrc":"1154:9:89","nodeType":"YulIdentifier","src":"1154:9:89"}],"functionName":{"name":"sub","nativeSrc":"1141:3:89","nodeType":"YulIdentifier","src":"1141:3:89"},"nativeSrc":"1141:23:89","nodeType":"YulFunctionCall","src":"1141:23:89"},{"kind":"number","nativeSrc":"1166:2:89","nodeType":"YulLiteral","src":"1166:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1137:3:89","nodeType":"YulIdentifier","src":"1137:3:89"},"nativeSrc":"1137:32:89","nodeType":"YulFunctionCall","src":"1137:32:89"},"nativeSrc":"1134:52:89","nodeType":"YulIf","src":"1134:52:89"},{"nativeSrc":"1195:37:89","nodeType":"YulVariableDeclaration","src":"1195:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1222:9:89","nodeType":"YulIdentifier","src":"1222:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1209:12:89","nodeType":"YulIdentifier","src":"1209:12:89"},"nativeSrc":"1209:23:89","nodeType":"YulFunctionCall","src":"1209:23:89"},"variables":[{"name":"offset","nativeSrc":"1199:6:89","nodeType":"YulTypedName","src":"1199:6:89","type":""}]},{"body":{"nativeSrc":"1275:16:89","nodeType":"YulBlock","src":"1275:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1284:1:89","nodeType":"YulLiteral","src":"1284:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1287:1:89","nodeType":"YulLiteral","src":"1287:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1277:6:89","nodeType":"YulIdentifier","src":"1277:6:89"},"nativeSrc":"1277:12:89","nodeType":"YulFunctionCall","src":"1277:12:89"},"nativeSrc":"1277:12:89","nodeType":"YulExpressionStatement","src":"1277:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1247:6:89","nodeType":"YulIdentifier","src":"1247:6:89"},{"kind":"number","nativeSrc":"1255:18:89","nodeType":"YulLiteral","src":"1255:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1244:2:89","nodeType":"YulIdentifier","src":"1244:2:89"},"nativeSrc":"1244:30:89","nodeType":"YulFunctionCall","src":"1244:30:89"},"nativeSrc":"1241:50:89","nodeType":"YulIf","src":"1241:50:89"},{"nativeSrc":"1300:79:89","nodeType":"YulAssignment","src":"1300:79:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1351:9:89","nodeType":"YulIdentifier","src":"1351:9:89"},{"name":"offset","nativeSrc":"1362:6:89","nodeType":"YulIdentifier","src":"1362:6:89"}],"functionName":{"name":"add","nativeSrc":"1347:3:89","nodeType":"YulIdentifier","src":"1347:3:89"},"nativeSrc":"1347:22:89","nodeType":"YulFunctionCall","src":"1347:22:89"},{"name":"dataEnd","nativeSrc":"1371:7:89","nodeType":"YulIdentifier","src":"1371:7:89"}],"functionName":{"name":"abi_decode_struct_TokenInfo_calldata","nativeSrc":"1310:36:89","nodeType":"YulIdentifier","src":"1310:36:89"},"nativeSrc":"1310:69:89","nodeType":"YulFunctionCall","src":"1310:69:89"},"variableNames":[{"name":"value0","nativeSrc":"1300:6:89","nodeType":"YulIdentifier","src":"1300:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_NFTInfo_$15993_calldata_ptr","nativeSrc":"1026:359:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1090:9:89","nodeType":"YulTypedName","src":"1090:9:89","type":""},{"name":"dataEnd","nativeSrc":"1101:7:89","nodeType":"YulTypedName","src":"1101:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1113:6:89","nodeType":"YulTypedName","src":"1113:6:89","type":""}],"src":"1026:359:89"},{"body":{"nativeSrc":"1463:275:89","nodeType":"YulBlock","src":"1463:275:89","statements":[{"body":{"nativeSrc":"1512:16:89","nodeType":"YulBlock","src":"1512:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1521:1:89","nodeType":"YulLiteral","src":"1521:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1524:1:89","nodeType":"YulLiteral","src":"1524:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1514:6:89","nodeType":"YulIdentifier","src":"1514:6:89"},"nativeSrc":"1514:12:89","nodeType":"YulFunctionCall","src":"1514:12:89"},"nativeSrc":"1514:12:89","nodeType":"YulExpressionStatement","src":"1514:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1491:6:89","nodeType":"YulIdentifier","src":"1491:6:89"},{"kind":"number","nativeSrc":"1499:4:89","nodeType":"YulLiteral","src":"1499:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1487:3:89","nodeType":"YulIdentifier","src":"1487:3:89"},"nativeSrc":"1487:17:89","nodeType":"YulFunctionCall","src":"1487:17:89"},{"name":"end","nativeSrc":"1506:3:89","nodeType":"YulIdentifier","src":"1506:3:89"}],"functionName":{"name":"slt","nativeSrc":"1483:3:89","nodeType":"YulIdentifier","src":"1483:3:89"},"nativeSrc":"1483:27:89","nodeType":"YulFunctionCall","src":"1483:27:89"}],"functionName":{"name":"iszero","nativeSrc":"1476:6:89","nodeType":"YulIdentifier","src":"1476:6:89"},"nativeSrc":"1476:35:89","nodeType":"YulFunctionCall","src":"1476:35:89"},"nativeSrc":"1473:55:89","nodeType":"YulIf","src":"1473:55:89"},{"nativeSrc":"1537:30:89","nodeType":"YulAssignment","src":"1537:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"1560:6:89","nodeType":"YulIdentifier","src":"1560:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"1547:12:89","nodeType":"YulIdentifier","src":"1547:12:89"},"nativeSrc":"1547:20:89","nodeType":"YulFunctionCall","src":"1547:20:89"},"variableNames":[{"name":"length","nativeSrc":"1537:6:89","nodeType":"YulIdentifier","src":"1537:6:89"}]},{"body":{"nativeSrc":"1610:16:89","nodeType":"YulBlock","src":"1610:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1619:1:89","nodeType":"YulLiteral","src":"1619:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1622:1:89","nodeType":"YulLiteral","src":"1622:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1612:6:89","nodeType":"YulIdentifier","src":"1612:6:89"},"nativeSrc":"1612:12:89","nodeType":"YulFunctionCall","src":"1612:12:89"},"nativeSrc":"1612:12:89","nodeType":"YulExpressionStatement","src":"1612:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1582:6:89","nodeType":"YulIdentifier","src":"1582:6:89"},{"kind":"number","nativeSrc":"1590:18:89","nodeType":"YulLiteral","src":"1590:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1579:2:89","nodeType":"YulIdentifier","src":"1579:2:89"},"nativeSrc":"1579:30:89","nodeType":"YulFunctionCall","src":"1579:30:89"},"nativeSrc":"1576:50:89","nodeType":"YulIf","src":"1576:50:89"},{"nativeSrc":"1635:29:89","nodeType":"YulAssignment","src":"1635:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"1651:6:89","nodeType":"YulIdentifier","src":"1651:6:89"},{"kind":"number","nativeSrc":"1659:4:89","nodeType":"YulLiteral","src":"1659:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1647:3:89","nodeType":"YulIdentifier","src":"1647:3:89"},"nativeSrc":"1647:17:89","nodeType":"YulFunctionCall","src":"1647:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"1635:8:89","nodeType":"YulIdentifier","src":"1635:8:89"}]},{"body":{"nativeSrc":"1716:16:89","nodeType":"YulBlock","src":"1716:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1725:1:89","nodeType":"YulLiteral","src":"1725:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1728:1:89","nodeType":"YulLiteral","src":"1728:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1718:6:89","nodeType":"YulIdentifier","src":"1718:6:89"},"nativeSrc":"1718:12:89","nodeType":"YulFunctionCall","src":"1718:12:89"},"nativeSrc":"1718:12:89","nodeType":"YulExpressionStatement","src":"1718:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1687:6:89","nodeType":"YulIdentifier","src":"1687:6:89"},{"name":"length","nativeSrc":"1695:6:89","nodeType":"YulIdentifier","src":"1695:6:89"}],"functionName":{"name":"add","nativeSrc":"1683:3:89","nodeType":"YulIdentifier","src":"1683:3:89"},"nativeSrc":"1683:19:89","nodeType":"YulFunctionCall","src":"1683:19:89"},{"kind":"number","nativeSrc":"1704:4:89","nodeType":"YulLiteral","src":"1704:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1679:3:89","nodeType":"YulIdentifier","src":"1679:3:89"},"nativeSrc":"1679:30:89","nodeType":"YulFunctionCall","src":"1679:30:89"},{"name":"end","nativeSrc":"1711:3:89","nodeType":"YulIdentifier","src":"1711:3:89"}],"functionName":{"name":"gt","nativeSrc":"1676:2:89","nodeType":"YulIdentifier","src":"1676:2:89"},"nativeSrc":"1676:39:89","nodeType":"YulFunctionCall","src":"1676:39:89"},"nativeSrc":"1673:59:89","nodeType":"YulIf","src":"1673:59:89"}]},"name":"abi_decode_string_calldata","nativeSrc":"1390:348:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1426:6:89","nodeType":"YulTypedName","src":"1426:6:89","type":""},{"name":"end","nativeSrc":"1434:3:89","nodeType":"YulTypedName","src":"1434:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1442:8:89","nodeType":"YulTypedName","src":"1442:8:89","type":""},{"name":"length","nativeSrc":"1452:6:89","nodeType":"YulTypedName","src":"1452:6:89","type":""}],"src":"1390:348:89"},{"body":{"nativeSrc":"1833:321:89","nodeType":"YulBlock","src":"1833:321:89","statements":[{"body":{"nativeSrc":"1879:16:89","nodeType":"YulBlock","src":"1879:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1888:1:89","nodeType":"YulLiteral","src":"1888:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1891:1:89","nodeType":"YulLiteral","src":"1891:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1881:6:89","nodeType":"YulIdentifier","src":"1881:6:89"},"nativeSrc":"1881:12:89","nodeType":"YulFunctionCall","src":"1881:12:89"},"nativeSrc":"1881:12:89","nodeType":"YulExpressionStatement","src":"1881:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1854:7:89","nodeType":"YulIdentifier","src":"1854:7:89"},{"name":"headStart","nativeSrc":"1863:9:89","nodeType":"YulIdentifier","src":"1863:9:89"}],"functionName":{"name":"sub","nativeSrc":"1850:3:89","nodeType":"YulIdentifier","src":"1850:3:89"},"nativeSrc":"1850:23:89","nodeType":"YulFunctionCall","src":"1850:23:89"},{"kind":"number","nativeSrc":"1875:2:89","nodeType":"YulLiteral","src":"1875:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1846:3:89","nodeType":"YulIdentifier","src":"1846:3:89"},"nativeSrc":"1846:32:89","nodeType":"YulFunctionCall","src":"1846:32:89"},"nativeSrc":"1843:52:89","nodeType":"YulIf","src":"1843:52:89"},{"nativeSrc":"1904:37:89","nodeType":"YulVariableDeclaration","src":"1904:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1931:9:89","nodeType":"YulIdentifier","src":"1931:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1918:12:89","nodeType":"YulIdentifier","src":"1918:12:89"},"nativeSrc":"1918:23:89","nodeType":"YulFunctionCall","src":"1918:23:89"},"variables":[{"name":"offset","nativeSrc":"1908:6:89","nodeType":"YulTypedName","src":"1908:6:89","type":""}]},{"body":{"nativeSrc":"1984:16:89","nodeType":"YulBlock","src":"1984:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1993:1:89","nodeType":"YulLiteral","src":"1993:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1996:1:89","nodeType":"YulLiteral","src":"1996:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1986:6:89","nodeType":"YulIdentifier","src":"1986:6:89"},"nativeSrc":"1986:12:89","nodeType":"YulFunctionCall","src":"1986:12:89"},"nativeSrc":"1986:12:89","nodeType":"YulExpressionStatement","src":"1986:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1956:6:89","nodeType":"YulIdentifier","src":"1956:6:89"},{"kind":"number","nativeSrc":"1964:18:89","nodeType":"YulLiteral","src":"1964:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1953:2:89","nodeType":"YulIdentifier","src":"1953:2:89"},"nativeSrc":"1953:30:89","nodeType":"YulFunctionCall","src":"1953:30:89"},"nativeSrc":"1950:50:89","nodeType":"YulIf","src":"1950:50:89"},{"nativeSrc":"2009:85:89","nodeType":"YulVariableDeclaration","src":"2009:85:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2066:9:89","nodeType":"YulIdentifier","src":"2066:9:89"},{"name":"offset","nativeSrc":"2077:6:89","nodeType":"YulIdentifier","src":"2077:6:89"}],"functionName":{"name":"add","nativeSrc":"2062:3:89","nodeType":"YulIdentifier","src":"2062:3:89"},"nativeSrc":"2062:22:89","nodeType":"YulFunctionCall","src":"2062:22:89"},{"name":"dataEnd","nativeSrc":"2086:7:89","nodeType":"YulIdentifier","src":"2086:7:89"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"2035:26:89","nodeType":"YulIdentifier","src":"2035:26:89"},"nativeSrc":"2035:59:89","nodeType":"YulFunctionCall","src":"2035:59:89"},"variables":[{"name":"value0_1","nativeSrc":"2013:8:89","nodeType":"YulTypedName","src":"2013:8:89","type":""},{"name":"value1_1","nativeSrc":"2023:8:89","nodeType":"YulTypedName","src":"2023:8:89","type":""}]},{"nativeSrc":"2103:18:89","nodeType":"YulAssignment","src":"2103:18:89","value":{"name":"value0_1","nativeSrc":"2113:8:89","nodeType":"YulIdentifier","src":"2113:8:89"},"variableNames":[{"name":"value0","nativeSrc":"2103:6:89","nodeType":"YulIdentifier","src":"2103:6:89"}]},{"nativeSrc":"2130:18:89","nodeType":"YulAssignment","src":"2130:18:89","value":{"name":"value1_1","nativeSrc":"2140:8:89","nodeType":"YulIdentifier","src":"2140:8:89"},"variableNames":[{"name":"value1","nativeSrc":"2130:6:89","nodeType":"YulIdentifier","src":"2130:6:89"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nativeSrc":"1743:411:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1791:9:89","nodeType":"YulTypedName","src":"1791:9:89","type":""},{"name":"dataEnd","nativeSrc":"1802:7:89","nodeType":"YulTypedName","src":"1802:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1814:6:89","nodeType":"YulTypedName","src":"1814:6:89","type":""},{"name":"value1","nativeSrc":"1822:6:89","nodeType":"YulTypedName","src":"1822:6:89","type":""}],"src":"1743:411:89"},{"body":{"nativeSrc":"2260:102:89","nodeType":"YulBlock","src":"2260:102:89","statements":[{"nativeSrc":"2270:26:89","nodeType":"YulAssignment","src":"2270:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2282:9:89","nodeType":"YulIdentifier","src":"2282:9:89"},{"kind":"number","nativeSrc":"2293:2:89","nodeType":"YulLiteral","src":"2293:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2278:3:89","nodeType":"YulIdentifier","src":"2278:3:89"},"nativeSrc":"2278:18:89","nodeType":"YulFunctionCall","src":"2278:18:89"},"variableNames":[{"name":"tail","nativeSrc":"2270:4:89","nodeType":"YulIdentifier","src":"2270:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2312:9:89","nodeType":"YulIdentifier","src":"2312:9:89"},{"arguments":[{"name":"value0","nativeSrc":"2327:6:89","nodeType":"YulIdentifier","src":"2327:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2343:3:89","nodeType":"YulLiteral","src":"2343:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"2348:1:89","nodeType":"YulLiteral","src":"2348:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2339:3:89","nodeType":"YulIdentifier","src":"2339:3:89"},"nativeSrc":"2339:11:89","nodeType":"YulFunctionCall","src":"2339:11:89"},{"kind":"number","nativeSrc":"2352:1:89","nodeType":"YulLiteral","src":"2352:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2335:3:89","nodeType":"YulIdentifier","src":"2335:3:89"},"nativeSrc":"2335:19:89","nodeType":"YulFunctionCall","src":"2335:19:89"}],"functionName":{"name":"and","nativeSrc":"2323:3:89","nodeType":"YulIdentifier","src":"2323:3:89"},"nativeSrc":"2323:32:89","nodeType":"YulFunctionCall","src":"2323:32:89"}],"functionName":{"name":"mstore","nativeSrc":"2305:6:89","nodeType":"YulIdentifier","src":"2305:6:89"},"nativeSrc":"2305:51:89","nodeType":"YulFunctionCall","src":"2305:51:89"},"nativeSrc":"2305:51:89","nodeType":"YulExpressionStatement","src":"2305:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2159:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2229:9:89","nodeType":"YulTypedName","src":"2229:9:89","type":""},{"name":"value0","nativeSrc":"2240:6:89","nodeType":"YulTypedName","src":"2240:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2251:4:89","nodeType":"YulTypedName","src":"2251:4:89","type":""}],"src":"2159:203:89"},{"body":{"nativeSrc":"2437:156:89","nodeType":"YulBlock","src":"2437:156:89","statements":[{"body":{"nativeSrc":"2483:16:89","nodeType":"YulBlock","src":"2483:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2492:1:89","nodeType":"YulLiteral","src":"2492:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2495:1:89","nodeType":"YulLiteral","src":"2495:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2485:6:89","nodeType":"YulIdentifier","src":"2485:6:89"},"nativeSrc":"2485:12:89","nodeType":"YulFunctionCall","src":"2485:12:89"},"nativeSrc":"2485:12:89","nodeType":"YulExpressionStatement","src":"2485:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2458:7:89","nodeType":"YulIdentifier","src":"2458:7:89"},{"name":"headStart","nativeSrc":"2467:9:89","nodeType":"YulIdentifier","src":"2467:9:89"}],"functionName":{"name":"sub","nativeSrc":"2454:3:89","nodeType":"YulIdentifier","src":"2454:3:89"},"nativeSrc":"2454:23:89","nodeType":"YulFunctionCall","src":"2454:23:89"},{"kind":"number","nativeSrc":"2479:2:89","nodeType":"YulLiteral","src":"2479:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2450:3:89","nodeType":"YulIdentifier","src":"2450:3:89"},"nativeSrc":"2450:32:89","nodeType":"YulFunctionCall","src":"2450:32:89"},"nativeSrc":"2447:52:89","nodeType":"YulIf","src":"2447:52:89"},{"nativeSrc":"2508:14:89","nodeType":"YulVariableDeclaration","src":"2508:14:89","value":{"kind":"number","nativeSrc":"2521:1:89","nodeType":"YulLiteral","src":"2521:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2512:5:89","nodeType":"YulTypedName","src":"2512:5:89","type":""}]},{"nativeSrc":"2531:32:89","nodeType":"YulAssignment","src":"2531:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2553:9:89","nodeType":"YulIdentifier","src":"2553:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"2540:12:89","nodeType":"YulIdentifier","src":"2540:12:89"},"nativeSrc":"2540:23:89","nodeType":"YulFunctionCall","src":"2540:23:89"},"variableNames":[{"name":"value","nativeSrc":"2531:5:89","nodeType":"YulIdentifier","src":"2531:5:89"}]},{"nativeSrc":"2572:15:89","nodeType":"YulAssignment","src":"2572:15:89","value":{"name":"value","nativeSrc":"2582:5:89","nodeType":"YulIdentifier","src":"2582:5:89"},"variableNames":[{"name":"value0","nativeSrc":"2572:6:89","nodeType":"YulIdentifier","src":"2572:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"2367:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2403:9:89","nodeType":"YulTypedName","src":"2403:9:89","type":""},{"name":"dataEnd","nativeSrc":"2414:7:89","nodeType":"YulTypedName","src":"2414:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2426:6:89","nodeType":"YulTypedName","src":"2426:6:89","type":""}],"src":"2367:226:89"},{"body":{"nativeSrc":"2699:76:89","nodeType":"YulBlock","src":"2699:76:89","statements":[{"nativeSrc":"2709:26:89","nodeType":"YulAssignment","src":"2709:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2721:9:89","nodeType":"YulIdentifier","src":"2721:9:89"},{"kind":"number","nativeSrc":"2732:2:89","nodeType":"YulLiteral","src":"2732:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2717:3:89","nodeType":"YulIdentifier","src":"2717:3:89"},"nativeSrc":"2717:18:89","nodeType":"YulFunctionCall","src":"2717:18:89"},"variableNames":[{"name":"tail","nativeSrc":"2709:4:89","nodeType":"YulIdentifier","src":"2709:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2751:9:89","nodeType":"YulIdentifier","src":"2751:9:89"},{"name":"value0","nativeSrc":"2762:6:89","nodeType":"YulIdentifier","src":"2762:6:89"}],"functionName":{"name":"mstore","nativeSrc":"2744:6:89","nodeType":"YulIdentifier","src":"2744:6:89"},"nativeSrc":"2744:25:89","nodeType":"YulFunctionCall","src":"2744:25:89"},"nativeSrc":"2744:25:89","nodeType":"YulExpressionStatement","src":"2744:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2598:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2668:9:89","nodeType":"YulTypedName","src":"2668:9:89","type":""},{"name":"value0","nativeSrc":"2679:6:89","nodeType":"YulTypedName","src":"2679:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2690:4:89","nodeType":"YulTypedName","src":"2690:4:89","type":""}],"src":"2598:177:89"},{"body":{"nativeSrc":"2825:86:89","nodeType":"YulBlock","src":"2825:86:89","statements":[{"body":{"nativeSrc":"2889:16:89","nodeType":"YulBlock","src":"2889:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2898:1:89","nodeType":"YulLiteral","src":"2898:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2901:1:89","nodeType":"YulLiteral","src":"2901:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2891:6:89","nodeType":"YulIdentifier","src":"2891:6:89"},"nativeSrc":"2891:12:89","nodeType":"YulFunctionCall","src":"2891:12:89"},"nativeSrc":"2891:12:89","nodeType":"YulExpressionStatement","src":"2891:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2848:5:89","nodeType":"YulIdentifier","src":"2848:5:89"},{"arguments":[{"name":"value","nativeSrc":"2859:5:89","nodeType":"YulIdentifier","src":"2859:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2874:3:89","nodeType":"YulLiteral","src":"2874:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"2879:1:89","nodeType":"YulLiteral","src":"2879:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2870:3:89","nodeType":"YulIdentifier","src":"2870:3:89"},"nativeSrc":"2870:11:89","nodeType":"YulFunctionCall","src":"2870:11:89"},{"kind":"number","nativeSrc":"2883:1:89","nodeType":"YulLiteral","src":"2883:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2866:3:89","nodeType":"YulIdentifier","src":"2866:3:89"},"nativeSrc":"2866:19:89","nodeType":"YulFunctionCall","src":"2866:19:89"}],"functionName":{"name":"and","nativeSrc":"2855:3:89","nodeType":"YulIdentifier","src":"2855:3:89"},"nativeSrc":"2855:31:89","nodeType":"YulFunctionCall","src":"2855:31:89"}],"functionName":{"name":"eq","nativeSrc":"2845:2:89","nodeType":"YulIdentifier","src":"2845:2:89"},"nativeSrc":"2845:42:89","nodeType":"YulFunctionCall","src":"2845:42:89"}],"functionName":{"name":"iszero","nativeSrc":"2838:6:89","nodeType":"YulIdentifier","src":"2838:6:89"},"nativeSrc":"2838:50:89","nodeType":"YulFunctionCall","src":"2838:50:89"},"nativeSrc":"2835:70:89","nodeType":"YulIf","src":"2835:70:89"}]},"name":"validator_revert_address","nativeSrc":"2780:131:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2814:5:89","nodeType":"YulTypedName","src":"2814:5:89","type":""}],"src":"2780:131:89"},{"body":{"nativeSrc":"3003:280:89","nodeType":"YulBlock","src":"3003:280:89","statements":[{"body":{"nativeSrc":"3049:16:89","nodeType":"YulBlock","src":"3049:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3058:1:89","nodeType":"YulLiteral","src":"3058:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3061:1:89","nodeType":"YulLiteral","src":"3061:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3051:6:89","nodeType":"YulIdentifier","src":"3051:6:89"},"nativeSrc":"3051:12:89","nodeType":"YulFunctionCall","src":"3051:12:89"},"nativeSrc":"3051:12:89","nodeType":"YulExpressionStatement","src":"3051:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3024:7:89","nodeType":"YulIdentifier","src":"3024:7:89"},{"name":"headStart","nativeSrc":"3033:9:89","nodeType":"YulIdentifier","src":"3033:9:89"}],"functionName":{"name":"sub","nativeSrc":"3020:3:89","nodeType":"YulIdentifier","src":"3020:3:89"},"nativeSrc":"3020:23:89","nodeType":"YulFunctionCall","src":"3020:23:89"},{"kind":"number","nativeSrc":"3045:2:89","nodeType":"YulLiteral","src":"3045:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3016:3:89","nodeType":"YulIdentifier","src":"3016:3:89"},"nativeSrc":"3016:32:89","nodeType":"YulFunctionCall","src":"3016:32:89"},"nativeSrc":"3013:52:89","nodeType":"YulIf","src":"3013:52:89"},{"nativeSrc":"3074:14:89","nodeType":"YulVariableDeclaration","src":"3074:14:89","value":{"kind":"number","nativeSrc":"3087:1:89","nodeType":"YulLiteral","src":"3087:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3078:5:89","nodeType":"YulTypedName","src":"3078:5:89","type":""}]},{"nativeSrc":"3097:32:89","nodeType":"YulAssignment","src":"3097:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3119:9:89","nodeType":"YulIdentifier","src":"3119:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3106:12:89","nodeType":"YulIdentifier","src":"3106:12:89"},"nativeSrc":"3106:23:89","nodeType":"YulFunctionCall","src":"3106:23:89"},"variableNames":[{"name":"value","nativeSrc":"3097:5:89","nodeType":"YulIdentifier","src":"3097:5:89"}]},{"nativeSrc":"3138:15:89","nodeType":"YulAssignment","src":"3138:15:89","value":{"name":"value","nativeSrc":"3148:5:89","nodeType":"YulIdentifier","src":"3148:5:89"},"variableNames":[{"name":"value0","nativeSrc":"3138:6:89","nodeType":"YulIdentifier","src":"3138:6:89"}]},{"nativeSrc":"3162:47:89","nodeType":"YulVariableDeclaration","src":"3162:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3194:9:89","nodeType":"YulIdentifier","src":"3194:9:89"},{"kind":"number","nativeSrc":"3205:2:89","nodeType":"YulLiteral","src":"3205:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3190:3:89","nodeType":"YulIdentifier","src":"3190:3:89"},"nativeSrc":"3190:18:89","nodeType":"YulFunctionCall","src":"3190:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3177:12:89","nodeType":"YulIdentifier","src":"3177:12:89"},"nativeSrc":"3177:32:89","nodeType":"YulFunctionCall","src":"3177:32:89"},"variables":[{"name":"value_1","nativeSrc":"3166:7:89","nodeType":"YulTypedName","src":"3166:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"3243:7:89","nodeType":"YulIdentifier","src":"3243:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3218:24:89","nodeType":"YulIdentifier","src":"3218:24:89"},"nativeSrc":"3218:33:89","nodeType":"YulFunctionCall","src":"3218:33:89"},"nativeSrc":"3218:33:89","nodeType":"YulExpressionStatement","src":"3218:33:89"},{"nativeSrc":"3260:17:89","nodeType":"YulAssignment","src":"3260:17:89","value":{"name":"value_1","nativeSrc":"3270:7:89","nodeType":"YulIdentifier","src":"3270:7:89"},"variableNames":[{"name":"value1","nativeSrc":"3260:6:89","nodeType":"YulIdentifier","src":"3260:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"2916:367:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2961:9:89","nodeType":"YulTypedName","src":"2961:9:89","type":""},{"name":"dataEnd","nativeSrc":"2972:7:89","nodeType":"YulTypedName","src":"2972:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2984:6:89","nodeType":"YulTypedName","src":"2984:6:89","type":""},{"name":"value1","nativeSrc":"2992:6:89","nodeType":"YulTypedName","src":"2992:6:89","type":""}],"src":"2916:367:89"},{"body":{"nativeSrc":"3375:301:89","nodeType":"YulBlock","src":"3375:301:89","statements":[{"body":{"nativeSrc":"3421:16:89","nodeType":"YulBlock","src":"3421:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3430:1:89","nodeType":"YulLiteral","src":"3430:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3433:1:89","nodeType":"YulLiteral","src":"3433:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3423:6:89","nodeType":"YulIdentifier","src":"3423:6:89"},"nativeSrc":"3423:12:89","nodeType":"YulFunctionCall","src":"3423:12:89"},"nativeSrc":"3423:12:89","nodeType":"YulExpressionStatement","src":"3423:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3396:7:89","nodeType":"YulIdentifier","src":"3396:7:89"},{"name":"headStart","nativeSrc":"3405:9:89","nodeType":"YulIdentifier","src":"3405:9:89"}],"functionName":{"name":"sub","nativeSrc":"3392:3:89","nodeType":"YulIdentifier","src":"3392:3:89"},"nativeSrc":"3392:23:89","nodeType":"YulFunctionCall","src":"3392:23:89"},{"kind":"number","nativeSrc":"3417:2:89","nodeType":"YulLiteral","src":"3417:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3388:3:89","nodeType":"YulIdentifier","src":"3388:3:89"},"nativeSrc":"3388:32:89","nodeType":"YulFunctionCall","src":"3388:32:89"},"nativeSrc":"3385:52:89","nodeType":"YulIf","src":"3385:52:89"},{"nativeSrc":"3446:36:89","nodeType":"YulVariableDeclaration","src":"3446:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3472:9:89","nodeType":"YulIdentifier","src":"3472:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3459:12:89","nodeType":"YulIdentifier","src":"3459:12:89"},"nativeSrc":"3459:23:89","nodeType":"YulFunctionCall","src":"3459:23:89"},"variables":[{"name":"value","nativeSrc":"3450:5:89","nodeType":"YulTypedName","src":"3450:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3516:5:89","nodeType":"YulIdentifier","src":"3516:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3491:24:89","nodeType":"YulIdentifier","src":"3491:24:89"},"nativeSrc":"3491:31:89","nodeType":"YulFunctionCall","src":"3491:31:89"},"nativeSrc":"3491:31:89","nodeType":"YulExpressionStatement","src":"3491:31:89"},{"nativeSrc":"3531:15:89","nodeType":"YulAssignment","src":"3531:15:89","value":{"name":"value","nativeSrc":"3541:5:89","nodeType":"YulIdentifier","src":"3541:5:89"},"variableNames":[{"name":"value0","nativeSrc":"3531:6:89","nodeType":"YulIdentifier","src":"3531:6:89"}]},{"nativeSrc":"3555:47:89","nodeType":"YulVariableDeclaration","src":"3555:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3587:9:89","nodeType":"YulIdentifier","src":"3587:9:89"},{"kind":"number","nativeSrc":"3598:2:89","nodeType":"YulLiteral","src":"3598:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3583:3:89","nodeType":"YulIdentifier","src":"3583:3:89"},"nativeSrc":"3583:18:89","nodeType":"YulFunctionCall","src":"3583:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3570:12:89","nodeType":"YulIdentifier","src":"3570:12:89"},"nativeSrc":"3570:32:89","nodeType":"YulFunctionCall","src":"3570:32:89"},"variables":[{"name":"value_1","nativeSrc":"3559:7:89","nodeType":"YulTypedName","src":"3559:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"3636:7:89","nodeType":"YulIdentifier","src":"3636:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3611:24:89","nodeType":"YulIdentifier","src":"3611:24:89"},"nativeSrc":"3611:33:89","nodeType":"YulFunctionCall","src":"3611:33:89"},"nativeSrc":"3611:33:89","nodeType":"YulExpressionStatement","src":"3611:33:89"},{"nativeSrc":"3653:17:89","nodeType":"YulAssignment","src":"3653:17:89","value":{"name":"value_1","nativeSrc":"3663:7:89","nodeType":"YulIdentifier","src":"3663:7:89"},"variableNames":[{"name":"value1","nativeSrc":"3653:6:89","nodeType":"YulIdentifier","src":"3653:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"3288:388:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3333:9:89","nodeType":"YulTypedName","src":"3333:9:89","type":""},{"name":"dataEnd","nativeSrc":"3344:7:89","nodeType":"YulTypedName","src":"3344:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3356:6:89","nodeType":"YulTypedName","src":"3356:6:89","type":""},{"name":"value1","nativeSrc":"3364:6:89","nodeType":"YulTypedName","src":"3364:6:89","type":""}],"src":"3288:388:89"},{"body":{"nativeSrc":"3713:95:89","nodeType":"YulBlock","src":"3713:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3730:1:89","nodeType":"YulLiteral","src":"3730:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3737:3:89","nodeType":"YulLiteral","src":"3737:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"3742:10:89","nodeType":"YulLiteral","src":"3742:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3733:3:89","nodeType":"YulIdentifier","src":"3733:3:89"},"nativeSrc":"3733:20:89","nodeType":"YulFunctionCall","src":"3733:20:89"}],"functionName":{"name":"mstore","nativeSrc":"3723:6:89","nodeType":"YulIdentifier","src":"3723:6:89"},"nativeSrc":"3723:31:89","nodeType":"YulFunctionCall","src":"3723:31:89"},"nativeSrc":"3723:31:89","nodeType":"YulExpressionStatement","src":"3723:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3770:1:89","nodeType":"YulLiteral","src":"3770:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"3773:4:89","nodeType":"YulLiteral","src":"3773:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3763:6:89","nodeType":"YulIdentifier","src":"3763:6:89"},"nativeSrc":"3763:15:89","nodeType":"YulFunctionCall","src":"3763:15:89"},"nativeSrc":"3763:15:89","nodeType":"YulExpressionStatement","src":"3763:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3794:1:89","nodeType":"YulLiteral","src":"3794:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3797:4:89","nodeType":"YulLiteral","src":"3797:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3787:6:89","nodeType":"YulIdentifier","src":"3787:6:89"},"nativeSrc":"3787:15:89","nodeType":"YulFunctionCall","src":"3787:15:89"},"nativeSrc":"3787:15:89","nodeType":"YulExpressionStatement","src":"3787:15:89"}]},"name":"panic_error_0x41","nativeSrc":"3681:127:89","nodeType":"YulFunctionDefinition","src":"3681:127:89"},{"body":{"nativeSrc":"3909:983:89","nodeType":"YulBlock","src":"3909:983:89","statements":[{"body":{"nativeSrc":"3955:16:89","nodeType":"YulBlock","src":"3955:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3964:1:89","nodeType":"YulLiteral","src":"3964:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3967:1:89","nodeType":"YulLiteral","src":"3967:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3957:6:89","nodeType":"YulIdentifier","src":"3957:6:89"},"nativeSrc":"3957:12:89","nodeType":"YulFunctionCall","src":"3957:12:89"},"nativeSrc":"3957:12:89","nodeType":"YulExpressionStatement","src":"3957:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3930:7:89","nodeType":"YulIdentifier","src":"3930:7:89"},{"name":"headStart","nativeSrc":"3939:9:89","nodeType":"YulIdentifier","src":"3939:9:89"}],"functionName":{"name":"sub","nativeSrc":"3926:3:89","nodeType":"YulIdentifier","src":"3926:3:89"},"nativeSrc":"3926:23:89","nodeType":"YulFunctionCall","src":"3926:23:89"},{"kind":"number","nativeSrc":"3951:2:89","nodeType":"YulLiteral","src":"3951:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3922:3:89","nodeType":"YulIdentifier","src":"3922:3:89"},"nativeSrc":"3922:32:89","nodeType":"YulFunctionCall","src":"3922:32:89"},"nativeSrc":"3919:52:89","nodeType":"YulIf","src":"3919:52:89"},{"nativeSrc":"3980:36:89","nodeType":"YulVariableDeclaration","src":"3980:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4006:9:89","nodeType":"YulIdentifier","src":"4006:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3993:12:89","nodeType":"YulIdentifier","src":"3993:12:89"},"nativeSrc":"3993:23:89","nodeType":"YulFunctionCall","src":"3993:23:89"},"variables":[{"name":"value","nativeSrc":"3984:5:89","nodeType":"YulTypedName","src":"3984:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4050:5:89","nodeType":"YulIdentifier","src":"4050:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4025:24:89","nodeType":"YulIdentifier","src":"4025:24:89"},"nativeSrc":"4025:31:89","nodeType":"YulFunctionCall","src":"4025:31:89"},"nativeSrc":"4025:31:89","nodeType":"YulExpressionStatement","src":"4025:31:89"},{"nativeSrc":"4065:15:89","nodeType":"YulAssignment","src":"4065:15:89","value":{"name":"value","nativeSrc":"4075:5:89","nodeType":"YulIdentifier","src":"4075:5:89"},"variableNames":[{"name":"value0","nativeSrc":"4065:6:89","nodeType":"YulIdentifier","src":"4065:6:89"}]},{"nativeSrc":"4089:46:89","nodeType":"YulVariableDeclaration","src":"4089:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4120:9:89","nodeType":"YulIdentifier","src":"4120:9:89"},{"kind":"number","nativeSrc":"4131:2:89","nodeType":"YulLiteral","src":"4131:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4116:3:89","nodeType":"YulIdentifier","src":"4116:3:89"},"nativeSrc":"4116:18:89","nodeType":"YulFunctionCall","src":"4116:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4103:12:89","nodeType":"YulIdentifier","src":"4103:12:89"},"nativeSrc":"4103:32:89","nodeType":"YulFunctionCall","src":"4103:32:89"},"variables":[{"name":"offset","nativeSrc":"4093:6:89","nodeType":"YulTypedName","src":"4093:6:89","type":""}]},{"body":{"nativeSrc":"4178:16:89","nodeType":"YulBlock","src":"4178:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4187:1:89","nodeType":"YulLiteral","src":"4187:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4190:1:89","nodeType":"YulLiteral","src":"4190:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4180:6:89","nodeType":"YulIdentifier","src":"4180:6:89"},"nativeSrc":"4180:12:89","nodeType":"YulFunctionCall","src":"4180:12:89"},"nativeSrc":"4180:12:89","nodeType":"YulExpressionStatement","src":"4180:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4150:6:89","nodeType":"YulIdentifier","src":"4150:6:89"},{"kind":"number","nativeSrc":"4158:18:89","nodeType":"YulLiteral","src":"4158:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4147:2:89","nodeType":"YulIdentifier","src":"4147:2:89"},"nativeSrc":"4147:30:89","nodeType":"YulFunctionCall","src":"4147:30:89"},"nativeSrc":"4144:50:89","nodeType":"YulIf","src":"4144:50:89"},{"nativeSrc":"4203:32:89","nodeType":"YulVariableDeclaration","src":"4203:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4217:9:89","nodeType":"YulIdentifier","src":"4217:9:89"},{"name":"offset","nativeSrc":"4228:6:89","nodeType":"YulIdentifier","src":"4228:6:89"}],"functionName":{"name":"add","nativeSrc":"4213:3:89","nodeType":"YulIdentifier","src":"4213:3:89"},"nativeSrc":"4213:22:89","nodeType":"YulFunctionCall","src":"4213:22:89"},"variables":[{"name":"_1","nativeSrc":"4207:2:89","nodeType":"YulTypedName","src":"4207:2:89","type":""}]},{"body":{"nativeSrc":"4283:16:89","nodeType":"YulBlock","src":"4283:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4292:1:89","nodeType":"YulLiteral","src":"4292:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4295:1:89","nodeType":"YulLiteral","src":"4295:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4285:6:89","nodeType":"YulIdentifier","src":"4285:6:89"},"nativeSrc":"4285:12:89","nodeType":"YulFunctionCall","src":"4285:12:89"},"nativeSrc":"4285:12:89","nodeType":"YulExpressionStatement","src":"4285:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4262:2:89","nodeType":"YulIdentifier","src":"4262:2:89"},{"kind":"number","nativeSrc":"4266:4:89","nodeType":"YulLiteral","src":"4266:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4258:3:89","nodeType":"YulIdentifier","src":"4258:3:89"},"nativeSrc":"4258:13:89","nodeType":"YulFunctionCall","src":"4258:13:89"},{"name":"dataEnd","nativeSrc":"4273:7:89","nodeType":"YulIdentifier","src":"4273:7:89"}],"functionName":{"name":"slt","nativeSrc":"4254:3:89","nodeType":"YulIdentifier","src":"4254:3:89"},"nativeSrc":"4254:27:89","nodeType":"YulFunctionCall","src":"4254:27:89"}],"functionName":{"name":"iszero","nativeSrc":"4247:6:89","nodeType":"YulIdentifier","src":"4247:6:89"},"nativeSrc":"4247:35:89","nodeType":"YulFunctionCall","src":"4247:35:89"},"nativeSrc":"4244:55:89","nodeType":"YulIf","src":"4244:55:89"},{"nativeSrc":"4308:30:89","nodeType":"YulVariableDeclaration","src":"4308:30:89","value":{"arguments":[{"name":"_1","nativeSrc":"4335:2:89","nodeType":"YulIdentifier","src":"4335:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"4322:12:89","nodeType":"YulIdentifier","src":"4322:12:89"},"nativeSrc":"4322:16:89","nodeType":"YulFunctionCall","src":"4322:16:89"},"variables":[{"name":"length","nativeSrc":"4312:6:89","nodeType":"YulTypedName","src":"4312:6:89","type":""}]},{"body":{"nativeSrc":"4381:22:89","nodeType":"YulBlock","src":"4381:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4383:16:89","nodeType":"YulIdentifier","src":"4383:16:89"},"nativeSrc":"4383:18:89","nodeType":"YulFunctionCall","src":"4383:18:89"},"nativeSrc":"4383:18:89","nodeType":"YulExpressionStatement","src":"4383:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4353:6:89","nodeType":"YulIdentifier","src":"4353:6:89"},{"kind":"number","nativeSrc":"4361:18:89","nodeType":"YulLiteral","src":"4361:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4350:2:89","nodeType":"YulIdentifier","src":"4350:2:89"},"nativeSrc":"4350:30:89","nodeType":"YulFunctionCall","src":"4350:30:89"},"nativeSrc":"4347:56:89","nodeType":"YulIf","src":"4347:56:89"},{"nativeSrc":"4412:23:89","nodeType":"YulVariableDeclaration","src":"4412:23:89","value":{"arguments":[{"kind":"number","nativeSrc":"4432:2:89","nodeType":"YulLiteral","src":"4432:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"4426:5:89","nodeType":"YulIdentifier","src":"4426:5:89"},"nativeSrc":"4426:9:89","nodeType":"YulFunctionCall","src":"4426:9:89"},"variables":[{"name":"memPtr","nativeSrc":"4416:6:89","nodeType":"YulTypedName","src":"4416:6:89","type":""}]},{"nativeSrc":"4444:85:89","nodeType":"YulVariableDeclaration","src":"4444:85:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"4466:6:89","nodeType":"YulIdentifier","src":"4466:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4490:6:89","nodeType":"YulIdentifier","src":"4490:6:89"},{"kind":"number","nativeSrc":"4498:4:89","nodeType":"YulLiteral","src":"4498:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4486:3:89","nodeType":"YulIdentifier","src":"4486:3:89"},"nativeSrc":"4486:17:89","nodeType":"YulFunctionCall","src":"4486:17:89"},{"arguments":[{"kind":"number","nativeSrc":"4509:2:89","nodeType":"YulLiteral","src":"4509:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4505:3:89","nodeType":"YulIdentifier","src":"4505:3:89"},"nativeSrc":"4505:7:89","nodeType":"YulFunctionCall","src":"4505:7:89"}],"functionName":{"name":"and","nativeSrc":"4482:3:89","nodeType":"YulIdentifier","src":"4482:3:89"},"nativeSrc":"4482:31:89","nodeType":"YulFunctionCall","src":"4482:31:89"},{"kind":"number","nativeSrc":"4515:2:89","nodeType":"YulLiteral","src":"4515:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"4478:3:89","nodeType":"YulIdentifier","src":"4478:3:89"},"nativeSrc":"4478:40:89","nodeType":"YulFunctionCall","src":"4478:40:89"},{"arguments":[{"kind":"number","nativeSrc":"4524:2:89","nodeType":"YulLiteral","src":"4524:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4520:3:89","nodeType":"YulIdentifier","src":"4520:3:89"},"nativeSrc":"4520:7:89","nodeType":"YulFunctionCall","src":"4520:7:89"}],"functionName":{"name":"and","nativeSrc":"4474:3:89","nodeType":"YulIdentifier","src":"4474:3:89"},"nativeSrc":"4474:54:89","nodeType":"YulFunctionCall","src":"4474:54:89"}],"functionName":{"name":"add","nativeSrc":"4462:3:89","nodeType":"YulIdentifier","src":"4462:3:89"},"nativeSrc":"4462:67:89","nodeType":"YulFunctionCall","src":"4462:67:89"},"variables":[{"name":"newFreePtr","nativeSrc":"4448:10:89","nodeType":"YulTypedName","src":"4448:10:89","type":""}]},{"body":{"nativeSrc":"4604:22:89","nodeType":"YulBlock","src":"4604:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4606:16:89","nodeType":"YulIdentifier","src":"4606:16:89"},"nativeSrc":"4606:18:89","nodeType":"YulFunctionCall","src":"4606:18:89"},"nativeSrc":"4606:18:89","nodeType":"YulExpressionStatement","src":"4606:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"4547:10:89","nodeType":"YulIdentifier","src":"4547:10:89"},{"kind":"number","nativeSrc":"4559:18:89","nodeType":"YulLiteral","src":"4559:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4544:2:89","nodeType":"YulIdentifier","src":"4544:2:89"},"nativeSrc":"4544:34:89","nodeType":"YulFunctionCall","src":"4544:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"4583:10:89","nodeType":"YulIdentifier","src":"4583:10:89"},{"name":"memPtr","nativeSrc":"4595:6:89","nodeType":"YulIdentifier","src":"4595:6:89"}],"functionName":{"name":"lt","nativeSrc":"4580:2:89","nodeType":"YulIdentifier","src":"4580:2:89"},"nativeSrc":"4580:22:89","nodeType":"YulFunctionCall","src":"4580:22:89"}],"functionName":{"name":"or","nativeSrc":"4541:2:89","nodeType":"YulIdentifier","src":"4541:2:89"},"nativeSrc":"4541:62:89","nodeType":"YulFunctionCall","src":"4541:62:89"},"nativeSrc":"4538:88:89","nodeType":"YulIf","src":"4538:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4642:2:89","nodeType":"YulLiteral","src":"4642:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"4646:10:89","nodeType":"YulIdentifier","src":"4646:10:89"}],"functionName":{"name":"mstore","nativeSrc":"4635:6:89","nodeType":"YulIdentifier","src":"4635:6:89"},"nativeSrc":"4635:22:89","nodeType":"YulFunctionCall","src":"4635:22:89"},"nativeSrc":"4635:22:89","nodeType":"YulExpressionStatement","src":"4635:22:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"4673:6:89","nodeType":"YulIdentifier","src":"4673:6:89"},{"name":"length","nativeSrc":"4681:6:89","nodeType":"YulIdentifier","src":"4681:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4666:6:89","nodeType":"YulIdentifier","src":"4666:6:89"},"nativeSrc":"4666:22:89","nodeType":"YulFunctionCall","src":"4666:22:89"},"nativeSrc":"4666:22:89","nodeType":"YulExpressionStatement","src":"4666:22:89"},{"body":{"nativeSrc":"4738:16:89","nodeType":"YulBlock","src":"4738:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4747:1:89","nodeType":"YulLiteral","src":"4747:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4750:1:89","nodeType":"YulLiteral","src":"4750:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4740:6:89","nodeType":"YulIdentifier","src":"4740:6:89"},"nativeSrc":"4740:12:89","nodeType":"YulFunctionCall","src":"4740:12:89"},"nativeSrc":"4740:12:89","nodeType":"YulExpressionStatement","src":"4740:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4711:2:89","nodeType":"YulIdentifier","src":"4711:2:89"},{"name":"length","nativeSrc":"4715:6:89","nodeType":"YulIdentifier","src":"4715:6:89"}],"functionName":{"name":"add","nativeSrc":"4707:3:89","nodeType":"YulIdentifier","src":"4707:3:89"},"nativeSrc":"4707:15:89","nodeType":"YulFunctionCall","src":"4707:15:89"},{"kind":"number","nativeSrc":"4724:2:89","nodeType":"YulLiteral","src":"4724:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4703:3:89","nodeType":"YulIdentifier","src":"4703:3:89"},"nativeSrc":"4703:24:89","nodeType":"YulFunctionCall","src":"4703:24:89"},{"name":"dataEnd","nativeSrc":"4729:7:89","nodeType":"YulIdentifier","src":"4729:7:89"}],"functionName":{"name":"gt","nativeSrc":"4700:2:89","nodeType":"YulIdentifier","src":"4700:2:89"},"nativeSrc":"4700:37:89","nodeType":"YulFunctionCall","src":"4700:37:89"},"nativeSrc":"4697:57:89","nodeType":"YulIf","src":"4697:57:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4780:6:89","nodeType":"YulIdentifier","src":"4780:6:89"},{"kind":"number","nativeSrc":"4788:2:89","nodeType":"YulLiteral","src":"4788:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4776:3:89","nodeType":"YulIdentifier","src":"4776:3:89"},"nativeSrc":"4776:15:89","nodeType":"YulFunctionCall","src":"4776:15:89"},{"arguments":[{"name":"_1","nativeSrc":"4797:2:89","nodeType":"YulIdentifier","src":"4797:2:89"},{"kind":"number","nativeSrc":"4801:2:89","nodeType":"YulLiteral","src":"4801:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4793:3:89","nodeType":"YulIdentifier","src":"4793:3:89"},"nativeSrc":"4793:11:89","nodeType":"YulFunctionCall","src":"4793:11:89"},{"name":"length","nativeSrc":"4806:6:89","nodeType":"YulIdentifier","src":"4806:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"4763:12:89","nodeType":"YulIdentifier","src":"4763:12:89"},"nativeSrc":"4763:50:89","nodeType":"YulFunctionCall","src":"4763:50:89"},"nativeSrc":"4763:50:89","nodeType":"YulExpressionStatement","src":"4763:50:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4837:6:89","nodeType":"YulIdentifier","src":"4837:6:89"},{"name":"length","nativeSrc":"4845:6:89","nodeType":"YulIdentifier","src":"4845:6:89"}],"functionName":{"name":"add","nativeSrc":"4833:3:89","nodeType":"YulIdentifier","src":"4833:3:89"},"nativeSrc":"4833:19:89","nodeType":"YulFunctionCall","src":"4833:19:89"},{"kind":"number","nativeSrc":"4854:2:89","nodeType":"YulLiteral","src":"4854:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4829:3:89","nodeType":"YulIdentifier","src":"4829:3:89"},"nativeSrc":"4829:28:89","nodeType":"YulFunctionCall","src":"4829:28:89"},{"kind":"number","nativeSrc":"4859:1:89","nodeType":"YulLiteral","src":"4859:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4822:6:89","nodeType":"YulIdentifier","src":"4822:6:89"},"nativeSrc":"4822:39:89","nodeType":"YulFunctionCall","src":"4822:39:89"},"nativeSrc":"4822:39:89","nodeType":"YulExpressionStatement","src":"4822:39:89"},{"nativeSrc":"4870:16:89","nodeType":"YulAssignment","src":"4870:16:89","value":{"name":"memPtr","nativeSrc":"4880:6:89","nodeType":"YulIdentifier","src":"4880:6:89"},"variableNames":[{"name":"value1","nativeSrc":"4870:6:89","nodeType":"YulIdentifier","src":"4870:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"3813:1079:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3867:9:89","nodeType":"YulTypedName","src":"3867:9:89","type":""},{"name":"dataEnd","nativeSrc":"3878:7:89","nodeType":"YulTypedName","src":"3878:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3890:6:89","nodeType":"YulTypedName","src":"3890:6:89","type":""},{"name":"value1","nativeSrc":"3898:6:89","nodeType":"YulTypedName","src":"3898:6:89","type":""}],"src":"3813:1079:89"},{"body":{"nativeSrc":"4994:87:89","nodeType":"YulBlock","src":"4994:87:89","statements":[{"nativeSrc":"5004:26:89","nodeType":"YulAssignment","src":"5004:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5016:9:89","nodeType":"YulIdentifier","src":"5016:9:89"},{"kind":"number","nativeSrc":"5027:2:89","nodeType":"YulLiteral","src":"5027:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5012:3:89","nodeType":"YulIdentifier","src":"5012:3:89"},"nativeSrc":"5012:18:89","nodeType":"YulFunctionCall","src":"5012:18:89"},"variableNames":[{"name":"tail","nativeSrc":"5004:4:89","nodeType":"YulIdentifier","src":"5004:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5046:9:89","nodeType":"YulIdentifier","src":"5046:9:89"},{"arguments":[{"name":"value0","nativeSrc":"5061:6:89","nodeType":"YulIdentifier","src":"5061:6:89"},{"kind":"number","nativeSrc":"5069:4:89","nodeType":"YulLiteral","src":"5069:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"5057:3:89","nodeType":"YulIdentifier","src":"5057:3:89"},"nativeSrc":"5057:17:89","nodeType":"YulFunctionCall","src":"5057:17:89"}],"functionName":{"name":"mstore","nativeSrc":"5039:6:89","nodeType":"YulIdentifier","src":"5039:6:89"},"nativeSrc":"5039:36:89","nodeType":"YulFunctionCall","src":"5039:36:89"},"nativeSrc":"5039:36:89","nodeType":"YulExpressionStatement","src":"5039:36:89"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4897:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4963:9:89","nodeType":"YulTypedName","src":"4963:9:89","type":""},{"name":"value0","nativeSrc":"4974:6:89","nodeType":"YulTypedName","src":"4974:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4985:4:89","nodeType":"YulTypedName","src":"4985:4:89","type":""}],"src":"4897:184:89"},{"body":{"nativeSrc":"5173:228:89","nodeType":"YulBlock","src":"5173:228:89","statements":[{"body":{"nativeSrc":"5219:16:89","nodeType":"YulBlock","src":"5219:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5228:1:89","nodeType":"YulLiteral","src":"5228:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5231:1:89","nodeType":"YulLiteral","src":"5231:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5221:6:89","nodeType":"YulIdentifier","src":"5221:6:89"},"nativeSrc":"5221:12:89","nodeType":"YulFunctionCall","src":"5221:12:89"},"nativeSrc":"5221:12:89","nodeType":"YulExpressionStatement","src":"5221:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5194:7:89","nodeType":"YulIdentifier","src":"5194:7:89"},{"name":"headStart","nativeSrc":"5203:9:89","nodeType":"YulIdentifier","src":"5203:9:89"}],"functionName":{"name":"sub","nativeSrc":"5190:3:89","nodeType":"YulIdentifier","src":"5190:3:89"},"nativeSrc":"5190:23:89","nodeType":"YulFunctionCall","src":"5190:23:89"},{"kind":"number","nativeSrc":"5215:2:89","nodeType":"YulLiteral","src":"5215:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5186:3:89","nodeType":"YulIdentifier","src":"5186:3:89"},"nativeSrc":"5186:32:89","nodeType":"YulFunctionCall","src":"5186:32:89"},"nativeSrc":"5183:52:89","nodeType":"YulIf","src":"5183:52:89"},{"nativeSrc":"5244:33:89","nodeType":"YulAssignment","src":"5244:33:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5267:9:89","nodeType":"YulIdentifier","src":"5267:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"5254:12:89","nodeType":"YulIdentifier","src":"5254:12:89"},"nativeSrc":"5254:23:89","nodeType":"YulFunctionCall","src":"5254:23:89"},"variableNames":[{"name":"value0","nativeSrc":"5244:6:89","nodeType":"YulIdentifier","src":"5244:6:89"}]},{"nativeSrc":"5286:45:89","nodeType":"YulVariableDeclaration","src":"5286:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5316:9:89","nodeType":"YulIdentifier","src":"5316:9:89"},{"kind":"number","nativeSrc":"5327:2:89","nodeType":"YulLiteral","src":"5327:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5312:3:89","nodeType":"YulIdentifier","src":"5312:3:89"},"nativeSrc":"5312:18:89","nodeType":"YulFunctionCall","src":"5312:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"5299:12:89","nodeType":"YulIdentifier","src":"5299:12:89"},"nativeSrc":"5299:32:89","nodeType":"YulFunctionCall","src":"5299:32:89"},"variables":[{"name":"value","nativeSrc":"5290:5:89","nodeType":"YulTypedName","src":"5290:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5365:5:89","nodeType":"YulIdentifier","src":"5365:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5340:24:89","nodeType":"YulIdentifier","src":"5340:24:89"},"nativeSrc":"5340:31:89","nodeType":"YulFunctionCall","src":"5340:31:89"},"nativeSrc":"5340:31:89","nodeType":"YulExpressionStatement","src":"5340:31:89"},{"nativeSrc":"5380:15:89","nodeType":"YulAssignment","src":"5380:15:89","value":{"name":"value","nativeSrc":"5390:5:89","nodeType":"YulIdentifier","src":"5390:5:89"},"variableNames":[{"name":"value1","nativeSrc":"5380:6:89","nodeType":"YulIdentifier","src":"5380:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nativeSrc":"5086:315:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5131:9:89","nodeType":"YulTypedName","src":"5131:9:89","type":""},{"name":"dataEnd","nativeSrc":"5142:7:89","nodeType":"YulTypedName","src":"5142:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5154:6:89","nodeType":"YulTypedName","src":"5154:6:89","type":""},{"name":"value1","nativeSrc":"5162:6:89","nodeType":"YulTypedName","src":"5162:6:89","type":""}],"src":"5086:315:89"},{"body":{"nativeSrc":"5476:177:89","nodeType":"YulBlock","src":"5476:177:89","statements":[{"body":{"nativeSrc":"5522:16:89","nodeType":"YulBlock","src":"5522:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5531:1:89","nodeType":"YulLiteral","src":"5531:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5534:1:89","nodeType":"YulLiteral","src":"5534:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5524:6:89","nodeType":"YulIdentifier","src":"5524:6:89"},"nativeSrc":"5524:12:89","nodeType":"YulFunctionCall","src":"5524:12:89"},"nativeSrc":"5524:12:89","nodeType":"YulExpressionStatement","src":"5524:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5497:7:89","nodeType":"YulIdentifier","src":"5497:7:89"},{"name":"headStart","nativeSrc":"5506:9:89","nodeType":"YulIdentifier","src":"5506:9:89"}],"functionName":{"name":"sub","nativeSrc":"5493:3:89","nodeType":"YulIdentifier","src":"5493:3:89"},"nativeSrc":"5493:23:89","nodeType":"YulFunctionCall","src":"5493:23:89"},{"kind":"number","nativeSrc":"5518:2:89","nodeType":"YulLiteral","src":"5518:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5489:3:89","nodeType":"YulIdentifier","src":"5489:3:89"},"nativeSrc":"5489:32:89","nodeType":"YulFunctionCall","src":"5489:32:89"},"nativeSrc":"5486:52:89","nodeType":"YulIf","src":"5486:52:89"},{"nativeSrc":"5547:36:89","nodeType":"YulVariableDeclaration","src":"5547:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5573:9:89","nodeType":"YulIdentifier","src":"5573:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"5560:12:89","nodeType":"YulIdentifier","src":"5560:12:89"},"nativeSrc":"5560:23:89","nodeType":"YulFunctionCall","src":"5560:23:89"},"variables":[{"name":"value","nativeSrc":"5551:5:89","nodeType":"YulTypedName","src":"5551:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5617:5:89","nodeType":"YulIdentifier","src":"5617:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5592:24:89","nodeType":"YulIdentifier","src":"5592:24:89"},"nativeSrc":"5592:31:89","nodeType":"YulFunctionCall","src":"5592:31:89"},"nativeSrc":"5592:31:89","nodeType":"YulExpressionStatement","src":"5592:31:89"},{"nativeSrc":"5632:15:89","nodeType":"YulAssignment","src":"5632:15:89","value":{"name":"value","nativeSrc":"5642:5:89","nodeType":"YulIdentifier","src":"5642:5:89"},"variableNames":[{"name":"value0","nativeSrc":"5632:6:89","nodeType":"YulIdentifier","src":"5632:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5406:247:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5442:9:89","nodeType":"YulTypedName","src":"5442:9:89","type":""},{"name":"dataEnd","nativeSrc":"5453:7:89","nodeType":"YulTypedName","src":"5453:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5465:6:89","nodeType":"YulTypedName","src":"5465:6:89","type":""}],"src":"5406:247:89"},{"body":{"nativeSrc":"5757:101:89","nodeType":"YulBlock","src":"5757:101:89","statements":[{"nativeSrc":"5767:26:89","nodeType":"YulAssignment","src":"5767:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5779:9:89","nodeType":"YulIdentifier","src":"5779:9:89"},{"kind":"number","nativeSrc":"5790:2:89","nodeType":"YulLiteral","src":"5790:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5775:3:89","nodeType":"YulIdentifier","src":"5775:3:89"},"nativeSrc":"5775:18:89","nodeType":"YulFunctionCall","src":"5775:18:89"},"variableNames":[{"name":"tail","nativeSrc":"5767:4:89","nodeType":"YulIdentifier","src":"5767:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5809:9:89","nodeType":"YulIdentifier","src":"5809:9:89"},{"arguments":[{"name":"value0","nativeSrc":"5824:6:89","nodeType":"YulIdentifier","src":"5824:6:89"},{"kind":"number","nativeSrc":"5832:18:89","nodeType":"YulLiteral","src":"5832:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5820:3:89","nodeType":"YulIdentifier","src":"5820:3:89"},"nativeSrc":"5820:31:89","nodeType":"YulFunctionCall","src":"5820:31:89"}],"functionName":{"name":"mstore","nativeSrc":"5802:6:89","nodeType":"YulIdentifier","src":"5802:6:89"},"nativeSrc":"5802:50:89","nodeType":"YulFunctionCall","src":"5802:50:89"},"nativeSrc":"5802:50:89","nodeType":"YulExpressionStatement","src":"5802:50:89"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"5658:200:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5726:9:89","nodeType":"YulTypedName","src":"5726:9:89","type":""},{"name":"value0","nativeSrc":"5737:6:89","nodeType":"YulTypedName","src":"5737:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5748:4:89","nodeType":"YulTypedName","src":"5748:4:89","type":""}],"src":"5658:200:89"},{"body":{"nativeSrc":"5970:439:89","nodeType":"YulBlock","src":"5970:439:89","statements":[{"body":{"nativeSrc":"6016:16:89","nodeType":"YulBlock","src":"6016:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6025:1:89","nodeType":"YulLiteral","src":"6025:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6028:1:89","nodeType":"YulLiteral","src":"6028:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6018:6:89","nodeType":"YulIdentifier","src":"6018:6:89"},"nativeSrc":"6018:12:89","nodeType":"YulFunctionCall","src":"6018:12:89"},"nativeSrc":"6018:12:89","nodeType":"YulExpressionStatement","src":"6018:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5991:7:89","nodeType":"YulIdentifier","src":"5991:7:89"},{"name":"headStart","nativeSrc":"6000:9:89","nodeType":"YulIdentifier","src":"6000:9:89"}],"functionName":{"name":"sub","nativeSrc":"5987:3:89","nodeType":"YulIdentifier","src":"5987:3:89"},"nativeSrc":"5987:23:89","nodeType":"YulFunctionCall","src":"5987:23:89"},{"kind":"number","nativeSrc":"6012:2:89","nodeType":"YulLiteral","src":"6012:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5983:3:89","nodeType":"YulIdentifier","src":"5983:3:89"},"nativeSrc":"5983:32:89","nodeType":"YulFunctionCall","src":"5983:32:89"},"nativeSrc":"5980:52:89","nodeType":"YulIf","src":"5980:52:89"},{"nativeSrc":"6041:36:89","nodeType":"YulVariableDeclaration","src":"6041:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6067:9:89","nodeType":"YulIdentifier","src":"6067:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"6054:12:89","nodeType":"YulIdentifier","src":"6054:12:89"},"nativeSrc":"6054:23:89","nodeType":"YulFunctionCall","src":"6054:23:89"},"variables":[{"name":"value","nativeSrc":"6045:5:89","nodeType":"YulTypedName","src":"6045:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6111:5:89","nodeType":"YulIdentifier","src":"6111:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6086:24:89","nodeType":"YulIdentifier","src":"6086:24:89"},"nativeSrc":"6086:31:89","nodeType":"YulFunctionCall","src":"6086:31:89"},"nativeSrc":"6086:31:89","nodeType":"YulExpressionStatement","src":"6086:31:89"},{"nativeSrc":"6126:15:89","nodeType":"YulAssignment","src":"6126:15:89","value":{"name":"value","nativeSrc":"6136:5:89","nodeType":"YulIdentifier","src":"6136:5:89"},"variableNames":[{"name":"value0","nativeSrc":"6126:6:89","nodeType":"YulIdentifier","src":"6126:6:89"}]},{"nativeSrc":"6150:46:89","nodeType":"YulVariableDeclaration","src":"6150:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6181:9:89","nodeType":"YulIdentifier","src":"6181:9:89"},{"kind":"number","nativeSrc":"6192:2:89","nodeType":"YulLiteral","src":"6192:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6177:3:89","nodeType":"YulIdentifier","src":"6177:3:89"},"nativeSrc":"6177:18:89","nodeType":"YulFunctionCall","src":"6177:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"6164:12:89","nodeType":"YulIdentifier","src":"6164:12:89"},"nativeSrc":"6164:32:89","nodeType":"YulFunctionCall","src":"6164:32:89"},"variables":[{"name":"offset","nativeSrc":"6154:6:89","nodeType":"YulTypedName","src":"6154:6:89","type":""}]},{"body":{"nativeSrc":"6239:16:89","nodeType":"YulBlock","src":"6239:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6248:1:89","nodeType":"YulLiteral","src":"6248:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6251:1:89","nodeType":"YulLiteral","src":"6251:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6241:6:89","nodeType":"YulIdentifier","src":"6241:6:89"},"nativeSrc":"6241:12:89","nodeType":"YulFunctionCall","src":"6241:12:89"},"nativeSrc":"6241:12:89","nodeType":"YulExpressionStatement","src":"6241:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6211:6:89","nodeType":"YulIdentifier","src":"6211:6:89"},{"kind":"number","nativeSrc":"6219:18:89","nodeType":"YulLiteral","src":"6219:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6208:2:89","nodeType":"YulIdentifier","src":"6208:2:89"},"nativeSrc":"6208:30:89","nodeType":"YulFunctionCall","src":"6208:30:89"},"nativeSrc":"6205:50:89","nodeType":"YulIf","src":"6205:50:89"},{"nativeSrc":"6264:85:89","nodeType":"YulVariableDeclaration","src":"6264:85:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6321:9:89","nodeType":"YulIdentifier","src":"6321:9:89"},{"name":"offset","nativeSrc":"6332:6:89","nodeType":"YulIdentifier","src":"6332:6:89"}],"functionName":{"name":"add","nativeSrc":"6317:3:89","nodeType":"YulIdentifier","src":"6317:3:89"},"nativeSrc":"6317:22:89","nodeType":"YulFunctionCall","src":"6317:22:89"},{"name":"dataEnd","nativeSrc":"6341:7:89","nodeType":"YulIdentifier","src":"6341:7:89"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"6290:26:89","nodeType":"YulIdentifier","src":"6290:26:89"},"nativeSrc":"6290:59:89","nodeType":"YulFunctionCall","src":"6290:59:89"},"variables":[{"name":"value1_1","nativeSrc":"6268:8:89","nodeType":"YulTypedName","src":"6268:8:89","type":""},{"name":"value2_1","nativeSrc":"6278:8:89","nodeType":"YulTypedName","src":"6278:8:89","type":""}]},{"nativeSrc":"6358:18:89","nodeType":"YulAssignment","src":"6358:18:89","value":{"name":"value1_1","nativeSrc":"6368:8:89","nodeType":"YulIdentifier","src":"6368:8:89"},"variableNames":[{"name":"value1","nativeSrc":"6358:6:89","nodeType":"YulIdentifier","src":"6358:6:89"}]},{"nativeSrc":"6385:18:89","nodeType":"YulAssignment","src":"6385:18:89","value":{"name":"value2_1","nativeSrc":"6395:8:89","nodeType":"YulIdentifier","src":"6395:8:89"},"variableNames":[{"name":"value2","nativeSrc":"6385:6:89","nodeType":"YulIdentifier","src":"6385:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_string_calldata_ptr","nativeSrc":"5863:546:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5920:9:89","nodeType":"YulTypedName","src":"5920:9:89","type":""},{"name":"dataEnd","nativeSrc":"5931:7:89","nodeType":"YulTypedName","src":"5931:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5943:6:89","nodeType":"YulTypedName","src":"5943:6:89","type":""},{"name":"value1","nativeSrc":"5951:6:89","nodeType":"YulTypedName","src":"5951:6:89","type":""},{"name":"value2","nativeSrc":"5959:6:89","nodeType":"YulTypedName","src":"5959:6:89","type":""}],"src":"5863:546:89"},{"body":{"nativeSrc":"6480:184:89","nodeType":"YulBlock","src":"6480:184:89","statements":[{"nativeSrc":"6490:10:89","nodeType":"YulVariableDeclaration","src":"6490:10:89","value":{"kind":"number","nativeSrc":"6499:1:89","nodeType":"YulLiteral","src":"6499:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"6494:1:89","nodeType":"YulTypedName","src":"6494:1:89","type":""}]},{"body":{"nativeSrc":"6559:63:89","nodeType":"YulBlock","src":"6559:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6584:3:89","nodeType":"YulIdentifier","src":"6584:3:89"},{"name":"i","nativeSrc":"6589:1:89","nodeType":"YulIdentifier","src":"6589:1:89"}],"functionName":{"name":"add","nativeSrc":"6580:3:89","nodeType":"YulIdentifier","src":"6580:3:89"},"nativeSrc":"6580:11:89","nodeType":"YulFunctionCall","src":"6580:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6603:3:89","nodeType":"YulIdentifier","src":"6603:3:89"},{"name":"i","nativeSrc":"6608:1:89","nodeType":"YulIdentifier","src":"6608:1:89"}],"functionName":{"name":"add","nativeSrc":"6599:3:89","nodeType":"YulIdentifier","src":"6599:3:89"},"nativeSrc":"6599:11:89","nodeType":"YulFunctionCall","src":"6599:11:89"}],"functionName":{"name":"mload","nativeSrc":"6593:5:89","nodeType":"YulIdentifier","src":"6593:5:89"},"nativeSrc":"6593:18:89","nodeType":"YulFunctionCall","src":"6593:18:89"}],"functionName":{"name":"mstore","nativeSrc":"6573:6:89","nodeType":"YulIdentifier","src":"6573:6:89"},"nativeSrc":"6573:39:89","nodeType":"YulFunctionCall","src":"6573:39:89"},"nativeSrc":"6573:39:89","nodeType":"YulExpressionStatement","src":"6573:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6520:1:89","nodeType":"YulIdentifier","src":"6520:1:89"},{"name":"length","nativeSrc":"6523:6:89","nodeType":"YulIdentifier","src":"6523:6:89"}],"functionName":{"name":"lt","nativeSrc":"6517:2:89","nodeType":"YulIdentifier","src":"6517:2:89"},"nativeSrc":"6517:13:89","nodeType":"YulFunctionCall","src":"6517:13:89"},"nativeSrc":"6509:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"6531:19:89","nodeType":"YulBlock","src":"6531:19:89","statements":[{"nativeSrc":"6533:15:89","nodeType":"YulAssignment","src":"6533:15:89","value":{"arguments":[{"name":"i","nativeSrc":"6542:1:89","nodeType":"YulIdentifier","src":"6542:1:89"},{"kind":"number","nativeSrc":"6545:2:89","nodeType":"YulLiteral","src":"6545:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6538:3:89","nodeType":"YulIdentifier","src":"6538:3:89"},"nativeSrc":"6538:10:89","nodeType":"YulFunctionCall","src":"6538:10:89"},"variableNames":[{"name":"i","nativeSrc":"6533:1:89","nodeType":"YulIdentifier","src":"6533:1:89"}]}]},"pre":{"nativeSrc":"6513:3:89","nodeType":"YulBlock","src":"6513:3:89","statements":[]},"src":"6509:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6642:3:89","nodeType":"YulIdentifier","src":"6642:3:89"},{"name":"length","nativeSrc":"6647:6:89","nodeType":"YulIdentifier","src":"6647:6:89"}],"functionName":{"name":"add","nativeSrc":"6638:3:89","nodeType":"YulIdentifier","src":"6638:3:89"},"nativeSrc":"6638:16:89","nodeType":"YulFunctionCall","src":"6638:16:89"},{"kind":"number","nativeSrc":"6656:1:89","nodeType":"YulLiteral","src":"6656:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6631:6:89","nodeType":"YulIdentifier","src":"6631:6:89"},"nativeSrc":"6631:27:89","nodeType":"YulFunctionCall","src":"6631:27:89"},"nativeSrc":"6631:27:89","nodeType":"YulExpressionStatement","src":"6631:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6414:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6458:3:89","nodeType":"YulTypedName","src":"6458:3:89","type":""},{"name":"dst","nativeSrc":"6463:3:89","nodeType":"YulTypedName","src":"6463:3:89","type":""},{"name":"length","nativeSrc":"6468:6:89","nodeType":"YulTypedName","src":"6468:6:89","type":""}],"src":"6414:250:89"},{"body":{"nativeSrc":"6719:221:89","nodeType":"YulBlock","src":"6719:221:89","statements":[{"nativeSrc":"6729:26:89","nodeType":"YulVariableDeclaration","src":"6729:26:89","value":{"arguments":[{"name":"value","nativeSrc":"6749:5:89","nodeType":"YulIdentifier","src":"6749:5:89"}],"functionName":{"name":"mload","nativeSrc":"6743:5:89","nodeType":"YulIdentifier","src":"6743:5:89"},"nativeSrc":"6743:12:89","nodeType":"YulFunctionCall","src":"6743:12:89"},"variables":[{"name":"length","nativeSrc":"6733:6:89","nodeType":"YulTypedName","src":"6733:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6771:3:89","nodeType":"YulIdentifier","src":"6771:3:89"},{"name":"length","nativeSrc":"6776:6:89","nodeType":"YulIdentifier","src":"6776:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6764:6:89","nodeType":"YulIdentifier","src":"6764:6:89"},"nativeSrc":"6764:19:89","nodeType":"YulFunctionCall","src":"6764:19:89"},"nativeSrc":"6764:19:89","nodeType":"YulExpressionStatement","src":"6764:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6831:5:89","nodeType":"YulIdentifier","src":"6831:5:89"},{"kind":"number","nativeSrc":"6838:4:89","nodeType":"YulLiteral","src":"6838:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6827:3:89","nodeType":"YulIdentifier","src":"6827:3:89"},"nativeSrc":"6827:16:89","nodeType":"YulFunctionCall","src":"6827:16:89"},{"arguments":[{"name":"pos","nativeSrc":"6849:3:89","nodeType":"YulIdentifier","src":"6849:3:89"},{"kind":"number","nativeSrc":"6854:4:89","nodeType":"YulLiteral","src":"6854:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6845:3:89","nodeType":"YulIdentifier","src":"6845:3:89"},"nativeSrc":"6845:14:89","nodeType":"YulFunctionCall","src":"6845:14:89"},{"name":"length","nativeSrc":"6861:6:89","nodeType":"YulIdentifier","src":"6861:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6792:34:89","nodeType":"YulIdentifier","src":"6792:34:89"},"nativeSrc":"6792:76:89","nodeType":"YulFunctionCall","src":"6792:76:89"},"nativeSrc":"6792:76:89","nodeType":"YulExpressionStatement","src":"6792:76:89"},{"nativeSrc":"6877:57:89","nodeType":"YulAssignment","src":"6877:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6892:3:89","nodeType":"YulIdentifier","src":"6892:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6905:6:89","nodeType":"YulIdentifier","src":"6905:6:89"},{"kind":"number","nativeSrc":"6913:2:89","nodeType":"YulLiteral","src":"6913:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6901:3:89","nodeType":"YulIdentifier","src":"6901:3:89"},"nativeSrc":"6901:15:89","nodeType":"YulFunctionCall","src":"6901:15:89"},{"arguments":[{"kind":"number","nativeSrc":"6922:2:89","nodeType":"YulLiteral","src":"6922:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"6918:3:89","nodeType":"YulIdentifier","src":"6918:3:89"},"nativeSrc":"6918:7:89","nodeType":"YulFunctionCall","src":"6918:7:89"}],"functionName":{"name":"and","nativeSrc":"6897:3:89","nodeType":"YulIdentifier","src":"6897:3:89"},"nativeSrc":"6897:29:89","nodeType":"YulFunctionCall","src":"6897:29:89"}],"functionName":{"name":"add","nativeSrc":"6888:3:89","nodeType":"YulIdentifier","src":"6888:3:89"},"nativeSrc":"6888:39:89","nodeType":"YulFunctionCall","src":"6888:39:89"},{"kind":"number","nativeSrc":"6929:4:89","nodeType":"YulLiteral","src":"6929:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6884:3:89","nodeType":"YulIdentifier","src":"6884:3:89"},"nativeSrc":"6884:50:89","nodeType":"YulFunctionCall","src":"6884:50:89"},"variableNames":[{"name":"end","nativeSrc":"6877:3:89","nodeType":"YulIdentifier","src":"6877:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"6669:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6696:5:89","nodeType":"YulTypedName","src":"6696:5:89","type":""},{"name":"pos","nativeSrc":"6703:3:89","nodeType":"YulTypedName","src":"6703:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6711:3:89","nodeType":"YulTypedName","src":"6711:3:89","type":""}],"src":"6669:271:89"},{"body":{"nativeSrc":"7066:99:89","nodeType":"YulBlock","src":"7066:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7083:9:89","nodeType":"YulIdentifier","src":"7083:9:89"},{"kind":"number","nativeSrc":"7094:2:89","nodeType":"YulLiteral","src":"7094:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7076:6:89","nodeType":"YulIdentifier","src":"7076:6:89"},"nativeSrc":"7076:21:89","nodeType":"YulFunctionCall","src":"7076:21:89"},"nativeSrc":"7076:21:89","nodeType":"YulExpressionStatement","src":"7076:21:89"},{"nativeSrc":"7106:53:89","nodeType":"YulAssignment","src":"7106:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"7132:6:89","nodeType":"YulIdentifier","src":"7132:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"7144:9:89","nodeType":"YulIdentifier","src":"7144:9:89"},{"kind":"number","nativeSrc":"7155:2:89","nodeType":"YulLiteral","src":"7155:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7140:3:89","nodeType":"YulIdentifier","src":"7140:3:89"},"nativeSrc":"7140:18:89","nodeType":"YulFunctionCall","src":"7140:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"7114:17:89","nodeType":"YulIdentifier","src":"7114:17:89"},"nativeSrc":"7114:45:89","nodeType":"YulFunctionCall","src":"7114:45:89"},"variableNames":[{"name":"tail","nativeSrc":"7106:4:89","nodeType":"YulIdentifier","src":"7106:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6945:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7035:9:89","nodeType":"YulTypedName","src":"7035:9:89","type":""},{"name":"value0","nativeSrc":"7046:6:89","nodeType":"YulTypedName","src":"7046:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7057:4:89","nodeType":"YulTypedName","src":"7057:4:89","type":""}],"src":"6945:220:89"},{"body":{"nativeSrc":"7265:427:89","nodeType":"YulBlock","src":"7265:427:89","statements":[{"nativeSrc":"7275:51:89","nodeType":"YulVariableDeclaration","src":"7275:51:89","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"7314:11:89","nodeType":"YulIdentifier","src":"7314:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"7301:12:89","nodeType":"YulIdentifier","src":"7301:12:89"},"nativeSrc":"7301:25:89","nodeType":"YulFunctionCall","src":"7301:25:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"7279:18:89","nodeType":"YulTypedName","src":"7279:18:89","type":""}]},{"body":{"nativeSrc":"7415:16:89","nodeType":"YulBlock","src":"7415:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7424:1:89","nodeType":"YulLiteral","src":"7424:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7427:1:89","nodeType":"YulLiteral","src":"7427:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7417:6:89","nodeType":"YulIdentifier","src":"7417:6:89"},"nativeSrc":"7417:12:89","nodeType":"YulFunctionCall","src":"7417:12:89"},"nativeSrc":"7417:12:89","nodeType":"YulExpressionStatement","src":"7417:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"7349:18:89","nodeType":"YulIdentifier","src":"7349:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"7377:12:89","nodeType":"YulIdentifier","src":"7377:12:89"},"nativeSrc":"7377:14:89","nodeType":"YulFunctionCall","src":"7377:14:89"},{"name":"base_ref","nativeSrc":"7393:8:89","nodeType":"YulIdentifier","src":"7393:8:89"}],"functionName":{"name":"sub","nativeSrc":"7373:3:89","nodeType":"YulIdentifier","src":"7373:3:89"},"nativeSrc":"7373:29:89","nodeType":"YulFunctionCall","src":"7373:29:89"},{"arguments":[{"kind":"number","nativeSrc":"7408:2:89","nodeType":"YulLiteral","src":"7408:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"7404:3:89","nodeType":"YulIdentifier","src":"7404:3:89"},"nativeSrc":"7404:7:89","nodeType":"YulFunctionCall","src":"7404:7:89"}],"functionName":{"name":"add","nativeSrc":"7369:3:89","nodeType":"YulIdentifier","src":"7369:3:89"},"nativeSrc":"7369:43:89","nodeType":"YulFunctionCall","src":"7369:43:89"}],"functionName":{"name":"slt","nativeSrc":"7345:3:89","nodeType":"YulIdentifier","src":"7345:3:89"},"nativeSrc":"7345:68:89","nodeType":"YulFunctionCall","src":"7345:68:89"}],"functionName":{"name":"iszero","nativeSrc":"7338:6:89","nodeType":"YulIdentifier","src":"7338:6:89"},"nativeSrc":"7338:76:89","nodeType":"YulFunctionCall","src":"7338:76:89"},"nativeSrc":"7335:96:89","nodeType":"YulIf","src":"7335:96:89"},{"nativeSrc":"7440:47:89","nodeType":"YulVariableDeclaration","src":"7440:47:89","value":{"arguments":[{"name":"base_ref","nativeSrc":"7458:8:89","nodeType":"YulIdentifier","src":"7458:8:89"},{"name":"rel_offset_of_tail","nativeSrc":"7468:18:89","nodeType":"YulIdentifier","src":"7468:18:89"}],"functionName":{"name":"add","nativeSrc":"7454:3:89","nodeType":"YulIdentifier","src":"7454:3:89"},"nativeSrc":"7454:33:89","nodeType":"YulFunctionCall","src":"7454:33:89"},"variables":[{"name":"addr_1","nativeSrc":"7444:6:89","nodeType":"YulTypedName","src":"7444:6:89","type":""}]},{"nativeSrc":"7496:30:89","nodeType":"YulAssignment","src":"7496:30:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"7519:6:89","nodeType":"YulIdentifier","src":"7519:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"7506:12:89","nodeType":"YulIdentifier","src":"7506:12:89"},"nativeSrc":"7506:20:89","nodeType":"YulFunctionCall","src":"7506:20:89"},"variableNames":[{"name":"length","nativeSrc":"7496:6:89","nodeType":"YulIdentifier","src":"7496:6:89"}]},{"body":{"nativeSrc":"7569:16:89","nodeType":"YulBlock","src":"7569:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7578:1:89","nodeType":"YulLiteral","src":"7578:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7581:1:89","nodeType":"YulLiteral","src":"7581:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7571:6:89","nodeType":"YulIdentifier","src":"7571:6:89"},"nativeSrc":"7571:12:89","nodeType":"YulFunctionCall","src":"7571:12:89"},"nativeSrc":"7571:12:89","nodeType":"YulExpressionStatement","src":"7571:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7541:6:89","nodeType":"YulIdentifier","src":"7541:6:89"},{"kind":"number","nativeSrc":"7549:18:89","nodeType":"YulLiteral","src":"7549:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7538:2:89","nodeType":"YulIdentifier","src":"7538:2:89"},"nativeSrc":"7538:30:89","nodeType":"YulFunctionCall","src":"7538:30:89"},"nativeSrc":"7535:50:89","nodeType":"YulIf","src":"7535:50:89"},{"nativeSrc":"7594:25:89","nodeType":"YulAssignment","src":"7594:25:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"7606:6:89","nodeType":"YulIdentifier","src":"7606:6:89"},{"kind":"number","nativeSrc":"7614:4:89","nodeType":"YulLiteral","src":"7614:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7602:3:89","nodeType":"YulIdentifier","src":"7602:3:89"},"nativeSrc":"7602:17:89","nodeType":"YulFunctionCall","src":"7602:17:89"},"variableNames":[{"name":"addr","nativeSrc":"7594:4:89","nodeType":"YulIdentifier","src":"7594:4:89"}]},{"body":{"nativeSrc":"7670:16:89","nodeType":"YulBlock","src":"7670:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7679:1:89","nodeType":"YulLiteral","src":"7679:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7682:1:89","nodeType":"YulLiteral","src":"7682:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7672:6:89","nodeType":"YulIdentifier","src":"7672:6:89"},"nativeSrc":"7672:12:89","nodeType":"YulFunctionCall","src":"7672:12:89"},"nativeSrc":"7672:12:89","nodeType":"YulExpressionStatement","src":"7672:12:89"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"7635:4:89","nodeType":"YulIdentifier","src":"7635:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"7645:12:89","nodeType":"YulIdentifier","src":"7645:12:89"},"nativeSrc":"7645:14:89","nodeType":"YulFunctionCall","src":"7645:14:89"},{"name":"length","nativeSrc":"7661:6:89","nodeType":"YulIdentifier","src":"7661:6:89"}],"functionName":{"name":"sub","nativeSrc":"7641:3:89","nodeType":"YulIdentifier","src":"7641:3:89"},"nativeSrc":"7641:27:89","nodeType":"YulFunctionCall","src":"7641:27:89"}],"functionName":{"name":"sgt","nativeSrc":"7631:3:89","nodeType":"YulIdentifier","src":"7631:3:89"},"nativeSrc":"7631:38:89","nodeType":"YulFunctionCall","src":"7631:38:89"},"nativeSrc":"7628:58:89","nodeType":"YulIf","src":"7628:58:89"}]},"name":"access_calldata_tail_t_string_calldata_ptr","nativeSrc":"7170:522:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"7222:8:89","nodeType":"YulTypedName","src":"7222:8:89","type":""},{"name":"ptr_to_tail","nativeSrc":"7232:11:89","nodeType":"YulTypedName","src":"7232:11:89","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"7248:4:89","nodeType":"YulTypedName","src":"7248:4:89","type":""},{"name":"length","nativeSrc":"7254:6:89","nodeType":"YulTypedName","src":"7254:6:89","type":""}],"src":"7170:522:89"},{"body":{"nativeSrc":"7765:201:89","nodeType":"YulBlock","src":"7765:201:89","statements":[{"body":{"nativeSrc":"7811:16:89","nodeType":"YulBlock","src":"7811:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7820:1:89","nodeType":"YulLiteral","src":"7820:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7823:1:89","nodeType":"YulLiteral","src":"7823:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7813:6:89","nodeType":"YulIdentifier","src":"7813:6:89"},"nativeSrc":"7813:12:89","nodeType":"YulFunctionCall","src":"7813:12:89"},"nativeSrc":"7813:12:89","nodeType":"YulExpressionStatement","src":"7813:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7786:7:89","nodeType":"YulIdentifier","src":"7786:7:89"},{"name":"headStart","nativeSrc":"7795:9:89","nodeType":"YulIdentifier","src":"7795:9:89"}],"functionName":{"name":"sub","nativeSrc":"7782:3:89","nodeType":"YulIdentifier","src":"7782:3:89"},"nativeSrc":"7782:23:89","nodeType":"YulFunctionCall","src":"7782:23:89"},{"kind":"number","nativeSrc":"7807:2:89","nodeType":"YulLiteral","src":"7807:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7778:3:89","nodeType":"YulIdentifier","src":"7778:3:89"},"nativeSrc":"7778:32:89","nodeType":"YulFunctionCall","src":"7778:32:89"},"nativeSrc":"7775:52:89","nodeType":"YulIf","src":"7775:52:89"},{"nativeSrc":"7836:36:89","nodeType":"YulVariableDeclaration","src":"7836:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7862:9:89","nodeType":"YulIdentifier","src":"7862:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"7849:12:89","nodeType":"YulIdentifier","src":"7849:12:89"},"nativeSrc":"7849:23:89","nodeType":"YulFunctionCall","src":"7849:23:89"},"variables":[{"name":"value","nativeSrc":"7840:5:89","nodeType":"YulTypedName","src":"7840:5:89","type":""}]},{"body":{"nativeSrc":"7920:16:89","nodeType":"YulBlock","src":"7920:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7929:1:89","nodeType":"YulLiteral","src":"7929:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7932:1:89","nodeType":"YulLiteral","src":"7932:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7922:6:89","nodeType":"YulIdentifier","src":"7922:6:89"},"nativeSrc":"7922:12:89","nodeType":"YulFunctionCall","src":"7922:12:89"},"nativeSrc":"7922:12:89","nodeType":"YulExpressionStatement","src":"7922:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7894:5:89","nodeType":"YulIdentifier","src":"7894:5:89"},{"arguments":[{"name":"value","nativeSrc":"7905:5:89","nodeType":"YulIdentifier","src":"7905:5:89"},{"kind":"number","nativeSrc":"7912:4:89","nodeType":"YulLiteral","src":"7912:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7901:3:89","nodeType":"YulIdentifier","src":"7901:3:89"},"nativeSrc":"7901:16:89","nodeType":"YulFunctionCall","src":"7901:16:89"}],"functionName":{"name":"eq","nativeSrc":"7891:2:89","nodeType":"YulIdentifier","src":"7891:2:89"},"nativeSrc":"7891:27:89","nodeType":"YulFunctionCall","src":"7891:27:89"}],"functionName":{"name":"iszero","nativeSrc":"7884:6:89","nodeType":"YulIdentifier","src":"7884:6:89"},"nativeSrc":"7884:35:89","nodeType":"YulFunctionCall","src":"7884:35:89"},"nativeSrc":"7881:55:89","nodeType":"YulIf","src":"7881:55:89"},{"nativeSrc":"7945:15:89","nodeType":"YulAssignment","src":"7945:15:89","value":{"name":"value","nativeSrc":"7955:5:89","nodeType":"YulIdentifier","src":"7955:5:89"},"variableNames":[{"name":"value0","nativeSrc":"7945:6:89","nodeType":"YulIdentifier","src":"7945:6:89"}]}]},"name":"abi_decode_tuple_t_uint8","nativeSrc":"7697:269:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7731:9:89","nodeType":"YulTypedName","src":"7731:9:89","type":""},{"name":"dataEnd","nativeSrc":"7742:7:89","nodeType":"YulTypedName","src":"7742:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7754:6:89","nodeType":"YulTypedName","src":"7754:6:89","type":""}],"src":"7697:269:89"},{"body":{"nativeSrc":"8038:200:89","nodeType":"YulBlock","src":"8038:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8055:3:89","nodeType":"YulIdentifier","src":"8055:3:89"},{"name":"length","nativeSrc":"8060:6:89","nodeType":"YulIdentifier","src":"8060:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8048:6:89","nodeType":"YulIdentifier","src":"8048:6:89"},"nativeSrc":"8048:19:89","nodeType":"YulFunctionCall","src":"8048:19:89"},"nativeSrc":"8048:19:89","nodeType":"YulExpressionStatement","src":"8048:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"8093:3:89","nodeType":"YulIdentifier","src":"8093:3:89"},{"kind":"number","nativeSrc":"8098:4:89","nodeType":"YulLiteral","src":"8098:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8089:3:89","nodeType":"YulIdentifier","src":"8089:3:89"},"nativeSrc":"8089:14:89","nodeType":"YulFunctionCall","src":"8089:14:89"},{"name":"start","nativeSrc":"8105:5:89","nodeType":"YulIdentifier","src":"8105:5:89"},{"name":"length","nativeSrc":"8112:6:89","nodeType":"YulIdentifier","src":"8112:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"8076:12:89","nodeType":"YulIdentifier","src":"8076:12:89"},"nativeSrc":"8076:43:89","nodeType":"YulFunctionCall","src":"8076:43:89"},"nativeSrc":"8076:43:89","nodeType":"YulExpressionStatement","src":"8076:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"8143:3:89","nodeType":"YulIdentifier","src":"8143:3:89"},{"name":"length","nativeSrc":"8148:6:89","nodeType":"YulIdentifier","src":"8148:6:89"}],"functionName":{"name":"add","nativeSrc":"8139:3:89","nodeType":"YulIdentifier","src":"8139:3:89"},"nativeSrc":"8139:16:89","nodeType":"YulFunctionCall","src":"8139:16:89"},{"kind":"number","nativeSrc":"8157:4:89","nodeType":"YulLiteral","src":"8157:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8135:3:89","nodeType":"YulIdentifier","src":"8135:3:89"},"nativeSrc":"8135:27:89","nodeType":"YulFunctionCall","src":"8135:27:89"},{"kind":"number","nativeSrc":"8164:1:89","nodeType":"YulLiteral","src":"8164:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8128:6:89","nodeType":"YulIdentifier","src":"8128:6:89"},"nativeSrc":"8128:38:89","nodeType":"YulFunctionCall","src":"8128:38:89"},"nativeSrc":"8128:38:89","nodeType":"YulExpressionStatement","src":"8128:38:89"},{"nativeSrc":"8175:57:89","nodeType":"YulAssignment","src":"8175:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"8190:3:89","nodeType":"YulIdentifier","src":"8190:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"8203:6:89","nodeType":"YulIdentifier","src":"8203:6:89"},{"kind":"number","nativeSrc":"8211:2:89","nodeType":"YulLiteral","src":"8211:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"8199:3:89","nodeType":"YulIdentifier","src":"8199:3:89"},"nativeSrc":"8199:15:89","nodeType":"YulFunctionCall","src":"8199:15:89"},{"arguments":[{"kind":"number","nativeSrc":"8220:2:89","nodeType":"YulLiteral","src":"8220:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"8216:3:89","nodeType":"YulIdentifier","src":"8216:3:89"},"nativeSrc":"8216:7:89","nodeType":"YulFunctionCall","src":"8216:7:89"}],"functionName":{"name":"and","nativeSrc":"8195:3:89","nodeType":"YulIdentifier","src":"8195:3:89"},"nativeSrc":"8195:29:89","nodeType":"YulFunctionCall","src":"8195:29:89"}],"functionName":{"name":"add","nativeSrc":"8186:3:89","nodeType":"YulIdentifier","src":"8186:3:89"},"nativeSrc":"8186:39:89","nodeType":"YulFunctionCall","src":"8186:39:89"},{"kind":"number","nativeSrc":"8227:4:89","nodeType":"YulLiteral","src":"8227:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8182:3:89","nodeType":"YulIdentifier","src":"8182:3:89"},"nativeSrc":"8182:50:89","nodeType":"YulFunctionCall","src":"8182:50:89"},"variableNames":[{"name":"end","nativeSrc":"8175:3:89","nodeType":"YulIdentifier","src":"8175:3:89"}]}]},"name":"abi_encode_string_calldata","nativeSrc":"7971:267:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"8007:5:89","nodeType":"YulTypedName","src":"8007:5:89","type":""},{"name":"length","nativeSrc":"8014:6:89","nodeType":"YulTypedName","src":"8014:6:89","type":""},{"name":"pos","nativeSrc":"8022:3:89","nodeType":"YulTypedName","src":"8022:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8030:3:89","nodeType":"YulTypedName","src":"8030:3:89","type":""}],"src":"7971:267:89"},{"body":{"nativeSrc":"8514:436:89","nodeType":"YulBlock","src":"8514:436:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8531:9:89","nodeType":"YulIdentifier","src":"8531:9:89"},{"kind":"number","nativeSrc":"8542:3:89","nodeType":"YulLiteral","src":"8542:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"8524:6:89","nodeType":"YulIdentifier","src":"8524:6:89"},"nativeSrc":"8524:22:89","nodeType":"YulFunctionCall","src":"8524:22:89"},"nativeSrc":"8524:22:89","nodeType":"YulExpressionStatement","src":"8524:22:89"},{"nativeSrc":"8555:77:89","nodeType":"YulVariableDeclaration","src":"8555:77:89","value":{"arguments":[{"name":"value0","nativeSrc":"8596:6:89","nodeType":"YulIdentifier","src":"8596:6:89"},{"name":"value1","nativeSrc":"8604:6:89","nodeType":"YulIdentifier","src":"8604:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"8616:9:89","nodeType":"YulIdentifier","src":"8616:9:89"},{"kind":"number","nativeSrc":"8627:3:89","nodeType":"YulLiteral","src":"8627:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8612:3:89","nodeType":"YulIdentifier","src":"8612:3:89"},"nativeSrc":"8612:19:89","nodeType":"YulFunctionCall","src":"8612:19:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8569:26:89","nodeType":"YulIdentifier","src":"8569:26:89"},"nativeSrc":"8569:63:89","nodeType":"YulFunctionCall","src":"8569:63:89"},"variables":[{"name":"tail_1","nativeSrc":"8559:6:89","nodeType":"YulTypedName","src":"8559:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8652:9:89","nodeType":"YulIdentifier","src":"8652:9:89"},{"kind":"number","nativeSrc":"8663:2:89","nodeType":"YulLiteral","src":"8663:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8648:3:89","nodeType":"YulIdentifier","src":"8648:3:89"},"nativeSrc":"8648:18:89","nodeType":"YulFunctionCall","src":"8648:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"8672:6:89","nodeType":"YulIdentifier","src":"8672:6:89"},{"name":"headStart","nativeSrc":"8680:9:89","nodeType":"YulIdentifier","src":"8680:9:89"}],"functionName":{"name":"sub","nativeSrc":"8668:3:89","nodeType":"YulIdentifier","src":"8668:3:89"},"nativeSrc":"8668:22:89","nodeType":"YulFunctionCall","src":"8668:22:89"}],"functionName":{"name":"mstore","nativeSrc":"8641:6:89","nodeType":"YulIdentifier","src":"8641:6:89"},"nativeSrc":"8641:50:89","nodeType":"YulFunctionCall","src":"8641:50:89"},"nativeSrc":"8641:50:89","nodeType":"YulExpressionStatement","src":"8641:50:89"},{"nativeSrc":"8700:64:89","nodeType":"YulVariableDeclaration","src":"8700:64:89","value":{"arguments":[{"name":"value2","nativeSrc":"8741:6:89","nodeType":"YulIdentifier","src":"8741:6:89"},{"name":"value3","nativeSrc":"8749:6:89","nodeType":"YulIdentifier","src":"8749:6:89"},{"name":"tail_1","nativeSrc":"8757:6:89","nodeType":"YulIdentifier","src":"8757:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8714:26:89","nodeType":"YulIdentifier","src":"8714:26:89"},"nativeSrc":"8714:50:89","nodeType":"YulFunctionCall","src":"8714:50:89"},"variables":[{"name":"tail_2","nativeSrc":"8704:6:89","nodeType":"YulTypedName","src":"8704:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8784:9:89","nodeType":"YulIdentifier","src":"8784:9:89"},{"kind":"number","nativeSrc":"8795:2:89","nodeType":"YulLiteral","src":"8795:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8780:3:89","nodeType":"YulIdentifier","src":"8780:3:89"},"nativeSrc":"8780:18:89","nodeType":"YulFunctionCall","src":"8780:18:89"},{"arguments":[{"name":"value4","nativeSrc":"8804:6:89","nodeType":"YulIdentifier","src":"8804:6:89"},{"kind":"number","nativeSrc":"8812:4:89","nodeType":"YulLiteral","src":"8812:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"8800:3:89","nodeType":"YulIdentifier","src":"8800:3:89"},"nativeSrc":"8800:17:89","nodeType":"YulFunctionCall","src":"8800:17:89"}],"functionName":{"name":"mstore","nativeSrc":"8773:6:89","nodeType":"YulIdentifier","src":"8773:6:89"},"nativeSrc":"8773:45:89","nodeType":"YulFunctionCall","src":"8773:45:89"},"nativeSrc":"8773:45:89","nodeType":"YulExpressionStatement","src":"8773:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8838:9:89","nodeType":"YulIdentifier","src":"8838:9:89"},{"kind":"number","nativeSrc":"8849:2:89","nodeType":"YulLiteral","src":"8849:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8834:3:89","nodeType":"YulIdentifier","src":"8834:3:89"},"nativeSrc":"8834:18:89","nodeType":"YulFunctionCall","src":"8834:18:89"},{"arguments":[{"name":"tail_2","nativeSrc":"8858:6:89","nodeType":"YulIdentifier","src":"8858:6:89"},{"name":"headStart","nativeSrc":"8866:9:89","nodeType":"YulIdentifier","src":"8866:9:89"}],"functionName":{"name":"sub","nativeSrc":"8854:3:89","nodeType":"YulIdentifier","src":"8854:3:89"},"nativeSrc":"8854:22:89","nodeType":"YulFunctionCall","src":"8854:22:89"}],"functionName":{"name":"mstore","nativeSrc":"8827:6:89","nodeType":"YulIdentifier","src":"8827:6:89"},"nativeSrc":"8827:50:89","nodeType":"YulFunctionCall","src":"8827:50:89"},"nativeSrc":"8827:50:89","nodeType":"YulExpressionStatement","src":"8827:50:89"},{"nativeSrc":"8886:58:89","nodeType":"YulAssignment","src":"8886:58:89","value":{"arguments":[{"name":"value5","nativeSrc":"8921:6:89","nodeType":"YulIdentifier","src":"8921:6:89"},{"name":"value6","nativeSrc":"8929:6:89","nodeType":"YulIdentifier","src":"8929:6:89"},{"name":"tail_2","nativeSrc":"8937:6:89","nodeType":"YulIdentifier","src":"8937:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8894:26:89","nodeType":"YulIdentifier","src":"8894:26:89"},"nativeSrc":"8894:50:89","nodeType":"YulFunctionCall","src":"8894:50:89"},"variableNames":[{"name":"tail","nativeSrc":"8886:4:89","nodeType":"YulIdentifier","src":"8886:4:89"}]}]},"name":"abi_encode_tuple_t_string_calldata_ptr_t_string_calldata_ptr_t_uint8_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_uint8_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8243:707:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8435:9:89","nodeType":"YulTypedName","src":"8435:9:89","type":""},{"name":"value6","nativeSrc":"8446:6:89","nodeType":"YulTypedName","src":"8446:6:89","type":""},{"name":"value5","nativeSrc":"8454:6:89","nodeType":"YulTypedName","src":"8454:6:89","type":""},{"name":"value4","nativeSrc":"8462:6:89","nodeType":"YulTypedName","src":"8462:6:89","type":""},{"name":"value3","nativeSrc":"8470:6:89","nodeType":"YulTypedName","src":"8470:6:89","type":""},{"name":"value2","nativeSrc":"8478:6:89","nodeType":"YulTypedName","src":"8478:6:89","type":""},{"name":"value1","nativeSrc":"8486:6:89","nodeType":"YulTypedName","src":"8486:6:89","type":""},{"name":"value0","nativeSrc":"8494:6:89","nodeType":"YulTypedName","src":"8494:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8505:4:89","nodeType":"YulTypedName","src":"8505:4:89","type":""}],"src":"8243:707:89"},{"body":{"nativeSrc":"9260:514:89","nodeType":"YulBlock","src":"9260:514:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9277:9:89","nodeType":"YulIdentifier","src":"9277:9:89"},{"kind":"number","nativeSrc":"9288:3:89","nodeType":"YulLiteral","src":"9288:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"9270:6:89","nodeType":"YulIdentifier","src":"9270:6:89"},"nativeSrc":"9270:22:89","nodeType":"YulFunctionCall","src":"9270:22:89"},"nativeSrc":"9270:22:89","nodeType":"YulExpressionStatement","src":"9270:22:89"},{"nativeSrc":"9301:77:89","nodeType":"YulVariableDeclaration","src":"9301:77:89","value":{"arguments":[{"name":"value0","nativeSrc":"9342:6:89","nodeType":"YulIdentifier","src":"9342:6:89"},{"name":"value1","nativeSrc":"9350:6:89","nodeType":"YulIdentifier","src":"9350:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"9362:9:89","nodeType":"YulIdentifier","src":"9362:9:89"},{"kind":"number","nativeSrc":"9373:3:89","nodeType":"YulLiteral","src":"9373:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9358:3:89","nodeType":"YulIdentifier","src":"9358:3:89"},"nativeSrc":"9358:19:89","nodeType":"YulFunctionCall","src":"9358:19:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"9315:26:89","nodeType":"YulIdentifier","src":"9315:26:89"},"nativeSrc":"9315:63:89","nodeType":"YulFunctionCall","src":"9315:63:89"},"variables":[{"name":"tail_1","nativeSrc":"9305:6:89","nodeType":"YulTypedName","src":"9305:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9398:9:89","nodeType":"YulIdentifier","src":"9398:9:89"},{"kind":"number","nativeSrc":"9409:2:89","nodeType":"YulLiteral","src":"9409:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9394:3:89","nodeType":"YulIdentifier","src":"9394:3:89"},"nativeSrc":"9394:18:89","nodeType":"YulFunctionCall","src":"9394:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"9418:6:89","nodeType":"YulIdentifier","src":"9418:6:89"},{"name":"headStart","nativeSrc":"9426:9:89","nodeType":"YulIdentifier","src":"9426:9:89"}],"functionName":{"name":"sub","nativeSrc":"9414:3:89","nodeType":"YulIdentifier","src":"9414:3:89"},"nativeSrc":"9414:22:89","nodeType":"YulFunctionCall","src":"9414:22:89"}],"functionName":{"name":"mstore","nativeSrc":"9387:6:89","nodeType":"YulIdentifier","src":"9387:6:89"},"nativeSrc":"9387:50:89","nodeType":"YulFunctionCall","src":"9387:50:89"},"nativeSrc":"9387:50:89","nodeType":"YulExpressionStatement","src":"9387:50:89"},{"nativeSrc":"9446:64:89","nodeType":"YulVariableDeclaration","src":"9446:64:89","value":{"arguments":[{"name":"value2","nativeSrc":"9487:6:89","nodeType":"YulIdentifier","src":"9487:6:89"},{"name":"value3","nativeSrc":"9495:6:89","nodeType":"YulIdentifier","src":"9495:6:89"},{"name":"tail_1","nativeSrc":"9503:6:89","nodeType":"YulIdentifier","src":"9503:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"9460:26:89","nodeType":"YulIdentifier","src":"9460:26:89"},"nativeSrc":"9460:50:89","nodeType":"YulFunctionCall","src":"9460:50:89"},"variables":[{"name":"tail_2","nativeSrc":"9450:6:89","nodeType":"YulTypedName","src":"9450:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9530:9:89","nodeType":"YulIdentifier","src":"9530:9:89"},{"kind":"number","nativeSrc":"9541:2:89","nodeType":"YulLiteral","src":"9541:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9526:3:89","nodeType":"YulIdentifier","src":"9526:3:89"},"nativeSrc":"9526:18:89","nodeType":"YulFunctionCall","src":"9526:18:89"},{"arguments":[{"name":"tail_2","nativeSrc":"9550:6:89","nodeType":"YulIdentifier","src":"9550:6:89"},{"name":"headStart","nativeSrc":"9558:9:89","nodeType":"YulIdentifier","src":"9558:9:89"}],"functionName":{"name":"sub","nativeSrc":"9546:3:89","nodeType":"YulIdentifier","src":"9546:3:89"},"nativeSrc":"9546:22:89","nodeType":"YulFunctionCall","src":"9546:22:89"}],"functionName":{"name":"mstore","nativeSrc":"9519:6:89","nodeType":"YulIdentifier","src":"9519:6:89"},"nativeSrc":"9519:50:89","nodeType":"YulFunctionCall","src":"9519:50:89"},"nativeSrc":"9519:50:89","nodeType":"YulExpressionStatement","src":"9519:50:89"},{"nativeSrc":"9578:64:89","nodeType":"YulVariableDeclaration","src":"9578:64:89","value":{"arguments":[{"name":"value4","nativeSrc":"9619:6:89","nodeType":"YulIdentifier","src":"9619:6:89"},{"name":"value5","nativeSrc":"9627:6:89","nodeType":"YulIdentifier","src":"9627:6:89"},{"name":"tail_2","nativeSrc":"9635:6:89","nodeType":"YulIdentifier","src":"9635:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"9592:26:89","nodeType":"YulIdentifier","src":"9592:26:89"},"nativeSrc":"9592:50:89","nodeType":"YulFunctionCall","src":"9592:50:89"},"variables":[{"name":"tail_3","nativeSrc":"9582:6:89","nodeType":"YulTypedName","src":"9582:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9662:9:89","nodeType":"YulIdentifier","src":"9662:9:89"},{"kind":"number","nativeSrc":"9673:2:89","nodeType":"YulLiteral","src":"9673:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9658:3:89","nodeType":"YulIdentifier","src":"9658:3:89"},"nativeSrc":"9658:18:89","nodeType":"YulFunctionCall","src":"9658:18:89"},{"arguments":[{"name":"tail_3","nativeSrc":"9682:6:89","nodeType":"YulIdentifier","src":"9682:6:89"},{"name":"headStart","nativeSrc":"9690:9:89","nodeType":"YulIdentifier","src":"9690:9:89"}],"functionName":{"name":"sub","nativeSrc":"9678:3:89","nodeType":"YulIdentifier","src":"9678:3:89"},"nativeSrc":"9678:22:89","nodeType":"YulFunctionCall","src":"9678:22:89"}],"functionName":{"name":"mstore","nativeSrc":"9651:6:89","nodeType":"YulIdentifier","src":"9651:6:89"},"nativeSrc":"9651:50:89","nodeType":"YulFunctionCall","src":"9651:50:89"},"nativeSrc":"9651:50:89","nodeType":"YulExpressionStatement","src":"9651:50:89"},{"nativeSrc":"9710:58:89","nodeType":"YulAssignment","src":"9710:58:89","value":{"arguments":[{"name":"value6","nativeSrc":"9745:6:89","nodeType":"YulIdentifier","src":"9745:6:89"},{"name":"value7","nativeSrc":"9753:6:89","nodeType":"YulIdentifier","src":"9753:6:89"},{"name":"tail_3","nativeSrc":"9761:6:89","nodeType":"YulIdentifier","src":"9761:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"9718:26:89","nodeType":"YulIdentifier","src":"9718:26:89"},"nativeSrc":"9718:50:89","nodeType":"YulFunctionCall","src":"9718:50:89"},"variableNames":[{"name":"tail","nativeSrc":"9710:4:89","nodeType":"YulIdentifier","src":"9710:4:89"}]}]},"name":"abi_encode_tuple_t_string_calldata_ptr_t_string_calldata_ptr_t_string_calldata_ptr_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8955:819:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9173:9:89","nodeType":"YulTypedName","src":"9173:9:89","type":""},{"name":"value7","nativeSrc":"9184:6:89","nodeType":"YulTypedName","src":"9184:6:89","type":""},{"name":"value6","nativeSrc":"9192:6:89","nodeType":"YulTypedName","src":"9192:6:89","type":""},{"name":"value5","nativeSrc":"9200:6:89","nodeType":"YulTypedName","src":"9200:6:89","type":""},{"name":"value4","nativeSrc":"9208:6:89","nodeType":"YulTypedName","src":"9208:6:89","type":""},{"name":"value3","nativeSrc":"9216:6:89","nodeType":"YulTypedName","src":"9216:6:89","type":""},{"name":"value2","nativeSrc":"9224:6:89","nodeType":"YulTypedName","src":"9224:6:89","type":""},{"name":"value1","nativeSrc":"9232:6:89","nodeType":"YulTypedName","src":"9232:6:89","type":""},{"name":"value0","nativeSrc":"9240:6:89","nodeType":"YulTypedName","src":"9240:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9251:4:89","nodeType":"YulTypedName","src":"9251:4:89","type":""}],"src":"8955:819:89"},{"body":{"nativeSrc":"9928:124:89","nodeType":"YulBlock","src":"9928:124:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9951:3:89","nodeType":"YulIdentifier","src":"9951:3:89"},{"name":"value0","nativeSrc":"9956:6:89","nodeType":"YulIdentifier","src":"9956:6:89"},{"name":"value1","nativeSrc":"9964:6:89","nodeType":"YulIdentifier","src":"9964:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"9938:12:89","nodeType":"YulIdentifier","src":"9938:12:89"},"nativeSrc":"9938:33:89","nodeType":"YulFunctionCall","src":"9938:33:89"},"nativeSrc":"9938:33:89","nodeType":"YulExpressionStatement","src":"9938:33:89"},{"nativeSrc":"9980:26:89","nodeType":"YulVariableDeclaration","src":"9980:26:89","value":{"arguments":[{"name":"pos","nativeSrc":"9994:3:89","nodeType":"YulIdentifier","src":"9994:3:89"},{"name":"value1","nativeSrc":"9999:6:89","nodeType":"YulIdentifier","src":"9999:6:89"}],"functionName":{"name":"add","nativeSrc":"9990:3:89","nodeType":"YulIdentifier","src":"9990:3:89"},"nativeSrc":"9990:16:89","nodeType":"YulFunctionCall","src":"9990:16:89"},"variables":[{"name":"_1","nativeSrc":"9984:2:89","nodeType":"YulTypedName","src":"9984:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"10022:2:89","nodeType":"YulIdentifier","src":"10022:2:89"},{"kind":"number","nativeSrc":"10026:1:89","nodeType":"YulLiteral","src":"10026:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10015:6:89","nodeType":"YulIdentifier","src":"10015:6:89"},"nativeSrc":"10015:13:89","nodeType":"YulFunctionCall","src":"10015:13:89"},"nativeSrc":"10015:13:89","nodeType":"YulExpressionStatement","src":"10015:13:89"},{"nativeSrc":"10037:9:89","nodeType":"YulAssignment","src":"10037:9:89","value":{"name":"_1","nativeSrc":"10044:2:89","nodeType":"YulIdentifier","src":"10044:2:89"},"variableNames":[{"name":"end","nativeSrc":"10037:3:89","nodeType":"YulIdentifier","src":"10037:3:89"}]}]},"name":"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"9779:273:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9896:3:89","nodeType":"YulTypedName","src":"9896:3:89","type":""},{"name":"value1","nativeSrc":"9901:6:89","nodeType":"YulTypedName","src":"9901:6:89","type":""},{"name":"value0","nativeSrc":"9909:6:89","nodeType":"YulTypedName","src":"9909:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9920:3:89","nodeType":"YulTypedName","src":"9920:3:89","type":""}],"src":"9779:273:89"},{"body":{"nativeSrc":"10165:101:89","nodeType":"YulBlock","src":"10165:101:89","statements":[{"nativeSrc":"10175:26:89","nodeType":"YulAssignment","src":"10175:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"10187:9:89","nodeType":"YulIdentifier","src":"10187:9:89"},{"kind":"number","nativeSrc":"10198:2:89","nodeType":"YulLiteral","src":"10198:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10183:3:89","nodeType":"YulIdentifier","src":"10183:3:89"},"nativeSrc":"10183:18:89","nodeType":"YulFunctionCall","src":"10183:18:89"},"variableNames":[{"name":"tail","nativeSrc":"10175:4:89","nodeType":"YulIdentifier","src":"10175:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10217:9:89","nodeType":"YulIdentifier","src":"10217:9:89"},{"arguments":[{"name":"value0","nativeSrc":"10232:6:89","nodeType":"YulIdentifier","src":"10232:6:89"},{"kind":"number","nativeSrc":"10240:18:89","nodeType":"YulLiteral","src":"10240:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10228:3:89","nodeType":"YulIdentifier","src":"10228:3:89"},"nativeSrc":"10228:31:89","nodeType":"YulFunctionCall","src":"10228:31:89"}],"functionName":{"name":"mstore","nativeSrc":"10210:6:89","nodeType":"YulIdentifier","src":"10210:6:89"},"nativeSrc":"10210:50:89","nodeType":"YulFunctionCall","src":"10210:50:89"},"nativeSrc":"10210:50:89","nodeType":"YulExpressionStatement","src":"10210:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"10057:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10134:9:89","nodeType":"YulTypedName","src":"10134:9:89","type":""},{"name":"value0","nativeSrc":"10145:6:89","nodeType":"YulTypedName","src":"10145:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10156:4:89","nodeType":"YulTypedName","src":"10156:4:89","type":""}],"src":"10057:209:89"},{"body":{"nativeSrc":"10372:76:89","nodeType":"YulBlock","src":"10372:76:89","statements":[{"nativeSrc":"10382:26:89","nodeType":"YulAssignment","src":"10382:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"10394:9:89","nodeType":"YulIdentifier","src":"10394:9:89"},{"kind":"number","nativeSrc":"10405:2:89","nodeType":"YulLiteral","src":"10405:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10390:3:89","nodeType":"YulIdentifier","src":"10390:3:89"},"nativeSrc":"10390:18:89","nodeType":"YulFunctionCall","src":"10390:18:89"},"variableNames":[{"name":"tail","nativeSrc":"10382:4:89","nodeType":"YulIdentifier","src":"10382:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10424:9:89","nodeType":"YulIdentifier","src":"10424:9:89"},{"name":"value0","nativeSrc":"10435:6:89","nodeType":"YulIdentifier","src":"10435:6:89"}],"functionName":{"name":"mstore","nativeSrc":"10417:6:89","nodeType":"YulIdentifier","src":"10417:6:89"},"nativeSrc":"10417:25:89","nodeType":"YulFunctionCall","src":"10417:25:89"},"nativeSrc":"10417:25:89","nodeType":"YulExpressionStatement","src":"10417:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"10271:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10341:9:89","nodeType":"YulTypedName","src":"10341:9:89","type":""},{"name":"value0","nativeSrc":"10352:6:89","nodeType":"YulTypedName","src":"10352:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10363:4:89","nodeType":"YulTypedName","src":"10363:4:89","type":""}],"src":"10271:177:89"},{"body":{"nativeSrc":"10584:116:89","nodeType":"YulBlock","src":"10584:116:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10601:9:89","nodeType":"YulIdentifier","src":"10601:9:89"},{"kind":"number","nativeSrc":"10612:2:89","nodeType":"YulLiteral","src":"10612:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10594:6:89","nodeType":"YulIdentifier","src":"10594:6:89"},"nativeSrc":"10594:21:89","nodeType":"YulFunctionCall","src":"10594:21:89"},"nativeSrc":"10594:21:89","nodeType":"YulExpressionStatement","src":"10594:21:89"},{"nativeSrc":"10624:70:89","nodeType":"YulAssignment","src":"10624:70:89","value":{"arguments":[{"name":"value0","nativeSrc":"10659:6:89","nodeType":"YulIdentifier","src":"10659:6:89"},{"name":"value1","nativeSrc":"10667:6:89","nodeType":"YulIdentifier","src":"10667:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"10679:9:89","nodeType":"YulIdentifier","src":"10679:9:89"},{"kind":"number","nativeSrc":"10690:2:89","nodeType":"YulLiteral","src":"10690:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10675:3:89","nodeType":"YulIdentifier","src":"10675:3:89"},"nativeSrc":"10675:18:89","nodeType":"YulFunctionCall","src":"10675:18:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"10632:26:89","nodeType":"YulIdentifier","src":"10632:26:89"},"nativeSrc":"10632:62:89","nodeType":"YulFunctionCall","src":"10632:62:89"},"variableNames":[{"name":"tail","nativeSrc":"10624:4:89","nodeType":"YulIdentifier","src":"10624:4:89"}]}]},"name":"abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10453:247:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10545:9:89","nodeType":"YulTypedName","src":"10545:9:89","type":""},{"name":"value1","nativeSrc":"10556:6:89","nodeType":"YulTypedName","src":"10556:6:89","type":""},{"name":"value0","nativeSrc":"10564:6:89","nodeType":"YulTypedName","src":"10564:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10575:4:89","nodeType":"YulTypedName","src":"10575:4:89","type":""}],"src":"10453:247:89"},{"body":{"nativeSrc":"10898:257:89","nodeType":"YulBlock","src":"10898:257:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10915:9:89","nodeType":"YulIdentifier","src":"10915:9:89"},{"name":"value0","nativeSrc":"10926:6:89","nodeType":"YulIdentifier","src":"10926:6:89"}],"functionName":{"name":"mstore","nativeSrc":"10908:6:89","nodeType":"YulIdentifier","src":"10908:6:89"},"nativeSrc":"10908:25:89","nodeType":"YulFunctionCall","src":"10908:25:89"},"nativeSrc":"10908:25:89","nodeType":"YulExpressionStatement","src":"10908:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10953:9:89","nodeType":"YulIdentifier","src":"10953:9:89"},{"kind":"number","nativeSrc":"10964:2:89","nodeType":"YulLiteral","src":"10964:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10949:3:89","nodeType":"YulIdentifier","src":"10949:3:89"},"nativeSrc":"10949:18:89","nodeType":"YulFunctionCall","src":"10949:18:89"},{"kind":"number","nativeSrc":"10969:2:89","nodeType":"YulLiteral","src":"10969:2:89","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"10942:6:89","nodeType":"YulIdentifier","src":"10942:6:89"},"nativeSrc":"10942:30:89","nodeType":"YulFunctionCall","src":"10942:30:89"},"nativeSrc":"10942:30:89","nodeType":"YulExpressionStatement","src":"10942:30:89"},{"nativeSrc":"10981:59:89","nodeType":"YulVariableDeclaration","src":"10981:59:89","value":{"arguments":[{"name":"value1","nativeSrc":"11013:6:89","nodeType":"YulIdentifier","src":"11013:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"11025:9:89","nodeType":"YulIdentifier","src":"11025:9:89"},{"kind":"number","nativeSrc":"11036:2:89","nodeType":"YulLiteral","src":"11036:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11021:3:89","nodeType":"YulIdentifier","src":"11021:3:89"},"nativeSrc":"11021:18:89","nodeType":"YulFunctionCall","src":"11021:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"10995:17:89","nodeType":"YulIdentifier","src":"10995:17:89"},"nativeSrc":"10995:45:89","nodeType":"YulFunctionCall","src":"10995:45:89"},"variables":[{"name":"tail_1","nativeSrc":"10985:6:89","nodeType":"YulTypedName","src":"10985:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11060:9:89","nodeType":"YulIdentifier","src":"11060:9:89"},{"kind":"number","nativeSrc":"11071:2:89","nodeType":"YulLiteral","src":"11071:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11056:3:89","nodeType":"YulIdentifier","src":"11056:3:89"},"nativeSrc":"11056:18:89","nodeType":"YulFunctionCall","src":"11056:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"11080:6:89","nodeType":"YulIdentifier","src":"11080:6:89"},{"name":"headStart","nativeSrc":"11088:9:89","nodeType":"YulIdentifier","src":"11088:9:89"}],"functionName":{"name":"sub","nativeSrc":"11076:3:89","nodeType":"YulIdentifier","src":"11076:3:89"},"nativeSrc":"11076:22:89","nodeType":"YulFunctionCall","src":"11076:22:89"}],"functionName":{"name":"mstore","nativeSrc":"11049:6:89","nodeType":"YulIdentifier","src":"11049:6:89"},"nativeSrc":"11049:50:89","nodeType":"YulFunctionCall","src":"11049:50:89"},"nativeSrc":"11049:50:89","nodeType":"YulExpressionStatement","src":"11049:50:89"},{"nativeSrc":"11108:41:89","nodeType":"YulAssignment","src":"11108:41:89","value":{"arguments":[{"name":"value2","nativeSrc":"11134:6:89","nodeType":"YulIdentifier","src":"11134:6:89"},{"name":"tail_1","nativeSrc":"11142:6:89","nodeType":"YulIdentifier","src":"11142:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"11116:17:89","nodeType":"YulIdentifier","src":"11116:17:89"},"nativeSrc":"11116:33:89","nodeType":"YulFunctionCall","src":"11116:33:89"},"variableNames":[{"name":"tail","nativeSrc":"11108:4:89","nodeType":"YulIdentifier","src":"11108:4:89"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"10705:450:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10851:9:89","nodeType":"YulTypedName","src":"10851:9:89","type":""},{"name":"value2","nativeSrc":"10862:6:89","nodeType":"YulTypedName","src":"10862:6:89","type":""},{"name":"value1","nativeSrc":"10870:6:89","nodeType":"YulTypedName","src":"10870:6:89","type":""},{"name":"value0","nativeSrc":"10878:6:89","nodeType":"YulTypedName","src":"10878:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10889:4:89","nodeType":"YulTypedName","src":"10889:4:89","type":""}],"src":"10705:450:89"},{"body":{"nativeSrc":"11297:150:89","nodeType":"YulBlock","src":"11297:150:89","statements":[{"nativeSrc":"11307:27:89","nodeType":"YulVariableDeclaration","src":"11307:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"11327:6:89","nodeType":"YulIdentifier","src":"11327:6:89"}],"functionName":{"name":"mload","nativeSrc":"11321:5:89","nodeType":"YulIdentifier","src":"11321:5:89"},"nativeSrc":"11321:13:89","nodeType":"YulFunctionCall","src":"11321:13:89"},"variables":[{"name":"length","nativeSrc":"11311:6:89","nodeType":"YulTypedName","src":"11311:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11382:6:89","nodeType":"YulIdentifier","src":"11382:6:89"},{"kind":"number","nativeSrc":"11390:4:89","nodeType":"YulLiteral","src":"11390:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11378:3:89","nodeType":"YulIdentifier","src":"11378:3:89"},"nativeSrc":"11378:17:89","nodeType":"YulFunctionCall","src":"11378:17:89"},{"name":"pos","nativeSrc":"11397:3:89","nodeType":"YulIdentifier","src":"11397:3:89"},{"name":"length","nativeSrc":"11402:6:89","nodeType":"YulIdentifier","src":"11402:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11343:34:89","nodeType":"YulIdentifier","src":"11343:34:89"},"nativeSrc":"11343:66:89","nodeType":"YulFunctionCall","src":"11343:66:89"},"nativeSrc":"11343:66:89","nodeType":"YulExpressionStatement","src":"11343:66:89"},{"nativeSrc":"11418:23:89","nodeType":"YulAssignment","src":"11418:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"11429:3:89","nodeType":"YulIdentifier","src":"11429:3:89"},{"name":"length","nativeSrc":"11434:6:89","nodeType":"YulIdentifier","src":"11434:6:89"}],"functionName":{"name":"add","nativeSrc":"11425:3:89","nodeType":"YulIdentifier","src":"11425:3:89"},"nativeSrc":"11425:16:89","nodeType":"YulFunctionCall","src":"11425:16:89"},"variableNames":[{"name":"end","nativeSrc":"11418:3:89","nodeType":"YulIdentifier","src":"11418:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"11160:287:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11273:3:89","nodeType":"YulTypedName","src":"11273:3:89","type":""},{"name":"value0","nativeSrc":"11278:6:89","nodeType":"YulTypedName","src":"11278:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11289:3:89","nodeType":"YulTypedName","src":"11289:3:89","type":""}],"src":"11160:287:89"},{"body":{"nativeSrc":"11541:170:89","nodeType":"YulBlock","src":"11541:170:89","statements":[{"body":{"nativeSrc":"11587:16:89","nodeType":"YulBlock","src":"11587:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11596:1:89","nodeType":"YulLiteral","src":"11596:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11599:1:89","nodeType":"YulLiteral","src":"11599:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11589:6:89","nodeType":"YulIdentifier","src":"11589:6:89"},"nativeSrc":"11589:12:89","nodeType":"YulFunctionCall","src":"11589:12:89"},"nativeSrc":"11589:12:89","nodeType":"YulExpressionStatement","src":"11589:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11562:7:89","nodeType":"YulIdentifier","src":"11562:7:89"},{"name":"headStart","nativeSrc":"11571:9:89","nodeType":"YulIdentifier","src":"11571:9:89"}],"functionName":{"name":"sub","nativeSrc":"11558:3:89","nodeType":"YulIdentifier","src":"11558:3:89"},"nativeSrc":"11558:23:89","nodeType":"YulFunctionCall","src":"11558:23:89"},{"kind":"number","nativeSrc":"11583:2:89","nodeType":"YulLiteral","src":"11583:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11554:3:89","nodeType":"YulIdentifier","src":"11554:3:89"},"nativeSrc":"11554:32:89","nodeType":"YulFunctionCall","src":"11554:32:89"},"nativeSrc":"11551:52:89","nodeType":"YulIf","src":"11551:52:89"},{"nativeSrc":"11612:29:89","nodeType":"YulVariableDeclaration","src":"11612:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"11631:9:89","nodeType":"YulIdentifier","src":"11631:9:89"}],"functionName":{"name":"mload","nativeSrc":"11625:5:89","nodeType":"YulIdentifier","src":"11625:5:89"},"nativeSrc":"11625:16:89","nodeType":"YulFunctionCall","src":"11625:16:89"},"variables":[{"name":"value","nativeSrc":"11616:5:89","nodeType":"YulTypedName","src":"11616:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11675:5:89","nodeType":"YulIdentifier","src":"11675:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11650:24:89","nodeType":"YulIdentifier","src":"11650:24:89"},"nativeSrc":"11650:31:89","nodeType":"YulFunctionCall","src":"11650:31:89"},"nativeSrc":"11650:31:89","nodeType":"YulExpressionStatement","src":"11650:31:89"},{"nativeSrc":"11690:15:89","nodeType":"YulAssignment","src":"11690:15:89","value":{"name":"value","nativeSrc":"11700:5:89","nodeType":"YulIdentifier","src":"11700:5:89"},"variableNames":[{"name":"value0","nativeSrc":"11690:6:89","nodeType":"YulIdentifier","src":"11690:6:89"}]}]},"name":"abi_decode_tuple_t_address_payable_fromMemory","nativeSrc":"11452:259:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11507:9:89","nodeType":"YulTypedName","src":"11507:9:89","type":""},{"name":"dataEnd","nativeSrc":"11518:7:89","nodeType":"YulTypedName","src":"11518:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11530:6:89","nodeType":"YulTypedName","src":"11530:6:89","type":""}],"src":"11452:259:89"},{"body":{"nativeSrc":"11899:239:89","nodeType":"YulBlock","src":"11899:239:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11916:9:89","nodeType":"YulIdentifier","src":"11916:9:89"},{"kind":"number","nativeSrc":"11927:2:89","nodeType":"YulLiteral","src":"11927:2:89","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"11909:6:89","nodeType":"YulIdentifier","src":"11909:6:89"},"nativeSrc":"11909:21:89","nodeType":"YulFunctionCall","src":"11909:21:89"},"nativeSrc":"11909:21:89","nodeType":"YulExpressionStatement","src":"11909:21:89"},{"nativeSrc":"11939:70:89","nodeType":"YulAssignment","src":"11939:70:89","value":{"arguments":[{"name":"value0","nativeSrc":"11974:6:89","nodeType":"YulIdentifier","src":"11974:6:89"},{"name":"value1","nativeSrc":"11982:6:89","nodeType":"YulIdentifier","src":"11982:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"11994:9:89","nodeType":"YulIdentifier","src":"11994:9:89"},{"kind":"number","nativeSrc":"12005:2:89","nodeType":"YulLiteral","src":"12005:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11990:3:89","nodeType":"YulIdentifier","src":"11990:3:89"},"nativeSrc":"11990:18:89","nodeType":"YulFunctionCall","src":"11990:18:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"11947:26:89","nodeType":"YulIdentifier","src":"11947:26:89"},"nativeSrc":"11947:62:89","nodeType":"YulFunctionCall","src":"11947:62:89"},"variableNames":[{"name":"tail","nativeSrc":"11939:4:89","nodeType":"YulIdentifier","src":"11939:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12029:9:89","nodeType":"YulIdentifier","src":"12029:9:89"},{"kind":"number","nativeSrc":"12040:2:89","nodeType":"YulLiteral","src":"12040:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12025:3:89","nodeType":"YulIdentifier","src":"12025:3:89"},"nativeSrc":"12025:18:89","nodeType":"YulFunctionCall","src":"12025:18:89"},{"arguments":[{"name":"value2","nativeSrc":"12049:6:89","nodeType":"YulIdentifier","src":"12049:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12065:3:89","nodeType":"YulLiteral","src":"12065:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"12070:1:89","nodeType":"YulLiteral","src":"12070:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12061:3:89","nodeType":"YulIdentifier","src":"12061:3:89"},"nativeSrc":"12061:11:89","nodeType":"YulFunctionCall","src":"12061:11:89"},{"kind":"number","nativeSrc":"12074:1:89","nodeType":"YulLiteral","src":"12074:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12057:3:89","nodeType":"YulIdentifier","src":"12057:3:89"},"nativeSrc":"12057:19:89","nodeType":"YulFunctionCall","src":"12057:19:89"}],"functionName":{"name":"and","nativeSrc":"12045:3:89","nodeType":"YulIdentifier","src":"12045:3:89"},"nativeSrc":"12045:32:89","nodeType":"YulFunctionCall","src":"12045:32:89"}],"functionName":{"name":"mstore","nativeSrc":"12018:6:89","nodeType":"YulIdentifier","src":"12018:6:89"},"nativeSrc":"12018:60:89","nodeType":"YulFunctionCall","src":"12018:60:89"},"nativeSrc":"12018:60:89","nodeType":"YulExpressionStatement","src":"12018:60:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12098:9:89","nodeType":"YulIdentifier","src":"12098:9:89"},{"kind":"number","nativeSrc":"12109:2:89","nodeType":"YulLiteral","src":"12109:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12094:3:89","nodeType":"YulIdentifier","src":"12094:3:89"},"nativeSrc":"12094:18:89","nodeType":"YulFunctionCall","src":"12094:18:89"},{"arguments":[{"name":"value3","nativeSrc":"12118:6:89","nodeType":"YulIdentifier","src":"12118:6:89"},{"kind":"number","nativeSrc":"12126:4:89","nodeType":"YulLiteral","src":"12126:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"12114:3:89","nodeType":"YulIdentifier","src":"12114:3:89"},"nativeSrc":"12114:17:89","nodeType":"YulFunctionCall","src":"12114:17:89"}],"functionName":{"name":"mstore","nativeSrc":"12087:6:89","nodeType":"YulIdentifier","src":"12087:6:89"},"nativeSrc":"12087:45:89","nodeType":"YulFunctionCall","src":"12087:45:89"},"nativeSrc":"12087:45:89","nodeType":"YulExpressionStatement","src":"12087:45:89"}]},"name":"abi_encode_tuple_t_string_calldata_ptr_t_address_t_uint8__to_t_string_memory_ptr_t_address_t_uint8__fromStack_reversed","nativeSrc":"11716:422:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11844:9:89","nodeType":"YulTypedName","src":"11844:9:89","type":""},{"name":"value3","nativeSrc":"11855:6:89","nodeType":"YulTypedName","src":"11855:6:89","type":""},{"name":"value2","nativeSrc":"11863:6:89","nodeType":"YulTypedName","src":"11863:6:89","type":""},{"name":"value1","nativeSrc":"11871:6:89","nodeType":"YulTypedName","src":"11871:6:89","type":""},{"name":"value0","nativeSrc":"11879:6:89","nodeType":"YulTypedName","src":"11879:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11890:4:89","nodeType":"YulTypedName","src":"11890:4:89","type":""}],"src":"11716:422:89"},{"body":{"nativeSrc":"12318:211:89","nodeType":"YulBlock","src":"12318:211:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12335:9:89","nodeType":"YulIdentifier","src":"12335:9:89"},{"name":"value0","nativeSrc":"12346:6:89","nodeType":"YulIdentifier","src":"12346:6:89"}],"functionName":{"name":"mstore","nativeSrc":"12328:6:89","nodeType":"YulIdentifier","src":"12328:6:89"},"nativeSrc":"12328:25:89","nodeType":"YulFunctionCall","src":"12328:25:89"},"nativeSrc":"12328:25:89","nodeType":"YulExpressionStatement","src":"12328:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12373:9:89","nodeType":"YulIdentifier","src":"12373:9:89"},{"kind":"number","nativeSrc":"12384:2:89","nodeType":"YulLiteral","src":"12384:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12369:3:89","nodeType":"YulIdentifier","src":"12369:3:89"},"nativeSrc":"12369:18:89","nodeType":"YulFunctionCall","src":"12369:18:89"},{"kind":"number","nativeSrc":"12389:2:89","nodeType":"YulLiteral","src":"12389:2:89","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"12362:6:89","nodeType":"YulIdentifier","src":"12362:6:89"},"nativeSrc":"12362:30:89","nodeType":"YulFunctionCall","src":"12362:30:89"},"nativeSrc":"12362:30:89","nodeType":"YulExpressionStatement","src":"12362:30:89"},{"nativeSrc":"12401:53:89","nodeType":"YulAssignment","src":"12401:53:89","value":{"arguments":[{"name":"value1","nativeSrc":"12427:6:89","nodeType":"YulIdentifier","src":"12427:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"12439:9:89","nodeType":"YulIdentifier","src":"12439:9:89"},{"kind":"number","nativeSrc":"12450:2:89","nodeType":"YulLiteral","src":"12450:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12435:3:89","nodeType":"YulIdentifier","src":"12435:3:89"},"nativeSrc":"12435:18:89","nodeType":"YulFunctionCall","src":"12435:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"12409:17:89","nodeType":"YulIdentifier","src":"12409:17:89"},"nativeSrc":"12409:45:89","nodeType":"YulFunctionCall","src":"12409:45:89"},"variableNames":[{"name":"tail","nativeSrc":"12401:4:89","nodeType":"YulIdentifier","src":"12401:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12474:9:89","nodeType":"YulIdentifier","src":"12474:9:89"},{"kind":"number","nativeSrc":"12485:2:89","nodeType":"YulLiteral","src":"12485:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12470:3:89","nodeType":"YulIdentifier","src":"12470:3:89"},"nativeSrc":"12470:18:89","nodeType":"YulFunctionCall","src":"12470:18:89"},{"arguments":[{"name":"value2","nativeSrc":"12494:6:89","nodeType":"YulIdentifier","src":"12494:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12510:3:89","nodeType":"YulLiteral","src":"12510:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"12515:1:89","nodeType":"YulLiteral","src":"12515:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12506:3:89","nodeType":"YulIdentifier","src":"12506:3:89"},"nativeSrc":"12506:11:89","nodeType":"YulFunctionCall","src":"12506:11:89"},{"kind":"number","nativeSrc":"12519:1:89","nodeType":"YulLiteral","src":"12519:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12502:3:89","nodeType":"YulIdentifier","src":"12502:3:89"},"nativeSrc":"12502:19:89","nodeType":"YulFunctionCall","src":"12502:19:89"}],"functionName":{"name":"and","nativeSrc":"12490:3:89","nodeType":"YulIdentifier","src":"12490:3:89"},"nativeSrc":"12490:32:89","nodeType":"YulFunctionCall","src":"12490:32:89"}],"functionName":{"name":"mstore","nativeSrc":"12463:6:89","nodeType":"YulIdentifier","src":"12463:6:89"},"nativeSrc":"12463:60:89","nodeType":"YulFunctionCall","src":"12463:60:89"},"nativeSrc":"12463:60:89","nodeType":"YulExpressionStatement","src":"12463:60:89"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_address__to_t_bytes32_t_bytes_memory_ptr_t_address__fromStack_reversed","nativeSrc":"12143:386:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12271:9:89","nodeType":"YulTypedName","src":"12271:9:89","type":""},{"name":"value2","nativeSrc":"12282:6:89","nodeType":"YulTypedName","src":"12282:6:89","type":""},{"name":"value1","nativeSrc":"12290:6:89","nodeType":"YulTypedName","src":"12290:6:89","type":""},{"name":"value0","nativeSrc":"12298:6:89","nodeType":"YulTypedName","src":"12298:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12309:4:89","nodeType":"YulTypedName","src":"12309:4:89","type":""}],"src":"12143:386:89"},{"body":{"nativeSrc":"12615:170:89","nodeType":"YulBlock","src":"12615:170:89","statements":[{"body":{"nativeSrc":"12661:16:89","nodeType":"YulBlock","src":"12661:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12670:1:89","nodeType":"YulLiteral","src":"12670:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12673:1:89","nodeType":"YulLiteral","src":"12673:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12663:6:89","nodeType":"YulIdentifier","src":"12663:6:89"},"nativeSrc":"12663:12:89","nodeType":"YulFunctionCall","src":"12663:12:89"},"nativeSrc":"12663:12:89","nodeType":"YulExpressionStatement","src":"12663:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12636:7:89","nodeType":"YulIdentifier","src":"12636:7:89"},{"name":"headStart","nativeSrc":"12645:9:89","nodeType":"YulIdentifier","src":"12645:9:89"}],"functionName":{"name":"sub","nativeSrc":"12632:3:89","nodeType":"YulIdentifier","src":"12632:3:89"},"nativeSrc":"12632:23:89","nodeType":"YulFunctionCall","src":"12632:23:89"},{"kind":"number","nativeSrc":"12657:2:89","nodeType":"YulLiteral","src":"12657:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12628:3:89","nodeType":"YulIdentifier","src":"12628:3:89"},"nativeSrc":"12628:32:89","nodeType":"YulFunctionCall","src":"12628:32:89"},"nativeSrc":"12625:52:89","nodeType":"YulIf","src":"12625:52:89"},{"nativeSrc":"12686:29:89","nodeType":"YulVariableDeclaration","src":"12686:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"12705:9:89","nodeType":"YulIdentifier","src":"12705:9:89"}],"functionName":{"name":"mload","nativeSrc":"12699:5:89","nodeType":"YulIdentifier","src":"12699:5:89"},"nativeSrc":"12699:16:89","nodeType":"YulFunctionCall","src":"12699:16:89"},"variables":[{"name":"value","nativeSrc":"12690:5:89","nodeType":"YulTypedName","src":"12690:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12749:5:89","nodeType":"YulIdentifier","src":"12749:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12724:24:89","nodeType":"YulIdentifier","src":"12724:24:89"},"nativeSrc":"12724:31:89","nodeType":"YulFunctionCall","src":"12724:31:89"},"nativeSrc":"12724:31:89","nodeType":"YulExpressionStatement","src":"12724:31:89"},{"nativeSrc":"12764:15:89","nodeType":"YulAssignment","src":"12764:15:89","value":{"name":"value","nativeSrc":"12774:5:89","nodeType":"YulIdentifier","src":"12774:5:89"},"variableNames":[{"name":"value0","nativeSrc":"12764:6:89","nodeType":"YulIdentifier","src":"12764:6:89"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"12534:251:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12581:9:89","nodeType":"YulTypedName","src":"12581:9:89","type":""},{"name":"dataEnd","nativeSrc":"12592:7:89","nodeType":"YulTypedName","src":"12592:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12604:6:89","nodeType":"YulTypedName","src":"12604:6:89","type":""}],"src":"12534:251:89"},{"body":{"nativeSrc":"12871:103:89","nodeType":"YulBlock","src":"12871:103:89","statements":[{"body":{"nativeSrc":"12917:16:89","nodeType":"YulBlock","src":"12917:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12926:1:89","nodeType":"YulLiteral","src":"12926:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12929:1:89","nodeType":"YulLiteral","src":"12929:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12919:6:89","nodeType":"YulIdentifier","src":"12919:6:89"},"nativeSrc":"12919:12:89","nodeType":"YulFunctionCall","src":"12919:12:89"},"nativeSrc":"12919:12:89","nodeType":"YulExpressionStatement","src":"12919:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12892:7:89","nodeType":"YulIdentifier","src":"12892:7:89"},{"name":"headStart","nativeSrc":"12901:9:89","nodeType":"YulIdentifier","src":"12901:9:89"}],"functionName":{"name":"sub","nativeSrc":"12888:3:89","nodeType":"YulIdentifier","src":"12888:3:89"},"nativeSrc":"12888:23:89","nodeType":"YulFunctionCall","src":"12888:23:89"},{"kind":"number","nativeSrc":"12913:2:89","nodeType":"YulLiteral","src":"12913:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12884:3:89","nodeType":"YulIdentifier","src":"12884:3:89"},"nativeSrc":"12884:32:89","nodeType":"YulFunctionCall","src":"12884:32:89"},"nativeSrc":"12881:52:89","nodeType":"YulIf","src":"12881:52:89"},{"nativeSrc":"12942:26:89","nodeType":"YulAssignment","src":"12942:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"12958:9:89","nodeType":"YulIdentifier","src":"12958:9:89"}],"functionName":{"name":"mload","nativeSrc":"12952:5:89","nodeType":"YulIdentifier","src":"12952:5:89"},"nativeSrc":"12952:16:89","nodeType":"YulFunctionCall","src":"12952:16:89"},"variableNames":[{"name":"value0","nativeSrc":"12942:6:89","nodeType":"YulIdentifier","src":"12942:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"12790:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12837:9:89","nodeType":"YulTypedName","src":"12837:9:89","type":""},{"name":"dataEnd","nativeSrc":"12848:7:89","nodeType":"YulTypedName","src":"12848:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12860:6:89","nodeType":"YulTypedName","src":"12860:6:89","type":""}],"src":"12790:184:89"},{"body":{"nativeSrc":"13108:145:89","nodeType":"YulBlock","src":"13108:145:89","statements":[{"nativeSrc":"13118:26:89","nodeType":"YulAssignment","src":"13118:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13130:9:89","nodeType":"YulIdentifier","src":"13130:9:89"},{"kind":"number","nativeSrc":"13141:2:89","nodeType":"YulLiteral","src":"13141:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13126:3:89","nodeType":"YulIdentifier","src":"13126:3:89"},"nativeSrc":"13126:18:89","nodeType":"YulFunctionCall","src":"13126:18:89"},"variableNames":[{"name":"tail","nativeSrc":"13118:4:89","nodeType":"YulIdentifier","src":"13118:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13160:9:89","nodeType":"YulIdentifier","src":"13160:9:89"},{"arguments":[{"name":"value0","nativeSrc":"13175:6:89","nodeType":"YulIdentifier","src":"13175:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13191:3:89","nodeType":"YulLiteral","src":"13191:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"13196:1:89","nodeType":"YulLiteral","src":"13196:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13187:3:89","nodeType":"YulIdentifier","src":"13187:3:89"},"nativeSrc":"13187:11:89","nodeType":"YulFunctionCall","src":"13187:11:89"},{"kind":"number","nativeSrc":"13200:1:89","nodeType":"YulLiteral","src":"13200:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13183:3:89","nodeType":"YulIdentifier","src":"13183:3:89"},"nativeSrc":"13183:19:89","nodeType":"YulFunctionCall","src":"13183:19:89"}],"functionName":{"name":"and","nativeSrc":"13171:3:89","nodeType":"YulIdentifier","src":"13171:3:89"},"nativeSrc":"13171:32:89","nodeType":"YulFunctionCall","src":"13171:32:89"}],"functionName":{"name":"mstore","nativeSrc":"13153:6:89","nodeType":"YulIdentifier","src":"13153:6:89"},"nativeSrc":"13153:51:89","nodeType":"YulFunctionCall","src":"13153:51:89"},"nativeSrc":"13153:51:89","nodeType":"YulExpressionStatement","src":"13153:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13224:9:89","nodeType":"YulIdentifier","src":"13224:9:89"},{"kind":"number","nativeSrc":"13235:2:89","nodeType":"YulLiteral","src":"13235:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13220:3:89","nodeType":"YulIdentifier","src":"13220:3:89"},"nativeSrc":"13220:18:89","nodeType":"YulFunctionCall","src":"13220:18:89"},{"name":"value1","nativeSrc":"13240:6:89","nodeType":"YulIdentifier","src":"13240:6:89"}],"functionName":{"name":"mstore","nativeSrc":"13213:6:89","nodeType":"YulIdentifier","src":"13213:6:89"},"nativeSrc":"13213:34:89","nodeType":"YulFunctionCall","src":"13213:34:89"},"nativeSrc":"13213:34:89","nodeType":"YulExpressionStatement","src":"13213:34:89"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"12979:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13069:9:89","nodeType":"YulTypedName","src":"13069:9:89","type":""},{"name":"value1","nativeSrc":"13080:6:89","nodeType":"YulTypedName","src":"13080:6:89","type":""},{"name":"value0","nativeSrc":"13088:6:89","nodeType":"YulTypedName","src":"13088:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13099:4:89","nodeType":"YulTypedName","src":"13099:4:89","type":""}],"src":"12979:274:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_struct_TokenInfo_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 128) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_struct$_TokenInfo_$15983_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_struct_TokenInfo_calldata(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_struct$_NFTInfo_$15993_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_struct_TokenInfo_calldata(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_1, 32), length)\n        mstore(add(add(memPtr, length), 32), 0)\n        value1 := memPtr\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint8(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_string_calldata_ptr_t_uint8_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_uint8_t_string_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_string_calldata(value0, value1, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_string_calldata(value2, value3, tail_1)\n        mstore(add(headStart, 64), and(value4, 0xff))\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        tail := abi_encode_string_calldata(value5, value6, tail_2)\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_string_calldata_ptr_t_string_calldata_ptr_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_string_calldata(value0, value1, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_string_calldata(value2, value3, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        let tail_3 := abi_encode_string_calldata(value4, value5, tail_2)\n        mstore(add(headStart, 96), sub(tail_3, headStart))\n        tail := abi_encode_string_calldata(value6, value7, tail_3)\n    }\n    function abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string_calldata(value0, value1, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 96)\n        let tail_1 := abi_encode_string(value1, add(headStart, 96))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_string(value2, tail_1)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_address_t_uint8__to_t_string_memory_ptr_t_address_t_uint8__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 96)\n        tail := abi_encode_string_calldata(value0, value1, add(headStart, 96))\n        mstore(add(headStart, 32), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), and(value3, 0xff))\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_address__to_t_bytes32_t_bytes_memory_ptr_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 96)\n        tail := abi_encode_string(value1, add(headStart, 96))\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"968":[{"length":32,"start":4050},{"length":32,"start":4091},{"length":32,"start":4428}]},"linkReferences":{},"object":"60806040526004361061014b5760003560e01c806352d1902d116100b657806391d148541161006f57806391d14854146103e457806396c8e82014610404578063a217fddf14610424578063ad3cb1cc14610439578063d547741f14610477578063f6a3d24e1461049757600080fd5b806352d1902d146102f75780636f3769c01461030c57806372798a89146103335780637f26b45c14610348578063851bdf111461036857806388433651146103c457600080fd5b80632a0acc6a116101085780632a0acc6a1461024d5780632f2ff15d1461026f57806331f449001461028f57806336568abe146102a4578063485cc955146102c45780634f1ef286146102e457600080fd5b806301ffc9a7146101505780631963202b146101855780631adc56db146101a75780631f596f89146101c7578063248a9ca3146101ff578063261a323e1461022d575b600080fd5b34801561015c57600080fd5b5061017061016b3660046113cf565b6104d2565b60405190151581526020015b60405180910390f35b34801561019157600080fd5b506101a56101a0366004611411565b610509565b005b3480156101b357600080fd5b506101a56101c2366004611411565b6105ba565b3480156101d357600080fd5b506101e76101e2366004611495565b61065d565b6040516001600160a01b03909116815260200161017c565b34801561020b57600080fd5b5061021f61021a3660046114d6565b610672565b60405190815260200161017c565b34801561023957600080fd5b50610170610248366004611495565b610694565b34801561025957600080fd5b5061021f60008051602061198583398151915281565b34801561027b57600080fd5b506101a561028a366004611504565b6106d5565b34801561029b57600080fd5b506101a56106f7565b3480156102b057600080fd5b506101a56102bf366004611504565b610737565b3480156102d057600080fd5b506101a56102df366004611534565b61076a565b6101a56102f2366004611578565b6108ba565b34801561030357600080fd5b5061021f6108d9565b34801561031857600080fd5b50610321600181565b60405160ff909116815260200161017c565b34801561033f57600080fd5b50610321600281565b34801561035457600080fd5b506101a5610363366004611504565b6108f6565b34801561037457600080fd5b506103ac610383366004611641565b6001600160a01b031660009081526020819052604090205461010090046001600160401b031690565b6040516001600160401b03909116815260200161017c565b3480156103d057600080fd5b506101a56103df36600461165e565b610975565b3480156103f057600080fd5b506101706103ff366004611504565b610a3a565b34801561041057600080fd5b506101e761041f366004611495565b610a72565b34801561043057600080fd5b5061021f600081565b34801561044557600080fd5b5061046a604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161017c9190611702565b34801561048357600080fd5b506101a5610492366004611504565b610a80565b3480156104a357600080fd5b506101706104b2366004611641565b6001600160a01b031660009081526020819052604090205460ff16151590565b60006001600160e01b03198216637965db0b60e01b148061050357506301ffc9a760e01b6001600160e01b03198316145b92915050565b610511610a9c565b600354604080516001600160a01b0390921660208301526000910160408051601f198184030181529190529050600061054a8380611715565b6105576020860186611715565b610567606088016040890161175b565b6105746060890189611715565b60405160200161058a97969594939291906117a7565b60408051601f1981840301815291905290506105b560016105ae6060860186611715565b8585610ac7565b505050565b6105c2610a9c565b600354604080516001600160a01b0390921660208301526000910160408051601f19818403018152919052905060006105fb8380611715565b6106086020860186611715565b6106156040880188611715565b61062260608a018a611715565b6040516020016106399897969594939291906117fa565b60408051601f1981840301815291905290506105b560026105ae6060860186611715565b600061066b83836001610cb3565b9392505050565b60009081526000805160206119a5833981519152602052604090206001015490565b6000806001600160a01b0316600184846040516106b292919061185a565b908152604051908190036020019020546001600160a01b03161415905092915050565b6106de82610672565b6106e781610d93565b6106f18383610da0565b50505050565b6000805160206119c5833981519152546001600160401b03161561072d5760405162dc149f60e41b815260040160405180910390fd5b610735610e45565b565b6001600160a01b03811633146107605760405163334bd91960e11b815260040160405180910390fd5b6105b58282610ee0565b6000805160206119c58339815191528054600160401b810460ff1615906001600160401b031660008115801561079d5750825b90506000826001600160401b031660011480156107b95750303b155b9050811580156107c7575080155b156107e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561080f57845460ff60401b1916600160401b1785555b610817610f5c565b61081f610f5c565b61083760008051602061198583398151915280610f64565b61084f60008051602061198583398151915288610da0565b50600380546001600160a01b0319166001600160a01b03881617905583156108b157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6108c2610fc7565b6108cb8261106c565b6108d58282611084565b5050565b60006108e3611141565b5060008051602061196583398151915290565b60008051602061198583398151915261090e81610d93565b60018314801590610920575060028314155b15610946576040516332c5af1f60e11b8152600481018490526024015b60405180910390fd5b5060009182526002602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60008051602061198583398151915261098d81610d93565b6001600160a01b03841660009081526020819052604090205460ff166002146109d45760405163de6137d160e01b81526001600160a01b038516600482015260240161093d565b6040516355f804b360e01b81526001600160a01b038516906355f804b390610a02908690869060040161186a565b600060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b5050505050505050565b60009182526000805160206119a5833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061066b83836002610cb3565b610a8982610672565b610a9281610d93565b6106f18383610ee0565b6003546001600160a01b0316331461073557604051631a27eac360e11b815260040160405180910390fd5b60008484604051602001610adc92919061185a565b60408051601f19818403018152828252805160209182012060ff8a1660009081526002909252918120549193509182916001600160a01b0316906319cdeff160e01b90610b319086908990899060240161187e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610b6f91906118a9565b600060405180830381855af49150503d8060008114610baa576040519150601f19603f3d011682016040523d82523d6000602084013e610baf565b606091505b509150915081610bc25780518082602001fd5b600081806020019051810190610bd891906118c5565b90508060018989604051610bed92919061185a565b90815260408051918290036020908101832080546001600160a01b039586166001600160a01b0319909116179055828201825260ff808e1684526001600160401b03428116858401908152958716600090815292839052918390209351845495519092166101000268ffffffffffffffffff19909516911617929092179055517f8987aafc647b2712c770282704dba882de96544516cfc1e40cb00a9bf467e88e90610ca0908a908a9085908e906118e2565b60405180910390a1505050505050505050565b6000808484604051602001610cc992919061185a565b60408051808303601f1901815282825280516020918201206003546001600160a01b03169184019190915292506000910160408051601f19818403018152828252600087815260026020529190912054631463012f60e31b83529092506001600160a01b03169063a318097890610d489085908590309060040161191a565b602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8991906118c5565b9695505050505050565b610d9d813361118a565b50565b60006000805160206119a5833981519152610dbb8484610a3a565b610e3b576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055610df13390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610503565b6000915050610503565b6000805160206119c58339815191528054600160401b900460ff1615610e7e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614610d9d57805467ffffffffffffffff19166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b60006000805160206119a5833981519152610efb8484610a3a565b15610e3b576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610503565b6107356111c3565b6000805160206119a58339815191526000610f7e84610672565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061104e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611042600080516020611965833981519152546001600160a01b031690565b6001600160a01b031614155b156107355760405163703e46dd60e11b815260040160405180910390fd5b6000805160206119858339815191526108d581610d93565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110de575060408051601f3d908101601f191682019092526110db9181019061194b565b60015b61110657604051634c9c8ce360e01b81526001600160a01b038316600482015260240161093d565b600080516020611965833981519152811461113757604051632a87526960e21b81526004810182905260240161093d565b6105b583836111fa565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107355760405163703e46dd60e11b815260040160405180910390fd5b6111948282610a3a565b6108d55760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161093d565b6000805160206119c583398151915254600160401b900460ff1661073557604051631afcd79f60e31b815260040160405180910390fd5b61120382611250565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611248576105b582826112b5565b6108d561132b565b806001600160a01b03163b60000361128657604051634c9c8ce360e01b81526001600160a01b038216600482015260240161093d565b60008051602061196583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516112d291906118a9565b600060405180830381855af49150503d806000811461130d576040519150601f19603f3d011682016040523d82523d6000602084013e611312565b606091505b509150915061132285838361134a565b95945050505050565b34156107355760405163b398979f60e01b815260040160405180910390fd5b60608261135f5761135a826113a6565b61066b565b815115801561137657506001600160a01b0384163b155b1561139f57604051639996b31560e01b81526001600160a01b038516600482015260240161093d565b508061066b565b8051156113b65780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000602082840312156113e157600080fd5b81356001600160e01b03198116811461066b57600080fd5b60006080828403121561140b57600080fd5b50919050565b60006020828403121561142357600080fd5b81356001600160401b0381111561143957600080fd5b611445848285016113f9565b949350505050565b60008083601f84011261145f57600080fd5b5081356001600160401b0381111561147657600080fd5b60208301915083602082850101111561148e57600080fd5b9250929050565b600080602083850312156114a857600080fd5b82356001600160401b038111156114be57600080fd5b6114ca8582860161144d565b90969095509350505050565b6000602082840312156114e857600080fd5b5035919050565b6001600160a01b0381168114610d9d57600080fd5b6000806040838503121561151757600080fd5b823591506020830135611529816114ef565b809150509250929050565b6000806040838503121561154757600080fd5b8235611552816114ef565b91506020830135611529816114ef565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561158b57600080fd5b8235611596816114ef565b915060208301356001600160401b038111156115b157600080fd5b8301601f810185136115c257600080fd5b80356001600160401b038111156115db576115db611562565b604051601f8201601f19908116603f011681016001600160401b038111828210171561160957611609611562565b60405281815282820160200187101561162157600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006020828403121561165357600080fd5b813561066b816114ef565b60008060006040848603121561167357600080fd5b833561167e816114ef565b925060208401356001600160401b0381111561169957600080fd5b6116a58682870161144d565b9497909650939450505050565b60005b838110156116cd5781810151838201526020016116b5565b50506000910152565b600081518084526116ee8160208601602086016116b2565b601f01601f19169290920160200192915050565b60208152600061066b60208301846116d6565b6000808335601e1984360301811261172c57600080fd5b8301803591506001600160401b0382111561174657600080fd5b60200191503681900382131561148e57600080fd5b60006020828403121561176d57600080fd5b813560ff8116811461066b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6080815260006117bb60808301898b61177e565b82810360208401526117ce81888a61177e565b905060ff8616604084015282810360608401526117ec81858761177e565b9a9950505050505050505050565b60808152600061180e608083018a8c61177e565b828103602084015261182181898b61177e565b9050828103604084015261183681878961177e565b9050828103606084015261184b81858761177e565b9b9a5050505050505050505050565b8183823760009101908152919050565b60208152600061144560208301848661177e565b83815260606020820152600061189760608301856116d6565b8281036040840152610d8981856116d6565b600082516118bb8184602087016116b2565b9190910192915050565b6000602082840312156118d757600080fd5b815161066b816114ef565b6060815260006118f660608301868861177e565b6001600160a01b039490941660208301525060ff9190911660409091015292915050565b83815260606020820152600061193360608301856116d6565b905060018060a01b0383166040830152949350505050565b60006020828403121561195d57600080fd5b505191905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4202dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220fb7a538a64b7ff8cd5968b9f62da801e8c2c9e694e1ae6950c31012e1aea865664736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0x91D14854 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x3E4 JUMPI DUP1 PUSH4 0x96C8E820 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x439 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x477 JUMPI DUP1 PUSH4 0xF6A3D24E EQ PUSH2 0x497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x52D1902D EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x6F3769C0 EQ PUSH2 0x30C JUMPI DUP1 PUSH4 0x72798A89 EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0x7F26B45C EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x851BDF11 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x88433651 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A0ACC6A GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x2A0ACC6A EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x31F44900 EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x150 JUMPI DUP1 PUSH4 0x1963202B EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x1ADC56DB EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x1F596F89 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x261A323E EQ PUSH2 0x22D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x16B CALLDATASIZE PUSH1 0x4 PUSH2 0x13CF JUMP JUMPDEST PUSH2 0x4D2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1411 JUMP JUMPDEST PUSH2 0x509 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x1C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1411 JUMP JUMPDEST PUSH2 0x5BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0x694 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0x6D5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x6F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x2BF CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0x737 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1534 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x2F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1578 JUMP JUMPDEST PUSH2 0x8BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x8D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x321 PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x321 PUSH1 0x2 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x363 CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0x8F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AC PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x1641 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x3DF CALLDATASIZE PUSH1 0x4 PUSH2 0x165E JUMP JUMPDEST PUSH2 0x975 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0xA3A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x1495 JUMP JUMPDEST PUSH2 0xA72 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x445 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17C SWAP2 SWAP1 PUSH2 0x1702 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x492 CALLDATASIZE PUSH1 0x4 PUSH2 0x1504 JUMP JUMPDEST PUSH2 0xA80 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x4B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1641 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x503 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x511 PUSH2 0xA9C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0x54A DUP4 DUP1 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x557 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x567 PUSH1 0x60 DUP9 ADD PUSH1 0x40 DUP10 ADD PUSH2 0x175B JUMP JUMPDEST PUSH2 0x574 PUSH1 0x60 DUP10 ADD DUP10 PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x58A SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE SWAP1 POP PUSH2 0x5B5 PUSH1 0x1 PUSH2 0x5AE PUSH1 0x60 DUP7 ADD DUP7 PUSH2 0x1715 JUMP JUMPDEST DUP6 DUP6 PUSH2 0xAC7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5C2 PUSH2 0xA9C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0x5FB DUP4 DUP1 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x608 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x615 PUSH1 0x40 DUP9 ADD DUP9 PUSH2 0x1715 JUMP JUMPDEST PUSH2 0x622 PUSH1 0x60 DUP11 ADD DUP11 PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x639 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x17FA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE SWAP1 POP PUSH2 0x5B5 PUSH1 0x2 PUSH2 0x5AE PUSH1 0x60 DUP7 ADD DUP7 PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66B DUP4 DUP4 PUSH1 0x1 PUSH2 0xCB3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x6B2 SWAP3 SWAP2 SWAP1 PUSH2 0x185A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6DE DUP3 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x6E7 DUP2 PUSH2 0xD93 JUMP JUMPDEST PUSH2 0x6F1 DUP4 DUP4 PUSH2 0xDA0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19C5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x735 PUSH2 0xE45 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x760 JUMPI PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5B5 DUP3 DUP3 PUSH2 0xEE0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19C5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x7B9 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x7C7 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x80F JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x817 PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x81F PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x837 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0xF64 JUMP JUMPDEST PUSH2 0x84F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP9 PUSH2 0xDA0 JUMP JUMPDEST POP PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x8B1 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8C2 PUSH2 0xFC7 JUMP JUMPDEST PUSH2 0x8CB DUP3 PUSH2 0x106C JUMP JUMPDEST PUSH2 0x8D5 DUP3 DUP3 PUSH2 0x1084 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E3 PUSH2 0x1141 JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1965 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x90E DUP2 PUSH2 0xD93 JUMP JUMPDEST PUSH1 0x1 DUP4 EQ DUP1 ISZERO SWAP1 PUSH2 0x920 JUMPI POP PUSH1 0x2 DUP4 EQ ISZERO JUMPDEST ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32C5AF1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x98D DUP2 PUSH2 0xD93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ PUSH2 0x9D4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDE6137D1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x55F804B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x55F804B3 SWAP1 PUSH2 0xA02 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x186A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66B DUP4 DUP4 PUSH1 0x2 PUSH2 0xCB3 JUMP JUMPDEST PUSH2 0xA89 DUP3 PUSH2 0x672 JUMP JUMPDEST PUSH2 0xA92 DUP2 PUSH2 0xD93 JUMP JUMPDEST PUSH2 0x6F1 DUP4 DUP4 PUSH2 0xEE0 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xADC SWAP3 SWAP2 SWAP1 PUSH2 0x185A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0xFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 SLOAD SWAP2 SWAP4 POP SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x19CDEFF1 PUSH1 0xE0 SHL SWAP1 PUSH2 0xB31 SWAP1 DUP7 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x24 ADD PUSH2 0x187E 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 0xB6F SWAP2 SWAP1 PUSH2 0x18A9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xBAA 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 0xBAF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xBC2 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBD8 SWAP2 SWAP1 PUSH2 0x18C5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0xBED SWAP3 SWAP2 SWAP1 PUSH2 0x185A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xFF DUP1 DUP15 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB TIMESTAMP DUP2 AND DUP6 DUP5 ADD SWAP1 DUP2 MSTORE SWAP6 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 DUP4 SWAP1 MSTORE SWAP2 DUP4 SWAP1 KECCAK256 SWAP4 MLOAD DUP5 SLOAD SWAP6 MLOAD SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH9 0xFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP6 AND SWAP2 AND OR SWAP3 SWAP1 SWAP3 OR SWAP1 SSTORE MLOAD PUSH32 0x8987AAFC647B2712C770282704DBA882DE96544516CFC1E40CB00A9BF467E88E SWAP1 PUSH2 0xCA0 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP6 SWAP1 DUP15 SWAP1 PUSH2 0x18E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCC9 SWAP3 SWAP2 SWAP1 PUSH2 0x185A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 POP PUSH1 0x0 SWAP2 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SLOAD PUSH4 0x1463012F PUSH1 0xE3 SHL DUP4 MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3180978 SWAP1 PUSH2 0xD48 SWAP1 DUP6 SWAP1 DUP6 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x191A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD65 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 0xD89 SWAP2 SWAP1 PUSH2 0x18C5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD9D DUP2 CALLER PUSH2 0x118A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xDBB DUP5 DUP5 PUSH2 0xA3A JUMP JUMPDEST PUSH2 0xE3B JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xDF1 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x503 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x503 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19C5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE7E JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0xD9D JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xEFB DUP5 DUP5 PUSH2 0xA3A JUMP JUMPDEST ISZERO PUSH2 0xE3B JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP8 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x503 JUMP JUMPDEST PUSH2 0x735 PUSH2 0x11C3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19A5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 PUSH2 0xF7E DUP5 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP7 SWAP1 SSTORE MLOAD SWAP2 SWAP3 POP DUP5 SWAP2 DUP4 SWAP2 DUP8 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x104E JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1042 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1965 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1985 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x8D5 DUP2 PUSH2 0xD93 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x10DE JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x10DB SWAP2 DUP2 ADD SWAP1 PUSH2 0x194B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1106 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1965 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x1137 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST PUSH2 0x5B5 DUP4 DUP4 PUSH2 0x11FA JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1194 DUP3 DUP3 PUSH2 0xA3A JUMP JUMPDEST PUSH2 0x8D5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x93D JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x19C5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1203 DUP3 PUSH2 0x1250 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x1248 JUMPI PUSH2 0x5B5 DUP3 DUP3 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x8D5 PUSH2 0x132B JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x1286 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1965 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x12D2 SWAP2 SWAP1 PUSH2 0x18A9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x130D 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 0x1312 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1322 DUP6 DUP4 DUP4 PUSH2 0x134A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x135F JUMPI PUSH2 0x135A DUP3 PUSH2 0x13A6 JUMP JUMPDEST PUSH2 0x66B JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x1376 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x139F JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x93D JUMP JUMPDEST POP DUP1 PUSH2 0x66B JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x13B6 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1439 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1445 DUP5 DUP3 DUP6 ADD PUSH2 0x13F9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x145F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x148E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14CA DUP6 DUP3 DUP7 ADD PUSH2 0x144D JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1529 DUP2 PUSH2 0x14EF JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1552 DUP2 PUSH2 0x14EF JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1529 DUP2 PUSH2 0x14EF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x158B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1596 DUP2 PUSH2 0x14EF JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x15C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15DB JUMPI PUSH2 0x15DB PUSH2 0x1562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1609 JUMPI PUSH2 0x1609 PUSH2 0x1562 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x1621 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x66B DUP2 PUSH2 0x14EF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1673 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x167E DUP2 PUSH2 0x14EF JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1699 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16A5 DUP7 DUP3 DUP8 ADD PUSH2 0x144D JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16CD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x16B5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x16EE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x16B2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x66B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x16D6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x172C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x148E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x176D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x17BB PUSH1 0x80 DUP4 ADD DUP10 DUP12 PUSH2 0x177E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x17CE DUP2 DUP9 DUP11 PUSH2 0x177E JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x17EC DUP2 DUP6 DUP8 PUSH2 0x177E JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x180E PUSH1 0x80 DUP4 ADD DUP11 DUP13 PUSH2 0x177E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1821 DUP2 DUP10 DUP12 PUSH2 0x177E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x1836 DUP2 DUP8 DUP10 PUSH2 0x177E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x184B DUP2 DUP6 DUP8 PUSH2 0x177E JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1445 PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x177E JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1897 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x16D6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xD89 DUP2 DUP6 PUSH2 0x16D6 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x18BB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x16B2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x66B DUP2 PUSH2 0x14EF JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x18F6 PUSH1 0x60 DUP4 ADD DUP7 DUP9 PUSH2 0x177E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1933 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x195D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCDF8B4C520FFE197C5343C6 CREATE2 0xAE 0xC5 SWAP6 PUSH17 0x151EF9A492F2C624FD45DDDE6135EC4202 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP CREATE 0xC5 PUSH31 0x16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00A264 PUSH10 0x70667358221220FB7A53 DUP11 PUSH5 0xB7FF8CD596 DUP12 SWAP16 PUSH3 0xDA801E DUP13 0x2C SWAP15 PUSH10 0x4E1AE6950C31012E1AEA DUP7 JUMP PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"862:6518:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:202:0;;;;;;;;;;-1:-1:-1;3443:202:0;;;;;:::i;:::-;;:::i;:::-;;;470:14:89;;463:22;445:41;;433:2;418:18;3443:202:0;;;;;;;;4740:343:56;;;;;;;;;;-1:-1:-1;4740:343:56;;;;;:::i;:::-;;:::i;:::-;;5220:347;;;;;;;;;;-1:-1:-1;5220:347:56;;;;;:::i;:::-;;:::i;6654:161::-;;;;;;;;;;-1:-1:-1;6654:161:56;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2323:32:89;;;2305:51;;2293:2;2278:18;6654:161:56;2159:203:89;4759:191:0;;;;;;;;;;-1:-1:-1;4759:191:0;;;;;:::i;:::-;;:::i;:::-;;;2744:25:89;;;2732:2;2717:18;4759:191:0;2598:177:89;6013:144:56;;;;;;;;;;-1:-1:-1;6013:144:56;;;;;:::i;:::-;;:::i;1374:50::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1374:50:56;;5246:136:0;;;;;;;;;;-1:-1:-1;5246:136:0;;;;;:::i;:::-;;:::i;378:175:53:-;;;;;;;;;;;;;:::i;6348:245:0:-;;;;;;;;;;-1:-1:-1;6348:245:0;;;;;:::i;:::-;;:::i;2005:283:56:-;;;;;;;;;;-1:-1:-1;2005:283:56;;;;;:::i;:::-;;:::i;4161:214:4:-;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;1430:38:56:-;;;;;;;;;;;;1465:3;1430:38;;;;;5069:4:89;5057:17;;;5039:36;;5027:2;5012:18;1430:38:56;4897:184:89;1474:39:56;;;;;;;;;;;;1510:3;1474:39;;2738:309;;;;;;;;;;-1:-1:-1;2738:309:56;;;;;:::i;:::-;;:::i;7227:150::-;;;;;;;;;;-1:-1:-1;7227:150:56;;;;;:::i;:::-;-1:-1:-1;;;;;7337:22:56;7312:6;7337:22;;;;;;;;;;:33;;;;-1:-1:-1;;;;;7337:33:56;;7227:150;;;;-1:-1:-1;;;;;5820:31:89;;;5802:50;;5790:2;5775:18;7227:150:56;5658:200:89;3221:284:56;;;;;;;;;;-1:-1:-1;3221:284:56;;;;;:::i;:::-;;:::i;3732:207:0:-;;;;;;;;;;-1:-1:-1;3732:207:0;;;;;:::i;:::-;;:::i;6959:168:56:-;;;;;;;;;;-1:-1:-1;6959:168:56;;;;;:::i;:::-;;:::i;2317:49:0:-;;;;;;;;;;-1:-1:-1;2317:49:0;2362:4;2317:49;;1819:58:4;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:4;;;;;;;;;;;;:::i;5662:138:0:-;;;;;;;;;;-1:-1:-1;5662:138:0;;;;;:::i;:::-;;:::i;5746:126:56:-;;;;;;;;;;-1:-1:-1;5746:126:56;;;;;:::i;:::-;-1:-1:-1;;;;;5828:22:56;5805:4;5828:22;;;;;;;;;;:32;;;:37;;;5746:126;3443:202:0;3528:4;-1:-1:-1;;;;;;3551:47:0;;-1:-1:-1;;;3551:47:0;;:87;;-1:-1:-1;;;;;;;;;;1134:40:8;;;3602:36:0;3544:94;3443:202;-1:-1:-1;;3443:202:0:o;4740:343:56:-;4814:23;:21;:23::i;:::-;4891:16;;4872:37;;;-1:-1:-1;;;;;4891:16:56;;;4872:37;;;2305:51:89;4848:21:56;;2278:18:89;4872:37:56;;;-1:-1:-1;;4872:37:56;;;;;;;;;;-1:-1:-1;4919:21:56;4954:9;:4;;:9;:::i;:::-;4965:11;;;;:4;:11;:::i;:::-;4978:13;;;;;;;;:::i;:::-;4993:15;;;;:4;:15;:::i;:::-;4943:66;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4943:66:56;;;;;;;;;;-1:-1:-1;5020:56:56;1465:3;5040:15;;;;:4;:15;:::i;:::-;5057:8;5067;5020:7;:56::i;:::-;4804:279;;4740:343;:::o;5220:347::-;5298:23;:21;:23::i;:::-;5375:16;;5356:37;;;-1:-1:-1;;;;;5375:16:56;;;5356:37;;;2305:51:89;5332:21:56;;2278:18:89;5356:37:56;;;-1:-1:-1;;5356:37:56;;;;;;;;;;-1:-1:-1;5403:21:56;5438:9;:4;;:9;:::i;:::-;5449:11;;;;:4;:11;:::i;:::-;5462:12;;;;:4;:12;:::i;:::-;5476:15;;;;:4;:15;:::i;:::-;5427:65;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5427:65:56;;;;;;;;;;-1:-1:-1;5503:57:56;1510:3;5524:15;;;;:4;:15;:::i;6654:161::-;6743:7;6769:39;6785:10;;1465:3;6769:15;:39::i;:::-;6762:46;6654:161;-1:-1:-1;;;6654:161:56:o;4759:191:0:-;4824:7;4919:14;;;-1:-1:-1;;;;;;;;;;;4919:14:0;;;;;:24;;;;4759:191::o;6013:144:56:-;6080:4;6148:1;-1:-1:-1;;;;;6103:47:56;:21;6125:10;;6103:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;6103:33:56;:47;;;-1:-1:-1;6013:144:56;;;;:::o;5246:136:0:-;5320:18;5333:4;5320:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5350:25:::1;5361:4;5367:7;5350:10;:25::i;:::-;;5246:136:::0;;;:::o;378:175:53:-;-1:-1:-1;;;;;;;;;;;8325:39:3;-1:-1:-1;;;;;8325:39:3;432:29:53;428:87;;484:20;;-1:-1:-1;;;484:20:53;;;;;;;;;;;428:87;524:22;:20;:22::i;:::-;378:175::o;6348:245:0:-;-1:-1:-1;;;;;6441:34:0;;966:10:7;6441:34:0;6437:102;;6498:30;;-1:-1:-1;;;6498:30:0;;;;;;;;;;;6437:102;6549:37;6561:4;6567:18;6549:11;:37::i;2005:283:56:-;-1:-1:-1;;;;;;;;;;;4302:15:3;;-1:-1:-1;;;4302:15:3;;;;4301:16;;-1:-1:-1;;;;;4348:14:3;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:3;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:3;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:3;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:3;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:3;-1:-1:-1;;;5013:22:3;;;4979:67;2101:24:56::1;:22;:24::i;:::-;2135:22;:20;:22::i;:::-;2168:27;-1:-1:-1::0;;;;;;;;;;;1406:18:56;2168:13:::1;:27::i;:::-;2205:31;-1:-1:-1::0;;;;;;;;;;;2223:12:56::1;2205:10;:31::i;:::-;-1:-1:-1::0;2247:16:56::1;:34:::0;;-1:-1:-1;;;;;;2247:34:56::1;-1:-1:-1::0;;;;;2247:34:56;::::1;;::::0;;5066:101:3;;;;5100:23;;-1:-1:-1;;;;5100:23:3;;;5142:14;;-1:-1:-1;5802:50:89;;5142:14:3;;5790:2:89;5775:18;5142:14:3;;;;;;;5066:101;4092:1081;;;;;2005:283:56;;:::o;4161:214:4:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;3708:134::-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:4;:::o;2738:309:56:-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;1465:3:56::1;2852:23:::0;::::1;::::0;::::1;::::0;:63:::1;;-1:-1:-1::0;1510:3:56::1;2891:24:::0;::::1;;2852:63;2835:150;;;2947:27;::::0;-1:-1:-1;;;2947:27:56;;::::1;::::0;::::1;2744:25:89::0;;;2717:18;;2947:27:56::1;;;;;;;;2835:150;-1:-1:-1::0;2994:21:56::1;::::0;;;:10:::1;:21;::::0;;;;;:46;;-1:-1:-1;;;;;;2994:46:56::1;-1:-1:-1::0;;;;;2994:46:56;;::::1;::::0;;;::::1;::::0;;2738:309::o;3221:284::-;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;:::-;-1:-1:-1;;;;;3326:23:56;::::1;:10;:23:::0;;;::::1;::::0;;;;;;:33;:48:::1;:33;1510:3;3326:48;3322:112;;3397:26;::::0;-1:-1:-1;;;3397:26:56;;-1:-1:-1;;;;;2323:32:89;;3397:26:56::1;::::0;::::1;2305:51:89::0;2278:18;;3397:26:56::1;2159:203:89::0;3322:112:56::1;3443:55;::::0;-1:-1:-1;;;3443:55:56;;-1:-1:-1;;;;;3443:46:56;::::1;::::0;::::1;::::0;:55:::1;::::0;3490:7;;;;3443:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3221:284:::0;;;;:::o;3732:207:0:-;3809:4;3901:14;;;-1:-1:-1;;;;;;;;;;;3901:14:0;;;;;;;;-1:-1:-1;;;;;3901:31:0;;;;;;;;;;;;;;;3732:207::o;6959:168:56:-;7054:7;7080:40;7096:10;;1510:3;7080:15;:40::i;5662:138:0:-;5737:18;5750:4;5737:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5767:26:::1;5779:4;5785:7;5767:11;:26::i;2423:151:56:-:0;2498:16;;-1:-1:-1;;;;;2498:16:56;2484:10;:30;2480:88;;2537:20;;-1:-1:-1;;;2537:20:56;;;;;;;;;;;3538:1064;3665:12;3707:10;;3690:28;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3690:28:56;;;;;;;;;3680:39;;3690:28;3680:39;;;;3980:21;;;3935:12;3980:21;;;:10;:21;;;;;;;3680:39;;-1:-1:-1;3935:12:56;;;-1:-1:-1;;;;;3980:21:56;;-1:-1:-1;;;4052:29:56;4029:79;;3680:39;;4089:8;;4099;;4029:79;;;:::i;:::-;;;;-1:-1:-1;;4029:79:56;;;;;;;;;;;;;;-1:-1:-1;;;;;4029:79:56;-1:-1:-1;;;;;;4029:79:56;;;;;;;;;;3972:146;;;;4029:79;3972:146;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3934:184;;;;4134:7;4129:166;;4209:6;4203:13;4259:11;4250:6;4244:4;4240:17;4233:38;4129:166;4305:13;4332:6;4321:29;;;;;;;;;;;;:::i;:::-;4305:45;;4397:5;4361:21;4383:10;;4361:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:41;;-1:-1:-1;;;;;4361:41:56;;;-1:-1:-1;;;;;;4361:41:56;;;;;;4432:105;;;;;;;;;;;-1:-1:-1;;;;;4510:15:56;4432:105;;;;;;;;4412:17;;;4361:33;4412:17;;;;;;;;;;;:125;;;;;;;;;4361:41;4412:125;-1:-1:-1;;4412:125:56;;;;;;;;;;;;4553:42;;;;;4566:10;;;;4423:5;;4468:9;;4553:42;:::i;:::-;;;;;;;;3655:947;;;;3538:1064;;;;;:::o;6163:353::-;6280:7;6299:12;6341:10;;6324:28;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;6324:28:56;;;;;;6314:39;;6324:28;6314:39;;;;6406:16;;-1:-1:-1;;;;;6406:16:56;6387:37;;;2305:51:89;;;;6314:39:56;-1:-1:-1;6363:21:56;;2278:18:89;6387:37:56;;;-1:-1:-1;;6387:37:56;;;;;;;;;6442:21;;;;:10;6387:37;6442:21;;;;;;-1:-1:-1;;;6442:67:56;;6387:37;;-1:-1:-1;;;;;;6442:21:56;;:36;;:67;;6479:4;;6387:37;;6503:4;;6442:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6435:74;6163:353;-1:-1:-1;;;;;;6163:353:56:o;4148:103:0:-;4214:30;4225:4;966:10:7;4214::0;:30::i;:::-;4148:103;:::o;7270:387::-;7347:4;-1:-1:-1;;;;;;;;;;;7437:22:0;7445:4;7451:7;7437;:22::i;:::-;7432:219;;7475:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7475:31:0;;;;;;;;;:38;;-1:-1:-1;;7475:38:0;7509:4;7475:38;;;7559:12;966:10:7;;887:96;7559:12:0;-1:-1:-1;;;;;7532:40:0;7550:7;-1:-1:-1;;;;;7532:40:0;7544:4;7532:40;;;;;;;;;;7593:4;7586:11;;;;;7432:219;7635:5;7628:12;;;;;7711:422:3;-1:-1:-1;;;;;;;;;;;7900:15:3;;-1:-1:-1;;;7900:15:3;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:3;;;;;;;;;;;7896:76;7985:14;;-1:-1:-1;;;;;7985:14:3;;;:34;7981:146;;8035:33;;-1:-1:-1;;8035:33:3;-1:-1:-1;;;;;8035:33:3;;;;;8087:29;;5802:50:89;;;8087:29:3;;5790:2:89;5775:18;8087:29:3;;;;;;;7760:373;7711:422::o;7892:388:0:-;7970:4;-1:-1:-1;;;;;;;;;;;8059:22:0;8067:4;8073:7;8059;:22::i;:::-;8055:219;;;8131:5;8097:14;;;;;;;;;;;-1:-1:-1;;;;;8097:31:0;;;;;;;;;;:39;;-1:-1:-1;;8097:39:0;;;8155:40;966:10:7;;8097:14:0;;8155:40;;8131:5;8155:40;8216:4;8209:11;;;;;2970:67:4;6931:20:3;:18;:20::i;6718:318:0:-;-1:-1:-1;;;;;;;;;;;6801:30:0;6898:18;6911:4;6898:12;:18::i;:::-;6926:8;:14;;;;;;;;;;;:24;;:36;;;6977:52;6870:46;;-1:-1:-1;6953:9:0;;6870:46;;6935:4;;6977:52;;6926:8;6977:52;6791:245;;6718:318;;:::o;4603:312:4:-;4683:4;-1:-1:-1;;;;;4692:6:4;4675:23;;;:120;;;4789:6;-1:-1:-1;;;;;4753:42:4;:32;-1:-1:-1;;;;;;;;;;;1519:53:17;-1:-1:-1;;;;;1519:53:17;;1441:138;4753:32:4;-1:-1:-1;;;;;4753:42:4;;;4675:120;4658:251;;;4869:29;;-1:-1:-1;;;4869:29:4;;;;;;;;;;;2345:72:56;-1:-1:-1;;;;;;;;;;;3191:16:0;3202:4;3191:10;:16::i;6057:538:4:-;6174:17;-1:-1:-1;;;;;6156:50:4;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6156:52:4;;;;;;;;-1:-1:-1;;6156:52:4;;;;;;;;;;;;:::i;:::-;;;6152:437;;6518:60;;-1:-1:-1;;;6518:60:4;;-1:-1:-1;;;;;2323:32:89;;6518:60:4;;;2305:51:89;2278:18;;6518:60:4;2159:203:89;6152:437:4;-1:-1:-1;;;;;;;;;;;6250:40:4;;6246:120;;6317:34;;-1:-1:-1;;;6317:34:4;;;;;2744:25:89;;;2717:18;;6317:34:4;2598:177:89;6246:120:4;6379:54;6409:17;6428:4;6379:29;:54::i;5032:213::-;5106:4;-1:-1:-1;;;;;5115:6:4;5098:23;;5094:145;;5199:29;;-1:-1:-1;;;5199:29:4;;;;;;;;;;;4381:197:0;4469:22;4477:4;4483:7;4469;:22::i;:::-;4464:108;;4514:47;;-1:-1:-1;;;4514:47:0;;-1:-1:-1;;;;;13171:32:89;;4514:47:0;;;13153:51:89;13220:18;;;13213:34;;;13126:18;;4514:47:0;12979:274:89;7084:141:3;-1:-1:-1;;;;;;;;;;;8560:40:3;-1:-1:-1;;;8560:40:3;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:3;;;;;;;;;;;2264:344:17;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:17;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;1671:281::-;1748:17;-1:-1:-1;;;;;1748:29:17;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:17;;-1:-1:-1;;;;;2323:32:89;;1805:47:17;;;2305:51:89;2278:18;;1805:47:17;2159:203:89;1744:119:17;-1:-1:-1;;;;;;;;;;;1872:73:17;;-1:-1:-1;;;;;;1872:73:17;-1:-1:-1;;;;;1872:73:17;;;;;;;;;;1671:281::o;3900:253:32:-;3983:12;4008;4022:23;4049:6;-1:-1:-1;;;;;4049:19:32;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;3900:253;-1:-1:-1;;;;;3900:253:32:o;6113:122:17:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:17;;;;;;;;;;;4421:582:32;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4841:17;;:22;:49;;;;-1:-1:-1;;;;;;4867:18:32;;;:23;4841:49;4837:119;;;4917:24;;-1:-1:-1;;;4917:24:32;;-1:-1:-1;;;;;2323:32:89;;4917:24:32;;;2305:51:89;2278:18;;4917:24:32;2159:203:89;4837:119:32;-1:-1:-1;4976:10:32;4969:17;;5543:487;5674:17;;:21;5670:354;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;-1:-1:-1;;;5994:19:32;;;;;;;;;;;14:286:89;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:89;;209:43;;199:71;;266:1;263;256:12;497:158;559:5;604:3;595:6;590:3;586:16;582:26;579:46;;;621:1;618;611:12;579:46;-1:-1:-1;643:6:89;497:158;-1:-1:-1;497:158:89:o;660:361::-;749:6;802:2;790:9;781:7;777:23;773:32;770:52;;;818:1;815;808:12;770:52;858:9;845:23;-1:-1:-1;;;;;883:6:89;880:30;877:50;;;923:1;920;913:12;877:50;946:69;1007:7;998:6;987:9;983:22;946:69;:::i;:::-;936:79;660:361;-1:-1:-1;;;;660:361:89:o;1390:348::-;1442:8;1452:6;1506:3;1499:4;1491:6;1487:17;1483:27;1473:55;;1524:1;1521;1514:12;1473:55;-1:-1:-1;1547:20:89;;-1:-1:-1;;;;;1579:30:89;;1576:50;;;1622:1;1619;1612:12;1576:50;1659:4;1651:6;1647:17;1635:29;;1711:3;1704:4;1695:6;1687;1683:19;1679:30;1676:39;1673:59;;;1728:1;1725;1718:12;1673:59;1390:348;;;;;:::o;1743:411::-;1814:6;1822;1875:2;1863:9;1854:7;1850:23;1846:32;1843:52;;;1891:1;1888;1881:12;1843:52;1931:9;1918:23;-1:-1:-1;;;;;1956:6:89;1953:30;1950:50;;;1996:1;1993;1986:12;1950:50;2035:59;2086:7;2077:6;2066:9;2062:22;2035:59;:::i;:::-;2113:8;;2009:85;;-1:-1:-1;1743:411:89;-1:-1:-1;;;;1743:411:89:o;2367:226::-;2426:6;2479:2;2467:9;2458:7;2454:23;2450:32;2447:52;;;2495:1;2492;2485:12;2447:52;-1:-1:-1;2540:23:89;;2367:226;-1:-1:-1;2367:226:89:o;2780:131::-;-1:-1:-1;;;;;2855:31:89;;2845:42;;2835:70;;2901:1;2898;2891:12;2916:367;2984:6;2992;3045:2;3033:9;3024:7;3020:23;3016:32;3013:52;;;3061:1;3058;3051:12;3013:52;3106:23;;;-1:-1:-1;3205:2:89;3190:18;;3177:32;3218:33;3177:32;3218:33;:::i;:::-;3270:7;3260:17;;;2916:367;;;;;:::o;3288:388::-;3356:6;3364;3417:2;3405:9;3396:7;3392:23;3388:32;3385:52;;;3433:1;3430;3423:12;3385:52;3472:9;3459:23;3491:31;3516:5;3491:31;:::i;:::-;3541:5;-1:-1:-1;3598:2:89;3583:18;;3570:32;3611:33;3570:32;3611:33;:::i;3681:127::-;3742:10;3737:3;3733:20;3730:1;3723:31;3773:4;3770:1;3763:15;3797:4;3794:1;3787:15;3813:1079;3890:6;3898;3951:2;3939:9;3930:7;3926:23;3922:32;3919:52;;;3967:1;3964;3957:12;3919:52;4006:9;3993:23;4025:31;4050:5;4025:31;:::i;:::-;4075:5;-1:-1:-1;4131:2:89;4116:18;;4103:32;-1:-1:-1;;;;;4147:30:89;;4144:50;;;4190:1;4187;4180:12;4144:50;4213:22;;4266:4;4258:13;;4254:27;-1:-1:-1;4244:55:89;;4295:1;4292;4285:12;4244:55;4335:2;4322:16;-1:-1:-1;;;;;4353:6:89;4350:30;4347:56;;;4383:18;;:::i;:::-;4432:2;4426:9;4524:2;4486:17;;-1:-1:-1;;4482:31:89;;;4515:2;4478:40;4474:54;4462:67;;-1:-1:-1;;;;;4544:34:89;;4580:22;;;4541:62;4538:88;;;4606:18;;:::i;:::-;4642:2;4635:22;4666;;;4707:15;;;4724:2;4703:24;4700:37;-1:-1:-1;4697:57:89;;;4750:1;4747;4740:12;4697:57;4806:6;4801:2;4797;4793:11;4788:2;4780:6;4776:15;4763:50;4859:1;4854:2;4845:6;4837;4833:19;4829:28;4822:39;4880:6;4870:16;;;;;3813:1079;;;;;:::o;5406:247::-;5465:6;5518:2;5506:9;5497:7;5493:23;5489:32;5486:52;;;5534:1;5531;5524:12;5486:52;5573:9;5560:23;5592:31;5617:5;5592:31;:::i;5863:546::-;5943:6;5951;5959;6012:2;6000:9;5991:7;5987:23;5983:32;5980:52;;;6028:1;6025;6018:12;5980:52;6067:9;6054:23;6086:31;6111:5;6086:31;:::i;:::-;6136:5;-1:-1:-1;6192:2:89;6177:18;;6164:32;-1:-1:-1;;;;;6208:30:89;;6205:50;;;6251:1;6248;6241:12;6205:50;6290:59;6341:7;6332:6;6321:9;6317:22;6290:59;:::i;:::-;5863:546;;6368:8;;-1:-1:-1;6264:85:89;;-1:-1:-1;;;;5863:546:89:o;6414:250::-;6499:1;6509:113;6523:6;6520:1;6517:13;6509:113;;;6599:11;;;6593:18;6580:11;;;6573:39;6545:2;6538:10;6509:113;;;-1:-1:-1;;6656:1:89;6638:16;;6631:27;6414:250::o;6669:271::-;6711:3;6749:5;6743:12;6776:6;6771:3;6764:19;6792:76;6861:6;6854:4;6849:3;6845:14;6838:4;6831:5;6827:16;6792:76;:::i;:::-;6922:2;6901:15;-1:-1:-1;;6897:29:89;6888:39;;;;6929:4;6884:50;;6669:271;-1:-1:-1;;6669:271:89:o;6945:220::-;7094:2;7083:9;7076:21;7057:4;7114:45;7155:2;7144:9;7140:18;7132:6;7114:45;:::i;7170:522::-;7248:4;7254:6;7314:11;7301:25;7408:2;7404:7;7393:8;7377:14;7373:29;7369:43;7349:18;7345:68;7335:96;;7427:1;7424;7417:12;7335:96;7454:33;;7506:20;;;-1:-1:-1;;;;;;7538:30:89;;7535:50;;;7581:1;7578;7571:12;7535:50;7614:4;7602:17;;-1:-1:-1;7645:14:89;7641:27;;;7631:38;;7628:58;;;7682:1;7679;7672:12;7697:269;7754:6;7807:2;7795:9;7786:7;7782:23;7778:32;7775:52;;;7823:1;7820;7813:12;7775:52;7862:9;7849:23;7912:4;7905:5;7901:16;7894:5;7891:27;7881:55;;7932:1;7929;7922:12;7971:267;8060:6;8055:3;8048:19;8112:6;8105:5;8098:4;8093:3;8089:14;8076:43;-1:-1:-1;8164:1:89;8139:16;;;8157:4;8135:27;;;8128:38;;;;8220:2;8199:15;;;-1:-1:-1;;8195:29:89;8186:39;;;8182:50;;7971:267::o;8243:707::-;8542:3;8531:9;8524:22;8505:4;8569:63;8627:3;8616:9;8612:19;8604:6;8596;8569:63;:::i;:::-;8680:9;8672:6;8668:22;8663:2;8652:9;8648:18;8641:50;8714;8757:6;8749;8741;8714:50;:::i;:::-;8700:64;;8812:4;8804:6;8800:17;8795:2;8784:9;8780:18;8773:45;8866:9;8858:6;8854:22;8849:2;8838:9;8834:18;8827:50;8894;8937:6;8929;8921;8894:50;:::i;:::-;8886:58;8243:707;-1:-1:-1;;;;;;;;;;8243:707:89:o;8955:819::-;9288:3;9277:9;9270:22;9251:4;9315:63;9373:3;9362:9;9358:19;9350:6;9342;9315:63;:::i;:::-;9426:9;9418:6;9414:22;9409:2;9398:9;9394:18;9387:50;9460;9503:6;9495;9487;9460:50;:::i;:::-;9446:64;;9558:9;9550:6;9546:22;9541:2;9530:9;9526:18;9519:50;9592;9635:6;9627;9619;9592:50;:::i;:::-;9578:64;;9690:9;9682:6;9678:22;9673:2;9662:9;9658:18;9651:50;9718;9761:6;9753;9745;9718:50;:::i;:::-;9710:58;8955:819;-1:-1:-1;;;;;;;;;;;8955:819:89:o;9779:273::-;9964:6;9956;9951:3;9938:33;9920:3;9990:16;;10015:13;;;9990:16;9779:273;-1:-1:-1;9779:273:89:o;10453:247::-;10612:2;10601:9;10594:21;10575:4;10632:62;10690:2;10679:9;10675:18;10667:6;10659;10632:62;:::i;10705:450::-;10926:6;10915:9;10908:25;10969:2;10964;10953:9;10949:18;10942:30;10889:4;10995:45;11036:2;11025:9;11021:18;11013:6;10995:45;:::i;:::-;11088:9;11080:6;11076:22;11071:2;11060:9;11056:18;11049:50;11116:33;11142:6;11134;11116:33;:::i;11160:287::-;11289:3;11327:6;11321:13;11343:66;11402:6;11397:3;11390:4;11382:6;11378:17;11343:66;:::i;:::-;11425:16;;;;;11160:287;-1:-1:-1;;11160:287:89:o;11452:259::-;11530:6;11583:2;11571:9;11562:7;11558:23;11554:32;11551:52;;;11599:1;11596;11589:12;11551:52;11631:9;11625:16;11650:31;11675:5;11650:31;:::i;11716:422::-;11927:2;11916:9;11909:21;11890:4;11947:62;12005:2;11994:9;11990:18;11982:6;11974;11947:62;:::i;:::-;-1:-1:-1;;;;;12045:32:89;;;;12040:2;12025:18;;12018:60;-1:-1:-1;12126:4:89;12114:17;;;;12109:2;12094:18;;;12087:45;11939:70;11716:422;-1:-1:-1;;11716:422:89:o;12143:386::-;12346:6;12335:9;12328:25;12389:2;12384;12373:9;12369:18;12362:30;12309:4;12409:45;12450:2;12439:9;12435:18;12427:6;12409:45;:::i;:::-;12401:53;;12519:1;12515;12510:3;12506:11;12502:19;12494:6;12490:32;12485:2;12474:9;12470:18;12463:60;12143:386;;;;;;:::o;12790:184::-;12860:6;12913:2;12901:9;12892:7;12888:23;12884:32;12881:52;;;12929:1;12926;12919:12;12881:52;-1:-1:-1;12952:16:89;;12790:184;-1:-1:-1;12790:184:89:o"},"methodIdentifiers":{"ADMIN()":"2a0acc6a","DEFAULT_ADMIN_ROLE()":"a217fddf","ERC20_TYPE()":"6f3769c0","ERC721_TYPE()":"72798a89","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","computeAddress(string)":"1f596f89","computeAddressERC721(string)":"96c8e820","create((string,string,uint8,string))":"1963202b","createERC721((string,string,string,string))":"1adc56db","disableInitializers()":"31f44900","exists(address)":"f6a3d24e","exists(string)":"261a323e","getRoleAdmin(bytes32)":"248a9ca3","getTokenDeployTime(address)":"851bdf11","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,address)":"485cc955","proxiableUUID()":"52d1902d","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setBaseURI(address,string)":"88433651","setTokenFactory(uint256,address)":"7f26b45c","supportsInterface(bytes4)":"01ffc9a7","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"InvalidTokenType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"TokenNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedAccess\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"tokenType\",\"type\":\"uint8\"}],\"name\":\"TokenCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC721_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"name\":\"computeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"name\":\"computeAddressERC721\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"name\":\"createERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"}],\"name\":\"getTokenDeployTime\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adminAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"crossChainLayer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Token\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenType\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"setTokenFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Cross-chain layer token factory and utility functions.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"TokenCreated(string,address,uint8)\":{\"details\":\"New Cross-Chain Layer token contract was deployed\",\"params\":{\"evmAddress\":\"Token address\",\"tokenType\":\"Token type\",\"tvmAddress\":\"TVM Jetton address\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"computeAddress(string)\":{\"details\":\"Get address of ERC20 Cross-Chain Layer token.\",\"params\":{\"tvmAddress\":\"Corresponding TON token address.\"}},\"computeAddressERC721(string)\":{\"details\":\"Get address of ERC721 Cross-Chain Layer token.\",\"params\":{\"tvmAddress\":\"Corresponding TON collection address.\"}},\"create((string,string,uint8,string))\":{\"details\":\"Deploy new ERC20 Cross-Chain Layer token.\",\"params\":{\"info\":\"TokenInfo struct containing token details.\"}},\"createERC721((string,string,string,string))\":{\"details\":\"Deploy new ERC721 Cross-Chain Layer token.\",\"params\":{\"info\":\"NFTInfo struct containing token details.\"}},\"exists(address)\":{\"details\":\"Checks if the token exists or not by evm address\",\"params\":{\"evmAddress\":\"Corresponding EVM token address.\"}},\"exists(string)\":{\"details\":\"Checks if the token exists or not by tvm address\",\"params\":{\"tvmAddress\":\"Corresponding TON token address.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getTokenDeployTime(address)\":{\"details\":\"Get token deploy timestamp\",\"params\":{\"evmAddress\":\"Token address\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address,address)\":{\"details\":\"Initializes the contract.\",\"params\":{\"adminAddress\":\"Admin address.\",\"crossChainLayer\":\"Cross-Chain Layer contract address.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setBaseURI(address,string)\":{\"details\":\"Set new base URI for ERC721 Cross-Chain Layer token.\",\"params\":{\"baseURI\":\"Base URI\",\"erc721Token\":\"CrosschainLayerERC721 address\"}},\"setTokenFactory(uint256,address)\":{\"details\":\"setup new token factory\",\"params\":{\"factory\":\"Token factory address\",\"tokenType\":\"Token type\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"TokenUtils\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/TokenUtils.sol\":\"TokenUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/TacInitializable.sol\":{\"keccak256\":\"0x1a60834ac4652782e16392d639235d96e1675970c507b8b6d2db9c8644b50941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ab364d4d3e4ea4d477132e98eeac8142d54d208440c7a73fd78138990fc2db5\",\"dweb:/ipfs/QmfRaaiGh4xFE2aDVHQiB57fE2rmu6c6m6vdHGXqKay62C\"]},\"contracts/core/TokenUtils.sol\":{\"keccak256\":\"0x19fcae23ece3f53687a5e8a7a22737ccd80af7ebc7af503ffc595f162569e0d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11cade1d8d65e2da7165dfc59cd1fe6b08681e6536d1b0b9606ac1d9b7d5cc47\",\"dweb:/ipfs/QmWPJmNdvxBztghoDoqQWgKUTEeimX2gfwPr9UioVo8Hhv\"]},\"contracts/interfaces/ISettings.sol\":{\"keccak256\":\"0x046f20ecb6bf3a96d87c04715fe0206003b4adc89d42a6f4ce42ddf8d0f798fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec9b5ae056914ee154fd32057c3f76d5baad103741844da950fad1eeae5735e9\",\"dweb:/ipfs/QmPC85c95Q61mWS8BHcCn5JL3N7dgHbLLD6F8zUYSDZQop\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/interfaces/ITokenFactory.sol\":{\"keccak256\":\"0x7d5876f09848176c3d24b4c70373f57888ce07a9a8398b34ea88ef7bf6d9459b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://748c941428a6b58fb3b4cee0a29ffcc32f3d828eada1654e430c1c25931597ca\",\"dweb:/ipfs/QmRARDh9XRMLqJrUmWKhVSVzw3aaUqD7jYkLAYrEz9PTdq\"]},\"contracts/interfaces/ITokenUtils.sol\":{\"keccak256\":\"0xdcdc40823d891b97559f3655655b66e8fabc4927ac6053491081f430b42d1caa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d377a8f2ce13d3b6a7be5b19e29459d1f2adae2e177019927e25c1ed41c5c794\",\"dweb:/ipfs/QmQ3CW4LS3aMYWhP8wKeTR1j7uy7ohBoJ6WdcQSyczbAYX\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC721.sol\":{\"keccak256\":\"0x207f34fcfd0746b604ecee8ca8b9abf79a5a614e9ef5355f617d65e0d2c25b1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb9bdcc8e9fcfc33de76cb7e6a8ed4073c9c33db36707e2b5d7e2f2acf047656\",\"dweb:/ipfs/QmRhXA5JwjnNTrTnLvuw6DAVqQt8oG7SmtGxiH9pQU6ngN\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":16539,"contract":"contracts/core/TokenUtils.sol:TokenUtils","label":"_tacTokens","offset":0,"slot":"0","type":"t_mapping(t_address,t_struct(DeployInfo)16534_storage)"},{"astId":16543,"contract":"contracts/core/TokenUtils.sol:TokenUtils","label":"_tvmToEVMTokenAddress","offset":0,"slot":"1","type":"t_mapping(t_string_memory_ptr,t_address)"},{"astId":16548,"contract":"contracts/core/TokenUtils.sol:TokenUtils","label":"_factories","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_contract(ITokenFactory)17568)"},{"astId":16550,"contract":"contracts/core/TokenUtils.sol:TokenUtils","label":"_crossChainLayer","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(ITokenFactory)17568":{"encoding":"inplace","label":"contract ITokenFactory","numberOfBytes":"20"},"t_mapping(t_address,t_struct(DeployInfo)16534_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct TokenUtils.DeployInfo)","numberOfBytes":"32","value":"t_struct(DeployInfo)16534_storage"},"t_mapping(t_string_memory_ptr,t_address)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_contract(ITokenFactory)17568)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => contract ITokenFactory)","numberOfBytes":"32","value":"t_contract(ITokenFactory)17568"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(DeployInfo)16534_storage":{"encoding":"inplace","label":"struct TokenUtils.DeployInfo","members":[{"astId":16531,"contract":"contracts/core/TokenUtils.sol:TokenUtils","label":"tokenType","offset":0,"slot":"0","type":"t_uint8"},{"astId":16533,"contract":"contracts/core/TokenUtils.sol:TokenUtils","label":"deployTime","offset":1,"slot":"0","type":"t_uint64"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/core/tokens/CrossChainLayerERC20.sol":{"CrossChainLayerERC20":{"abi":[{"inputs":[{"internalType":"address","name":"crossChainLayer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"UnauthorizedAccess","type":"error"},{"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":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","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":"value","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":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfo","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"string","name":"tvmAddress_","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_16995":{"entryPoint":null,"id":16995,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":89,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:89","nodeType":"YulBlock","src":"0:306:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"95:209:89","nodeType":"YulBlock","src":"95:209:89","statements":[{"body":{"nativeSrc":"141:16:89","nodeType":"YulBlock","src":"141:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:89","nodeType":"YulLiteral","src":"150:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:89","nodeType":"YulLiteral","src":"153:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:89","nodeType":"YulIdentifier","src":"143:6:89"},"nativeSrc":"143:12:89","nodeType":"YulFunctionCall","src":"143:12:89"},"nativeSrc":"143:12:89","nodeType":"YulExpressionStatement","src":"143:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:89","nodeType":"YulIdentifier","src":"116:7:89"},{"name":"headStart","nativeSrc":"125:9:89","nodeType":"YulIdentifier","src":"125:9:89"}],"functionName":{"name":"sub","nativeSrc":"112:3:89","nodeType":"YulIdentifier","src":"112:3:89"},"nativeSrc":"112:23:89","nodeType":"YulFunctionCall","src":"112:23:89"},{"kind":"number","nativeSrc":"137:2:89","nodeType":"YulLiteral","src":"137:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:89","nodeType":"YulIdentifier","src":"108:3:89"},"nativeSrc":"108:32:89","nodeType":"YulFunctionCall","src":"108:32:89"},"nativeSrc":"105:52:89","nodeType":"YulIf","src":"105:52:89"},{"nativeSrc":"166:29:89","nodeType":"YulVariableDeclaration","src":"166:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:89","nodeType":"YulIdentifier","src":"185:9:89"}],"functionName":{"name":"mload","nativeSrc":"179:5:89","nodeType":"YulIdentifier","src":"179:5:89"},"nativeSrc":"179:16:89","nodeType":"YulFunctionCall","src":"179:16:89"},"variables":[{"name":"value","nativeSrc":"170:5:89","nodeType":"YulTypedName","src":"170:5:89","type":""}]},{"body":{"nativeSrc":"258:16:89","nodeType":"YulBlock","src":"258:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:89","nodeType":"YulLiteral","src":"267:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:89","nodeType":"YulLiteral","src":"270:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:89","nodeType":"YulIdentifier","src":"260:6:89"},"nativeSrc":"260:12:89","nodeType":"YulFunctionCall","src":"260:12:89"},"nativeSrc":"260:12:89","nodeType":"YulExpressionStatement","src":"260:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:89","nodeType":"YulIdentifier","src":"217:5:89"},{"arguments":[{"name":"value","nativeSrc":"228:5:89","nodeType":"YulIdentifier","src":"228:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:89","nodeType":"YulLiteral","src":"243:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:89","nodeType":"YulLiteral","src":"248:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:89","nodeType":"YulIdentifier","src":"239:3:89"},"nativeSrc":"239:11:89","nodeType":"YulFunctionCall","src":"239:11:89"},{"kind":"number","nativeSrc":"252:1:89","nodeType":"YulLiteral","src":"252:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:89","nodeType":"YulIdentifier","src":"235:3:89"},"nativeSrc":"235:19:89","nodeType":"YulFunctionCall","src":"235:19:89"}],"functionName":{"name":"and","nativeSrc":"224:3:89","nodeType":"YulIdentifier","src":"224:3:89"},"nativeSrc":"224:31:89","nodeType":"YulFunctionCall","src":"224:31:89"}],"functionName":{"name":"eq","nativeSrc":"214:2:89","nodeType":"YulIdentifier","src":"214:2:89"},"nativeSrc":"214:42:89","nodeType":"YulFunctionCall","src":"214:42:89"}],"functionName":{"name":"iszero","nativeSrc":"207:6:89","nodeType":"YulIdentifier","src":"207:6:89"},"nativeSrc":"207:50:89","nodeType":"YulFunctionCall","src":"207:50:89"},"nativeSrc":"204:70:89","nodeType":"YulIf","src":"204:70:89"},{"nativeSrc":"283:15:89","nodeType":"YulAssignment","src":"283:15:89","value":{"name":"value","nativeSrc":"293:5:89","nodeType":"YulIdentifier","src":"293:5:89"},"variableNames":[{"name":"value0","nativeSrc":"283:6:89","nodeType":"YulIdentifier","src":"283:6:89"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:89","nodeType":"YulTypedName","src":"61:9:89","type":""},{"name":"dataEnd","nativeSrc":"72:7:89","nodeType":"YulTypedName","src":"72:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:89","nodeType":"YulTypedName","src":"84:6:89","type":""}],"src":"14:290:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50604051610fc3380380610fc3833981016040819052602c916059565b600280546001600160a01b039092166001600160a01b031992831617905560038054909116331790556087565b600060208284031215606a57600080fd5b81516001600160a01b0381168114608057600080fd5b9392505050565b610f2d806100966000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635a9b0b891161008c5780639dc29fac116100665780639dc29fac146101d6578063a9059cbb146101e9578063cdbed7ad146101fc578063dd62ed3e1461020f57600080fd5b80635a9b0b891461018357806370a082311461019857806395d89b41146101ce57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610146578063313ce5671461015957806340c10f191461016e575b600080fd5b6100dc610222565b6040516100e99190610acc565b60405180910390f35b610105610100366004610b02565b6102e5565b60405190151581526020016100e9565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040519081526020016100e9565b610105610154366004610b2c565b6102ff565b60005460405160ff90911681526020016100e9565b61018161017c366004610b02565b610323565b005b61018b610339565b6040516100e99190610b69565b6101386101a6366004610bd6565b6001600160a01b03166000908152600080516020610ed8833981519152602052604090205490565b6100dc610433565b6101816101e4366004610b02565b610472565b6101056101f7366004610b02565b610484565b61018161020a366004610c96565b610492565b61013861021d366004610d43565b6105ca565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace038054606091600080516020610ed88339815191529161026190610d76565b80601f016020809104026020016040519081016040528092919081815260200182805461028d90610d76565b80156102da5780601f106102af576101008083540402835291602001916102da565b820191906000526020600020905b8154815290600101906020018083116102bd57829003601f168201915b505050505091505090565b6000336102f3818585610614565b60019150505b92915050565b60003361030d858285610626565b610318858585610691565b506001949350505050565b61032b6106f0565b610335828261071d565b5050565b61036760405180608001604052806060815260200160608152602001600060ff168152602001606081525090565b604051806080016040528061037a610222565b8152602001610387610433565b815260200161039860005460ff1690565b60ff168152602001600180546103ad90610d76565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610d76565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815250905090565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace048054606091600080516020610ed88339815191529161026190610d76565b61047a6106f0565b6103358282610753565b6000336102f3818585610691565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104d85750825b905060008267ffffffffffffffff1660011480156104f55750303b155b905081158015610503575080155b156105215760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561054b57845460ff60401b1916600160401b1785555b610553610789565b61055d89896107b4565b6000805460ff191660ff891617905560016105788782610df7565b5083156105bf57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b61062183838360016107c6565b505050565b600061063284846105ca565b9050600019811461068b578181101561067c57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61068b848484840360006107c6565b50505050565b6001600160a01b0383166106bb57604051634b637e8f60e11b815260006004820152602401610673565b6001600160a01b0382166106e55760405163ec442f0560e01b815260006004820152602401610673565b6106218383836108ae565b6002546001600160a01b0316331461071b57604051631a27eac360e11b815260040160405180910390fd5b565b6001600160a01b0382166107475760405163ec442f0560e01b815260006004820152602401610673565b610335600083836108ae565b6001600160a01b03821661077d57604051634b637e8f60e11b815260006004820152602401610673565b610335826000836108ae565b6003546001600160a01b0316331461071b57604051631a27eac360e11b815260040160405180910390fd5b6107bc6109ec565b6103358282610a35565b600080516020610ed88339815191526001600160a01b0385166107ff5760405163e602df0560e01b815260006004820152602401610673565b6001600160a01b03841661082957604051634a1406b160e11b815260006004820152602401610673565b6001600160a01b038086166000908152600183016020908152604080832093881683529290522083905581156108a757836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161089e91815260200190565b60405180910390a35b5050505050565b600080516020610ed88339815191526001600160a01b0384166108ea57818160020160008282546108df9190610eb6565b9091555061095c9050565b6001600160a01b0384166000908152602082905260409020548281101561093d5760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610673565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b03831661097a576002810180548390039055610999565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109de91815260200190565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661071b57604051631afcd79f60e31b815260040160405180910390fd5b610a3d6109ec565b600080516020610ed88339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610a778482610df7565b506004810161068b8382610df7565b6000815180845260005b81811015610aac57602081850181015186830182015201610a90565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610adf6020830184610a86565b9392505050565b80356001600160a01b0381168114610afd57600080fd5b919050565b60008060408385031215610b1557600080fd5b610b1e83610ae6565b946020939093013593505050565b600080600060608486031215610b4157600080fd5b610b4a84610ae6565b9250610b5860208501610ae6565b929592945050506040919091013590565b602081526000825160806020840152610b8560a0840182610a86565b90506020840151601f19848303016040850152610ba28282610a86565b91505060ff60408501511660608401526060840151601f19848303016080850152610bcd8282610a86565b95945050505050565b600060208284031215610be857600080fd5b610adf82610ae6565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610c1857600080fd5b813567ffffffffffffffff811115610c3257610c32610bf1565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610c6157610c61610bf1565b604052818152838201602001851015610c7957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215610cac57600080fd5b843567ffffffffffffffff811115610cc357600080fd5b610ccf87828801610c07565b945050602085013567ffffffffffffffff811115610cec57600080fd5b610cf887828801610c07565b935050604085013560ff81168114610d0f57600080fd5b9150606085013567ffffffffffffffff811115610d2b57600080fd5b610d3787828801610c07565b91505092959194509250565b60008060408385031215610d5657600080fd5b610d5f83610ae6565b9150610d6d60208401610ae6565b90509250929050565b600181811c90821680610d8a57607f821691505b602082108103610daa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561062157806000526020600020601f840160051c81016020851015610dd75750805b601f840160051c820191505b818110156108a75760008155600101610de3565b815167ffffffffffffffff811115610e1157610e11610bf1565b610e2581610e1f8454610d76565b84610db0565b6020601f821160018114610e595760008315610e415750848201515b600019600385901b1c1916600184901b1784556108a7565b600084815260208120601f198516915b82811015610e895787850151825560209485019460019092019101610e69565b5084821015610ea75786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b808201808211156102f957634e487b7160e01b600052601160045260246000fdfe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a264697066735822122023a6c413dc1757c23ec545827b60ed6a546baff705514eb212fe9bef93dfd7ca64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xFC3 CODESIZE SUB DUP1 PUSH2 0xFC3 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x59 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP2 AND CALLER OR SWAP1 SSTORE PUSH1 0x87 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF2D DUP1 PUSH2 0x96 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 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5A9B0B89 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9DC29FAC GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xCDBED7AD EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5A9B0B89 EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x16E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xACC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE02 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xB2C JUMP JUMPDEST PUSH2 0x2FF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x17C CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x323 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18B PUSH2 0x339 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xB69 JUMP JUMPDEST PUSH2 0x138 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0xBD6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x433 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x472 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0xC96 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH2 0x138 PUSH2 0x21D CALLDATASIZE PUSH1 0x4 PUSH2 0xD43 JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE03 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x261 SWAP1 PUSH2 0xD76 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 0x28D SWAP1 PUSH2 0xD76 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2DA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2AF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2DA 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 0x2BD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2F3 DUP2 DUP6 DUP6 PUSH2 0x614 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x30D DUP6 DUP3 DUP6 PUSH2 0x626 JUMP JUMPDEST PUSH2 0x318 DUP6 DUP6 DUP6 PUSH2 0x691 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x32B PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0x71D JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x367 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x37A PUSH2 0x222 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x387 PUSH2 0x433 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x398 PUSH1 0x0 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xD76 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 0x3D9 SWAP1 PUSH2 0xD76 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 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 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE04 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x261 SWAP1 PUSH2 0xD76 JUMP JUMPDEST PUSH2 0x47A PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0x753 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2F3 DUP2 DUP6 DUP6 PUSH2 0x691 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x4D8 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x4F5 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x503 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x521 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x54B JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x553 PUSH2 0x789 JUMP JUMPDEST PUSH2 0x55D DUP10 DUP10 PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP10 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH2 0x578 DUP8 DUP3 PUSH2 0xDF7 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x5BF JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE01 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x621 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x7C6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x632 DUP5 DUP5 PUSH2 0x5CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x68B JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x67C JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x68B DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x7C6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x621 DUP4 DUP4 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x335 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x77D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x335 DUP3 PUSH1 0x0 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7BC PUSH2 0x9EC JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0xA35 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x7FF JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x829 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP4 SWAP1 SSTORE DUP2 ISZERO PUSH2 0x8A7 JUMPI DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP6 PUSH1 0x40 MLOAD PUSH2 0x89E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x8EA JUMPI DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8DF SWAP2 SWAP1 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x95C SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x93D JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x97A JUMPI PUSH1 0x2 DUP2 ADD DUP1 SLOAD DUP4 SWAP1 SUB SWAP1 SSTORE PUSH2 0x999 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 ADD SWAP1 SSTORE JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x9DE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA3D PUSH2 0x9EC JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE03 PUSH2 0xA77 DUP5 DUP3 PUSH2 0xDF7 JUMP JUMPDEST POP PUSH1 0x4 DUP2 ADD PUSH2 0x68B DUP4 DUP3 PUSH2 0xDF7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAAC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xA90 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xADF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB1E DUP4 PUSH2 0xAE6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB4A DUP5 PUSH2 0xAE6 JUMP JUMPDEST SWAP3 POP PUSH2 0xB58 PUSH1 0x20 DUP6 ADD PUSH2 0xAE6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB85 PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0xBA2 DUP3 DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF PUSH1 0x40 DUP6 ADD MLOAD AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0xBCD DUP3 DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xADF DUP3 PUSH2 0xAE6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC32 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC61 JUMPI PUSH2 0xC61 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0xC79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCCF DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCF8 DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD37 DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD5F DUP4 PUSH2 0xAE6 JUMP JUMPDEST SWAP2 POP PUSH2 0xD6D PUSH1 0x20 DUP5 ADD PUSH2 0xAE6 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xD8A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDAA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x621 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0xDD7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xDE3 JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE11 JUMPI PUSH2 0xE11 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xE25 DUP2 PUSH2 0xE1F DUP5 SLOAD PUSH2 0xD76 JUMP JUMPDEST DUP5 PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0xE59 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0xE41 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xE89 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xE69 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2F9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID MSTORE 0xC6 ORIGIN SELFBALANCE 0xE1 DELEGATECALL PUSH30 0xB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE00A264697066 PUSH20 0x5822122023A6C413DC1757C23EC545827B60ED6A SLOAD PUSH12 0xAFF705514EB212FE9BEF93DF 0xD7 0xCA PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"393:2604:57:-:0;;;857:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;908:17;:35;;-1:-1:-1;;;;;908:35:57;;;-1:-1:-1;;;;;;908:35:57;;;;;;953:12;:25;;;;;968:10;953:25;;;393:2604;;14:290:89;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:89;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:89:o;:::-;393:2604:57;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__ERC20_init_1198":{"entryPoint":1972,"id":1198,"parameterSlots":2,"returnSlots":0},"@__ERC20_init_unchained_1226":{"entryPoint":2613,"id":1226,"parameterSlots":2,"returnSlots":0},"@_approve_1630":{"entryPoint":1556,"id":1630,"parameterSlots":3,"returnSlots":0},"@_approve_1698":{"entryPoint":1990,"id":1698,"parameterSlots":4,"returnSlots":0},"@_burn_1612":{"entryPoint":1875,"id":1612,"parameterSlots":2,"returnSlots":0},"@_checkCrossChainLayer_17039":{"entryPoint":1776,"id":17039,"parameterSlots":0,"returnSlots":0},"@_checkInitializing_870":{"entryPoint":2540,"id":870,"parameterSlots":0,"returnSlots":0},"@_checkTokenUtils_17052":{"entryPoint":1929,"id":17052,"parameterSlots":0,"returnSlots":0},"@_getERC20Storage_1182":{"entryPoint":null,"id":1182,"parameterSlots":0,"returnSlots":1},"@_getInitializableStorage_947":{"entryPoint":null,"id":947,"parameterSlots":0,"returnSlots":1},"@_isInitializing_938":{"entryPoint":null,"id":938,"parameterSlots":0,"returnSlots":1},"@_mint_1579":{"entryPoint":1821,"id":1579,"parameterSlots":2,"returnSlots":0},"@_msgSender_2855":{"entryPoint":null,"id":2855,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1746":{"entryPoint":1574,"id":1746,"parameterSlots":3,"returnSlots":0},"@_transfer_1454":{"entryPoint":1681,"id":1454,"parameterSlots":3,"returnSlots":0},"@_update_1546":{"entryPoint":2222,"id":1546,"parameterSlots":3,"returnSlots":0},"@allowance_1351":{"entryPoint":1482,"id":1351,"parameterSlots":2,"returnSlots":1},"@approve_1375":{"entryPoint":741,"id":1375,"parameterSlots":2,"returnSlots":1},"@balanceOf_1303":{"entryPoint":null,"id":1303,"parameterSlots":1,"returnSlots":1},"@burn_17086":{"entryPoint":1138,"id":17086,"parameterSlots":2,"returnSlots":0},"@decimals_17098":{"entryPoint":null,"id":17098,"parameterSlots":0,"returnSlots":1},"@getInfo_17116":{"entryPoint":825,"id":17116,"parameterSlots":0,"returnSlots":1},"@initialize_17026":{"entryPoint":1170,"id":17026,"parameterSlots":4,"returnSlots":0},"@mint_17069":{"entryPoint":803,"id":17069,"parameterSlots":2,"returnSlots":0},"@name_1242":{"entryPoint":546,"id":1242,"parameterSlots":0,"returnSlots":1},"@symbol_1258":{"entryPoint":1075,"id":1258,"parameterSlots":0,"returnSlots":1},"@totalSupply_1283":{"entryPoint":null,"id":1283,"parameterSlots":0,"returnSlots":1},"@transferFrom_1407":{"entryPoint":767,"id":1407,"parameterSlots":3,"returnSlots":1},"@transfer_1327":{"entryPoint":1156,"id":1327,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2790,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string":{"entryPoint":3079,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3030,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3395,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2860,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2818,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_string_memory_ptr":{"entryPoint":3222,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_string":{"entryPoint":2694,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2764,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_TokenInfo_$15983_memory_ptr__to_t_struct$_TokenInfo_$15983_memory_ptr__fromStack_reversed":{"entryPoint":2921,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3766,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":3504,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":3575,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":3446,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":3057,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8613:89","nodeType":"YulBlock","src":"0:8613:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"64:350:89","nodeType":"YulBlock","src":"64:350:89","statements":[{"nativeSrc":"74:26:89","nodeType":"YulVariableDeclaration","src":"74:26:89","value":{"arguments":[{"name":"value","nativeSrc":"94:5:89","nodeType":"YulIdentifier","src":"94:5:89"}],"functionName":{"name":"mload","nativeSrc":"88:5:89","nodeType":"YulIdentifier","src":"88:5:89"},"nativeSrc":"88:12:89","nodeType":"YulFunctionCall","src":"88:12:89"},"variables":[{"name":"length","nativeSrc":"78:6:89","nodeType":"YulTypedName","src":"78:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"116:3:89","nodeType":"YulIdentifier","src":"116:3:89"},{"name":"length","nativeSrc":"121:6:89","nodeType":"YulIdentifier","src":"121:6:89"}],"functionName":{"name":"mstore","nativeSrc":"109:6:89","nodeType":"YulIdentifier","src":"109:6:89"},"nativeSrc":"109:19:89","nodeType":"YulFunctionCall","src":"109:19:89"},"nativeSrc":"109:19:89","nodeType":"YulExpressionStatement","src":"109:19:89"},{"nativeSrc":"137:10:89","nodeType":"YulVariableDeclaration","src":"137:10:89","value":{"kind":"number","nativeSrc":"146:1:89","nodeType":"YulLiteral","src":"146:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"141:1:89","nodeType":"YulTypedName","src":"141:1:89","type":""}]},{"body":{"nativeSrc":"208:87:89","nodeType":"YulBlock","src":"208:87:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"237:3:89","nodeType":"YulIdentifier","src":"237:3:89"},{"name":"i","nativeSrc":"242:1:89","nodeType":"YulIdentifier","src":"242:1:89"}],"functionName":{"name":"add","nativeSrc":"233:3:89","nodeType":"YulIdentifier","src":"233:3:89"},"nativeSrc":"233:11:89","nodeType":"YulFunctionCall","src":"233:11:89"},{"kind":"number","nativeSrc":"246:4:89","nodeType":"YulLiteral","src":"246:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"229:3:89","nodeType":"YulIdentifier","src":"229:3:89"},"nativeSrc":"229:22:89","nodeType":"YulFunctionCall","src":"229:22:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"267:5:89","nodeType":"YulIdentifier","src":"267:5:89"},{"name":"i","nativeSrc":"274:1:89","nodeType":"YulIdentifier","src":"274:1:89"}],"functionName":{"name":"add","nativeSrc":"263:3:89","nodeType":"YulIdentifier","src":"263:3:89"},"nativeSrc":"263:13:89","nodeType":"YulFunctionCall","src":"263:13:89"},{"kind":"number","nativeSrc":"278:4:89","nodeType":"YulLiteral","src":"278:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"259:3:89","nodeType":"YulIdentifier","src":"259:3:89"},"nativeSrc":"259:24:89","nodeType":"YulFunctionCall","src":"259:24:89"}],"functionName":{"name":"mload","nativeSrc":"253:5:89","nodeType":"YulIdentifier","src":"253:5:89"},"nativeSrc":"253:31:89","nodeType":"YulFunctionCall","src":"253:31:89"}],"functionName":{"name":"mstore","nativeSrc":"222:6:89","nodeType":"YulIdentifier","src":"222:6:89"},"nativeSrc":"222:63:89","nodeType":"YulFunctionCall","src":"222:63:89"},"nativeSrc":"222:63:89","nodeType":"YulExpressionStatement","src":"222:63:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"167:1:89","nodeType":"YulIdentifier","src":"167:1:89"},{"name":"length","nativeSrc":"170:6:89","nodeType":"YulIdentifier","src":"170:6:89"}],"functionName":{"name":"lt","nativeSrc":"164:2:89","nodeType":"YulIdentifier","src":"164:2:89"},"nativeSrc":"164:13:89","nodeType":"YulFunctionCall","src":"164:13:89"},"nativeSrc":"156:139:89","nodeType":"YulForLoop","post":{"nativeSrc":"178:21:89","nodeType":"YulBlock","src":"178:21:89","statements":[{"nativeSrc":"180:17:89","nodeType":"YulAssignment","src":"180:17:89","value":{"arguments":[{"name":"i","nativeSrc":"189:1:89","nodeType":"YulIdentifier","src":"189:1:89"},{"kind":"number","nativeSrc":"192:4:89","nodeType":"YulLiteral","src":"192:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"185:3:89","nodeType":"YulIdentifier","src":"185:3:89"},"nativeSrc":"185:12:89","nodeType":"YulFunctionCall","src":"185:12:89"},"variableNames":[{"name":"i","nativeSrc":"180:1:89","nodeType":"YulIdentifier","src":"180:1:89"}]}]},"pre":{"nativeSrc":"160:3:89","nodeType":"YulBlock","src":"160:3:89","statements":[]},"src":"156:139:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"319:3:89","nodeType":"YulIdentifier","src":"319:3:89"},{"name":"length","nativeSrc":"324:6:89","nodeType":"YulIdentifier","src":"324:6:89"}],"functionName":{"name":"add","nativeSrc":"315:3:89","nodeType":"YulIdentifier","src":"315:3:89"},"nativeSrc":"315:16:89","nodeType":"YulFunctionCall","src":"315:16:89"},{"kind":"number","nativeSrc":"333:4:89","nodeType":"YulLiteral","src":"333:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"311:3:89","nodeType":"YulIdentifier","src":"311:3:89"},"nativeSrc":"311:27:89","nodeType":"YulFunctionCall","src":"311:27:89"},{"kind":"number","nativeSrc":"340:1:89","nodeType":"YulLiteral","src":"340:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"304:6:89","nodeType":"YulIdentifier","src":"304:6:89"},"nativeSrc":"304:38:89","nodeType":"YulFunctionCall","src":"304:38:89"},"nativeSrc":"304:38:89","nodeType":"YulExpressionStatement","src":"304:38:89"},{"nativeSrc":"351:57:89","nodeType":"YulAssignment","src":"351:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"366:3:89","nodeType":"YulIdentifier","src":"366:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"379:6:89","nodeType":"YulIdentifier","src":"379:6:89"},{"kind":"number","nativeSrc":"387:2:89","nodeType":"YulLiteral","src":"387:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"375:3:89","nodeType":"YulIdentifier","src":"375:3:89"},"nativeSrc":"375:15:89","nodeType":"YulFunctionCall","src":"375:15:89"},{"arguments":[{"kind":"number","nativeSrc":"396:2:89","nodeType":"YulLiteral","src":"396:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"392:3:89","nodeType":"YulIdentifier","src":"392:3:89"},"nativeSrc":"392:7:89","nodeType":"YulFunctionCall","src":"392:7:89"}],"functionName":{"name":"and","nativeSrc":"371:3:89","nodeType":"YulIdentifier","src":"371:3:89"},"nativeSrc":"371:29:89","nodeType":"YulFunctionCall","src":"371:29:89"}],"functionName":{"name":"add","nativeSrc":"362:3:89","nodeType":"YulIdentifier","src":"362:3:89"},"nativeSrc":"362:39:89","nodeType":"YulFunctionCall","src":"362:39:89"},{"kind":"number","nativeSrc":"403:4:89","nodeType":"YulLiteral","src":"403:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"358:3:89","nodeType":"YulIdentifier","src":"358:3:89"},"nativeSrc":"358:50:89","nodeType":"YulFunctionCall","src":"358:50:89"},"variableNames":[{"name":"end","nativeSrc":"351:3:89","nodeType":"YulIdentifier","src":"351:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"14:400:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"41:5:89","nodeType":"YulTypedName","src":"41:5:89","type":""},{"name":"pos","nativeSrc":"48:3:89","nodeType":"YulTypedName","src":"48:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"56:3:89","nodeType":"YulTypedName","src":"56:3:89","type":""}],"src":"14:400:89"},{"body":{"nativeSrc":"540:99:89","nodeType":"YulBlock","src":"540:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"557:9:89","nodeType":"YulIdentifier","src":"557:9:89"},{"kind":"number","nativeSrc":"568:2:89","nodeType":"YulLiteral","src":"568:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"550:6:89","nodeType":"YulIdentifier","src":"550:6:89"},"nativeSrc":"550:21:89","nodeType":"YulFunctionCall","src":"550:21:89"},"nativeSrc":"550:21:89","nodeType":"YulExpressionStatement","src":"550:21:89"},{"nativeSrc":"580:53:89","nodeType":"YulAssignment","src":"580:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"606:6:89","nodeType":"YulIdentifier","src":"606:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"618:9:89","nodeType":"YulIdentifier","src":"618:9:89"},{"kind":"number","nativeSrc":"629:2:89","nodeType":"YulLiteral","src":"629:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"614:3:89","nodeType":"YulIdentifier","src":"614:3:89"},"nativeSrc":"614:18:89","nodeType":"YulFunctionCall","src":"614:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"588:17:89","nodeType":"YulIdentifier","src":"588:17:89"},"nativeSrc":"588:45:89","nodeType":"YulFunctionCall","src":"588:45:89"},"variableNames":[{"name":"tail","nativeSrc":"580:4:89","nodeType":"YulIdentifier","src":"580:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"419:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"509:9:89","nodeType":"YulTypedName","src":"509:9:89","type":""},{"name":"value0","nativeSrc":"520:6:89","nodeType":"YulTypedName","src":"520:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"531:4:89","nodeType":"YulTypedName","src":"531:4:89","type":""}],"src":"419:220:89"},{"body":{"nativeSrc":"693:124:89","nodeType":"YulBlock","src":"693:124:89","statements":[{"nativeSrc":"703:29:89","nodeType":"YulAssignment","src":"703:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"725:6:89","nodeType":"YulIdentifier","src":"725:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"712:12:89","nodeType":"YulIdentifier","src":"712:12:89"},"nativeSrc":"712:20:89","nodeType":"YulFunctionCall","src":"712:20:89"},"variableNames":[{"name":"value","nativeSrc":"703:5:89","nodeType":"YulIdentifier","src":"703:5:89"}]},{"body":{"nativeSrc":"795:16:89","nodeType":"YulBlock","src":"795:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"804:1:89","nodeType":"YulLiteral","src":"804:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"807:1:89","nodeType":"YulLiteral","src":"807:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"797:6:89","nodeType":"YulIdentifier","src":"797:6:89"},"nativeSrc":"797:12:89","nodeType":"YulFunctionCall","src":"797:12:89"},"nativeSrc":"797:12:89","nodeType":"YulExpressionStatement","src":"797:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"754:5:89","nodeType":"YulIdentifier","src":"754:5:89"},{"arguments":[{"name":"value","nativeSrc":"765:5:89","nodeType":"YulIdentifier","src":"765:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"780:3:89","nodeType":"YulLiteral","src":"780:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"785:1:89","nodeType":"YulLiteral","src":"785:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"776:3:89","nodeType":"YulIdentifier","src":"776:3:89"},"nativeSrc":"776:11:89","nodeType":"YulFunctionCall","src":"776:11:89"},{"kind":"number","nativeSrc":"789:1:89","nodeType":"YulLiteral","src":"789:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"772:3:89","nodeType":"YulIdentifier","src":"772:3:89"},"nativeSrc":"772:19:89","nodeType":"YulFunctionCall","src":"772:19:89"}],"functionName":{"name":"and","nativeSrc":"761:3:89","nodeType":"YulIdentifier","src":"761:3:89"},"nativeSrc":"761:31:89","nodeType":"YulFunctionCall","src":"761:31:89"}],"functionName":{"name":"eq","nativeSrc":"751:2:89","nodeType":"YulIdentifier","src":"751:2:89"},"nativeSrc":"751:42:89","nodeType":"YulFunctionCall","src":"751:42:89"}],"functionName":{"name":"iszero","nativeSrc":"744:6:89","nodeType":"YulIdentifier","src":"744:6:89"},"nativeSrc":"744:50:89","nodeType":"YulFunctionCall","src":"744:50:89"},"nativeSrc":"741:70:89","nodeType":"YulIf","src":"741:70:89"}]},"name":"abi_decode_address","nativeSrc":"644:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"672:6:89","nodeType":"YulTypedName","src":"672:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"683:5:89","nodeType":"YulTypedName","src":"683:5:89","type":""}],"src":"644:173:89"},{"body":{"nativeSrc":"909:213:89","nodeType":"YulBlock","src":"909:213:89","statements":[{"body":{"nativeSrc":"955:16:89","nodeType":"YulBlock","src":"955:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"964:1:89","nodeType":"YulLiteral","src":"964:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"967:1:89","nodeType":"YulLiteral","src":"967:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"957:6:89","nodeType":"YulIdentifier","src":"957:6:89"},"nativeSrc":"957:12:89","nodeType":"YulFunctionCall","src":"957:12:89"},"nativeSrc":"957:12:89","nodeType":"YulExpressionStatement","src":"957:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"930:7:89","nodeType":"YulIdentifier","src":"930:7:89"},{"name":"headStart","nativeSrc":"939:9:89","nodeType":"YulIdentifier","src":"939:9:89"}],"functionName":{"name":"sub","nativeSrc":"926:3:89","nodeType":"YulIdentifier","src":"926:3:89"},"nativeSrc":"926:23:89","nodeType":"YulFunctionCall","src":"926:23:89"},{"kind":"number","nativeSrc":"951:2:89","nodeType":"YulLiteral","src":"951:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"922:3:89","nodeType":"YulIdentifier","src":"922:3:89"},"nativeSrc":"922:32:89","nodeType":"YulFunctionCall","src":"922:32:89"},"nativeSrc":"919:52:89","nodeType":"YulIf","src":"919:52:89"},{"nativeSrc":"980:39:89","nodeType":"YulAssignment","src":"980:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1009:9:89","nodeType":"YulIdentifier","src":"1009:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"990:18:89","nodeType":"YulIdentifier","src":"990:18:89"},"nativeSrc":"990:29:89","nodeType":"YulFunctionCall","src":"990:29:89"},"variableNames":[{"name":"value0","nativeSrc":"980:6:89","nodeType":"YulIdentifier","src":"980:6:89"}]},{"nativeSrc":"1028:14:89","nodeType":"YulVariableDeclaration","src":"1028:14:89","value":{"kind":"number","nativeSrc":"1041:1:89","nodeType":"YulLiteral","src":"1041:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1032:5:89","nodeType":"YulTypedName","src":"1032:5:89","type":""}]},{"nativeSrc":"1051:41:89","nodeType":"YulAssignment","src":"1051:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1077:9:89","nodeType":"YulIdentifier","src":"1077:9:89"},{"kind":"number","nativeSrc":"1088:2:89","nodeType":"YulLiteral","src":"1088:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1073:3:89","nodeType":"YulIdentifier","src":"1073:3:89"},"nativeSrc":"1073:18:89","nodeType":"YulFunctionCall","src":"1073:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1060:12:89","nodeType":"YulIdentifier","src":"1060:12:89"},"nativeSrc":"1060:32:89","nodeType":"YulFunctionCall","src":"1060:32:89"},"variableNames":[{"name":"value","nativeSrc":"1051:5:89","nodeType":"YulIdentifier","src":"1051:5:89"}]},{"nativeSrc":"1101:15:89","nodeType":"YulAssignment","src":"1101:15:89","value":{"name":"value","nativeSrc":"1111:5:89","nodeType":"YulIdentifier","src":"1111:5:89"},"variableNames":[{"name":"value1","nativeSrc":"1101:6:89","nodeType":"YulIdentifier","src":"1101:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"822:300:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"867:9:89","nodeType":"YulTypedName","src":"867:9:89","type":""},{"name":"dataEnd","nativeSrc":"878:7:89","nodeType":"YulTypedName","src":"878:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"890:6:89","nodeType":"YulTypedName","src":"890:6:89","type":""},{"name":"value1","nativeSrc":"898:6:89","nodeType":"YulTypedName","src":"898:6:89","type":""}],"src":"822:300:89"},{"body":{"nativeSrc":"1222:92:89","nodeType":"YulBlock","src":"1222:92:89","statements":[{"nativeSrc":"1232:26:89","nodeType":"YulAssignment","src":"1232:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1244:9:89","nodeType":"YulIdentifier","src":"1244:9:89"},{"kind":"number","nativeSrc":"1255:2:89","nodeType":"YulLiteral","src":"1255:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1240:3:89","nodeType":"YulIdentifier","src":"1240:3:89"},"nativeSrc":"1240:18:89","nodeType":"YulFunctionCall","src":"1240:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1232:4:89","nodeType":"YulIdentifier","src":"1232:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1274:9:89","nodeType":"YulIdentifier","src":"1274:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1299:6:89","nodeType":"YulIdentifier","src":"1299:6:89"}],"functionName":{"name":"iszero","nativeSrc":"1292:6:89","nodeType":"YulIdentifier","src":"1292:6:89"},"nativeSrc":"1292:14:89","nodeType":"YulFunctionCall","src":"1292:14:89"}],"functionName":{"name":"iszero","nativeSrc":"1285:6:89","nodeType":"YulIdentifier","src":"1285:6:89"},"nativeSrc":"1285:22:89","nodeType":"YulFunctionCall","src":"1285:22:89"}],"functionName":{"name":"mstore","nativeSrc":"1267:6:89","nodeType":"YulIdentifier","src":"1267:6:89"},"nativeSrc":"1267:41:89","nodeType":"YulFunctionCall","src":"1267:41:89"},"nativeSrc":"1267:41:89","nodeType":"YulExpressionStatement","src":"1267:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1127:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1191:9:89","nodeType":"YulTypedName","src":"1191:9:89","type":""},{"name":"value0","nativeSrc":"1202:6:89","nodeType":"YulTypedName","src":"1202:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1213:4:89","nodeType":"YulTypedName","src":"1213:4:89","type":""}],"src":"1127:187:89"},{"body":{"nativeSrc":"1420:76:89","nodeType":"YulBlock","src":"1420:76:89","statements":[{"nativeSrc":"1430:26:89","nodeType":"YulAssignment","src":"1430:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1442:9:89","nodeType":"YulIdentifier","src":"1442:9:89"},{"kind":"number","nativeSrc":"1453:2:89","nodeType":"YulLiteral","src":"1453:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1438:3:89","nodeType":"YulIdentifier","src":"1438:3:89"},"nativeSrc":"1438:18:89","nodeType":"YulFunctionCall","src":"1438:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1430:4:89","nodeType":"YulIdentifier","src":"1430:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1472:9:89","nodeType":"YulIdentifier","src":"1472:9:89"},{"name":"value0","nativeSrc":"1483:6:89","nodeType":"YulIdentifier","src":"1483:6:89"}],"functionName":{"name":"mstore","nativeSrc":"1465:6:89","nodeType":"YulIdentifier","src":"1465:6:89"},"nativeSrc":"1465:25:89","nodeType":"YulFunctionCall","src":"1465:25:89"},"nativeSrc":"1465:25:89","nodeType":"YulExpressionStatement","src":"1465:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1319:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1389:9:89","nodeType":"YulTypedName","src":"1389:9:89","type":""},{"name":"value0","nativeSrc":"1400:6:89","nodeType":"YulTypedName","src":"1400:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1411:4:89","nodeType":"YulTypedName","src":"1411:4:89","type":""}],"src":"1319:177:89"},{"body":{"nativeSrc":"1605:270:89","nodeType":"YulBlock","src":"1605:270:89","statements":[{"body":{"nativeSrc":"1651:16:89","nodeType":"YulBlock","src":"1651:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1660:1:89","nodeType":"YulLiteral","src":"1660:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1663:1:89","nodeType":"YulLiteral","src":"1663:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1653:6:89","nodeType":"YulIdentifier","src":"1653:6:89"},"nativeSrc":"1653:12:89","nodeType":"YulFunctionCall","src":"1653:12:89"},"nativeSrc":"1653:12:89","nodeType":"YulExpressionStatement","src":"1653:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1626:7:89","nodeType":"YulIdentifier","src":"1626:7:89"},{"name":"headStart","nativeSrc":"1635:9:89","nodeType":"YulIdentifier","src":"1635:9:89"}],"functionName":{"name":"sub","nativeSrc":"1622:3:89","nodeType":"YulIdentifier","src":"1622:3:89"},"nativeSrc":"1622:23:89","nodeType":"YulFunctionCall","src":"1622:23:89"},{"kind":"number","nativeSrc":"1647:2:89","nodeType":"YulLiteral","src":"1647:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1618:3:89","nodeType":"YulIdentifier","src":"1618:3:89"},"nativeSrc":"1618:32:89","nodeType":"YulFunctionCall","src":"1618:32:89"},"nativeSrc":"1615:52:89","nodeType":"YulIf","src":"1615:52:89"},{"nativeSrc":"1676:39:89","nodeType":"YulAssignment","src":"1676:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1705:9:89","nodeType":"YulIdentifier","src":"1705:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1686:18:89","nodeType":"YulIdentifier","src":"1686:18:89"},"nativeSrc":"1686:29:89","nodeType":"YulFunctionCall","src":"1686:29:89"},"variableNames":[{"name":"value0","nativeSrc":"1676:6:89","nodeType":"YulIdentifier","src":"1676:6:89"}]},{"nativeSrc":"1724:48:89","nodeType":"YulAssignment","src":"1724:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1757:9:89","nodeType":"YulIdentifier","src":"1757:9:89"},{"kind":"number","nativeSrc":"1768:2:89","nodeType":"YulLiteral","src":"1768:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1753:3:89","nodeType":"YulIdentifier","src":"1753:3:89"},"nativeSrc":"1753:18:89","nodeType":"YulFunctionCall","src":"1753:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1734:18:89","nodeType":"YulIdentifier","src":"1734:18:89"},"nativeSrc":"1734:38:89","nodeType":"YulFunctionCall","src":"1734:38:89"},"variableNames":[{"name":"value1","nativeSrc":"1724:6:89","nodeType":"YulIdentifier","src":"1724:6:89"}]},{"nativeSrc":"1781:14:89","nodeType":"YulVariableDeclaration","src":"1781:14:89","value":{"kind":"number","nativeSrc":"1794:1:89","nodeType":"YulLiteral","src":"1794:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1785:5:89","nodeType":"YulTypedName","src":"1785:5:89","type":""}]},{"nativeSrc":"1804:41:89","nodeType":"YulAssignment","src":"1804:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1830:9:89","nodeType":"YulIdentifier","src":"1830:9:89"},{"kind":"number","nativeSrc":"1841:2:89","nodeType":"YulLiteral","src":"1841:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1826:3:89","nodeType":"YulIdentifier","src":"1826:3:89"},"nativeSrc":"1826:18:89","nodeType":"YulFunctionCall","src":"1826:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1813:12:89","nodeType":"YulIdentifier","src":"1813:12:89"},"nativeSrc":"1813:32:89","nodeType":"YulFunctionCall","src":"1813:32:89"},"variableNames":[{"name":"value","nativeSrc":"1804:5:89","nodeType":"YulIdentifier","src":"1804:5:89"}]},{"nativeSrc":"1854:15:89","nodeType":"YulAssignment","src":"1854:15:89","value":{"name":"value","nativeSrc":"1864:5:89","nodeType":"YulIdentifier","src":"1864:5:89"},"variableNames":[{"name":"value2","nativeSrc":"1854:6:89","nodeType":"YulIdentifier","src":"1854:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"1501:374:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1555:9:89","nodeType":"YulTypedName","src":"1555:9:89","type":""},{"name":"dataEnd","nativeSrc":"1566:7:89","nodeType":"YulTypedName","src":"1566:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1578:6:89","nodeType":"YulTypedName","src":"1578:6:89","type":""},{"name":"value1","nativeSrc":"1586:6:89","nodeType":"YulTypedName","src":"1586:6:89","type":""},{"name":"value2","nativeSrc":"1594:6:89","nodeType":"YulTypedName","src":"1594:6:89","type":""}],"src":"1501:374:89"},{"body":{"nativeSrc":"1977:87:89","nodeType":"YulBlock","src":"1977:87:89","statements":[{"nativeSrc":"1987:26:89","nodeType":"YulAssignment","src":"1987:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1999:9:89","nodeType":"YulIdentifier","src":"1999:9:89"},{"kind":"number","nativeSrc":"2010:2:89","nodeType":"YulLiteral","src":"2010:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1995:3:89","nodeType":"YulIdentifier","src":"1995:3:89"},"nativeSrc":"1995:18:89","nodeType":"YulFunctionCall","src":"1995:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1987:4:89","nodeType":"YulIdentifier","src":"1987:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2029:9:89","nodeType":"YulIdentifier","src":"2029:9:89"},{"arguments":[{"name":"value0","nativeSrc":"2044:6:89","nodeType":"YulIdentifier","src":"2044:6:89"},{"kind":"number","nativeSrc":"2052:4:89","nodeType":"YulLiteral","src":"2052:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2040:3:89","nodeType":"YulIdentifier","src":"2040:3:89"},"nativeSrc":"2040:17:89","nodeType":"YulFunctionCall","src":"2040:17:89"}],"functionName":{"name":"mstore","nativeSrc":"2022:6:89","nodeType":"YulIdentifier","src":"2022:6:89"},"nativeSrc":"2022:36:89","nodeType":"YulFunctionCall","src":"2022:36:89"},"nativeSrc":"2022:36:89","nodeType":"YulExpressionStatement","src":"2022:36:89"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1880:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1946:9:89","nodeType":"YulTypedName","src":"1946:9:89","type":""},{"name":"value0","nativeSrc":"1957:6:89","nodeType":"YulTypedName","src":"1957:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1968:4:89","nodeType":"YulTypedName","src":"1968:4:89","type":""}],"src":"1880:184:89"},{"body":{"nativeSrc":"2226:641:89","nodeType":"YulBlock","src":"2226:641:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2243:9:89","nodeType":"YulIdentifier","src":"2243:9:89"},{"kind":"number","nativeSrc":"2254:2:89","nodeType":"YulLiteral","src":"2254:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2236:6:89","nodeType":"YulIdentifier","src":"2236:6:89"},"nativeSrc":"2236:21:89","nodeType":"YulFunctionCall","src":"2236:21:89"},"nativeSrc":"2236:21:89","nodeType":"YulExpressionStatement","src":"2236:21:89"},{"nativeSrc":"2266:33:89","nodeType":"YulVariableDeclaration","src":"2266:33:89","value":{"arguments":[{"name":"value0","nativeSrc":"2292:6:89","nodeType":"YulIdentifier","src":"2292:6:89"}],"functionName":{"name":"mload","nativeSrc":"2286:5:89","nodeType":"YulIdentifier","src":"2286:5:89"},"nativeSrc":"2286:13:89","nodeType":"YulFunctionCall","src":"2286:13:89"},"variables":[{"name":"memberValue0","nativeSrc":"2270:12:89","nodeType":"YulTypedName","src":"2270:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2319:9:89","nodeType":"YulIdentifier","src":"2319:9:89"},{"kind":"number","nativeSrc":"2330:2:89","nodeType":"YulLiteral","src":"2330:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2315:3:89","nodeType":"YulIdentifier","src":"2315:3:89"},"nativeSrc":"2315:18:89","nodeType":"YulFunctionCall","src":"2315:18:89"},{"kind":"number","nativeSrc":"2335:4:89","nodeType":"YulLiteral","src":"2335:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"2308:6:89","nodeType":"YulIdentifier","src":"2308:6:89"},"nativeSrc":"2308:32:89","nodeType":"YulFunctionCall","src":"2308:32:89"},"nativeSrc":"2308:32:89","nodeType":"YulExpressionStatement","src":"2308:32:89"},{"nativeSrc":"2349:66:89","nodeType":"YulVariableDeclaration","src":"2349:66:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"2381:12:89","nodeType":"YulIdentifier","src":"2381:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"2399:9:89","nodeType":"YulIdentifier","src":"2399:9:89"},{"kind":"number","nativeSrc":"2410:3:89","nodeType":"YulLiteral","src":"2410:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"2395:3:89","nodeType":"YulIdentifier","src":"2395:3:89"},"nativeSrc":"2395:19:89","nodeType":"YulFunctionCall","src":"2395:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"2363:17:89","nodeType":"YulIdentifier","src":"2363:17:89"},"nativeSrc":"2363:52:89","nodeType":"YulFunctionCall","src":"2363:52:89"},"variables":[{"name":"tail_1","nativeSrc":"2353:6:89","nodeType":"YulTypedName","src":"2353:6:89","type":""}]},{"nativeSrc":"2424:44:89","nodeType":"YulVariableDeclaration","src":"2424:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2456:6:89","nodeType":"YulIdentifier","src":"2456:6:89"},{"kind":"number","nativeSrc":"2464:2:89","nodeType":"YulLiteral","src":"2464:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2452:3:89","nodeType":"YulIdentifier","src":"2452:3:89"},"nativeSrc":"2452:15:89","nodeType":"YulFunctionCall","src":"2452:15:89"}],"functionName":{"name":"mload","nativeSrc":"2446:5:89","nodeType":"YulIdentifier","src":"2446:5:89"},"nativeSrc":"2446:22:89","nodeType":"YulFunctionCall","src":"2446:22:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"2428:14:89","nodeType":"YulTypedName","src":"2428:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2488:9:89","nodeType":"YulIdentifier","src":"2488:9:89"},{"kind":"number","nativeSrc":"2499:2:89","nodeType":"YulLiteral","src":"2499:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2484:3:89","nodeType":"YulIdentifier","src":"2484:3:89"},"nativeSrc":"2484:18:89","nodeType":"YulFunctionCall","src":"2484:18:89"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"2512:6:89","nodeType":"YulIdentifier","src":"2512:6:89"},{"name":"headStart","nativeSrc":"2520:9:89","nodeType":"YulIdentifier","src":"2520:9:89"}],"functionName":{"name":"sub","nativeSrc":"2508:3:89","nodeType":"YulIdentifier","src":"2508:3:89"},"nativeSrc":"2508:22:89","nodeType":"YulFunctionCall","src":"2508:22:89"},{"arguments":[{"kind":"number","nativeSrc":"2536:2:89","nodeType":"YulLiteral","src":"2536:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2532:3:89","nodeType":"YulIdentifier","src":"2532:3:89"},"nativeSrc":"2532:7:89","nodeType":"YulFunctionCall","src":"2532:7:89"}],"functionName":{"name":"add","nativeSrc":"2504:3:89","nodeType":"YulIdentifier","src":"2504:3:89"},"nativeSrc":"2504:36:89","nodeType":"YulFunctionCall","src":"2504:36:89"}],"functionName":{"name":"mstore","nativeSrc":"2477:6:89","nodeType":"YulIdentifier","src":"2477:6:89"},"nativeSrc":"2477:64:89","nodeType":"YulFunctionCall","src":"2477:64:89"},"nativeSrc":"2477:64:89","nodeType":"YulExpressionStatement","src":"2477:64:89"},{"nativeSrc":"2550:55:89","nodeType":"YulVariableDeclaration","src":"2550:55:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"2582:14:89","nodeType":"YulIdentifier","src":"2582:14:89"},{"name":"tail_1","nativeSrc":"2598:6:89","nodeType":"YulIdentifier","src":"2598:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"2564:17:89","nodeType":"YulIdentifier","src":"2564:17:89"},"nativeSrc":"2564:41:89","nodeType":"YulFunctionCall","src":"2564:41:89"},"variables":[{"name":"tail_2","nativeSrc":"2554:6:89","nodeType":"YulTypedName","src":"2554:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:89","nodeType":"YulIdentifier","src":"2625:9:89"},{"kind":"number","nativeSrc":"2636:2:89","nodeType":"YulLiteral","src":"2636:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2621:3:89","nodeType":"YulIdentifier","src":"2621:3:89"},"nativeSrc":"2621:18:89","nodeType":"YulFunctionCall","src":"2621:18:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2655:6:89","nodeType":"YulIdentifier","src":"2655:6:89"},{"kind":"number","nativeSrc":"2663:2:89","nodeType":"YulLiteral","src":"2663:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2651:3:89","nodeType":"YulIdentifier","src":"2651:3:89"},"nativeSrc":"2651:15:89","nodeType":"YulFunctionCall","src":"2651:15:89"}],"functionName":{"name":"mload","nativeSrc":"2645:5:89","nodeType":"YulIdentifier","src":"2645:5:89"},"nativeSrc":"2645:22:89","nodeType":"YulFunctionCall","src":"2645:22:89"},{"kind":"number","nativeSrc":"2669:4:89","nodeType":"YulLiteral","src":"2669:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2641:3:89","nodeType":"YulIdentifier","src":"2641:3:89"},"nativeSrc":"2641:33:89","nodeType":"YulFunctionCall","src":"2641:33:89"}],"functionName":{"name":"mstore","nativeSrc":"2614:6:89","nodeType":"YulIdentifier","src":"2614:6:89"},"nativeSrc":"2614:61:89","nodeType":"YulFunctionCall","src":"2614:61:89"},"nativeSrc":"2614:61:89","nodeType":"YulExpressionStatement","src":"2614:61:89"},{"nativeSrc":"2684:44:89","nodeType":"YulVariableDeclaration","src":"2684:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2716:6:89","nodeType":"YulIdentifier","src":"2716:6:89"},{"kind":"number","nativeSrc":"2724:2:89","nodeType":"YulLiteral","src":"2724:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2712:3:89","nodeType":"YulIdentifier","src":"2712:3:89"},"nativeSrc":"2712:15:89","nodeType":"YulFunctionCall","src":"2712:15:89"}],"functionName":{"name":"mload","nativeSrc":"2706:5:89","nodeType":"YulIdentifier","src":"2706:5:89"},"nativeSrc":"2706:22:89","nodeType":"YulFunctionCall","src":"2706:22:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"2688:14:89","nodeType":"YulTypedName","src":"2688:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2748:9:89","nodeType":"YulIdentifier","src":"2748:9:89"},{"kind":"number","nativeSrc":"2759:4:89","nodeType":"YulLiteral","src":"2759:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"2744:3:89","nodeType":"YulIdentifier","src":"2744:3:89"},"nativeSrc":"2744:20:89","nodeType":"YulFunctionCall","src":"2744:20:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"2774:6:89","nodeType":"YulIdentifier","src":"2774:6:89"},{"name":"headStart","nativeSrc":"2782:9:89","nodeType":"YulIdentifier","src":"2782:9:89"}],"functionName":{"name":"sub","nativeSrc":"2770:3:89","nodeType":"YulIdentifier","src":"2770:3:89"},"nativeSrc":"2770:22:89","nodeType":"YulFunctionCall","src":"2770:22:89"},{"arguments":[{"kind":"number","nativeSrc":"2798:2:89","nodeType":"YulLiteral","src":"2798:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2794:3:89","nodeType":"YulIdentifier","src":"2794:3:89"},"nativeSrc":"2794:7:89","nodeType":"YulFunctionCall","src":"2794:7:89"}],"functionName":{"name":"add","nativeSrc":"2766:3:89","nodeType":"YulIdentifier","src":"2766:3:89"},"nativeSrc":"2766:36:89","nodeType":"YulFunctionCall","src":"2766:36:89"}],"functionName":{"name":"mstore","nativeSrc":"2737:6:89","nodeType":"YulIdentifier","src":"2737:6:89"},"nativeSrc":"2737:66:89","nodeType":"YulFunctionCall","src":"2737:66:89"},"nativeSrc":"2737:66:89","nodeType":"YulExpressionStatement","src":"2737:66:89"},{"nativeSrc":"2812:49:89","nodeType":"YulAssignment","src":"2812:49:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"2838:14:89","nodeType":"YulIdentifier","src":"2838:14:89"},{"name":"tail_2","nativeSrc":"2854:6:89","nodeType":"YulIdentifier","src":"2854:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"2820:17:89","nodeType":"YulIdentifier","src":"2820:17:89"},"nativeSrc":"2820:41:89","nodeType":"YulFunctionCall","src":"2820:41:89"},"variableNames":[{"name":"tail","nativeSrc":"2812:4:89","nodeType":"YulIdentifier","src":"2812:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_TokenInfo_$15983_memory_ptr__to_t_struct$_TokenInfo_$15983_memory_ptr__fromStack_reversed","nativeSrc":"2069:798:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2195:9:89","nodeType":"YulTypedName","src":"2195:9:89","type":""},{"name":"value0","nativeSrc":"2206:6:89","nodeType":"YulTypedName","src":"2206:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2217:4:89","nodeType":"YulTypedName","src":"2217:4:89","type":""}],"src":"2069:798:89"},{"body":{"nativeSrc":"2942:116:89","nodeType":"YulBlock","src":"2942:116:89","statements":[{"body":{"nativeSrc":"2988:16:89","nodeType":"YulBlock","src":"2988:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2997:1:89","nodeType":"YulLiteral","src":"2997:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3000:1:89","nodeType":"YulLiteral","src":"3000:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2990:6:89","nodeType":"YulIdentifier","src":"2990:6:89"},"nativeSrc":"2990:12:89","nodeType":"YulFunctionCall","src":"2990:12:89"},"nativeSrc":"2990:12:89","nodeType":"YulExpressionStatement","src":"2990:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2963:7:89","nodeType":"YulIdentifier","src":"2963:7:89"},{"name":"headStart","nativeSrc":"2972:9:89","nodeType":"YulIdentifier","src":"2972:9:89"}],"functionName":{"name":"sub","nativeSrc":"2959:3:89","nodeType":"YulIdentifier","src":"2959:3:89"},"nativeSrc":"2959:23:89","nodeType":"YulFunctionCall","src":"2959:23:89"},{"kind":"number","nativeSrc":"2984:2:89","nodeType":"YulLiteral","src":"2984:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2955:3:89","nodeType":"YulIdentifier","src":"2955:3:89"},"nativeSrc":"2955:32:89","nodeType":"YulFunctionCall","src":"2955:32:89"},"nativeSrc":"2952:52:89","nodeType":"YulIf","src":"2952:52:89"},{"nativeSrc":"3013:39:89","nodeType":"YulAssignment","src":"3013:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3042:9:89","nodeType":"YulIdentifier","src":"3042:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3023:18:89","nodeType":"YulIdentifier","src":"3023:18:89"},"nativeSrc":"3023:29:89","nodeType":"YulFunctionCall","src":"3023:29:89"},"variableNames":[{"name":"value0","nativeSrc":"3013:6:89","nodeType":"YulIdentifier","src":"3013:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2872:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2908:9:89","nodeType":"YulTypedName","src":"2908:9:89","type":""},{"name":"dataEnd","nativeSrc":"2919:7:89","nodeType":"YulTypedName","src":"2919:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2931:6:89","nodeType":"YulTypedName","src":"2931:6:89","type":""}],"src":"2872:186:89"},{"body":{"nativeSrc":"3095:95:89","nodeType":"YulBlock","src":"3095:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3112:1:89","nodeType":"YulLiteral","src":"3112:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3119:3:89","nodeType":"YulLiteral","src":"3119:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"3124:10:89","nodeType":"YulLiteral","src":"3124:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3115:3:89","nodeType":"YulIdentifier","src":"3115:3:89"},"nativeSrc":"3115:20:89","nodeType":"YulFunctionCall","src":"3115:20:89"}],"functionName":{"name":"mstore","nativeSrc":"3105:6:89","nodeType":"YulIdentifier","src":"3105:6:89"},"nativeSrc":"3105:31:89","nodeType":"YulFunctionCall","src":"3105:31:89"},"nativeSrc":"3105:31:89","nodeType":"YulExpressionStatement","src":"3105:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3152:1:89","nodeType":"YulLiteral","src":"3152:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"3155:4:89","nodeType":"YulLiteral","src":"3155:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3145:6:89","nodeType":"YulIdentifier","src":"3145:6:89"},"nativeSrc":"3145:15:89","nodeType":"YulFunctionCall","src":"3145:15:89"},"nativeSrc":"3145:15:89","nodeType":"YulExpressionStatement","src":"3145:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3176:1:89","nodeType":"YulLiteral","src":"3176:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3179:4:89","nodeType":"YulLiteral","src":"3179:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3169:6:89","nodeType":"YulIdentifier","src":"3169:6:89"},"nativeSrc":"3169:15:89","nodeType":"YulFunctionCall","src":"3169:15:89"},"nativeSrc":"3169:15:89","nodeType":"YulExpressionStatement","src":"3169:15:89"}]},"name":"panic_error_0x41","nativeSrc":"3063:127:89","nodeType":"YulFunctionDefinition","src":"3063:127:89"},{"body":{"nativeSrc":"3248:673:89","nodeType":"YulBlock","src":"3248:673:89","statements":[{"body":{"nativeSrc":"3297:16:89","nodeType":"YulBlock","src":"3297:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3306:1:89","nodeType":"YulLiteral","src":"3306:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3309:1:89","nodeType":"YulLiteral","src":"3309:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3299:6:89","nodeType":"YulIdentifier","src":"3299:6:89"},"nativeSrc":"3299:12:89","nodeType":"YulFunctionCall","src":"3299:12:89"},"nativeSrc":"3299:12:89","nodeType":"YulExpressionStatement","src":"3299:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3276:6:89","nodeType":"YulIdentifier","src":"3276:6:89"},{"kind":"number","nativeSrc":"3284:4:89","nodeType":"YulLiteral","src":"3284:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3272:3:89","nodeType":"YulIdentifier","src":"3272:3:89"},"nativeSrc":"3272:17:89","nodeType":"YulFunctionCall","src":"3272:17:89"},{"name":"end","nativeSrc":"3291:3:89","nodeType":"YulIdentifier","src":"3291:3:89"}],"functionName":{"name":"slt","nativeSrc":"3268:3:89","nodeType":"YulIdentifier","src":"3268:3:89"},"nativeSrc":"3268:27:89","nodeType":"YulFunctionCall","src":"3268:27:89"}],"functionName":{"name":"iszero","nativeSrc":"3261:6:89","nodeType":"YulIdentifier","src":"3261:6:89"},"nativeSrc":"3261:35:89","nodeType":"YulFunctionCall","src":"3261:35:89"},"nativeSrc":"3258:55:89","nodeType":"YulIf","src":"3258:55:89"},{"nativeSrc":"3322:34:89","nodeType":"YulVariableDeclaration","src":"3322:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"3349:6:89","nodeType":"YulIdentifier","src":"3349:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"3336:12:89","nodeType":"YulIdentifier","src":"3336:12:89"},"nativeSrc":"3336:20:89","nodeType":"YulFunctionCall","src":"3336:20:89"},"variables":[{"name":"length","nativeSrc":"3326:6:89","nodeType":"YulTypedName","src":"3326:6:89","type":""}]},{"body":{"nativeSrc":"3399:22:89","nodeType":"YulBlock","src":"3399:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3401:16:89","nodeType":"YulIdentifier","src":"3401:16:89"},"nativeSrc":"3401:18:89","nodeType":"YulFunctionCall","src":"3401:18:89"},"nativeSrc":"3401:18:89","nodeType":"YulExpressionStatement","src":"3401:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3371:6:89","nodeType":"YulIdentifier","src":"3371:6:89"},{"kind":"number","nativeSrc":"3379:18:89","nodeType":"YulLiteral","src":"3379:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3368:2:89","nodeType":"YulIdentifier","src":"3368:2:89"},"nativeSrc":"3368:30:89","nodeType":"YulFunctionCall","src":"3368:30:89"},"nativeSrc":"3365:56:89","nodeType":"YulIf","src":"3365:56:89"},{"nativeSrc":"3430:23:89","nodeType":"YulVariableDeclaration","src":"3430:23:89","value":{"arguments":[{"kind":"number","nativeSrc":"3450:2:89","nodeType":"YulLiteral","src":"3450:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"3444:5:89","nodeType":"YulIdentifier","src":"3444:5:89"},"nativeSrc":"3444:9:89","nodeType":"YulFunctionCall","src":"3444:9:89"},"variables":[{"name":"memPtr","nativeSrc":"3434:6:89","nodeType":"YulTypedName","src":"3434:6:89","type":""}]},{"nativeSrc":"3462:85:89","nodeType":"YulVariableDeclaration","src":"3462:85:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"3484:6:89","nodeType":"YulIdentifier","src":"3484:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3508:6:89","nodeType":"YulIdentifier","src":"3508:6:89"},{"kind":"number","nativeSrc":"3516:4:89","nodeType":"YulLiteral","src":"3516:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3504:3:89","nodeType":"YulIdentifier","src":"3504:3:89"},"nativeSrc":"3504:17:89","nodeType":"YulFunctionCall","src":"3504:17:89"},{"arguments":[{"kind":"number","nativeSrc":"3527:2:89","nodeType":"YulLiteral","src":"3527:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3523:3:89","nodeType":"YulIdentifier","src":"3523:3:89"},"nativeSrc":"3523:7:89","nodeType":"YulFunctionCall","src":"3523:7:89"}],"functionName":{"name":"and","nativeSrc":"3500:3:89","nodeType":"YulIdentifier","src":"3500:3:89"},"nativeSrc":"3500:31:89","nodeType":"YulFunctionCall","src":"3500:31:89"},{"kind":"number","nativeSrc":"3533:2:89","nodeType":"YulLiteral","src":"3533:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"3496:3:89","nodeType":"YulIdentifier","src":"3496:3:89"},"nativeSrc":"3496:40:89","nodeType":"YulFunctionCall","src":"3496:40:89"},{"arguments":[{"kind":"number","nativeSrc":"3542:2:89","nodeType":"YulLiteral","src":"3542:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3538:3:89","nodeType":"YulIdentifier","src":"3538:3:89"},"nativeSrc":"3538:7:89","nodeType":"YulFunctionCall","src":"3538:7:89"}],"functionName":{"name":"and","nativeSrc":"3492:3:89","nodeType":"YulIdentifier","src":"3492:3:89"},"nativeSrc":"3492:54:89","nodeType":"YulFunctionCall","src":"3492:54:89"}],"functionName":{"name":"add","nativeSrc":"3480:3:89","nodeType":"YulIdentifier","src":"3480:3:89"},"nativeSrc":"3480:67:89","nodeType":"YulFunctionCall","src":"3480:67:89"},"variables":[{"name":"newFreePtr","nativeSrc":"3466:10:89","nodeType":"YulTypedName","src":"3466:10:89","type":""}]},{"body":{"nativeSrc":"3622:22:89","nodeType":"YulBlock","src":"3622:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3624:16:89","nodeType":"YulIdentifier","src":"3624:16:89"},"nativeSrc":"3624:18:89","nodeType":"YulFunctionCall","src":"3624:18:89"},"nativeSrc":"3624:18:89","nodeType":"YulExpressionStatement","src":"3624:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3565:10:89","nodeType":"YulIdentifier","src":"3565:10:89"},{"kind":"number","nativeSrc":"3577:18:89","nodeType":"YulLiteral","src":"3577:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3562:2:89","nodeType":"YulIdentifier","src":"3562:2:89"},"nativeSrc":"3562:34:89","nodeType":"YulFunctionCall","src":"3562:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3601:10:89","nodeType":"YulIdentifier","src":"3601:10:89"},{"name":"memPtr","nativeSrc":"3613:6:89","nodeType":"YulIdentifier","src":"3613:6:89"}],"functionName":{"name":"lt","nativeSrc":"3598:2:89","nodeType":"YulIdentifier","src":"3598:2:89"},"nativeSrc":"3598:22:89","nodeType":"YulFunctionCall","src":"3598:22:89"}],"functionName":{"name":"or","nativeSrc":"3559:2:89","nodeType":"YulIdentifier","src":"3559:2:89"},"nativeSrc":"3559:62:89","nodeType":"YulFunctionCall","src":"3559:62:89"},"nativeSrc":"3556:88:89","nodeType":"YulIf","src":"3556:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3660:2:89","nodeType":"YulLiteral","src":"3660:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3664:10:89","nodeType":"YulIdentifier","src":"3664:10:89"}],"functionName":{"name":"mstore","nativeSrc":"3653:6:89","nodeType":"YulIdentifier","src":"3653:6:89"},"nativeSrc":"3653:22:89","nodeType":"YulFunctionCall","src":"3653:22:89"},"nativeSrc":"3653:22:89","nodeType":"YulExpressionStatement","src":"3653:22:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3691:6:89","nodeType":"YulIdentifier","src":"3691:6:89"},{"name":"length","nativeSrc":"3699:6:89","nodeType":"YulIdentifier","src":"3699:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3684:6:89","nodeType":"YulIdentifier","src":"3684:6:89"},"nativeSrc":"3684:22:89","nodeType":"YulFunctionCall","src":"3684:22:89"},"nativeSrc":"3684:22:89","nodeType":"YulExpressionStatement","src":"3684:22:89"},{"body":{"nativeSrc":"3758:16:89","nodeType":"YulBlock","src":"3758:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3767:1:89","nodeType":"YulLiteral","src":"3767:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3770:1:89","nodeType":"YulLiteral","src":"3770:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3760:6:89","nodeType":"YulIdentifier","src":"3760:6:89"},"nativeSrc":"3760:12:89","nodeType":"YulFunctionCall","src":"3760:12:89"},"nativeSrc":"3760:12:89","nodeType":"YulExpressionStatement","src":"3760:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3729:6:89","nodeType":"YulIdentifier","src":"3729:6:89"},{"name":"length","nativeSrc":"3737:6:89","nodeType":"YulIdentifier","src":"3737:6:89"}],"functionName":{"name":"add","nativeSrc":"3725:3:89","nodeType":"YulIdentifier","src":"3725:3:89"},"nativeSrc":"3725:19:89","nodeType":"YulFunctionCall","src":"3725:19:89"},{"kind":"number","nativeSrc":"3746:4:89","nodeType":"YulLiteral","src":"3746:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3721:3:89","nodeType":"YulIdentifier","src":"3721:3:89"},"nativeSrc":"3721:30:89","nodeType":"YulFunctionCall","src":"3721:30:89"},{"name":"end","nativeSrc":"3753:3:89","nodeType":"YulIdentifier","src":"3753:3:89"}],"functionName":{"name":"gt","nativeSrc":"3718:2:89","nodeType":"YulIdentifier","src":"3718:2:89"},"nativeSrc":"3718:39:89","nodeType":"YulFunctionCall","src":"3718:39:89"},"nativeSrc":"3715:59:89","nodeType":"YulIf","src":"3715:59:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3800:6:89","nodeType":"YulIdentifier","src":"3800:6:89"},{"kind":"number","nativeSrc":"3808:4:89","nodeType":"YulLiteral","src":"3808:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3796:3:89","nodeType":"YulIdentifier","src":"3796:3:89"},"nativeSrc":"3796:17:89","nodeType":"YulFunctionCall","src":"3796:17:89"},{"arguments":[{"name":"offset","nativeSrc":"3819:6:89","nodeType":"YulIdentifier","src":"3819:6:89"},{"kind":"number","nativeSrc":"3827:4:89","nodeType":"YulLiteral","src":"3827:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3815:3:89","nodeType":"YulIdentifier","src":"3815:3:89"},"nativeSrc":"3815:17:89","nodeType":"YulFunctionCall","src":"3815:17:89"},{"name":"length","nativeSrc":"3834:6:89","nodeType":"YulIdentifier","src":"3834:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"3783:12:89","nodeType":"YulIdentifier","src":"3783:12:89"},"nativeSrc":"3783:58:89","nodeType":"YulFunctionCall","src":"3783:58:89"},"nativeSrc":"3783:58:89","nodeType":"YulExpressionStatement","src":"3783:58:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3865:6:89","nodeType":"YulIdentifier","src":"3865:6:89"},{"name":"length","nativeSrc":"3873:6:89","nodeType":"YulIdentifier","src":"3873:6:89"}],"functionName":{"name":"add","nativeSrc":"3861:3:89","nodeType":"YulIdentifier","src":"3861:3:89"},"nativeSrc":"3861:19:89","nodeType":"YulFunctionCall","src":"3861:19:89"},{"kind":"number","nativeSrc":"3882:4:89","nodeType":"YulLiteral","src":"3882:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3857:3:89","nodeType":"YulIdentifier","src":"3857:3:89"},"nativeSrc":"3857:30:89","nodeType":"YulFunctionCall","src":"3857:30:89"},{"kind":"number","nativeSrc":"3889:1:89","nodeType":"YulLiteral","src":"3889:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3850:6:89","nodeType":"YulIdentifier","src":"3850:6:89"},"nativeSrc":"3850:41:89","nodeType":"YulFunctionCall","src":"3850:41:89"},"nativeSrc":"3850:41:89","nodeType":"YulExpressionStatement","src":"3850:41:89"},{"nativeSrc":"3900:15:89","nodeType":"YulAssignment","src":"3900:15:89","value":{"name":"memPtr","nativeSrc":"3909:6:89","nodeType":"YulIdentifier","src":"3909:6:89"},"variableNames":[{"name":"array","nativeSrc":"3900:5:89","nodeType":"YulIdentifier","src":"3900:5:89"}]}]},"name":"abi_decode_string","nativeSrc":"3195:726:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3222:6:89","nodeType":"YulTypedName","src":"3222:6:89","type":""},{"name":"end","nativeSrc":"3230:3:89","nodeType":"YulTypedName","src":"3230:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3238:5:89","nodeType":"YulTypedName","src":"3238:5:89","type":""}],"src":"3195:726:89"},{"body":{"nativeSrc":"4075:763:89","nodeType":"YulBlock","src":"4075:763:89","statements":[{"body":{"nativeSrc":"4122:16:89","nodeType":"YulBlock","src":"4122:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4131:1:89","nodeType":"YulLiteral","src":"4131:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4134:1:89","nodeType":"YulLiteral","src":"4134:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4124:6:89","nodeType":"YulIdentifier","src":"4124:6:89"},"nativeSrc":"4124:12:89","nodeType":"YulFunctionCall","src":"4124:12:89"},"nativeSrc":"4124:12:89","nodeType":"YulExpressionStatement","src":"4124:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4096:7:89","nodeType":"YulIdentifier","src":"4096:7:89"},{"name":"headStart","nativeSrc":"4105:9:89","nodeType":"YulIdentifier","src":"4105:9:89"}],"functionName":{"name":"sub","nativeSrc":"4092:3:89","nodeType":"YulIdentifier","src":"4092:3:89"},"nativeSrc":"4092:23:89","nodeType":"YulFunctionCall","src":"4092:23:89"},{"kind":"number","nativeSrc":"4117:3:89","nodeType":"YulLiteral","src":"4117:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"4088:3:89","nodeType":"YulIdentifier","src":"4088:3:89"},"nativeSrc":"4088:33:89","nodeType":"YulFunctionCall","src":"4088:33:89"},"nativeSrc":"4085:53:89","nodeType":"YulIf","src":"4085:53:89"},{"nativeSrc":"4147:37:89","nodeType":"YulVariableDeclaration","src":"4147:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4174:9:89","nodeType":"YulIdentifier","src":"4174:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"4161:12:89","nodeType":"YulIdentifier","src":"4161:12:89"},"nativeSrc":"4161:23:89","nodeType":"YulFunctionCall","src":"4161:23:89"},"variables":[{"name":"offset","nativeSrc":"4151:6:89","nodeType":"YulTypedName","src":"4151:6:89","type":""}]},{"body":{"nativeSrc":"4227:16:89","nodeType":"YulBlock","src":"4227:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4236:1:89","nodeType":"YulLiteral","src":"4236:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4239:1:89","nodeType":"YulLiteral","src":"4239:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4229:6:89","nodeType":"YulIdentifier","src":"4229:6:89"},"nativeSrc":"4229:12:89","nodeType":"YulFunctionCall","src":"4229:12:89"},"nativeSrc":"4229:12:89","nodeType":"YulExpressionStatement","src":"4229:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4199:6:89","nodeType":"YulIdentifier","src":"4199:6:89"},{"kind":"number","nativeSrc":"4207:18:89","nodeType":"YulLiteral","src":"4207:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4196:2:89","nodeType":"YulIdentifier","src":"4196:2:89"},"nativeSrc":"4196:30:89","nodeType":"YulFunctionCall","src":"4196:30:89"},"nativeSrc":"4193:50:89","nodeType":"YulIf","src":"4193:50:89"},{"nativeSrc":"4252:60:89","nodeType":"YulAssignment","src":"4252:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4284:9:89","nodeType":"YulIdentifier","src":"4284:9:89"},{"name":"offset","nativeSrc":"4295:6:89","nodeType":"YulIdentifier","src":"4295:6:89"}],"functionName":{"name":"add","nativeSrc":"4280:3:89","nodeType":"YulIdentifier","src":"4280:3:89"},"nativeSrc":"4280:22:89","nodeType":"YulFunctionCall","src":"4280:22:89"},{"name":"dataEnd","nativeSrc":"4304:7:89","nodeType":"YulIdentifier","src":"4304:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4262:17:89","nodeType":"YulIdentifier","src":"4262:17:89"},"nativeSrc":"4262:50:89","nodeType":"YulFunctionCall","src":"4262:50:89"},"variableNames":[{"name":"value0","nativeSrc":"4252:6:89","nodeType":"YulIdentifier","src":"4252:6:89"}]},{"nativeSrc":"4321:48:89","nodeType":"YulVariableDeclaration","src":"4321:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4354:9:89","nodeType":"YulIdentifier","src":"4354:9:89"},{"kind":"number","nativeSrc":"4365:2:89","nodeType":"YulLiteral","src":"4365:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4350:3:89","nodeType":"YulIdentifier","src":"4350:3:89"},"nativeSrc":"4350:18:89","nodeType":"YulFunctionCall","src":"4350:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4337:12:89","nodeType":"YulIdentifier","src":"4337:12:89"},"nativeSrc":"4337:32:89","nodeType":"YulFunctionCall","src":"4337:32:89"},"variables":[{"name":"offset_1","nativeSrc":"4325:8:89","nodeType":"YulTypedName","src":"4325:8:89","type":""}]},{"body":{"nativeSrc":"4414:16:89","nodeType":"YulBlock","src":"4414:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4423:1:89","nodeType":"YulLiteral","src":"4423:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4426:1:89","nodeType":"YulLiteral","src":"4426:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4416:6:89","nodeType":"YulIdentifier","src":"4416:6:89"},"nativeSrc":"4416:12:89","nodeType":"YulFunctionCall","src":"4416:12:89"},"nativeSrc":"4416:12:89","nodeType":"YulExpressionStatement","src":"4416:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"4384:8:89","nodeType":"YulIdentifier","src":"4384:8:89"},{"kind":"number","nativeSrc":"4394:18:89","nodeType":"YulLiteral","src":"4394:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4381:2:89","nodeType":"YulIdentifier","src":"4381:2:89"},"nativeSrc":"4381:32:89","nodeType":"YulFunctionCall","src":"4381:32:89"},"nativeSrc":"4378:52:89","nodeType":"YulIf","src":"4378:52:89"},{"nativeSrc":"4439:62:89","nodeType":"YulAssignment","src":"4439:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4471:9:89","nodeType":"YulIdentifier","src":"4471:9:89"},{"name":"offset_1","nativeSrc":"4482:8:89","nodeType":"YulIdentifier","src":"4482:8:89"}],"functionName":{"name":"add","nativeSrc":"4467:3:89","nodeType":"YulIdentifier","src":"4467:3:89"},"nativeSrc":"4467:24:89","nodeType":"YulFunctionCall","src":"4467:24:89"},{"name":"dataEnd","nativeSrc":"4493:7:89","nodeType":"YulIdentifier","src":"4493:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4449:17:89","nodeType":"YulIdentifier","src":"4449:17:89"},"nativeSrc":"4449:52:89","nodeType":"YulFunctionCall","src":"4449:52:89"},"variableNames":[{"name":"value1","nativeSrc":"4439:6:89","nodeType":"YulIdentifier","src":"4439:6:89"}]},{"nativeSrc":"4510:45:89","nodeType":"YulVariableDeclaration","src":"4510:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4540:9:89","nodeType":"YulIdentifier","src":"4540:9:89"},{"kind":"number","nativeSrc":"4551:2:89","nodeType":"YulLiteral","src":"4551:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4536:3:89","nodeType":"YulIdentifier","src":"4536:3:89"},"nativeSrc":"4536:18:89","nodeType":"YulFunctionCall","src":"4536:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4523:12:89","nodeType":"YulIdentifier","src":"4523:12:89"},"nativeSrc":"4523:32:89","nodeType":"YulFunctionCall","src":"4523:32:89"},"variables":[{"name":"value","nativeSrc":"4514:5:89","nodeType":"YulTypedName","src":"4514:5:89","type":""}]},{"body":{"nativeSrc":"4603:16:89","nodeType":"YulBlock","src":"4603:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4612:1:89","nodeType":"YulLiteral","src":"4612:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4615:1:89","nodeType":"YulLiteral","src":"4615:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4605:6:89","nodeType":"YulIdentifier","src":"4605:6:89"},"nativeSrc":"4605:12:89","nodeType":"YulFunctionCall","src":"4605:12:89"},"nativeSrc":"4605:12:89","nodeType":"YulExpressionStatement","src":"4605:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4577:5:89","nodeType":"YulIdentifier","src":"4577:5:89"},{"arguments":[{"name":"value","nativeSrc":"4588:5:89","nodeType":"YulIdentifier","src":"4588:5:89"},{"kind":"number","nativeSrc":"4595:4:89","nodeType":"YulLiteral","src":"4595:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4584:3:89","nodeType":"YulIdentifier","src":"4584:3:89"},"nativeSrc":"4584:16:89","nodeType":"YulFunctionCall","src":"4584:16:89"}],"functionName":{"name":"eq","nativeSrc":"4574:2:89","nodeType":"YulIdentifier","src":"4574:2:89"},"nativeSrc":"4574:27:89","nodeType":"YulFunctionCall","src":"4574:27:89"}],"functionName":{"name":"iszero","nativeSrc":"4567:6:89","nodeType":"YulIdentifier","src":"4567:6:89"},"nativeSrc":"4567:35:89","nodeType":"YulFunctionCall","src":"4567:35:89"},"nativeSrc":"4564:55:89","nodeType":"YulIf","src":"4564:55:89"},{"nativeSrc":"4628:15:89","nodeType":"YulAssignment","src":"4628:15:89","value":{"name":"value","nativeSrc":"4638:5:89","nodeType":"YulIdentifier","src":"4638:5:89"},"variableNames":[{"name":"value2","nativeSrc":"4628:6:89","nodeType":"YulIdentifier","src":"4628:6:89"}]},{"nativeSrc":"4652:48:89","nodeType":"YulVariableDeclaration","src":"4652:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4685:9:89","nodeType":"YulIdentifier","src":"4685:9:89"},{"kind":"number","nativeSrc":"4696:2:89","nodeType":"YulLiteral","src":"4696:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4681:3:89","nodeType":"YulIdentifier","src":"4681:3:89"},"nativeSrc":"4681:18:89","nodeType":"YulFunctionCall","src":"4681:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4668:12:89","nodeType":"YulIdentifier","src":"4668:12:89"},"nativeSrc":"4668:32:89","nodeType":"YulFunctionCall","src":"4668:32:89"},"variables":[{"name":"offset_2","nativeSrc":"4656:8:89","nodeType":"YulTypedName","src":"4656:8:89","type":""}]},{"body":{"nativeSrc":"4745:16:89","nodeType":"YulBlock","src":"4745:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4754:1:89","nodeType":"YulLiteral","src":"4754:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4757:1:89","nodeType":"YulLiteral","src":"4757:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4747:6:89","nodeType":"YulIdentifier","src":"4747:6:89"},"nativeSrc":"4747:12:89","nodeType":"YulFunctionCall","src":"4747:12:89"},"nativeSrc":"4747:12:89","nodeType":"YulExpressionStatement","src":"4747:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"4715:8:89","nodeType":"YulIdentifier","src":"4715:8:89"},{"kind":"number","nativeSrc":"4725:18:89","nodeType":"YulLiteral","src":"4725:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4712:2:89","nodeType":"YulIdentifier","src":"4712:2:89"},"nativeSrc":"4712:32:89","nodeType":"YulFunctionCall","src":"4712:32:89"},"nativeSrc":"4709:52:89","nodeType":"YulIf","src":"4709:52:89"},{"nativeSrc":"4770:62:89","nodeType":"YulAssignment","src":"4770:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4802:9:89","nodeType":"YulIdentifier","src":"4802:9:89"},{"name":"offset_2","nativeSrc":"4813:8:89","nodeType":"YulIdentifier","src":"4813:8:89"}],"functionName":{"name":"add","nativeSrc":"4798:3:89","nodeType":"YulIdentifier","src":"4798:3:89"},"nativeSrc":"4798:24:89","nodeType":"YulFunctionCall","src":"4798:24:89"},{"name":"dataEnd","nativeSrc":"4824:7:89","nodeType":"YulIdentifier","src":"4824:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4780:17:89","nodeType":"YulIdentifier","src":"4780:17:89"},"nativeSrc":"4780:52:89","nodeType":"YulFunctionCall","src":"4780:52:89"},"variableNames":[{"name":"value3","nativeSrc":"4770:6:89","nodeType":"YulIdentifier","src":"4770:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_string_memory_ptr","nativeSrc":"3926:912:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4017:9:89","nodeType":"YulTypedName","src":"4017:9:89","type":""},{"name":"dataEnd","nativeSrc":"4028:7:89","nodeType":"YulTypedName","src":"4028:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4040:6:89","nodeType":"YulTypedName","src":"4040:6:89","type":""},{"name":"value1","nativeSrc":"4048:6:89","nodeType":"YulTypedName","src":"4048:6:89","type":""},{"name":"value2","nativeSrc":"4056:6:89","nodeType":"YulTypedName","src":"4056:6:89","type":""},{"name":"value3","nativeSrc":"4064:6:89","nodeType":"YulTypedName","src":"4064:6:89","type":""}],"src":"3926:912:89"},{"body":{"nativeSrc":"4930:173:89","nodeType":"YulBlock","src":"4930:173:89","statements":[{"body":{"nativeSrc":"4976:16:89","nodeType":"YulBlock","src":"4976:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4985:1:89","nodeType":"YulLiteral","src":"4985:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4988:1:89","nodeType":"YulLiteral","src":"4988:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4978:6:89","nodeType":"YulIdentifier","src":"4978:6:89"},"nativeSrc":"4978:12:89","nodeType":"YulFunctionCall","src":"4978:12:89"},"nativeSrc":"4978:12:89","nodeType":"YulExpressionStatement","src":"4978:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4951:7:89","nodeType":"YulIdentifier","src":"4951:7:89"},{"name":"headStart","nativeSrc":"4960:9:89","nodeType":"YulIdentifier","src":"4960:9:89"}],"functionName":{"name":"sub","nativeSrc":"4947:3:89","nodeType":"YulIdentifier","src":"4947:3:89"},"nativeSrc":"4947:23:89","nodeType":"YulFunctionCall","src":"4947:23:89"},{"kind":"number","nativeSrc":"4972:2:89","nodeType":"YulLiteral","src":"4972:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4943:3:89","nodeType":"YulIdentifier","src":"4943:3:89"},"nativeSrc":"4943:32:89","nodeType":"YulFunctionCall","src":"4943:32:89"},"nativeSrc":"4940:52:89","nodeType":"YulIf","src":"4940:52:89"},{"nativeSrc":"5001:39:89","nodeType":"YulAssignment","src":"5001:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5030:9:89","nodeType":"YulIdentifier","src":"5030:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5011:18:89","nodeType":"YulIdentifier","src":"5011:18:89"},"nativeSrc":"5011:29:89","nodeType":"YulFunctionCall","src":"5011:29:89"},"variableNames":[{"name":"value0","nativeSrc":"5001:6:89","nodeType":"YulIdentifier","src":"5001:6:89"}]},{"nativeSrc":"5049:48:89","nodeType":"YulAssignment","src":"5049:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5082:9:89","nodeType":"YulIdentifier","src":"5082:9:89"},{"kind":"number","nativeSrc":"5093:2:89","nodeType":"YulLiteral","src":"5093:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5078:3:89","nodeType":"YulIdentifier","src":"5078:3:89"},"nativeSrc":"5078:18:89","nodeType":"YulFunctionCall","src":"5078:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5059:18:89","nodeType":"YulIdentifier","src":"5059:18:89"},"nativeSrc":"5059:38:89","nodeType":"YulFunctionCall","src":"5059:38:89"},"variableNames":[{"name":"value1","nativeSrc":"5049:6:89","nodeType":"YulIdentifier","src":"5049:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"4843:260:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4888:9:89","nodeType":"YulTypedName","src":"4888:9:89","type":""},{"name":"dataEnd","nativeSrc":"4899:7:89","nodeType":"YulTypedName","src":"4899:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4911:6:89","nodeType":"YulTypedName","src":"4911:6:89","type":""},{"name":"value1","nativeSrc":"4919:6:89","nodeType":"YulTypedName","src":"4919:6:89","type":""}],"src":"4843:260:89"},{"body":{"nativeSrc":"5163:325:89","nodeType":"YulBlock","src":"5163:325:89","statements":[{"nativeSrc":"5173:22:89","nodeType":"YulAssignment","src":"5173:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"5187:1:89","nodeType":"YulLiteral","src":"5187:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"5190:4:89","nodeType":"YulIdentifier","src":"5190:4:89"}],"functionName":{"name":"shr","nativeSrc":"5183:3:89","nodeType":"YulIdentifier","src":"5183:3:89"},"nativeSrc":"5183:12:89","nodeType":"YulFunctionCall","src":"5183:12:89"},"variableNames":[{"name":"length","nativeSrc":"5173:6:89","nodeType":"YulIdentifier","src":"5173:6:89"}]},{"nativeSrc":"5204:38:89","nodeType":"YulVariableDeclaration","src":"5204:38:89","value":{"arguments":[{"name":"data","nativeSrc":"5234:4:89","nodeType":"YulIdentifier","src":"5234:4:89"},{"kind":"number","nativeSrc":"5240:1:89","nodeType":"YulLiteral","src":"5240:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5230:3:89","nodeType":"YulIdentifier","src":"5230:3:89"},"nativeSrc":"5230:12:89","nodeType":"YulFunctionCall","src":"5230:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"5208:18:89","nodeType":"YulTypedName","src":"5208:18:89","type":""}]},{"body":{"nativeSrc":"5281:31:89","nodeType":"YulBlock","src":"5281:31:89","statements":[{"nativeSrc":"5283:27:89","nodeType":"YulAssignment","src":"5283:27:89","value":{"arguments":[{"name":"length","nativeSrc":"5297:6:89","nodeType":"YulIdentifier","src":"5297:6:89"},{"kind":"number","nativeSrc":"5305:4:89","nodeType":"YulLiteral","src":"5305:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"5293:3:89","nodeType":"YulIdentifier","src":"5293:3:89"},"nativeSrc":"5293:17:89","nodeType":"YulFunctionCall","src":"5293:17:89"},"variableNames":[{"name":"length","nativeSrc":"5283:6:89","nodeType":"YulIdentifier","src":"5283:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5261:18:89","nodeType":"YulIdentifier","src":"5261:18:89"}],"functionName":{"name":"iszero","nativeSrc":"5254:6:89","nodeType":"YulIdentifier","src":"5254:6:89"},"nativeSrc":"5254:26:89","nodeType":"YulFunctionCall","src":"5254:26:89"},"nativeSrc":"5251:61:89","nodeType":"YulIf","src":"5251:61:89"},{"body":{"nativeSrc":"5371:111:89","nodeType":"YulBlock","src":"5371:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5392:1:89","nodeType":"YulLiteral","src":"5392:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5399:3:89","nodeType":"YulLiteral","src":"5399:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"5404:10:89","nodeType":"YulLiteral","src":"5404:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5395:3:89","nodeType":"YulIdentifier","src":"5395:3:89"},"nativeSrc":"5395:20:89","nodeType":"YulFunctionCall","src":"5395:20:89"}],"functionName":{"name":"mstore","nativeSrc":"5385:6:89","nodeType":"YulIdentifier","src":"5385:6:89"},"nativeSrc":"5385:31:89","nodeType":"YulFunctionCall","src":"5385:31:89"},"nativeSrc":"5385:31:89","nodeType":"YulExpressionStatement","src":"5385:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5436:1:89","nodeType":"YulLiteral","src":"5436:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"5439:4:89","nodeType":"YulLiteral","src":"5439:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"5429:6:89","nodeType":"YulIdentifier","src":"5429:6:89"},"nativeSrc":"5429:15:89","nodeType":"YulFunctionCall","src":"5429:15:89"},"nativeSrc":"5429:15:89","nodeType":"YulExpressionStatement","src":"5429:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5464:1:89","nodeType":"YulLiteral","src":"5464:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5467:4:89","nodeType":"YulLiteral","src":"5467:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5457:6:89","nodeType":"YulIdentifier","src":"5457:6:89"},"nativeSrc":"5457:15:89","nodeType":"YulFunctionCall","src":"5457:15:89"},"nativeSrc":"5457:15:89","nodeType":"YulExpressionStatement","src":"5457:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5327:18:89","nodeType":"YulIdentifier","src":"5327:18:89"},{"arguments":[{"name":"length","nativeSrc":"5350:6:89","nodeType":"YulIdentifier","src":"5350:6:89"},{"kind":"number","nativeSrc":"5358:2:89","nodeType":"YulLiteral","src":"5358:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"5347:2:89","nodeType":"YulIdentifier","src":"5347:2:89"},"nativeSrc":"5347:14:89","nodeType":"YulFunctionCall","src":"5347:14:89"}],"functionName":{"name":"eq","nativeSrc":"5324:2:89","nodeType":"YulIdentifier","src":"5324:2:89"},"nativeSrc":"5324:38:89","nodeType":"YulFunctionCall","src":"5324:38:89"},"nativeSrc":"5321:161:89","nodeType":"YulIf","src":"5321:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"5108:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"5143:4:89","nodeType":"YulTypedName","src":"5143:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"5152:6:89","nodeType":"YulTypedName","src":"5152:6:89","type":""}],"src":"5108:380:89"},{"body":{"nativeSrc":"5549:65:89","nodeType":"YulBlock","src":"5549:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5566:1:89","nodeType":"YulLiteral","src":"5566:1:89","type":"","value":"0"},{"name":"ptr","nativeSrc":"5569:3:89","nodeType":"YulIdentifier","src":"5569:3:89"}],"functionName":{"name":"mstore","nativeSrc":"5559:6:89","nodeType":"YulIdentifier","src":"5559:6:89"},"nativeSrc":"5559:14:89","nodeType":"YulFunctionCall","src":"5559:14:89"},"nativeSrc":"5559:14:89","nodeType":"YulExpressionStatement","src":"5559:14:89"},{"nativeSrc":"5582:26:89","nodeType":"YulAssignment","src":"5582:26:89","value":{"arguments":[{"kind":"number","nativeSrc":"5600:1:89","nodeType":"YulLiteral","src":"5600:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5603:4:89","nodeType":"YulLiteral","src":"5603:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5590:9:89","nodeType":"YulIdentifier","src":"5590:9:89"},"nativeSrc":"5590:18:89","nodeType":"YulFunctionCall","src":"5590:18:89"},"variableNames":[{"name":"data","nativeSrc":"5582:4:89","nodeType":"YulIdentifier","src":"5582:4:89"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"5493:121:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"5532:3:89","nodeType":"YulTypedName","src":"5532:3:89","type":""}],"returnVariables":[{"name":"data","nativeSrc":"5540:4:89","nodeType":"YulTypedName","src":"5540:4:89","type":""}],"src":"5493:121:89"},{"body":{"nativeSrc":"5700:437:89","nodeType":"YulBlock","src":"5700:437:89","statements":[{"body":{"nativeSrc":"5733:398:89","nodeType":"YulBlock","src":"5733:398:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5754:1:89","nodeType":"YulLiteral","src":"5754:1:89","type":"","value":"0"},{"name":"array","nativeSrc":"5757:5:89","nodeType":"YulIdentifier","src":"5757:5:89"}],"functionName":{"name":"mstore","nativeSrc":"5747:6:89","nodeType":"YulIdentifier","src":"5747:6:89"},"nativeSrc":"5747:16:89","nodeType":"YulFunctionCall","src":"5747:16:89"},"nativeSrc":"5747:16:89","nodeType":"YulExpressionStatement","src":"5747:16:89"},{"nativeSrc":"5776:30:89","nodeType":"YulVariableDeclaration","src":"5776:30:89","value":{"arguments":[{"kind":"number","nativeSrc":"5798:1:89","nodeType":"YulLiteral","src":"5798:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5801:4:89","nodeType":"YulLiteral","src":"5801:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5788:9:89","nodeType":"YulIdentifier","src":"5788:9:89"},"nativeSrc":"5788:18:89","nodeType":"YulFunctionCall","src":"5788:18:89"},"variables":[{"name":"data","nativeSrc":"5780:4:89","nodeType":"YulTypedName","src":"5780:4:89","type":""}]},{"nativeSrc":"5819:57:89","nodeType":"YulVariableDeclaration","src":"5819:57:89","value":{"arguments":[{"name":"data","nativeSrc":"5842:4:89","nodeType":"YulIdentifier","src":"5842:4:89"},{"arguments":[{"kind":"number","nativeSrc":"5852:1:89","nodeType":"YulLiteral","src":"5852:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"5859:10:89","nodeType":"YulIdentifier","src":"5859:10:89"},{"kind":"number","nativeSrc":"5871:2:89","nodeType":"YulLiteral","src":"5871:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5855:3:89","nodeType":"YulIdentifier","src":"5855:3:89"},"nativeSrc":"5855:19:89","nodeType":"YulFunctionCall","src":"5855:19:89"}],"functionName":{"name":"shr","nativeSrc":"5848:3:89","nodeType":"YulIdentifier","src":"5848:3:89"},"nativeSrc":"5848:27:89","nodeType":"YulFunctionCall","src":"5848:27:89"}],"functionName":{"name":"add","nativeSrc":"5838:3:89","nodeType":"YulIdentifier","src":"5838:3:89"},"nativeSrc":"5838:38:89","nodeType":"YulFunctionCall","src":"5838:38:89"},"variables":[{"name":"deleteStart","nativeSrc":"5823:11:89","nodeType":"YulTypedName","src":"5823:11:89","type":""}]},{"body":{"nativeSrc":"5913:23:89","nodeType":"YulBlock","src":"5913:23:89","statements":[{"nativeSrc":"5915:19:89","nodeType":"YulAssignment","src":"5915:19:89","value":{"name":"data","nativeSrc":"5930:4:89","nodeType":"YulIdentifier","src":"5930:4:89"},"variableNames":[{"name":"deleteStart","nativeSrc":"5915:11:89","nodeType":"YulIdentifier","src":"5915:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"5895:10:89","nodeType":"YulIdentifier","src":"5895:10:89"},{"kind":"number","nativeSrc":"5907:4:89","nodeType":"YulLiteral","src":"5907:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"5892:2:89","nodeType":"YulIdentifier","src":"5892:2:89"},"nativeSrc":"5892:20:89","nodeType":"YulFunctionCall","src":"5892:20:89"},"nativeSrc":"5889:47:89","nodeType":"YulIf","src":"5889:47:89"},{"nativeSrc":"5949:41:89","nodeType":"YulVariableDeclaration","src":"5949:41:89","value":{"arguments":[{"name":"data","nativeSrc":"5963:4:89","nodeType":"YulIdentifier","src":"5963:4:89"},{"arguments":[{"kind":"number","nativeSrc":"5973:1:89","nodeType":"YulLiteral","src":"5973:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"5980:3:89","nodeType":"YulIdentifier","src":"5980:3:89"},{"kind":"number","nativeSrc":"5985:2:89","nodeType":"YulLiteral","src":"5985:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5976:3:89","nodeType":"YulIdentifier","src":"5976:3:89"},"nativeSrc":"5976:12:89","nodeType":"YulFunctionCall","src":"5976:12:89"}],"functionName":{"name":"shr","nativeSrc":"5969:3:89","nodeType":"YulIdentifier","src":"5969:3:89"},"nativeSrc":"5969:20:89","nodeType":"YulFunctionCall","src":"5969:20:89"}],"functionName":{"name":"add","nativeSrc":"5959:3:89","nodeType":"YulIdentifier","src":"5959:3:89"},"nativeSrc":"5959:31:89","nodeType":"YulFunctionCall","src":"5959:31:89"},"variables":[{"name":"_1","nativeSrc":"5953:2:89","nodeType":"YulTypedName","src":"5953:2:89","type":""}]},{"nativeSrc":"6003:24:89","nodeType":"YulVariableDeclaration","src":"6003:24:89","value":{"name":"deleteStart","nativeSrc":"6016:11:89","nodeType":"YulIdentifier","src":"6016:11:89"},"variables":[{"name":"start","nativeSrc":"6007:5:89","nodeType":"YulTypedName","src":"6007:5:89","type":""}]},{"body":{"nativeSrc":"6101:20:89","nodeType":"YulBlock","src":"6101:20:89","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6110:5:89","nodeType":"YulIdentifier","src":"6110:5:89"},{"kind":"number","nativeSrc":"6117:1:89","nodeType":"YulLiteral","src":"6117:1:89","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"6103:6:89","nodeType":"YulIdentifier","src":"6103:6:89"},"nativeSrc":"6103:16:89","nodeType":"YulFunctionCall","src":"6103:16:89"},"nativeSrc":"6103:16:89","nodeType":"YulExpressionStatement","src":"6103:16:89"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6051:5:89","nodeType":"YulIdentifier","src":"6051:5:89"},{"name":"_1","nativeSrc":"6058:2:89","nodeType":"YulIdentifier","src":"6058:2:89"}],"functionName":{"name":"lt","nativeSrc":"6048:2:89","nodeType":"YulIdentifier","src":"6048:2:89"},"nativeSrc":"6048:13:89","nodeType":"YulFunctionCall","src":"6048:13:89"},"nativeSrc":"6040:81:89","nodeType":"YulForLoop","post":{"nativeSrc":"6062:26:89","nodeType":"YulBlock","src":"6062:26:89","statements":[{"nativeSrc":"6064:22:89","nodeType":"YulAssignment","src":"6064:22:89","value":{"arguments":[{"name":"start","nativeSrc":"6077:5:89","nodeType":"YulIdentifier","src":"6077:5:89"},{"kind":"number","nativeSrc":"6084:1:89","nodeType":"YulLiteral","src":"6084:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6073:3:89","nodeType":"YulIdentifier","src":"6073:3:89"},"nativeSrc":"6073:13:89","nodeType":"YulFunctionCall","src":"6073:13:89"},"variableNames":[{"name":"start","nativeSrc":"6064:5:89","nodeType":"YulIdentifier","src":"6064:5:89"}]}]},"pre":{"nativeSrc":"6044:3:89","nodeType":"YulBlock","src":"6044:3:89","statements":[]},"src":"6040:81:89"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"5716:3:89","nodeType":"YulIdentifier","src":"5716:3:89"},{"kind":"number","nativeSrc":"5721:2:89","nodeType":"YulLiteral","src":"5721:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"5713:2:89","nodeType":"YulIdentifier","src":"5713:2:89"},"nativeSrc":"5713:11:89","nodeType":"YulFunctionCall","src":"5713:11:89"},"nativeSrc":"5710:421:89","nodeType":"YulIf","src":"5710:421:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"5619:518:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"5672:5:89","nodeType":"YulTypedName","src":"5672:5:89","type":""},{"name":"len","nativeSrc":"5679:3:89","nodeType":"YulTypedName","src":"5679:3:89","type":""},{"name":"startIndex","nativeSrc":"5684:10:89","nodeType":"YulTypedName","src":"5684:10:89","type":""}],"src":"5619:518:89"},{"body":{"nativeSrc":"6227:81:89","nodeType":"YulBlock","src":"6227:81:89","statements":[{"nativeSrc":"6237:65:89","nodeType":"YulAssignment","src":"6237:65:89","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"6252:4:89","nodeType":"YulIdentifier","src":"6252:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6270:1:89","nodeType":"YulLiteral","src":"6270:1:89","type":"","value":"3"},{"name":"len","nativeSrc":"6273:3:89","nodeType":"YulIdentifier","src":"6273:3:89"}],"functionName":{"name":"shl","nativeSrc":"6266:3:89","nodeType":"YulIdentifier","src":"6266:3:89"},"nativeSrc":"6266:11:89","nodeType":"YulFunctionCall","src":"6266:11:89"},{"arguments":[{"kind":"number","nativeSrc":"6283:1:89","nodeType":"YulLiteral","src":"6283:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"6279:3:89","nodeType":"YulIdentifier","src":"6279:3:89"},"nativeSrc":"6279:6:89","nodeType":"YulFunctionCall","src":"6279:6:89"}],"functionName":{"name":"shr","nativeSrc":"6262:3:89","nodeType":"YulIdentifier","src":"6262:3:89"},"nativeSrc":"6262:24:89","nodeType":"YulFunctionCall","src":"6262:24:89"}],"functionName":{"name":"not","nativeSrc":"6258:3:89","nodeType":"YulIdentifier","src":"6258:3:89"},"nativeSrc":"6258:29:89","nodeType":"YulFunctionCall","src":"6258:29:89"}],"functionName":{"name":"and","nativeSrc":"6248:3:89","nodeType":"YulIdentifier","src":"6248:3:89"},"nativeSrc":"6248:40:89","nodeType":"YulFunctionCall","src":"6248:40:89"},{"arguments":[{"kind":"number","nativeSrc":"6294:1:89","nodeType":"YulLiteral","src":"6294:1:89","type":"","value":"1"},{"name":"len","nativeSrc":"6297:3:89","nodeType":"YulIdentifier","src":"6297:3:89"}],"functionName":{"name":"shl","nativeSrc":"6290:3:89","nodeType":"YulIdentifier","src":"6290:3:89"},"nativeSrc":"6290:11:89","nodeType":"YulFunctionCall","src":"6290:11:89"}],"functionName":{"name":"or","nativeSrc":"6245:2:89","nodeType":"YulIdentifier","src":"6245:2:89"},"nativeSrc":"6245:57:89","nodeType":"YulFunctionCall","src":"6245:57:89"},"variableNames":[{"name":"used","nativeSrc":"6237:4:89","nodeType":"YulIdentifier","src":"6237:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"6142:166:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6204:4:89","nodeType":"YulTypedName","src":"6204:4:89","type":""},{"name":"len","nativeSrc":"6210:3:89","nodeType":"YulTypedName","src":"6210:3:89","type":""}],"returnVariables":[{"name":"used","nativeSrc":"6218:4:89","nodeType":"YulTypedName","src":"6218:4:89","type":""}],"src":"6142:166:89"},{"body":{"nativeSrc":"6409:1203:89","nodeType":"YulBlock","src":"6409:1203:89","statements":[{"nativeSrc":"6419:24:89","nodeType":"YulVariableDeclaration","src":"6419:24:89","value":{"arguments":[{"name":"src","nativeSrc":"6439:3:89","nodeType":"YulIdentifier","src":"6439:3:89"}],"functionName":{"name":"mload","nativeSrc":"6433:5:89","nodeType":"YulIdentifier","src":"6433:5:89"},"nativeSrc":"6433:10:89","nodeType":"YulFunctionCall","src":"6433:10:89"},"variables":[{"name":"newLen","nativeSrc":"6423:6:89","nodeType":"YulTypedName","src":"6423:6:89","type":""}]},{"body":{"nativeSrc":"6486:22:89","nodeType":"YulBlock","src":"6486:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6488:16:89","nodeType":"YulIdentifier","src":"6488:16:89"},"nativeSrc":"6488:18:89","nodeType":"YulFunctionCall","src":"6488:18:89"},"nativeSrc":"6488:18:89","nodeType":"YulExpressionStatement","src":"6488:18:89"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"6458:6:89","nodeType":"YulIdentifier","src":"6458:6:89"},{"kind":"number","nativeSrc":"6466:18:89","nodeType":"YulLiteral","src":"6466:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6455:2:89","nodeType":"YulIdentifier","src":"6455:2:89"},"nativeSrc":"6455:30:89","nodeType":"YulFunctionCall","src":"6455:30:89"},"nativeSrc":"6452:56:89","nodeType":"YulIf","src":"6452:56:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6561:4:89","nodeType":"YulIdentifier","src":"6561:4:89"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"6599:4:89","nodeType":"YulIdentifier","src":"6599:4:89"}],"functionName":{"name":"sload","nativeSrc":"6593:5:89","nodeType":"YulIdentifier","src":"6593:5:89"},"nativeSrc":"6593:11:89","nodeType":"YulFunctionCall","src":"6593:11:89"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"6567:25:89","nodeType":"YulIdentifier","src":"6567:25:89"},"nativeSrc":"6567:38:89","nodeType":"YulFunctionCall","src":"6567:38:89"},{"name":"newLen","nativeSrc":"6607:6:89","nodeType":"YulIdentifier","src":"6607:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"6517:43:89","nodeType":"YulIdentifier","src":"6517:43:89"},"nativeSrc":"6517:97:89","nodeType":"YulFunctionCall","src":"6517:97:89"},"nativeSrc":"6517:97:89","nodeType":"YulExpressionStatement","src":"6517:97:89"},{"nativeSrc":"6623:18:89","nodeType":"YulVariableDeclaration","src":"6623:18:89","value":{"kind":"number","nativeSrc":"6640:1:89","nodeType":"YulLiteral","src":"6640:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"6627:9:89","nodeType":"YulTypedName","src":"6627:9:89","type":""}]},{"nativeSrc":"6650:17:89","nodeType":"YulAssignment","src":"6650:17:89","value":{"kind":"number","nativeSrc":"6663:4:89","nodeType":"YulLiteral","src":"6663:4:89","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"6650:9:89","nodeType":"YulIdentifier","src":"6650:9:89"}]},{"cases":[{"body":{"nativeSrc":"6713:642:89","nodeType":"YulBlock","src":"6713:642:89","statements":[{"nativeSrc":"6727:35:89","nodeType":"YulVariableDeclaration","src":"6727:35:89","value":{"arguments":[{"name":"newLen","nativeSrc":"6746:6:89","nodeType":"YulIdentifier","src":"6746:6:89"},{"arguments":[{"kind":"number","nativeSrc":"6758:2:89","nodeType":"YulLiteral","src":"6758:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"6754:3:89","nodeType":"YulIdentifier","src":"6754:3:89"},"nativeSrc":"6754:7:89","nodeType":"YulFunctionCall","src":"6754:7:89"}],"functionName":{"name":"and","nativeSrc":"6742:3:89","nodeType":"YulIdentifier","src":"6742:3:89"},"nativeSrc":"6742:20:89","nodeType":"YulFunctionCall","src":"6742:20:89"},"variables":[{"name":"loopEnd","nativeSrc":"6731:7:89","nodeType":"YulTypedName","src":"6731:7:89","type":""}]},{"nativeSrc":"6775:49:89","nodeType":"YulVariableDeclaration","src":"6775:49:89","value":{"arguments":[{"name":"slot","nativeSrc":"6819:4:89","nodeType":"YulIdentifier","src":"6819:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"6789:29:89","nodeType":"YulIdentifier","src":"6789:29:89"},"nativeSrc":"6789:35:89","nodeType":"YulFunctionCall","src":"6789:35:89"},"variables":[{"name":"dstPtr","nativeSrc":"6779:6:89","nodeType":"YulTypedName","src":"6779:6:89","type":""}]},{"nativeSrc":"6837:10:89","nodeType":"YulVariableDeclaration","src":"6837:10:89","value":{"kind":"number","nativeSrc":"6846:1:89","nodeType":"YulLiteral","src":"6846:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"6841:1:89","nodeType":"YulTypedName","src":"6841:1:89","type":""}]},{"body":{"nativeSrc":"6917:165:89","nodeType":"YulBlock","src":"6917:165:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"6942:6:89","nodeType":"YulIdentifier","src":"6942:6:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6960:3:89","nodeType":"YulIdentifier","src":"6960:3:89"},{"name":"srcOffset","nativeSrc":"6965:9:89","nodeType":"YulIdentifier","src":"6965:9:89"}],"functionName":{"name":"add","nativeSrc":"6956:3:89","nodeType":"YulIdentifier","src":"6956:3:89"},"nativeSrc":"6956:19:89","nodeType":"YulFunctionCall","src":"6956:19:89"}],"functionName":{"name":"mload","nativeSrc":"6950:5:89","nodeType":"YulIdentifier","src":"6950:5:89"},"nativeSrc":"6950:26:89","nodeType":"YulFunctionCall","src":"6950:26:89"}],"functionName":{"name":"sstore","nativeSrc":"6935:6:89","nodeType":"YulIdentifier","src":"6935:6:89"},"nativeSrc":"6935:42:89","nodeType":"YulFunctionCall","src":"6935:42:89"},"nativeSrc":"6935:42:89","nodeType":"YulExpressionStatement","src":"6935:42:89"},{"nativeSrc":"6994:24:89","nodeType":"YulAssignment","src":"6994:24:89","value":{"arguments":[{"name":"dstPtr","nativeSrc":"7008:6:89","nodeType":"YulIdentifier","src":"7008:6:89"},{"kind":"number","nativeSrc":"7016:1:89","nodeType":"YulLiteral","src":"7016:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7004:3:89","nodeType":"YulIdentifier","src":"7004:3:89"},"nativeSrc":"7004:14:89","nodeType":"YulFunctionCall","src":"7004:14:89"},"variableNames":[{"name":"dstPtr","nativeSrc":"6994:6:89","nodeType":"YulIdentifier","src":"6994:6:89"}]},{"nativeSrc":"7035:33:89","nodeType":"YulAssignment","src":"7035:33:89","value":{"arguments":[{"name":"srcOffset","nativeSrc":"7052:9:89","nodeType":"YulIdentifier","src":"7052:9:89"},{"kind":"number","nativeSrc":"7063:4:89","nodeType":"YulLiteral","src":"7063:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7048:3:89","nodeType":"YulIdentifier","src":"7048:3:89"},"nativeSrc":"7048:20:89","nodeType":"YulFunctionCall","src":"7048:20:89"},"variableNames":[{"name":"srcOffset","nativeSrc":"7035:9:89","nodeType":"YulIdentifier","src":"7035:9:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6871:1:89","nodeType":"YulIdentifier","src":"6871:1:89"},{"name":"loopEnd","nativeSrc":"6874:7:89","nodeType":"YulIdentifier","src":"6874:7:89"}],"functionName":{"name":"lt","nativeSrc":"6868:2:89","nodeType":"YulIdentifier","src":"6868:2:89"},"nativeSrc":"6868:14:89","nodeType":"YulFunctionCall","src":"6868:14:89"},"nativeSrc":"6860:222:89","nodeType":"YulForLoop","post":{"nativeSrc":"6883:21:89","nodeType":"YulBlock","src":"6883:21:89","statements":[{"nativeSrc":"6885:17:89","nodeType":"YulAssignment","src":"6885:17:89","value":{"arguments":[{"name":"i","nativeSrc":"6894:1:89","nodeType":"YulIdentifier","src":"6894:1:89"},{"kind":"number","nativeSrc":"6897:4:89","nodeType":"YulLiteral","src":"6897:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6890:3:89","nodeType":"YulIdentifier","src":"6890:3:89"},"nativeSrc":"6890:12:89","nodeType":"YulFunctionCall","src":"6890:12:89"},"variableNames":[{"name":"i","nativeSrc":"6885:1:89","nodeType":"YulIdentifier","src":"6885:1:89"}]}]},"pre":{"nativeSrc":"6864:3:89","nodeType":"YulBlock","src":"6864:3:89","statements":[]},"src":"6860:222:89"},{"body":{"nativeSrc":"7130:166:89","nodeType":"YulBlock","src":"7130:166:89","statements":[{"nativeSrc":"7148:43:89","nodeType":"YulVariableDeclaration","src":"7148:43:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7175:3:89","nodeType":"YulIdentifier","src":"7175:3:89"},{"name":"srcOffset","nativeSrc":"7180:9:89","nodeType":"YulIdentifier","src":"7180:9:89"}],"functionName":{"name":"add","nativeSrc":"7171:3:89","nodeType":"YulIdentifier","src":"7171:3:89"},"nativeSrc":"7171:19:89","nodeType":"YulFunctionCall","src":"7171:19:89"}],"functionName":{"name":"mload","nativeSrc":"7165:5:89","nodeType":"YulIdentifier","src":"7165:5:89"},"nativeSrc":"7165:26:89","nodeType":"YulFunctionCall","src":"7165:26:89"},"variables":[{"name":"lastValue","nativeSrc":"7152:9:89","nodeType":"YulTypedName","src":"7152:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"7215:6:89","nodeType":"YulIdentifier","src":"7215:6:89"},{"arguments":[{"name":"lastValue","nativeSrc":"7227:9:89","nodeType":"YulIdentifier","src":"7227:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7254:1:89","nodeType":"YulLiteral","src":"7254:1:89","type":"","value":"3"},{"name":"newLen","nativeSrc":"7257:6:89","nodeType":"YulIdentifier","src":"7257:6:89"}],"functionName":{"name":"shl","nativeSrc":"7250:3:89","nodeType":"YulIdentifier","src":"7250:3:89"},"nativeSrc":"7250:14:89","nodeType":"YulFunctionCall","src":"7250:14:89"},{"kind":"number","nativeSrc":"7266:3:89","nodeType":"YulLiteral","src":"7266:3:89","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"7246:3:89","nodeType":"YulIdentifier","src":"7246:3:89"},"nativeSrc":"7246:24:89","nodeType":"YulFunctionCall","src":"7246:24:89"},{"arguments":[{"kind":"number","nativeSrc":"7276:1:89","nodeType":"YulLiteral","src":"7276:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7272:3:89","nodeType":"YulIdentifier","src":"7272:3:89"},"nativeSrc":"7272:6:89","nodeType":"YulFunctionCall","src":"7272:6:89"}],"functionName":{"name":"shr","nativeSrc":"7242:3:89","nodeType":"YulIdentifier","src":"7242:3:89"},"nativeSrc":"7242:37:89","nodeType":"YulFunctionCall","src":"7242:37:89"}],"functionName":{"name":"not","nativeSrc":"7238:3:89","nodeType":"YulIdentifier","src":"7238:3:89"},"nativeSrc":"7238:42:89","nodeType":"YulFunctionCall","src":"7238:42:89"}],"functionName":{"name":"and","nativeSrc":"7223:3:89","nodeType":"YulIdentifier","src":"7223:3:89"},"nativeSrc":"7223:58:89","nodeType":"YulFunctionCall","src":"7223:58:89"}],"functionName":{"name":"sstore","nativeSrc":"7208:6:89","nodeType":"YulIdentifier","src":"7208:6:89"},"nativeSrc":"7208:74:89","nodeType":"YulFunctionCall","src":"7208:74:89"},"nativeSrc":"7208:74:89","nodeType":"YulExpressionStatement","src":"7208:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"7101:7:89","nodeType":"YulIdentifier","src":"7101:7:89"},{"name":"newLen","nativeSrc":"7110:6:89","nodeType":"YulIdentifier","src":"7110:6:89"}],"functionName":{"name":"lt","nativeSrc":"7098:2:89","nodeType":"YulIdentifier","src":"7098:2:89"},"nativeSrc":"7098:19:89","nodeType":"YulFunctionCall","src":"7098:19:89"},"nativeSrc":"7095:201:89","nodeType":"YulIf","src":"7095:201:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7316:4:89","nodeType":"YulIdentifier","src":"7316:4:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7330:1:89","nodeType":"YulLiteral","src":"7330:1:89","type":"","value":"1"},{"name":"newLen","nativeSrc":"7333:6:89","nodeType":"YulIdentifier","src":"7333:6:89"}],"functionName":{"name":"shl","nativeSrc":"7326:3:89","nodeType":"YulIdentifier","src":"7326:3:89"},"nativeSrc":"7326:14:89","nodeType":"YulFunctionCall","src":"7326:14:89"},{"kind":"number","nativeSrc":"7342:1:89","nodeType":"YulLiteral","src":"7342:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7322:3:89","nodeType":"YulIdentifier","src":"7322:3:89"},"nativeSrc":"7322:22:89","nodeType":"YulFunctionCall","src":"7322:22:89"}],"functionName":{"name":"sstore","nativeSrc":"7309:6:89","nodeType":"YulIdentifier","src":"7309:6:89"},"nativeSrc":"7309:36:89","nodeType":"YulFunctionCall","src":"7309:36:89"},"nativeSrc":"7309:36:89","nodeType":"YulExpressionStatement","src":"7309:36:89"}]},"nativeSrc":"6706:649:89","nodeType":"YulCase","src":"6706:649:89","value":{"kind":"number","nativeSrc":"6711:1:89","nodeType":"YulLiteral","src":"6711:1:89","type":"","value":"1"}},{"body":{"nativeSrc":"7372:234:89","nodeType":"YulBlock","src":"7372:234:89","statements":[{"nativeSrc":"7386:14:89","nodeType":"YulVariableDeclaration","src":"7386:14:89","value":{"kind":"number","nativeSrc":"7399:1:89","nodeType":"YulLiteral","src":"7399:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7390:5:89","nodeType":"YulTypedName","src":"7390:5:89","type":""}]},{"body":{"nativeSrc":"7435:67:89","nodeType":"YulBlock","src":"7435:67:89","statements":[{"nativeSrc":"7453:35:89","nodeType":"YulAssignment","src":"7453:35:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7472:3:89","nodeType":"YulIdentifier","src":"7472:3:89"},{"name":"srcOffset","nativeSrc":"7477:9:89","nodeType":"YulIdentifier","src":"7477:9:89"}],"functionName":{"name":"add","nativeSrc":"7468:3:89","nodeType":"YulIdentifier","src":"7468:3:89"},"nativeSrc":"7468:19:89","nodeType":"YulFunctionCall","src":"7468:19:89"}],"functionName":{"name":"mload","nativeSrc":"7462:5:89","nodeType":"YulIdentifier","src":"7462:5:89"},"nativeSrc":"7462:26:89","nodeType":"YulFunctionCall","src":"7462:26:89"},"variableNames":[{"name":"value","nativeSrc":"7453:5:89","nodeType":"YulIdentifier","src":"7453:5:89"}]}]},"condition":{"name":"newLen","nativeSrc":"7416:6:89","nodeType":"YulIdentifier","src":"7416:6:89"},"nativeSrc":"7413:89:89","nodeType":"YulIf","src":"7413:89:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7522:4:89","nodeType":"YulIdentifier","src":"7522:4:89"},{"arguments":[{"name":"value","nativeSrc":"7581:5:89","nodeType":"YulIdentifier","src":"7581:5:89"},{"name":"newLen","nativeSrc":"7588:6:89","nodeType":"YulIdentifier","src":"7588:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"7528:52:89","nodeType":"YulIdentifier","src":"7528:52:89"},"nativeSrc":"7528:67:89","nodeType":"YulFunctionCall","src":"7528:67:89"}],"functionName":{"name":"sstore","nativeSrc":"7515:6:89","nodeType":"YulIdentifier","src":"7515:6:89"},"nativeSrc":"7515:81:89","nodeType":"YulFunctionCall","src":"7515:81:89"},"nativeSrc":"7515:81:89","nodeType":"YulExpressionStatement","src":"7515:81:89"}]},"nativeSrc":"7364:242:89","nodeType":"YulCase","src":"7364:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"6686:6:89","nodeType":"YulIdentifier","src":"6686:6:89"},{"kind":"number","nativeSrc":"6694:2:89","nodeType":"YulLiteral","src":"6694:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"6683:2:89","nodeType":"YulIdentifier","src":"6683:2:89"},"nativeSrc":"6683:14:89","nodeType":"YulFunctionCall","src":"6683:14:89"},"nativeSrc":"6676:930:89","nodeType":"YulSwitch","src":"6676:930:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"6313:1299:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6394:4:89","nodeType":"YulTypedName","src":"6394:4:89","type":""},{"name":"src","nativeSrc":"6400:3:89","nodeType":"YulTypedName","src":"6400:3:89","type":""}],"src":"6313:1299:89"},{"body":{"nativeSrc":"7725:101:89","nodeType":"YulBlock","src":"7725:101:89","statements":[{"nativeSrc":"7735:26:89","nodeType":"YulAssignment","src":"7735:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7747:9:89","nodeType":"YulIdentifier","src":"7747:9:89"},{"kind":"number","nativeSrc":"7758:2:89","nodeType":"YulLiteral","src":"7758:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7743:3:89","nodeType":"YulIdentifier","src":"7743:3:89"},"nativeSrc":"7743:18:89","nodeType":"YulFunctionCall","src":"7743:18:89"},"variableNames":[{"name":"tail","nativeSrc":"7735:4:89","nodeType":"YulIdentifier","src":"7735:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7777:9:89","nodeType":"YulIdentifier","src":"7777:9:89"},{"arguments":[{"name":"value0","nativeSrc":"7792:6:89","nodeType":"YulIdentifier","src":"7792:6:89"},{"kind":"number","nativeSrc":"7800:18:89","nodeType":"YulLiteral","src":"7800:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7788:3:89","nodeType":"YulIdentifier","src":"7788:3:89"},"nativeSrc":"7788:31:89","nodeType":"YulFunctionCall","src":"7788:31:89"}],"functionName":{"name":"mstore","nativeSrc":"7770:6:89","nodeType":"YulIdentifier","src":"7770:6:89"},"nativeSrc":"7770:50:89","nodeType":"YulFunctionCall","src":"7770:50:89"},"nativeSrc":"7770:50:89","nodeType":"YulExpressionStatement","src":"7770:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"7617:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7694:9:89","nodeType":"YulTypedName","src":"7694:9:89","type":""},{"name":"value0","nativeSrc":"7705:6:89","nodeType":"YulTypedName","src":"7705:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7716:4:89","nodeType":"YulTypedName","src":"7716:4:89","type":""}],"src":"7617:209:89"},{"body":{"nativeSrc":"7988:188:89","nodeType":"YulBlock","src":"7988:188:89","statements":[{"nativeSrc":"7998:26:89","nodeType":"YulAssignment","src":"7998:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8010:9:89","nodeType":"YulIdentifier","src":"8010:9:89"},{"kind":"number","nativeSrc":"8021:2:89","nodeType":"YulLiteral","src":"8021:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8006:3:89","nodeType":"YulIdentifier","src":"8006:3:89"},"nativeSrc":"8006:18:89","nodeType":"YulFunctionCall","src":"8006:18:89"},"variableNames":[{"name":"tail","nativeSrc":"7998:4:89","nodeType":"YulIdentifier","src":"7998:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8040:9:89","nodeType":"YulIdentifier","src":"8040:9:89"},{"arguments":[{"name":"value0","nativeSrc":"8055:6:89","nodeType":"YulIdentifier","src":"8055:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8071:3:89","nodeType":"YulLiteral","src":"8071:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"8076:1:89","nodeType":"YulLiteral","src":"8076:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8067:3:89","nodeType":"YulIdentifier","src":"8067:3:89"},"nativeSrc":"8067:11:89","nodeType":"YulFunctionCall","src":"8067:11:89"},{"kind":"number","nativeSrc":"8080:1:89","nodeType":"YulLiteral","src":"8080:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8063:3:89","nodeType":"YulIdentifier","src":"8063:3:89"},"nativeSrc":"8063:19:89","nodeType":"YulFunctionCall","src":"8063:19:89"}],"functionName":{"name":"and","nativeSrc":"8051:3:89","nodeType":"YulIdentifier","src":"8051:3:89"},"nativeSrc":"8051:32:89","nodeType":"YulFunctionCall","src":"8051:32:89"}],"functionName":{"name":"mstore","nativeSrc":"8033:6:89","nodeType":"YulIdentifier","src":"8033:6:89"},"nativeSrc":"8033:51:89","nodeType":"YulFunctionCall","src":"8033:51:89"},"nativeSrc":"8033:51:89","nodeType":"YulExpressionStatement","src":"8033:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8104:9:89","nodeType":"YulIdentifier","src":"8104:9:89"},{"kind":"number","nativeSrc":"8115:2:89","nodeType":"YulLiteral","src":"8115:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8100:3:89","nodeType":"YulIdentifier","src":"8100:3:89"},"nativeSrc":"8100:18:89","nodeType":"YulFunctionCall","src":"8100:18:89"},{"name":"value1","nativeSrc":"8120:6:89","nodeType":"YulIdentifier","src":"8120:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8093:6:89","nodeType":"YulIdentifier","src":"8093:6:89"},"nativeSrc":"8093:34:89","nodeType":"YulFunctionCall","src":"8093:34:89"},"nativeSrc":"8093:34:89","nodeType":"YulExpressionStatement","src":"8093:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8147:9:89","nodeType":"YulIdentifier","src":"8147:9:89"},{"kind":"number","nativeSrc":"8158:2:89","nodeType":"YulLiteral","src":"8158:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8143:3:89","nodeType":"YulIdentifier","src":"8143:3:89"},"nativeSrc":"8143:18:89","nodeType":"YulFunctionCall","src":"8143:18:89"},{"name":"value2","nativeSrc":"8163:6:89","nodeType":"YulIdentifier","src":"8163:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8136:6:89","nodeType":"YulIdentifier","src":"8136:6:89"},"nativeSrc":"8136:34:89","nodeType":"YulFunctionCall","src":"8136:34:89"},"nativeSrc":"8136:34:89","nodeType":"YulExpressionStatement","src":"8136:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"7831:345:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7941:9:89","nodeType":"YulTypedName","src":"7941:9:89","type":""},{"name":"value2","nativeSrc":"7952:6:89","nodeType":"YulTypedName","src":"7952:6:89","type":""},{"name":"value1","nativeSrc":"7960:6:89","nodeType":"YulTypedName","src":"7960:6:89","type":""},{"name":"value0","nativeSrc":"7968:6:89","nodeType":"YulTypedName","src":"7968:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7979:4:89","nodeType":"YulTypedName","src":"7979:4:89","type":""}],"src":"7831:345:89"},{"body":{"nativeSrc":"8282:102:89","nodeType":"YulBlock","src":"8282:102:89","statements":[{"nativeSrc":"8292:26:89","nodeType":"YulAssignment","src":"8292:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8304:9:89","nodeType":"YulIdentifier","src":"8304:9:89"},{"kind":"number","nativeSrc":"8315:2:89","nodeType":"YulLiteral","src":"8315:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8300:3:89","nodeType":"YulIdentifier","src":"8300:3:89"},"nativeSrc":"8300:18:89","nodeType":"YulFunctionCall","src":"8300:18:89"},"variableNames":[{"name":"tail","nativeSrc":"8292:4:89","nodeType":"YulIdentifier","src":"8292:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8334:9:89","nodeType":"YulIdentifier","src":"8334:9:89"},{"arguments":[{"name":"value0","nativeSrc":"8349:6:89","nodeType":"YulIdentifier","src":"8349:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8365:3:89","nodeType":"YulLiteral","src":"8365:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"8370:1:89","nodeType":"YulLiteral","src":"8370:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8361:3:89","nodeType":"YulIdentifier","src":"8361:3:89"},"nativeSrc":"8361:11:89","nodeType":"YulFunctionCall","src":"8361:11:89"},{"kind":"number","nativeSrc":"8374:1:89","nodeType":"YulLiteral","src":"8374:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8357:3:89","nodeType":"YulIdentifier","src":"8357:3:89"},"nativeSrc":"8357:19:89","nodeType":"YulFunctionCall","src":"8357:19:89"}],"functionName":{"name":"and","nativeSrc":"8345:3:89","nodeType":"YulIdentifier","src":"8345:3:89"},"nativeSrc":"8345:32:89","nodeType":"YulFunctionCall","src":"8345:32:89"}],"functionName":{"name":"mstore","nativeSrc":"8327:6:89","nodeType":"YulIdentifier","src":"8327:6:89"},"nativeSrc":"8327:51:89","nodeType":"YulFunctionCall","src":"8327:51:89"},"nativeSrc":"8327:51:89","nodeType":"YulExpressionStatement","src":"8327:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8181:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8251:9:89","nodeType":"YulTypedName","src":"8251:9:89","type":""},{"name":"value0","nativeSrc":"8262:6:89","nodeType":"YulTypedName","src":"8262:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8273:4:89","nodeType":"YulTypedName","src":"8273:4:89","type":""}],"src":"8181:203:89"},{"body":{"nativeSrc":"8437:174:89","nodeType":"YulBlock","src":"8437:174:89","statements":[{"nativeSrc":"8447:16:89","nodeType":"YulAssignment","src":"8447:16:89","value":{"arguments":[{"name":"x","nativeSrc":"8458:1:89","nodeType":"YulIdentifier","src":"8458:1:89"},{"name":"y","nativeSrc":"8461:1:89","nodeType":"YulIdentifier","src":"8461:1:89"}],"functionName":{"name":"add","nativeSrc":"8454:3:89","nodeType":"YulIdentifier","src":"8454:3:89"},"nativeSrc":"8454:9:89","nodeType":"YulFunctionCall","src":"8454:9:89"},"variableNames":[{"name":"sum","nativeSrc":"8447:3:89","nodeType":"YulIdentifier","src":"8447:3:89"}]},{"body":{"nativeSrc":"8494:111:89","nodeType":"YulBlock","src":"8494:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8515:1:89","nodeType":"YulLiteral","src":"8515:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"8522:3:89","nodeType":"YulLiteral","src":"8522:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"8527:10:89","nodeType":"YulLiteral","src":"8527:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"8518:3:89","nodeType":"YulIdentifier","src":"8518:3:89"},"nativeSrc":"8518:20:89","nodeType":"YulFunctionCall","src":"8518:20:89"}],"functionName":{"name":"mstore","nativeSrc":"8508:6:89","nodeType":"YulIdentifier","src":"8508:6:89"},"nativeSrc":"8508:31:89","nodeType":"YulFunctionCall","src":"8508:31:89"},"nativeSrc":"8508:31:89","nodeType":"YulExpressionStatement","src":"8508:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8559:1:89","nodeType":"YulLiteral","src":"8559:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"8562:4:89","nodeType":"YulLiteral","src":"8562:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"8552:6:89","nodeType":"YulIdentifier","src":"8552:6:89"},"nativeSrc":"8552:15:89","nodeType":"YulFunctionCall","src":"8552:15:89"},"nativeSrc":"8552:15:89","nodeType":"YulExpressionStatement","src":"8552:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8587:1:89","nodeType":"YulLiteral","src":"8587:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8590:4:89","nodeType":"YulLiteral","src":"8590:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8580:6:89","nodeType":"YulIdentifier","src":"8580:6:89"},"nativeSrc":"8580:15:89","nodeType":"YulFunctionCall","src":"8580:15:89"},"nativeSrc":"8580:15:89","nodeType":"YulExpressionStatement","src":"8580:15:89"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"8478:1:89","nodeType":"YulIdentifier","src":"8478:1:89"},{"name":"sum","nativeSrc":"8481:3:89","nodeType":"YulIdentifier","src":"8481:3:89"}],"functionName":{"name":"gt","nativeSrc":"8475:2:89","nodeType":"YulIdentifier","src":"8475:2:89"},"nativeSrc":"8475:10:89","nodeType":"YulFunctionCall","src":"8475:10:89"},"nativeSrc":"8472:133:89","nodeType":"YulIf","src":"8472:133:89"}]},"name":"checked_add_t_uint256","nativeSrc":"8389:222:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8420:1:89","nodeType":"YulTypedName","src":"8420:1:89","type":""},{"name":"y","nativeSrc":"8423:1:89","nodeType":"YulTypedName","src":"8423:1:89","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"8429:3:89","nodeType":"YulTypedName","src":"8429:3:89","type":""}],"src":"8389:222:89"}]},"contents":"{\n    { }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(add(pos, i), 0x20), mload(add(add(value, i), 0x20)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_struct$_TokenInfo_$15983_memory_ptr__to_t_struct$_TokenInfo_$15983_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let memberValue0 := mload(value0)\n        mstore(add(headStart, 32), 0x80)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 160))\n        let memberValue0_1 := mload(add(value0, 32))\n        mstore(add(headStart, 64), add(sub(tail_1, headStart), not(31)))\n        let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n        mstore(add(headStart, 96), and(mload(add(value0, 64)), 0xff))\n        let memberValue0_2 := mload(add(value0, 96))\n        mstore(add(headStart, 0x80), add(sub(tail_2, headStart), not(31)))\n        tail := abi_encode_string(memberValue0_2, tail_2)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n        let value := calldataload(add(headStart, 64))\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value2 := value\n        let offset_2 := calldataload(add(headStart, 96))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_string(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635a9b0b891161008c5780639dc29fac116100665780639dc29fac146101d6578063a9059cbb146101e9578063cdbed7ad146101fc578063dd62ed3e1461020f57600080fd5b80635a9b0b891461018357806370a082311461019857806395d89b41146101ce57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610146578063313ce5671461015957806340c10f191461016e575b600080fd5b6100dc610222565b6040516100e99190610acc565b60405180910390f35b610105610100366004610b02565b6102e5565b60405190151581526020016100e9565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040519081526020016100e9565b610105610154366004610b2c565b6102ff565b60005460405160ff90911681526020016100e9565b61018161017c366004610b02565b610323565b005b61018b610339565b6040516100e99190610b69565b6101386101a6366004610bd6565b6001600160a01b03166000908152600080516020610ed8833981519152602052604090205490565b6100dc610433565b6101816101e4366004610b02565b610472565b6101056101f7366004610b02565b610484565b61018161020a366004610c96565b610492565b61013861021d366004610d43565b6105ca565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace038054606091600080516020610ed88339815191529161026190610d76565b80601f016020809104026020016040519081016040528092919081815260200182805461028d90610d76565b80156102da5780601f106102af576101008083540402835291602001916102da565b820191906000526020600020905b8154815290600101906020018083116102bd57829003601f168201915b505050505091505090565b6000336102f3818585610614565b60019150505b92915050565b60003361030d858285610626565b610318858585610691565b506001949350505050565b61032b6106f0565b610335828261071d565b5050565b61036760405180608001604052806060815260200160608152602001600060ff168152602001606081525090565b604051806080016040528061037a610222565b8152602001610387610433565b815260200161039860005460ff1690565b60ff168152602001600180546103ad90610d76565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610d76565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815250905090565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace048054606091600080516020610ed88339815191529161026190610d76565b61047a6106f0565b6103358282610753565b6000336102f3818585610691565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104d85750825b905060008267ffffffffffffffff1660011480156104f55750303b155b905081158015610503575080155b156105215760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561054b57845460ff60401b1916600160401b1785555b610553610789565b61055d89896107b4565b6000805460ff191660ff891617905560016105788782610df7565b5083156105bf57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b61062183838360016107c6565b505050565b600061063284846105ca565b9050600019811461068b578181101561067c57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61068b848484840360006107c6565b50505050565b6001600160a01b0383166106bb57604051634b637e8f60e11b815260006004820152602401610673565b6001600160a01b0382166106e55760405163ec442f0560e01b815260006004820152602401610673565b6106218383836108ae565b6002546001600160a01b0316331461071b57604051631a27eac360e11b815260040160405180910390fd5b565b6001600160a01b0382166107475760405163ec442f0560e01b815260006004820152602401610673565b610335600083836108ae565b6001600160a01b03821661077d57604051634b637e8f60e11b815260006004820152602401610673565b610335826000836108ae565b6003546001600160a01b0316331461071b57604051631a27eac360e11b815260040160405180910390fd5b6107bc6109ec565b6103358282610a35565b600080516020610ed88339815191526001600160a01b0385166107ff5760405163e602df0560e01b815260006004820152602401610673565b6001600160a01b03841661082957604051634a1406b160e11b815260006004820152602401610673565b6001600160a01b038086166000908152600183016020908152604080832093881683529290522083905581156108a757836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161089e91815260200190565b60405180910390a35b5050505050565b600080516020610ed88339815191526001600160a01b0384166108ea57818160020160008282546108df9190610eb6565b9091555061095c9050565b6001600160a01b0384166000908152602082905260409020548281101561093d5760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610673565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b03831661097a576002810180548390039055610999565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109de91815260200190565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661071b57604051631afcd79f60e31b815260040160405180910390fd5b610a3d6109ec565b600080516020610ed88339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610a778482610df7565b506004810161068b8382610df7565b6000815180845260005b81811015610aac57602081850181015186830182015201610a90565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610adf6020830184610a86565b9392505050565b80356001600160a01b0381168114610afd57600080fd5b919050565b60008060408385031215610b1557600080fd5b610b1e83610ae6565b946020939093013593505050565b600080600060608486031215610b4157600080fd5b610b4a84610ae6565b9250610b5860208501610ae6565b929592945050506040919091013590565b602081526000825160806020840152610b8560a0840182610a86565b90506020840151601f19848303016040850152610ba28282610a86565b91505060ff60408501511660608401526060840151601f19848303016080850152610bcd8282610a86565b95945050505050565b600060208284031215610be857600080fd5b610adf82610ae6565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610c1857600080fd5b813567ffffffffffffffff811115610c3257610c32610bf1565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610c6157610c61610bf1565b604052818152838201602001851015610c7957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215610cac57600080fd5b843567ffffffffffffffff811115610cc357600080fd5b610ccf87828801610c07565b945050602085013567ffffffffffffffff811115610cec57600080fd5b610cf887828801610c07565b935050604085013560ff81168114610d0f57600080fd5b9150606085013567ffffffffffffffff811115610d2b57600080fd5b610d3787828801610c07565b91505092959194509250565b60008060408385031215610d5657600080fd5b610d5f83610ae6565b9150610d6d60208401610ae6565b90509250929050565b600181811c90821680610d8a57607f821691505b602082108103610daa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561062157806000526020600020601f840160051c81016020851015610dd75750805b601f840160051c820191505b818110156108a75760008155600101610de3565b815167ffffffffffffffff811115610e1157610e11610bf1565b610e2581610e1f8454610d76565b84610db0565b6020601f821160018114610e595760008315610e415750848201515b600019600385901b1c1916600184901b1784556108a7565b600084815260208120601f198516915b82811015610e895787850151825560209485019460019092019101610e69565b5084821015610ea75786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b808201808211156102f957634e487b7160e01b600052601160045260246000fdfe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a264697066735822122023a6c413dc1757c23ec545827b60ed6a546baff705514eb212fe9bef93dfd7ca64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5A9B0B89 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x9DC29FAC GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xCDBED7AD EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5A9B0B89 EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x16E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xACC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE02 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xB2C JUMP JUMPDEST PUSH2 0x2FF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x17C CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x323 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18B PUSH2 0x339 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xB69 JUMP JUMPDEST PUSH2 0x138 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0xBD6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x433 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x472 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0xB02 JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0xC96 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH2 0x138 PUSH2 0x21D CALLDATASIZE PUSH1 0x4 PUSH2 0xD43 JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE03 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x261 SWAP1 PUSH2 0xD76 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 0x28D SWAP1 PUSH2 0xD76 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2DA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2AF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2DA 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 0x2BD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2F3 DUP2 DUP6 DUP6 PUSH2 0x614 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x30D DUP6 DUP3 DUP6 PUSH2 0x626 JUMP JUMPDEST PUSH2 0x318 DUP6 DUP6 DUP6 PUSH2 0x691 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x32B PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0x71D JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x367 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x37A PUSH2 0x222 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x387 PUSH2 0x433 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x398 PUSH1 0x0 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xD76 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 0x3D9 SWAP1 PUSH2 0xD76 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 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 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE04 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x261 SWAP1 PUSH2 0xD76 JUMP JUMPDEST PUSH2 0x47A PUSH2 0x6F0 JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0x753 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2F3 DUP2 DUP6 DUP6 PUSH2 0x691 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x4D8 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x4F5 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x503 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x521 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x54B JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x553 PUSH2 0x789 JUMP JUMPDEST PUSH2 0x55D DUP10 DUP10 PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP10 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH2 0x578 DUP8 DUP3 PUSH2 0xDF7 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x5BF JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE01 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x621 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x7C6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x632 DUP5 DUP5 PUSH2 0x5CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x68B JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x67C JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x68B DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x7C6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x621 DUP4 DUP4 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x335 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x77D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH2 0x335 DUP3 PUSH1 0x0 DUP4 PUSH2 0x8AE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7BC PUSH2 0x9EC JUMP JUMPDEST PUSH2 0x335 DUP3 DUP3 PUSH2 0xA35 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x7FF JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x829 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP4 SWAP1 SSTORE DUP2 ISZERO PUSH2 0x8A7 JUMPI DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP6 PUSH1 0x40 MLOAD PUSH2 0x89E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x8EA JUMPI DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8DF SWAP2 SWAP1 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x95C SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x93D JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x673 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x97A JUMPI PUSH1 0x2 DUP2 ADD DUP1 SLOAD DUP4 SWAP1 SUB SWAP1 SSTORE PUSH2 0x999 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 ADD SWAP1 SSTORE JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x9DE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA3D PUSH2 0x9EC JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xED8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH32 0x52C63247E1F47DB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE03 PUSH2 0xA77 DUP5 DUP3 PUSH2 0xDF7 JUMP JUMPDEST POP PUSH1 0x4 DUP2 ADD PUSH2 0x68B DUP4 DUP3 PUSH2 0xDF7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAAC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xA90 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xADF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB1E DUP4 PUSH2 0xAE6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB4A DUP5 PUSH2 0xAE6 JUMP JUMPDEST SWAP3 POP PUSH2 0xB58 PUSH1 0x20 DUP6 ADD PUSH2 0xAE6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB85 PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0xBA2 DUP3 DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF PUSH1 0x40 DUP6 ADD MLOAD AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0xBCD DUP3 DUP3 PUSH2 0xA86 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xADF DUP3 PUSH2 0xAE6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC32 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC61 JUMPI PUSH2 0xC61 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0xC79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCCF DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCF8 DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xD0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD37 DUP8 DUP3 DUP9 ADD PUSH2 0xC07 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD5F DUP4 PUSH2 0xAE6 JUMP JUMPDEST SWAP2 POP PUSH2 0xD6D PUSH1 0x20 DUP5 ADD PUSH2 0xAE6 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xD8A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDAA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x621 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0xDD7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xDE3 JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE11 JUMPI PUSH2 0xE11 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xE25 DUP2 PUSH2 0xE1F DUP5 SLOAD PUSH2 0xD76 JUMP JUMPDEST DUP5 PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0xE59 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0xE41 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xE89 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xE69 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2F9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID MSTORE 0xC6 ORIGIN SELFBALANCE 0xE1 DELEGATECALL PUSH30 0xB19D5CE0460030C497F067CA4CEBF71BA98EEADABE20BACE00A264697066 PUSH20 0x5822122023A6C413DC1757C23EC545827B60ED6A SLOAD PUSH12 0xAFF705514EB212FE9BEF93DF 0xD7 0xCA PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"393:2604:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2716:144:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5210:186;;;;;;:::i;:::-;;:::i;:::-;;;1292:14:89;;1285:22;1267:41;;1255:2;1240:18;5210:186:5;1127:187:89;3896:152:5;4027:14;;3896:152;;;1465:25:89;;;1453:2;1438:18;3896:152:5;1319:177:89;5988:244:5;;;;;;:::i;:::-;;:::i;2578:132:57:-;2669:5;2693:10;2578:132;;2693:10;;;;2022:36:89;;2010:2;1995:18;2578:132:57;1880:184:89;2060:118:57;;;;;;:::i;:::-;;:::i;:::-;;2764:231;;;:::i;:::-;;;;;;;:::i;4106:171:5:-;;;;;;:::i;:::-;-1:-1:-1;;;;;4250:20:5;4171:7;4250:20;;;-1:-1:-1;;;;;;;;;;;4250:20:5;;;;;;;4106:171;2973:148;;;:::i;2327:122:57:-;;;;;;:::i;:::-;;:::i;4472:178:5:-;;;;;;:::i;:::-;;:::i;1281:326:57:-;;;;;;:::i;:::-;;:::i;4708:195:5:-;;;;;;:::i;:::-;;:::i;2716:144::-;2846:7;2839:14;;2761:13;;-1:-1:-1;;;;;;;;;;;2064:20:5;2839:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2716:144;:::o;5210:186::-;5283:4;966:10:7;5337:31:5;966:10:7;5353:7:5;5362:5;5337:8;:31::i;:::-;5385:4;5378:11;;;5210:186;;;;;:::o;5988:244::-;6075:4;966:10:7;6131:37:5;6147:4;966:10:7;6162:5:5;6131:15;:37::i;:::-;6178:26;6188:4;6194:2;6198:5;6178:9;:26::i;:::-;-1:-1:-1;6221:4:5;;5988:244;-1:-1:-1;;;;5988:244:5:o;2060:118:57:-;2121:23;:21;:23::i;:::-;2154:17;2160:2;2164:6;2154:5;:17::i;:::-;2060:118;;:::o;2764:231::-;2804:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2804:16:57;2839:149;;;;;;;;2869:6;:4;:6::i;:::-;2839:149;;;;2897:8;:6;:8::i;:::-;2839:149;;;;2929:10;2669:5;2693:10;;;;2578:132;2929:10;2839:149;;;;;;2965:12;2839:149;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2832:156;;2764:231;:::o;2973:148:5:-;3105:9;3098:16;;3020:13;;-1:-1:-1;;;;;;;;;;;2064:20:5;3098:16;;;:::i;2327:122:57:-;2390:23;:21;:23::i;:::-;2423:19;2429:4;2435:6;2423:5;:19::i;4472:178:5:-;4541:4;966:10:7;4595:27:5;966:10:7;4612:2:5;4616:5;4595:9;:27::i;1281:326:57:-;8870:21:3;4302:15;;-1:-1:-1;;;4302:15:3;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:3;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:3;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:3;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:3;-1:-1:-1;;;5013:22:3;;;4979:67;1476:18:57::1;:16;:18::i;:::-;1504:28;1517:5;1524:7;1504:12;:28::i;:::-;1542:10;:22:::0;;-1:-1:-1;;1542:22:57::1;;::::0;::::1;;::::0;;-1:-1:-1;1574:26:57::1;1589:11:::0;-1:-1:-1;1574:26:57::1;:::i;:::-;;5070:14:3::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:3;;;5142:14;;-1:-1:-1;7770:50:89;;5142:14:3;;7758:2:89;7743:18;5142:14:3;;;;;;;5066:101;4092:1081;;;;;1281:326:57;;;;:::o;4708:195:5:-;-1:-1:-1;;;;;4867:20:5;;;4788:7;4867:20;;;:13;:20;;;;;;;;:29;;;;;;;;;;;;;4708:195::o;10001:128::-;10085:37;10094:5;10101:7;10110:5;10117:4;10085:8;:37::i;:::-;10001:128;;;:::o;11745:477::-;11844:24;11871:25;11881:5;11888:7;11871:9;:25::i;:::-;11844:52;;-1:-1:-1;;11910:16:5;:37;11906:310;;11986:5;11967:16;:24;11963:130;;;12018:60;;-1:-1:-1;;;12018:60:5;;-1:-1:-1;;;;;8051:32:89;;12018:60:5;;;8033:51:89;8100:18;;;8093:34;;;8143:18;;;8136:34;;;8006:18;;12018:60:5;;;;;;;;11963:130;12134:57;12143:5;12150:7;12178:5;12159:16;:24;12185:5;12134:8;:57::i;:::-;11834:388;11745:477;;;:::o;6605:300::-;-1:-1:-1;;;;;6688:18:5;;6684:86;;6729:30;;-1:-1:-1;;;6729:30:5;;6756:1;6729:30;;;8327:51:89;8300:18;;6729:30:5;8181:203:89;6684:86:5;-1:-1:-1;;;;;6783:16:5;;6779:86;;6822:32;;-1:-1:-1;;;6822:32:5;;6851:1;6822:32;;;8327:51:89;8300:18;;6822:32:5;8181:203:89;6779:86:5;6874:24;6882:4;6888:2;6892:5;6874:7;:24::i;1613:152:57:-;1688:17;;-1:-1:-1;;;;;1688:17:57;1674:10;:31;1670:89;;1728:20;;-1:-1:-1;;;1728:20:57;;;;;;;;;;;1670:89;1613:152::o;8733:208:5:-;-1:-1:-1;;;;;8803:21:5;;8799:91;;8847:32;;-1:-1:-1;;;8847:32:5;;8876:1;8847:32;;;8327:51:89;8300:18;;8847:32:5;8181:203:89;8799:91:5;8899:35;8915:1;8919:7;8928:5;8899:7;:35::i;9259:206::-;-1:-1:-1;;;;;9329:21:5;;9325:89;;9373:30;;-1:-1:-1;;;9373:30:5;;9400:1;9373:30;;;8327:51:89;8300:18;;9373:30:5;8181:203:89;9325:89:5;9423:35;9431:7;9448:1;9452:5;9423:7;:35::i;1771:142:57:-;1841:12;;-1:-1:-1;;;;;1841:12:57;1827:10;:26;1823:84;;1876:20;;-1:-1:-1;;;1876:20:57;;;;;;;;;;;2282:147:5;6931:20:3;:18;:20::i;:::-;2384:38:5::1;2407:5;2414:7;2384:22;:38::i;10976:487::-:0;-1:-1:-1;;;;;;;;;;;;;;;;11141:19:5;;11137:89;;11183:32;;-1:-1:-1;;;11183:32:5;;11212:1;11183:32;;;8327:51:89;8300:18;;11183:32:5;8181:203:89;11137:89:5;-1:-1:-1;;;;;11239:21:5;;11235:90;;11283:31;;-1:-1:-1;;;11283:31:5;;11311:1;11283:31;;;8327:51:89;8300:18;;11283:31:5;8181:203:89;11235:90:5;-1:-1:-1;;;;;11334:20:5;;;;;;;:13;;;:20;;;;;;;;:29;;;;;;;;;:37;;;11381:76;;;;11431:7;-1:-1:-1;;;;;11415:31:5;11424:5;-1:-1:-1;;;;;11415:31:5;;11440:5;11415:31;;;;1465:25:89;;1453:2;1438:18;;1319:177;11415:31:5;;;;;;;;11381:76;11074:389;10976:487;;;;:::o;7220:1170::-;-1:-1:-1;;;;;;;;;;;;;;;;7362:18:5;;7358:546;;7516:5;7498:1;:14;;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;7358:546:5;;-1:-1:-1;7358:546:5;;-1:-1:-1;;;;;7574:17:5;;7552:19;7574:17;;;;;;;;;;;7609:19;;;7605:115;;;7655:50;;-1:-1:-1;;;7655:50:5;;-1:-1:-1;;;;;8051:32:89;;7655:50:5;;;8033:51:89;8100:18;;;8093:34;;;8143:18;;;8136:34;;;8006:18;;7655:50:5;7831:345:89;7605:115:5;-1:-1:-1;;;;;7840:17:5;;:11;:17;;;;;;;;;;7860:19;;;;7840:39;;7358:546;-1:-1:-1;;;;;7918:16:5;;7914:429;;8081:14;;;:23;;;;;;;7914:429;;;-1:-1:-1;;;;;8294:15:5;;:11;:15;;;;;;;;;;:24;;;;;;7914:429;8373:2;-1:-1:-1;;;;;8358:25:5;8367:4;-1:-1:-1;;;;;8358:25:5;;8377:5;8358:25;;;;1465::89;;1453:2;1438:18;;1319:177;8358:25:5;;;;;;;;7295:1095;7220:1170;;;:::o;7084:141:3:-;8870:21;8560:40;-1:-1:-1;;;8560:40:3;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:3;;;;;;;;;;;2435:216:5;6931:20:3;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;2600:7:5;:15:::1;2610:5:::0;2600:7;:15:::1;:::i;:::-;-1:-1:-1::0;2625:9:5::1;::::0;::::1;:19;2637:7:::0;2625:9;:19:::1;:::i;14:400:89:-:0;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:139;170:6;167:1;164:13;156:139;;;278:4;263:13;;;259:24;;253:31;233:11;;;229:22;;222:63;185:12;156:139;;;160:3;340:1;333:4;324:6;319:3;315:16;311:27;304:38;403:4;396:2;392:7;387:2;379:6;375:15;371:29;366:3;362:39;358:50;351:57;;;14:400;;;;:::o;419:220::-;568:2;557:9;550:21;531:4;588:45;629:2;618:9;614:18;606:6;588:45;:::i;:::-;580:53;419:220;-1:-1:-1;;;419:220:89:o;644:173::-;712:20;;-1:-1:-1;;;;;761:31:89;;751:42;;741:70;;807:1;804;797:12;741:70;644:173;;;:::o;822:300::-;890:6;898;951:2;939:9;930:7;926:23;922:32;919:52;;;967:1;964;957:12;919:52;990:29;1009:9;990:29;:::i;:::-;980:39;1088:2;1073:18;;;;1060:32;;-1:-1:-1;;;822:300:89:o;1501:374::-;1578:6;1586;1594;1647:2;1635:9;1626:7;1622:23;1618:32;1615:52;;;1663:1;1660;1653:12;1615:52;1686:29;1705:9;1686:29;:::i;:::-;1676:39;;1734:38;1768:2;1757:9;1753:18;1734:38;:::i;:::-;1501:374;;1724:48;;-1:-1:-1;;;1841:2:89;1826:18;;;;1813:32;;1501:374::o;2069:798::-;2254:2;2243:9;2236:21;2217:4;2292:6;2286:13;2335:4;2330:2;2319:9;2315:18;2308:32;2363:52;2410:3;2399:9;2395:19;2381:12;2363:52;:::i;:::-;2349:66;;2464:2;2456:6;2452:15;2446:22;2536:2;2532:7;2520:9;2512:6;2508:22;2504:36;2499:2;2488:9;2484:18;2477:64;2564:41;2598:6;2582:14;2564:41;:::i;:::-;2550:55;;;2669:4;2663:2;2655:6;2651:15;2645:22;2641:33;2636:2;2625:9;2621:18;2614:61;2724:2;2716:6;2712:15;2706:22;2798:2;2794:7;2782:9;2774:6;2770:22;2766:36;2759:4;2748:9;2744:20;2737:66;2820:41;2854:6;2838:14;2820:41;:::i;:::-;2812:49;2069:798;-1:-1:-1;;;;;2069:798:89:o;2872:186::-;2931:6;2984:2;2972:9;2963:7;2959:23;2955:32;2952:52;;;3000:1;2997;2990:12;2952:52;3023:29;3042:9;3023:29;:::i;3063:127::-;3124:10;3119:3;3115:20;3112:1;3105:31;3155:4;3152:1;3145:15;3179:4;3176:1;3169:15;3195:726;3238:5;3291:3;3284:4;3276:6;3272:17;3268:27;3258:55;;3309:1;3306;3299:12;3258:55;3349:6;3336:20;3379:18;3371:6;3368:30;3365:56;;;3401:18;;:::i;:::-;3450:2;3444:9;3542:2;3504:17;;-1:-1:-1;;3500:31:89;;;3533:2;3496:40;3492:54;3480:67;;3577:18;3562:34;;3598:22;;;3559:62;3556:88;;;3624:18;;:::i;:::-;3660:2;3653:22;3684;;;3725:19;;;3746:4;3721:30;3718:39;-1:-1:-1;3715:59:89;;;3770:1;3767;3760:12;3715:59;3834:6;3827:4;3819:6;3815:17;3808:4;3800:6;3796:17;3783:58;3889:1;3861:19;;;3882:4;3857:30;3850:41;;;;3865:6;3195:726;-1:-1:-1;;;3195:726:89:o;3926:912::-;4040:6;4048;4056;4064;4117:3;4105:9;4096:7;4092:23;4088:33;4085:53;;;4134:1;4131;4124:12;4085:53;4174:9;4161:23;4207:18;4199:6;4196:30;4193:50;;;4239:1;4236;4229:12;4193:50;4262;4304:7;4295:6;4284:9;4280:22;4262:50;:::i;:::-;4252:60;;;4365:2;4354:9;4350:18;4337:32;4394:18;4384:8;4381:32;4378:52;;;4426:1;4423;4416:12;4378:52;4449;4493:7;4482:8;4471:9;4467:24;4449:52;:::i;:::-;4439:62;;;4551:2;4540:9;4536:18;4523:32;4595:4;4588:5;4584:16;4577:5;4574:27;4564:55;;4615:1;4612;4605:12;4564:55;4638:5;-1:-1:-1;4696:2:89;4681:18;;4668:32;4725:18;4712:32;;4709:52;;;4757:1;4754;4747:12;4709:52;4780;4824:7;4813:8;4802:9;4798:24;4780:52;:::i;:::-;4770:62;;;3926:912;;;;;;;:::o;4843:260::-;4911:6;4919;4972:2;4960:9;4951:7;4947:23;4943:32;4940:52;;;4988:1;4985;4978:12;4940:52;5011:29;5030:9;5011:29;:::i;:::-;5001:39;;5059:38;5093:2;5082:9;5078:18;5059:38;:::i;:::-;5049:48;;4843:260;;;;;:::o;5108:380::-;5187:1;5183:12;;;;5230;;;5251:61;;5305:4;5297:6;5293:17;5283:27;;5251:61;5358:2;5350:6;5347:14;5327:18;5324:38;5321:161;;5404:10;5399:3;5395:20;5392:1;5385:31;5439:4;5436:1;5429:15;5467:4;5464:1;5457:15;5321:161;;5108:380;;;:::o;5619:518::-;5721:2;5716:3;5713:11;5710:421;;;5757:5;5754:1;5747:16;5801:4;5798:1;5788:18;5871:2;5859:10;5855:19;5852:1;5848:27;5842:4;5838:38;5907:4;5895:10;5892:20;5889:47;;;-1:-1:-1;5930:4:89;5889:47;5985:2;5980:3;5976:12;5973:1;5969:20;5963:4;5959:31;5949:41;;6040:81;6058:2;6051:5;6048:13;6040:81;;;6117:1;6103:16;;6084:1;6073:13;6040:81;;6313:1299;6439:3;6433:10;6466:18;6458:6;6455:30;6452:56;;;6488:18;;:::i;:::-;6517:97;6607:6;6567:38;6599:4;6593:11;6567:38;:::i;:::-;6561:4;6517:97;:::i;:::-;6663:4;6694:2;6683:14;;6711:1;6706:649;;;;7399:1;7416:6;7413:89;;;-1:-1:-1;7468:19:89;;;7462:26;7413:89;-1:-1:-1;;6270:1:89;6266:11;;;6262:24;6258:29;6248:40;6294:1;6290:11;;;6245:57;7515:81;;6676:930;;6706:649;5566:1;5559:14;;;5603:4;5590:18;;-1:-1:-1;;6742:20:89;;;6860:222;6874:7;6871:1;6868:14;6860:222;;;6956:19;;;6950:26;6935:42;;7063:4;7048:20;;;;7016:1;7004:14;;;;6890:12;6860:222;;;6864:3;7110:6;7101:7;7098:19;7095:201;;;7171:19;;;7165:26;-1:-1:-1;;7254:1:89;7250:14;;;7266:3;7246:24;7242:37;7238:42;7223:58;7208:74;;7095:201;-1:-1:-1;;;;7342:1:89;7326:14;;;7322:22;7309:36;;-1:-1:-1;6313:1299:89:o;8389:222::-;8454:9;;;8475:10;;;8472:133;;;8527:10;8522:3;8518:20;8515:1;8508:31;8562:4;8559:1;8552:15;8590:4;8587:1;8580:15"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","getInfo()":"5a9b0b89","initialize(string,string,uint8,string)":"cdbed7ad","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"crossChainLayer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedAccess\",\"type\":\"error\"},{\"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\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"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\":\"value\",\"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\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress_\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A contract for all Cross-Chain Layer ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"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.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(address,uint256)\":{\"details\":\"Function to burn tokens\",\"params\":{\"amount\":\"Amount of tokens to burn\",\"from\":\"Address to mint tokens to\"}},\"constructor\":{\"details\":\"Constructor function to initialize the contract with initial state.\",\"params\":{\"crossChainLayer\":\"Cross-chain layer contract address.\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.      ERC20 override\"},\"getInfo()\":{\"details\":\"Returns token info.\"},\"initialize(string,string,uint8,string)\":{\"details\":\"Constructor function to initialize the contract with initial state.\",\"params\":{\"decimals_\":\"ERC20 token decimals override.\",\"name_\":\"ERC20 token name.\",\"symbol_\":\"ERC20 token symbol.\",\"tvmAddress_\":\"Correspondent TVM token address.\"}},\"mint(address,uint256)\":{\"details\":\"Function to mint tokens\",\"params\":{\"amount\":\"Amount of tokens to mint\",\"to\":\"Address to mint tokens to\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"title\":\"CrossChainLayer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/tokens/CrossChainLayerERC20.sol\":\"CrossChainLayerERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/tokens/CrossChainLayerERC20.sol\":{\"keccak256\":\"0xd672630acb9000997a0b26e866fb17bc771d0a6b3ebdd2b86bfb09485f715eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3913c3681964917a34d7134b1cb1a12540dabb2d4264c9b2615d09a4c1fdef83\",\"dweb:/ipfs/QmUNf9Y5cB14GUP6wBHemyz51LdMm7KC11S1hB4bEZUjMF\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC20.sol\":{\"keccak256\":\"0x4259d98b73075a79ec3a7587fc6632f967f930844d02de1f61d8b292b0b81852\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd61515c9c01c176b4b26130ec977d61534231b3c2222407c0c24876be5fe168\",\"dweb:/ipfs/QmPAY3EvKHhw8ziT8CKCxLepYPBwbezarX343cR69i2UUf\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":16973,"contract":"contracts/core/tokens/CrossChainLayerERC20.sol:CrossChainLayerERC20","label":"__decimals","offset":0,"slot":"0","type":"t_uint8"},{"astId":16975,"contract":"contracts/core/tokens/CrossChainLayerERC20.sol:CrossChainLayerERC20","label":"__tvmAddress","offset":0,"slot":"1","type":"t_string_storage"},{"astId":16977,"contract":"contracts/core/tokens/CrossChainLayerERC20.sol:CrossChainLayerERC20","label":"__crossChainLayer","offset":0,"slot":"2","type":"t_address"},{"astId":16979,"contract":"contracts/core/tokens/CrossChainLayerERC20.sol:CrossChainLayerERC20","label":"__tokenUtils","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/core/tokens/CrossChainLayerERC721.sol":{"CrossChainLayerERC721":{"abi":[{"inputs":[{"internalType":"address","name":"crossChainLayer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"UnauthorizedAccess","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfo","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"baseURI_","type":"string"},{"internalType":"string","name":"tvmAddress_","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17157":{"entryPoint":null,"id":17157,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":89,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:89","nodeType":"YulBlock","src":"0:306:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"95:209:89","nodeType":"YulBlock","src":"95:209:89","statements":[{"body":{"nativeSrc":"141:16:89","nodeType":"YulBlock","src":"141:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:89","nodeType":"YulLiteral","src":"150:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:89","nodeType":"YulLiteral","src":"153:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:89","nodeType":"YulIdentifier","src":"143:6:89"},"nativeSrc":"143:12:89","nodeType":"YulFunctionCall","src":"143:12:89"},"nativeSrc":"143:12:89","nodeType":"YulExpressionStatement","src":"143:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:89","nodeType":"YulIdentifier","src":"116:7:89"},{"name":"headStart","nativeSrc":"125:9:89","nodeType":"YulIdentifier","src":"125:9:89"}],"functionName":{"name":"sub","nativeSrc":"112:3:89","nodeType":"YulIdentifier","src":"112:3:89"},"nativeSrc":"112:23:89","nodeType":"YulFunctionCall","src":"112:23:89"},{"kind":"number","nativeSrc":"137:2:89","nodeType":"YulLiteral","src":"137:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:89","nodeType":"YulIdentifier","src":"108:3:89"},"nativeSrc":"108:32:89","nodeType":"YulFunctionCall","src":"108:32:89"},"nativeSrc":"105:52:89","nodeType":"YulIf","src":"105:52:89"},{"nativeSrc":"166:29:89","nodeType":"YulVariableDeclaration","src":"166:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:89","nodeType":"YulIdentifier","src":"185:9:89"}],"functionName":{"name":"mload","nativeSrc":"179:5:89","nodeType":"YulIdentifier","src":"179:5:89"},"nativeSrc":"179:16:89","nodeType":"YulFunctionCall","src":"179:16:89"},"variables":[{"name":"value","nativeSrc":"170:5:89","nodeType":"YulTypedName","src":"170:5:89","type":""}]},{"body":{"nativeSrc":"258:16:89","nodeType":"YulBlock","src":"258:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:89","nodeType":"YulLiteral","src":"267:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:89","nodeType":"YulLiteral","src":"270:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:89","nodeType":"YulIdentifier","src":"260:6:89"},"nativeSrc":"260:12:89","nodeType":"YulFunctionCall","src":"260:12:89"},"nativeSrc":"260:12:89","nodeType":"YulExpressionStatement","src":"260:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:89","nodeType":"YulIdentifier","src":"217:5:89"},{"arguments":[{"name":"value","nativeSrc":"228:5:89","nodeType":"YulIdentifier","src":"228:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:89","nodeType":"YulLiteral","src":"243:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:89","nodeType":"YulLiteral","src":"248:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:89","nodeType":"YulIdentifier","src":"239:3:89"},"nativeSrc":"239:11:89","nodeType":"YulFunctionCall","src":"239:11:89"},{"kind":"number","nativeSrc":"252:1:89","nodeType":"YulLiteral","src":"252:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:89","nodeType":"YulIdentifier","src":"235:3:89"},"nativeSrc":"235:19:89","nodeType":"YulFunctionCall","src":"235:19:89"}],"functionName":{"name":"and","nativeSrc":"224:3:89","nodeType":"YulIdentifier","src":"224:3:89"},"nativeSrc":"224:31:89","nodeType":"YulFunctionCall","src":"224:31:89"}],"functionName":{"name":"eq","nativeSrc":"214:2:89","nodeType":"YulIdentifier","src":"214:2:89"},"nativeSrc":"214:42:89","nodeType":"YulFunctionCall","src":"214:42:89"}],"functionName":{"name":"iszero","nativeSrc":"207:6:89","nodeType":"YulIdentifier","src":"207:6:89"},"nativeSrc":"207:50:89","nodeType":"YulFunctionCall","src":"207:50:89"},"nativeSrc":"204:70:89","nodeType":"YulIf","src":"204:70:89"},{"nativeSrc":"283:15:89","nodeType":"YulAssignment","src":"283:15:89","value":{"name":"value","nativeSrc":"293:5:89","nodeType":"YulIdentifier","src":"293:5:89"},"variableNames":[{"name":"value0","nativeSrc":"283:6:89","nodeType":"YulIdentifier","src":"283:6:89"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:89","nodeType":"YulTypedName","src":"61:9:89","type":""},{"name":"dataEnd","nativeSrc":"72:7:89","nodeType":"YulTypedName","src":"72:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:89","nodeType":"YulTypedName","src":"84:6:89","type":""}],"src":"14:290:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506040516119b93803806119b9833981016040819052602c916059565b600180546001600160a01b039092166001600160a01b031992831617905560028054909116331790556087565b600060208284031215606a57600080fd5b81516001600160a01b0381168114608057600080fd5b9392505050565b611923806100966000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80636352211e116100a2578063a22cb46511610071578063a22cb46514610248578063a523d35e1461025b578063b88d4fde1461026e578063c87b56dd14610281578063e985e9c51461029457600080fd5b80636352211e146101f957806370a082311461020c5780638832e6e31461022d57806395d89b411461024057600080fd5b806323b872dd116100e957806323b872dd1461019857806342842e0e146101ab57806342966c68146101be57806355f804b3146101d15780635a9b0b89146101e457600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e6101293660046111a5565b6102a7565b60405190151581526020015b60405180910390f35b61014b6102d2565b60405161013a9190611212565b61016b610166366004611225565b610376565b6040516001600160a01b03909116815260200161013a565b61019661019136600461125a565b61038b565b005b6101966101a6366004611284565b61039a565b6101966101b9366004611284565b61042a565b6101966101cc366004611225565b61044a565b6101966101df3660046112c1565b61045e565b6101ec610473565b60405161013a9190611333565b61016b610207366004611225565b610563565b61021f61021a3660046113b1565b61056e565b60405190815260200161013a565b61019661023b366004611476565b6105ca565b61014b6105dd565b6101966102563660046114cc565b61061c565b610196610269366004611508565b610627565b61019661027c3660046115c4565b61075b565b61014b61028f366004611225565b610773565b61012e6102a2366004611613565b6107db565b60006001600160e01b0319821663c5c785b160e01b14806102cc57506102cc82610828565b92915050565b6000805160206118ce83398151915280546060919081906102f290611646565b80601f016020809104026020016040519081016040528092919081815260200182805461031e90611646565b801561036b5780601f106103405761010080835404028352916020019161036b565b820191906000526020600020905b81548152906001019060200180831161034e57829003601f168201915b505050505091505090565b600061038182610878565b506102cc826108b0565b6103968282336108ea565b5050565b6001600160a01b0382166103c957604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d68383336108f7565b9050836001600160a01b0316816001600160a01b031614610424576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103c0565b50505050565b6104458383836040518060200160405280600081525061075b565b505050565b610452610a01565b61045b81610a2e565b50565b610466610a69565b60036104458284836116c7565b61049e6040518060800160405280606081526020016060815260200160608152602001606081525090565b60405180608001604052806104b16102d2565b81526020016104be6105dd565b81526020016104cb610a94565b8152602001600080546104dd90611646565b80601f016020809104026020016040519081016040528092919081815260200182805461050990611646565b80156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b5050505050815250905090565b60006102cc82610878565b60006000805160206118ce8339815191526001600160a01b0383166105a9576040516322718ad960e21b8152600060048201526024016103c0565b6001600160a01b039092166000908152600390920160205250604090205490565b6105d2610a01565b610445838383610b26565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206118ce833981519152916102f290611646565b610396338383610b3e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561066c5750825b90506000826001600160401b031660011480156106885750303b155b905081158015610696575080155b156106b45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106de57845460ff60401b1916600160401b1785555b6106e6610a69565b6106f08989610bef565b60036106fc8882611786565b5060006107098782611786565b50831561075057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b61076684848461039a565b6104243385858585610c01565b606061077e82610878565b506000610789610a94565b905060008151116107a957604051806020016040528060008152506107d4565b806107b384610d2c565b6040516020016107c4929190611844565b6040516020818303038152906040525b9392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061085957506001600160e01b03198216635b5e139f60e01b145b806102cc57506301ffc9a760e01b6001600160e01b03198316146102cc565b60008061088483610dbe565b90506001600160a01b0381166102cc57604051637e27328960e01b8152600481018490526024016103c0565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6104458383836001610df8565b60006000805160206118ce8339815191528161091285610dbe565b90506001600160a01b0384161561092e5761092e818587610f0e565b6001600160a01b0381161561096e5761094b600086600080610df8565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b0386161561099f576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001546001600160a01b03163314610a2c57604051631a27eac360e11b815260040160405180910390fd5b565b6000610a3d60008360006108f7565b90506001600160a01b03811661039657604051637e27328960e01b8152600481018390526024016103c0565b6002546001600160a01b03163314610a2c57604051631a27eac360e11b815260040160405180910390fd5b606060038054610aa390611646565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf90611646565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b5050505050905090565b610b308383610f72565b610445336000858585610c01565b6000805160206118ce8339815191526001600160a01b038316610b7f57604051630b61174360e31b81526001600160a01b03841660048201526024016103c0565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b610bf7610fd7565b6103968282611020565b6001600160a01b0383163b15610d2557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610c43908890889087908790600401611873565b6020604051808303816000875af1925050508015610c7e575060408051601f3d908101601f19168201909252610c7b918101906118b0565b60015b610ce7573d808015610cac576040519150601f19603f3d011682016040523d82523d6000602084013e610cb1565b606091505b508051600003610cdf57604051633250574960e11b81526001600160a01b03851660048201526024016103c0565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610d2357604051633250574960e11b81526001600160a01b03851660048201526024016103c0565b505b5050505050565b60606000610d3983611051565b60010190506000816001600160401b03811115610d5857610d586113cc565b6040519080825280601f01601f191660200182016040528015610d82576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610d8c57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206118ce8339815191528180610e1b57506001600160a01b03831615155b15610edd576000610e2b85610878565b90506001600160a01b03841615801590610e575750836001600160a01b0316816001600160a01b031614155b8015610e6a5750610e6881856107db565b155b15610e935760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103c0565b8215610edb5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f19838383611129565b610445576001600160a01b038316610f4757604051637e27328960e01b8152600481018290526024016103c0565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103c0565b6001600160a01b038216610f9c57604051633250574960e11b8152600060048201526024016103c0565b6000610faa838360006108f7565b90506001600160a01b03811615610445576040516339e3563760e11b8152600060048201526024016103c0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610a2c57604051631afcd79f60e31b815260040160405180910390fd5b611028610fd7565b6000805160206118ce833981519152806110428482611786565b50600181016104248382611786565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106110905772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106110bc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106110da57662386f26fc10000830492506010015b6305f5e10083106110f2576305f5e100830492506008015b612710831061110657612710830492506004015b60648310611118576064830492506002015b600a83106102cc5760010192915050565b60006001600160a01b038316158015906111875750826001600160a01b0316846001600160a01b03161480611163575061116384846107db565b806111875750826001600160a01b031661117c836108b0565b6001600160a01b0316145b949350505050565b6001600160e01b03198116811461045b57600080fd5b6000602082840312156111b757600080fd5b81356107d48161118f565b60005b838110156111dd5781810151838201526020016111c5565b50506000910152565b600081518084526111fe8160208601602086016111c2565b601f01601f19169290920160200192915050565b6020815260006107d460208301846111e6565b60006020828403121561123757600080fd5b5035919050565b80356001600160a01b038116811461125557600080fd5b919050565b6000806040838503121561126d57600080fd5b6112768361123e565b946020939093013593505050565b60008060006060848603121561129957600080fd5b6112a28461123e565b92506112b06020850161123e565b929592945050506040919091013590565b600080602083850312156112d457600080fd5b82356001600160401b038111156112ea57600080fd5b8301601f810185136112fb57600080fd5b80356001600160401b0381111561131157600080fd5b85602082840101111561132357600080fd5b6020919091019590945092505050565b60208152600082516080602084015261134f60a08401826111e6565b90506020840151601f1984830301604085015261136c82826111e6565b9150506040840151601f1984830301606085015261138a82826111e6565b9150506060840151601f198483030160808501526113a882826111e6565b95945050505050565b6000602082840312156113c357600080fd5b6107d48261123e565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126113f357600080fd5b8135602083016000806001600160401b03841115611413576114136113cc565b50604051601f19601f85018116603f011681018181106001600160401b0382111715611441576114416113cc565b60405283815290508082840187101561145957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561148b57600080fd5b6114948461123e565b92506020840135915060408401356001600160401b038111156114b657600080fd5b6114c2868287016113e2565b9150509250925092565b600080604083850312156114df57600080fd5b6114e88361123e565b9150602083013580151581146114fd57600080fd5b809150509250929050565b6000806000806080858703121561151e57600080fd5b84356001600160401b0381111561153457600080fd5b611540878288016113e2565b94505060208501356001600160401b0381111561155c57600080fd5b611568878288016113e2565b93505060408501356001600160401b0381111561158457600080fd5b611590878288016113e2565b92505060608501356001600160401b038111156115ac57600080fd5b6115b8878288016113e2565b91505092959194509250565b600080600080608085870312156115da57600080fd5b6115e38561123e565b93506115f16020860161123e565b92506040850135915060608501356001600160401b038111156115ac57600080fd5b6000806040838503121561162657600080fd5b61162f8361123e565b915061163d6020840161123e565b90509250929050565b600181811c9082168061165a57607f821691505b60208210810361167a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561044557806000526020600020601f840160051c810160208510156116a75750805b601f840160051c820191505b81811015610d2557600081556001016116b3565b6001600160401b038311156116de576116de6113cc565b6116f2836116ec8354611646565b83611680565b6000601f841160018114611726576000851561170e5750838201355b600019600387901b1c1916600186901b178355610d25565b600083815260209020601f19861690835b828110156117575786850135825560209485019460019092019101611737565b50868210156117745760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b0381111561179f5761179f6113cc565b6117b3816117ad8454611646565b84611680565b6020601f8211600181146117e757600083156117cf5750848201515b600019600385901b1c1916600184901b178455610d25565b600084815260208120601f198516915b8281101561181757878501518255602094850194600190920191016117f7565b50848210156118355786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b600083516118568184602088016111c2565b83519083019061186a8183602088016111c2565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906118a6908301846111e6565b9695505050505050565b6000602082840312156118c257600080fd5b81516107d48161118f56fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300a264697066735822122005d67ce4f8cb4ac98e8d7edac86a6415c3f0467ec7830f8611056bfd261367e164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x19B9 CODESIZE SUB DUP1 PUSH2 0x19B9 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x59 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP2 AND CALLER OR SWAP1 SSTORE PUSH1 0x87 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1923 DUP1 PUSH2 0x96 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 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xA523D35E EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x8832E6E3 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x5A9B0B89 EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x183 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x11A5 JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1212 JUMP JUMPDEST PUSH2 0x16B PUSH2 0x166 CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x191 CALLDATASIZE PUSH1 0x4 PUSH2 0x125A JUMP JUMPDEST PUSH2 0x38B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x196 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1284 JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1284 JUMP JUMPDEST PUSH2 0x42A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1CC CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x12C1 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1EC PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1333 JUMP JUMPDEST PUSH2 0x16B PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x563 JUMP JUMPDEST PUSH2 0x21F PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x1476 JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH2 0x14B PUSH2 0x5DD JUMP JUMPDEST PUSH2 0x196 PUSH2 0x256 CALLDATASIZE PUSH1 0x4 PUSH2 0x14CC JUMP JUMPDEST PUSH2 0x61C JUMP JUMPDEST PUSH2 0x196 PUSH2 0x269 CALLDATASIZE PUSH1 0x4 PUSH2 0x1508 JUMP JUMPDEST PUSH2 0x627 JUMP JUMPDEST PUSH2 0x196 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x15C4 JUMP JUMPDEST PUSH2 0x75B JUMP JUMPDEST PUSH2 0x14B PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x773 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1613 JUMP JUMPDEST PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xC5C785B1 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2CC JUMPI POP PUSH2 0x2CC DUP3 PUSH2 0x828 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x2F2 SWAP1 PUSH2 0x1646 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 0x31E SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x36B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x340 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36B 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 0x34E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x381 DUP3 PUSH2 0x878 JUMP JUMPDEST POP PUSH2 0x2CC DUP3 PUSH2 0x8B0 JUMP JUMPDEST PUSH2 0x396 DUP3 DUP3 CALLER PUSH2 0x8EA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3D6 DUP4 DUP4 CALLER PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x75B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x452 PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x45B DUP2 PUSH2 0xA2E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x466 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x3 PUSH2 0x445 DUP3 DUP5 DUP4 PUSH2 0x16C7 JUMP JUMPDEST PUSH2 0x49E PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x4B1 PUSH2 0x2D2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4BE PUSH2 0x5DD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4CB PUSH2 0xA94 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 SLOAD PUSH2 0x4DD SWAP1 PUSH2 0x1646 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 0x509 SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x556 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x52B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x556 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 0x539 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CC DUP3 PUSH2 0x878 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x5D2 PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH2 0xB26 JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2F2 SWAP1 PUSH2 0x1646 JUMP JUMPDEST PUSH2 0x396 CALLER DUP4 DUP4 PUSH2 0xB3E JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x66C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x688 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x696 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x6B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x6DE JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x6E6 PUSH2 0xA69 JUMP JUMPDEST PUSH2 0x6F0 DUP10 DUP10 PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x3 PUSH2 0x6FC DUP9 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x709 DUP8 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x750 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x766 DUP5 DUP5 DUP5 PUSH2 0x39A JUMP JUMPDEST PUSH2 0x424 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x77E DUP3 PUSH2 0x878 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x789 PUSH2 0xA94 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x7A9 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7D4 JUMP JUMPDEST DUP1 PUSH2 0x7B3 DUP5 PUSH2 0xD2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7C4 SWAP3 SWAP2 SWAP1 PUSH2 0x1844 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x859 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x2CC JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x884 DUP4 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2CC JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xDF8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x912 DUP6 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x92E JUMPI PUSH2 0x92E DUP2 DUP6 DUP8 PUSH2 0xF0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x96E JUMPI PUSH2 0x94B PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0xDF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x99F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA3D PUSH1 0x0 DUP4 PUSH1 0x0 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x396 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0xAA3 SWAP1 PUSH2 0x1646 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 0xACF SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB1C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAF1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB1C 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 0xAFF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xB30 DUP4 DUP4 PUSH2 0xF72 JUMP JUMPDEST PUSH2 0x445 CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xB7F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH2 0xBF7 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x396 DUP3 DUP3 PUSH2 0x1020 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xD25 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xC43 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xC7E JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xC7B SWAP2 DUP2 ADD SWAP1 PUSH2 0x18B0 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xCE7 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xCAC 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 0xCB1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xCDF JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xD23 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xD39 DUP4 PUSH2 0x1051 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH2 0xD58 PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD82 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xD8C JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0xE1B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 PUSH2 0xE2B DUP6 PUSH2 0x878 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xE57 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE6A JUMPI POP PUSH2 0xE68 DUP2 DUP6 PUSH2 0x7DB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xE93 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xEDB JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xF19 DUP4 DUP4 DUP4 PUSH2 0x1129 JUMP JUMPDEST PUSH2 0x445 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFAA DUP4 DUP4 PUSH1 0x0 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x445 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1028 PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x1042 DUP5 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x424 DUP4 DUP3 PUSH2 0x1786 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x1090 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x10BC JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x10DA JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x10F2 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1106 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1118 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2CC JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1187 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1163 JUMPI POP PUSH2 0x1163 DUP5 DUP5 PUSH2 0x7DB JUMP JUMPDEST DUP1 PUSH2 0x1187 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x117C DUP4 PUSH2 0x8B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7D4 DUP2 PUSH2 0x118F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11DD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x11C5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x11FE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x11C2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x7D4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x126D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1276 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12A2 DUP5 PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH2 0x12B0 PUSH1 0x20 DUP6 ADD PUSH2 0x123E JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x12EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x12FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0x1323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x134F PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x136C DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x138A DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x13A8 DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D4 DUP3 PUSH2 0x123E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x1413 JUMPI PUSH2 0x1413 PUSH2 0x13CC JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1441 JUMPI PUSH2 0x1441 PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x1459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x148B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1494 DUP5 PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14C2 DUP7 DUP3 DUP8 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14E8 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x14FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x151E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1540 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x155C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1568 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1590 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15B8 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x123E JUMP JUMPDEST SWAP4 POP PUSH2 0x15F1 PUSH1 0x20 DUP7 ADD PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x162F DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP2 POP PUSH2 0x163D PUSH1 0x20 DUP5 ADD PUSH2 0x123E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x165A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x167A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x445 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x16A7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD25 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x16B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x16DE JUMPI PUSH2 0x16DE PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x16F2 DUP4 PUSH2 0x16EC DUP4 SLOAD PUSH2 0x1646 JUMP JUMPDEST DUP4 PUSH2 0x1680 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1726 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x170E JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1757 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1737 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x1774 JUMPI PUSH1 0x0 NOT PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x179F JUMPI PUSH2 0x179F PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x17B3 DUP2 PUSH2 0x17AD DUP5 SLOAD PUSH2 0x1646 JUMP JUMPDEST DUP5 PUSH2 0x1680 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x17E7 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x17CF JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1817 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x17F7 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x1835 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1856 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x11C2 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x186A DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x11C2 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x18A6 SWAP1 DUP4 ADD DUP5 PUSH2 0x11E6 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7D4 DUP2 PUSH2 0x118F JUMP INVALID DUP1 0xBB 0x2B PUSH4 0x8CC20BC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB0079300A264697066735822122005D67CE4F8CB BLOBBASEFEE 0xC9 DUP15 DUP14 PUSH31 0xDAC86A6415C3F0467EC7830F8611056BFD261367E164736F6C634300081C00 CALLER ","sourceMap":"386:2402:58:-:0;;;854:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;905:17;:35;;-1:-1:-1;;;;;905:35:58;;;-1:-1:-1;;;;;;905:35:58;;;;;;950:12;:25;;;;;965:10;950:25;;;386:2402;;14:290:89;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:89;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:89:o;:::-;386:2402:58;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__ERC721_init_1834":{"entryPoint":3055,"id":1834,"parameterSlots":2,"returnSlots":0},"@__ERC721_init_unchained_1862":{"entryPoint":4128,"id":1862,"parameterSlots":2,"returnSlots":0},"@_approve_2678":{"entryPoint":2282,"id":2678,"parameterSlots":3,"returnSlots":0},"@_approve_2752":{"entryPoint":3576,"id":2752,"parameterSlots":4,"returnSlots":0},"@_baseURI_17222":{"entryPoint":2708,"id":17222,"parameterSlots":0,"returnSlots":1},"@_burn_2552":{"entryPoint":2606,"id":2552,"parameterSlots":1,"returnSlots":0},"@_checkAuthorized_2298":{"entryPoint":3854,"id":2298,"parameterSlots":3,"returnSlots":0},"@_checkCrossChainLayer_17200":{"entryPoint":2561,"id":17200,"parameterSlots":0,"returnSlots":0},"@_checkInitializing_870":{"entryPoint":4055,"id":870,"parameterSlots":0,"returnSlots":0},"@_checkTokenUtils_17213":{"entryPoint":2665,"id":17213,"parameterSlots":0,"returnSlots":0},"@_getApproved_2225":{"entryPoint":2224,"id":2225,"parameterSlots":1,"returnSlots":1},"@_getERC721Storage_1818":{"entryPoint":null,"id":1818,"parameterSlots":0,"returnSlots":1},"@_getInitializableStorage_947":{"entryPoint":null,"id":947,"parameterSlots":0,"returnSlots":1},"@_isAuthorized_2261":{"entryPoint":4393,"id":2261,"parameterSlots":3,"returnSlots":1},"@_isInitializing_938":{"entryPoint":null,"id":938,"parameterSlots":0,"returnSlots":1},"@_mint_2474":{"entryPoint":3954,"id":2474,"parameterSlots":2,"returnSlots":0},"@_msgSender_2855":{"entryPoint":null,"id":2855,"parameterSlots":0,"returnSlots":1},"@_ownerOf_2205":{"entryPoint":3518,"id":2205,"parameterSlots":1,"returnSlots":1},"@_requireOwned_2826":{"entryPoint":2168,"id":2826,"parameterSlots":1,"returnSlots":1},"@_safeMint_2519":{"entryPoint":2854,"id":2519,"parameterSlots":3,"returnSlots":0},"@_setApprovalForAll_2797":{"entryPoint":2878,"id":2797,"parameterSlots":3,"returnSlots":0},"@_update_2424":{"entryPoint":2295,"id":2424,"parameterSlots":3,"returnSlots":1},"@approve_2034":{"entryPoint":907,"id":2034,"parameterSlots":2,"returnSlots":0},"@balanceOf_1928":{"entryPoint":1390,"id":1928,"parameterSlots":1,"returnSlots":1},"@burn_17269":{"entryPoint":1098,"id":17269,"parameterSlots":1,"returnSlots":0},"@checkOnERC721Received_6368":{"entryPoint":3073,"id":6368,"parameterSlots":5,"returnSlots":0},"@getApproved_2051":{"entryPoint":886,"id":2051,"parameterSlots":1,"returnSlots":1},"@getInfo_17286":{"entryPoint":1139,"id":17286,"parameterSlots":0,"returnSlots":1},"@initialize_17187":{"entryPoint":1575,"id":17187,"parameterSlots":4,"returnSlots":0},"@isApprovedForAll_2091":{"entryPoint":2011,"id":2091,"parameterSlots":2,"returnSlots":1},"@log10_9871":{"entryPoint":4177,"id":9871,"parameterSlots":1,"returnSlots":1},"@name_1957":{"entryPoint":722,"id":1957,"parameterSlots":0,"returnSlots":1},"@ownerOf_1941":{"entryPoint":1379,"id":1941,"parameterSlots":1,"returnSlots":1},"@safeMint_17255":{"entryPoint":1482,"id":17255,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_2155":{"entryPoint":1066,"id":2155,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_2185":{"entryPoint":1883,"id":2185,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_2067":{"entryPoint":1564,"id":2067,"parameterSlots":2,"returnSlots":0},"@setBaseURI_17235":{"entryPoint":1118,"id":17235,"parameterSlots":2,"returnSlots":0},"@supportsInterface_17309":{"entryPoint":679,"id":17309,"parameterSlots":1,"returnSlots":1},"@supportsInterface_1893":{"entryPoint":2088,"id":1893,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2912":{"entryPoint":null,"id":2912,"parameterSlots":1,"returnSlots":1},"@symbol_1973":{"entryPoint":1501,"id":1973,"parameterSlots":0,"returnSlots":1},"@toString_7092":{"entryPoint":3372,"id":7092,"parameterSlots":1,"returnSlots":1},"@tokenURI_2009":{"entryPoint":1907,"id":2009,"parameterSlots":1,"returnSlots":1},"@transferFrom_2137":{"entryPoint":922,"id":2137,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":4670,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes":{"entryPoint":5090,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5041,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":5651,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":4740,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":5572,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":5324,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":4698,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr":{"entryPoint":5238,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes4":{"entryPoint":4517,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":6320,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":4801,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptr":{"entryPoint":5384,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":4645,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":4582,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":6212,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6259,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4626,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_NFTInfo_$15993_memory_ptr__to_t_struct$_NFTInfo_$15993_memory_ptr__fromStack_reversed":{"entryPoint":4915,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":5760,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage":{"entryPoint":5831,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":6022,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4546,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":5702,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5068,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":4495,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14211:89","nodeType":"YulBlock","src":"0:14211:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"58:87:89","nodeType":"YulBlock","src":"58:87:89","statements":[{"body":{"nativeSrc":"123:16:89","nodeType":"YulBlock","src":"123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"132:1:89","nodeType":"YulLiteral","src":"132:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"135:1:89","nodeType":"YulLiteral","src":"135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"125:6:89","nodeType":"YulIdentifier","src":"125:6:89"},"nativeSrc":"125:12:89","nodeType":"YulFunctionCall","src":"125:12:89"},"nativeSrc":"125:12:89","nodeType":"YulExpressionStatement","src":"125:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:89","nodeType":"YulIdentifier","src":"81:5:89"},{"arguments":[{"name":"value","nativeSrc":"92:5:89","nodeType":"YulIdentifier","src":"92:5:89"},{"arguments":[{"kind":"number","nativeSrc":"103:3:89","nodeType":"YulLiteral","src":"103:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"108:10:89","nodeType":"YulLiteral","src":"108:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"99:3:89","nodeType":"YulIdentifier","src":"99:3:89"},"nativeSrc":"99:20:89","nodeType":"YulFunctionCall","src":"99:20:89"}],"functionName":{"name":"and","nativeSrc":"88:3:89","nodeType":"YulIdentifier","src":"88:3:89"},"nativeSrc":"88:32:89","nodeType":"YulFunctionCall","src":"88:32:89"}],"functionName":{"name":"eq","nativeSrc":"78:2:89","nodeType":"YulIdentifier","src":"78:2:89"},"nativeSrc":"78:43:89","nodeType":"YulFunctionCall","src":"78:43:89"}],"functionName":{"name":"iszero","nativeSrc":"71:6:89","nodeType":"YulIdentifier","src":"71:6:89"},"nativeSrc":"71:51:89","nodeType":"YulFunctionCall","src":"71:51:89"},"nativeSrc":"68:71:89","nodeType":"YulIf","src":"68:71:89"}]},"name":"validator_revert_bytes4","nativeSrc":"14:131:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:89","nodeType":"YulTypedName","src":"47:5:89","type":""}],"src":"14:131:89"},{"body":{"nativeSrc":"219:176:89","nodeType":"YulBlock","src":"219:176:89","statements":[{"body":{"nativeSrc":"265:16:89","nodeType":"YulBlock","src":"265:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"274:1:89","nodeType":"YulLiteral","src":"274:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"277:1:89","nodeType":"YulLiteral","src":"277:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"267:6:89","nodeType":"YulIdentifier","src":"267:6:89"},"nativeSrc":"267:12:89","nodeType":"YulFunctionCall","src":"267:12:89"},"nativeSrc":"267:12:89","nodeType":"YulExpressionStatement","src":"267:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"240:7:89","nodeType":"YulIdentifier","src":"240:7:89"},{"name":"headStart","nativeSrc":"249:9:89","nodeType":"YulIdentifier","src":"249:9:89"}],"functionName":{"name":"sub","nativeSrc":"236:3:89","nodeType":"YulIdentifier","src":"236:3:89"},"nativeSrc":"236:23:89","nodeType":"YulFunctionCall","src":"236:23:89"},{"kind":"number","nativeSrc":"261:2:89","nodeType":"YulLiteral","src":"261:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"232:3:89","nodeType":"YulIdentifier","src":"232:3:89"},"nativeSrc":"232:32:89","nodeType":"YulFunctionCall","src":"232:32:89"},"nativeSrc":"229:52:89","nodeType":"YulIf","src":"229:52:89"},{"nativeSrc":"290:36:89","nodeType":"YulVariableDeclaration","src":"290:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"316:9:89","nodeType":"YulIdentifier","src":"316:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"303:12:89","nodeType":"YulIdentifier","src":"303:12:89"},"nativeSrc":"303:23:89","nodeType":"YulFunctionCall","src":"303:23:89"},"variables":[{"name":"value","nativeSrc":"294:5:89","nodeType":"YulTypedName","src":"294:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"359:5:89","nodeType":"YulIdentifier","src":"359:5:89"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"335:23:89","nodeType":"YulIdentifier","src":"335:23:89"},"nativeSrc":"335:30:89","nodeType":"YulFunctionCall","src":"335:30:89"},"nativeSrc":"335:30:89","nodeType":"YulExpressionStatement","src":"335:30:89"},{"nativeSrc":"374:15:89","nodeType":"YulAssignment","src":"374:15:89","value":{"name":"value","nativeSrc":"384:5:89","nodeType":"YulIdentifier","src":"384:5:89"},"variableNames":[{"name":"value0","nativeSrc":"374:6:89","nodeType":"YulIdentifier","src":"374:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"150:245:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"185:9:89","nodeType":"YulTypedName","src":"185:9:89","type":""},{"name":"dataEnd","nativeSrc":"196:7:89","nodeType":"YulTypedName","src":"196:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"208:6:89","nodeType":"YulTypedName","src":"208:6:89","type":""}],"src":"150:245:89"},{"body":{"nativeSrc":"495:92:89","nodeType":"YulBlock","src":"495:92:89","statements":[{"nativeSrc":"505:26:89","nodeType":"YulAssignment","src":"505:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"517:9:89","nodeType":"YulIdentifier","src":"517:9:89"},{"kind":"number","nativeSrc":"528:2:89","nodeType":"YulLiteral","src":"528:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"513:3:89","nodeType":"YulIdentifier","src":"513:3:89"},"nativeSrc":"513:18:89","nodeType":"YulFunctionCall","src":"513:18:89"},"variableNames":[{"name":"tail","nativeSrc":"505:4:89","nodeType":"YulIdentifier","src":"505:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"547:9:89","nodeType":"YulIdentifier","src":"547:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"572:6:89","nodeType":"YulIdentifier","src":"572:6:89"}],"functionName":{"name":"iszero","nativeSrc":"565:6:89","nodeType":"YulIdentifier","src":"565:6:89"},"nativeSrc":"565:14:89","nodeType":"YulFunctionCall","src":"565:14:89"}],"functionName":{"name":"iszero","nativeSrc":"558:6:89","nodeType":"YulIdentifier","src":"558:6:89"},"nativeSrc":"558:22:89","nodeType":"YulFunctionCall","src":"558:22:89"}],"functionName":{"name":"mstore","nativeSrc":"540:6:89","nodeType":"YulIdentifier","src":"540:6:89"},"nativeSrc":"540:41:89","nodeType":"YulFunctionCall","src":"540:41:89"},"nativeSrc":"540:41:89","nodeType":"YulExpressionStatement","src":"540:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"400:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:89","nodeType":"YulTypedName","src":"464:9:89","type":""},{"name":"value0","nativeSrc":"475:6:89","nodeType":"YulTypedName","src":"475:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"486:4:89","nodeType":"YulTypedName","src":"486:4:89","type":""}],"src":"400:187:89"},{"body":{"nativeSrc":"658:184:89","nodeType":"YulBlock","src":"658:184:89","statements":[{"nativeSrc":"668:10:89","nodeType":"YulVariableDeclaration","src":"668:10:89","value":{"kind":"number","nativeSrc":"677:1:89","nodeType":"YulLiteral","src":"677:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"672:1:89","nodeType":"YulTypedName","src":"672:1:89","type":""}]},{"body":{"nativeSrc":"737:63:89","nodeType":"YulBlock","src":"737:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"762:3:89","nodeType":"YulIdentifier","src":"762:3:89"},{"name":"i","nativeSrc":"767:1:89","nodeType":"YulIdentifier","src":"767:1:89"}],"functionName":{"name":"add","nativeSrc":"758:3:89","nodeType":"YulIdentifier","src":"758:3:89"},"nativeSrc":"758:11:89","nodeType":"YulFunctionCall","src":"758:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"781:3:89","nodeType":"YulIdentifier","src":"781:3:89"},{"name":"i","nativeSrc":"786:1:89","nodeType":"YulIdentifier","src":"786:1:89"}],"functionName":{"name":"add","nativeSrc":"777:3:89","nodeType":"YulIdentifier","src":"777:3:89"},"nativeSrc":"777:11:89","nodeType":"YulFunctionCall","src":"777:11:89"}],"functionName":{"name":"mload","nativeSrc":"771:5:89","nodeType":"YulIdentifier","src":"771:5:89"},"nativeSrc":"771:18:89","nodeType":"YulFunctionCall","src":"771:18:89"}],"functionName":{"name":"mstore","nativeSrc":"751:6:89","nodeType":"YulIdentifier","src":"751:6:89"},"nativeSrc":"751:39:89","nodeType":"YulFunctionCall","src":"751:39:89"},"nativeSrc":"751:39:89","nodeType":"YulExpressionStatement","src":"751:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"698:1:89","nodeType":"YulIdentifier","src":"698:1:89"},{"name":"length","nativeSrc":"701:6:89","nodeType":"YulIdentifier","src":"701:6:89"}],"functionName":{"name":"lt","nativeSrc":"695:2:89","nodeType":"YulIdentifier","src":"695:2:89"},"nativeSrc":"695:13:89","nodeType":"YulFunctionCall","src":"695:13:89"},"nativeSrc":"687:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"709:19:89","nodeType":"YulBlock","src":"709:19:89","statements":[{"nativeSrc":"711:15:89","nodeType":"YulAssignment","src":"711:15:89","value":{"arguments":[{"name":"i","nativeSrc":"720:1:89","nodeType":"YulIdentifier","src":"720:1:89"},{"kind":"number","nativeSrc":"723:2:89","nodeType":"YulLiteral","src":"723:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"716:3:89","nodeType":"YulIdentifier","src":"716:3:89"},"nativeSrc":"716:10:89","nodeType":"YulFunctionCall","src":"716:10:89"},"variableNames":[{"name":"i","nativeSrc":"711:1:89","nodeType":"YulIdentifier","src":"711:1:89"}]}]},"pre":{"nativeSrc":"691:3:89","nodeType":"YulBlock","src":"691:3:89","statements":[]},"src":"687:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"820:3:89","nodeType":"YulIdentifier","src":"820:3:89"},{"name":"length","nativeSrc":"825:6:89","nodeType":"YulIdentifier","src":"825:6:89"}],"functionName":{"name":"add","nativeSrc":"816:3:89","nodeType":"YulIdentifier","src":"816:3:89"},"nativeSrc":"816:16:89","nodeType":"YulFunctionCall","src":"816:16:89"},{"kind":"number","nativeSrc":"834:1:89","nodeType":"YulLiteral","src":"834:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"809:6:89","nodeType":"YulIdentifier","src":"809:6:89"},"nativeSrc":"809:27:89","nodeType":"YulFunctionCall","src":"809:27:89"},"nativeSrc":"809:27:89","nodeType":"YulExpressionStatement","src":"809:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"592:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"636:3:89","nodeType":"YulTypedName","src":"636:3:89","type":""},{"name":"dst","nativeSrc":"641:3:89","nodeType":"YulTypedName","src":"641:3:89","type":""},{"name":"length","nativeSrc":"646:6:89","nodeType":"YulTypedName","src":"646:6:89","type":""}],"src":"592:250:89"},{"body":{"nativeSrc":"897:221:89","nodeType":"YulBlock","src":"897:221:89","statements":[{"nativeSrc":"907:26:89","nodeType":"YulVariableDeclaration","src":"907:26:89","value":{"arguments":[{"name":"value","nativeSrc":"927:5:89","nodeType":"YulIdentifier","src":"927:5:89"}],"functionName":{"name":"mload","nativeSrc":"921:5:89","nodeType":"YulIdentifier","src":"921:5:89"},"nativeSrc":"921:12:89","nodeType":"YulFunctionCall","src":"921:12:89"},"variables":[{"name":"length","nativeSrc":"911:6:89","nodeType":"YulTypedName","src":"911:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"949:3:89","nodeType":"YulIdentifier","src":"949:3:89"},{"name":"length","nativeSrc":"954:6:89","nodeType":"YulIdentifier","src":"954:6:89"}],"functionName":{"name":"mstore","nativeSrc":"942:6:89","nodeType":"YulIdentifier","src":"942:6:89"},"nativeSrc":"942:19:89","nodeType":"YulFunctionCall","src":"942:19:89"},"nativeSrc":"942:19:89","nodeType":"YulExpressionStatement","src":"942:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1009:5:89","nodeType":"YulIdentifier","src":"1009:5:89"},{"kind":"number","nativeSrc":"1016:4:89","nodeType":"YulLiteral","src":"1016:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1005:3:89","nodeType":"YulIdentifier","src":"1005:3:89"},"nativeSrc":"1005:16:89","nodeType":"YulFunctionCall","src":"1005:16:89"},{"arguments":[{"name":"pos","nativeSrc":"1027:3:89","nodeType":"YulIdentifier","src":"1027:3:89"},{"kind":"number","nativeSrc":"1032:4:89","nodeType":"YulLiteral","src":"1032:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1023:3:89","nodeType":"YulIdentifier","src":"1023:3:89"},"nativeSrc":"1023:14:89","nodeType":"YulFunctionCall","src":"1023:14:89"},{"name":"length","nativeSrc":"1039:6:89","nodeType":"YulIdentifier","src":"1039:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"970:34:89","nodeType":"YulIdentifier","src":"970:34:89"},"nativeSrc":"970:76:89","nodeType":"YulFunctionCall","src":"970:76:89"},"nativeSrc":"970:76:89","nodeType":"YulExpressionStatement","src":"970:76:89"},{"nativeSrc":"1055:57:89","nodeType":"YulAssignment","src":"1055:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"1070:3:89","nodeType":"YulIdentifier","src":"1070:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1083:6:89","nodeType":"YulIdentifier","src":"1083:6:89"},{"kind":"number","nativeSrc":"1091:2:89","nodeType":"YulLiteral","src":"1091:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1079:3:89","nodeType":"YulIdentifier","src":"1079:3:89"},"nativeSrc":"1079:15:89","nodeType":"YulFunctionCall","src":"1079:15:89"},{"arguments":[{"kind":"number","nativeSrc":"1100:2:89","nodeType":"YulLiteral","src":"1100:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1096:3:89","nodeType":"YulIdentifier","src":"1096:3:89"},"nativeSrc":"1096:7:89","nodeType":"YulFunctionCall","src":"1096:7:89"}],"functionName":{"name":"and","nativeSrc":"1075:3:89","nodeType":"YulIdentifier","src":"1075:3:89"},"nativeSrc":"1075:29:89","nodeType":"YulFunctionCall","src":"1075:29:89"}],"functionName":{"name":"add","nativeSrc":"1066:3:89","nodeType":"YulIdentifier","src":"1066:3:89"},"nativeSrc":"1066:39:89","nodeType":"YulFunctionCall","src":"1066:39:89"},{"kind":"number","nativeSrc":"1107:4:89","nodeType":"YulLiteral","src":"1107:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1062:3:89","nodeType":"YulIdentifier","src":"1062:3:89"},"nativeSrc":"1062:50:89","nodeType":"YulFunctionCall","src":"1062:50:89"},"variableNames":[{"name":"end","nativeSrc":"1055:3:89","nodeType":"YulIdentifier","src":"1055:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"847:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"874:5:89","nodeType":"YulTypedName","src":"874:5:89","type":""},{"name":"pos","nativeSrc":"881:3:89","nodeType":"YulTypedName","src":"881:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"889:3:89","nodeType":"YulTypedName","src":"889:3:89","type":""}],"src":"847:271:89"},{"body":{"nativeSrc":"1244:99:89","nodeType":"YulBlock","src":"1244:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1261:9:89","nodeType":"YulIdentifier","src":"1261:9:89"},{"kind":"number","nativeSrc":"1272:2:89","nodeType":"YulLiteral","src":"1272:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1254:6:89","nodeType":"YulIdentifier","src":"1254:6:89"},"nativeSrc":"1254:21:89","nodeType":"YulFunctionCall","src":"1254:21:89"},"nativeSrc":"1254:21:89","nodeType":"YulExpressionStatement","src":"1254:21:89"},{"nativeSrc":"1284:53:89","nodeType":"YulAssignment","src":"1284:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"1310:6:89","nodeType":"YulIdentifier","src":"1310:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"1322:9:89","nodeType":"YulIdentifier","src":"1322:9:89"},{"kind":"number","nativeSrc":"1333:2:89","nodeType":"YulLiteral","src":"1333:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1318:3:89","nodeType":"YulIdentifier","src":"1318:3:89"},"nativeSrc":"1318:18:89","nodeType":"YulFunctionCall","src":"1318:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"1292:17:89","nodeType":"YulIdentifier","src":"1292:17:89"},"nativeSrc":"1292:45:89","nodeType":"YulFunctionCall","src":"1292:45:89"},"variableNames":[{"name":"tail","nativeSrc":"1284:4:89","nodeType":"YulIdentifier","src":"1284:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1123:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1213:9:89","nodeType":"YulTypedName","src":"1213:9:89","type":""},{"name":"value0","nativeSrc":"1224:6:89","nodeType":"YulTypedName","src":"1224:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1235:4:89","nodeType":"YulTypedName","src":"1235:4:89","type":""}],"src":"1123:220:89"},{"body":{"nativeSrc":"1418:156:89","nodeType":"YulBlock","src":"1418:156:89","statements":[{"body":{"nativeSrc":"1464:16:89","nodeType":"YulBlock","src":"1464:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1473:1:89","nodeType":"YulLiteral","src":"1473:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1476:1:89","nodeType":"YulLiteral","src":"1476:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1466:6:89","nodeType":"YulIdentifier","src":"1466:6:89"},"nativeSrc":"1466:12:89","nodeType":"YulFunctionCall","src":"1466:12:89"},"nativeSrc":"1466:12:89","nodeType":"YulExpressionStatement","src":"1466:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:89","nodeType":"YulIdentifier","src":"1439:7:89"},{"name":"headStart","nativeSrc":"1448:9:89","nodeType":"YulIdentifier","src":"1448:9:89"}],"functionName":{"name":"sub","nativeSrc":"1435:3:89","nodeType":"YulIdentifier","src":"1435:3:89"},"nativeSrc":"1435:23:89","nodeType":"YulFunctionCall","src":"1435:23:89"},{"kind":"number","nativeSrc":"1460:2:89","nodeType":"YulLiteral","src":"1460:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1431:3:89","nodeType":"YulIdentifier","src":"1431:3:89"},"nativeSrc":"1431:32:89","nodeType":"YulFunctionCall","src":"1431:32:89"},"nativeSrc":"1428:52:89","nodeType":"YulIf","src":"1428:52:89"},{"nativeSrc":"1489:14:89","nodeType":"YulVariableDeclaration","src":"1489:14:89","value":{"kind":"number","nativeSrc":"1502:1:89","nodeType":"YulLiteral","src":"1502:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1493:5:89","nodeType":"YulTypedName","src":"1493:5:89","type":""}]},{"nativeSrc":"1512:32:89","nodeType":"YulAssignment","src":"1512:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1534:9:89","nodeType":"YulIdentifier","src":"1534:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1521:12:89","nodeType":"YulIdentifier","src":"1521:12:89"},"nativeSrc":"1521:23:89","nodeType":"YulFunctionCall","src":"1521:23:89"},"variableNames":[{"name":"value","nativeSrc":"1512:5:89","nodeType":"YulIdentifier","src":"1512:5:89"}]},{"nativeSrc":"1553:15:89","nodeType":"YulAssignment","src":"1553:15:89","value":{"name":"value","nativeSrc":"1563:5:89","nodeType":"YulIdentifier","src":"1563:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1553:6:89","nodeType":"YulIdentifier","src":"1553:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1348:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1384:9:89","nodeType":"YulTypedName","src":"1384:9:89","type":""},{"name":"dataEnd","nativeSrc":"1395:7:89","nodeType":"YulTypedName","src":"1395:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1407:6:89","nodeType":"YulTypedName","src":"1407:6:89","type":""}],"src":"1348:226:89"},{"body":{"nativeSrc":"1680:102:89","nodeType":"YulBlock","src":"1680:102:89","statements":[{"nativeSrc":"1690:26:89","nodeType":"YulAssignment","src":"1690:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1702:9:89","nodeType":"YulIdentifier","src":"1702:9:89"},{"kind":"number","nativeSrc":"1713:2:89","nodeType":"YulLiteral","src":"1713:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1698:3:89","nodeType":"YulIdentifier","src":"1698:3:89"},"nativeSrc":"1698:18:89","nodeType":"YulFunctionCall","src":"1698:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1690:4:89","nodeType":"YulIdentifier","src":"1690:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1732:9:89","nodeType":"YulIdentifier","src":"1732:9:89"},{"arguments":[{"name":"value0","nativeSrc":"1747:6:89","nodeType":"YulIdentifier","src":"1747:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1763:3:89","nodeType":"YulLiteral","src":"1763:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1768:1:89","nodeType":"YulLiteral","src":"1768:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1759:3:89","nodeType":"YulIdentifier","src":"1759:3:89"},"nativeSrc":"1759:11:89","nodeType":"YulFunctionCall","src":"1759:11:89"},{"kind":"number","nativeSrc":"1772:1:89","nodeType":"YulLiteral","src":"1772:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1755:3:89","nodeType":"YulIdentifier","src":"1755:3:89"},"nativeSrc":"1755:19:89","nodeType":"YulFunctionCall","src":"1755:19:89"}],"functionName":{"name":"and","nativeSrc":"1743:3:89","nodeType":"YulIdentifier","src":"1743:3:89"},"nativeSrc":"1743:32:89","nodeType":"YulFunctionCall","src":"1743:32:89"}],"functionName":{"name":"mstore","nativeSrc":"1725:6:89","nodeType":"YulIdentifier","src":"1725:6:89"},"nativeSrc":"1725:51:89","nodeType":"YulFunctionCall","src":"1725:51:89"},"nativeSrc":"1725:51:89","nodeType":"YulExpressionStatement","src":"1725:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1579:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1649:9:89","nodeType":"YulTypedName","src":"1649:9:89","type":""},{"name":"value0","nativeSrc":"1660:6:89","nodeType":"YulTypedName","src":"1660:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1671:4:89","nodeType":"YulTypedName","src":"1671:4:89","type":""}],"src":"1579:203:89"},{"body":{"nativeSrc":"1836:124:89","nodeType":"YulBlock","src":"1836:124:89","statements":[{"nativeSrc":"1846:29:89","nodeType":"YulAssignment","src":"1846:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"1868:6:89","nodeType":"YulIdentifier","src":"1868:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"1855:12:89","nodeType":"YulIdentifier","src":"1855:12:89"},"nativeSrc":"1855:20:89","nodeType":"YulFunctionCall","src":"1855:20:89"},"variableNames":[{"name":"value","nativeSrc":"1846:5:89","nodeType":"YulIdentifier","src":"1846:5:89"}]},{"body":{"nativeSrc":"1938:16:89","nodeType":"YulBlock","src":"1938:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1947:1:89","nodeType":"YulLiteral","src":"1947:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1950:1:89","nodeType":"YulLiteral","src":"1950:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1940:6:89","nodeType":"YulIdentifier","src":"1940:6:89"},"nativeSrc":"1940:12:89","nodeType":"YulFunctionCall","src":"1940:12:89"},"nativeSrc":"1940:12:89","nodeType":"YulExpressionStatement","src":"1940:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1897:5:89","nodeType":"YulIdentifier","src":"1897:5:89"},{"arguments":[{"name":"value","nativeSrc":"1908:5:89","nodeType":"YulIdentifier","src":"1908:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1923:3:89","nodeType":"YulLiteral","src":"1923:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1928:1:89","nodeType":"YulLiteral","src":"1928:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1919:3:89","nodeType":"YulIdentifier","src":"1919:3:89"},"nativeSrc":"1919:11:89","nodeType":"YulFunctionCall","src":"1919:11:89"},{"kind":"number","nativeSrc":"1932:1:89","nodeType":"YulLiteral","src":"1932:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1915:3:89","nodeType":"YulIdentifier","src":"1915:3:89"},"nativeSrc":"1915:19:89","nodeType":"YulFunctionCall","src":"1915:19:89"}],"functionName":{"name":"and","nativeSrc":"1904:3:89","nodeType":"YulIdentifier","src":"1904:3:89"},"nativeSrc":"1904:31:89","nodeType":"YulFunctionCall","src":"1904:31:89"}],"functionName":{"name":"eq","nativeSrc":"1894:2:89","nodeType":"YulIdentifier","src":"1894:2:89"},"nativeSrc":"1894:42:89","nodeType":"YulFunctionCall","src":"1894:42:89"}],"functionName":{"name":"iszero","nativeSrc":"1887:6:89","nodeType":"YulIdentifier","src":"1887:6:89"},"nativeSrc":"1887:50:89","nodeType":"YulFunctionCall","src":"1887:50:89"},"nativeSrc":"1884:70:89","nodeType":"YulIf","src":"1884:70:89"}]},"name":"abi_decode_address","nativeSrc":"1787:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1815:6:89","nodeType":"YulTypedName","src":"1815:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1826:5:89","nodeType":"YulTypedName","src":"1826:5:89","type":""}],"src":"1787:173:89"},{"body":{"nativeSrc":"2052:213:89","nodeType":"YulBlock","src":"2052:213:89","statements":[{"body":{"nativeSrc":"2098:16:89","nodeType":"YulBlock","src":"2098:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2107:1:89","nodeType":"YulLiteral","src":"2107:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2110:1:89","nodeType":"YulLiteral","src":"2110:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2100:6:89","nodeType":"YulIdentifier","src":"2100:6:89"},"nativeSrc":"2100:12:89","nodeType":"YulFunctionCall","src":"2100:12:89"},"nativeSrc":"2100:12:89","nodeType":"YulExpressionStatement","src":"2100:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2073:7:89","nodeType":"YulIdentifier","src":"2073:7:89"},{"name":"headStart","nativeSrc":"2082:9:89","nodeType":"YulIdentifier","src":"2082:9:89"}],"functionName":{"name":"sub","nativeSrc":"2069:3:89","nodeType":"YulIdentifier","src":"2069:3:89"},"nativeSrc":"2069:23:89","nodeType":"YulFunctionCall","src":"2069:23:89"},{"kind":"number","nativeSrc":"2094:2:89","nodeType":"YulLiteral","src":"2094:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2065:3:89","nodeType":"YulIdentifier","src":"2065:3:89"},"nativeSrc":"2065:32:89","nodeType":"YulFunctionCall","src":"2065:32:89"},"nativeSrc":"2062:52:89","nodeType":"YulIf","src":"2062:52:89"},{"nativeSrc":"2123:39:89","nodeType":"YulAssignment","src":"2123:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2152:9:89","nodeType":"YulIdentifier","src":"2152:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2133:18:89","nodeType":"YulIdentifier","src":"2133:18:89"},"nativeSrc":"2133:29:89","nodeType":"YulFunctionCall","src":"2133:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2123:6:89","nodeType":"YulIdentifier","src":"2123:6:89"}]},{"nativeSrc":"2171:14:89","nodeType":"YulVariableDeclaration","src":"2171:14:89","value":{"kind":"number","nativeSrc":"2184:1:89","nodeType":"YulLiteral","src":"2184:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2175:5:89","nodeType":"YulTypedName","src":"2175:5:89","type":""}]},{"nativeSrc":"2194:41:89","nodeType":"YulAssignment","src":"2194:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2220:9:89","nodeType":"YulIdentifier","src":"2220:9:89"},{"kind":"number","nativeSrc":"2231:2:89","nodeType":"YulLiteral","src":"2231:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2216:3:89","nodeType":"YulIdentifier","src":"2216:3:89"},"nativeSrc":"2216:18:89","nodeType":"YulFunctionCall","src":"2216:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"2203:12:89","nodeType":"YulIdentifier","src":"2203:12:89"},"nativeSrc":"2203:32:89","nodeType":"YulFunctionCall","src":"2203:32:89"},"variableNames":[{"name":"value","nativeSrc":"2194:5:89","nodeType":"YulIdentifier","src":"2194:5:89"}]},{"nativeSrc":"2244:15:89","nodeType":"YulAssignment","src":"2244:15:89","value":{"name":"value","nativeSrc":"2254:5:89","nodeType":"YulIdentifier","src":"2254:5:89"},"variableNames":[{"name":"value1","nativeSrc":"2244:6:89","nodeType":"YulIdentifier","src":"2244:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1965:300:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2010:9:89","nodeType":"YulTypedName","src":"2010:9:89","type":""},{"name":"dataEnd","nativeSrc":"2021:7:89","nodeType":"YulTypedName","src":"2021:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2033:6:89","nodeType":"YulTypedName","src":"2033:6:89","type":""},{"name":"value1","nativeSrc":"2041:6:89","nodeType":"YulTypedName","src":"2041:6:89","type":""}],"src":"1965:300:89"},{"body":{"nativeSrc":"2374:270:89","nodeType":"YulBlock","src":"2374:270:89","statements":[{"body":{"nativeSrc":"2420:16:89","nodeType":"YulBlock","src":"2420:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2429:1:89","nodeType":"YulLiteral","src":"2429:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2432:1:89","nodeType":"YulLiteral","src":"2432:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2422:6:89","nodeType":"YulIdentifier","src":"2422:6:89"},"nativeSrc":"2422:12:89","nodeType":"YulFunctionCall","src":"2422:12:89"},"nativeSrc":"2422:12:89","nodeType":"YulExpressionStatement","src":"2422:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2395:7:89","nodeType":"YulIdentifier","src":"2395:7:89"},{"name":"headStart","nativeSrc":"2404:9:89","nodeType":"YulIdentifier","src":"2404:9:89"}],"functionName":{"name":"sub","nativeSrc":"2391:3:89","nodeType":"YulIdentifier","src":"2391:3:89"},"nativeSrc":"2391:23:89","nodeType":"YulFunctionCall","src":"2391:23:89"},{"kind":"number","nativeSrc":"2416:2:89","nodeType":"YulLiteral","src":"2416:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2387:3:89","nodeType":"YulIdentifier","src":"2387:3:89"},"nativeSrc":"2387:32:89","nodeType":"YulFunctionCall","src":"2387:32:89"},"nativeSrc":"2384:52:89","nodeType":"YulIf","src":"2384:52:89"},{"nativeSrc":"2445:39:89","nodeType":"YulAssignment","src":"2445:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2474:9:89","nodeType":"YulIdentifier","src":"2474:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2455:18:89","nodeType":"YulIdentifier","src":"2455:18:89"},"nativeSrc":"2455:29:89","nodeType":"YulFunctionCall","src":"2455:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2445:6:89","nodeType":"YulIdentifier","src":"2445:6:89"}]},{"nativeSrc":"2493:48:89","nodeType":"YulAssignment","src":"2493:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2526:9:89","nodeType":"YulIdentifier","src":"2526:9:89"},{"kind":"number","nativeSrc":"2537:2:89","nodeType":"YulLiteral","src":"2537:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2522:3:89","nodeType":"YulIdentifier","src":"2522:3:89"},"nativeSrc":"2522:18:89","nodeType":"YulFunctionCall","src":"2522:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2503:18:89","nodeType":"YulIdentifier","src":"2503:18:89"},"nativeSrc":"2503:38:89","nodeType":"YulFunctionCall","src":"2503:38:89"},"variableNames":[{"name":"value1","nativeSrc":"2493:6:89","nodeType":"YulIdentifier","src":"2493:6:89"}]},{"nativeSrc":"2550:14:89","nodeType":"YulVariableDeclaration","src":"2550:14:89","value":{"kind":"number","nativeSrc":"2563:1:89","nodeType":"YulLiteral","src":"2563:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2554:5:89","nodeType":"YulTypedName","src":"2554:5:89","type":""}]},{"nativeSrc":"2573:41:89","nodeType":"YulAssignment","src":"2573:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2599:9:89","nodeType":"YulIdentifier","src":"2599:9:89"},{"kind":"number","nativeSrc":"2610:2:89","nodeType":"YulLiteral","src":"2610:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2595:3:89","nodeType":"YulIdentifier","src":"2595:3:89"},"nativeSrc":"2595:18:89","nodeType":"YulFunctionCall","src":"2595:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"2582:12:89","nodeType":"YulIdentifier","src":"2582:12:89"},"nativeSrc":"2582:32:89","nodeType":"YulFunctionCall","src":"2582:32:89"},"variableNames":[{"name":"value","nativeSrc":"2573:5:89","nodeType":"YulIdentifier","src":"2573:5:89"}]},{"nativeSrc":"2623:15:89","nodeType":"YulAssignment","src":"2623:15:89","value":{"name":"value","nativeSrc":"2633:5:89","nodeType":"YulIdentifier","src":"2633:5:89"},"variableNames":[{"name":"value2","nativeSrc":"2623:6:89","nodeType":"YulIdentifier","src":"2623:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"2270:374:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2324:9:89","nodeType":"YulTypedName","src":"2324:9:89","type":""},{"name":"dataEnd","nativeSrc":"2335:7:89","nodeType":"YulTypedName","src":"2335:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2347:6:89","nodeType":"YulTypedName","src":"2347:6:89","type":""},{"name":"value1","nativeSrc":"2355:6:89","nodeType":"YulTypedName","src":"2355:6:89","type":""},{"name":"value2","nativeSrc":"2363:6:89","nodeType":"YulTypedName","src":"2363:6:89","type":""}],"src":"2270:374:89"},{"body":{"nativeSrc":"2739:497:89","nodeType":"YulBlock","src":"2739:497:89","statements":[{"body":{"nativeSrc":"2785:16:89","nodeType":"YulBlock","src":"2785:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2794:1:89","nodeType":"YulLiteral","src":"2794:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2797:1:89","nodeType":"YulLiteral","src":"2797:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2787:6:89","nodeType":"YulIdentifier","src":"2787:6:89"},"nativeSrc":"2787:12:89","nodeType":"YulFunctionCall","src":"2787:12:89"},"nativeSrc":"2787:12:89","nodeType":"YulExpressionStatement","src":"2787:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2760:7:89","nodeType":"YulIdentifier","src":"2760:7:89"},{"name":"headStart","nativeSrc":"2769:9:89","nodeType":"YulIdentifier","src":"2769:9:89"}],"functionName":{"name":"sub","nativeSrc":"2756:3:89","nodeType":"YulIdentifier","src":"2756:3:89"},"nativeSrc":"2756:23:89","nodeType":"YulFunctionCall","src":"2756:23:89"},{"kind":"number","nativeSrc":"2781:2:89","nodeType":"YulLiteral","src":"2781:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2752:3:89","nodeType":"YulIdentifier","src":"2752:3:89"},"nativeSrc":"2752:32:89","nodeType":"YulFunctionCall","src":"2752:32:89"},"nativeSrc":"2749:52:89","nodeType":"YulIf","src":"2749:52:89"},{"nativeSrc":"2810:37:89","nodeType":"YulVariableDeclaration","src":"2810:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2837:9:89","nodeType":"YulIdentifier","src":"2837:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"2824:12:89","nodeType":"YulIdentifier","src":"2824:12:89"},"nativeSrc":"2824:23:89","nodeType":"YulFunctionCall","src":"2824:23:89"},"variables":[{"name":"offset","nativeSrc":"2814:6:89","nodeType":"YulTypedName","src":"2814:6:89","type":""}]},{"body":{"nativeSrc":"2890:16:89","nodeType":"YulBlock","src":"2890:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2899:1:89","nodeType":"YulLiteral","src":"2899:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2902:1:89","nodeType":"YulLiteral","src":"2902:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2892:6:89","nodeType":"YulIdentifier","src":"2892:6:89"},"nativeSrc":"2892:12:89","nodeType":"YulFunctionCall","src":"2892:12:89"},"nativeSrc":"2892:12:89","nodeType":"YulExpressionStatement","src":"2892:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2862:6:89","nodeType":"YulIdentifier","src":"2862:6:89"},{"kind":"number","nativeSrc":"2870:18:89","nodeType":"YulLiteral","src":"2870:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2859:2:89","nodeType":"YulIdentifier","src":"2859:2:89"},"nativeSrc":"2859:30:89","nodeType":"YulFunctionCall","src":"2859:30:89"},"nativeSrc":"2856:50:89","nodeType":"YulIf","src":"2856:50:89"},{"nativeSrc":"2915:32:89","nodeType":"YulVariableDeclaration","src":"2915:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2929:9:89","nodeType":"YulIdentifier","src":"2929:9:89"},{"name":"offset","nativeSrc":"2940:6:89","nodeType":"YulIdentifier","src":"2940:6:89"}],"functionName":{"name":"add","nativeSrc":"2925:3:89","nodeType":"YulIdentifier","src":"2925:3:89"},"nativeSrc":"2925:22:89","nodeType":"YulFunctionCall","src":"2925:22:89"},"variables":[{"name":"_1","nativeSrc":"2919:2:89","nodeType":"YulTypedName","src":"2919:2:89","type":""}]},{"body":{"nativeSrc":"2995:16:89","nodeType":"YulBlock","src":"2995:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3004:1:89","nodeType":"YulLiteral","src":"3004:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3007:1:89","nodeType":"YulLiteral","src":"3007:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2997:6:89","nodeType":"YulIdentifier","src":"2997:6:89"},"nativeSrc":"2997:12:89","nodeType":"YulFunctionCall","src":"2997:12:89"},"nativeSrc":"2997:12:89","nodeType":"YulExpressionStatement","src":"2997:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"2974:2:89","nodeType":"YulIdentifier","src":"2974:2:89"},{"kind":"number","nativeSrc":"2978:4:89","nodeType":"YulLiteral","src":"2978:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2970:3:89","nodeType":"YulIdentifier","src":"2970:3:89"},"nativeSrc":"2970:13:89","nodeType":"YulFunctionCall","src":"2970:13:89"},{"name":"dataEnd","nativeSrc":"2985:7:89","nodeType":"YulIdentifier","src":"2985:7:89"}],"functionName":{"name":"slt","nativeSrc":"2966:3:89","nodeType":"YulIdentifier","src":"2966:3:89"},"nativeSrc":"2966:27:89","nodeType":"YulFunctionCall","src":"2966:27:89"}],"functionName":{"name":"iszero","nativeSrc":"2959:6:89","nodeType":"YulIdentifier","src":"2959:6:89"},"nativeSrc":"2959:35:89","nodeType":"YulFunctionCall","src":"2959:35:89"},"nativeSrc":"2956:55:89","nodeType":"YulIf","src":"2956:55:89"},{"nativeSrc":"3020:30:89","nodeType":"YulVariableDeclaration","src":"3020:30:89","value":{"arguments":[{"name":"_1","nativeSrc":"3047:2:89","nodeType":"YulIdentifier","src":"3047:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"3034:12:89","nodeType":"YulIdentifier","src":"3034:12:89"},"nativeSrc":"3034:16:89","nodeType":"YulFunctionCall","src":"3034:16:89"},"variables":[{"name":"length","nativeSrc":"3024:6:89","nodeType":"YulTypedName","src":"3024:6:89","type":""}]},{"body":{"nativeSrc":"3093:16:89","nodeType":"YulBlock","src":"3093:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3102:1:89","nodeType":"YulLiteral","src":"3102:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3105:1:89","nodeType":"YulLiteral","src":"3105:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3095:6:89","nodeType":"YulIdentifier","src":"3095:6:89"},"nativeSrc":"3095:12:89","nodeType":"YulFunctionCall","src":"3095:12:89"},"nativeSrc":"3095:12:89","nodeType":"YulExpressionStatement","src":"3095:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3065:6:89","nodeType":"YulIdentifier","src":"3065:6:89"},{"kind":"number","nativeSrc":"3073:18:89","nodeType":"YulLiteral","src":"3073:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3062:2:89","nodeType":"YulIdentifier","src":"3062:2:89"},"nativeSrc":"3062:30:89","nodeType":"YulFunctionCall","src":"3062:30:89"},"nativeSrc":"3059:50:89","nodeType":"YulIf","src":"3059:50:89"},{"body":{"nativeSrc":"3159:16:89","nodeType":"YulBlock","src":"3159:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:89","nodeType":"YulLiteral","src":"3168:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:1:89","nodeType":"YulLiteral","src":"3171:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3161:6:89","nodeType":"YulIdentifier","src":"3161:6:89"},"nativeSrc":"3161:12:89","nodeType":"YulFunctionCall","src":"3161:12:89"},"nativeSrc":"3161:12:89","nodeType":"YulExpressionStatement","src":"3161:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"3132:2:89","nodeType":"YulIdentifier","src":"3132:2:89"},{"name":"length","nativeSrc":"3136:6:89","nodeType":"YulIdentifier","src":"3136:6:89"}],"functionName":{"name":"add","nativeSrc":"3128:3:89","nodeType":"YulIdentifier","src":"3128:3:89"},"nativeSrc":"3128:15:89","nodeType":"YulFunctionCall","src":"3128:15:89"},{"kind":"number","nativeSrc":"3145:2:89","nodeType":"YulLiteral","src":"3145:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3124:3:89","nodeType":"YulIdentifier","src":"3124:3:89"},"nativeSrc":"3124:24:89","nodeType":"YulFunctionCall","src":"3124:24:89"},{"name":"dataEnd","nativeSrc":"3150:7:89","nodeType":"YulIdentifier","src":"3150:7:89"}],"functionName":{"name":"gt","nativeSrc":"3121:2:89","nodeType":"YulIdentifier","src":"3121:2:89"},"nativeSrc":"3121:37:89","nodeType":"YulFunctionCall","src":"3121:37:89"},"nativeSrc":"3118:57:89","nodeType":"YulIf","src":"3118:57:89"},{"nativeSrc":"3184:21:89","nodeType":"YulAssignment","src":"3184:21:89","value":{"arguments":[{"name":"_1","nativeSrc":"3198:2:89","nodeType":"YulIdentifier","src":"3198:2:89"},{"kind":"number","nativeSrc":"3202:2:89","nodeType":"YulLiteral","src":"3202:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3194:3:89","nodeType":"YulIdentifier","src":"3194:3:89"},"nativeSrc":"3194:11:89","nodeType":"YulFunctionCall","src":"3194:11:89"},"variableNames":[{"name":"value0","nativeSrc":"3184:6:89","nodeType":"YulIdentifier","src":"3184:6:89"}]},{"nativeSrc":"3214:16:89","nodeType":"YulAssignment","src":"3214:16:89","value":{"name":"length","nativeSrc":"3224:6:89","nodeType":"YulIdentifier","src":"3224:6:89"},"variableNames":[{"name":"value1","nativeSrc":"3214:6:89","nodeType":"YulIdentifier","src":"3214:6:89"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nativeSrc":"2649:587:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2697:9:89","nodeType":"YulTypedName","src":"2697:9:89","type":""},{"name":"dataEnd","nativeSrc":"2708:7:89","nodeType":"YulTypedName","src":"2708:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2720:6:89","nodeType":"YulTypedName","src":"2720:6:89","type":""},{"name":"value1","nativeSrc":"2728:6:89","nodeType":"YulTypedName","src":"2728:6:89","type":""}],"src":"2649:587:89"},{"body":{"nativeSrc":"3394:761:89","nodeType":"YulBlock","src":"3394:761:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3411:9:89","nodeType":"YulIdentifier","src":"3411:9:89"},{"kind":"number","nativeSrc":"3422:2:89","nodeType":"YulLiteral","src":"3422:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3404:6:89","nodeType":"YulIdentifier","src":"3404:6:89"},"nativeSrc":"3404:21:89","nodeType":"YulFunctionCall","src":"3404:21:89"},"nativeSrc":"3404:21:89","nodeType":"YulExpressionStatement","src":"3404:21:89"},{"nativeSrc":"3434:33:89","nodeType":"YulVariableDeclaration","src":"3434:33:89","value":{"arguments":[{"name":"value0","nativeSrc":"3460:6:89","nodeType":"YulIdentifier","src":"3460:6:89"}],"functionName":{"name":"mload","nativeSrc":"3454:5:89","nodeType":"YulIdentifier","src":"3454:5:89"},"nativeSrc":"3454:13:89","nodeType":"YulFunctionCall","src":"3454:13:89"},"variables":[{"name":"memberValue0","nativeSrc":"3438:12:89","nodeType":"YulTypedName","src":"3438:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3487:9:89","nodeType":"YulIdentifier","src":"3487:9:89"},{"kind":"number","nativeSrc":"3498:2:89","nodeType":"YulLiteral","src":"3498:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3483:3:89","nodeType":"YulIdentifier","src":"3483:3:89"},"nativeSrc":"3483:18:89","nodeType":"YulFunctionCall","src":"3483:18:89"},{"kind":"number","nativeSrc":"3503:4:89","nodeType":"YulLiteral","src":"3503:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"3476:6:89","nodeType":"YulIdentifier","src":"3476:6:89"},"nativeSrc":"3476:32:89","nodeType":"YulFunctionCall","src":"3476:32:89"},"nativeSrc":"3476:32:89","nodeType":"YulExpressionStatement","src":"3476:32:89"},{"nativeSrc":"3517:66:89","nodeType":"YulVariableDeclaration","src":"3517:66:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"3549:12:89","nodeType":"YulIdentifier","src":"3549:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"3567:9:89","nodeType":"YulIdentifier","src":"3567:9:89"},{"kind":"number","nativeSrc":"3578:3:89","nodeType":"YulLiteral","src":"3578:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3563:3:89","nodeType":"YulIdentifier","src":"3563:3:89"},"nativeSrc":"3563:19:89","nodeType":"YulFunctionCall","src":"3563:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"3531:17:89","nodeType":"YulIdentifier","src":"3531:17:89"},"nativeSrc":"3531:52:89","nodeType":"YulFunctionCall","src":"3531:52:89"},"variables":[{"name":"tail_1","nativeSrc":"3521:6:89","nodeType":"YulTypedName","src":"3521:6:89","type":""}]},{"nativeSrc":"3592:44:89","nodeType":"YulVariableDeclaration","src":"3592:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3624:6:89","nodeType":"YulIdentifier","src":"3624:6:89"},{"kind":"number","nativeSrc":"3632:2:89","nodeType":"YulLiteral","src":"3632:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3620:3:89","nodeType":"YulIdentifier","src":"3620:3:89"},"nativeSrc":"3620:15:89","nodeType":"YulFunctionCall","src":"3620:15:89"}],"functionName":{"name":"mload","nativeSrc":"3614:5:89","nodeType":"YulIdentifier","src":"3614:5:89"},"nativeSrc":"3614:22:89","nodeType":"YulFunctionCall","src":"3614:22:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"3596:14:89","nodeType":"YulTypedName","src":"3596:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3656:9:89","nodeType":"YulIdentifier","src":"3656:9:89"},{"kind":"number","nativeSrc":"3667:2:89","nodeType":"YulLiteral","src":"3667:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3652:3:89","nodeType":"YulIdentifier","src":"3652:3:89"},"nativeSrc":"3652:18:89","nodeType":"YulFunctionCall","src":"3652:18:89"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"3680:6:89","nodeType":"YulIdentifier","src":"3680:6:89"},{"name":"headStart","nativeSrc":"3688:9:89","nodeType":"YulIdentifier","src":"3688:9:89"}],"functionName":{"name":"sub","nativeSrc":"3676:3:89","nodeType":"YulIdentifier","src":"3676:3:89"},"nativeSrc":"3676:22:89","nodeType":"YulFunctionCall","src":"3676:22:89"},{"arguments":[{"kind":"number","nativeSrc":"3704:2:89","nodeType":"YulLiteral","src":"3704:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3700:3:89","nodeType":"YulIdentifier","src":"3700:3:89"},"nativeSrc":"3700:7:89","nodeType":"YulFunctionCall","src":"3700:7:89"}],"functionName":{"name":"add","nativeSrc":"3672:3:89","nodeType":"YulIdentifier","src":"3672:3:89"},"nativeSrc":"3672:36:89","nodeType":"YulFunctionCall","src":"3672:36:89"}],"functionName":{"name":"mstore","nativeSrc":"3645:6:89","nodeType":"YulIdentifier","src":"3645:6:89"},"nativeSrc":"3645:64:89","nodeType":"YulFunctionCall","src":"3645:64:89"},"nativeSrc":"3645:64:89","nodeType":"YulExpressionStatement","src":"3645:64:89"},{"nativeSrc":"3718:55:89","nodeType":"YulVariableDeclaration","src":"3718:55:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"3750:14:89","nodeType":"YulIdentifier","src":"3750:14:89"},{"name":"tail_1","nativeSrc":"3766:6:89","nodeType":"YulIdentifier","src":"3766:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"3732:17:89","nodeType":"YulIdentifier","src":"3732:17:89"},"nativeSrc":"3732:41:89","nodeType":"YulFunctionCall","src":"3732:41:89"},"variables":[{"name":"tail_2","nativeSrc":"3722:6:89","nodeType":"YulTypedName","src":"3722:6:89","type":""}]},{"nativeSrc":"3782:44:89","nodeType":"YulVariableDeclaration","src":"3782:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3814:6:89","nodeType":"YulIdentifier","src":"3814:6:89"},{"kind":"number","nativeSrc":"3822:2:89","nodeType":"YulLiteral","src":"3822:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3810:3:89","nodeType":"YulIdentifier","src":"3810:3:89"},"nativeSrc":"3810:15:89","nodeType":"YulFunctionCall","src":"3810:15:89"}],"functionName":{"name":"mload","nativeSrc":"3804:5:89","nodeType":"YulIdentifier","src":"3804:5:89"},"nativeSrc":"3804:22:89","nodeType":"YulFunctionCall","src":"3804:22:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"3786:14:89","nodeType":"YulTypedName","src":"3786:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3846:9:89","nodeType":"YulIdentifier","src":"3846:9:89"},{"kind":"number","nativeSrc":"3857:2:89","nodeType":"YulLiteral","src":"3857:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3842:3:89","nodeType":"YulIdentifier","src":"3842:3:89"},"nativeSrc":"3842:18:89","nodeType":"YulFunctionCall","src":"3842:18:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"3870:6:89","nodeType":"YulIdentifier","src":"3870:6:89"},{"name":"headStart","nativeSrc":"3878:9:89","nodeType":"YulIdentifier","src":"3878:9:89"}],"functionName":{"name":"sub","nativeSrc":"3866:3:89","nodeType":"YulIdentifier","src":"3866:3:89"},"nativeSrc":"3866:22:89","nodeType":"YulFunctionCall","src":"3866:22:89"},{"arguments":[{"kind":"number","nativeSrc":"3894:2:89","nodeType":"YulLiteral","src":"3894:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3890:3:89","nodeType":"YulIdentifier","src":"3890:3:89"},"nativeSrc":"3890:7:89","nodeType":"YulFunctionCall","src":"3890:7:89"}],"functionName":{"name":"add","nativeSrc":"3862:3:89","nodeType":"YulIdentifier","src":"3862:3:89"},"nativeSrc":"3862:36:89","nodeType":"YulFunctionCall","src":"3862:36:89"}],"functionName":{"name":"mstore","nativeSrc":"3835:6:89","nodeType":"YulIdentifier","src":"3835:6:89"},"nativeSrc":"3835:64:89","nodeType":"YulFunctionCall","src":"3835:64:89"},"nativeSrc":"3835:64:89","nodeType":"YulExpressionStatement","src":"3835:64:89"},{"nativeSrc":"3908:55:89","nodeType":"YulVariableDeclaration","src":"3908:55:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"3940:14:89","nodeType":"YulIdentifier","src":"3940:14:89"},{"name":"tail_2","nativeSrc":"3956:6:89","nodeType":"YulIdentifier","src":"3956:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"3922:17:89","nodeType":"YulIdentifier","src":"3922:17:89"},"nativeSrc":"3922:41:89","nodeType":"YulFunctionCall","src":"3922:41:89"},"variables":[{"name":"tail_3","nativeSrc":"3912:6:89","nodeType":"YulTypedName","src":"3912:6:89","type":""}]},{"nativeSrc":"3972:44:89","nodeType":"YulVariableDeclaration","src":"3972:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4004:6:89","nodeType":"YulIdentifier","src":"4004:6:89"},{"kind":"number","nativeSrc":"4012:2:89","nodeType":"YulLiteral","src":"4012:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4000:3:89","nodeType":"YulIdentifier","src":"4000:3:89"},"nativeSrc":"4000:15:89","nodeType":"YulFunctionCall","src":"4000:15:89"}],"functionName":{"name":"mload","nativeSrc":"3994:5:89","nodeType":"YulIdentifier","src":"3994:5:89"},"nativeSrc":"3994:22:89","nodeType":"YulFunctionCall","src":"3994:22:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"3976:14:89","nodeType":"YulTypedName","src":"3976:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4036:9:89","nodeType":"YulIdentifier","src":"4036:9:89"},{"kind":"number","nativeSrc":"4047:4:89","nodeType":"YulLiteral","src":"4047:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"4032:3:89","nodeType":"YulIdentifier","src":"4032:3:89"},"nativeSrc":"4032:20:89","nodeType":"YulFunctionCall","src":"4032:20:89"},{"arguments":[{"arguments":[{"name":"tail_3","nativeSrc":"4062:6:89","nodeType":"YulIdentifier","src":"4062:6:89"},{"name":"headStart","nativeSrc":"4070:9:89","nodeType":"YulIdentifier","src":"4070:9:89"}],"functionName":{"name":"sub","nativeSrc":"4058:3:89","nodeType":"YulIdentifier","src":"4058:3:89"},"nativeSrc":"4058:22:89","nodeType":"YulFunctionCall","src":"4058:22:89"},{"arguments":[{"kind":"number","nativeSrc":"4086:2:89","nodeType":"YulLiteral","src":"4086:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4082:3:89","nodeType":"YulIdentifier","src":"4082:3:89"},"nativeSrc":"4082:7:89","nodeType":"YulFunctionCall","src":"4082:7:89"}],"functionName":{"name":"add","nativeSrc":"4054:3:89","nodeType":"YulIdentifier","src":"4054:3:89"},"nativeSrc":"4054:36:89","nodeType":"YulFunctionCall","src":"4054:36:89"}],"functionName":{"name":"mstore","nativeSrc":"4025:6:89","nodeType":"YulIdentifier","src":"4025:6:89"},"nativeSrc":"4025:66:89","nodeType":"YulFunctionCall","src":"4025:66:89"},"nativeSrc":"4025:66:89","nodeType":"YulExpressionStatement","src":"4025:66:89"},{"nativeSrc":"4100:49:89","nodeType":"YulAssignment","src":"4100:49:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"4126:14:89","nodeType":"YulIdentifier","src":"4126:14:89"},{"name":"tail_3","nativeSrc":"4142:6:89","nodeType":"YulIdentifier","src":"4142:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"4108:17:89","nodeType":"YulIdentifier","src":"4108:17:89"},"nativeSrc":"4108:41:89","nodeType":"YulFunctionCall","src":"4108:41:89"},"variableNames":[{"name":"tail","nativeSrc":"4100:4:89","nodeType":"YulIdentifier","src":"4100:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_NFTInfo_$15993_memory_ptr__to_t_struct$_NFTInfo_$15993_memory_ptr__fromStack_reversed","nativeSrc":"3241:914:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3363:9:89","nodeType":"YulTypedName","src":"3363:9:89","type":""},{"name":"value0","nativeSrc":"3374:6:89","nodeType":"YulTypedName","src":"3374:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3385:4:89","nodeType":"YulTypedName","src":"3385:4:89","type":""}],"src":"3241:914:89"},{"body":{"nativeSrc":"4230:116:89","nodeType":"YulBlock","src":"4230:116:89","statements":[{"body":{"nativeSrc":"4276:16:89","nodeType":"YulBlock","src":"4276:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4285:1:89","nodeType":"YulLiteral","src":"4285:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4288:1:89","nodeType":"YulLiteral","src":"4288:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4278:6:89","nodeType":"YulIdentifier","src":"4278:6:89"},"nativeSrc":"4278:12:89","nodeType":"YulFunctionCall","src":"4278:12:89"},"nativeSrc":"4278:12:89","nodeType":"YulExpressionStatement","src":"4278:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4251:7:89","nodeType":"YulIdentifier","src":"4251:7:89"},{"name":"headStart","nativeSrc":"4260:9:89","nodeType":"YulIdentifier","src":"4260:9:89"}],"functionName":{"name":"sub","nativeSrc":"4247:3:89","nodeType":"YulIdentifier","src":"4247:3:89"},"nativeSrc":"4247:23:89","nodeType":"YulFunctionCall","src":"4247:23:89"},{"kind":"number","nativeSrc":"4272:2:89","nodeType":"YulLiteral","src":"4272:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4243:3:89","nodeType":"YulIdentifier","src":"4243:3:89"},"nativeSrc":"4243:32:89","nodeType":"YulFunctionCall","src":"4243:32:89"},"nativeSrc":"4240:52:89","nodeType":"YulIf","src":"4240:52:89"},{"nativeSrc":"4301:39:89","nodeType":"YulAssignment","src":"4301:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4330:9:89","nodeType":"YulIdentifier","src":"4330:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4311:18:89","nodeType":"YulIdentifier","src":"4311:18:89"},"nativeSrc":"4311:29:89","nodeType":"YulFunctionCall","src":"4311:29:89"},"variableNames":[{"name":"value0","nativeSrc":"4301:6:89","nodeType":"YulIdentifier","src":"4301:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4160:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4196:9:89","nodeType":"YulTypedName","src":"4196:9:89","type":""},{"name":"dataEnd","nativeSrc":"4207:7:89","nodeType":"YulTypedName","src":"4207:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4219:6:89","nodeType":"YulTypedName","src":"4219:6:89","type":""}],"src":"4160:186:89"},{"body":{"nativeSrc":"4452:76:89","nodeType":"YulBlock","src":"4452:76:89","statements":[{"nativeSrc":"4462:26:89","nodeType":"YulAssignment","src":"4462:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4474:9:89","nodeType":"YulIdentifier","src":"4474:9:89"},{"kind":"number","nativeSrc":"4485:2:89","nodeType":"YulLiteral","src":"4485:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4470:3:89","nodeType":"YulIdentifier","src":"4470:3:89"},"nativeSrc":"4470:18:89","nodeType":"YulFunctionCall","src":"4470:18:89"},"variableNames":[{"name":"tail","nativeSrc":"4462:4:89","nodeType":"YulIdentifier","src":"4462:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4504:9:89","nodeType":"YulIdentifier","src":"4504:9:89"},{"name":"value0","nativeSrc":"4515:6:89","nodeType":"YulIdentifier","src":"4515:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4497:6:89","nodeType":"YulIdentifier","src":"4497:6:89"},"nativeSrc":"4497:25:89","nodeType":"YulFunctionCall","src":"4497:25:89"},"nativeSrc":"4497:25:89","nodeType":"YulExpressionStatement","src":"4497:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"4351:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4421:9:89","nodeType":"YulTypedName","src":"4421:9:89","type":""},{"name":"value0","nativeSrc":"4432:6:89","nodeType":"YulTypedName","src":"4432:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4443:4:89","nodeType":"YulTypedName","src":"4443:4:89","type":""}],"src":"4351:177:89"},{"body":{"nativeSrc":"4565:95:89","nodeType":"YulBlock","src":"4565:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4582:1:89","nodeType":"YulLiteral","src":"4582:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"4589:3:89","nodeType":"YulLiteral","src":"4589:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"4594:10:89","nodeType":"YulLiteral","src":"4594:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"4585:3:89","nodeType":"YulIdentifier","src":"4585:3:89"},"nativeSrc":"4585:20:89","nodeType":"YulFunctionCall","src":"4585:20:89"}],"functionName":{"name":"mstore","nativeSrc":"4575:6:89","nodeType":"YulIdentifier","src":"4575:6:89"},"nativeSrc":"4575:31:89","nodeType":"YulFunctionCall","src":"4575:31:89"},"nativeSrc":"4575:31:89","nodeType":"YulExpressionStatement","src":"4575:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4622:1:89","nodeType":"YulLiteral","src":"4622:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"4625:4:89","nodeType":"YulLiteral","src":"4625:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"4615:6:89","nodeType":"YulIdentifier","src":"4615:6:89"},"nativeSrc":"4615:15:89","nodeType":"YulFunctionCall","src":"4615:15:89"},"nativeSrc":"4615:15:89","nodeType":"YulExpressionStatement","src":"4615:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4646:1:89","nodeType":"YulLiteral","src":"4646:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4649:4:89","nodeType":"YulLiteral","src":"4649:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4639:6:89","nodeType":"YulIdentifier","src":"4639:6:89"},"nativeSrc":"4639:15:89","nodeType":"YulFunctionCall","src":"4639:15:89"},"nativeSrc":"4639:15:89","nodeType":"YulExpressionStatement","src":"4639:15:89"}]},"name":"panic_error_0x41","nativeSrc":"4533:127:89","nodeType":"YulFunctionDefinition","src":"4533:127:89"},{"body":{"nativeSrc":"4717:836:89","nodeType":"YulBlock","src":"4717:836:89","statements":[{"body":{"nativeSrc":"4766:16:89","nodeType":"YulBlock","src":"4766:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4775:1:89","nodeType":"YulLiteral","src":"4775:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4778:1:89","nodeType":"YulLiteral","src":"4778:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4768:6:89","nodeType":"YulIdentifier","src":"4768:6:89"},"nativeSrc":"4768:12:89","nodeType":"YulFunctionCall","src":"4768:12:89"},"nativeSrc":"4768:12:89","nodeType":"YulExpressionStatement","src":"4768:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4745:6:89","nodeType":"YulIdentifier","src":"4745:6:89"},{"kind":"number","nativeSrc":"4753:4:89","nodeType":"YulLiteral","src":"4753:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4741:3:89","nodeType":"YulIdentifier","src":"4741:3:89"},"nativeSrc":"4741:17:89","nodeType":"YulFunctionCall","src":"4741:17:89"},{"name":"end","nativeSrc":"4760:3:89","nodeType":"YulIdentifier","src":"4760:3:89"}],"functionName":{"name":"slt","nativeSrc":"4737:3:89","nodeType":"YulIdentifier","src":"4737:3:89"},"nativeSrc":"4737:27:89","nodeType":"YulFunctionCall","src":"4737:27:89"}],"functionName":{"name":"iszero","nativeSrc":"4730:6:89","nodeType":"YulIdentifier","src":"4730:6:89"},"nativeSrc":"4730:35:89","nodeType":"YulFunctionCall","src":"4730:35:89"},"nativeSrc":"4727:55:89","nodeType":"YulIf","src":"4727:55:89"},{"nativeSrc":"4791:34:89","nodeType":"YulVariableDeclaration","src":"4791:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"4818:6:89","nodeType":"YulIdentifier","src":"4818:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"4805:12:89","nodeType":"YulIdentifier","src":"4805:12:89"},"nativeSrc":"4805:20:89","nodeType":"YulFunctionCall","src":"4805:20:89"},"variables":[{"name":"length","nativeSrc":"4795:6:89","nodeType":"YulTypedName","src":"4795:6:89","type":""}]},{"nativeSrc":"4834:28:89","nodeType":"YulVariableDeclaration","src":"4834:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"4849:6:89","nodeType":"YulIdentifier","src":"4849:6:89"},{"kind":"number","nativeSrc":"4857:4:89","nodeType":"YulLiteral","src":"4857:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4845:3:89","nodeType":"YulIdentifier","src":"4845:3:89"},"nativeSrc":"4845:17:89","nodeType":"YulFunctionCall","src":"4845:17:89"},"variables":[{"name":"src","nativeSrc":"4838:3:89","nodeType":"YulTypedName","src":"4838:3:89","type":""}]},{"nativeSrc":"4871:16:89","nodeType":"YulVariableDeclaration","src":"4871:16:89","value":{"kind":"number","nativeSrc":"4886:1:89","nodeType":"YulLiteral","src":"4886:1:89","type":"","value":"0"},"variables":[{"name":"array_1","nativeSrc":"4875:7:89","nodeType":"YulTypedName","src":"4875:7:89","type":""}]},{"nativeSrc":"4896:13:89","nodeType":"YulVariableDeclaration","src":"4896:13:89","value":{"kind":"number","nativeSrc":"4908:1:89","nodeType":"YulLiteral","src":"4908:1:89","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"4900:4:89","nodeType":"YulTypedName","src":"4900:4:89","type":""}]},{"body":{"nativeSrc":"4952:22:89","nodeType":"YulBlock","src":"4952:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4954:16:89","nodeType":"YulIdentifier","src":"4954:16:89"},"nativeSrc":"4954:18:89","nodeType":"YulFunctionCall","src":"4954:18:89"},"nativeSrc":"4954:18:89","nodeType":"YulExpressionStatement","src":"4954:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4924:6:89","nodeType":"YulIdentifier","src":"4924:6:89"},{"kind":"number","nativeSrc":"4932:18:89","nodeType":"YulLiteral","src":"4932:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4921:2:89","nodeType":"YulIdentifier","src":"4921:2:89"},"nativeSrc":"4921:30:89","nodeType":"YulFunctionCall","src":"4921:30:89"},"nativeSrc":"4918:56:89","nodeType":"YulIf","src":"4918:56:89"},{"nativeSrc":"4983:43:89","nodeType":"YulVariableDeclaration","src":"4983:43:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5005:6:89","nodeType":"YulIdentifier","src":"5005:6:89"},{"kind":"number","nativeSrc":"5013:2:89","nodeType":"YulLiteral","src":"5013:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5001:3:89","nodeType":"YulIdentifier","src":"5001:3:89"},"nativeSrc":"5001:15:89","nodeType":"YulFunctionCall","src":"5001:15:89"},{"arguments":[{"kind":"number","nativeSrc":"5022:2:89","nodeType":"YulLiteral","src":"5022:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5018:3:89","nodeType":"YulIdentifier","src":"5018:3:89"},"nativeSrc":"5018:7:89","nodeType":"YulFunctionCall","src":"5018:7:89"}],"functionName":{"name":"and","nativeSrc":"4997:3:89","nodeType":"YulIdentifier","src":"4997:3:89"},"nativeSrc":"4997:29:89","nodeType":"YulFunctionCall","src":"4997:29:89"},"variables":[{"name":"result","nativeSrc":"4987:6:89","nodeType":"YulTypedName","src":"4987:6:89","type":""}]},{"nativeSrc":"5035:25:89","nodeType":"YulAssignment","src":"5035:25:89","value":{"arguments":[{"name":"result","nativeSrc":"5047:6:89","nodeType":"YulIdentifier","src":"5047:6:89"},{"kind":"number","nativeSrc":"5055:4:89","nodeType":"YulLiteral","src":"5055:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5043:3:89","nodeType":"YulIdentifier","src":"5043:3:89"},"nativeSrc":"5043:17:89","nodeType":"YulFunctionCall","src":"5043:17:89"},"variableNames":[{"name":"size","nativeSrc":"5035:4:89","nodeType":"YulIdentifier","src":"5035:4:89"}]},{"nativeSrc":"5069:15:89","nodeType":"YulVariableDeclaration","src":"5069:15:89","value":{"kind":"number","nativeSrc":"5083:1:89","nodeType":"YulLiteral","src":"5083:1:89","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"5073:6:89","nodeType":"YulTypedName","src":"5073:6:89","type":""}]},{"nativeSrc":"5093:19:89","nodeType":"YulAssignment","src":"5093:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"5109:2:89","nodeType":"YulLiteral","src":"5109:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"5103:5:89","nodeType":"YulIdentifier","src":"5103:5:89"},"nativeSrc":"5103:9:89","nodeType":"YulFunctionCall","src":"5103:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"5093:6:89","nodeType":"YulIdentifier","src":"5093:6:89"}]},{"nativeSrc":"5121:60:89","nodeType":"YulVariableDeclaration","src":"5121:60:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"5143:6:89","nodeType":"YulIdentifier","src":"5143:6:89"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"5159:6:89","nodeType":"YulIdentifier","src":"5159:6:89"},{"kind":"number","nativeSrc":"5167:2:89","nodeType":"YulLiteral","src":"5167:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"5155:3:89","nodeType":"YulIdentifier","src":"5155:3:89"},"nativeSrc":"5155:15:89","nodeType":"YulFunctionCall","src":"5155:15:89"},{"arguments":[{"kind":"number","nativeSrc":"5176:2:89","nodeType":"YulLiteral","src":"5176:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5172:3:89","nodeType":"YulIdentifier","src":"5172:3:89"},"nativeSrc":"5172:7:89","nodeType":"YulFunctionCall","src":"5172:7:89"}],"functionName":{"name":"and","nativeSrc":"5151:3:89","nodeType":"YulIdentifier","src":"5151:3:89"},"nativeSrc":"5151:29:89","nodeType":"YulFunctionCall","src":"5151:29:89"}],"functionName":{"name":"add","nativeSrc":"5139:3:89","nodeType":"YulIdentifier","src":"5139:3:89"},"nativeSrc":"5139:42:89","nodeType":"YulFunctionCall","src":"5139:42:89"},"variables":[{"name":"newFreePtr","nativeSrc":"5125:10:89","nodeType":"YulTypedName","src":"5125:10:89","type":""}]},{"body":{"nativeSrc":"5256:22:89","nodeType":"YulBlock","src":"5256:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5258:16:89","nodeType":"YulIdentifier","src":"5258:16:89"},"nativeSrc":"5258:18:89","nodeType":"YulFunctionCall","src":"5258:18:89"},"nativeSrc":"5258:18:89","nodeType":"YulExpressionStatement","src":"5258:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5199:10:89","nodeType":"YulIdentifier","src":"5199:10:89"},{"kind":"number","nativeSrc":"5211:18:89","nodeType":"YulLiteral","src":"5211:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5196:2:89","nodeType":"YulIdentifier","src":"5196:2:89"},"nativeSrc":"5196:34:89","nodeType":"YulFunctionCall","src":"5196:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5235:10:89","nodeType":"YulIdentifier","src":"5235:10:89"},{"name":"memPtr","nativeSrc":"5247:6:89","nodeType":"YulIdentifier","src":"5247:6:89"}],"functionName":{"name":"lt","nativeSrc":"5232:2:89","nodeType":"YulIdentifier","src":"5232:2:89"},"nativeSrc":"5232:22:89","nodeType":"YulFunctionCall","src":"5232:22:89"}],"functionName":{"name":"or","nativeSrc":"5193:2:89","nodeType":"YulIdentifier","src":"5193:2:89"},"nativeSrc":"5193:62:89","nodeType":"YulFunctionCall","src":"5193:62:89"},"nativeSrc":"5190:88:89","nodeType":"YulIf","src":"5190:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5294:2:89","nodeType":"YulLiteral","src":"5294:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5298:10:89","nodeType":"YulIdentifier","src":"5298:10:89"}],"functionName":{"name":"mstore","nativeSrc":"5287:6:89","nodeType":"YulIdentifier","src":"5287:6:89"},"nativeSrc":"5287:22:89","nodeType":"YulFunctionCall","src":"5287:22:89"},"nativeSrc":"5287:22:89","nodeType":"YulExpressionStatement","src":"5287:22:89"},{"nativeSrc":"5318:17:89","nodeType":"YulAssignment","src":"5318:17:89","value":{"name":"memPtr","nativeSrc":"5329:6:89","nodeType":"YulIdentifier","src":"5329:6:89"},"variableNames":[{"name":"array_1","nativeSrc":"5318:7:89","nodeType":"YulIdentifier","src":"5318:7:89"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"5351:6:89","nodeType":"YulIdentifier","src":"5351:6:89"},{"name":"length","nativeSrc":"5359:6:89","nodeType":"YulIdentifier","src":"5359:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5344:6:89","nodeType":"YulIdentifier","src":"5344:6:89"},"nativeSrc":"5344:22:89","nodeType":"YulFunctionCall","src":"5344:22:89"},"nativeSrc":"5344:22:89","nodeType":"YulExpressionStatement","src":"5344:22:89"},{"body":{"nativeSrc":"5404:16:89","nodeType":"YulBlock","src":"5404:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5413:1:89","nodeType":"YulLiteral","src":"5413:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5416:1:89","nodeType":"YulLiteral","src":"5416:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5406:6:89","nodeType":"YulIdentifier","src":"5406:6:89"},"nativeSrc":"5406:12:89","nodeType":"YulFunctionCall","src":"5406:12:89"},"nativeSrc":"5406:12:89","nodeType":"YulExpressionStatement","src":"5406:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5385:3:89","nodeType":"YulIdentifier","src":"5385:3:89"},{"name":"length","nativeSrc":"5390:6:89","nodeType":"YulIdentifier","src":"5390:6:89"}],"functionName":{"name":"add","nativeSrc":"5381:3:89","nodeType":"YulIdentifier","src":"5381:3:89"},"nativeSrc":"5381:16:89","nodeType":"YulFunctionCall","src":"5381:16:89"},{"name":"end","nativeSrc":"5399:3:89","nodeType":"YulIdentifier","src":"5399:3:89"}],"functionName":{"name":"gt","nativeSrc":"5378:2:89","nodeType":"YulIdentifier","src":"5378:2:89"},"nativeSrc":"5378:25:89","nodeType":"YulFunctionCall","src":"5378:25:89"},"nativeSrc":"5375:45:89","nodeType":"YulIf","src":"5375:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5446:6:89","nodeType":"YulIdentifier","src":"5446:6:89"},{"kind":"number","nativeSrc":"5454:4:89","nodeType":"YulLiteral","src":"5454:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5442:3:89","nodeType":"YulIdentifier","src":"5442:3:89"},"nativeSrc":"5442:17:89","nodeType":"YulFunctionCall","src":"5442:17:89"},{"name":"src","nativeSrc":"5461:3:89","nodeType":"YulIdentifier","src":"5461:3:89"},{"name":"length","nativeSrc":"5466:6:89","nodeType":"YulIdentifier","src":"5466:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"5429:12:89","nodeType":"YulIdentifier","src":"5429:12:89"},"nativeSrc":"5429:44:89","nodeType":"YulFunctionCall","src":"5429:44:89"},"nativeSrc":"5429:44:89","nodeType":"YulExpressionStatement","src":"5429:44:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5497:6:89","nodeType":"YulIdentifier","src":"5497:6:89"},{"name":"length","nativeSrc":"5505:6:89","nodeType":"YulIdentifier","src":"5505:6:89"}],"functionName":{"name":"add","nativeSrc":"5493:3:89","nodeType":"YulIdentifier","src":"5493:3:89"},"nativeSrc":"5493:19:89","nodeType":"YulFunctionCall","src":"5493:19:89"},{"kind":"number","nativeSrc":"5514:4:89","nodeType":"YulLiteral","src":"5514:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5489:3:89","nodeType":"YulIdentifier","src":"5489:3:89"},"nativeSrc":"5489:30:89","nodeType":"YulFunctionCall","src":"5489:30:89"},{"kind":"number","nativeSrc":"5521:1:89","nodeType":"YulLiteral","src":"5521:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5482:6:89","nodeType":"YulIdentifier","src":"5482:6:89"},"nativeSrc":"5482:41:89","nodeType":"YulFunctionCall","src":"5482:41:89"},"nativeSrc":"5482:41:89","nodeType":"YulExpressionStatement","src":"5482:41:89"},{"nativeSrc":"5532:15:89","nodeType":"YulAssignment","src":"5532:15:89","value":{"name":"memPtr","nativeSrc":"5541:6:89","nodeType":"YulIdentifier","src":"5541:6:89"},"variableNames":[{"name":"array","nativeSrc":"5532:5:89","nodeType":"YulIdentifier","src":"5532:5:89"}]}]},"name":"abi_decode_bytes","nativeSrc":"4665:888:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4691:6:89","nodeType":"YulTypedName","src":"4691:6:89","type":""},{"name":"end","nativeSrc":"4699:3:89","nodeType":"YulTypedName","src":"4699:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4707:5:89","nodeType":"YulTypedName","src":"4707:5:89","type":""}],"src":"4665:888:89"},{"body":{"nativeSrc":"5671:395:89","nodeType":"YulBlock","src":"5671:395:89","statements":[{"body":{"nativeSrc":"5717:16:89","nodeType":"YulBlock","src":"5717:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5726:1:89","nodeType":"YulLiteral","src":"5726:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5729:1:89","nodeType":"YulLiteral","src":"5729:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5719:6:89","nodeType":"YulIdentifier","src":"5719:6:89"},"nativeSrc":"5719:12:89","nodeType":"YulFunctionCall","src":"5719:12:89"},"nativeSrc":"5719:12:89","nodeType":"YulExpressionStatement","src":"5719:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5692:7:89","nodeType":"YulIdentifier","src":"5692:7:89"},{"name":"headStart","nativeSrc":"5701:9:89","nodeType":"YulIdentifier","src":"5701:9:89"}],"functionName":{"name":"sub","nativeSrc":"5688:3:89","nodeType":"YulIdentifier","src":"5688:3:89"},"nativeSrc":"5688:23:89","nodeType":"YulFunctionCall","src":"5688:23:89"},{"kind":"number","nativeSrc":"5713:2:89","nodeType":"YulLiteral","src":"5713:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5684:3:89","nodeType":"YulIdentifier","src":"5684:3:89"},"nativeSrc":"5684:32:89","nodeType":"YulFunctionCall","src":"5684:32:89"},"nativeSrc":"5681:52:89","nodeType":"YulIf","src":"5681:52:89"},{"nativeSrc":"5742:39:89","nodeType":"YulAssignment","src":"5742:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5771:9:89","nodeType":"YulIdentifier","src":"5771:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5752:18:89","nodeType":"YulIdentifier","src":"5752:18:89"},"nativeSrc":"5752:29:89","nodeType":"YulFunctionCall","src":"5752:29:89"},"variableNames":[{"name":"value0","nativeSrc":"5742:6:89","nodeType":"YulIdentifier","src":"5742:6:89"}]},{"nativeSrc":"5790:14:89","nodeType":"YulVariableDeclaration","src":"5790:14:89","value":{"kind":"number","nativeSrc":"5803:1:89","nodeType":"YulLiteral","src":"5803:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5794:5:89","nodeType":"YulTypedName","src":"5794:5:89","type":""}]},{"nativeSrc":"5813:41:89","nodeType":"YulAssignment","src":"5813:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5839:9:89","nodeType":"YulIdentifier","src":"5839:9:89"},{"kind":"number","nativeSrc":"5850:2:89","nodeType":"YulLiteral","src":"5850:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5835:3:89","nodeType":"YulIdentifier","src":"5835:3:89"},"nativeSrc":"5835:18:89","nodeType":"YulFunctionCall","src":"5835:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"5822:12:89","nodeType":"YulIdentifier","src":"5822:12:89"},"nativeSrc":"5822:32:89","nodeType":"YulFunctionCall","src":"5822:32:89"},"variableNames":[{"name":"value","nativeSrc":"5813:5:89","nodeType":"YulIdentifier","src":"5813:5:89"}]},{"nativeSrc":"5863:15:89","nodeType":"YulAssignment","src":"5863:15:89","value":{"name":"value","nativeSrc":"5873:5:89","nodeType":"YulIdentifier","src":"5873:5:89"},"variableNames":[{"name":"value1","nativeSrc":"5863:6:89","nodeType":"YulIdentifier","src":"5863:6:89"}]},{"nativeSrc":"5887:46:89","nodeType":"YulVariableDeclaration","src":"5887:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5918:9:89","nodeType":"YulIdentifier","src":"5918:9:89"},{"kind":"number","nativeSrc":"5929:2:89","nodeType":"YulLiteral","src":"5929:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5914:3:89","nodeType":"YulIdentifier","src":"5914:3:89"},"nativeSrc":"5914:18:89","nodeType":"YulFunctionCall","src":"5914:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"5901:12:89","nodeType":"YulIdentifier","src":"5901:12:89"},"nativeSrc":"5901:32:89","nodeType":"YulFunctionCall","src":"5901:32:89"},"variables":[{"name":"offset","nativeSrc":"5891:6:89","nodeType":"YulTypedName","src":"5891:6:89","type":""}]},{"body":{"nativeSrc":"5976:16:89","nodeType":"YulBlock","src":"5976:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5985:1:89","nodeType":"YulLiteral","src":"5985:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5988:1:89","nodeType":"YulLiteral","src":"5988:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5978:6:89","nodeType":"YulIdentifier","src":"5978:6:89"},"nativeSrc":"5978:12:89","nodeType":"YulFunctionCall","src":"5978:12:89"},"nativeSrc":"5978:12:89","nodeType":"YulExpressionStatement","src":"5978:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5948:6:89","nodeType":"YulIdentifier","src":"5948:6:89"},{"kind":"number","nativeSrc":"5956:18:89","nodeType":"YulLiteral","src":"5956:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5945:2:89","nodeType":"YulIdentifier","src":"5945:2:89"},"nativeSrc":"5945:30:89","nodeType":"YulFunctionCall","src":"5945:30:89"},"nativeSrc":"5942:50:89","nodeType":"YulIf","src":"5942:50:89"},{"nativeSrc":"6001:59:89","nodeType":"YulAssignment","src":"6001:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6032:9:89","nodeType":"YulIdentifier","src":"6032:9:89"},{"name":"offset","nativeSrc":"6043:6:89","nodeType":"YulIdentifier","src":"6043:6:89"}],"functionName":{"name":"add","nativeSrc":"6028:3:89","nodeType":"YulIdentifier","src":"6028:3:89"},"nativeSrc":"6028:22:89","nodeType":"YulFunctionCall","src":"6028:22:89"},{"name":"dataEnd","nativeSrc":"6052:7:89","nodeType":"YulIdentifier","src":"6052:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"6011:16:89","nodeType":"YulIdentifier","src":"6011:16:89"},"nativeSrc":"6011:49:89","nodeType":"YulFunctionCall","src":"6011:49:89"},"variableNames":[{"name":"value2","nativeSrc":"6001:6:89","nodeType":"YulIdentifier","src":"6001:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr","nativeSrc":"5558:508:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5621:9:89","nodeType":"YulTypedName","src":"5621:9:89","type":""},{"name":"dataEnd","nativeSrc":"5632:7:89","nodeType":"YulTypedName","src":"5632:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5644:6:89","nodeType":"YulTypedName","src":"5644:6:89","type":""},{"name":"value1","nativeSrc":"5652:6:89","nodeType":"YulTypedName","src":"5652:6:89","type":""},{"name":"value2","nativeSrc":"5660:6:89","nodeType":"YulTypedName","src":"5660:6:89","type":""}],"src":"5558:508:89"},{"body":{"nativeSrc":"6155:263:89","nodeType":"YulBlock","src":"6155:263:89","statements":[{"body":{"nativeSrc":"6201:16:89","nodeType":"YulBlock","src":"6201:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6210:1:89","nodeType":"YulLiteral","src":"6210:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6213:1:89","nodeType":"YulLiteral","src":"6213:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6203:6:89","nodeType":"YulIdentifier","src":"6203:6:89"},"nativeSrc":"6203:12:89","nodeType":"YulFunctionCall","src":"6203:12:89"},"nativeSrc":"6203:12:89","nodeType":"YulExpressionStatement","src":"6203:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6176:7:89","nodeType":"YulIdentifier","src":"6176:7:89"},{"name":"headStart","nativeSrc":"6185:9:89","nodeType":"YulIdentifier","src":"6185:9:89"}],"functionName":{"name":"sub","nativeSrc":"6172:3:89","nodeType":"YulIdentifier","src":"6172:3:89"},"nativeSrc":"6172:23:89","nodeType":"YulFunctionCall","src":"6172:23:89"},{"kind":"number","nativeSrc":"6197:2:89","nodeType":"YulLiteral","src":"6197:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6168:3:89","nodeType":"YulIdentifier","src":"6168:3:89"},"nativeSrc":"6168:32:89","nodeType":"YulFunctionCall","src":"6168:32:89"},"nativeSrc":"6165:52:89","nodeType":"YulIf","src":"6165:52:89"},{"nativeSrc":"6226:39:89","nodeType":"YulAssignment","src":"6226:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6255:9:89","nodeType":"YulIdentifier","src":"6255:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"6236:18:89","nodeType":"YulIdentifier","src":"6236:18:89"},"nativeSrc":"6236:29:89","nodeType":"YulFunctionCall","src":"6236:29:89"},"variableNames":[{"name":"value0","nativeSrc":"6226:6:89","nodeType":"YulIdentifier","src":"6226:6:89"}]},{"nativeSrc":"6274:45:89","nodeType":"YulVariableDeclaration","src":"6274:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6304:9:89","nodeType":"YulIdentifier","src":"6304:9:89"},{"kind":"number","nativeSrc":"6315:2:89","nodeType":"YulLiteral","src":"6315:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6300:3:89","nodeType":"YulIdentifier","src":"6300:3:89"},"nativeSrc":"6300:18:89","nodeType":"YulFunctionCall","src":"6300:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"6287:12:89","nodeType":"YulIdentifier","src":"6287:12:89"},"nativeSrc":"6287:32:89","nodeType":"YulFunctionCall","src":"6287:32:89"},"variables":[{"name":"value","nativeSrc":"6278:5:89","nodeType":"YulTypedName","src":"6278:5:89","type":""}]},{"body":{"nativeSrc":"6372:16:89","nodeType":"YulBlock","src":"6372:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6381:1:89","nodeType":"YulLiteral","src":"6381:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6384:1:89","nodeType":"YulLiteral","src":"6384:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6374:6:89","nodeType":"YulIdentifier","src":"6374:6:89"},"nativeSrc":"6374:12:89","nodeType":"YulFunctionCall","src":"6374:12:89"},"nativeSrc":"6374:12:89","nodeType":"YulExpressionStatement","src":"6374:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6341:5:89","nodeType":"YulIdentifier","src":"6341:5:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6362:5:89","nodeType":"YulIdentifier","src":"6362:5:89"}],"functionName":{"name":"iszero","nativeSrc":"6355:6:89","nodeType":"YulIdentifier","src":"6355:6:89"},"nativeSrc":"6355:13:89","nodeType":"YulFunctionCall","src":"6355:13:89"}],"functionName":{"name":"iszero","nativeSrc":"6348:6:89","nodeType":"YulIdentifier","src":"6348:6:89"},"nativeSrc":"6348:21:89","nodeType":"YulFunctionCall","src":"6348:21:89"}],"functionName":{"name":"eq","nativeSrc":"6338:2:89","nodeType":"YulIdentifier","src":"6338:2:89"},"nativeSrc":"6338:32:89","nodeType":"YulFunctionCall","src":"6338:32:89"}],"functionName":{"name":"iszero","nativeSrc":"6331:6:89","nodeType":"YulIdentifier","src":"6331:6:89"},"nativeSrc":"6331:40:89","nodeType":"YulFunctionCall","src":"6331:40:89"},"nativeSrc":"6328:60:89","nodeType":"YulIf","src":"6328:60:89"},{"nativeSrc":"6397:15:89","nodeType":"YulAssignment","src":"6397:15:89","value":{"name":"value","nativeSrc":"6407:5:89","nodeType":"YulIdentifier","src":"6407:5:89"},"variableNames":[{"name":"value1","nativeSrc":"6397:6:89","nodeType":"YulIdentifier","src":"6397:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"6071:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6113:9:89","nodeType":"YulTypedName","src":"6113:9:89","type":""},{"name":"dataEnd","nativeSrc":"6124:7:89","nodeType":"YulTypedName","src":"6124:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6136:6:89","nodeType":"YulTypedName","src":"6136:6:89","type":""},{"name":"value1","nativeSrc":"6144:6:89","nodeType":"YulTypedName","src":"6144:6:89","type":""}],"src":"6071:347:89"},{"body":{"nativeSrc":"6584:806:89","nodeType":"YulBlock","src":"6584:806:89","statements":[{"body":{"nativeSrc":"6631:16:89","nodeType":"YulBlock","src":"6631:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6640:1:89","nodeType":"YulLiteral","src":"6640:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6643:1:89","nodeType":"YulLiteral","src":"6643:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6633:6:89","nodeType":"YulIdentifier","src":"6633:6:89"},"nativeSrc":"6633:12:89","nodeType":"YulFunctionCall","src":"6633:12:89"},"nativeSrc":"6633:12:89","nodeType":"YulExpressionStatement","src":"6633:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6605:7:89","nodeType":"YulIdentifier","src":"6605:7:89"},{"name":"headStart","nativeSrc":"6614:9:89","nodeType":"YulIdentifier","src":"6614:9:89"}],"functionName":{"name":"sub","nativeSrc":"6601:3:89","nodeType":"YulIdentifier","src":"6601:3:89"},"nativeSrc":"6601:23:89","nodeType":"YulFunctionCall","src":"6601:23:89"},{"kind":"number","nativeSrc":"6626:3:89","nodeType":"YulLiteral","src":"6626:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"6597:3:89","nodeType":"YulIdentifier","src":"6597:3:89"},"nativeSrc":"6597:33:89","nodeType":"YulFunctionCall","src":"6597:33:89"},"nativeSrc":"6594:53:89","nodeType":"YulIf","src":"6594:53:89"},{"nativeSrc":"6656:37:89","nodeType":"YulVariableDeclaration","src":"6656:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6683:9:89","nodeType":"YulIdentifier","src":"6683:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"6670:12:89","nodeType":"YulIdentifier","src":"6670:12:89"},"nativeSrc":"6670:23:89","nodeType":"YulFunctionCall","src":"6670:23:89"},"variables":[{"name":"offset","nativeSrc":"6660:6:89","nodeType":"YulTypedName","src":"6660:6:89","type":""}]},{"body":{"nativeSrc":"6736:16:89","nodeType":"YulBlock","src":"6736:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6745:1:89","nodeType":"YulLiteral","src":"6745:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6748:1:89","nodeType":"YulLiteral","src":"6748:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6738:6:89","nodeType":"YulIdentifier","src":"6738:6:89"},"nativeSrc":"6738:12:89","nodeType":"YulFunctionCall","src":"6738:12:89"},"nativeSrc":"6738:12:89","nodeType":"YulExpressionStatement","src":"6738:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6708:6:89","nodeType":"YulIdentifier","src":"6708:6:89"},{"kind":"number","nativeSrc":"6716:18:89","nodeType":"YulLiteral","src":"6716:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6705:2:89","nodeType":"YulIdentifier","src":"6705:2:89"},"nativeSrc":"6705:30:89","nodeType":"YulFunctionCall","src":"6705:30:89"},"nativeSrc":"6702:50:89","nodeType":"YulIf","src":"6702:50:89"},{"nativeSrc":"6761:59:89","nodeType":"YulAssignment","src":"6761:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6792:9:89","nodeType":"YulIdentifier","src":"6792:9:89"},{"name":"offset","nativeSrc":"6803:6:89","nodeType":"YulIdentifier","src":"6803:6:89"}],"functionName":{"name":"add","nativeSrc":"6788:3:89","nodeType":"YulIdentifier","src":"6788:3:89"},"nativeSrc":"6788:22:89","nodeType":"YulFunctionCall","src":"6788:22:89"},{"name":"dataEnd","nativeSrc":"6812:7:89","nodeType":"YulIdentifier","src":"6812:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"6771:16:89","nodeType":"YulIdentifier","src":"6771:16:89"},"nativeSrc":"6771:49:89","nodeType":"YulFunctionCall","src":"6771:49:89"},"variableNames":[{"name":"value0","nativeSrc":"6761:6:89","nodeType":"YulIdentifier","src":"6761:6:89"}]},{"nativeSrc":"6829:48:89","nodeType":"YulVariableDeclaration","src":"6829:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6862:9:89","nodeType":"YulIdentifier","src":"6862:9:89"},{"kind":"number","nativeSrc":"6873:2:89","nodeType":"YulLiteral","src":"6873:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6858:3:89","nodeType":"YulIdentifier","src":"6858:3:89"},"nativeSrc":"6858:18:89","nodeType":"YulFunctionCall","src":"6858:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"6845:12:89","nodeType":"YulIdentifier","src":"6845:12:89"},"nativeSrc":"6845:32:89","nodeType":"YulFunctionCall","src":"6845:32:89"},"variables":[{"name":"offset_1","nativeSrc":"6833:8:89","nodeType":"YulTypedName","src":"6833:8:89","type":""}]},{"body":{"nativeSrc":"6922:16:89","nodeType":"YulBlock","src":"6922:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6931:1:89","nodeType":"YulLiteral","src":"6931:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6934:1:89","nodeType":"YulLiteral","src":"6934:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6924:6:89","nodeType":"YulIdentifier","src":"6924:6:89"},"nativeSrc":"6924:12:89","nodeType":"YulFunctionCall","src":"6924:12:89"},"nativeSrc":"6924:12:89","nodeType":"YulExpressionStatement","src":"6924:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"6892:8:89","nodeType":"YulIdentifier","src":"6892:8:89"},{"kind":"number","nativeSrc":"6902:18:89","nodeType":"YulLiteral","src":"6902:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6889:2:89","nodeType":"YulIdentifier","src":"6889:2:89"},"nativeSrc":"6889:32:89","nodeType":"YulFunctionCall","src":"6889:32:89"},"nativeSrc":"6886:52:89","nodeType":"YulIf","src":"6886:52:89"},{"nativeSrc":"6947:61:89","nodeType":"YulAssignment","src":"6947:61:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6978:9:89","nodeType":"YulIdentifier","src":"6978:9:89"},{"name":"offset_1","nativeSrc":"6989:8:89","nodeType":"YulIdentifier","src":"6989:8:89"}],"functionName":{"name":"add","nativeSrc":"6974:3:89","nodeType":"YulIdentifier","src":"6974:3:89"},"nativeSrc":"6974:24:89","nodeType":"YulFunctionCall","src":"6974:24:89"},{"name":"dataEnd","nativeSrc":"7000:7:89","nodeType":"YulIdentifier","src":"7000:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"6957:16:89","nodeType":"YulIdentifier","src":"6957:16:89"},"nativeSrc":"6957:51:89","nodeType":"YulFunctionCall","src":"6957:51:89"},"variableNames":[{"name":"value1","nativeSrc":"6947:6:89","nodeType":"YulIdentifier","src":"6947:6:89"}]},{"nativeSrc":"7017:48:89","nodeType":"YulVariableDeclaration","src":"7017:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7050:9:89","nodeType":"YulIdentifier","src":"7050:9:89"},{"kind":"number","nativeSrc":"7061:2:89","nodeType":"YulLiteral","src":"7061:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7046:3:89","nodeType":"YulIdentifier","src":"7046:3:89"},"nativeSrc":"7046:18:89","nodeType":"YulFunctionCall","src":"7046:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"7033:12:89","nodeType":"YulIdentifier","src":"7033:12:89"},"nativeSrc":"7033:32:89","nodeType":"YulFunctionCall","src":"7033:32:89"},"variables":[{"name":"offset_2","nativeSrc":"7021:8:89","nodeType":"YulTypedName","src":"7021:8:89","type":""}]},{"body":{"nativeSrc":"7110:16:89","nodeType":"YulBlock","src":"7110:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7119:1:89","nodeType":"YulLiteral","src":"7119:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7122:1:89","nodeType":"YulLiteral","src":"7122:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7112:6:89","nodeType":"YulIdentifier","src":"7112:6:89"},"nativeSrc":"7112:12:89","nodeType":"YulFunctionCall","src":"7112:12:89"},"nativeSrc":"7112:12:89","nodeType":"YulExpressionStatement","src":"7112:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"7080:8:89","nodeType":"YulIdentifier","src":"7080:8:89"},{"kind":"number","nativeSrc":"7090:18:89","nodeType":"YulLiteral","src":"7090:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7077:2:89","nodeType":"YulIdentifier","src":"7077:2:89"},"nativeSrc":"7077:32:89","nodeType":"YulFunctionCall","src":"7077:32:89"},"nativeSrc":"7074:52:89","nodeType":"YulIf","src":"7074:52:89"},{"nativeSrc":"7135:61:89","nodeType":"YulAssignment","src":"7135:61:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7166:9:89","nodeType":"YulIdentifier","src":"7166:9:89"},{"name":"offset_2","nativeSrc":"7177:8:89","nodeType":"YulIdentifier","src":"7177:8:89"}],"functionName":{"name":"add","nativeSrc":"7162:3:89","nodeType":"YulIdentifier","src":"7162:3:89"},"nativeSrc":"7162:24:89","nodeType":"YulFunctionCall","src":"7162:24:89"},{"name":"dataEnd","nativeSrc":"7188:7:89","nodeType":"YulIdentifier","src":"7188:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"7145:16:89","nodeType":"YulIdentifier","src":"7145:16:89"},"nativeSrc":"7145:51:89","nodeType":"YulFunctionCall","src":"7145:51:89"},"variableNames":[{"name":"value2","nativeSrc":"7135:6:89","nodeType":"YulIdentifier","src":"7135:6:89"}]},{"nativeSrc":"7205:48:89","nodeType":"YulVariableDeclaration","src":"7205:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7238:9:89","nodeType":"YulIdentifier","src":"7238:9:89"},{"kind":"number","nativeSrc":"7249:2:89","nodeType":"YulLiteral","src":"7249:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7234:3:89","nodeType":"YulIdentifier","src":"7234:3:89"},"nativeSrc":"7234:18:89","nodeType":"YulFunctionCall","src":"7234:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"7221:12:89","nodeType":"YulIdentifier","src":"7221:12:89"},"nativeSrc":"7221:32:89","nodeType":"YulFunctionCall","src":"7221:32:89"},"variables":[{"name":"offset_3","nativeSrc":"7209:8:89","nodeType":"YulTypedName","src":"7209:8:89","type":""}]},{"body":{"nativeSrc":"7298:16:89","nodeType":"YulBlock","src":"7298:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7307:1:89","nodeType":"YulLiteral","src":"7307:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7310:1:89","nodeType":"YulLiteral","src":"7310:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7300:6:89","nodeType":"YulIdentifier","src":"7300:6:89"},"nativeSrc":"7300:12:89","nodeType":"YulFunctionCall","src":"7300:12:89"},"nativeSrc":"7300:12:89","nodeType":"YulExpressionStatement","src":"7300:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"7268:8:89","nodeType":"YulIdentifier","src":"7268:8:89"},{"kind":"number","nativeSrc":"7278:18:89","nodeType":"YulLiteral","src":"7278:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7265:2:89","nodeType":"YulIdentifier","src":"7265:2:89"},"nativeSrc":"7265:32:89","nodeType":"YulFunctionCall","src":"7265:32:89"},"nativeSrc":"7262:52:89","nodeType":"YulIf","src":"7262:52:89"},{"nativeSrc":"7323:61:89","nodeType":"YulAssignment","src":"7323:61:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7354:9:89","nodeType":"YulIdentifier","src":"7354:9:89"},{"name":"offset_3","nativeSrc":"7365:8:89","nodeType":"YulIdentifier","src":"7365:8:89"}],"functionName":{"name":"add","nativeSrc":"7350:3:89","nodeType":"YulIdentifier","src":"7350:3:89"},"nativeSrc":"7350:24:89","nodeType":"YulFunctionCall","src":"7350:24:89"},{"name":"dataEnd","nativeSrc":"7376:7:89","nodeType":"YulIdentifier","src":"7376:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"7333:16:89","nodeType":"YulIdentifier","src":"7333:16:89"},"nativeSrc":"7333:51:89","nodeType":"YulFunctionCall","src":"7333:51:89"},"variableNames":[{"name":"value3","nativeSrc":"7323:6:89","nodeType":"YulIdentifier","src":"7323:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptr","nativeSrc":"6423:967:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6526:9:89","nodeType":"YulTypedName","src":"6526:9:89","type":""},{"name":"dataEnd","nativeSrc":"6537:7:89","nodeType":"YulTypedName","src":"6537:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6549:6:89","nodeType":"YulTypedName","src":"6549:6:89","type":""},{"name":"value1","nativeSrc":"6557:6:89","nodeType":"YulTypedName","src":"6557:6:89","type":""},{"name":"value2","nativeSrc":"6565:6:89","nodeType":"YulTypedName","src":"6565:6:89","type":""},{"name":"value3","nativeSrc":"6573:6:89","nodeType":"YulTypedName","src":"6573:6:89","type":""}],"src":"6423:967:89"},{"body":{"nativeSrc":"7525:453:89","nodeType":"YulBlock","src":"7525:453:89","statements":[{"body":{"nativeSrc":"7572:16:89","nodeType":"YulBlock","src":"7572:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7581:1:89","nodeType":"YulLiteral","src":"7581:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7584:1:89","nodeType":"YulLiteral","src":"7584:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7574:6:89","nodeType":"YulIdentifier","src":"7574:6:89"},"nativeSrc":"7574:12:89","nodeType":"YulFunctionCall","src":"7574:12:89"},"nativeSrc":"7574:12:89","nodeType":"YulExpressionStatement","src":"7574:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7546:7:89","nodeType":"YulIdentifier","src":"7546:7:89"},{"name":"headStart","nativeSrc":"7555:9:89","nodeType":"YulIdentifier","src":"7555:9:89"}],"functionName":{"name":"sub","nativeSrc":"7542:3:89","nodeType":"YulIdentifier","src":"7542:3:89"},"nativeSrc":"7542:23:89","nodeType":"YulFunctionCall","src":"7542:23:89"},{"kind":"number","nativeSrc":"7567:3:89","nodeType":"YulLiteral","src":"7567:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"7538:3:89","nodeType":"YulIdentifier","src":"7538:3:89"},"nativeSrc":"7538:33:89","nodeType":"YulFunctionCall","src":"7538:33:89"},"nativeSrc":"7535:53:89","nodeType":"YulIf","src":"7535:53:89"},{"nativeSrc":"7597:39:89","nodeType":"YulAssignment","src":"7597:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7626:9:89","nodeType":"YulIdentifier","src":"7626:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"7607:18:89","nodeType":"YulIdentifier","src":"7607:18:89"},"nativeSrc":"7607:29:89","nodeType":"YulFunctionCall","src":"7607:29:89"},"variableNames":[{"name":"value0","nativeSrc":"7597:6:89","nodeType":"YulIdentifier","src":"7597:6:89"}]},{"nativeSrc":"7645:48:89","nodeType":"YulAssignment","src":"7645:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7678:9:89","nodeType":"YulIdentifier","src":"7678:9:89"},{"kind":"number","nativeSrc":"7689:2:89","nodeType":"YulLiteral","src":"7689:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7674:3:89","nodeType":"YulIdentifier","src":"7674:3:89"},"nativeSrc":"7674:18:89","nodeType":"YulFunctionCall","src":"7674:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"7655:18:89","nodeType":"YulIdentifier","src":"7655:18:89"},"nativeSrc":"7655:38:89","nodeType":"YulFunctionCall","src":"7655:38:89"},"variableNames":[{"name":"value1","nativeSrc":"7645:6:89","nodeType":"YulIdentifier","src":"7645:6:89"}]},{"nativeSrc":"7702:14:89","nodeType":"YulVariableDeclaration","src":"7702:14:89","value":{"kind":"number","nativeSrc":"7715:1:89","nodeType":"YulLiteral","src":"7715:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7706:5:89","nodeType":"YulTypedName","src":"7706:5:89","type":""}]},{"nativeSrc":"7725:41:89","nodeType":"YulAssignment","src":"7725:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7751:9:89","nodeType":"YulIdentifier","src":"7751:9:89"},{"kind":"number","nativeSrc":"7762:2:89","nodeType":"YulLiteral","src":"7762:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7747:3:89","nodeType":"YulIdentifier","src":"7747:3:89"},"nativeSrc":"7747:18:89","nodeType":"YulFunctionCall","src":"7747:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"7734:12:89","nodeType":"YulIdentifier","src":"7734:12:89"},"nativeSrc":"7734:32:89","nodeType":"YulFunctionCall","src":"7734:32:89"},"variableNames":[{"name":"value","nativeSrc":"7725:5:89","nodeType":"YulIdentifier","src":"7725:5:89"}]},{"nativeSrc":"7775:15:89","nodeType":"YulAssignment","src":"7775:15:89","value":{"name":"value","nativeSrc":"7785:5:89","nodeType":"YulIdentifier","src":"7785:5:89"},"variableNames":[{"name":"value2","nativeSrc":"7775:6:89","nodeType":"YulIdentifier","src":"7775:6:89"}]},{"nativeSrc":"7799:46:89","nodeType":"YulVariableDeclaration","src":"7799:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7830:9:89","nodeType":"YulIdentifier","src":"7830:9:89"},{"kind":"number","nativeSrc":"7841:2:89","nodeType":"YulLiteral","src":"7841:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7826:3:89","nodeType":"YulIdentifier","src":"7826:3:89"},"nativeSrc":"7826:18:89","nodeType":"YulFunctionCall","src":"7826:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"7813:12:89","nodeType":"YulIdentifier","src":"7813:12:89"},"nativeSrc":"7813:32:89","nodeType":"YulFunctionCall","src":"7813:32:89"},"variables":[{"name":"offset","nativeSrc":"7803:6:89","nodeType":"YulTypedName","src":"7803:6:89","type":""}]},{"body":{"nativeSrc":"7888:16:89","nodeType":"YulBlock","src":"7888:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7897:1:89","nodeType":"YulLiteral","src":"7897:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7900:1:89","nodeType":"YulLiteral","src":"7900:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7890:6:89","nodeType":"YulIdentifier","src":"7890:6:89"},"nativeSrc":"7890:12:89","nodeType":"YulFunctionCall","src":"7890:12:89"},"nativeSrc":"7890:12:89","nodeType":"YulExpressionStatement","src":"7890:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7860:6:89","nodeType":"YulIdentifier","src":"7860:6:89"},{"kind":"number","nativeSrc":"7868:18:89","nodeType":"YulLiteral","src":"7868:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7857:2:89","nodeType":"YulIdentifier","src":"7857:2:89"},"nativeSrc":"7857:30:89","nodeType":"YulFunctionCall","src":"7857:30:89"},"nativeSrc":"7854:50:89","nodeType":"YulIf","src":"7854:50:89"},{"nativeSrc":"7913:59:89","nodeType":"YulAssignment","src":"7913:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7944:9:89","nodeType":"YulIdentifier","src":"7944:9:89"},{"name":"offset","nativeSrc":"7955:6:89","nodeType":"YulIdentifier","src":"7955:6:89"}],"functionName":{"name":"add","nativeSrc":"7940:3:89","nodeType":"YulIdentifier","src":"7940:3:89"},"nativeSrc":"7940:22:89","nodeType":"YulFunctionCall","src":"7940:22:89"},{"name":"dataEnd","nativeSrc":"7964:7:89","nodeType":"YulIdentifier","src":"7964:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"7923:16:89","nodeType":"YulIdentifier","src":"7923:16:89"},"nativeSrc":"7923:49:89","nodeType":"YulFunctionCall","src":"7923:49:89"},"variableNames":[{"name":"value3","nativeSrc":"7913:6:89","nodeType":"YulIdentifier","src":"7913:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nativeSrc":"7395:583:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7467:9:89","nodeType":"YulTypedName","src":"7467:9:89","type":""},{"name":"dataEnd","nativeSrc":"7478:7:89","nodeType":"YulTypedName","src":"7478:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7490:6:89","nodeType":"YulTypedName","src":"7490:6:89","type":""},{"name":"value1","nativeSrc":"7498:6:89","nodeType":"YulTypedName","src":"7498:6:89","type":""},{"name":"value2","nativeSrc":"7506:6:89","nodeType":"YulTypedName","src":"7506:6:89","type":""},{"name":"value3","nativeSrc":"7514:6:89","nodeType":"YulTypedName","src":"7514:6:89","type":""}],"src":"7395:583:89"},{"body":{"nativeSrc":"8070:173:89","nodeType":"YulBlock","src":"8070:173:89","statements":[{"body":{"nativeSrc":"8116:16:89","nodeType":"YulBlock","src":"8116:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8125:1:89","nodeType":"YulLiteral","src":"8125:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8128:1:89","nodeType":"YulLiteral","src":"8128:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8118:6:89","nodeType":"YulIdentifier","src":"8118:6:89"},"nativeSrc":"8118:12:89","nodeType":"YulFunctionCall","src":"8118:12:89"},"nativeSrc":"8118:12:89","nodeType":"YulExpressionStatement","src":"8118:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8091:7:89","nodeType":"YulIdentifier","src":"8091:7:89"},{"name":"headStart","nativeSrc":"8100:9:89","nodeType":"YulIdentifier","src":"8100:9:89"}],"functionName":{"name":"sub","nativeSrc":"8087:3:89","nodeType":"YulIdentifier","src":"8087:3:89"},"nativeSrc":"8087:23:89","nodeType":"YulFunctionCall","src":"8087:23:89"},{"kind":"number","nativeSrc":"8112:2:89","nodeType":"YulLiteral","src":"8112:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8083:3:89","nodeType":"YulIdentifier","src":"8083:3:89"},"nativeSrc":"8083:32:89","nodeType":"YulFunctionCall","src":"8083:32:89"},"nativeSrc":"8080:52:89","nodeType":"YulIf","src":"8080:52:89"},{"nativeSrc":"8141:39:89","nodeType":"YulAssignment","src":"8141:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8170:9:89","nodeType":"YulIdentifier","src":"8170:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"8151:18:89","nodeType":"YulIdentifier","src":"8151:18:89"},"nativeSrc":"8151:29:89","nodeType":"YulFunctionCall","src":"8151:29:89"},"variableNames":[{"name":"value0","nativeSrc":"8141:6:89","nodeType":"YulIdentifier","src":"8141:6:89"}]},{"nativeSrc":"8189:48:89","nodeType":"YulAssignment","src":"8189:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8222:9:89","nodeType":"YulIdentifier","src":"8222:9:89"},{"kind":"number","nativeSrc":"8233:2:89","nodeType":"YulLiteral","src":"8233:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8218:3:89","nodeType":"YulIdentifier","src":"8218:3:89"},"nativeSrc":"8218:18:89","nodeType":"YulFunctionCall","src":"8218:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"8199:18:89","nodeType":"YulIdentifier","src":"8199:18:89"},"nativeSrc":"8199:38:89","nodeType":"YulFunctionCall","src":"8199:38:89"},"variableNames":[{"name":"value1","nativeSrc":"8189:6:89","nodeType":"YulIdentifier","src":"8189:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"7983:260:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8028:9:89","nodeType":"YulTypedName","src":"8028:9:89","type":""},{"name":"dataEnd","nativeSrc":"8039:7:89","nodeType":"YulTypedName","src":"8039:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8051:6:89","nodeType":"YulTypedName","src":"8051:6:89","type":""},{"name":"value1","nativeSrc":"8059:6:89","nodeType":"YulTypedName","src":"8059:6:89","type":""}],"src":"7983:260:89"},{"body":{"nativeSrc":"8303:325:89","nodeType":"YulBlock","src":"8303:325:89","statements":[{"nativeSrc":"8313:22:89","nodeType":"YulAssignment","src":"8313:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"8327:1:89","nodeType":"YulLiteral","src":"8327:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"8330:4:89","nodeType":"YulIdentifier","src":"8330:4:89"}],"functionName":{"name":"shr","nativeSrc":"8323:3:89","nodeType":"YulIdentifier","src":"8323:3:89"},"nativeSrc":"8323:12:89","nodeType":"YulFunctionCall","src":"8323:12:89"},"variableNames":[{"name":"length","nativeSrc":"8313:6:89","nodeType":"YulIdentifier","src":"8313:6:89"}]},{"nativeSrc":"8344:38:89","nodeType":"YulVariableDeclaration","src":"8344:38:89","value":{"arguments":[{"name":"data","nativeSrc":"8374:4:89","nodeType":"YulIdentifier","src":"8374:4:89"},{"kind":"number","nativeSrc":"8380:1:89","nodeType":"YulLiteral","src":"8380:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8370:3:89","nodeType":"YulIdentifier","src":"8370:3:89"},"nativeSrc":"8370:12:89","nodeType":"YulFunctionCall","src":"8370:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"8348:18:89","nodeType":"YulTypedName","src":"8348:18:89","type":""}]},{"body":{"nativeSrc":"8421:31:89","nodeType":"YulBlock","src":"8421:31:89","statements":[{"nativeSrc":"8423:27:89","nodeType":"YulAssignment","src":"8423:27:89","value":{"arguments":[{"name":"length","nativeSrc":"8437:6:89","nodeType":"YulIdentifier","src":"8437:6:89"},{"kind":"number","nativeSrc":"8445:4:89","nodeType":"YulLiteral","src":"8445:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"8433:3:89","nodeType":"YulIdentifier","src":"8433:3:89"},"nativeSrc":"8433:17:89","nodeType":"YulFunctionCall","src":"8433:17:89"},"variableNames":[{"name":"length","nativeSrc":"8423:6:89","nodeType":"YulIdentifier","src":"8423:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"8401:18:89","nodeType":"YulIdentifier","src":"8401:18:89"}],"functionName":{"name":"iszero","nativeSrc":"8394:6:89","nodeType":"YulIdentifier","src":"8394:6:89"},"nativeSrc":"8394:26:89","nodeType":"YulFunctionCall","src":"8394:26:89"},"nativeSrc":"8391:61:89","nodeType":"YulIf","src":"8391:61:89"},{"body":{"nativeSrc":"8511:111:89","nodeType":"YulBlock","src":"8511:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8532:1:89","nodeType":"YulLiteral","src":"8532:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"8539:3:89","nodeType":"YulLiteral","src":"8539:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"8544:10:89","nodeType":"YulLiteral","src":"8544:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"8535:3:89","nodeType":"YulIdentifier","src":"8535:3:89"},"nativeSrc":"8535:20:89","nodeType":"YulFunctionCall","src":"8535:20:89"}],"functionName":{"name":"mstore","nativeSrc":"8525:6:89","nodeType":"YulIdentifier","src":"8525:6:89"},"nativeSrc":"8525:31:89","nodeType":"YulFunctionCall","src":"8525:31:89"},"nativeSrc":"8525:31:89","nodeType":"YulExpressionStatement","src":"8525:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8576:1:89","nodeType":"YulLiteral","src":"8576:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"8579:4:89","nodeType":"YulLiteral","src":"8579:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"8569:6:89","nodeType":"YulIdentifier","src":"8569:6:89"},"nativeSrc":"8569:15:89","nodeType":"YulFunctionCall","src":"8569:15:89"},"nativeSrc":"8569:15:89","nodeType":"YulExpressionStatement","src":"8569:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8604:1:89","nodeType":"YulLiteral","src":"8604:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8607:4:89","nodeType":"YulLiteral","src":"8607:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8597:6:89","nodeType":"YulIdentifier","src":"8597:6:89"},"nativeSrc":"8597:15:89","nodeType":"YulFunctionCall","src":"8597:15:89"},"nativeSrc":"8597:15:89","nodeType":"YulExpressionStatement","src":"8597:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"8467:18:89","nodeType":"YulIdentifier","src":"8467:18:89"},{"arguments":[{"name":"length","nativeSrc":"8490:6:89","nodeType":"YulIdentifier","src":"8490:6:89"},{"kind":"number","nativeSrc":"8498:2:89","nodeType":"YulLiteral","src":"8498:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"8487:2:89","nodeType":"YulIdentifier","src":"8487:2:89"},"nativeSrc":"8487:14:89","nodeType":"YulFunctionCall","src":"8487:14:89"}],"functionName":{"name":"eq","nativeSrc":"8464:2:89","nodeType":"YulIdentifier","src":"8464:2:89"},"nativeSrc":"8464:38:89","nodeType":"YulFunctionCall","src":"8464:38:89"},"nativeSrc":"8461:161:89","nodeType":"YulIf","src":"8461:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"8248:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"8283:4:89","nodeType":"YulTypedName","src":"8283:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8292:6:89","nodeType":"YulTypedName","src":"8292:6:89","type":""}],"src":"8248:380:89"},{"body":{"nativeSrc":"8790:214:89","nodeType":"YulBlock","src":"8790:214:89","statements":[{"nativeSrc":"8800:26:89","nodeType":"YulAssignment","src":"8800:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8812:9:89","nodeType":"YulIdentifier","src":"8812:9:89"},{"kind":"number","nativeSrc":"8823:2:89","nodeType":"YulLiteral","src":"8823:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8808:3:89","nodeType":"YulIdentifier","src":"8808:3:89"},"nativeSrc":"8808:18:89","nodeType":"YulFunctionCall","src":"8808:18:89"},"variableNames":[{"name":"tail","nativeSrc":"8800:4:89","nodeType":"YulIdentifier","src":"8800:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8842:9:89","nodeType":"YulIdentifier","src":"8842:9:89"},{"arguments":[{"name":"value0","nativeSrc":"8857:6:89","nodeType":"YulIdentifier","src":"8857:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8873:3:89","nodeType":"YulLiteral","src":"8873:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"8878:1:89","nodeType":"YulLiteral","src":"8878:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8869:3:89","nodeType":"YulIdentifier","src":"8869:3:89"},"nativeSrc":"8869:11:89","nodeType":"YulFunctionCall","src":"8869:11:89"},{"kind":"number","nativeSrc":"8882:1:89","nodeType":"YulLiteral","src":"8882:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8865:3:89","nodeType":"YulIdentifier","src":"8865:3:89"},"nativeSrc":"8865:19:89","nodeType":"YulFunctionCall","src":"8865:19:89"}],"functionName":{"name":"and","nativeSrc":"8853:3:89","nodeType":"YulIdentifier","src":"8853:3:89"},"nativeSrc":"8853:32:89","nodeType":"YulFunctionCall","src":"8853:32:89"}],"functionName":{"name":"mstore","nativeSrc":"8835:6:89","nodeType":"YulIdentifier","src":"8835:6:89"},"nativeSrc":"8835:51:89","nodeType":"YulFunctionCall","src":"8835:51:89"},"nativeSrc":"8835:51:89","nodeType":"YulExpressionStatement","src":"8835:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8906:9:89","nodeType":"YulIdentifier","src":"8906:9:89"},{"kind":"number","nativeSrc":"8917:2:89","nodeType":"YulLiteral","src":"8917:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8902:3:89","nodeType":"YulIdentifier","src":"8902:3:89"},"nativeSrc":"8902:18:89","nodeType":"YulFunctionCall","src":"8902:18:89"},{"name":"value1","nativeSrc":"8922:6:89","nodeType":"YulIdentifier","src":"8922:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8895:6:89","nodeType":"YulIdentifier","src":"8895:6:89"},"nativeSrc":"8895:34:89","nodeType":"YulFunctionCall","src":"8895:34:89"},"nativeSrc":"8895:34:89","nodeType":"YulExpressionStatement","src":"8895:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8949:9:89","nodeType":"YulIdentifier","src":"8949:9:89"},{"kind":"number","nativeSrc":"8960:2:89","nodeType":"YulLiteral","src":"8960:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8945:3:89","nodeType":"YulIdentifier","src":"8945:3:89"},"nativeSrc":"8945:18:89","nodeType":"YulFunctionCall","src":"8945:18:89"},{"arguments":[{"name":"value2","nativeSrc":"8969:6:89","nodeType":"YulIdentifier","src":"8969:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8985:3:89","nodeType":"YulLiteral","src":"8985:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"8990:1:89","nodeType":"YulLiteral","src":"8990:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8981:3:89","nodeType":"YulIdentifier","src":"8981:3:89"},"nativeSrc":"8981:11:89","nodeType":"YulFunctionCall","src":"8981:11:89"},{"kind":"number","nativeSrc":"8994:1:89","nodeType":"YulLiteral","src":"8994:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8977:3:89","nodeType":"YulIdentifier","src":"8977:3:89"},"nativeSrc":"8977:19:89","nodeType":"YulFunctionCall","src":"8977:19:89"}],"functionName":{"name":"and","nativeSrc":"8965:3:89","nodeType":"YulIdentifier","src":"8965:3:89"},"nativeSrc":"8965:32:89","nodeType":"YulFunctionCall","src":"8965:32:89"}],"functionName":{"name":"mstore","nativeSrc":"8938:6:89","nodeType":"YulIdentifier","src":"8938:6:89"},"nativeSrc":"8938:60:89","nodeType":"YulFunctionCall","src":"8938:60:89"},"nativeSrc":"8938:60:89","nodeType":"YulExpressionStatement","src":"8938:60:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed","nativeSrc":"8633:371:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8743:9:89","nodeType":"YulTypedName","src":"8743:9:89","type":""},{"name":"value2","nativeSrc":"8754:6:89","nodeType":"YulTypedName","src":"8754:6:89","type":""},{"name":"value1","nativeSrc":"8762:6:89","nodeType":"YulTypedName","src":"8762:6:89","type":""},{"name":"value0","nativeSrc":"8770:6:89","nodeType":"YulTypedName","src":"8770:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8781:4:89","nodeType":"YulTypedName","src":"8781:4:89","type":""}],"src":"8633:371:89"},{"body":{"nativeSrc":"9065:65:89","nodeType":"YulBlock","src":"9065:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9082:1:89","nodeType":"YulLiteral","src":"9082:1:89","type":"","value":"0"},{"name":"ptr","nativeSrc":"9085:3:89","nodeType":"YulIdentifier","src":"9085:3:89"}],"functionName":{"name":"mstore","nativeSrc":"9075:6:89","nodeType":"YulIdentifier","src":"9075:6:89"},"nativeSrc":"9075:14:89","nodeType":"YulFunctionCall","src":"9075:14:89"},"nativeSrc":"9075:14:89","nodeType":"YulExpressionStatement","src":"9075:14:89"},{"nativeSrc":"9098:26:89","nodeType":"YulAssignment","src":"9098:26:89","value":{"arguments":[{"kind":"number","nativeSrc":"9116:1:89","nodeType":"YulLiteral","src":"9116:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9119:4:89","nodeType":"YulLiteral","src":"9119:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9106:9:89","nodeType":"YulIdentifier","src":"9106:9:89"},"nativeSrc":"9106:18:89","nodeType":"YulFunctionCall","src":"9106:18:89"},"variableNames":[{"name":"data","nativeSrc":"9098:4:89","nodeType":"YulIdentifier","src":"9098:4:89"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"9009:121:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"9048:3:89","nodeType":"YulTypedName","src":"9048:3:89","type":""}],"returnVariables":[{"name":"data","nativeSrc":"9056:4:89","nodeType":"YulTypedName","src":"9056:4:89","type":""}],"src":"9009:121:89"},{"body":{"nativeSrc":"9216:437:89","nodeType":"YulBlock","src":"9216:437:89","statements":[{"body":{"nativeSrc":"9249:398:89","nodeType":"YulBlock","src":"9249:398:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9270:1:89","nodeType":"YulLiteral","src":"9270:1:89","type":"","value":"0"},{"name":"array","nativeSrc":"9273:5:89","nodeType":"YulIdentifier","src":"9273:5:89"}],"functionName":{"name":"mstore","nativeSrc":"9263:6:89","nodeType":"YulIdentifier","src":"9263:6:89"},"nativeSrc":"9263:16:89","nodeType":"YulFunctionCall","src":"9263:16:89"},"nativeSrc":"9263:16:89","nodeType":"YulExpressionStatement","src":"9263:16:89"},{"nativeSrc":"9292:30:89","nodeType":"YulVariableDeclaration","src":"9292:30:89","value":{"arguments":[{"kind":"number","nativeSrc":"9314:1:89","nodeType":"YulLiteral","src":"9314:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9317:4:89","nodeType":"YulLiteral","src":"9317:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9304:9:89","nodeType":"YulIdentifier","src":"9304:9:89"},"nativeSrc":"9304:18:89","nodeType":"YulFunctionCall","src":"9304:18:89"},"variables":[{"name":"data","nativeSrc":"9296:4:89","nodeType":"YulTypedName","src":"9296:4:89","type":""}]},{"nativeSrc":"9335:57:89","nodeType":"YulVariableDeclaration","src":"9335:57:89","value":{"arguments":[{"name":"data","nativeSrc":"9358:4:89","nodeType":"YulIdentifier","src":"9358:4:89"},{"arguments":[{"kind":"number","nativeSrc":"9368:1:89","nodeType":"YulLiteral","src":"9368:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"9375:10:89","nodeType":"YulIdentifier","src":"9375:10:89"},{"kind":"number","nativeSrc":"9387:2:89","nodeType":"YulLiteral","src":"9387:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9371:3:89","nodeType":"YulIdentifier","src":"9371:3:89"},"nativeSrc":"9371:19:89","nodeType":"YulFunctionCall","src":"9371:19:89"}],"functionName":{"name":"shr","nativeSrc":"9364:3:89","nodeType":"YulIdentifier","src":"9364:3:89"},"nativeSrc":"9364:27:89","nodeType":"YulFunctionCall","src":"9364:27:89"}],"functionName":{"name":"add","nativeSrc":"9354:3:89","nodeType":"YulIdentifier","src":"9354:3:89"},"nativeSrc":"9354:38:89","nodeType":"YulFunctionCall","src":"9354:38:89"},"variables":[{"name":"deleteStart","nativeSrc":"9339:11:89","nodeType":"YulTypedName","src":"9339:11:89","type":""}]},{"body":{"nativeSrc":"9429:23:89","nodeType":"YulBlock","src":"9429:23:89","statements":[{"nativeSrc":"9431:19:89","nodeType":"YulAssignment","src":"9431:19:89","value":{"name":"data","nativeSrc":"9446:4:89","nodeType":"YulIdentifier","src":"9446:4:89"},"variableNames":[{"name":"deleteStart","nativeSrc":"9431:11:89","nodeType":"YulIdentifier","src":"9431:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"9411:10:89","nodeType":"YulIdentifier","src":"9411:10:89"},{"kind":"number","nativeSrc":"9423:4:89","nodeType":"YulLiteral","src":"9423:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"9408:2:89","nodeType":"YulIdentifier","src":"9408:2:89"},"nativeSrc":"9408:20:89","nodeType":"YulFunctionCall","src":"9408:20:89"},"nativeSrc":"9405:47:89","nodeType":"YulIf","src":"9405:47:89"},{"nativeSrc":"9465:41:89","nodeType":"YulVariableDeclaration","src":"9465:41:89","value":{"arguments":[{"name":"data","nativeSrc":"9479:4:89","nodeType":"YulIdentifier","src":"9479:4:89"},{"arguments":[{"kind":"number","nativeSrc":"9489:1:89","nodeType":"YulLiteral","src":"9489:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"9496:3:89","nodeType":"YulIdentifier","src":"9496:3:89"},{"kind":"number","nativeSrc":"9501:2:89","nodeType":"YulLiteral","src":"9501:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9492:3:89","nodeType":"YulIdentifier","src":"9492:3:89"},"nativeSrc":"9492:12:89","nodeType":"YulFunctionCall","src":"9492:12:89"}],"functionName":{"name":"shr","nativeSrc":"9485:3:89","nodeType":"YulIdentifier","src":"9485:3:89"},"nativeSrc":"9485:20:89","nodeType":"YulFunctionCall","src":"9485:20:89"}],"functionName":{"name":"add","nativeSrc":"9475:3:89","nodeType":"YulIdentifier","src":"9475:3:89"},"nativeSrc":"9475:31:89","nodeType":"YulFunctionCall","src":"9475:31:89"},"variables":[{"name":"_1","nativeSrc":"9469:2:89","nodeType":"YulTypedName","src":"9469:2:89","type":""}]},{"nativeSrc":"9519:24:89","nodeType":"YulVariableDeclaration","src":"9519:24:89","value":{"name":"deleteStart","nativeSrc":"9532:11:89","nodeType":"YulIdentifier","src":"9532:11:89"},"variables":[{"name":"start","nativeSrc":"9523:5:89","nodeType":"YulTypedName","src":"9523:5:89","type":""}]},{"body":{"nativeSrc":"9617:20:89","nodeType":"YulBlock","src":"9617:20:89","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"9626:5:89","nodeType":"YulIdentifier","src":"9626:5:89"},{"kind":"number","nativeSrc":"9633:1:89","nodeType":"YulLiteral","src":"9633:1:89","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"9619:6:89","nodeType":"YulIdentifier","src":"9619:6:89"},"nativeSrc":"9619:16:89","nodeType":"YulFunctionCall","src":"9619:16:89"},"nativeSrc":"9619:16:89","nodeType":"YulExpressionStatement","src":"9619:16:89"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"9567:5:89","nodeType":"YulIdentifier","src":"9567:5:89"},{"name":"_1","nativeSrc":"9574:2:89","nodeType":"YulIdentifier","src":"9574:2:89"}],"functionName":{"name":"lt","nativeSrc":"9564:2:89","nodeType":"YulIdentifier","src":"9564:2:89"},"nativeSrc":"9564:13:89","nodeType":"YulFunctionCall","src":"9564:13:89"},"nativeSrc":"9556:81:89","nodeType":"YulForLoop","post":{"nativeSrc":"9578:26:89","nodeType":"YulBlock","src":"9578:26:89","statements":[{"nativeSrc":"9580:22:89","nodeType":"YulAssignment","src":"9580:22:89","value":{"arguments":[{"name":"start","nativeSrc":"9593:5:89","nodeType":"YulIdentifier","src":"9593:5:89"},{"kind":"number","nativeSrc":"9600:1:89","nodeType":"YulLiteral","src":"9600:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9589:3:89","nodeType":"YulIdentifier","src":"9589:3:89"},"nativeSrc":"9589:13:89","nodeType":"YulFunctionCall","src":"9589:13:89"},"variableNames":[{"name":"start","nativeSrc":"9580:5:89","nodeType":"YulIdentifier","src":"9580:5:89"}]}]},"pre":{"nativeSrc":"9560:3:89","nodeType":"YulBlock","src":"9560:3:89","statements":[]},"src":"9556:81:89"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"9232:3:89","nodeType":"YulIdentifier","src":"9232:3:89"},{"kind":"number","nativeSrc":"9237:2:89","nodeType":"YulLiteral","src":"9237:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"9229:2:89","nodeType":"YulIdentifier","src":"9229:2:89"},"nativeSrc":"9229:11:89","nodeType":"YulFunctionCall","src":"9229:11:89"},"nativeSrc":"9226:421:89","nodeType":"YulIf","src":"9226:421:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"9135:518:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"9188:5:89","nodeType":"YulTypedName","src":"9188:5:89","type":""},{"name":"len","nativeSrc":"9195:3:89","nodeType":"YulTypedName","src":"9195:3:89","type":""},{"name":"startIndex","nativeSrc":"9200:10:89","nodeType":"YulTypedName","src":"9200:10:89","type":""}],"src":"9135:518:89"},{"body":{"nativeSrc":"9743:81:89","nodeType":"YulBlock","src":"9743:81:89","statements":[{"nativeSrc":"9753:65:89","nodeType":"YulAssignment","src":"9753:65:89","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"9768:4:89","nodeType":"YulIdentifier","src":"9768:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9786:1:89","nodeType":"YulLiteral","src":"9786:1:89","type":"","value":"3"},{"name":"len","nativeSrc":"9789:3:89","nodeType":"YulIdentifier","src":"9789:3:89"}],"functionName":{"name":"shl","nativeSrc":"9782:3:89","nodeType":"YulIdentifier","src":"9782:3:89"},"nativeSrc":"9782:11:89","nodeType":"YulFunctionCall","src":"9782:11:89"},{"arguments":[{"kind":"number","nativeSrc":"9799:1:89","nodeType":"YulLiteral","src":"9799:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"9795:3:89","nodeType":"YulIdentifier","src":"9795:3:89"},"nativeSrc":"9795:6:89","nodeType":"YulFunctionCall","src":"9795:6:89"}],"functionName":{"name":"shr","nativeSrc":"9778:3:89","nodeType":"YulIdentifier","src":"9778:3:89"},"nativeSrc":"9778:24:89","nodeType":"YulFunctionCall","src":"9778:24:89"}],"functionName":{"name":"not","nativeSrc":"9774:3:89","nodeType":"YulIdentifier","src":"9774:3:89"},"nativeSrc":"9774:29:89","nodeType":"YulFunctionCall","src":"9774:29:89"}],"functionName":{"name":"and","nativeSrc":"9764:3:89","nodeType":"YulIdentifier","src":"9764:3:89"},"nativeSrc":"9764:40:89","nodeType":"YulFunctionCall","src":"9764:40:89"},{"arguments":[{"kind":"number","nativeSrc":"9810:1:89","nodeType":"YulLiteral","src":"9810:1:89","type":"","value":"1"},{"name":"len","nativeSrc":"9813:3:89","nodeType":"YulIdentifier","src":"9813:3:89"}],"functionName":{"name":"shl","nativeSrc":"9806:3:89","nodeType":"YulIdentifier","src":"9806:3:89"},"nativeSrc":"9806:11:89","nodeType":"YulFunctionCall","src":"9806:11:89"}],"functionName":{"name":"or","nativeSrc":"9761:2:89","nodeType":"YulIdentifier","src":"9761:2:89"},"nativeSrc":"9761:57:89","nodeType":"YulFunctionCall","src":"9761:57:89"},"variableNames":[{"name":"used","nativeSrc":"9753:4:89","nodeType":"YulIdentifier","src":"9753:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"9658:166:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"9720:4:89","nodeType":"YulTypedName","src":"9720:4:89","type":""},{"name":"len","nativeSrc":"9726:3:89","nodeType":"YulTypedName","src":"9726:3:89","type":""}],"returnVariables":[{"name":"used","nativeSrc":"9734:4:89","nodeType":"YulTypedName","src":"9734:4:89","type":""}],"src":"9658:166:89"},{"body":{"nativeSrc":"9932:1103:89","nodeType":"YulBlock","src":"9932:1103:89","statements":[{"body":{"nativeSrc":"9973:22:89","nodeType":"YulBlock","src":"9973:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9975:16:89","nodeType":"YulIdentifier","src":"9975:16:89"},"nativeSrc":"9975:18:89","nodeType":"YulFunctionCall","src":"9975:18:89"},"nativeSrc":"9975:18:89","nodeType":"YulExpressionStatement","src":"9975:18:89"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"9948:3:89","nodeType":"YulIdentifier","src":"9948:3:89"},{"kind":"number","nativeSrc":"9953:18:89","nodeType":"YulLiteral","src":"9953:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9945:2:89","nodeType":"YulIdentifier","src":"9945:2:89"},"nativeSrc":"9945:27:89","nodeType":"YulFunctionCall","src":"9945:27:89"},"nativeSrc":"9942:53:89","nodeType":"YulIf","src":"9942:53:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"10048:4:89","nodeType":"YulIdentifier","src":"10048:4:89"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"10086:4:89","nodeType":"YulIdentifier","src":"10086:4:89"}],"functionName":{"name":"sload","nativeSrc":"10080:5:89","nodeType":"YulIdentifier","src":"10080:5:89"},"nativeSrc":"10080:11:89","nodeType":"YulFunctionCall","src":"10080:11:89"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"10054:25:89","nodeType":"YulIdentifier","src":"10054:25:89"},"nativeSrc":"10054:38:89","nodeType":"YulFunctionCall","src":"10054:38:89"},{"name":"len","nativeSrc":"10094:3:89","nodeType":"YulIdentifier","src":"10094:3:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"10004:43:89","nodeType":"YulIdentifier","src":"10004:43:89"},"nativeSrc":"10004:94:89","nodeType":"YulFunctionCall","src":"10004:94:89"},"nativeSrc":"10004:94:89","nodeType":"YulExpressionStatement","src":"10004:94:89"},{"nativeSrc":"10107:18:89","nodeType":"YulVariableDeclaration","src":"10107:18:89","value":{"kind":"number","nativeSrc":"10124:1:89","nodeType":"YulLiteral","src":"10124:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"10111:9:89","nodeType":"YulTypedName","src":"10111:9:89","type":""}]},{"cases":[{"body":{"nativeSrc":"10168:609:89","nodeType":"YulBlock","src":"10168:609:89","statements":[{"nativeSrc":"10182:32:89","nodeType":"YulVariableDeclaration","src":"10182:32:89","value":{"arguments":[{"name":"len","nativeSrc":"10201:3:89","nodeType":"YulIdentifier","src":"10201:3:89"},{"arguments":[{"kind":"number","nativeSrc":"10210:2:89","nodeType":"YulLiteral","src":"10210:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10206:3:89","nodeType":"YulIdentifier","src":"10206:3:89"},"nativeSrc":"10206:7:89","nodeType":"YulFunctionCall","src":"10206:7:89"}],"functionName":{"name":"and","nativeSrc":"10197:3:89","nodeType":"YulIdentifier","src":"10197:3:89"},"nativeSrc":"10197:17:89","nodeType":"YulFunctionCall","src":"10197:17:89"},"variables":[{"name":"loopEnd","nativeSrc":"10186:7:89","nodeType":"YulTypedName","src":"10186:7:89","type":""}]},{"nativeSrc":"10227:49:89","nodeType":"YulVariableDeclaration","src":"10227:49:89","value":{"arguments":[{"name":"slot","nativeSrc":"10271:4:89","nodeType":"YulIdentifier","src":"10271:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"10241:29:89","nodeType":"YulIdentifier","src":"10241:29:89"},"nativeSrc":"10241:35:89","nodeType":"YulFunctionCall","src":"10241:35:89"},"variables":[{"name":"dstPtr","nativeSrc":"10231:6:89","nodeType":"YulTypedName","src":"10231:6:89","type":""}]},{"nativeSrc":"10289:18:89","nodeType":"YulVariableDeclaration","src":"10289:18:89","value":{"name":"srcOffset","nativeSrc":"10298:9:89","nodeType":"YulIdentifier","src":"10298:9:89"},"variables":[{"name":"i","nativeSrc":"10293:1:89","nodeType":"YulTypedName","src":"10293:1:89","type":""}]},{"body":{"nativeSrc":"10377:172:89","nodeType":"YulBlock","src":"10377:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"10402:6:89","nodeType":"YulIdentifier","src":"10402:6:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10427:3:89","nodeType":"YulIdentifier","src":"10427:3:89"},{"name":"srcOffset","nativeSrc":"10432:9:89","nodeType":"YulIdentifier","src":"10432:9:89"}],"functionName":{"name":"add","nativeSrc":"10423:3:89","nodeType":"YulIdentifier","src":"10423:3:89"},"nativeSrc":"10423:19:89","nodeType":"YulFunctionCall","src":"10423:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"10410:12:89","nodeType":"YulIdentifier","src":"10410:12:89"},"nativeSrc":"10410:33:89","nodeType":"YulFunctionCall","src":"10410:33:89"}],"functionName":{"name":"sstore","nativeSrc":"10395:6:89","nodeType":"YulIdentifier","src":"10395:6:89"},"nativeSrc":"10395:49:89","nodeType":"YulFunctionCall","src":"10395:49:89"},"nativeSrc":"10395:49:89","nodeType":"YulExpressionStatement","src":"10395:49:89"},{"nativeSrc":"10461:24:89","nodeType":"YulAssignment","src":"10461:24:89","value":{"arguments":[{"name":"dstPtr","nativeSrc":"10475:6:89","nodeType":"YulIdentifier","src":"10475:6:89"},{"kind":"number","nativeSrc":"10483:1:89","nodeType":"YulLiteral","src":"10483:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10471:3:89","nodeType":"YulIdentifier","src":"10471:3:89"},"nativeSrc":"10471:14:89","nodeType":"YulFunctionCall","src":"10471:14:89"},"variableNames":[{"name":"dstPtr","nativeSrc":"10461:6:89","nodeType":"YulIdentifier","src":"10461:6:89"}]},{"nativeSrc":"10502:33:89","nodeType":"YulAssignment","src":"10502:33:89","value":{"arguments":[{"name":"srcOffset","nativeSrc":"10519:9:89","nodeType":"YulIdentifier","src":"10519:9:89"},{"kind":"number","nativeSrc":"10530:4:89","nodeType":"YulLiteral","src":"10530:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10515:3:89","nodeType":"YulIdentifier","src":"10515:3:89"},"nativeSrc":"10515:20:89","nodeType":"YulFunctionCall","src":"10515:20:89"},"variableNames":[{"name":"srcOffset","nativeSrc":"10502:9:89","nodeType":"YulIdentifier","src":"10502:9:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"10331:1:89","nodeType":"YulIdentifier","src":"10331:1:89"},{"name":"loopEnd","nativeSrc":"10334:7:89","nodeType":"YulIdentifier","src":"10334:7:89"}],"functionName":{"name":"lt","nativeSrc":"10328:2:89","nodeType":"YulIdentifier","src":"10328:2:89"},"nativeSrc":"10328:14:89","nodeType":"YulFunctionCall","src":"10328:14:89"},"nativeSrc":"10320:229:89","nodeType":"YulForLoop","post":{"nativeSrc":"10343:21:89","nodeType":"YulBlock","src":"10343:21:89","statements":[{"nativeSrc":"10345:17:89","nodeType":"YulAssignment","src":"10345:17:89","value":{"arguments":[{"name":"i","nativeSrc":"10354:1:89","nodeType":"YulIdentifier","src":"10354:1:89"},{"kind":"number","nativeSrc":"10357:4:89","nodeType":"YulLiteral","src":"10357:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10350:3:89","nodeType":"YulIdentifier","src":"10350:3:89"},"nativeSrc":"10350:12:89","nodeType":"YulFunctionCall","src":"10350:12:89"},"variableNames":[{"name":"i","nativeSrc":"10345:1:89","nodeType":"YulIdentifier","src":"10345:1:89"}]}]},"pre":{"nativeSrc":"10324:3:89","nodeType":"YulBlock","src":"10324:3:89","statements":[]},"src":"10320:229:89"},{"body":{"nativeSrc":"10594:127:89","nodeType":"YulBlock","src":"10594:127:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"10619:6:89","nodeType":"YulIdentifier","src":"10619:6:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10648:3:89","nodeType":"YulIdentifier","src":"10648:3:89"},{"name":"srcOffset","nativeSrc":"10653:9:89","nodeType":"YulIdentifier","src":"10653:9:89"}],"functionName":{"name":"add","nativeSrc":"10644:3:89","nodeType":"YulIdentifier","src":"10644:3:89"},"nativeSrc":"10644:19:89","nodeType":"YulFunctionCall","src":"10644:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"10631:12:89","nodeType":"YulIdentifier","src":"10631:12:89"},"nativeSrc":"10631:33:89","nodeType":"YulFunctionCall","src":"10631:33:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10682:1:89","nodeType":"YulLiteral","src":"10682:1:89","type":"","value":"3"},{"name":"len","nativeSrc":"10685:3:89","nodeType":"YulIdentifier","src":"10685:3:89"}],"functionName":{"name":"shl","nativeSrc":"10678:3:89","nodeType":"YulIdentifier","src":"10678:3:89"},"nativeSrc":"10678:11:89","nodeType":"YulFunctionCall","src":"10678:11:89"},{"kind":"number","nativeSrc":"10691:3:89","nodeType":"YulLiteral","src":"10691:3:89","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"10674:3:89","nodeType":"YulIdentifier","src":"10674:3:89"},"nativeSrc":"10674:21:89","nodeType":"YulFunctionCall","src":"10674:21:89"},{"arguments":[{"kind":"number","nativeSrc":"10701:1:89","nodeType":"YulLiteral","src":"10701:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"10697:3:89","nodeType":"YulIdentifier","src":"10697:3:89"},"nativeSrc":"10697:6:89","nodeType":"YulFunctionCall","src":"10697:6:89"}],"functionName":{"name":"shr","nativeSrc":"10670:3:89","nodeType":"YulIdentifier","src":"10670:3:89"},"nativeSrc":"10670:34:89","nodeType":"YulFunctionCall","src":"10670:34:89"}],"functionName":{"name":"not","nativeSrc":"10666:3:89","nodeType":"YulIdentifier","src":"10666:3:89"},"nativeSrc":"10666:39:89","nodeType":"YulFunctionCall","src":"10666:39:89"}],"functionName":{"name":"and","nativeSrc":"10627:3:89","nodeType":"YulIdentifier","src":"10627:3:89"},"nativeSrc":"10627:79:89","nodeType":"YulFunctionCall","src":"10627:79:89"}],"functionName":{"name":"sstore","nativeSrc":"10612:6:89","nodeType":"YulIdentifier","src":"10612:6:89"},"nativeSrc":"10612:95:89","nodeType":"YulFunctionCall","src":"10612:95:89"},"nativeSrc":"10612:95:89","nodeType":"YulExpressionStatement","src":"10612:95:89"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"10568:7:89","nodeType":"YulIdentifier","src":"10568:7:89"},{"name":"len","nativeSrc":"10577:3:89","nodeType":"YulIdentifier","src":"10577:3:89"}],"functionName":{"name":"lt","nativeSrc":"10565:2:89","nodeType":"YulIdentifier","src":"10565:2:89"},"nativeSrc":"10565:16:89","nodeType":"YulFunctionCall","src":"10565:16:89"},"nativeSrc":"10562:159:89","nodeType":"YulIf","src":"10562:159:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"10741:4:89","nodeType":"YulIdentifier","src":"10741:4:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10755:1:89","nodeType":"YulLiteral","src":"10755:1:89","type":"","value":"1"},{"name":"len","nativeSrc":"10758:3:89","nodeType":"YulIdentifier","src":"10758:3:89"}],"functionName":{"name":"shl","nativeSrc":"10751:3:89","nodeType":"YulIdentifier","src":"10751:3:89"},"nativeSrc":"10751:11:89","nodeType":"YulFunctionCall","src":"10751:11:89"},{"kind":"number","nativeSrc":"10764:1:89","nodeType":"YulLiteral","src":"10764:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10747:3:89","nodeType":"YulIdentifier","src":"10747:3:89"},"nativeSrc":"10747:19:89","nodeType":"YulFunctionCall","src":"10747:19:89"}],"functionName":{"name":"sstore","nativeSrc":"10734:6:89","nodeType":"YulIdentifier","src":"10734:6:89"},"nativeSrc":"10734:33:89","nodeType":"YulFunctionCall","src":"10734:33:89"},"nativeSrc":"10734:33:89","nodeType":"YulExpressionStatement","src":"10734:33:89"}]},"nativeSrc":"10161:616:89","nodeType":"YulCase","src":"10161:616:89","value":{"kind":"number","nativeSrc":"10166:1:89","nodeType":"YulLiteral","src":"10166:1:89","type":"","value":"1"}},{"body":{"nativeSrc":"10794:235:89","nodeType":"YulBlock","src":"10794:235:89","statements":[{"nativeSrc":"10808:14:89","nodeType":"YulVariableDeclaration","src":"10808:14:89","value":{"kind":"number","nativeSrc":"10821:1:89","nodeType":"YulLiteral","src":"10821:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"10812:5:89","nodeType":"YulTypedName","src":"10812:5:89","type":""}]},{"body":{"nativeSrc":"10854:74:89","nodeType":"YulBlock","src":"10854:74:89","statements":[{"nativeSrc":"10872:42:89","nodeType":"YulAssignment","src":"10872:42:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10898:3:89","nodeType":"YulIdentifier","src":"10898:3:89"},{"name":"srcOffset","nativeSrc":"10903:9:89","nodeType":"YulIdentifier","src":"10903:9:89"}],"functionName":{"name":"add","nativeSrc":"10894:3:89","nodeType":"YulIdentifier","src":"10894:3:89"},"nativeSrc":"10894:19:89","nodeType":"YulFunctionCall","src":"10894:19:89"}],"functionName":{"name":"calldataload","nativeSrc":"10881:12:89","nodeType":"YulIdentifier","src":"10881:12:89"},"nativeSrc":"10881:33:89","nodeType":"YulFunctionCall","src":"10881:33:89"},"variableNames":[{"name":"value","nativeSrc":"10872:5:89","nodeType":"YulIdentifier","src":"10872:5:89"}]}]},"condition":{"name":"len","nativeSrc":"10838:3:89","nodeType":"YulIdentifier","src":"10838:3:89"},"nativeSrc":"10835:93:89","nodeType":"YulIf","src":"10835:93:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"10948:4:89","nodeType":"YulIdentifier","src":"10948:4:89"},{"arguments":[{"name":"value","nativeSrc":"11007:5:89","nodeType":"YulIdentifier","src":"11007:5:89"},{"name":"len","nativeSrc":"11014:3:89","nodeType":"YulIdentifier","src":"11014:3:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"10954:52:89","nodeType":"YulIdentifier","src":"10954:52:89"},"nativeSrc":"10954:64:89","nodeType":"YulFunctionCall","src":"10954:64:89"}],"functionName":{"name":"sstore","nativeSrc":"10941:6:89","nodeType":"YulIdentifier","src":"10941:6:89"},"nativeSrc":"10941:78:89","nodeType":"YulFunctionCall","src":"10941:78:89"},"nativeSrc":"10941:78:89","nodeType":"YulExpressionStatement","src":"10941:78:89"}]},"nativeSrc":"10786:243:89","nodeType":"YulCase","src":"10786:243:89","value":"default"}],"expression":{"arguments":[{"name":"len","nativeSrc":"10144:3:89","nodeType":"YulIdentifier","src":"10144:3:89"},{"kind":"number","nativeSrc":"10149:2:89","nodeType":"YulLiteral","src":"10149:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"10141:2:89","nodeType":"YulIdentifier","src":"10141:2:89"},"nativeSrc":"10141:11:89","nodeType":"YulFunctionCall","src":"10141:11:89"},"nativeSrc":"10134:895:89","nodeType":"YulSwitch","src":"10134:895:89"}]},"name":"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage","nativeSrc":"9829:1206:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"9912:4:89","nodeType":"YulTypedName","src":"9912:4:89","type":""},{"name":"src","nativeSrc":"9918:3:89","nodeType":"YulTypedName","src":"9918:3:89","type":""},{"name":"len","nativeSrc":"9923:3:89","nodeType":"YulTypedName","src":"9923:3:89","type":""}],"src":"9829:1206:89"},{"body":{"nativeSrc":"11136:1203:89","nodeType":"YulBlock","src":"11136:1203:89","statements":[{"nativeSrc":"11146:24:89","nodeType":"YulVariableDeclaration","src":"11146:24:89","value":{"arguments":[{"name":"src","nativeSrc":"11166:3:89","nodeType":"YulIdentifier","src":"11166:3:89"}],"functionName":{"name":"mload","nativeSrc":"11160:5:89","nodeType":"YulIdentifier","src":"11160:5:89"},"nativeSrc":"11160:10:89","nodeType":"YulFunctionCall","src":"11160:10:89"},"variables":[{"name":"newLen","nativeSrc":"11150:6:89","nodeType":"YulTypedName","src":"11150:6:89","type":""}]},{"body":{"nativeSrc":"11213:22:89","nodeType":"YulBlock","src":"11213:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11215:16:89","nodeType":"YulIdentifier","src":"11215:16:89"},"nativeSrc":"11215:18:89","nodeType":"YulFunctionCall","src":"11215:18:89"},"nativeSrc":"11215:18:89","nodeType":"YulExpressionStatement","src":"11215:18:89"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"11185:6:89","nodeType":"YulIdentifier","src":"11185:6:89"},{"kind":"number","nativeSrc":"11193:18:89","nodeType":"YulLiteral","src":"11193:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11182:2:89","nodeType":"YulIdentifier","src":"11182:2:89"},"nativeSrc":"11182:30:89","nodeType":"YulFunctionCall","src":"11182:30:89"},"nativeSrc":"11179:56:89","nodeType":"YulIf","src":"11179:56:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"11288:4:89","nodeType":"YulIdentifier","src":"11288:4:89"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"11326:4:89","nodeType":"YulIdentifier","src":"11326:4:89"}],"functionName":{"name":"sload","nativeSrc":"11320:5:89","nodeType":"YulIdentifier","src":"11320:5:89"},"nativeSrc":"11320:11:89","nodeType":"YulFunctionCall","src":"11320:11:89"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"11294:25:89","nodeType":"YulIdentifier","src":"11294:25:89"},"nativeSrc":"11294:38:89","nodeType":"YulFunctionCall","src":"11294:38:89"},{"name":"newLen","nativeSrc":"11334:6:89","nodeType":"YulIdentifier","src":"11334:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"11244:43:89","nodeType":"YulIdentifier","src":"11244:43:89"},"nativeSrc":"11244:97:89","nodeType":"YulFunctionCall","src":"11244:97:89"},"nativeSrc":"11244:97:89","nodeType":"YulExpressionStatement","src":"11244:97:89"},{"nativeSrc":"11350:18:89","nodeType":"YulVariableDeclaration","src":"11350:18:89","value":{"kind":"number","nativeSrc":"11367:1:89","nodeType":"YulLiteral","src":"11367:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"11354:9:89","nodeType":"YulTypedName","src":"11354:9:89","type":""}]},{"nativeSrc":"11377:17:89","nodeType":"YulAssignment","src":"11377:17:89","value":{"kind":"number","nativeSrc":"11390:4:89","nodeType":"YulLiteral","src":"11390:4:89","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"11377:9:89","nodeType":"YulIdentifier","src":"11377:9:89"}]},{"cases":[{"body":{"nativeSrc":"11440:642:89","nodeType":"YulBlock","src":"11440:642:89","statements":[{"nativeSrc":"11454:35:89","nodeType":"YulVariableDeclaration","src":"11454:35:89","value":{"arguments":[{"name":"newLen","nativeSrc":"11473:6:89","nodeType":"YulIdentifier","src":"11473:6:89"},{"arguments":[{"kind":"number","nativeSrc":"11485:2:89","nodeType":"YulLiteral","src":"11485:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11481:3:89","nodeType":"YulIdentifier","src":"11481:3:89"},"nativeSrc":"11481:7:89","nodeType":"YulFunctionCall","src":"11481:7:89"}],"functionName":{"name":"and","nativeSrc":"11469:3:89","nodeType":"YulIdentifier","src":"11469:3:89"},"nativeSrc":"11469:20:89","nodeType":"YulFunctionCall","src":"11469:20:89"},"variables":[{"name":"loopEnd","nativeSrc":"11458:7:89","nodeType":"YulTypedName","src":"11458:7:89","type":""}]},{"nativeSrc":"11502:49:89","nodeType":"YulVariableDeclaration","src":"11502:49:89","value":{"arguments":[{"name":"slot","nativeSrc":"11546:4:89","nodeType":"YulIdentifier","src":"11546:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"11516:29:89","nodeType":"YulIdentifier","src":"11516:29:89"},"nativeSrc":"11516:35:89","nodeType":"YulFunctionCall","src":"11516:35:89"},"variables":[{"name":"dstPtr","nativeSrc":"11506:6:89","nodeType":"YulTypedName","src":"11506:6:89","type":""}]},{"nativeSrc":"11564:10:89","nodeType":"YulVariableDeclaration","src":"11564:10:89","value":{"kind":"number","nativeSrc":"11573:1:89","nodeType":"YulLiteral","src":"11573:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"11568:1:89","nodeType":"YulTypedName","src":"11568:1:89","type":""}]},{"body":{"nativeSrc":"11644:165:89","nodeType":"YulBlock","src":"11644:165:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"11669:6:89","nodeType":"YulIdentifier","src":"11669:6:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11687:3:89","nodeType":"YulIdentifier","src":"11687:3:89"},{"name":"srcOffset","nativeSrc":"11692:9:89","nodeType":"YulIdentifier","src":"11692:9:89"}],"functionName":{"name":"add","nativeSrc":"11683:3:89","nodeType":"YulIdentifier","src":"11683:3:89"},"nativeSrc":"11683:19:89","nodeType":"YulFunctionCall","src":"11683:19:89"}],"functionName":{"name":"mload","nativeSrc":"11677:5:89","nodeType":"YulIdentifier","src":"11677:5:89"},"nativeSrc":"11677:26:89","nodeType":"YulFunctionCall","src":"11677:26:89"}],"functionName":{"name":"sstore","nativeSrc":"11662:6:89","nodeType":"YulIdentifier","src":"11662:6:89"},"nativeSrc":"11662:42:89","nodeType":"YulFunctionCall","src":"11662:42:89"},"nativeSrc":"11662:42:89","nodeType":"YulExpressionStatement","src":"11662:42:89"},{"nativeSrc":"11721:24:89","nodeType":"YulAssignment","src":"11721:24:89","value":{"arguments":[{"name":"dstPtr","nativeSrc":"11735:6:89","nodeType":"YulIdentifier","src":"11735:6:89"},{"kind":"number","nativeSrc":"11743:1:89","nodeType":"YulLiteral","src":"11743:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11731:3:89","nodeType":"YulIdentifier","src":"11731:3:89"},"nativeSrc":"11731:14:89","nodeType":"YulFunctionCall","src":"11731:14:89"},"variableNames":[{"name":"dstPtr","nativeSrc":"11721:6:89","nodeType":"YulIdentifier","src":"11721:6:89"}]},{"nativeSrc":"11762:33:89","nodeType":"YulAssignment","src":"11762:33:89","value":{"arguments":[{"name":"srcOffset","nativeSrc":"11779:9:89","nodeType":"YulIdentifier","src":"11779:9:89"},{"kind":"number","nativeSrc":"11790:4:89","nodeType":"YulLiteral","src":"11790:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11775:3:89","nodeType":"YulIdentifier","src":"11775:3:89"},"nativeSrc":"11775:20:89","nodeType":"YulFunctionCall","src":"11775:20:89"},"variableNames":[{"name":"srcOffset","nativeSrc":"11762:9:89","nodeType":"YulIdentifier","src":"11762:9:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"11598:1:89","nodeType":"YulIdentifier","src":"11598:1:89"},{"name":"loopEnd","nativeSrc":"11601:7:89","nodeType":"YulIdentifier","src":"11601:7:89"}],"functionName":{"name":"lt","nativeSrc":"11595:2:89","nodeType":"YulIdentifier","src":"11595:2:89"},"nativeSrc":"11595:14:89","nodeType":"YulFunctionCall","src":"11595:14:89"},"nativeSrc":"11587:222:89","nodeType":"YulForLoop","post":{"nativeSrc":"11610:21:89","nodeType":"YulBlock","src":"11610:21:89","statements":[{"nativeSrc":"11612:17:89","nodeType":"YulAssignment","src":"11612:17:89","value":{"arguments":[{"name":"i","nativeSrc":"11621:1:89","nodeType":"YulIdentifier","src":"11621:1:89"},{"kind":"number","nativeSrc":"11624:4:89","nodeType":"YulLiteral","src":"11624:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11617:3:89","nodeType":"YulIdentifier","src":"11617:3:89"},"nativeSrc":"11617:12:89","nodeType":"YulFunctionCall","src":"11617:12:89"},"variableNames":[{"name":"i","nativeSrc":"11612:1:89","nodeType":"YulIdentifier","src":"11612:1:89"}]}]},"pre":{"nativeSrc":"11591:3:89","nodeType":"YulBlock","src":"11591:3:89","statements":[]},"src":"11587:222:89"},{"body":{"nativeSrc":"11857:166:89","nodeType":"YulBlock","src":"11857:166:89","statements":[{"nativeSrc":"11875:43:89","nodeType":"YulVariableDeclaration","src":"11875:43:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11902:3:89","nodeType":"YulIdentifier","src":"11902:3:89"},{"name":"srcOffset","nativeSrc":"11907:9:89","nodeType":"YulIdentifier","src":"11907:9:89"}],"functionName":{"name":"add","nativeSrc":"11898:3:89","nodeType":"YulIdentifier","src":"11898:3:89"},"nativeSrc":"11898:19:89","nodeType":"YulFunctionCall","src":"11898:19:89"}],"functionName":{"name":"mload","nativeSrc":"11892:5:89","nodeType":"YulIdentifier","src":"11892:5:89"},"nativeSrc":"11892:26:89","nodeType":"YulFunctionCall","src":"11892:26:89"},"variables":[{"name":"lastValue","nativeSrc":"11879:9:89","nodeType":"YulTypedName","src":"11879:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"11942:6:89","nodeType":"YulIdentifier","src":"11942:6:89"},{"arguments":[{"name":"lastValue","nativeSrc":"11954:9:89","nodeType":"YulIdentifier","src":"11954:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11981:1:89","nodeType":"YulLiteral","src":"11981:1:89","type":"","value":"3"},{"name":"newLen","nativeSrc":"11984:6:89","nodeType":"YulIdentifier","src":"11984:6:89"}],"functionName":{"name":"shl","nativeSrc":"11977:3:89","nodeType":"YulIdentifier","src":"11977:3:89"},"nativeSrc":"11977:14:89","nodeType":"YulFunctionCall","src":"11977:14:89"},{"kind":"number","nativeSrc":"11993:3:89","nodeType":"YulLiteral","src":"11993:3:89","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"11973:3:89","nodeType":"YulIdentifier","src":"11973:3:89"},"nativeSrc":"11973:24:89","nodeType":"YulFunctionCall","src":"11973:24:89"},{"arguments":[{"kind":"number","nativeSrc":"12003:1:89","nodeType":"YulLiteral","src":"12003:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"11999:3:89","nodeType":"YulIdentifier","src":"11999:3:89"},"nativeSrc":"11999:6:89","nodeType":"YulFunctionCall","src":"11999:6:89"}],"functionName":{"name":"shr","nativeSrc":"11969:3:89","nodeType":"YulIdentifier","src":"11969:3:89"},"nativeSrc":"11969:37:89","nodeType":"YulFunctionCall","src":"11969:37:89"}],"functionName":{"name":"not","nativeSrc":"11965:3:89","nodeType":"YulIdentifier","src":"11965:3:89"},"nativeSrc":"11965:42:89","nodeType":"YulFunctionCall","src":"11965:42:89"}],"functionName":{"name":"and","nativeSrc":"11950:3:89","nodeType":"YulIdentifier","src":"11950:3:89"},"nativeSrc":"11950:58:89","nodeType":"YulFunctionCall","src":"11950:58:89"}],"functionName":{"name":"sstore","nativeSrc":"11935:6:89","nodeType":"YulIdentifier","src":"11935:6:89"},"nativeSrc":"11935:74:89","nodeType":"YulFunctionCall","src":"11935:74:89"},"nativeSrc":"11935:74:89","nodeType":"YulExpressionStatement","src":"11935:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"11828:7:89","nodeType":"YulIdentifier","src":"11828:7:89"},{"name":"newLen","nativeSrc":"11837:6:89","nodeType":"YulIdentifier","src":"11837:6:89"}],"functionName":{"name":"lt","nativeSrc":"11825:2:89","nodeType":"YulIdentifier","src":"11825:2:89"},"nativeSrc":"11825:19:89","nodeType":"YulFunctionCall","src":"11825:19:89"},"nativeSrc":"11822:201:89","nodeType":"YulIf","src":"11822:201:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"12043:4:89","nodeType":"YulIdentifier","src":"12043:4:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12057:1:89","nodeType":"YulLiteral","src":"12057:1:89","type":"","value":"1"},{"name":"newLen","nativeSrc":"12060:6:89","nodeType":"YulIdentifier","src":"12060:6:89"}],"functionName":{"name":"shl","nativeSrc":"12053:3:89","nodeType":"YulIdentifier","src":"12053:3:89"},"nativeSrc":"12053:14:89","nodeType":"YulFunctionCall","src":"12053:14:89"},{"kind":"number","nativeSrc":"12069:1:89","nodeType":"YulLiteral","src":"12069:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12049:3:89","nodeType":"YulIdentifier","src":"12049:3:89"},"nativeSrc":"12049:22:89","nodeType":"YulFunctionCall","src":"12049:22:89"}],"functionName":{"name":"sstore","nativeSrc":"12036:6:89","nodeType":"YulIdentifier","src":"12036:6:89"},"nativeSrc":"12036:36:89","nodeType":"YulFunctionCall","src":"12036:36:89"},"nativeSrc":"12036:36:89","nodeType":"YulExpressionStatement","src":"12036:36:89"}]},"nativeSrc":"11433:649:89","nodeType":"YulCase","src":"11433:649:89","value":{"kind":"number","nativeSrc":"11438:1:89","nodeType":"YulLiteral","src":"11438:1:89","type":"","value":"1"}},{"body":{"nativeSrc":"12099:234:89","nodeType":"YulBlock","src":"12099:234:89","statements":[{"nativeSrc":"12113:14:89","nodeType":"YulVariableDeclaration","src":"12113:14:89","value":{"kind":"number","nativeSrc":"12126:1:89","nodeType":"YulLiteral","src":"12126:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"12117:5:89","nodeType":"YulTypedName","src":"12117:5:89","type":""}]},{"body":{"nativeSrc":"12162:67:89","nodeType":"YulBlock","src":"12162:67:89","statements":[{"nativeSrc":"12180:35:89","nodeType":"YulAssignment","src":"12180:35:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"12199:3:89","nodeType":"YulIdentifier","src":"12199:3:89"},{"name":"srcOffset","nativeSrc":"12204:9:89","nodeType":"YulIdentifier","src":"12204:9:89"}],"functionName":{"name":"add","nativeSrc":"12195:3:89","nodeType":"YulIdentifier","src":"12195:3:89"},"nativeSrc":"12195:19:89","nodeType":"YulFunctionCall","src":"12195:19:89"}],"functionName":{"name":"mload","nativeSrc":"12189:5:89","nodeType":"YulIdentifier","src":"12189:5:89"},"nativeSrc":"12189:26:89","nodeType":"YulFunctionCall","src":"12189:26:89"},"variableNames":[{"name":"value","nativeSrc":"12180:5:89","nodeType":"YulIdentifier","src":"12180:5:89"}]}]},"condition":{"name":"newLen","nativeSrc":"12143:6:89","nodeType":"YulIdentifier","src":"12143:6:89"},"nativeSrc":"12140:89:89","nodeType":"YulIf","src":"12140:89:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"12249:4:89","nodeType":"YulIdentifier","src":"12249:4:89"},{"arguments":[{"name":"value","nativeSrc":"12308:5:89","nodeType":"YulIdentifier","src":"12308:5:89"},{"name":"newLen","nativeSrc":"12315:6:89","nodeType":"YulIdentifier","src":"12315:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"12255:52:89","nodeType":"YulIdentifier","src":"12255:52:89"},"nativeSrc":"12255:67:89","nodeType":"YulFunctionCall","src":"12255:67:89"}],"functionName":{"name":"sstore","nativeSrc":"12242:6:89","nodeType":"YulIdentifier","src":"12242:6:89"},"nativeSrc":"12242:81:89","nodeType":"YulFunctionCall","src":"12242:81:89"},"nativeSrc":"12242:81:89","nodeType":"YulExpressionStatement","src":"12242:81:89"}]},"nativeSrc":"12091:242:89","nodeType":"YulCase","src":"12091:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"11413:6:89","nodeType":"YulIdentifier","src":"11413:6:89"},{"kind":"number","nativeSrc":"11421:2:89","nodeType":"YulLiteral","src":"11421:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"11410:2:89","nodeType":"YulIdentifier","src":"11410:2:89"},"nativeSrc":"11410:14:89","nodeType":"YulFunctionCall","src":"11410:14:89"},"nativeSrc":"11403:930:89","nodeType":"YulSwitch","src":"11403:930:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"11040:1299:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"11121:4:89","nodeType":"YulTypedName","src":"11121:4:89","type":""},{"name":"src","nativeSrc":"11127:3:89","nodeType":"YulTypedName","src":"11127:3:89","type":""}],"src":"11040:1299:89"},{"body":{"nativeSrc":"12452:101:89","nodeType":"YulBlock","src":"12452:101:89","statements":[{"nativeSrc":"12462:26:89","nodeType":"YulAssignment","src":"12462:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"12474:9:89","nodeType":"YulIdentifier","src":"12474:9:89"},{"kind":"number","nativeSrc":"12485:2:89","nodeType":"YulLiteral","src":"12485:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12470:3:89","nodeType":"YulIdentifier","src":"12470:3:89"},"nativeSrc":"12470:18:89","nodeType":"YulFunctionCall","src":"12470:18:89"},"variableNames":[{"name":"tail","nativeSrc":"12462:4:89","nodeType":"YulIdentifier","src":"12462:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12504:9:89","nodeType":"YulIdentifier","src":"12504:9:89"},{"arguments":[{"name":"value0","nativeSrc":"12519:6:89","nodeType":"YulIdentifier","src":"12519:6:89"},{"kind":"number","nativeSrc":"12527:18:89","nodeType":"YulLiteral","src":"12527:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"12515:3:89","nodeType":"YulIdentifier","src":"12515:3:89"},"nativeSrc":"12515:31:89","nodeType":"YulFunctionCall","src":"12515:31:89"}],"functionName":{"name":"mstore","nativeSrc":"12497:6:89","nodeType":"YulIdentifier","src":"12497:6:89"},"nativeSrc":"12497:50:89","nodeType":"YulFunctionCall","src":"12497:50:89"},"nativeSrc":"12497:50:89","nodeType":"YulExpressionStatement","src":"12497:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"12344:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12421:9:89","nodeType":"YulTypedName","src":"12421:9:89","type":""},{"name":"value0","nativeSrc":"12432:6:89","nodeType":"YulTypedName","src":"12432:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12443:4:89","nodeType":"YulTypedName","src":"12443:4:89","type":""}],"src":"12344:209:89"},{"body":{"nativeSrc":"12745:309:89","nodeType":"YulBlock","src":"12745:309:89","statements":[{"nativeSrc":"12755:27:89","nodeType":"YulVariableDeclaration","src":"12755:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"12775:6:89","nodeType":"YulIdentifier","src":"12775:6:89"}],"functionName":{"name":"mload","nativeSrc":"12769:5:89","nodeType":"YulIdentifier","src":"12769:5:89"},"nativeSrc":"12769:13:89","nodeType":"YulFunctionCall","src":"12769:13:89"},"variables":[{"name":"length","nativeSrc":"12759:6:89","nodeType":"YulTypedName","src":"12759:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"12830:6:89","nodeType":"YulIdentifier","src":"12830:6:89"},{"kind":"number","nativeSrc":"12838:4:89","nodeType":"YulLiteral","src":"12838:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12826:3:89","nodeType":"YulIdentifier","src":"12826:3:89"},"nativeSrc":"12826:17:89","nodeType":"YulFunctionCall","src":"12826:17:89"},{"name":"pos","nativeSrc":"12845:3:89","nodeType":"YulIdentifier","src":"12845:3:89"},{"name":"length","nativeSrc":"12850:6:89","nodeType":"YulIdentifier","src":"12850:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"12791:34:89","nodeType":"YulIdentifier","src":"12791:34:89"},"nativeSrc":"12791:66:89","nodeType":"YulFunctionCall","src":"12791:66:89"},"nativeSrc":"12791:66:89","nodeType":"YulExpressionStatement","src":"12791:66:89"},{"nativeSrc":"12866:29:89","nodeType":"YulVariableDeclaration","src":"12866:29:89","value":{"arguments":[{"name":"pos","nativeSrc":"12883:3:89","nodeType":"YulIdentifier","src":"12883:3:89"},{"name":"length","nativeSrc":"12888:6:89","nodeType":"YulIdentifier","src":"12888:6:89"}],"functionName":{"name":"add","nativeSrc":"12879:3:89","nodeType":"YulIdentifier","src":"12879:3:89"},"nativeSrc":"12879:16:89","nodeType":"YulFunctionCall","src":"12879:16:89"},"variables":[{"name":"end_1","nativeSrc":"12870:5:89","nodeType":"YulTypedName","src":"12870:5:89","type":""}]},{"nativeSrc":"12904:29:89","nodeType":"YulVariableDeclaration","src":"12904:29:89","value":{"arguments":[{"name":"value1","nativeSrc":"12926:6:89","nodeType":"YulIdentifier","src":"12926:6:89"}],"functionName":{"name":"mload","nativeSrc":"12920:5:89","nodeType":"YulIdentifier","src":"12920:5:89"},"nativeSrc":"12920:13:89","nodeType":"YulFunctionCall","src":"12920:13:89"},"variables":[{"name":"length_1","nativeSrc":"12908:8:89","nodeType":"YulTypedName","src":"12908:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"12981:6:89","nodeType":"YulIdentifier","src":"12981:6:89"},{"kind":"number","nativeSrc":"12989:4:89","nodeType":"YulLiteral","src":"12989:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12977:3:89","nodeType":"YulIdentifier","src":"12977:3:89"},"nativeSrc":"12977:17:89","nodeType":"YulFunctionCall","src":"12977:17:89"},{"name":"end_1","nativeSrc":"12996:5:89","nodeType":"YulIdentifier","src":"12996:5:89"},{"name":"length_1","nativeSrc":"13003:8:89","nodeType":"YulIdentifier","src":"13003:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"12942:34:89","nodeType":"YulIdentifier","src":"12942:34:89"},"nativeSrc":"12942:70:89","nodeType":"YulFunctionCall","src":"12942:70:89"},"nativeSrc":"12942:70:89","nodeType":"YulExpressionStatement","src":"12942:70:89"},{"nativeSrc":"13021:27:89","nodeType":"YulAssignment","src":"13021:27:89","value":{"arguments":[{"name":"end_1","nativeSrc":"13032:5:89","nodeType":"YulIdentifier","src":"13032:5:89"},{"name":"length_1","nativeSrc":"13039:8:89","nodeType":"YulIdentifier","src":"13039:8:89"}],"functionName":{"name":"add","nativeSrc":"13028:3:89","nodeType":"YulIdentifier","src":"13028:3:89"},"nativeSrc":"13028:20:89","nodeType":"YulFunctionCall","src":"13028:20:89"},"variableNames":[{"name":"end","nativeSrc":"13021:3:89","nodeType":"YulIdentifier","src":"13021:3:89"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12558:496:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12713:3:89","nodeType":"YulTypedName","src":"12713:3:89","type":""},{"name":"value1","nativeSrc":"12718:6:89","nodeType":"YulTypedName","src":"12718:6:89","type":""},{"name":"value0","nativeSrc":"12726:6:89","nodeType":"YulTypedName","src":"12726:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12737:3:89","nodeType":"YulTypedName","src":"12737:3:89","type":""}],"src":"12558:496:89"},{"body":{"nativeSrc":"13262:282:89","nodeType":"YulBlock","src":"13262:282:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13279:9:89","nodeType":"YulIdentifier","src":"13279:9:89"},{"arguments":[{"name":"value0","nativeSrc":"13294:6:89","nodeType":"YulIdentifier","src":"13294:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13310:3:89","nodeType":"YulLiteral","src":"13310:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"13315:1:89","nodeType":"YulLiteral","src":"13315:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13306:3:89","nodeType":"YulIdentifier","src":"13306:3:89"},"nativeSrc":"13306:11:89","nodeType":"YulFunctionCall","src":"13306:11:89"},{"kind":"number","nativeSrc":"13319:1:89","nodeType":"YulLiteral","src":"13319:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13302:3:89","nodeType":"YulIdentifier","src":"13302:3:89"},"nativeSrc":"13302:19:89","nodeType":"YulFunctionCall","src":"13302:19:89"}],"functionName":{"name":"and","nativeSrc":"13290:3:89","nodeType":"YulIdentifier","src":"13290:3:89"},"nativeSrc":"13290:32:89","nodeType":"YulFunctionCall","src":"13290:32:89"}],"functionName":{"name":"mstore","nativeSrc":"13272:6:89","nodeType":"YulIdentifier","src":"13272:6:89"},"nativeSrc":"13272:51:89","nodeType":"YulFunctionCall","src":"13272:51:89"},"nativeSrc":"13272:51:89","nodeType":"YulExpressionStatement","src":"13272:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13343:9:89","nodeType":"YulIdentifier","src":"13343:9:89"},{"kind":"number","nativeSrc":"13354:2:89","nodeType":"YulLiteral","src":"13354:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13339:3:89","nodeType":"YulIdentifier","src":"13339:3:89"},"nativeSrc":"13339:18:89","nodeType":"YulFunctionCall","src":"13339:18:89"},{"arguments":[{"name":"value1","nativeSrc":"13363:6:89","nodeType":"YulIdentifier","src":"13363:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13379:3:89","nodeType":"YulLiteral","src":"13379:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"13384:1:89","nodeType":"YulLiteral","src":"13384:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13375:3:89","nodeType":"YulIdentifier","src":"13375:3:89"},"nativeSrc":"13375:11:89","nodeType":"YulFunctionCall","src":"13375:11:89"},{"kind":"number","nativeSrc":"13388:1:89","nodeType":"YulLiteral","src":"13388:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13371:3:89","nodeType":"YulIdentifier","src":"13371:3:89"},"nativeSrc":"13371:19:89","nodeType":"YulFunctionCall","src":"13371:19:89"}],"functionName":{"name":"and","nativeSrc":"13359:3:89","nodeType":"YulIdentifier","src":"13359:3:89"},"nativeSrc":"13359:32:89","nodeType":"YulFunctionCall","src":"13359:32:89"}],"functionName":{"name":"mstore","nativeSrc":"13332:6:89","nodeType":"YulIdentifier","src":"13332:6:89"},"nativeSrc":"13332:60:89","nodeType":"YulFunctionCall","src":"13332:60:89"},"nativeSrc":"13332:60:89","nodeType":"YulExpressionStatement","src":"13332:60:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13412:9:89","nodeType":"YulIdentifier","src":"13412:9:89"},{"kind":"number","nativeSrc":"13423:2:89","nodeType":"YulLiteral","src":"13423:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13408:3:89","nodeType":"YulIdentifier","src":"13408:3:89"},"nativeSrc":"13408:18:89","nodeType":"YulFunctionCall","src":"13408:18:89"},{"name":"value2","nativeSrc":"13428:6:89","nodeType":"YulIdentifier","src":"13428:6:89"}],"functionName":{"name":"mstore","nativeSrc":"13401:6:89","nodeType":"YulIdentifier","src":"13401:6:89"},"nativeSrc":"13401:34:89","nodeType":"YulFunctionCall","src":"13401:34:89"},"nativeSrc":"13401:34:89","nodeType":"YulExpressionStatement","src":"13401:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13455:9:89","nodeType":"YulIdentifier","src":"13455:9:89"},{"kind":"number","nativeSrc":"13466:2:89","nodeType":"YulLiteral","src":"13466:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13451:3:89","nodeType":"YulIdentifier","src":"13451:3:89"},"nativeSrc":"13451:18:89","nodeType":"YulFunctionCall","src":"13451:18:89"},{"kind":"number","nativeSrc":"13471:3:89","nodeType":"YulLiteral","src":"13471:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"13444:6:89","nodeType":"YulIdentifier","src":"13444:6:89"},"nativeSrc":"13444:31:89","nodeType":"YulFunctionCall","src":"13444:31:89"},"nativeSrc":"13444:31:89","nodeType":"YulExpressionStatement","src":"13444:31:89"},{"nativeSrc":"13484:54:89","nodeType":"YulAssignment","src":"13484:54:89","value":{"arguments":[{"name":"value3","nativeSrc":"13510:6:89","nodeType":"YulIdentifier","src":"13510:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"13522:9:89","nodeType":"YulIdentifier","src":"13522:9:89"},{"kind":"number","nativeSrc":"13533:3:89","nodeType":"YulLiteral","src":"13533:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13518:3:89","nodeType":"YulIdentifier","src":"13518:3:89"},"nativeSrc":"13518:19:89","nodeType":"YulFunctionCall","src":"13518:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"13492:17:89","nodeType":"YulIdentifier","src":"13492:17:89"},"nativeSrc":"13492:46:89","nodeType":"YulFunctionCall","src":"13492:46:89"},"variableNames":[{"name":"tail","nativeSrc":"13484:4:89","nodeType":"YulIdentifier","src":"13484:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"13059:485:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13207:9:89","nodeType":"YulTypedName","src":"13207:9:89","type":""},{"name":"value3","nativeSrc":"13218:6:89","nodeType":"YulTypedName","src":"13218:6:89","type":""},{"name":"value2","nativeSrc":"13226:6:89","nodeType":"YulTypedName","src":"13226:6:89","type":""},{"name":"value1","nativeSrc":"13234:6:89","nodeType":"YulTypedName","src":"13234:6:89","type":""},{"name":"value0","nativeSrc":"13242:6:89","nodeType":"YulTypedName","src":"13242:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13253:4:89","nodeType":"YulTypedName","src":"13253:4:89","type":""}],"src":"13059:485:89"},{"body":{"nativeSrc":"13629:169:89","nodeType":"YulBlock","src":"13629:169:89","statements":[{"body":{"nativeSrc":"13675:16:89","nodeType":"YulBlock","src":"13675:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13684:1:89","nodeType":"YulLiteral","src":"13684:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13687:1:89","nodeType":"YulLiteral","src":"13687:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13677:6:89","nodeType":"YulIdentifier","src":"13677:6:89"},"nativeSrc":"13677:12:89","nodeType":"YulFunctionCall","src":"13677:12:89"},"nativeSrc":"13677:12:89","nodeType":"YulExpressionStatement","src":"13677:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13650:7:89","nodeType":"YulIdentifier","src":"13650:7:89"},{"name":"headStart","nativeSrc":"13659:9:89","nodeType":"YulIdentifier","src":"13659:9:89"}],"functionName":{"name":"sub","nativeSrc":"13646:3:89","nodeType":"YulIdentifier","src":"13646:3:89"},"nativeSrc":"13646:23:89","nodeType":"YulFunctionCall","src":"13646:23:89"},{"kind":"number","nativeSrc":"13671:2:89","nodeType":"YulLiteral","src":"13671:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13642:3:89","nodeType":"YulIdentifier","src":"13642:3:89"},"nativeSrc":"13642:32:89","nodeType":"YulFunctionCall","src":"13642:32:89"},"nativeSrc":"13639:52:89","nodeType":"YulIf","src":"13639:52:89"},{"nativeSrc":"13700:29:89","nodeType":"YulVariableDeclaration","src":"13700:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13719:9:89","nodeType":"YulIdentifier","src":"13719:9:89"}],"functionName":{"name":"mload","nativeSrc":"13713:5:89","nodeType":"YulIdentifier","src":"13713:5:89"},"nativeSrc":"13713:16:89","nodeType":"YulFunctionCall","src":"13713:16:89"},"variables":[{"name":"value","nativeSrc":"13704:5:89","nodeType":"YulTypedName","src":"13704:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13762:5:89","nodeType":"YulIdentifier","src":"13762:5:89"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"13738:23:89","nodeType":"YulIdentifier","src":"13738:23:89"},"nativeSrc":"13738:30:89","nodeType":"YulFunctionCall","src":"13738:30:89"},"nativeSrc":"13738:30:89","nodeType":"YulExpressionStatement","src":"13738:30:89"},{"nativeSrc":"13777:15:89","nodeType":"YulAssignment","src":"13777:15:89","value":{"name":"value","nativeSrc":"13787:5:89","nodeType":"YulIdentifier","src":"13787:5:89"},"variableNames":[{"name":"value0","nativeSrc":"13777:6:89","nodeType":"YulIdentifier","src":"13777:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"13549:249:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13595:9:89","nodeType":"YulTypedName","src":"13595:9:89","type":""},{"name":"dataEnd","nativeSrc":"13606:7:89","nodeType":"YulTypedName","src":"13606:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13618:6:89","nodeType":"YulTypedName","src":"13618:6:89","type":""}],"src":"13549:249:89"},{"body":{"nativeSrc":"13835:95:89","nodeType":"YulBlock","src":"13835:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13852:1:89","nodeType":"YulLiteral","src":"13852:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"13859:3:89","nodeType":"YulLiteral","src":"13859:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"13864:10:89","nodeType":"YulLiteral","src":"13864:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"13855:3:89","nodeType":"YulIdentifier","src":"13855:3:89"},"nativeSrc":"13855:20:89","nodeType":"YulFunctionCall","src":"13855:20:89"}],"functionName":{"name":"mstore","nativeSrc":"13845:6:89","nodeType":"YulIdentifier","src":"13845:6:89"},"nativeSrc":"13845:31:89","nodeType":"YulFunctionCall","src":"13845:31:89"},"nativeSrc":"13845:31:89","nodeType":"YulExpressionStatement","src":"13845:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13892:1:89","nodeType":"YulLiteral","src":"13892:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"13895:4:89","nodeType":"YulLiteral","src":"13895:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"13885:6:89","nodeType":"YulIdentifier","src":"13885:6:89"},"nativeSrc":"13885:15:89","nodeType":"YulFunctionCall","src":"13885:15:89"},"nativeSrc":"13885:15:89","nodeType":"YulExpressionStatement","src":"13885:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13916:1:89","nodeType":"YulLiteral","src":"13916:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13919:4:89","nodeType":"YulLiteral","src":"13919:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"13909:6:89","nodeType":"YulIdentifier","src":"13909:6:89"},"nativeSrc":"13909:15:89","nodeType":"YulFunctionCall","src":"13909:15:89"},"nativeSrc":"13909:15:89","nodeType":"YulExpressionStatement","src":"13909:15:89"}]},"name":"panic_error_0x12","nativeSrc":"13803:127:89","nodeType":"YulFunctionDefinition","src":"13803:127:89"},{"body":{"nativeSrc":"14064:145:89","nodeType":"YulBlock","src":"14064:145:89","statements":[{"nativeSrc":"14074:26:89","nodeType":"YulAssignment","src":"14074:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"14086:9:89","nodeType":"YulIdentifier","src":"14086:9:89"},{"kind":"number","nativeSrc":"14097:2:89","nodeType":"YulLiteral","src":"14097:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14082:3:89","nodeType":"YulIdentifier","src":"14082:3:89"},"nativeSrc":"14082:18:89","nodeType":"YulFunctionCall","src":"14082:18:89"},"variableNames":[{"name":"tail","nativeSrc":"14074:4:89","nodeType":"YulIdentifier","src":"14074:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14116:9:89","nodeType":"YulIdentifier","src":"14116:9:89"},{"arguments":[{"name":"value0","nativeSrc":"14131:6:89","nodeType":"YulIdentifier","src":"14131:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14147:3:89","nodeType":"YulLiteral","src":"14147:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"14152:1:89","nodeType":"YulLiteral","src":"14152:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"14143:3:89","nodeType":"YulIdentifier","src":"14143:3:89"},"nativeSrc":"14143:11:89","nodeType":"YulFunctionCall","src":"14143:11:89"},{"kind":"number","nativeSrc":"14156:1:89","nodeType":"YulLiteral","src":"14156:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"14139:3:89","nodeType":"YulIdentifier","src":"14139:3:89"},"nativeSrc":"14139:19:89","nodeType":"YulFunctionCall","src":"14139:19:89"}],"functionName":{"name":"and","nativeSrc":"14127:3:89","nodeType":"YulIdentifier","src":"14127:3:89"},"nativeSrc":"14127:32:89","nodeType":"YulFunctionCall","src":"14127:32:89"}],"functionName":{"name":"mstore","nativeSrc":"14109:6:89","nodeType":"YulIdentifier","src":"14109:6:89"},"nativeSrc":"14109:51:89","nodeType":"YulFunctionCall","src":"14109:51:89"},"nativeSrc":"14109:51:89","nodeType":"YulExpressionStatement","src":"14109:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14180:9:89","nodeType":"YulIdentifier","src":"14180:9:89"},{"kind":"number","nativeSrc":"14191:2:89","nodeType":"YulLiteral","src":"14191:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14176:3:89","nodeType":"YulIdentifier","src":"14176:3:89"},"nativeSrc":"14176:18:89","nodeType":"YulFunctionCall","src":"14176:18:89"},{"name":"value1","nativeSrc":"14196:6:89","nodeType":"YulIdentifier","src":"14196:6:89"}],"functionName":{"name":"mstore","nativeSrc":"14169:6:89","nodeType":"YulIdentifier","src":"14169:6:89"},"nativeSrc":"14169:34:89","nodeType":"YulFunctionCall","src":"14169:34:89"},"nativeSrc":"14169:34:89","nodeType":"YulExpressionStatement","src":"14169:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"13935:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14025:9:89","nodeType":"YulTypedName","src":"14025:9:89","type":""},{"name":"value1","nativeSrc":"14036:6:89","nodeType":"YulTypedName","src":"14036:6:89","type":""},{"name":"value0","nativeSrc":"14044:6:89","nodeType":"YulTypedName","src":"14044:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14055:4:89","nodeType":"YulTypedName","src":"14055:4:89","type":""}],"src":"13935:274:89"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        value0 := add(_1, 32)\n        value1 := length\n    }\n    function abi_encode_tuple_t_struct$_NFTInfo_$15993_memory_ptr__to_t_struct$_NFTInfo_$15993_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let memberValue0 := mload(value0)\n        mstore(add(headStart, 32), 0x80)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 160))\n        let memberValue0_1 := mload(add(value0, 32))\n        mstore(add(headStart, 64), add(sub(tail_1, headStart), not(31)))\n        let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n        let memberValue0_2 := mload(add(value0, 64))\n        mstore(add(headStart, 96), add(sub(tail_2, headStart), not(31)))\n        let tail_3 := abi_encode_string(memberValue0_2, tail_2)\n        let memberValue0_3 := mload(add(value0, 96))\n        mstore(add(headStart, 0x80), add(sub(tail_3, headStart), not(31)))\n        tail := abi_encode_string(memberValue0_3, tail_3)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let src := add(offset, 0x20)\n        let array_1 := 0\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let result := and(add(length, 31), not(31))\n        size := add(result, 0x20)\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array_1 := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value1 := value\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        value2 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n        let offset_3 := calldataload(add(headStart, 96))\n        if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset_3), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101165760003560e01c80636352211e116100a2578063a22cb46511610071578063a22cb46514610248578063a523d35e1461025b578063b88d4fde1461026e578063c87b56dd14610281578063e985e9c51461029457600080fd5b80636352211e146101f957806370a082311461020c5780638832e6e31461022d57806395d89b411461024057600080fd5b806323b872dd116100e957806323b872dd1461019857806342842e0e146101ab57806342966c68146101be57806355f804b3146101d15780635a9b0b89146101e457600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e6101293660046111a5565b6102a7565b60405190151581526020015b60405180910390f35b61014b6102d2565b60405161013a9190611212565b61016b610166366004611225565b610376565b6040516001600160a01b03909116815260200161013a565b61019661019136600461125a565b61038b565b005b6101966101a6366004611284565b61039a565b6101966101b9366004611284565b61042a565b6101966101cc366004611225565b61044a565b6101966101df3660046112c1565b61045e565b6101ec610473565b60405161013a9190611333565b61016b610207366004611225565b610563565b61021f61021a3660046113b1565b61056e565b60405190815260200161013a565b61019661023b366004611476565b6105ca565b61014b6105dd565b6101966102563660046114cc565b61061c565b610196610269366004611508565b610627565b61019661027c3660046115c4565b61075b565b61014b61028f366004611225565b610773565b61012e6102a2366004611613565b6107db565b60006001600160e01b0319821663c5c785b160e01b14806102cc57506102cc82610828565b92915050565b6000805160206118ce83398151915280546060919081906102f290611646565b80601f016020809104026020016040519081016040528092919081815260200182805461031e90611646565b801561036b5780601f106103405761010080835404028352916020019161036b565b820191906000526020600020905b81548152906001019060200180831161034e57829003601f168201915b505050505091505090565b600061038182610878565b506102cc826108b0565b6103968282336108ea565b5050565b6001600160a01b0382166103c957604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d68383336108f7565b9050836001600160a01b0316816001600160a01b031614610424576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103c0565b50505050565b6104458383836040518060200160405280600081525061075b565b505050565b610452610a01565b61045b81610a2e565b50565b610466610a69565b60036104458284836116c7565b61049e6040518060800160405280606081526020016060815260200160608152602001606081525090565b60405180608001604052806104b16102d2565b81526020016104be6105dd565b81526020016104cb610a94565b8152602001600080546104dd90611646565b80601f016020809104026020016040519081016040528092919081815260200182805461050990611646565b80156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b5050505050815250905090565b60006102cc82610878565b60006000805160206118ce8339815191526001600160a01b0383166105a9576040516322718ad960e21b8152600060048201526024016103c0565b6001600160a01b039092166000908152600390920160205250604090205490565b6105d2610a01565b610445838383610b26565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206118ce833981519152916102f290611646565b610396338383610b3e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561066c5750825b90506000826001600160401b031660011480156106885750303b155b905081158015610696575080155b156106b45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106de57845460ff60401b1916600160401b1785555b6106e6610a69565b6106f08989610bef565b60036106fc8882611786565b5060006107098782611786565b50831561075057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b61076684848461039a565b6104243385858585610c01565b606061077e82610878565b506000610789610a94565b905060008151116107a957604051806020016040528060008152506107d4565b806107b384610d2c565b6040516020016107c4929190611844565b6040516020818303038152906040525b9392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061085957506001600160e01b03198216635b5e139f60e01b145b806102cc57506301ffc9a760e01b6001600160e01b03198316146102cc565b60008061088483610dbe565b90506001600160a01b0381166102cc57604051637e27328960e01b8152600481018490526024016103c0565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6104458383836001610df8565b60006000805160206118ce8339815191528161091285610dbe565b90506001600160a01b0384161561092e5761092e818587610f0e565b6001600160a01b0381161561096e5761094b600086600080610df8565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b0386161561099f576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001546001600160a01b03163314610a2c57604051631a27eac360e11b815260040160405180910390fd5b565b6000610a3d60008360006108f7565b90506001600160a01b03811661039657604051637e27328960e01b8152600481018390526024016103c0565b6002546001600160a01b03163314610a2c57604051631a27eac360e11b815260040160405180910390fd5b606060038054610aa390611646565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf90611646565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b5050505050905090565b610b308383610f72565b610445336000858585610c01565b6000805160206118ce8339815191526001600160a01b038316610b7f57604051630b61174360e31b81526001600160a01b03841660048201526024016103c0565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b610bf7610fd7565b6103968282611020565b6001600160a01b0383163b15610d2557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610c43908890889087908790600401611873565b6020604051808303816000875af1925050508015610c7e575060408051601f3d908101601f19168201909252610c7b918101906118b0565b60015b610ce7573d808015610cac576040519150601f19603f3d011682016040523d82523d6000602084013e610cb1565b606091505b508051600003610cdf57604051633250574960e11b81526001600160a01b03851660048201526024016103c0565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610d2357604051633250574960e11b81526001600160a01b03851660048201526024016103c0565b505b5050505050565b60606000610d3983611051565b60010190506000816001600160401b03811115610d5857610d586113cc565b6040519080825280601f01601f191660200182016040528015610d82576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610d8c57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206118ce8339815191528180610e1b57506001600160a01b03831615155b15610edd576000610e2b85610878565b90506001600160a01b03841615801590610e575750836001600160a01b0316816001600160a01b031614155b8015610e6a5750610e6881856107db565b155b15610e935760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103c0565b8215610edb5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f19838383611129565b610445576001600160a01b038316610f4757604051637e27328960e01b8152600481018290526024016103c0565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103c0565b6001600160a01b038216610f9c57604051633250574960e11b8152600060048201526024016103c0565b6000610faa838360006108f7565b90506001600160a01b03811615610445576040516339e3563760e11b8152600060048201526024016103c0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610a2c57604051631afcd79f60e31b815260040160405180910390fd5b611028610fd7565b6000805160206118ce833981519152806110428482611786565b50600181016104248382611786565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106110905772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106110bc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106110da57662386f26fc10000830492506010015b6305f5e10083106110f2576305f5e100830492506008015b612710831061110657612710830492506004015b60648310611118576064830492506002015b600a83106102cc5760010192915050565b60006001600160a01b038316158015906111875750826001600160a01b0316846001600160a01b03161480611163575061116384846107db565b806111875750826001600160a01b031661117c836108b0565b6001600160a01b0316145b949350505050565b6001600160e01b03198116811461045b57600080fd5b6000602082840312156111b757600080fd5b81356107d48161118f565b60005b838110156111dd5781810151838201526020016111c5565b50506000910152565b600081518084526111fe8160208601602086016111c2565b601f01601f19169290920160200192915050565b6020815260006107d460208301846111e6565b60006020828403121561123757600080fd5b5035919050565b80356001600160a01b038116811461125557600080fd5b919050565b6000806040838503121561126d57600080fd5b6112768361123e565b946020939093013593505050565b60008060006060848603121561129957600080fd5b6112a28461123e565b92506112b06020850161123e565b929592945050506040919091013590565b600080602083850312156112d457600080fd5b82356001600160401b038111156112ea57600080fd5b8301601f810185136112fb57600080fd5b80356001600160401b0381111561131157600080fd5b85602082840101111561132357600080fd5b6020919091019590945092505050565b60208152600082516080602084015261134f60a08401826111e6565b90506020840151601f1984830301604085015261136c82826111e6565b9150506040840151601f1984830301606085015261138a82826111e6565b9150506060840151601f198483030160808501526113a882826111e6565b95945050505050565b6000602082840312156113c357600080fd5b6107d48261123e565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126113f357600080fd5b8135602083016000806001600160401b03841115611413576114136113cc565b50604051601f19601f85018116603f011681018181106001600160401b0382111715611441576114416113cc565b60405283815290508082840187101561145957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561148b57600080fd5b6114948461123e565b92506020840135915060408401356001600160401b038111156114b657600080fd5b6114c2868287016113e2565b9150509250925092565b600080604083850312156114df57600080fd5b6114e88361123e565b9150602083013580151581146114fd57600080fd5b809150509250929050565b6000806000806080858703121561151e57600080fd5b84356001600160401b0381111561153457600080fd5b611540878288016113e2565b94505060208501356001600160401b0381111561155c57600080fd5b611568878288016113e2565b93505060408501356001600160401b0381111561158457600080fd5b611590878288016113e2565b92505060608501356001600160401b038111156115ac57600080fd5b6115b8878288016113e2565b91505092959194509250565b600080600080608085870312156115da57600080fd5b6115e38561123e565b93506115f16020860161123e565b92506040850135915060608501356001600160401b038111156115ac57600080fd5b6000806040838503121561162657600080fd5b61162f8361123e565b915061163d6020840161123e565b90509250929050565b600181811c9082168061165a57607f821691505b60208210810361167a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561044557806000526020600020601f840160051c810160208510156116a75750805b601f840160051c820191505b81811015610d2557600081556001016116b3565b6001600160401b038311156116de576116de6113cc565b6116f2836116ec8354611646565b83611680565b6000601f841160018114611726576000851561170e5750838201355b600019600387901b1c1916600186901b178355610d25565b600083815260209020601f19861690835b828110156117575786850135825560209485019460019092019101611737565b50868210156117745760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b0381111561179f5761179f6113cc565b6117b3816117ad8454611646565b84611680565b6020601f8211600181146117e757600083156117cf5750848201515b600019600385901b1c1916600184901b178455610d25565b600084815260208120601f198516915b8281101561181757878501518255602094850194600190920191016117f7565b50848210156118355786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b600083516118568184602088016111c2565b83519083019061186a8183602088016111c2565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906118a6908301846111e6565b9695505050505050565b6000602082840312156118c257600080fd5b81516107d48161118f56fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300a264697066735822122005d67ce4f8cb4ac98e8d7edac86a6415c3f0467ec7830f8611056bfd261367e164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xA523D35E EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x8832E6E3 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x5A9B0B89 EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x183 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x11A5 JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1212 JUMP JUMPDEST PUSH2 0x16B PUSH2 0x166 CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x191 CALLDATASIZE PUSH1 0x4 PUSH2 0x125A JUMP JUMPDEST PUSH2 0x38B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x196 PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1284 JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1284 JUMP JUMPDEST PUSH2 0x42A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1CC CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x12C1 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1EC PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x1333 JUMP JUMPDEST PUSH2 0x16B PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x563 JUMP JUMPDEST PUSH2 0x21F PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13A JUMP JUMPDEST PUSH2 0x196 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x1476 JUMP JUMPDEST PUSH2 0x5CA JUMP JUMPDEST PUSH2 0x14B PUSH2 0x5DD JUMP JUMPDEST PUSH2 0x196 PUSH2 0x256 CALLDATASIZE PUSH1 0x4 PUSH2 0x14CC JUMP JUMPDEST PUSH2 0x61C JUMP JUMPDEST PUSH2 0x196 PUSH2 0x269 CALLDATASIZE PUSH1 0x4 PUSH2 0x1508 JUMP JUMPDEST PUSH2 0x627 JUMP JUMPDEST PUSH2 0x196 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x15C4 JUMP JUMPDEST PUSH2 0x75B JUMP JUMPDEST PUSH2 0x14B PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x1225 JUMP JUMPDEST PUSH2 0x773 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1613 JUMP JUMPDEST PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xC5C785B1 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2CC JUMPI POP PUSH2 0x2CC DUP3 PUSH2 0x828 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x2F2 SWAP1 PUSH2 0x1646 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 0x31E SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x36B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x340 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36B 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 0x34E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x381 DUP3 PUSH2 0x878 JUMP JUMPDEST POP PUSH2 0x2CC DUP3 PUSH2 0x8B0 JUMP JUMPDEST PUSH2 0x396 DUP3 DUP3 CALLER PUSH2 0x8EA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3D6 DUP4 DUP4 CALLER PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3C0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x75B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x452 PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x45B DUP2 PUSH2 0xA2E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x466 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x3 PUSH2 0x445 DUP3 DUP5 DUP4 PUSH2 0x16C7 JUMP JUMPDEST PUSH2 0x49E PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x4B1 PUSH2 0x2D2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4BE PUSH2 0x5DD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4CB PUSH2 0xA94 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 SLOAD PUSH2 0x4DD SWAP1 PUSH2 0x1646 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 0x509 SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x556 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x52B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x556 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 0x539 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CC DUP3 PUSH2 0x878 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x5D2 PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH2 0xB26 JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2F2 SWAP1 PUSH2 0x1646 JUMP JUMPDEST PUSH2 0x396 CALLER DUP4 DUP4 PUSH2 0xB3E JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x66C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x688 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x696 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x6B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x6DE JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x6E6 PUSH2 0xA69 JUMP JUMPDEST PUSH2 0x6F0 DUP10 DUP10 PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x3 PUSH2 0x6FC DUP9 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x709 DUP8 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x750 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x766 DUP5 DUP5 DUP5 PUSH2 0x39A JUMP JUMPDEST PUSH2 0x424 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x77E DUP3 PUSH2 0x878 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x789 PUSH2 0xA94 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x7A9 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7D4 JUMP JUMPDEST DUP1 PUSH2 0x7B3 DUP5 PUSH2 0xD2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7C4 SWAP3 SWAP2 SWAP1 PUSH2 0x1844 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x859 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x2CC JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x884 DUP4 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2CC JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x445 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xDF8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x912 DUP6 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x92E JUMPI PUSH2 0x92E DUP2 DUP6 DUP8 PUSH2 0xF0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x96E JUMPI PUSH2 0x94B PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0xDF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x99F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA3D PUSH1 0x0 DUP4 PUSH1 0x0 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x396 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A27EAC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0xAA3 SWAP1 PUSH2 0x1646 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 0xACF SWAP1 PUSH2 0x1646 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB1C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAF1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB1C 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 0xAFF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xB30 DUP4 DUP4 PUSH2 0xF72 JUMP JUMPDEST PUSH2 0x445 CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xB7F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH2 0xBF7 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x396 DUP3 DUP3 PUSH2 0x1020 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xD25 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xC43 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xC7E JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xC7B SWAP2 DUP2 ADD SWAP1 PUSH2 0x18B0 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xCE7 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xCAC 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 0xCB1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xCDF JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xD23 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xD39 DUP4 PUSH2 0x1051 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH2 0xD58 PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD82 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xD8C JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0xE1B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 PUSH2 0xE2B DUP6 PUSH2 0x878 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xE57 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE6A JUMPI POP PUSH2 0xE68 DUP2 DUP6 PUSH2 0x7DB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xE93 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xEDB JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xF19 DUP4 DUP4 DUP4 PUSH2 0x1129 JUMP JUMPDEST PUSH2 0x445 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFAA DUP4 DUP4 PUSH1 0x0 PUSH2 0x8F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x445 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3C0 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1028 PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x18CE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x1042 DUP5 DUP3 PUSH2 0x1786 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x424 DUP4 DUP3 PUSH2 0x1786 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x1090 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x10BC JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x10DA JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x10F2 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1106 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1118 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2CC JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1187 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1163 JUMPI POP PUSH2 0x1163 DUP5 DUP5 PUSH2 0x7DB JUMP JUMPDEST DUP1 PUSH2 0x1187 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x117C DUP4 PUSH2 0x8B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7D4 DUP2 PUSH2 0x118F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11DD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x11C5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x11FE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x11C2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x7D4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x126D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1276 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12A2 DUP5 PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH2 0x12B0 PUSH1 0x20 DUP6 ADD PUSH2 0x123E JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x12EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x12FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0x1323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x134F PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x136C DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x138A DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x13A8 DUP3 DUP3 PUSH2 0x11E6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D4 DUP3 PUSH2 0x123E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x1413 JUMPI PUSH2 0x1413 PUSH2 0x13CC JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1441 JUMPI PUSH2 0x1441 PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x1459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x148B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1494 DUP5 PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14C2 DUP7 DUP3 DUP8 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14E8 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x14FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x151E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1540 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x155C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1568 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1590 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15B8 DUP8 DUP3 DUP9 ADD PUSH2 0x13E2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x123E JUMP JUMPDEST SWAP4 POP PUSH2 0x15F1 PUSH1 0x20 DUP7 ADD PUSH2 0x123E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x162F DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP2 POP PUSH2 0x163D PUSH1 0x20 DUP5 ADD PUSH2 0x123E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x165A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x167A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x445 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x16A7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD25 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x16B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x16DE JUMPI PUSH2 0x16DE PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x16F2 DUP4 PUSH2 0x16EC DUP4 SLOAD PUSH2 0x1646 JUMP JUMPDEST DUP4 PUSH2 0x1680 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1726 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x170E JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1757 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1737 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x1774 JUMPI PUSH1 0x0 NOT PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x179F JUMPI PUSH2 0x179F PUSH2 0x13CC JUMP JUMPDEST PUSH2 0x17B3 DUP2 PUSH2 0x17AD DUP5 SLOAD PUSH2 0x1646 JUMP JUMPDEST DUP5 PUSH2 0x1680 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x17E7 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x17CF JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1817 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x17F7 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x1835 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1856 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x11C2 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x186A DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x11C2 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x18A6 SWAP1 DUP4 ADD DUP5 PUSH2 0x11E6 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7D4 DUP2 PUSH2 0x118F JUMP INVALID DUP1 0xBB 0x2B PUSH4 0x8CC20BC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB0079300A264697066735822122005D67CE4F8CB BLOBBASEFEE 0xC9 DUP15 DUP14 PUSH31 0xDAC86A6415C3F0467EC7830F8611056BFD261367E164736F6C634300081C00 CALLER ","sourceMap":"386:2402:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2556:230;;;;;;:::i;:::-;;:::i;:::-;;;565:14:89;;558:22;540:41;;528:2;513:18;2556:230:58;;;;;;;;3545:146:6;;;:::i;:::-;;;;;;;:::i;4791:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1743:32:89;;;1725:51;;1713:2;1698:18;4791:154:6;1579:203:89;4617:113:6;;;;;;:::i;:::-;;:::i;:::-;;5494:578;;;;;;:::i;:::-;;:::i;6138:132::-;;;;;;:::i;:::-;;:::i;2212:104:58:-;;;;;;:::i;:::-;;:::i;1720:118::-;;;;;;:::i;:::-;;:::i;2322:228::-;;;:::i;:::-;;;;;;;:::i;3365:118:6:-;;;;;;:::i;:::-;;:::i;3043:265::-;;;;;;:::i;:::-;;:::i;:::-;;;4497:25:89;;;4485:2;4470:18;3043:265:6;4351:177:89;1980:153:58;;;;;;:::i;:::-;;:::i;3755:150:6:-;;;:::i;5012:144::-;;;;;;:::i;:::-;;:::i;988:314:58:-;;;;;;:::i;:::-;;:::i;6336:233:6:-;;;;;;:::i;:::-;;:::i;3971:255::-;;;;;;:::i;:::-;;:::i;5222:210::-;;;;;;:::i;:::-;;:::i;2556:230:58:-;2661:4;-1:-1:-1;;;;;;2684:55:58;;-1:-1:-1;;;2684:55:58;;:95;;;2743:36;2767:11;2743:23;:36::i;:::-;2677:102;2556:230;-1:-1:-1;;2556:230:58:o;3545:146:6:-;-1:-1:-1;;;;;;;;;;;3670:14:6;;3590:13;;2076:21;;;3670:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3545:146;:::o;4791:154::-;4858:7;4877:22;4891:7;4877:13;:22::i;:::-;;4917:21;4930:7;4917:12;:21::i;4617:113::-;4688:35;4697:2;4701:7;966:10:7;4688:8:6;:35::i;:::-;4617:113;;:::o;5494:578::-;-1:-1:-1;;;;;5588:16:6;;5584:87;;5627:33;;-1:-1:-1;;;5627:33:6;;5657:1;5627:33;;;1725:51:89;1698:18;;5627:33:6;;;;;;;;5584:87;5889:21;5913:34;5921:2;5925:7;966:10:7;5913:7:6;:34::i;:::-;5889:58;;5978:4;-1:-1:-1;;;;;5961:21:6;:13;-1:-1:-1;;;;;5961:21:6;;5957:109;;6005:50;;-1:-1:-1;;;6005:50:6;;-1:-1:-1;;;;;8853:32:89;;;6005:50:6;;;8835:51:89;8902:18;;;8895:34;;;8965:32;;8945:18;;;8938:60;8808:18;;6005:50:6;8633:371:89;5957:109:6;5574:498;5494:578;;;:::o;6138:132::-;6224:39;6241:4;6247:2;6251:7;6224:39;;;;;;;;;;;;:16;:39::i;:::-;6138:132;;;:::o;2212:104:58:-;2262:23;:21;:23::i;:::-;2295:14;2301:7;2295:5;:14::i;:::-;2212:104;:::o;1720:118::-;1784:18;:16;:18::i;:::-;1812:9;:19;1824:7;;1812:9;:19;:::i;2322:228::-;2364:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:14:58;2397:146;;;;;;;;2425:6;:4;:6::i;:::-;2397:146;;;;2453:8;:6;:8::i;:::-;2397:146;;;;2484:10;:8;:10::i;:::-;2397:146;;;;2520:12;2397:146;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2390:153;;2322:228;:::o;3365:118:6:-;3428:7;3454:22;3468:7;3454:13;:22::i;3043:265::-;3106:7;-1:-1:-1;;;;;;;;;;;;;;;;3184:19:6;;3180:87;;3226:30;;-1:-1:-1;;;3226:30:6;;3253:1;3226:30;;;1725:51:89;1698:18;;3226:30:6;1579:203:89;3180:87:6;-1:-1:-1;;;;;3283:18:6;;;;;;;:11;;;;:18;;-1:-1:-1;3283:18:6;;;;;3043:265::o;1980:153:58:-;2065:23;:21;:23::i;:::-;2098:28;2108:2;2112:7;2121:4;2098:9;:28::i;3755:150:6:-;3889:9;3882:16;;3802:13;;-1:-1:-1;;;;;;;;;;;2076:21:6;3882:16;;;:::i;5012:144::-;5097:52;966:10:7;5130:8:6;5140;5097:18;:52::i;988:314:58:-;8870:21:3;4302:15;;-1:-1:-1;;;4302:15:3;;;;4301:16;;-1:-1:-1;;;;;4348:14:3;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:3;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:3;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:3;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:3;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:3;-1:-1:-1;;;5013:22:3;;;4979:67;1172:18:58::1;:16;:18::i;:::-;1200:29;1214:5;1221:7;1200:13;:29::i;:::-;1239:9;:20;1251:8:::0;1239:9;:20:::1;:::i;:::-;-1:-1:-1::0;1269:12:58::1;:26;1284:11:::0;1269:12;:26:::1;:::i;:::-;;5070:14:3::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:3;;;5142:14;;-1:-1:-1;12497:50:89;;5142:14:3;;12485:2:89;12470:18;5142:14:3;;;;;;;5066:101;4092:1081;;;;;988:314:58;;;;:::o;6336:233:6:-;6449:31;6462:4;6468:2;6472:7;6449:12;:31::i;:::-;6490:72;966:10:7;6538:4:6;6544:2;6548:7;6557:4;6490:33;:72::i;3971:255::-;4035:13;4060:22;4074:7;4060:13;:22::i;:::-;;4093:21;4117:10;:8;:10::i;:::-;4093:34;;4168:1;4150:7;4144:21;:25;:75;;;;;;;;;;;;;;;;;4186:7;4195:18;:7;:16;:18::i;:::-;4172:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4144:75;4137:82;3971:255;-1:-1:-1;;;3971:255:6:o;5222:210::-;-1:-1:-1;;;;;5388:27:6;;;5310:4;5388:27;;;:20;:27;;;;;;;;:37;;;;;;;;;;;;;;;5222:210::o;2673:311::-;2786:4;-1:-1:-1;;;;;;2821:40:6;;-1:-1:-1;;;2821:40:6;;:104;;-1:-1:-1;;;;;;;2877:48:6;;-1:-1:-1;;;2877:48:6;2821:104;:156;;;-1:-1:-1;;;;;;;;;;1134:40:8;;;2941:36:6;1035:146:8;17910:241:6;17973:7;17992:13;18008:17;18017:7;18008:8;:17::i;:::-;17992:33;-1:-1:-1;;;;;;18039:19:6;;18035:88;;18081:31;;-1:-1:-1;;;18081:31:6;;;;;4497:25:89;;;4470:18;;18081:31:6;4351:177:89;7372:184:6;7442:7;7523:26;;;:17;:26;;;;;;-1:-1:-1;;;;;7523:26:6;;7372:184::o;16076:120::-;16156:33;16165:2;16169:7;16178:4;16184;16156:8;:33::i;10384:856::-;10470:7;-1:-1:-1;;;;;;;;;;;10470:7:6;10559:17;10568:7;10559:8;:17::i;:::-;10544:32;-1:-1:-1;;;;;;10636:18:6;;;10632:86;;10670:37;10687:4;10693;10699:7;10670:16;:37::i;:::-;-1:-1:-1;;;;;10762:18:6;;;10758:258;;10878:48;10895:1;10899:7;10916:1;10920:5;10878:8;:48::i;:::-;-1:-1:-1;;;;;10969:17:6;;;;;;:11;;;:17;;;;;:22;;-1:-1:-1;;10969:22:6;;;10758:258;-1:-1:-1;;;;;11030:16:6;;;11026:109;;-1:-1:-1;;;;;11090:15:6;;;;;;:11;;;:15;;;;;:20;;11109:1;11090:20;;;11026:109;11145:18;;;;:9;;;:18;;;;;;:23;;-1:-1:-1;;;;;;11145:23:6;-1:-1:-1;;;;;11145:23:6;;;;;;;;;11184:27;;11145:18;;11184:27;;;;;;;11229:4;10384:856;-1:-1:-1;;;;;10384:856:6:o;1308:152:58:-;1383:17;;-1:-1:-1;;;;;1383:17:58;1369:10;:31;1365:89;;1423:20;;-1:-1:-1;;;1423:20:58;;;;;;;;;;;1365:89;1308:152::o;13094:227:6:-;13145:21;13169:40;13185:1;13189:7;13206:1;13169:7;:40::i;:::-;13145:64;-1:-1:-1;;;;;;13223:27:6;;13219:96;;13273:31;;-1:-1:-1;;;13273:31:6;;;;;4497:25:89;;;4470:18;;13273:31:6;4351:177:89;1466:142:58;1536:12;;-1:-1:-1;;;;;1536:12:58;1522:10;:26;1518:84;;1571:20;;-1:-1:-1;;;1571:20:58;;;;;;;;;;;1614:100;1666:13;1698:9;1691:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1614:100;:::o;12561:207:6:-;12655:18;12661:2;12665:7;12655:5;:18::i;:::-;12683:78;966:10:7;12739:1:6;12743:2;12747:7;12756:4;12683:33;:78::i;17306:369::-;-1:-1:-1;;;;;;;;;;;;;;;;17468:22:6;;17464:91;;17513:31;;-1:-1:-1;;;17513:31:6;;-1:-1:-1;;;;;1743:32:89;;17513:31:6;;;1725:51:89;1698:18;;17513:31:6;1579:203:89;17464:91:6;-1:-1:-1;;;;;17564:27:6;;;;;;;:20;;;:27;;;;;;;;:37;;;;;;;;;;;;;:48;;-1:-1:-1;;17564:48:6;;;;;;;;;;17627:41;;540::89;;;17627::6;;513:18:89;17627:41:6;;;;;;;17399:276;17306:369;;;:::o;2232:149::-;6931:20:3;:18;:20::i;:::-;2335:39:6::1;2359:5;2366:7;2335:23;:39::i;985:924:31:-:0;-1:-1:-1;;;;;1165:14:31;;;:18;1161:742;;1203:67;;-1:-1:-1;;;1203:67:31;;-1:-1:-1;;;;;1203:36:31;;;;;:67;;1240:8;;1250:4;;1256:7;;1265:4;;1203:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1203:67:31;;;;;;;;-1:-1:-1;;1203:67:31;;;;;;;;;;;;:::i;:::-;;;1199:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1560:6;:13;1577:1;1560:18;1556:323;;1664:39;;-1:-1:-1;;;1664:39:31;;-1:-1:-1;;;;;1743:32:89;;1664:39:31;;;1725:51:89;1698:18;;1664:39:31;1579:203:89;1556:323:31;1831:6;1825:13;1816:6;1812:2;1808:15;1801:38;1199:694;-1:-1:-1;;;;;;1317:51:31;;-1:-1:-1;;;1317:51:31;1313:182;;1437:39;;-1:-1:-1;;;1437:39:31;;-1:-1:-1;;;;;1743:32:89;;1437:39:31;;;1725:51:89;1698:18;;1437:39:31;1579:203:89;1313:182:31;1271:238;1199:694;985:924;;;;;:::o;637:632:39:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:39;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:39;-1:-1:-1;794:41:39;-1:-1:-1;924:28:39;;;940:2;924:28;979:247;-1:-1:-1;;1010:5:39;-1:-1:-1;;;1109:2:39;1098:14;;1093:32;1010:5;1080:46;1170:2;1161:11;;;-1:-1:-1;1190:21:39;979:247;1190:21;-1:-1:-1;1246:6:39;637:632;-1:-1:-1;;;637:632:39:o;7084:172:6:-;7150:7;7231:18;;;:9;:18;;;;;;-1:-1:-1;;;;;7231:18:6;;7084:172::o;16378:719::-;-1:-1:-1;;;;;;;;;;;16593:9:6;;:31;;-1:-1:-1;;;;;;16606:18:6;;;;16593:31;16589:460;;;16640:13;16656:22;16670:7;16656:13;:22::i;:::-;16640:38;-1:-1:-1;;;;;;16806:18:6;;;;;;:35;;;16837:4;-1:-1:-1;;;;;16828:13:6;:5;-1:-1:-1;;;;;16828:13:6;;;16806:35;:69;;;;;16846:29;16863:5;16870:4;16846:16;:29::i;:::-;16845:30;16806:69;16802:142;;;16902:27;;-1:-1:-1;;;16902:27:6;;-1:-1:-1;;;;;1743:32:89;;16902:27:6;;;1725:51:89;1698:18;;16902:27:6;1579:203:89;16802:142:6;16962:9;16958:81;;;17016:7;17012:2;-1:-1:-1;;;;;16996:28:6;17005:5;-1:-1:-1;;;;;16996:28:6;;;;;;;;;;;16958:81;16626:423;16589:460;17059:26;;;;:17;;:26;;-1:-1:-1;;17059:26:6;;;:31;;-1:-1:-1;;;;;;17059:31:6;-1:-1:-1;;;;;17059:31:6;;;;;;;;;;16378:719::o;8571:368::-;8683:38;8697:5;8704:7;8713;8683:13;:38::i;:::-;8678:255;;-1:-1:-1;;;;;8741:19:6;;8737:186;;8787:31;;-1:-1:-1;;;8787:31:6;;;;;4497:25:89;;;4470:18;;8787:31:6;4351:177:89;8737:186:6;8864:44;;-1:-1:-1;;;8864:44:6;;-1:-1:-1;;;;;14127:32:89;;8864:44:6;;;14109:51:89;14176:18;;;14169:34;;;14082:18;;8864:44:6;13935:274:89;11562:327:6;-1:-1:-1;;;;;11629:16:6;;11625:87;;11668:33;;-1:-1:-1;;;11668:33:6;;11698:1;11668:33;;;1725:51:89;1698:18;;11668:33:6;1579:203:89;11625:87:6;11721:21;11745:32;11753:2;11757:7;11774:1;11745:7;:32::i;:::-;11721:56;-1:-1:-1;;;;;;11791:27:6;;;11787:96;;11841:31;;-1:-1:-1;;;11841:31:6;;11869:1;11841:31;;;1725:51:89;1698:18;;11841:31:6;1579:203:89;7084:141:3;8870:21;8560:40;-1:-1:-1;;;8560:40:3;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:3;;;;;;;;;;;2387:219:6;6931:20:3;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;2076:21:6;2555:15:::1;2565:5:::0;2076:21;2555:15:::1;:::i;:::-;-1:-1:-1::0;2580:9:6::1;::::0;::::1;:19;2592:7:::0;2580:9;:19:::1;:::i;25316:916:44:-:0;25369:7;;-1:-1:-1;;;25444:17:44;;25440:103;;-1:-1:-1;;;25481:17:44;;;-1:-1:-1;25526:2:44;25516:12;25440:103;25569:8;25560:5;:17;25556:103;;25606:8;25597:17;;;-1:-1:-1;25642:2:44;25632:12;25556:103;25685:8;25676:5;:17;25672:103;;25722:8;25713:17;;;-1:-1:-1;25758:2:44;25748:12;25672:103;25801:7;25792:5;:16;25788:100;;25837:7;25828:16;;;-1:-1:-1;25872:1:44;25862:11;25788:100;25914:7;25905:5;:16;25901:100;;25950:7;25941:16;;;-1:-1:-1;25985:1:44;25975:11;25901:100;26027:7;26018:5;:16;26014:100;;26063:7;26054:16;;;-1:-1:-1;26098:1:44;26088:11;26014:100;26140:7;26131:5;:16;26127:66;;26177:1;26167:11;26219:6;25316:916;-1:-1:-1;;25316:916:44:o;7867:272:6:-;7970:4;-1:-1:-1;;;;;8005:21:6;;;;;;:127;;;8052:7;-1:-1:-1;;;;;8043:16:6;:5;-1:-1:-1;;;;;8043:16:6;;:52;;;;8063:32;8080:5;8087:7;8063:16;:32::i;:::-;8043:88;;;;8124:7;-1:-1:-1;;;;;8099:32:6;:21;8112:7;8099:12;:21::i;:::-;-1:-1:-1;;;;;8099:32:6;;8043:88;7986:146;7867:272;-1:-1:-1;;;;7867:272:6:o;14:131:89:-;-1:-1:-1;;;;;;88:32:89;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:89;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:89;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:89:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:226::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1521:23:89;;1348:226;-1:-1:-1;1348:226:89:o;1787:173::-;1855:20;;-1:-1:-1;;;;;1904:31:89;;1894:42;;1884:70;;1950:1;1947;1940:12;1884:70;1787:173;;;:::o;1965:300::-;2033:6;2041;2094:2;2082:9;2073:7;2069:23;2065:32;2062:52;;;2110:1;2107;2100:12;2062:52;2133:29;2152:9;2133:29;:::i;:::-;2123:39;2231:2;2216:18;;;;2203:32;;-1:-1:-1;;;1965:300:89:o;2270:374::-;2347:6;2355;2363;2416:2;2404:9;2395:7;2391:23;2387:32;2384:52;;;2432:1;2429;2422:12;2384:52;2455:29;2474:9;2455:29;:::i;:::-;2445:39;;2503:38;2537:2;2526:9;2522:18;2503:38;:::i;:::-;2270:374;;2493:48;;-1:-1:-1;;;2610:2:89;2595:18;;;;2582:32;;2270:374::o;2649:587::-;2720:6;2728;2781:2;2769:9;2760:7;2756:23;2752:32;2749:52;;;2797:1;2794;2787:12;2749:52;2837:9;2824:23;-1:-1:-1;;;;;2862:6:89;2859:30;2856:50;;;2902:1;2899;2892:12;2856:50;2925:22;;2978:4;2970:13;;2966:27;-1:-1:-1;2956:55:89;;3007:1;3004;2997:12;2956:55;3047:2;3034:16;-1:-1:-1;;;;;3065:6:89;3062:30;3059:50;;;3105:1;3102;3095:12;3059:50;3150:7;3145:2;3136:6;3132:2;3128:15;3124:24;3121:37;3118:57;;;3171:1;3168;3161:12;3118:57;3202:2;3194:11;;;;;3224:6;;-1:-1:-1;2649:587:89;-1:-1:-1;;;2649:587:89:o;3241:914::-;3422:2;3411:9;3404:21;3385:4;3460:6;3454:13;3503:4;3498:2;3487:9;3483:18;3476:32;3531:52;3578:3;3567:9;3563:19;3549:12;3531:52;:::i;:::-;3517:66;;3632:2;3624:6;3620:15;3614:22;3704:2;3700:7;3688:9;3680:6;3676:22;3672:36;3667:2;3656:9;3652:18;3645:64;3732:41;3766:6;3750:14;3732:41;:::i;:::-;3718:55;;;3822:2;3814:6;3810:15;3804:22;3894:2;3890:7;3878:9;3870:6;3866:22;3862:36;3857:2;3846:9;3842:18;3835:64;3922:41;3956:6;3940:14;3922:41;:::i;:::-;3908:55;;;4012:2;4004:6;4000:15;3994:22;4086:2;4082:7;4070:9;4062:6;4058:22;4054:36;4047:4;4036:9;4032:20;4025:66;4108:41;4142:6;4126:14;4108:41;:::i;:::-;4100:49;3241:914;-1:-1:-1;;;;;3241:914:89:o;4160:186::-;4219:6;4272:2;4260:9;4251:7;4247:23;4243:32;4240:52;;;4288:1;4285;4278:12;4240:52;4311:29;4330:9;4311:29;:::i;4533:127::-;4594:10;4589:3;4585:20;4582:1;4575:31;4625:4;4622:1;4615:15;4649:4;4646:1;4639:15;4665:888;4707:5;4760:3;4753:4;4745:6;4741:17;4737:27;4727:55;;4778:1;4775;4768:12;4727:55;4818:6;4805:20;4857:4;4849:6;4845:17;4886:1;4908;-1:-1:-1;;;;;4924:6:89;4921:30;4918:56;;;4954:18;;:::i;:::-;-1:-1:-1;5109:2:89;5103:9;-1:-1:-1;;5022:2:89;5001:15;;4997:29;;5167:2;5155:15;5151:29;5139:42;;5232:22;;;-1:-1:-1;;;;;5196:34:89;;5193:62;5190:88;;;5258:18;;:::i;:::-;5294:2;5287:22;5344;;;5329:6;-1:-1:-1;5329:6:89;5381:16;;;5378:25;-1:-1:-1;5375:45:89;;;5416:1;5413;5406:12;5375:45;5466:6;5461:3;5454:4;5446:6;5442:17;5429:44;5521:1;5514:4;5505:6;5497;5493:19;5489:30;5482:41;5541:6;5532:15;;;;;;4665:888;;;;:::o;5558:508::-;5644:6;5652;5660;5713:2;5701:9;5692:7;5688:23;5684:32;5681:52;;;5729:1;5726;5719:12;5681:52;5752:29;5771:9;5752:29;:::i;:::-;5742:39;-1:-1:-1;5850:2:89;5835:18;;5822:32;;-1:-1:-1;5929:2:89;5914:18;;5901:32;-1:-1:-1;;;;;5945:30:89;;5942:50;;;5988:1;5985;5978:12;5942:50;6011:49;6052:7;6043:6;6032:9;6028:22;6011:49;:::i;:::-;6001:59;;;5558:508;;;;;:::o;6071:347::-;6136:6;6144;6197:2;6185:9;6176:7;6172:23;6168:32;6165:52;;;6213:1;6210;6203:12;6165:52;6236:29;6255:9;6236:29;:::i;:::-;6226:39;;6315:2;6304:9;6300:18;6287:32;6362:5;6355:13;6348:21;6341:5;6338:32;6328:60;;6384:1;6381;6374:12;6328:60;6407:5;6397:15;;;6071:347;;;;;:::o;6423:967::-;6549:6;6557;6565;6573;6626:3;6614:9;6605:7;6601:23;6597:33;6594:53;;;6643:1;6640;6633:12;6594:53;6683:9;6670:23;-1:-1:-1;;;;;6708:6:89;6705:30;6702:50;;;6748:1;6745;6738:12;6702:50;6771:49;6812:7;6803:6;6792:9;6788:22;6771:49;:::i;:::-;6761:59;;;6873:2;6862:9;6858:18;6845:32;-1:-1:-1;;;;;6892:8:89;6889:32;6886:52;;;6934:1;6931;6924:12;6886:52;6957:51;7000:7;6989:8;6978:9;6974:24;6957:51;:::i;:::-;6947:61;;;7061:2;7050:9;7046:18;7033:32;-1:-1:-1;;;;;7080:8:89;7077:32;7074:52;;;7122:1;7119;7112:12;7074:52;7145:51;7188:7;7177:8;7166:9;7162:24;7145:51;:::i;:::-;7135:61;;;7249:2;7238:9;7234:18;7221:32;-1:-1:-1;;;;;7268:8:89;7265:32;7262:52;;;7310:1;7307;7300:12;7262:52;7333:51;7376:7;7365:8;7354:9;7350:24;7333:51;:::i;:::-;7323:61;;;6423:967;;;;;;;:::o;7395:583::-;7490:6;7498;7506;7514;7567:3;7555:9;7546:7;7542:23;7538:33;7535:53;;;7584:1;7581;7574:12;7535:53;7607:29;7626:9;7607:29;:::i;:::-;7597:39;;7655:38;7689:2;7678:9;7674:18;7655:38;:::i;:::-;7645:48;-1:-1:-1;7762:2:89;7747:18;;7734:32;;-1:-1:-1;7841:2:89;7826:18;;7813:32;-1:-1:-1;;;;;7857:30:89;;7854:50;;;7900:1;7897;7890:12;7983:260;8051:6;8059;8112:2;8100:9;8091:7;8087:23;8083:32;8080:52;;;8128:1;8125;8118:12;8080:52;8151:29;8170:9;8151:29;:::i;:::-;8141:39;;8199:38;8233:2;8222:9;8218:18;8199:38;:::i;:::-;8189:48;;7983:260;;;;;:::o;8248:380::-;8327:1;8323:12;;;;8370;;;8391:61;;8445:4;8437:6;8433:17;8423:27;;8391:61;8498:2;8490:6;8487:14;8467:18;8464:38;8461:161;;8544:10;8539:3;8535:20;8532:1;8525:31;8579:4;8576:1;8569:15;8607:4;8604:1;8597:15;8461:161;;8248:380;;;:::o;9135:518::-;9237:2;9232:3;9229:11;9226:421;;;9273:5;9270:1;9263:16;9317:4;9314:1;9304:18;9387:2;9375:10;9371:19;9368:1;9364:27;9358:4;9354:38;9423:4;9411:10;9408:20;9405:47;;;-1:-1:-1;9446:4:89;9405:47;9501:2;9496:3;9492:12;9489:1;9485:20;9479:4;9475:31;9465:41;;9556:81;9574:2;9567:5;9564:13;9556:81;;;9633:1;9619:16;;9600:1;9589:13;9556:81;;9829:1206;-1:-1:-1;;;;;9948:3:89;9945:27;9942:53;;;9975:18;;:::i;:::-;10004:94;10094:3;10054:38;10086:4;10080:11;10054:38;:::i;:::-;10048:4;10004:94;:::i;:::-;10124:1;10149:2;10144:3;10141:11;10166:1;10161:616;;;;10821:1;10838:3;10835:93;;;-1:-1:-1;10894:19:89;;;10881:33;10835:93;-1:-1:-1;;9786:1:89;9782:11;;;9778:24;9774:29;9764:40;9810:1;9806:11;;;9761:57;10941:78;;10134:895;;10161:616;9082:1;9075:14;;;9119:4;9106:18;;-1:-1:-1;;10197:17:89;;;10298:9;10320:229;10334:7;10331:1;10328:14;10320:229;;;10423:19;;;10410:33;10395:49;;10530:4;10515:20;;;;10483:1;10471:14;;;;10350:12;10320:229;;;10324:3;10577;10568:7;10565:16;10562:159;;;10701:1;10697:6;10691:3;10685;10682:1;10678:11;10674:21;10670:34;10666:39;10653:9;10648:3;10644:19;10631:33;10627:79;10619:6;10612:95;10562:159;;;10764:1;10758:3;10755:1;10751:11;10747:19;10741:4;10734:33;10134:895;;9829:1206;;;:::o;11040:1299::-;11166:3;11160:10;-1:-1:-1;;;;;11185:6:89;11182:30;11179:56;;;11215:18;;:::i;:::-;11244:97;11334:6;11294:38;11326:4;11320:11;11294:38;:::i;:::-;11288:4;11244:97;:::i;:::-;11390:4;11421:2;11410:14;;11438:1;11433:649;;;;12126:1;12143:6;12140:89;;;-1:-1:-1;12195:19:89;;;12189:26;12140:89;-1:-1:-1;;9786:1:89;9782:11;;;9778:24;9774:29;9764:40;9810:1;9806:11;;;9761:57;12242:81;;11403:930;;11433:649;9082:1;9075:14;;;9119:4;9106:18;;-1:-1:-1;;11469:20:89;;;11587:222;11601:7;11598:1;11595:14;11587:222;;;11683:19;;;11677:26;11662:42;;11790:4;11775:20;;;;11743:1;11731:14;;;;11617:12;11587:222;;;11591:3;11837:6;11828:7;11825:19;11822:201;;;11898:19;;;11892:26;-1:-1:-1;;11981:1:89;11977:14;;;11993:3;11973:24;11969:37;11965:42;11950:58;11935:74;;11822:201;-1:-1:-1;;;;12069:1:89;12053:14;;;12049:22;12036:36;;-1:-1:-1;11040:1299:89:o;12558:496::-;12737:3;12775:6;12769:13;12791:66;12850:6;12845:3;12838:4;12830:6;12826:17;12791:66;:::i;:::-;12920:13;;12879:16;;;;12942:70;12920:13;12879:16;12989:4;12977:17;;12942:70;:::i;:::-;13028:20;;12558:496;-1:-1:-1;;;;12558:496:89:o;13059:485::-;-1:-1:-1;;;;;13290:32:89;;;13272:51;;13359:32;;13354:2;13339:18;;13332:60;13423:2;13408:18;;13401:34;;;13471:3;13466:2;13451:18;;13444:31;;;-1:-1:-1;;13492:46:89;;13518:19;;13510:6;13492:46;:::i;:::-;13484:54;13059:485;-1:-1:-1;;;;;;13059:485:89:o;13549:249::-;13618:6;13671:2;13659:9;13650:7;13646:23;13642:32;13639:52;;;13687:1;13684;13677:12;13639:52;13719:9;13713:16;13738:30;13762:5;13738:30;:::i"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","getInfo()":"5a9b0b89","initialize(string,string,string,string)":"a523d35e","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeMint(address,uint256,bytes)":"8832e6e3","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setBaseURI(string)":"55f804b3","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"crossChainLayer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedAccess\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress_\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burn a token.\",\"params\":{\"tokenId\":\"token id\"}},\"constructor\":{\"details\":\"Constructor function to initialize the contract with initial state.\",\"params\":{\"crossChainLayer\":\"Cross-chain layer contract address.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getInfo()\":{\"details\":\"Returns token info.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeMint(address,uint256,bytes)\":{\"details\":\"Mint a new token.\",\"params\":{\"to\":\"Receiver address, must be a NFT receiver.\",\"tokenId\":\"token id\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/tokens/CrossChainLayerERC721.sol\":\"CrossChainLayerERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/tokens/CrossChainLayerERC721.sol\":{\"keccak256\":\"0x69cbd505626bc8fd1910ff90c4415546130ccad6e7415cc9f4120b11afdda1e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0683106d424f746722cdcac75332322872cba15b3b1c174773d2e211873f6293\",\"dweb:/ipfs/QmcmFYvu1mN8asdotvdrehZsG5LHnN1nd7iFV7RjsN1KMv\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC721.sol\":{\"keccak256\":\"0x207f34fcfd0746b604ecee8ca8b9abf79a5a614e9ef5355f617d65e0d2c25b1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb9bdcc8e9fcfc33de76cb7e6a8ed4073c9c33db36707e2b5d7e2f2acf047656\",\"dweb:/ipfs/QmRhXA5JwjnNTrTnLvuw6DAVqQt8oG7SmtGxiH9pQU6ngN\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":17135,"contract":"contracts/core/tokens/CrossChainLayerERC721.sol:CrossChainLayerERC721","label":"__tvmAddress","offset":0,"slot":"0","type":"t_string_storage"},{"astId":17137,"contract":"contracts/core/tokens/CrossChainLayerERC721.sol:CrossChainLayerERC721","label":"__crossChainLayer","offset":0,"slot":"1","type":"t_address"},{"astId":17139,"contract":"contracts/core/tokens/CrossChainLayerERC721.sol:CrossChainLayerERC721","label":"__tokenUtils","offset":0,"slot":"2","type":"t_address"},{"astId":17141,"contract":"contracts/core/tokens/CrossChainLayerERC721.sol:CrossChainLayerERC721","label":"__baseURI","offset":0,"slot":"3","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"}}}}},"contracts/interfaces/IConsensus.sol":{"IConsensus":{"abi":[{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"},{"internalType":"address","name":"adminAddress","type":"address"}],"name":"addGroup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"groupId","type":"bytes32"},{"internalType":"address","name":"voterAddress","type":"address"}],"name":"addVoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"checkMerkleRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentEpochInfo","outputs":[{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint64","name":"prevMessageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"messageCollectEndTime","type":"uint64"},{"internalType":"uint64","name":"prevEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"currEpochStartTime","type":"uint64"},{"internalType":"uint64","name":"nextVotingTime","type":"uint64"}],"internalType":"struct EpochInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getValue","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"voterAddress","type":"address"}],"name":"removeVoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalVoters","outputs":[{"internalType":"uint256","name":"totalVoters","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"messageCollectEndTime","type":"uint64"},{"internalType":"bytes32","name":"newValue","type":"bytes32"}],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addGroup(bytes32,address)":"65d8dd34","addVoter(bytes32,address)":"ef65792d","checkMerkleRoot(bytes32)":"814964f0","disableInitializers()":"31f44900","getCurrentEpochInfo()":"babc394f","getValue()":"20965255","removeVoter(address)":"86c1ff68","totalVoters()":"5f5300ff","vote(uint64,bytes32)":"c6116345"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"adminAddress\",\"type\":\"address\"}],\"name\":\"addGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"groupId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"voterAddress\",\"type\":\"address\"}],\"name\":\"addVoter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"checkMerkleRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentEpochInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"prevMessageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"currEpochStartTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextVotingTime\",\"type\":\"uint64\"}],\"internalType\":\"struct EpochInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voterAddress\",\"type\":\"address\"}],\"name\":\"removeVoter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalVoters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalVoters\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageCollectEndTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addGroup(bytes32,address)\":{\"details\":\"Add new voters's group\",\"params\":{\"adminAddress\":\"group admin address\",\"groupId\":\"group id\"}},\"addVoter(bytes32,address)\":{\"details\":\"Adds a new voter.\",\"params\":{\"groupId\":\"voter group id\",\"voterAddress\":\"voter address\"}},\"checkMerkleRoot(bytes32)\":{\"details\":\"Checks if merkle root is valid.\",\"params\":{\"merkleRoot\":\"Merkle root.\"},\"returns\":{\"_0\":\"bool True if merkle root is valid, false otherwise.\"}},\"getCurrentEpochInfo()\":{\"details\":\"Returns current epoch info.\",\"returns\":{\"_0\":\"Epoch info.\"}},\"getValue()\":{\"details\":\"Gets the current (last selected) value.\",\"returns\":{\"_0\":\"bytes32 Current (last selected) value.\"}},\"removeVoter(address)\":{\"details\":\"Remove voter.\",\"params\":{\"voterAddress\":\"Address of the voter to remove.\"}},\"totalVoters()\":{\"details\":\"Gets total number of active voters.\",\"returns\":{\"totalVoters\":\"Total number of active voters.\"}},\"vote(uint64,bytes32)\":{\"details\":\"Vote for a new value.\",\"params\":{\"messageCollectEndTime\":\"Message collect end time for current vote.\",\"newValue\":\"New value.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IConsensus.sol\":\"IConsensus\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/IConsensus.sol\":{\"keccak256\":\"0x4eca288e0f5adbb4014dffa67f4e22826ec2de858c574f7588d9cd88ceda3e65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a839f1bfeaa8518b6850e79bd524b571d642b325d5b27c78a8bb8d83295ee491\",\"dweb:/ipfs/QmcpFf8DhoNZ5sxfF4A4rsRnG5BmqYg2bPgey5g56iUUNp\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/ICrossChainLayer.sol":{"ICrossChainLayer":{"abi":[{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"getInMessageState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageVersion","type":"uint256"},{"internalType":"bytes","name":"encodedMessage","type":"bytes"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"address","name":"feeReceiver","type":"address"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"name":"receiveMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageVersion","type":"uint256"},{"internalType":"bytes","name":"encodedMessage","type":"bytes"}],"name":"sendMessage","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"disableInitializers()":"31f44900","getInMessageState(bytes32)":"5a178931","getProtocolFee()":"a5a41031","receiveMessage(uint256,bytes,bytes32[],address,bytes)":"abe13ef7","sendMessage(uint256,bytes)":"e289adcd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"name\":\"getInMessageState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"messageVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"address\",\"name\":\"feeReceiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"receiveMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"messageVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedMessage\",\"type\":\"bytes\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An interface for Cross-Chain Layer.\",\"kind\":\"dev\",\"methods\":{\"getInMessageState(bytes32)\":{\"details\":\"Checks if the input (receive) message has been processed.\",\"params\":{\"messageHash\":\"Message hash to check.\"},\"returns\":{\"_0\":\"bool True if the message has been processed, false otherwise.\"}},\"getProtocolFee()\":{\"details\":\"Gets the current min protocol fee.\",\"returns\":{\"_0\":\"uint256 Fee amount.\"}},\"receiveMessage(uint256,bytes,bytes32[],address,bytes)\":{\"details\":\"Accepts an TVM->EVM message to process if the Merkle proof is valid.\",\"params\":{\"encodedMessage\":\"Encoded message to process.\",\"extraData\":\"Untrusted extra data to pass to the message.\",\"feeReceiver\":\"receiver of fee.\",\"merkleProof\":\"Merkle proof for the message.\",\"messageVersion\":\"Message version.\"}},\"sendMessage(uint256,bytes)\":{\"details\":\"Accepts an EVM->TVM message to process (e.g. a callback from dApp).\",\"params\":{\"encodedMessage\":\"Encoded message to process.\",\"messageVersion\":\"Message version.\"}}},\"title\":\"ICrossChainLayer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ICrossChainLayer.sol\":\"ICrossChainLayer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ICrossChainLayer.sol\":{\"keccak256\":\"0x435aeb361378447362b2bfc59de69237ec85706d9755e53b46b48c84a0ea186c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9d91e1e5c1b2a4b0df3ea28cd7ef3956147f082873d8abf03d9963aaa13a60\",\"dweb:/ipfs/QmVFL9rUScnu5XKk9ZioWZbyqq4sdFPz19dowWsfzE3fUM\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IMerkleTreeUtils.sol":{"IMerkleTreeUtils":{"abi":[{"inputs":[{"internalType":"bytes32","name":"objectHash","type":"bytes32"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"checkMerkleProof","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"string","name":"methodName","type":"string"},{"internalType":"bytes","name":"arguments","type":"bytes"},{"internalType":"string","name":"caller","type":"string"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount","name":"evmExecutorFee","type":"tuple"},{"internalType":"address[]","name":"evmValidExecutors","type":"address[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"mint","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"unlock","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo[]","name":"meta","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"mintNFT","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"unlockNFT","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo[]","name":"metaNFT","type":"tuple[]"}],"internalType":"struct InMessageV1","name":"message","type":"tuple"}],"name":"hashInMessageV1","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"checkMerkleProof(bytes32,bytes32[])":"9507c260","hashInMessageV1((uint64,uint64,bytes32,uint256,address,string,bytes,string,(address,uint256),address[],(address,uint256)[],(address,uint256)[],(string,string,uint8,string)[],(address,uint256,uint256)[],(address,uint256,uint256)[],(string,string,string,string)[]))":"58f5b645"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"objectHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"}],\"name\":\"checkMerkleProof\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"caller\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount\",\"name\":\"evmExecutorFee\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"evmValidExecutors\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"mint\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"unlock\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo[]\",\"name\":\"meta\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"mintNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"unlockNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo[]\",\"name\":\"metaNFT\",\"type\":\"tuple[]\"}],\"internalType\":\"struct InMessageV1\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"hashInMessageV1\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An interface to message and Merkle tree utility functions\",\"kind\":\"dev\",\"methods\":{\"checkMerkleProof(bytes32,bytes32[])\":{\"details\":\"Function to calculate the Merkle root from the message hash and proof.\",\"params\":{\"merkleProof\":\"Merkle proof.\",\"objectHash\":\"Leaf object hash to validate.\"}},\"hashInMessageV1((uint64,uint64,bytes32,uint256,address,string,bytes,string,(address,uint256),address[],(address,uint256)[],(address,uint256)[],(string,string,uint8,string)[],(address,uint256,uint256)[],(address,uint256,uint256)[],(string,string,string,string)[]))\":{\"details\":\"Calculates message v1 hash.\",\"params\":{\"message\":\"Message v1.\"}}},\"title\":\"IMerkleTreeUtils\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IMerkleTreeUtils.sol\":\"IMerkleTreeUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/IMerkleTreeUtils.sol\":{\"keccak256\":\"0x7c1e15c361ef686b8f6d92ab23fa29f2d5e4358cc50515ce416ab9b065486500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e8e0796a1b4ea750a31d218982bfb83559aa7b075831c990ae48ffe32c9710c\",\"dweb:/ipfs/QmdZjQGwMjs3mYCFQsZXpC7PMxn76FYn6iTuRt3kvda2SP\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/ISettings.sol":{"ISettings":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"variable","type":"bytes32"}],"name":"SettingsUpdated","type":"event"},{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getAddressSetting","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getBoolSetting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTrustedEVMExecutors","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTrustedTVMExecutors","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getUintSetting","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value","type":"address"}],"name":"setAddressSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBoolSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"trustedEVMExecutors","type":"address[]"}],"name":"setTrustedEVMExecutors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"trustedTVMExecutors","type":"string[]"}],"name":"setTrustedTVMExecutors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"value","type":"uint64"}],"name":"setUintSetting","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"disableInitializers()":"31f44900","getAddressSetting(bytes32)":"ad39965d","getBoolSetting(bytes32)":"7c74627a","getTrustedEVMExecutors()":"c8029da8","getTrustedTVMExecutors()":"c7f7d04a","getUintSetting(bytes32)":"1c63030a","setAddressSetting(bytes32,address)":"3fe8ef0f","setBoolSetting(bytes32,bool)":"fd32b9fa","setTrustedEVMExecutors(address[])":"b896a181","setTrustedTVMExecutors(string[])":"7866077b","setUintSetting(bytes32,uint64)":"f165f4b4"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"variable\",\"type\":\"bytes32\"}],\"name\":\"SettingsUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getAddressSetting\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getBoolSetting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedEVMExecutors\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedTVMExecutors\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getUintSetting\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"setAddressSetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setBoolSetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"trustedEVMExecutors\",\"type\":\"address[]\"}],\"name\":\"setTrustedEVMExecutors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"trustedTVMExecutors\",\"type\":\"string[]\"}],\"name\":\"setTrustedTVMExecutors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"value\",\"type\":\"uint64\"}],\"name\":\"setUintSetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A contract for storing Cross-Chain Layer configuration\",\"events\":{\"SettingsUpdated(bytes32)\":{\"details\":\"Cross-Chain Layer configuration setting changed event\",\"params\":{\"variable\":\"Name of the variable updated\"}}},\"kind\":\"dev\",\"methods\":{\"getAddressSetting(bytes32)\":{\"details\":\"Get an address setting.\",\"params\":{\"key\":\"The setting key.\"},\"returns\":{\"_0\":\"The setting value.\"}},\"getBoolSetting(bytes32)\":{\"details\":\"Get a bool setting.\",\"params\":{\"key\":\"The setting key.\"},\"returns\":{\"_0\":\"The setting value.\"}},\"getTrustedEVMExecutors()\":{\"details\":\"Get trustedEVMExecutors.\"},\"getTrustedTVMExecutors()\":{\"details\":\"Get trustedTVMExecutors.\"},\"getUintSetting(bytes32)\":{\"details\":\"Get a uint64 setting.\",\"params\":{\"key\":\"The setting key.\"},\"returns\":{\"_0\":\"The setting value.\"}},\"setAddressSetting(bytes32,address)\":{\"details\":\"Update an address setting.\",\"params\":{\"key\":\"The setting key.\",\"value\":\"The new address value.\"}},\"setBoolSetting(bytes32,bool)\":{\"details\":\"Update a bool setting.\",\"params\":{\"key\":\"The setting key.\",\"value\":\"The new bool value.\"}},\"setTrustedEVMExecutors(address[])\":{\"details\":\"Update trustedEVMExecutors setting.\",\"params\":{\"trustedEVMExecutors\":\"Trusted executors.\"}},\"setTrustedTVMExecutors(string[])\":{\"details\":\"Update trustedTVMExecutors setting.\",\"params\":{\"trustedTVMExecutors\":\"Trusted executors.\"}},\"setUintSetting(bytes32,uint64)\":{\"details\":\"Update a uint64 setting.\",\"params\":{\"key\":\"The setting key.\",\"value\":\"The new value.\"}}},\"title\":\"Settings interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ISettings.sol\":\"ISettings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ISettings.sol\":{\"keccak256\":\"0x046f20ecb6bf3a96d87c04715fe0206003b4adc89d42a6f4ce42ddf8d0f798fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec9b5ae056914ee154fd32057c3f76d5baad103741844da950fad1eeae5735e9\",\"dweb:/ipfs/QmPC85c95Q61mWS8BHcCn5JL3N7dgHbLLD6F8zUYSDZQop\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/ITacInitializable.sol":{"ITacInitializable":{"abi":[{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"disableInitializers()":"31f44900"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"TacInitializable interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ITacInitializable.sol\":\"ITacInitializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/ITokenFactory.sol":{"ITokenFactory":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes","name":"_initCode","type":"bytes"},{"internalType":"address","name":"_deployer","type":"address"}],"name":"computeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes","name":"_initCode","type":"bytes"},{"internalType":"bytes","name":"initData","type":"bytes"}],"name":"deploy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"computeAddress(bytes32,bytes,address)":"a3180978","deploy(bytes32,bytes,bytes)":"19cdeff1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_initCode\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"}],\"name\":\"computeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"initData\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ITokenFactory.sol\":\"ITokenFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ITokenFactory.sol\":{\"keccak256\":\"0x7d5876f09848176c3d24b4c70373f57888ce07a9a8398b34ea88ef7bf6d9459b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://748c941428a6b58fb3b4cee0a29ffcc32f3d828eada1654e430c1c25931597ca\",\"dweb:/ipfs/QmRARDh9XRMLqJrUmWKhVSVzw3aaUqD7jYkLAYrEz9PTdq\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/ITokenUtils.sol":{"ITokenUtils":{"abi":[{"inputs":[{"internalType":"string","name":"tvmAddress","type":"string"}],"name":"computeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"tvmAddress","type":"string"}],"name":"computeAddressERC721","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo","name":"info","type":"tuple"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo","name":"info","type":"tuple"}],"name":"createERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tvmAddress","type":"string"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"evmAddress","type":"address"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"computeAddress(string)":"1f596f89","computeAddressERC721(string)":"96c8e820","create((string,string,uint8,string))":"1963202b","createERC721((string,string,string,string))":"1adc56db","disableInitializers()":"31f44900","exists(address)":"f6a3d24e","exists(string)":"261a323e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"name\":\"computeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"name\":\"computeAddressERC721\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"name\":\"createERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An interface to message and Merkle tree utility functions\",\"kind\":\"dev\",\"methods\":{\"computeAddress(string)\":{\"details\":\"Get address of Cross-Chain Layer token.\",\"params\":{\"tvmAddress\":\"Corresponding TON token address.\"}},\"computeAddressERC721(string)\":{\"details\":\"Get address of ERC721 Cross-Chain Layer token.\",\"params\":{\"tvmAddress\":\"Corresponding TON collection address.\"}},\"create((string,string,uint8,string))\":{\"details\":\"Deploy new ERC20 Cross-Chain Layer token.\",\"params\":{\"info\":\"TokenInfo struct containing token details.\"}},\"createERC721((string,string,string,string))\":{\"details\":\"Deploy new ERC721 Cross-Chain Layer token.\",\"params\":{\"info\":\"NFTInfo struct containing token details.\"}},\"exists(address)\":{\"details\":\"Checks if the token exists or not by evm address\",\"params\":{\"evmAddress\":\"EVM token address.\"}},\"exists(string)\":{\"details\":\"Checks if the token exists or not by tvm address\",\"params\":{\"tvmAddress\":\"Corresponding TON token address.\"}}},\"title\":\"ITokenUtils\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ITokenUtils.sol\":\"ITokenUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/interfaces/ITokenUtils.sol\":{\"keccak256\":\"0xdcdc40823d891b97559f3655655b66e8fabc4927ac6053491081f430b42d1caa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d377a8f2ce13d3b6a7be5b19e29459d1f2adae2e177019927e25c1ed41c5c794\",\"dweb:/ipfs/QmQ3CW4LS3aMYWhP8wKeTR1j7uy7ohBoJ6WdcQSyczbAYX\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IWTAC.sol":{"IWTAC":{"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":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Deposit","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Withdrawal","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":"value","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":"deposit","outputs":[],"stateMutability":"payable","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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","deposit()":"d0e30db0","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"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\":\"value\",\"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\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"TAC\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"title\":\"Wrapped TAC contract interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Wrapped TAC token contract over ERC20\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IWTAC.sol\":\"IWTAC\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/interfaces/IWTAC.sol\":{\"keccak256\":\"0x3b860c804660ce600b22230e4ef1b6d49bd557381b883fbdc1e90e9e4a930cbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79f037d94e000bc09342232eadcf4030940519d95309b9ddb83f08e44c5d9251\",\"dweb:/ipfs/QmdMSQTUTCLdiCtRSjpY9MCKUuD8haH44mwUBPzroCL3d5\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/tokens/ICrossChainLayerERC20.sol":{"ICrossChainLayerERC20":{"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":"value","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":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfo","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","getInfo()":"5a9b0b89","mint(address,uint256)":"40c10f19","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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\":\"value\",\"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\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A contract for all Cross-Chain Layer ERC20 tokens.\",\"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 a `value` amount of tokens 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 value of tokens owned by `account`.\"},\"burn(address,uint256)\":{\"details\":\"Function to burn tokens\",\"params\":{\"amount\":\"Amount of tokens to burn\",\"from\":\"Address to mint tokens to\"}},\"decimals()\":{\"details\":\"Returns token decimals.\",\"returns\":{\"_0\":\"uint8 Token decimals\"}},\"getInfo()\":{\"details\":\"Returns token info.\"},\"mint(address,uint256)\":{\"details\":\"Function to mint tokens\",\"params\":{\"amount\":\"Amount of tokens to mint\",\"to\":\"Address to mint tokens to\"}},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of 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 a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"title\":\"CrossChainLayerERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/tokens/ICrossChainLayerERC20.sol\":\"ICrossChainLayerERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC20.sol\":{\"keccak256\":\"0x4259d98b73075a79ec3a7587fc6632f967f930844d02de1f61d8b292b0b81852\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd61515c9c01c176b4b26130ec977d61534231b3c2222407c0c24876be5fe168\",\"dweb:/ipfs/QmPAY3EvKHhw8ziT8CKCxLepYPBwbezarX343cR69i2UUf\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/tokens/ICrossChainLayerERC721.sol":{"ICrossChainLayerERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfo","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","getInfo()":"5a9b0b89","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeMint(address,uint256,bytes)":"8832e6e3","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setBaseURI(string)":"55f804b3","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A contract interface for all Cross-Chain Layer ERC721 tokens.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"burn(uint256)\":{\"details\":\"Function to burn tokens\",\"params\":{\"tokenId\":\"Token ID to burn\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"getInfo()\":{\"details\":\"Returns token info.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeMint(address,uint256,bytes)\":{\"details\":\"Function to mint tokens\",\"params\":{\"data\":\"Additional data\",\"to\":\"Address to mint tokens to\",\"tokenId\":\"Token ID to mint\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or   {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon   a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ICrossChainLayerERC721\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/tokens/ICrossChainLayerERC721.sol\":\"ICrossChainLayerERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC721.sol\":{\"keccak256\":\"0x207f34fcfd0746b604ecee8ca8b9abf79a5a614e9ef5355f617d65e0d2c25b1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb9bdcc8e9fcfc33de76cb7e6a8ed4073c9c33db36707e2b5d7e2f2acf047656\",\"dweb:/ipfs/QmRhXA5JwjnNTrTnLvuw6DAVqQt8oG7SmtGxiH9pQU6ngN\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/libs/SettingsConstants.sol":{"SettingsConstants":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b733cbbf16652ba9f90481b4dc6de9e52a0f44b2717b862b8c0080562e1350df64736f6c634300081c0033","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 0xB7 CALLER 0xCB 0xBF AND PUSH6 0x2BA9F90481B4 0xDC PUSH14 0xE9E52A0F44B2717B862B8C008056 0x2E SGT POP 0xDF PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"58:2502:69:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;58:2502:69;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b733cbbf16652ba9f90481b4dc6de9e52a0f44b2717b862b8c0080562e1350df64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB7 CALLER 0xCB 0xBF AND PUSH6 0x2BA9F90481B4 0xDC PUSH14 0xE9E52A0F44B2717B862B8C008056 0x2E SGT POP 0xDF PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"58:2502:69:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libs/SettingsConstants.sol\":\"SettingsConstants\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/libs/SettingsConstants.sol\":{\"keccak256\":\"0x43d823f76c580dd90dd0ab04455088a61c2126a4d9e4bac290e4481c54252b21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cec8f837e82e4c8766bb081d9b17e2664c533d72e72a76f6d4d23a594a63bdd3\",\"dweb:/ipfs/QmStGaGDxmHA5JtWQKpy9f84gYHGaT7qhv4ExnkoocSMJC\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/libs/TokenHelperLib.sol":{"TokenHelperLib":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"InvalidNFTInterface","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202060fcec1a456b91a7ff2f2be1a9ecbd259d0392a8cb19c382c24da3c38191f564736f6c634300081c0033","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 KECCAK256 PUSH1 0xFC 0xEC BYTE GASLIMIT PUSH12 0x91A7FF2F2BE1A9ECBD259D03 SWAP3 0xA8 0xCB NOT 0xC3 DUP3 0xC2 0x4D LOG3 0xC3 DUP2 SWAP2 CREATE2 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"667:3702:70:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;667:3702:70;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202060fcec1a456b91a7ff2f2be1a9ecbd259d0392a8cb19c382c24da3c38191f564736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 KECCAK256 PUSH1 0xFC 0xEC BYTE GASLIMIT PUSH12 0x91A7FF2F2BE1A9ECBD259D03 SWAP3 0xA8 0xCB NOT 0xC3 DUP3 0xC2 0x4D LOG3 0xC3 DUP2 SWAP2 CREATE2 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"667:3702:70:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"InvalidNFTInterface\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Token utility functions\",\"kind\":\"dev\",\"methods\":{},\"title\":\"TokenHelperLib\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libs/TokenHelperLib.sol\":\"TokenHelperLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/tokens/CrossChainLayerERC20.sol\":{\"keccak256\":\"0xd672630acb9000997a0b26e866fb17bc771d0a6b3ebdd2b86bfb09485f715eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3913c3681964917a34d7134b1cb1a12540dabb2d4264c9b2615d09a4c1fdef83\",\"dweb:/ipfs/QmUNf9Y5cB14GUP6wBHemyz51LdMm7KC11S1hB4bEZUjMF\"]},\"contracts/core/tokens/CrossChainLayerERC721.sol\":{\"keccak256\":\"0x69cbd505626bc8fd1910ff90c4415546130ccad6e7415cc9f4120b11afdda1e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0683106d424f746722cdcac75332322872cba15b3b1c174773d2e211873f6293\",\"dweb:/ipfs/QmcmFYvu1mN8asdotvdrehZsG5LHnN1nd7iFV7RjsN1KMv\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC20.sol\":{\"keccak256\":\"0x4259d98b73075a79ec3a7587fc6632f967f930844d02de1f61d8b292b0b81852\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd61515c9c01c176b4b26130ec977d61534231b3c2222407c0c24876be5fe168\",\"dweb:/ipfs/QmPAY3EvKHhw8ziT8CKCxLepYPBwbezarX343cR69i2UUf\"]},\"contracts/interfaces/tokens/ICrossChainLayerERC721.sol\":{\"keccak256\":\"0x207f34fcfd0746b604ecee8ca8b9abf79a5a614e9ef5355f617d65e0d2c25b1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb9bdcc8e9fcfc33de76cb7e6a8ed4073c9c33db36707e2b5d7e2f2acf047656\",\"dweb:/ipfs/QmRhXA5JwjnNTrTnLvuw6DAVqQt8oG7SmtGxiH9pQU6ngN\"]},\"contracts/libs/TokenHelperLib.sol\":{\"keccak256\":\"0x01a95546abd06a840d73c53a9c1e9c0be873a1ce96a452a4c922b4914ba36573\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2abe80d2026174027c5f0d2e5011ad23443ad96800a0310832d57adaf9baec8d\",\"dweb:/ipfs/QmZkEy3AifvUEpgWUBJLSG1RCrmEaUCEPv1G2ZVvWhpN9e\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/libs/VersionLib.sol":{"VersionLib":{"abi":[{"inputs":[{"internalType":"uint256","name":"version","type":"uint256"}],"name":"InvalidInMessageVersion","type":"error"},{"inputs":[{"internalType":"uint256","name":"version","type":"uint256"}],"name":"InvalidOutMessageVersion","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"version","type":"uint256"}],"name":"InvalidProxyVersion","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"TargetIsNotTacProxy","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203e1afa284074e981267fda58328fcb73674b6cfb6d5b442ae5b4a62d6942898164736f6c634300081c0033","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 RETURNDATACOPY BYTE STATICCALL 0x28 BLOCKHASH PUSH21 0xE981267FDA58328FCB73674B6CFB6D5B442AE5B4A6 0x2D PUSH10 0x42898164736F6C634300 ADDMOD SHR STOP CALLER ","sourceMap":"245:4047:71:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;245:4047:71;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203e1afa284074e981267fda58328fcb73674b6cfb6d5b442ae5b4a62d6942898164736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY BYTE STATICCALL 0x28 BLOCKHASH PUSH21 0xE981267FDA58328FCB73674B6CFB6D5B442AE5B4A6 0x2D PUSH10 0x42898164736F6C634300 ADDMOD SHR STOP CALLER ","sourceMap":"245:4047:71:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"InvalidInMessageVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"InvalidOutMessageVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"}],\"name\":\"InvalidProxyVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"TargetIsNotTacProxy\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libs/VersionLib.sol\":\"VersionLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/libs/VersionLib.sol\":{\"keccak256\":\"0xdb9491d0d55586a155c2451f2a08437f79082369d7202ae3b17f8b831ecea215\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88b2ae3aa1a11f0cc317081c6cfbd54a04d51ca53db6acfb8e74dd5c7b7ed18a\",\"dweb:/ipfs/QmNZ9ZNZFAkbbgjmuAeWsvEggiSRz5dX1TowMLSR9zoHfq\"]},\"contracts/proxies/TacProxy.sol\":{\"keccak256\":\"0xbc37790a2523ad054248c90df15a3e8855afabaabf26e90c43a4d23e9cacd962\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee86fe6c1d7dec9068d88059f27aa62e40e7f8ae89ba00c077ed8eafac7edea1\",\"dweb:/ipfs/QmXDMLLkphX2a2jmvvFTmN1TqgtEroefKLpoFmFXNZbu56\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/proxies/TacProxy.sol":{"TacProxy":{"abi":[{"inputs":[],"name":"OnlyCrossChainLayer","type":"error"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getVersion()":"0d8e6e2c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OnlyCrossChainLayer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getVersion()\":{\"details\":\"Get Tac Proxy contract version.\",\"returns\":{\"_0\":\"Contract version.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/proxies/TacProxy.sol\":\"TacProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/proxies/TacProxy.sol\":{\"keccak256\":\"0xbc37790a2523ad054248c90df15a3e8855afabaabf26e90c43a4d23e9cacd962\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee86fe6c1d7dec9068d88059f27aa62e40e7f8ae89ba00c077ed8eafac7edea1\",\"dweb:/ipfs/QmXDMLLkphX2a2jmvvFTmN1TqgtEroefKLpoFmFXNZbu56\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/proxies/TacProxyV1.sol":{"TacProxyV1":{"abi":[{"inputs":[],"name":"OnlyCrossChainLayer","type":"error"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getVersion()":"0d8e6e2c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OnlyCrossChainLayer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getVersion()\":{\"details\":\"Get Tac Proxy contract version.\",\"returns\":{\"_0\":\"Contract version.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/proxies/TacProxyV1.sol\":\"TacProxyV1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/ICrossChainLayer.sol\":{\"keccak256\":\"0x435aeb361378447362b2bfc59de69237ec85706d9755e53b46b48c84a0ea186c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9d91e1e5c1b2a4b0df3ea28cd7ef3956147f082873d8abf03d9963aaa13a60\",\"dweb:/ipfs/QmVFL9rUScnu5XKk9ZioWZbyqq4sdFPz19dowWsfzE3fUM\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/proxies/TacProxy.sol\":{\"keccak256\":\"0xbc37790a2523ad054248c90df15a3e8855afabaabf26e90c43a4d23e9cacd962\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee86fe6c1d7dec9068d88059f27aa62e40e7f8ae89ba00c077ed8eafac7edea1\",\"dweb:/ipfs/QmXDMLLkphX2a2jmvvFTmN1TqgtEroefKLpoFmFXNZbu56\"]},\"contracts/proxies/TacProxyV1.sol\":{\"keccak256\":\"0x112703423828d9298716cc57af66a8bfb6c88fee5a0e14c07dad58680c93b124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e8d08d8ae25053f02f54a5e1993eab8cdbb58002eca8434b15bf2b65607e65c\",\"dweb:/ipfs/QmS3bLaoc49ECPbHiHN9n1YgeqTgkdhxyBgv7uxRtL8WkN\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/proxies/TacProxyV1Upgradeable.sol":{"TacProxyV1Upgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"OnlyCrossChainLayer","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getVersion()":"0d8e6e2c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCrossChainLayer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"getVersion()\":{\"details\":\"Get Tac Proxy contract version.\",\"returns\":{\"_0\":\"Contract version.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/proxies/TacProxyV1Upgradeable.sol\":\"TacProxyV1Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/ICrossChainLayer.sol\":{\"keccak256\":\"0x435aeb361378447362b2bfc59de69237ec85706d9755e53b46b48c84a0ea186c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9d91e1e5c1b2a4b0df3ea28cd7ef3956147f082873d8abf03d9963aaa13a60\",\"dweb:/ipfs/QmVFL9rUScnu5XKk9ZioWZbyqq4sdFPz19dowWsfzE3fUM\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/proxies/TacProxy.sol\":{\"keccak256\":\"0xbc37790a2523ad054248c90df15a3e8855afabaabf26e90c43a4d23e9cacd962\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee86fe6c1d7dec9068d88059f27aa62e40e7f8ae89ba00c077ed8eafac7edea1\",\"dweb:/ipfs/QmXDMLLkphX2a2jmvvFTmN1TqgtEroefKLpoFmFXNZbu56\"]},\"contracts/proxies/TacProxyV1Upgradeable.sol\":{\"keccak256\":\"0x64f9792d830341316893d6a19d4264aca33e39cba0a1ef72f70d430c3d3a4abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c8bcb432c68eb0d56e2e4944df26a749853d4b7501403c3e08ce91de12006bd\",\"dweb:/ipfs/QmRzp2cPtB1YWEcae4fp8TFtJJE4JhgupeET35c5SboRgn\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/smart-account/TacSAFactory.sol":{"TacSAFactory":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"smartAccountAddress","type":"address"},{"indexed":true,"internalType":"address","name":"application","type":"address"},{"indexed":false,"internalType":"string","name":"tvmWallet","type":"string"}],"name":"SmartAccountCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"beacon","outputs":[{"internalType":"contract UpgradeableBeacon","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tvmWallet","type":"string"}],"name":"getOrCreateSmartAccount","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bool","name":"isNewAccount","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tvmWallet","type":"string"},{"internalType":"address","name":"application","type":"address"}],"name":"getSmartAccountForApplication","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_initBlueprint","type":"address"}],"name":"initialize","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":[{"internalType":"string","name":"tvmWallet","type":"string"},{"internalType":"address","name":"application","type":"address"}],"name":"predictSmartAccountAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"application","type":"address"},{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"smartAccounts","outputs":[{"internalType":"address","name":"smartAccount","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newBlueprint","type":"address"}],"name":"updateBlueprint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a060405230608052348015601357600080fd5b50608051611e5661003d60003960008181610ab201528181610adb0152610c210152611e566000f3fe6080604052600436106100f35760003560e01c80638da5cb5b1161008a578063dbe6e7f911610059578063dbe6e7f9146102bf578063e30c3978146102df578063f2fde38b146102f4578063fa81f7d91461031457600080fd5b80638da5cb5b1461020d578063a66c4f5014610222578063ad3cb1cc14610261578063c4d66de81461029f57600080fd5b806359659e90116100c657806359659e90146101a357806370d367c3146101c3578063715018a6146101e357806379ba5097146101f857600080fd5b806331f44900146100f8578063391cb3581461010f5780634f1ef2861461016d57806352d1902d14610180575b600080fd5b34801561010457600080fd5b5061010d610334565b005b34801561011b57600080fd5b5061015061012a366004611116565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61010d61017b3660046111d0565b610375565b34801561018c57600080fd5b50610195610394565b604051908152602001610164565b3480156101af57600080fd5b50600054610150906001600160a01b031681565b3480156101cf57600080fd5b506101506101de366004611252565b6103b1565b3480156101ef57600080fd5b5061010d61058b565b34801561020457600080fd5b5061010d61059d565b34801561021957600080fd5b506101506105ea565b34801561022e57600080fd5b5061024261023d3660046112a0565b61061f565b604080516001600160a01b039093168352901515602083015201610164565b34801561026d57600080fd5b50610292604051806040016040528060058152602001640352e302e360dc1b81525081565b604051610164919061132d565b3480156102ab57600080fd5b5061010d6102ba366004611340565b6106ed565b3480156102cb57600080fd5b506101506102da366004611252565b61085d565b3480156102eb57600080fd5b506101506108f2565b34801561030057600080fd5b5061010d61030f366004611340565b61091b565b34801561032057600080fd5b5061010d61032f366004611340565b6109a0565b600080516020611e018339815191525467ffffffffffffffff161561036b5760405162dc149f60e41b815260040160405180910390fd5b610373610a0a565b565b61037d610aa7565b61038682610b4c565b6103908282610b54565b5050565b600061039e610c16565b50600080516020611de183398151915290565b600080836040516020016103c5919061135b565b60408051601f1981840301815291815281516020928301206001600160a01b0386811660009081526001855283812083825290945291909220549192501615610437576001600160a01b0380841660009081526001602090815260408083209483529390529190912054169050610585565b600060405180602001610449906110e0565b601f1982820381018352601f9091011660408190526000546001600160a01b038781166024840152169063189acdbd60e31b9060440160408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352516104be939201611377565b60408051601f19818403018152908290526104dc929160200161139b565b60408051601f19818403018152908290526001600160601b0319606087901b16602083015260348201849052915060009060540160408051808303601f190181529082905280516020918201208451858301206001600160f81b0319928401929092526001600160601b03193060601b16602184015260358301819052605583019190915291506075016040516020818303038152906040528051906020012060001c93505050505b92915050565b610593610c5f565b6103736000610c91565b33806105a76108f2565b6001600160a01b0316146105de5760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b6105e781610c91565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b600080600083604051602001610635919061135b565b60408051601f198184030181529181528151602092830120336000908152600184528281208282529093529120549091506001600160a01b0316156106a257336000908152600160209081526040808320938352929052908120546001600160a01b031694909350915050565b60006106ae8533610cc9565b33600090815260016020818152604080842096845295905293902080546001600160a01b0319166001600160a01b038316179055959194509092505050565b600080516020611e018339815191528054600160401b810460ff16159067ffffffffffffffff166000811580156107215750825b905060008267ffffffffffffffff16600114801561073e5750303b155b90508115801561074c575080155b1561076a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561079457845460ff60401b1916600160401b1785555b61079c610e15565b6107a533610e1d565b6107ad610e15565b85306040516107bb906110ed565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156107ee573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055831561085557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60008083604051602001610871919061135b565b60408051601f1981840301815291815281516020928301206001600160a01b038681166000908152600185528381208382529094529190922054919250166108c5576108bd84846103b1565b915050610585565b6001600160a01b039283166000908152600160209081526040808320938352929052205490911692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0061060f565b610923610c5f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556109676105ea565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6109a8610c5f565b600054604051631b2ce7f360e11b81526001600160a01b03838116600483015290911690633659cfe690602401600060405180830381600087803b1580156109ef57600080fd5b505af1158015610a03573d6000803e3d6000fd5b5050505050565b600080516020611e018339815191528054600160401b900460ff1615610a435760405163f92ee8a960e01b815260040160405180910390fd5b805467ffffffffffffffff908116146105e757805467ffffffffffffffff191667ffffffffffffffff90811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610b2e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b22600080516020611de1833981519152546001600160a01b031690565b6001600160a01b031614155b156103735760405163703e46dd60e11b815260040160405180910390fd5b6105e7610c5f565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610bae575060408051601f3d908101601f19168201909252610bab918101906113ca565b60015b610bd657604051634c9c8ce360e01b81526001600160a01b03831660048201526024016105d5565b600080516020611de18339815191528114610c0757604051632a87526960e21b8152600481018290526024016105d5565b610c118383610e2e565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103735760405163703e46dd60e11b815260040160405180910390fd5b33610c686105ea565b6001600160a01b0316146103735760405163118cdaa760e01b81523360048201526024016105d5565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561039082610e84565b60008083604051602001610cdd919061135b565b60405160208183030381529060405280519060200120905060008382604051602001610d2292919060609290921b6001600160601b0319168252601482015260340190565b60408051601f198184030181528282528051602091820120600080546001600160a01b038a8116602480890191909152865180890390910181526044909701865293860180516001600160e01b031663189acdbd60e31b1790529351919550938593929092169190610d93906110e0565b610d9e929190611377565b8190604051809103906000f5905080158015610dbe573d6000803e3d6000fd5b509050846001600160a01b0316816001600160a01b03167fad8a41b3cf9ccd262272a1aa8601a0191fac66c39f2b13491a904c1055bb97cd88604051610e04919061132d565b60405180910390a395945050505050565b610373610ef5565b610e25610ef5565b6105e781610f2c565b610e3782610f5e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610e7c57610c118282610fc3565b610390611039565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600080516020611e0183398151915254600160401b900460ff1661037357604051631afcd79f60e31b815260040160405180910390fd5b610f34610ef5565b6001600160a01b0381166105de57604051631e4fbdf760e01b8152600060048201526024016105d5565b806001600160a01b03163b600003610f9457604051634c9c8ce360e01b81526001600160a01b03821660048201526024016105d5565b600080516020611de183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610fe0919061135b565b600060405180830381855af49150503d806000811461101b576040519150601f19603f3d011682016040523d82523d6000602084013e611020565b606091505b5091509150611030858383611058565b95945050505050565b34156103735760405163b398979f60e01b815260040160405180910390fd5b60608261106d57611068826110b7565b6110b0565b815115801561108457506001600160a01b0384163b155b156110ad57604051639996b31560e01b81526001600160a01b03851660048201526024016105d5565b50805b9392505050565b8051156110c75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105c5806113e483390190565b610438806119a983390190565b80356001600160a01b038116811461111157600080fd5b919050565b6000806040838503121561112957600080fd5b611132836110fa565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008067ffffffffffffffff84111561117157611171611140565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156111a0576111a0611140565b6040528381529050808284018510156111b857600080fd5b83836020830137600060208583010152509392505050565b600080604083850312156111e357600080fd5b6111ec836110fa565b9150602083013567ffffffffffffffff81111561120857600080fd5b8301601f8101851361121957600080fd5b61122885823560208401611156565b9150509250929050565b600082601f83011261124357600080fd5b6110b083833560208501611156565b6000806040838503121561126557600080fd5b823567ffffffffffffffff81111561127c57600080fd5b61128885828601611232565b925050611297602084016110fa565b90509250929050565b6000602082840312156112b257600080fd5b813567ffffffffffffffff8111156112c957600080fd5b6112d584828501611232565b949350505050565b60005b838110156112f85781810151838201526020016112e0565b50506000910152565b600081518084526113198160208601602086016112dd565b601f01601f19169290920160200192915050565b6020815260006110b06020830184611301565b60006020828403121561135257600080fd5b6110b0826110fa565b6000825161136d8184602087016112dd565b9190910192915050565b6001600160a01b03831681526040602082018190526000906112d590830184611301565b600083516113ad8184602088016112dd565b8351908301906113c18183602088016112dd565b01949350505050565b6000602082840312156113dc57600080fd5b505191905056fe60a06040526040516105c53803806105c583398101604081905261002291610387565b61002c828261003e565b506001600160a01b0316608052610484565b610047826100fe565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a28051156100f2576100ed826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e7919061044d565b82610211565b505050565b6100fa610288565b5050565b806001600160a01b03163b60000361013957604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b81529051600092841691635c60da1b9160048083019260209291908290030181865afa1580156101b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d9919061044d565b9050806001600160a01b03163b6000036100fa57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610130565b6060600080846001600160a01b03168460405161022e9190610468565b600060405180830381855af49150503d8060008114610269576040519150601f19603f3d011682016040523d82523d6000602084013e61026e565b606091505b50909250905061027f8583836102a9565b95945050505050565b34156102a75760405163b398979f60e01b815260040160405180910390fd5b565b6060826102be576102b982610308565b610301565b81511580156102d557506001600160a01b0384163b155b156102fe57604051639996b31560e01b81526001600160a01b0385166004820152602401610130565b50805b9392505050565b8051156103185780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80516001600160a01b038116811461034857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561037e578181015183820152602001610366565b50506000910152565b6000806040838503121561039a57600080fd5b6103a383610331565b60208401519092506001600160401b038111156103bf57600080fd5b8301601f810185136103d057600080fd5b80516001600160401b038111156103e9576103e961034d565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104175761041761034d565b60405281815282820160200187101561042f57600080fd5b610440826020830160208601610363565b8093505050509250929050565b60006020828403121561045f57600080fd5b61030182610331565b6000825161047a818460208701610363565b9190910192915050565b60805161012761049e6000396000601e01526101276000f3fe6080604052600a600c565b005b60186014601a565b60a0565b565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156079573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190609b919060c3565b905090565b3660008037600080366000845af43d6000803e80801560be573d6000f35b3d6000fd5b60006020828403121560d457600080fd5b81516001600160a01b038116811460ea57600080fd5b939250505056fea2646970667358221220f0959ca51a58dfa33f8868f1214c44e6abd5c2555618646d963c304a98aa25ac64736f6c634300081c0033608060405234801561001057600080fd5b5060405161043838038061043883398101604081905261002f91610165565b806001600160a01b03811661005f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61006881610079565b50610072826100c9565b5050610198565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b6000036100ff5760405163211eb15960e21b81526001600160a01b0382166004820152602401610056565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b80516001600160a01b038116811461016057600080fd5b919050565b6000806040838503121561017857600080fd5b61018183610149565b915061018f60208401610149565b90509250929050565b610291806101a76000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a36600461022b565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f6100da565b6000546001600160a01b031661007e565b61006f6100c136600461022b565b6100ee565b6100ce61012e565b6100d78161015b565b50565b6100e261012e565b6100ec60006101db565b565b6100f661012e565b6001600160a01b03811661012557604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100d7816101db565b6000546001600160a01b031633146100ec5760405163118cdaa760e01b815233600482015260240161011c565b806001600160a01b03163b6000036101915760405163211eb15960e21b81526001600160a01b038216600482015260240161011c565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561023d57600080fd5b81356001600160a01b038116811461025457600080fd5b939250505056fea26469706673582212207f9e29c272144c167454a78a6120d9d066cbed12b713983129ffb88bb0f564af64736f6c634300081c0033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122067d2d7e0cf9895a9f21a74a6a2856271b17fa1f3949ac0846ed37ba3511eedd264736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x1E56 PUSH2 0x3D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0xAB2 ADD MSTORE DUP2 DUP2 PUSH2 0xADB ADD MSTORE PUSH2 0xC21 ADD MSTORE PUSH2 0x1E56 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF3 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDBE6E7F9 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xDBE6E7F9 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0xFA81F7D9 EQ PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA66C4F50 EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x29F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x59659E90 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x59659E90 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x70D367C3 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31F44900 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0x391CB358 EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x16D JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x180 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x12A CALLDATASIZE PUSH1 0x4 PUSH2 0x1116 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10D PUSH2 0x17B CALLDATASIZE PUSH1 0x4 PUSH2 0x11D0 JUMP JUMPDEST PUSH2 0x375 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x164 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x150 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x1DE CALLDATASIZE PUSH1 0x4 PUSH2 0x1252 JUMP JUMPDEST PUSH2 0x3B1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x58B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x59D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x5EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH2 0x23D CALLDATASIZE PUSH1 0x4 PUSH2 0x12A0 JUMP JUMPDEST PUSH2 0x61F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND DUP4 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH2 0x164 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x164 SWAP2 SWAP1 PUSH2 0x132D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x2BA CALLDATASIZE PUSH1 0x4 PUSH2 0x1340 JUMP JUMPDEST PUSH2 0x6ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x2DA CALLDATASIZE PUSH1 0x4 PUSH2 0x1252 JUMP JUMPDEST PUSH2 0x85D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x8F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x1340 JUMP JUMPDEST PUSH2 0x91B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x32F CALLDATASIZE PUSH1 0x4 PUSH2 0x1340 JUMP JUMPDEST PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1E01 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x36B JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x373 PUSH2 0xA0A JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x37D PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x386 DUP3 PUSH2 0xB4C JUMP JUMPDEST PUSH2 0x390 DUP3 DUP3 PUSH2 0xB54 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39E PUSH2 0xC16 JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP6 MSTORE DUP4 DUP2 KECCAK256 DUP4 DUP3 MSTORE SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP3 KECCAK256 SLOAD SWAP2 SWAP3 POP AND ISZERO PUSH2 0x437 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP4 MSTORE SWAP4 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SLOAD AND SWAP1 POP PUSH2 0x585 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x449 SWAP1 PUSH2 0x10E0 JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x24 DUP5 ADD MSTORE AND SWAP1 PUSH4 0x189ACDBD PUSH1 0xE3 SHL SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 MSTORE MLOAD PUSH2 0x4BE SWAP4 SWAP3 ADD PUSH2 0x1377 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x4DC SWAP3 SWAP2 PUSH1 0x20 ADD PUSH2 0x139B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 DUP8 SWAP1 SHL AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x34 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP5 MLOAD DUP6 DUP4 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x21 DUP5 ADD MSTORE PUSH1 0x35 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x55 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 POP PUSH1 0x75 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x593 PUSH2 0xC5F JUMP JUMPDEST PUSH2 0x373 PUSH1 0x0 PUSH2 0xC91 JUMP JUMPDEST CALLER DUP1 PUSH2 0x5A7 PUSH2 0x8F2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5DE JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E7 DUP2 PUSH2 0xC91 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x635 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP5 MSTORE DUP3 DUP2 KECCAK256 DUP3 DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x6A2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AE DUP6 CALLER PUSH2 0xCC9 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP7 DUP5 MSTORE SWAP6 SWAP1 MSTORE SWAP4 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE SWAP6 SWAP2 SWAP5 POP SWAP1 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1E01 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x721 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x73E JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x74C JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x76A JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x794 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x79C PUSH2 0xE15 JUMP JUMPDEST PUSH2 0x7A5 CALLER PUSH2 0xE1D JUMP JUMPDEST PUSH2 0x7AD PUSH2 0xE15 JUMP JUMPDEST DUP6 ADDRESS PUSH1 0x40 MLOAD PUSH2 0x7BB SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x7EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x855 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x871 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP6 MSTORE DUP4 DUP2 KECCAK256 DUP4 DUP3 MSTORE SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP3 KECCAK256 SLOAD SWAP2 SWAP3 POP AND PUSH2 0x8C5 JUMPI PUSH2 0x8BD DUP5 DUP5 PUSH2 0x3B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x585 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 PUSH2 0x60F JUMP JUMPDEST PUSH2 0x923 PUSH2 0xC5F JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR DUP3 SSTORE PUSH2 0x967 PUSH2 0x5EA 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 POP JUMP JUMPDEST PUSH2 0x9A8 PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B2CE7F3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA03 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1E01 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xA43 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP2 AND EQ PUSH2 0x5E7 JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0xB2E JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB22 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E7 PUSH2 0xC5F JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xBAE JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xBAB SWAP2 DUP2 ADD SWAP1 PUSH2 0x13CA JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xBD6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0xC07 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST PUSH2 0xC11 DUP4 DUP4 PUSH2 0xE2E JUMP JUMPDEST POP POP POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH2 0xC68 PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH2 0x390 DUP3 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x135B 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 PUSH1 0x0 DUP4 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD22 SWAP3 SWAP2 SWAP1 PUSH1 0x60 SWAP3 SWAP1 SWAP3 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND DUP3 MSTORE PUSH1 0x14 DUP3 ADD MSTORE PUSH1 0x34 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP1 DUP10 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 MLOAD DUP1 DUP10 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP8 ADD DUP7 MSTORE SWAP4 DUP7 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x189ACDBD PUSH1 0xE3 SHL OR SWAP1 MSTORE SWAP4 MLOAD SWAP2 SWAP6 POP SWAP4 DUP6 SWAP4 SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0xD93 SWAP1 PUSH2 0x10E0 JUMP JUMPDEST PUSH2 0xD9E SWAP3 SWAP2 SWAP1 PUSH2 0x1377 JUMP JUMPDEST DUP2 SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE2 SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0xDBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xAD8A41B3CF9CCD262272A1AA8601A0191FAC66C39F2B13491A904C1055BB97CD DUP9 PUSH1 0x40 MLOAD PUSH2 0xE04 SWAP2 SWAP1 PUSH2 0x132D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x373 PUSH2 0xEF5 JUMP JUMPDEST PUSH2 0xE25 PUSH2 0xEF5 JUMP JUMPDEST PUSH2 0x5E7 DUP2 PUSH2 0xF2C JUMP JUMPDEST PUSH2 0xE37 DUP3 PUSH2 0xF5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0xE7C JUMPI PUSH2 0xC11 DUP3 DUP3 PUSH2 0xFC3 JUMP JUMPDEST PUSH2 0x390 PUSH2 0x1039 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1E01 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF34 PUSH2 0xEF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5DE JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xF94 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0xFE0 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x101B 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 0x1020 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1030 DUP6 DUP4 DUP4 PUSH2 0x1058 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x106D JUMPI PUSH2 0x1068 DUP3 PUSH2 0x10B7 JUMP JUMPDEST PUSH2 0x10B0 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x1084 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x10AD JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x10C7 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C5 DUP1 PUSH2 0x13E4 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x438 DUP1 PUSH2 0x19A9 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1111 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1129 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1132 DUP4 PUSH2 0x10FA JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 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 0x0 DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x1171 JUMPI PUSH2 0x1171 PUSH2 0x1140 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11A0 JUMPI PUSH2 0x11A0 PUSH2 0x1140 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x11B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11EC DUP4 PUSH2 0x10FA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x1219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1228 DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1156 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10B0 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1288 DUP6 DUP3 DUP7 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x1297 PUSH1 0x20 DUP5 ADD PUSH2 0x10FA JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12D5 DUP5 DUP3 DUP6 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12F8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x12E0 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1319 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x12DD JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x10B0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10B0 DUP3 PUSH2 0x10FA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x136D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x12DD JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x12D5 SWAP1 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x13AD DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x12DD JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x13C1 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x12DD JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x5C5 CODESIZE SUB DUP1 PUSH2 0x5C5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x387 JUMP JUMPDEST PUSH2 0x2C DUP3 DUP3 PUSH2 0x3E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x484 JUMP JUMPDEST PUSH2 0x47 DUP3 PUSH2 0xFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0x1CF3B03A6CF19FA2BABA4DF148E9DCABEDEA7F8A5C07840E207E5C089BE95D3E SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0xF2 JUMPI PUSH2 0xED DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC3 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 0xE7 SWAP2 SWAP1 PUSH2 0x44D JUMP JUMPDEST DUP3 PUSH2 0x211 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xFA PUSH2 0x288 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x139 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1933B43B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH32 0xA3F0AD74E5423AEBFD80D3EF4346578335A9A72AEAEE59FF6CB3582B35133D50 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x5C60DA1B PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP5 AND SWAP2 PUSH4 0x5C60DA1B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B5 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 0x1D9 SWAP2 SWAP1 PUSH2 0x44D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xFA JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x130 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0x468 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x269 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 0x26E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x27F DUP6 DUP4 DUP4 PUSH2 0x2A9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x2BE JUMPI PUSH2 0x2B9 DUP3 PUSH2 0x308 JUMP JUMPDEST PUSH2 0x301 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2D5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x2FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x130 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x318 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x37E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x366 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3A3 DUP4 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E9 JUMPI PUSH2 0x3E9 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x417 JUMPI PUSH2 0x417 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x440 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x363 JUMP JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x301 DUP3 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x47A DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x363 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x127 PUSH2 0x49E PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH1 0x1E ADD MSTORE PUSH2 0x127 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0xA0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH1 0x79 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 PUSH1 0x9B SWAP2 SWAP1 PUSH1 0xC3 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE SWAP6 SWAP13 0xA5 BYTE PC 0xDF LOG3 EXTCODEHASH DUP9 PUSH9 0xF1214C44E6ABD5C255 JUMP XOR PUSH5 0x6D963C304A SWAP9 0xAA 0x25 0xAC PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x438 CODESIZE SUB DUP1 PUSH2 0x438 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5F JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x68 DUP2 PUSH2 0x79 JUMP JUMPDEST POP PUSH2 0x72 DUP3 PUSH2 0xC9 JUMP JUMPDEST POP POP PUSH2 0x198 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xFF JUMPI PUSH1 0x40 MLOAD PUSH4 0x211EB159 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x56 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x181 DUP4 PUSH2 0x149 JUMP JUMPDEST SWAP2 POP PUSH2 0x18F PUSH1 0x20 DUP5 ADD PUSH2 0x149 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x291 DUP1 PUSH2 0x1A7 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 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x9A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x22B JUMP JUMPDEST PUSH2 0xC6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6F PUSH2 0xDA JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7E JUMP JUMPDEST PUSH2 0x6F PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B JUMP JUMPDEST PUSH2 0xEE JUMP JUMPDEST PUSH2 0xCE PUSH2 0x12E JUMP JUMPDEST PUSH2 0xD7 DUP2 PUSH2 0x15B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x12E JUMP JUMPDEST PUSH2 0xEC PUSH1 0x0 PUSH2 0x1DB JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xF6 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x125 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD7 DUP2 PUSH2 0x1DB JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xEC JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x11C JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x191 JUMPI PUSH1 0x40 MLOAD PUSH4 0x211EB159 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x11C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x9E29C272144C167454A78A6120D9D066CBED12B713983129FFB88BB0F564AF64 PUSH20 0x6F6C634300081C0033360894A13BA1A3210667C8 0x28 BLOBHASH 0x2D 0xB9 DUP14 0xCA RETURNDATACOPY KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCF0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0xD2D7E0CF9895A9F2 BYTE PUSH21 0xA6A2856271B17FA1F3949AC0846ED37BA3511EEDD2 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"627:3307:75:-:0;;;1171:4:4;1128:48;;627:3307:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@UPGRADE_INTERFACE_VERSION_972":{"entryPoint":null,"id":972,"parameterSlots":0,"returnSlots":0},"@__Ownable2Step_init_400":{"entryPoint":3605,"id":400,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_554":{"entryPoint":3613,"id":554,"parameterSlots":1,"returnSlots":0},"@__Ownable_init_unchained_581":{"entryPoint":3884,"id":581,"parameterSlots":1,"returnSlots":0},"@__UUPSUpgradeable_init_1002":{"entryPoint":null,"id":1002,"parameterSlots":0,"returnSlots":0},"@_authorizeUpgrade_18776":{"entryPoint":2892,"id":18776,"parameterSlots":1,"returnSlots":0},"@_checkInitializing_870":{"entryPoint":3829,"id":870,"parameterSlots":0,"returnSlots":0},"@_checkNonPayable_3695":{"entryPoint":4153,"id":3695,"parameterSlots":0,"returnSlots":0},"@_checkNotDelegated_1078":{"entryPoint":3094,"id":1078,"parameterSlots":0,"returnSlots":0},"@_checkOwner_622":{"entryPoint":3167,"id":622,"parameterSlots":0,"returnSlots":0},"@_checkProxy_1062":{"entryPoint":2727,"id":1062,"parameterSlots":0,"returnSlots":0},"@_createSmartAccount_19042":{"entryPoint":3273,"id":19042,"parameterSlots":2,"returnSlots":1},"@_disableInitializers_916":{"entryPoint":2570,"id":916,"parameterSlots":0,"returnSlots":0},"@_getInitializableStorage_947":{"entryPoint":null,"id":947,"parameterSlots":0,"returnSlots":1},"@_getInitializedVersion_927":{"entryPoint":null,"id":927,"parameterSlots":0,"returnSlots":1},"@_getOwnable2StepStorage_388":{"entryPoint":null,"id":388,"parameterSlots":0,"returnSlots":1},"@_getOwnableStorage_525":{"entryPoint":null,"id":525,"parameterSlots":0,"returnSlots":1},"@_isInitializing_938":{"entryPoint":null,"id":938,"parameterSlots":0,"returnSlots":1},"@_msgSender_2855":{"entryPoint":null,"id":2855,"parameterSlots":0,"returnSlots":1},"@_revert_6627":{"entryPoint":4279,"id":6627,"parameterSlots":1,"returnSlots":0},"@_setImplementation_3475":{"entryPoint":3934,"id":3475,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_474":{"entryPoint":3217,"id":474,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_693":{"entryPoint":3716,"id":693,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCallUUPS_1129":{"entryPoint":2900,"id":1129,"parameterSlots":2,"returnSlots":0},"@acceptOwnership_498":{"entryPoint":1437,"id":498,"parameterSlots":0,"returnSlots":0},"@beacon_18722":{"entryPoint":null,"id":18722,"parameterSlots":0,"returnSlots":0},"@disableInitializers_16246":{"entryPoint":820,"id":16246,"parameterSlots":0,"returnSlots":0},"@functionDelegateCall_6545":{"entryPoint":4035,"id":6545,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_6935":{"entryPoint":null,"id":6935,"parameterSlots":1,"returnSlots":1},"@getImplementation_3448":{"entryPoint":null,"id":3448,"parameterSlots":0,"returnSlots":1},"@getOrCreateSmartAccount_18838":{"entryPoint":1567,"id":18838,"parameterSlots":1,"returnSlots":2},"@getSmartAccountForApplication_18880":{"entryPoint":2141,"id":18880,"parameterSlots":2,"returnSlots":1},"@initialize_18767":{"entryPoint":1773,"id":18767,"parameterSlots":1,"returnSlots":0},"@owner_605":{"entryPoint":1514,"id":605,"parameterSlots":0,"returnSlots":1},"@pendingOwner_422":{"entryPoint":2290,"id":422,"parameterSlots":0,"returnSlots":1},"@predictSmartAccountAddress_18978":{"entryPoint":945,"id":18978,"parameterSlots":2,"returnSlots":1},"@proxiableUUID_1020":{"entryPoint":916,"id":1020,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_636":{"entryPoint":1419,"id":636,"parameterSlots":0,"returnSlots":0},"@smartAccounts_18728":{"entryPoint":null,"id":18728,"parameterSlots":0,"returnSlots":0},"@transferOwnership_450":{"entryPoint":2331,"id":450,"parameterSlots":1,"returnSlots":0},"@updateBlueprint_19056":{"entryPoint":2464,"id":19056,"parameterSlots":1,"returnSlots":0},"@upgradeToAndCall_1040":{"entryPoint":885,"id":1040,"parameterSlots":2,"returnSlots":0},"@upgradeToAndCall_3511":{"entryPoint":3630,"id":3511,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_6585":{"entryPoint":4184,"id":6585,"parameterSlots":3,"returnSlots":1},"abi_decode_address":{"entryPoint":4346,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_bytes":{"entryPoint":4438,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_string":{"entryPoint":4658,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4928,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes32":{"entryPoint":4374,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":4560,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":5066,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":4768,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_address":{"entryPoint":4690,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_string":{"entryPoint":4865,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5019,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4955,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4983,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_UpgradeableBeacon_$3888__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4909,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4829,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":4416,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7703:89","nodeType":"YulBlock","src":"0:7703:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"63:124:89","nodeType":"YulBlock","src":"63:124:89","statements":[{"nativeSrc":"73:29:89","nodeType":"YulAssignment","src":"73:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:89","nodeType":"YulIdentifier","src":"95:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:89","nodeType":"YulIdentifier","src":"82:12:89"},"nativeSrc":"82:20:89","nodeType":"YulFunctionCall","src":"82:20:89"},"variableNames":[{"name":"value","nativeSrc":"73:5:89","nodeType":"YulIdentifier","src":"73:5:89"}]},{"body":{"nativeSrc":"165:16:89","nodeType":"YulBlock","src":"165:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"174:1:89","nodeType":"YulLiteral","src":"174:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"177:1:89","nodeType":"YulLiteral","src":"177:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"167:6:89","nodeType":"YulIdentifier","src":"167:6:89"},"nativeSrc":"167:12:89","nodeType":"YulFunctionCall","src":"167:12:89"},"nativeSrc":"167:12:89","nodeType":"YulExpressionStatement","src":"167:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:89","nodeType":"YulIdentifier","src":"124:5:89"},{"arguments":[{"name":"value","nativeSrc":"135:5:89","nodeType":"YulIdentifier","src":"135:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"150:3:89","nodeType":"YulLiteral","src":"150:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"155:1:89","nodeType":"YulLiteral","src":"155:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"146:3:89","nodeType":"YulIdentifier","src":"146:3:89"},"nativeSrc":"146:11:89","nodeType":"YulFunctionCall","src":"146:11:89"},{"kind":"number","nativeSrc":"159:1:89","nodeType":"YulLiteral","src":"159:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"142:3:89","nodeType":"YulIdentifier","src":"142:3:89"},"nativeSrc":"142:19:89","nodeType":"YulFunctionCall","src":"142:19:89"}],"functionName":{"name":"and","nativeSrc":"131:3:89","nodeType":"YulIdentifier","src":"131:3:89"},"nativeSrc":"131:31:89","nodeType":"YulFunctionCall","src":"131:31:89"}],"functionName":{"name":"eq","nativeSrc":"121:2:89","nodeType":"YulIdentifier","src":"121:2:89"},"nativeSrc":"121:42:89","nodeType":"YulFunctionCall","src":"121:42:89"}],"functionName":{"name":"iszero","nativeSrc":"114:6:89","nodeType":"YulIdentifier","src":"114:6:89"},"nativeSrc":"114:50:89","nodeType":"YulFunctionCall","src":"114:50:89"},"nativeSrc":"111:70:89","nodeType":"YulIf","src":"111:70:89"}]},"name":"abi_decode_address","nativeSrc":"14:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:89","nodeType":"YulTypedName","src":"42:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:89","nodeType":"YulTypedName","src":"53:5:89","type":""}],"src":"14:173:89"},{"body":{"nativeSrc":"279:167:89","nodeType":"YulBlock","src":"279:167:89","statements":[{"body":{"nativeSrc":"325:16:89","nodeType":"YulBlock","src":"325:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"334:1:89","nodeType":"YulLiteral","src":"334:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"337:1:89","nodeType":"YulLiteral","src":"337:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"327:6:89","nodeType":"YulIdentifier","src":"327:6:89"},"nativeSrc":"327:12:89","nodeType":"YulFunctionCall","src":"327:12:89"},"nativeSrc":"327:12:89","nodeType":"YulExpressionStatement","src":"327:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"300:7:89","nodeType":"YulIdentifier","src":"300:7:89"},{"name":"headStart","nativeSrc":"309:9:89","nodeType":"YulIdentifier","src":"309:9:89"}],"functionName":{"name":"sub","nativeSrc":"296:3:89","nodeType":"YulIdentifier","src":"296:3:89"},"nativeSrc":"296:23:89","nodeType":"YulFunctionCall","src":"296:23:89"},{"kind":"number","nativeSrc":"321:2:89","nodeType":"YulLiteral","src":"321:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"292:3:89","nodeType":"YulIdentifier","src":"292:3:89"},"nativeSrc":"292:32:89","nodeType":"YulFunctionCall","src":"292:32:89"},"nativeSrc":"289:52:89","nodeType":"YulIf","src":"289:52:89"},{"nativeSrc":"350:39:89","nodeType":"YulAssignment","src":"350:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"379:9:89","nodeType":"YulIdentifier","src":"379:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"360:18:89","nodeType":"YulIdentifier","src":"360:18:89"},"nativeSrc":"360:29:89","nodeType":"YulFunctionCall","src":"360:29:89"},"variableNames":[{"name":"value0","nativeSrc":"350:6:89","nodeType":"YulIdentifier","src":"350:6:89"}]},{"nativeSrc":"398:42:89","nodeType":"YulAssignment","src":"398:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"425:9:89","nodeType":"YulIdentifier","src":"425:9:89"},{"kind":"number","nativeSrc":"436:2:89","nodeType":"YulLiteral","src":"436:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"421:3:89","nodeType":"YulIdentifier","src":"421:3:89"},"nativeSrc":"421:18:89","nodeType":"YulFunctionCall","src":"421:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"408:12:89","nodeType":"YulIdentifier","src":"408:12:89"},"nativeSrc":"408:32:89","nodeType":"YulFunctionCall","src":"408:32:89"},"variableNames":[{"name":"value1","nativeSrc":"398:6:89","nodeType":"YulIdentifier","src":"398:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nativeSrc":"192:254:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"237:9:89","nodeType":"YulTypedName","src":"237:9:89","type":""},{"name":"dataEnd","nativeSrc":"248:7:89","nodeType":"YulTypedName","src":"248:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"260:6:89","nodeType":"YulTypedName","src":"260:6:89","type":""},{"name":"value1","nativeSrc":"268:6:89","nodeType":"YulTypedName","src":"268:6:89","type":""}],"src":"192:254:89"},{"body":{"nativeSrc":"552:102:89","nodeType":"YulBlock","src":"552:102:89","statements":[{"nativeSrc":"562:26:89","nodeType":"YulAssignment","src":"562:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"574:9:89","nodeType":"YulIdentifier","src":"574:9:89"},{"kind":"number","nativeSrc":"585:2:89","nodeType":"YulLiteral","src":"585:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"570:3:89","nodeType":"YulIdentifier","src":"570:3:89"},"nativeSrc":"570:18:89","nodeType":"YulFunctionCall","src":"570:18:89"},"variableNames":[{"name":"tail","nativeSrc":"562:4:89","nodeType":"YulIdentifier","src":"562:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"604:9:89","nodeType":"YulIdentifier","src":"604:9:89"},{"arguments":[{"name":"value0","nativeSrc":"619:6:89","nodeType":"YulIdentifier","src":"619:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"635:3:89","nodeType":"YulLiteral","src":"635:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"640:1:89","nodeType":"YulLiteral","src":"640:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"631:3:89","nodeType":"YulIdentifier","src":"631:3:89"},"nativeSrc":"631:11:89","nodeType":"YulFunctionCall","src":"631:11:89"},{"kind":"number","nativeSrc":"644:1:89","nodeType":"YulLiteral","src":"644:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"627:3:89","nodeType":"YulIdentifier","src":"627:3:89"},"nativeSrc":"627:19:89","nodeType":"YulFunctionCall","src":"627:19:89"}],"functionName":{"name":"and","nativeSrc":"615:3:89","nodeType":"YulIdentifier","src":"615:3:89"},"nativeSrc":"615:32:89","nodeType":"YulFunctionCall","src":"615:32:89"}],"functionName":{"name":"mstore","nativeSrc":"597:6:89","nodeType":"YulIdentifier","src":"597:6:89"},"nativeSrc":"597:51:89","nodeType":"YulFunctionCall","src":"597:51:89"},"nativeSrc":"597:51:89","nodeType":"YulExpressionStatement","src":"597:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"451:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"521:9:89","nodeType":"YulTypedName","src":"521:9:89","type":""},{"name":"value0","nativeSrc":"532:6:89","nodeType":"YulTypedName","src":"532:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"543:4:89","nodeType":"YulTypedName","src":"543:4:89","type":""}],"src":"451:203:89"},{"body":{"nativeSrc":"691:95:89","nodeType":"YulBlock","src":"691:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"708:1:89","nodeType":"YulLiteral","src":"708:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"715:3:89","nodeType":"YulLiteral","src":"715:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"720:10:89","nodeType":"YulLiteral","src":"720:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"711:3:89","nodeType":"YulIdentifier","src":"711:3:89"},"nativeSrc":"711:20:89","nodeType":"YulFunctionCall","src":"711:20:89"}],"functionName":{"name":"mstore","nativeSrc":"701:6:89","nodeType":"YulIdentifier","src":"701:6:89"},"nativeSrc":"701:31:89","nodeType":"YulFunctionCall","src":"701:31:89"},"nativeSrc":"701:31:89","nodeType":"YulExpressionStatement","src":"701:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"748:1:89","nodeType":"YulLiteral","src":"748:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"751:4:89","nodeType":"YulLiteral","src":"751:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"741:6:89","nodeType":"YulIdentifier","src":"741:6:89"},"nativeSrc":"741:15:89","nodeType":"YulFunctionCall","src":"741:15:89"},"nativeSrc":"741:15:89","nodeType":"YulExpressionStatement","src":"741:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"772:1:89","nodeType":"YulLiteral","src":"772:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"775:4:89","nodeType":"YulLiteral","src":"775:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"765:6:89","nodeType":"YulIdentifier","src":"765:6:89"},"nativeSrc":"765:15:89","nodeType":"YulFunctionCall","src":"765:15:89"},"nativeSrc":"765:15:89","nodeType":"YulExpressionStatement","src":"765:15:89"}]},"name":"panic_error_0x41","nativeSrc":"659:127:89","nodeType":"YulFunctionDefinition","src":"659:127:89"},{"body":{"nativeSrc":"865:641:89","nodeType":"YulBlock","src":"865:641:89","statements":[{"nativeSrc":"875:13:89","nodeType":"YulVariableDeclaration","src":"875:13:89","value":{"kind":"number","nativeSrc":"887:1:89","nodeType":"YulLiteral","src":"887:1:89","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"879:4:89","nodeType":"YulTypedName","src":"879:4:89","type":""}]},{"body":{"nativeSrc":"931:22:89","nodeType":"YulBlock","src":"931:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"933:16:89","nodeType":"YulIdentifier","src":"933:16:89"},"nativeSrc":"933:18:89","nodeType":"YulFunctionCall","src":"933:18:89"},"nativeSrc":"933:18:89","nodeType":"YulExpressionStatement","src":"933:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"903:6:89","nodeType":"YulIdentifier","src":"903:6:89"},{"kind":"number","nativeSrc":"911:18:89","nodeType":"YulLiteral","src":"911:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"900:2:89","nodeType":"YulIdentifier","src":"900:2:89"},"nativeSrc":"900:30:89","nodeType":"YulFunctionCall","src":"900:30:89"},"nativeSrc":"897:56:89","nodeType":"YulIf","src":"897:56:89"},{"nativeSrc":"962:43:89","nodeType":"YulVariableDeclaration","src":"962:43:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"984:6:89","nodeType":"YulIdentifier","src":"984:6:89"},{"kind":"number","nativeSrc":"992:2:89","nodeType":"YulLiteral","src":"992:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"980:3:89","nodeType":"YulIdentifier","src":"980:3:89"},"nativeSrc":"980:15:89","nodeType":"YulFunctionCall","src":"980:15:89"},{"arguments":[{"kind":"number","nativeSrc":"1001:2:89","nodeType":"YulLiteral","src":"1001:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"997:3:89","nodeType":"YulIdentifier","src":"997:3:89"},"nativeSrc":"997:7:89","nodeType":"YulFunctionCall","src":"997:7:89"}],"functionName":{"name":"and","nativeSrc":"976:3:89","nodeType":"YulIdentifier","src":"976:3:89"},"nativeSrc":"976:29:89","nodeType":"YulFunctionCall","src":"976:29:89"},"variables":[{"name":"result","nativeSrc":"966:6:89","nodeType":"YulTypedName","src":"966:6:89","type":""}]},{"nativeSrc":"1014:25:89","nodeType":"YulAssignment","src":"1014:25:89","value":{"arguments":[{"name":"result","nativeSrc":"1026:6:89","nodeType":"YulIdentifier","src":"1026:6:89"},{"kind":"number","nativeSrc":"1034:4:89","nodeType":"YulLiteral","src":"1034:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1022:3:89","nodeType":"YulIdentifier","src":"1022:3:89"},"nativeSrc":"1022:17:89","nodeType":"YulFunctionCall","src":"1022:17:89"},"variableNames":[{"name":"size","nativeSrc":"1014:4:89","nodeType":"YulIdentifier","src":"1014:4:89"}]},{"nativeSrc":"1048:15:89","nodeType":"YulVariableDeclaration","src":"1048:15:89","value":{"kind":"number","nativeSrc":"1062:1:89","nodeType":"YulLiteral","src":"1062:1:89","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"1052:6:89","nodeType":"YulTypedName","src":"1052:6:89","type":""}]},{"nativeSrc":"1072:19:89","nodeType":"YulAssignment","src":"1072:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"1088:2:89","nodeType":"YulLiteral","src":"1088:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1082:5:89","nodeType":"YulIdentifier","src":"1082:5:89"},"nativeSrc":"1082:9:89","nodeType":"YulFunctionCall","src":"1082:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"1072:6:89","nodeType":"YulIdentifier","src":"1072:6:89"}]},{"nativeSrc":"1100:60:89","nodeType":"YulVariableDeclaration","src":"1100:60:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"1122:6:89","nodeType":"YulIdentifier","src":"1122:6:89"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"1138:6:89","nodeType":"YulIdentifier","src":"1138:6:89"},{"kind":"number","nativeSrc":"1146:2:89","nodeType":"YulLiteral","src":"1146:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1134:3:89","nodeType":"YulIdentifier","src":"1134:3:89"},"nativeSrc":"1134:15:89","nodeType":"YulFunctionCall","src":"1134:15:89"},{"arguments":[{"kind":"number","nativeSrc":"1155:2:89","nodeType":"YulLiteral","src":"1155:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1151:3:89","nodeType":"YulIdentifier","src":"1151:3:89"},"nativeSrc":"1151:7:89","nodeType":"YulFunctionCall","src":"1151:7:89"}],"functionName":{"name":"and","nativeSrc":"1130:3:89","nodeType":"YulIdentifier","src":"1130:3:89"},"nativeSrc":"1130:29:89","nodeType":"YulFunctionCall","src":"1130:29:89"}],"functionName":{"name":"add","nativeSrc":"1118:3:89","nodeType":"YulIdentifier","src":"1118:3:89"},"nativeSrc":"1118:42:89","nodeType":"YulFunctionCall","src":"1118:42:89"},"variables":[{"name":"newFreePtr","nativeSrc":"1104:10:89","nodeType":"YulTypedName","src":"1104:10:89","type":""}]},{"body":{"nativeSrc":"1235:22:89","nodeType":"YulBlock","src":"1235:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1237:16:89","nodeType":"YulIdentifier","src":"1237:16:89"},"nativeSrc":"1237:18:89","nodeType":"YulFunctionCall","src":"1237:18:89"},"nativeSrc":"1237:18:89","nodeType":"YulExpressionStatement","src":"1237:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1178:10:89","nodeType":"YulIdentifier","src":"1178:10:89"},{"kind":"number","nativeSrc":"1190:18:89","nodeType":"YulLiteral","src":"1190:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1175:2:89","nodeType":"YulIdentifier","src":"1175:2:89"},"nativeSrc":"1175:34:89","nodeType":"YulFunctionCall","src":"1175:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1214:10:89","nodeType":"YulIdentifier","src":"1214:10:89"},{"name":"memPtr","nativeSrc":"1226:6:89","nodeType":"YulIdentifier","src":"1226:6:89"}],"functionName":{"name":"lt","nativeSrc":"1211:2:89","nodeType":"YulIdentifier","src":"1211:2:89"},"nativeSrc":"1211:22:89","nodeType":"YulFunctionCall","src":"1211:22:89"}],"functionName":{"name":"or","nativeSrc":"1172:2:89","nodeType":"YulIdentifier","src":"1172:2:89"},"nativeSrc":"1172:62:89","nodeType":"YulFunctionCall","src":"1172:62:89"},"nativeSrc":"1169:88:89","nodeType":"YulIf","src":"1169:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1273:2:89","nodeType":"YulLiteral","src":"1273:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1277:10:89","nodeType":"YulIdentifier","src":"1277:10:89"}],"functionName":{"name":"mstore","nativeSrc":"1266:6:89","nodeType":"YulIdentifier","src":"1266:6:89"},"nativeSrc":"1266:22:89","nodeType":"YulFunctionCall","src":"1266:22:89"},"nativeSrc":"1266:22:89","nodeType":"YulExpressionStatement","src":"1266:22:89"},{"nativeSrc":"1297:15:89","nodeType":"YulAssignment","src":"1297:15:89","value":{"name":"memPtr","nativeSrc":"1306:6:89","nodeType":"YulIdentifier","src":"1306:6:89"},"variableNames":[{"name":"array","nativeSrc":"1297:5:89","nodeType":"YulIdentifier","src":"1297:5:89"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1328:6:89","nodeType":"YulIdentifier","src":"1328:6:89"},{"name":"length","nativeSrc":"1336:6:89","nodeType":"YulIdentifier","src":"1336:6:89"}],"functionName":{"name":"mstore","nativeSrc":"1321:6:89","nodeType":"YulIdentifier","src":"1321:6:89"},"nativeSrc":"1321:22:89","nodeType":"YulFunctionCall","src":"1321:22:89"},"nativeSrc":"1321:22:89","nodeType":"YulExpressionStatement","src":"1321:22:89"},{"body":{"nativeSrc":"1381:16:89","nodeType":"YulBlock","src":"1381:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1390:1:89","nodeType":"YulLiteral","src":"1390:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1393:1:89","nodeType":"YulLiteral","src":"1393:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1383:6:89","nodeType":"YulIdentifier","src":"1383:6:89"},"nativeSrc":"1383:12:89","nodeType":"YulFunctionCall","src":"1383:12:89"},"nativeSrc":"1383:12:89","nodeType":"YulExpressionStatement","src":"1383:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"1362:3:89","nodeType":"YulIdentifier","src":"1362:3:89"},{"name":"length","nativeSrc":"1367:6:89","nodeType":"YulIdentifier","src":"1367:6:89"}],"functionName":{"name":"add","nativeSrc":"1358:3:89","nodeType":"YulIdentifier","src":"1358:3:89"},"nativeSrc":"1358:16:89","nodeType":"YulFunctionCall","src":"1358:16:89"},{"name":"end","nativeSrc":"1376:3:89","nodeType":"YulIdentifier","src":"1376:3:89"}],"functionName":{"name":"gt","nativeSrc":"1355:2:89","nodeType":"YulIdentifier","src":"1355:2:89"},"nativeSrc":"1355:25:89","nodeType":"YulFunctionCall","src":"1355:25:89"},"nativeSrc":"1352:45:89","nodeType":"YulIf","src":"1352:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1423:6:89","nodeType":"YulIdentifier","src":"1423:6:89"},{"kind":"number","nativeSrc":"1431:4:89","nodeType":"YulLiteral","src":"1431:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1419:3:89","nodeType":"YulIdentifier","src":"1419:3:89"},"nativeSrc":"1419:17:89","nodeType":"YulFunctionCall","src":"1419:17:89"},{"name":"src","nativeSrc":"1438:3:89","nodeType":"YulIdentifier","src":"1438:3:89"},{"name":"length","nativeSrc":"1443:6:89","nodeType":"YulIdentifier","src":"1443:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"1406:12:89","nodeType":"YulIdentifier","src":"1406:12:89"},"nativeSrc":"1406:44:89","nodeType":"YulFunctionCall","src":"1406:44:89"},"nativeSrc":"1406:44:89","nodeType":"YulExpressionStatement","src":"1406:44:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1474:6:89","nodeType":"YulIdentifier","src":"1474:6:89"},{"name":"length","nativeSrc":"1482:6:89","nodeType":"YulIdentifier","src":"1482:6:89"}],"functionName":{"name":"add","nativeSrc":"1470:3:89","nodeType":"YulIdentifier","src":"1470:3:89"},"nativeSrc":"1470:19:89","nodeType":"YulFunctionCall","src":"1470:19:89"},{"kind":"number","nativeSrc":"1491:4:89","nodeType":"YulLiteral","src":"1491:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1466:3:89","nodeType":"YulIdentifier","src":"1466:3:89"},"nativeSrc":"1466:30:89","nodeType":"YulFunctionCall","src":"1466:30:89"},{"kind":"number","nativeSrc":"1498:1:89","nodeType":"YulLiteral","src":"1498:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1459:6:89","nodeType":"YulIdentifier","src":"1459:6:89"},"nativeSrc":"1459:41:89","nodeType":"YulFunctionCall","src":"1459:41:89"},"nativeSrc":"1459:41:89","nodeType":"YulExpressionStatement","src":"1459:41:89"}]},"name":"abi_decode_available_length_bytes","nativeSrc":"791:715:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"834:3:89","nodeType":"YulTypedName","src":"834:3:89","type":""},{"name":"length","nativeSrc":"839:6:89","nodeType":"YulTypedName","src":"839:6:89","type":""},{"name":"end","nativeSrc":"847:3:89","nodeType":"YulTypedName","src":"847:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"855:5:89","nodeType":"YulTypedName","src":"855:5:89","type":""}],"src":"791:715:89"},{"body":{"nativeSrc":"1607:427:89","nodeType":"YulBlock","src":"1607:427:89","statements":[{"body":{"nativeSrc":"1653:16:89","nodeType":"YulBlock","src":"1653:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1662:1:89","nodeType":"YulLiteral","src":"1662:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1665:1:89","nodeType":"YulLiteral","src":"1665:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1655:6:89","nodeType":"YulIdentifier","src":"1655:6:89"},"nativeSrc":"1655:12:89","nodeType":"YulFunctionCall","src":"1655:12:89"},"nativeSrc":"1655:12:89","nodeType":"YulExpressionStatement","src":"1655:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1628:7:89","nodeType":"YulIdentifier","src":"1628:7:89"},{"name":"headStart","nativeSrc":"1637:9:89","nodeType":"YulIdentifier","src":"1637:9:89"}],"functionName":{"name":"sub","nativeSrc":"1624:3:89","nodeType":"YulIdentifier","src":"1624:3:89"},"nativeSrc":"1624:23:89","nodeType":"YulFunctionCall","src":"1624:23:89"},{"kind":"number","nativeSrc":"1649:2:89","nodeType":"YulLiteral","src":"1649:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1620:3:89","nodeType":"YulIdentifier","src":"1620:3:89"},"nativeSrc":"1620:32:89","nodeType":"YulFunctionCall","src":"1620:32:89"},"nativeSrc":"1617:52:89","nodeType":"YulIf","src":"1617:52:89"},{"nativeSrc":"1678:39:89","nodeType":"YulAssignment","src":"1678:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1707:9:89","nodeType":"YulIdentifier","src":"1707:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1688:18:89","nodeType":"YulIdentifier","src":"1688:18:89"},"nativeSrc":"1688:29:89","nodeType":"YulFunctionCall","src":"1688:29:89"},"variableNames":[{"name":"value0","nativeSrc":"1678:6:89","nodeType":"YulIdentifier","src":"1678:6:89"}]},{"nativeSrc":"1726:46:89","nodeType":"YulVariableDeclaration","src":"1726:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1757:9:89","nodeType":"YulIdentifier","src":"1757:9:89"},{"kind":"number","nativeSrc":"1768:2:89","nodeType":"YulLiteral","src":"1768:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1753:3:89","nodeType":"YulIdentifier","src":"1753:3:89"},"nativeSrc":"1753:18:89","nodeType":"YulFunctionCall","src":"1753:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1740:12:89","nodeType":"YulIdentifier","src":"1740:12:89"},"nativeSrc":"1740:32:89","nodeType":"YulFunctionCall","src":"1740:32:89"},"variables":[{"name":"offset","nativeSrc":"1730:6:89","nodeType":"YulTypedName","src":"1730:6:89","type":""}]},{"body":{"nativeSrc":"1815:16:89","nodeType":"YulBlock","src":"1815:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1824:1:89","nodeType":"YulLiteral","src":"1824:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1827:1:89","nodeType":"YulLiteral","src":"1827:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1817:6:89","nodeType":"YulIdentifier","src":"1817:6:89"},"nativeSrc":"1817:12:89","nodeType":"YulFunctionCall","src":"1817:12:89"},"nativeSrc":"1817:12:89","nodeType":"YulExpressionStatement","src":"1817:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1787:6:89","nodeType":"YulIdentifier","src":"1787:6:89"},{"kind":"number","nativeSrc":"1795:18:89","nodeType":"YulLiteral","src":"1795:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1784:2:89","nodeType":"YulIdentifier","src":"1784:2:89"},"nativeSrc":"1784:30:89","nodeType":"YulFunctionCall","src":"1784:30:89"},"nativeSrc":"1781:50:89","nodeType":"YulIf","src":"1781:50:89"},{"nativeSrc":"1840:32:89","nodeType":"YulVariableDeclaration","src":"1840:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1854:9:89","nodeType":"YulIdentifier","src":"1854:9:89"},{"name":"offset","nativeSrc":"1865:6:89","nodeType":"YulIdentifier","src":"1865:6:89"}],"functionName":{"name":"add","nativeSrc":"1850:3:89","nodeType":"YulIdentifier","src":"1850:3:89"},"nativeSrc":"1850:22:89","nodeType":"YulFunctionCall","src":"1850:22:89"},"variables":[{"name":"_1","nativeSrc":"1844:2:89","nodeType":"YulTypedName","src":"1844:2:89","type":""}]},{"body":{"nativeSrc":"1920:16:89","nodeType":"YulBlock","src":"1920:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1929:1:89","nodeType":"YulLiteral","src":"1929:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1932:1:89","nodeType":"YulLiteral","src":"1932:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1922:6:89","nodeType":"YulIdentifier","src":"1922:6:89"},"nativeSrc":"1922:12:89","nodeType":"YulFunctionCall","src":"1922:12:89"},"nativeSrc":"1922:12:89","nodeType":"YulExpressionStatement","src":"1922:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1899:2:89","nodeType":"YulIdentifier","src":"1899:2:89"},{"kind":"number","nativeSrc":"1903:4:89","nodeType":"YulLiteral","src":"1903:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1895:3:89","nodeType":"YulIdentifier","src":"1895:3:89"},"nativeSrc":"1895:13:89","nodeType":"YulFunctionCall","src":"1895:13:89"},{"name":"dataEnd","nativeSrc":"1910:7:89","nodeType":"YulIdentifier","src":"1910:7:89"}],"functionName":{"name":"slt","nativeSrc":"1891:3:89","nodeType":"YulIdentifier","src":"1891:3:89"},"nativeSrc":"1891:27:89","nodeType":"YulFunctionCall","src":"1891:27:89"}],"functionName":{"name":"iszero","nativeSrc":"1884:6:89","nodeType":"YulIdentifier","src":"1884:6:89"},"nativeSrc":"1884:35:89","nodeType":"YulFunctionCall","src":"1884:35:89"},"nativeSrc":"1881:55:89","nodeType":"YulIf","src":"1881:55:89"},{"nativeSrc":"1945:83:89","nodeType":"YulAssignment","src":"1945:83:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1993:2:89","nodeType":"YulIdentifier","src":"1993:2:89"},{"kind":"number","nativeSrc":"1997:2:89","nodeType":"YulLiteral","src":"1997:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1989:3:89","nodeType":"YulIdentifier","src":"1989:3:89"},"nativeSrc":"1989:11:89","nodeType":"YulFunctionCall","src":"1989:11:89"},{"arguments":[{"name":"_1","nativeSrc":"2015:2:89","nodeType":"YulIdentifier","src":"2015:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"2002:12:89","nodeType":"YulIdentifier","src":"2002:12:89"},"nativeSrc":"2002:16:89","nodeType":"YulFunctionCall","src":"2002:16:89"},{"name":"dataEnd","nativeSrc":"2020:7:89","nodeType":"YulIdentifier","src":"2020:7:89"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"1955:33:89","nodeType":"YulIdentifier","src":"1955:33:89"},"nativeSrc":"1955:73:89","nodeType":"YulFunctionCall","src":"1955:73:89"},"variableNames":[{"name":"value1","nativeSrc":"1945:6:89","nodeType":"YulIdentifier","src":"1945:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"1511:523:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1565:9:89","nodeType":"YulTypedName","src":"1565:9:89","type":""},{"name":"dataEnd","nativeSrc":"1576:7:89","nodeType":"YulTypedName","src":"1576:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1588:6:89","nodeType":"YulTypedName","src":"1588:6:89","type":""},{"name":"value1","nativeSrc":"1596:6:89","nodeType":"YulTypedName","src":"1596:6:89","type":""}],"src":"1511:523:89"},{"body":{"nativeSrc":"2140:76:89","nodeType":"YulBlock","src":"2140:76:89","statements":[{"nativeSrc":"2150:26:89","nodeType":"YulAssignment","src":"2150:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2162:9:89","nodeType":"YulIdentifier","src":"2162:9:89"},{"kind":"number","nativeSrc":"2173:2:89","nodeType":"YulLiteral","src":"2173:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2158:3:89","nodeType":"YulIdentifier","src":"2158:3:89"},"nativeSrc":"2158:18:89","nodeType":"YulFunctionCall","src":"2158:18:89"},"variableNames":[{"name":"tail","nativeSrc":"2150:4:89","nodeType":"YulIdentifier","src":"2150:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2192:9:89","nodeType":"YulIdentifier","src":"2192:9:89"},{"name":"value0","nativeSrc":"2203:6:89","nodeType":"YulIdentifier","src":"2203:6:89"}],"functionName":{"name":"mstore","nativeSrc":"2185:6:89","nodeType":"YulIdentifier","src":"2185:6:89"},"nativeSrc":"2185:25:89","nodeType":"YulFunctionCall","src":"2185:25:89"},"nativeSrc":"2185:25:89","nodeType":"YulExpressionStatement","src":"2185:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2039:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2109:9:89","nodeType":"YulTypedName","src":"2109:9:89","type":""},{"name":"value0","nativeSrc":"2120:6:89","nodeType":"YulTypedName","src":"2120:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2131:4:89","nodeType":"YulTypedName","src":"2131:4:89","type":""}],"src":"2039:177:89"},{"body":{"nativeSrc":"2348:102:89","nodeType":"YulBlock","src":"2348:102:89","statements":[{"nativeSrc":"2358:26:89","nodeType":"YulAssignment","src":"2358:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2370:9:89","nodeType":"YulIdentifier","src":"2370:9:89"},{"kind":"number","nativeSrc":"2381:2:89","nodeType":"YulLiteral","src":"2381:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2366:3:89","nodeType":"YulIdentifier","src":"2366:3:89"},"nativeSrc":"2366:18:89","nodeType":"YulFunctionCall","src":"2366:18:89"},"variableNames":[{"name":"tail","nativeSrc":"2358:4:89","nodeType":"YulIdentifier","src":"2358:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2400:9:89","nodeType":"YulIdentifier","src":"2400:9:89"},{"arguments":[{"name":"value0","nativeSrc":"2415:6:89","nodeType":"YulIdentifier","src":"2415:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2431:3:89","nodeType":"YulLiteral","src":"2431:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"2436:1:89","nodeType":"YulLiteral","src":"2436:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2427:3:89","nodeType":"YulIdentifier","src":"2427:3:89"},"nativeSrc":"2427:11:89","nodeType":"YulFunctionCall","src":"2427:11:89"},{"kind":"number","nativeSrc":"2440:1:89","nodeType":"YulLiteral","src":"2440:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2423:3:89","nodeType":"YulIdentifier","src":"2423:3:89"},"nativeSrc":"2423:19:89","nodeType":"YulFunctionCall","src":"2423:19:89"}],"functionName":{"name":"and","nativeSrc":"2411:3:89","nodeType":"YulIdentifier","src":"2411:3:89"},"nativeSrc":"2411:32:89","nodeType":"YulFunctionCall","src":"2411:32:89"}],"functionName":{"name":"mstore","nativeSrc":"2393:6:89","nodeType":"YulIdentifier","src":"2393:6:89"},"nativeSrc":"2393:51:89","nodeType":"YulFunctionCall","src":"2393:51:89"},"nativeSrc":"2393:51:89","nodeType":"YulExpressionStatement","src":"2393:51:89"}]},"name":"abi_encode_tuple_t_contract$_UpgradeableBeacon_$3888__to_t_address__fromStack_reversed","nativeSrc":"2221:229:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2317:9:89","nodeType":"YulTypedName","src":"2317:9:89","type":""},{"name":"value0","nativeSrc":"2328:6:89","nodeType":"YulTypedName","src":"2328:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2339:4:89","nodeType":"YulTypedName","src":"2339:4:89","type":""}],"src":"2221:229:89"},{"body":{"nativeSrc":"2508:168:89","nodeType":"YulBlock","src":"2508:168:89","statements":[{"body":{"nativeSrc":"2557:16:89","nodeType":"YulBlock","src":"2557:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2566:1:89","nodeType":"YulLiteral","src":"2566:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2569:1:89","nodeType":"YulLiteral","src":"2569:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2559:6:89","nodeType":"YulIdentifier","src":"2559:6:89"},"nativeSrc":"2559:12:89","nodeType":"YulFunctionCall","src":"2559:12:89"},"nativeSrc":"2559:12:89","nodeType":"YulExpressionStatement","src":"2559:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2536:6:89","nodeType":"YulIdentifier","src":"2536:6:89"},{"kind":"number","nativeSrc":"2544:4:89","nodeType":"YulLiteral","src":"2544:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2532:3:89","nodeType":"YulIdentifier","src":"2532:3:89"},"nativeSrc":"2532:17:89","nodeType":"YulFunctionCall","src":"2532:17:89"},{"name":"end","nativeSrc":"2551:3:89","nodeType":"YulIdentifier","src":"2551:3:89"}],"functionName":{"name":"slt","nativeSrc":"2528:3:89","nodeType":"YulIdentifier","src":"2528:3:89"},"nativeSrc":"2528:27:89","nodeType":"YulFunctionCall","src":"2528:27:89"}],"functionName":{"name":"iszero","nativeSrc":"2521:6:89","nodeType":"YulIdentifier","src":"2521:6:89"},"nativeSrc":"2521:35:89","nodeType":"YulFunctionCall","src":"2521:35:89"},"nativeSrc":"2518:55:89","nodeType":"YulIf","src":"2518:55:89"},{"nativeSrc":"2582:88:89","nodeType":"YulAssignment","src":"2582:88:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2629:6:89","nodeType":"YulIdentifier","src":"2629:6:89"},{"kind":"number","nativeSrc":"2637:4:89","nodeType":"YulLiteral","src":"2637:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2625:3:89","nodeType":"YulIdentifier","src":"2625:3:89"},"nativeSrc":"2625:17:89","nodeType":"YulFunctionCall","src":"2625:17:89"},{"arguments":[{"name":"offset","nativeSrc":"2657:6:89","nodeType":"YulIdentifier","src":"2657:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"2644:12:89","nodeType":"YulIdentifier","src":"2644:12:89"},"nativeSrc":"2644:20:89","nodeType":"YulFunctionCall","src":"2644:20:89"},{"name":"end","nativeSrc":"2666:3:89","nodeType":"YulIdentifier","src":"2666:3:89"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"2591:33:89","nodeType":"YulIdentifier","src":"2591:33:89"},"nativeSrc":"2591:79:89","nodeType":"YulFunctionCall","src":"2591:79:89"},"variableNames":[{"name":"array","nativeSrc":"2582:5:89","nodeType":"YulIdentifier","src":"2582:5:89"}]}]},"name":"abi_decode_string","nativeSrc":"2455:221:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2482:6:89","nodeType":"YulTypedName","src":"2482:6:89","type":""},{"name":"end","nativeSrc":"2490:3:89","nodeType":"YulTypedName","src":"2490:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2498:5:89","nodeType":"YulTypedName","src":"2498:5:89","type":""}],"src":"2455:221:89"},{"body":{"nativeSrc":"2778:299:89","nodeType":"YulBlock","src":"2778:299:89","statements":[{"body":{"nativeSrc":"2824:16:89","nodeType":"YulBlock","src":"2824:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2833:1:89","nodeType":"YulLiteral","src":"2833:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2836:1:89","nodeType":"YulLiteral","src":"2836:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2826:6:89","nodeType":"YulIdentifier","src":"2826:6:89"},"nativeSrc":"2826:12:89","nodeType":"YulFunctionCall","src":"2826:12:89"},"nativeSrc":"2826:12:89","nodeType":"YulExpressionStatement","src":"2826:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2799:7:89","nodeType":"YulIdentifier","src":"2799:7:89"},{"name":"headStart","nativeSrc":"2808:9:89","nodeType":"YulIdentifier","src":"2808:9:89"}],"functionName":{"name":"sub","nativeSrc":"2795:3:89","nodeType":"YulIdentifier","src":"2795:3:89"},"nativeSrc":"2795:23:89","nodeType":"YulFunctionCall","src":"2795:23:89"},{"kind":"number","nativeSrc":"2820:2:89","nodeType":"YulLiteral","src":"2820:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2791:3:89","nodeType":"YulIdentifier","src":"2791:3:89"},"nativeSrc":"2791:32:89","nodeType":"YulFunctionCall","src":"2791:32:89"},"nativeSrc":"2788:52:89","nodeType":"YulIf","src":"2788:52:89"},{"nativeSrc":"2849:37:89","nodeType":"YulVariableDeclaration","src":"2849:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2876:9:89","nodeType":"YulIdentifier","src":"2876:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"2863:12:89","nodeType":"YulIdentifier","src":"2863:12:89"},"nativeSrc":"2863:23:89","nodeType":"YulFunctionCall","src":"2863:23:89"},"variables":[{"name":"offset","nativeSrc":"2853:6:89","nodeType":"YulTypedName","src":"2853:6:89","type":""}]},{"body":{"nativeSrc":"2929:16:89","nodeType":"YulBlock","src":"2929:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2938:1:89","nodeType":"YulLiteral","src":"2938:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2941:1:89","nodeType":"YulLiteral","src":"2941:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2931:6:89","nodeType":"YulIdentifier","src":"2931:6:89"},"nativeSrc":"2931:12:89","nodeType":"YulFunctionCall","src":"2931:12:89"},"nativeSrc":"2931:12:89","nodeType":"YulExpressionStatement","src":"2931:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2901:6:89","nodeType":"YulIdentifier","src":"2901:6:89"},{"kind":"number","nativeSrc":"2909:18:89","nodeType":"YulLiteral","src":"2909:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2898:2:89","nodeType":"YulIdentifier","src":"2898:2:89"},"nativeSrc":"2898:30:89","nodeType":"YulFunctionCall","src":"2898:30:89"},"nativeSrc":"2895:50:89","nodeType":"YulIf","src":"2895:50:89"},{"nativeSrc":"2954:60:89","nodeType":"YulAssignment","src":"2954:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2986:9:89","nodeType":"YulIdentifier","src":"2986:9:89"},{"name":"offset","nativeSrc":"2997:6:89","nodeType":"YulIdentifier","src":"2997:6:89"}],"functionName":{"name":"add","nativeSrc":"2982:3:89","nodeType":"YulIdentifier","src":"2982:3:89"},"nativeSrc":"2982:22:89","nodeType":"YulFunctionCall","src":"2982:22:89"},{"name":"dataEnd","nativeSrc":"3006:7:89","nodeType":"YulIdentifier","src":"3006:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"2964:17:89","nodeType":"YulIdentifier","src":"2964:17:89"},"nativeSrc":"2964:50:89","nodeType":"YulFunctionCall","src":"2964:50:89"},"variableNames":[{"name":"value0","nativeSrc":"2954:6:89","nodeType":"YulIdentifier","src":"2954:6:89"}]},{"nativeSrc":"3023:48:89","nodeType":"YulAssignment","src":"3023:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3056:9:89","nodeType":"YulIdentifier","src":"3056:9:89"},{"kind":"number","nativeSrc":"3067:2:89","nodeType":"YulLiteral","src":"3067:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3052:3:89","nodeType":"YulIdentifier","src":"3052:3:89"},"nativeSrc":"3052:18:89","nodeType":"YulFunctionCall","src":"3052:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3033:18:89","nodeType":"YulIdentifier","src":"3033:18:89"},"nativeSrc":"3033:38:89","nodeType":"YulFunctionCall","src":"3033:38:89"},"variableNames":[{"name":"value1","nativeSrc":"3023:6:89","nodeType":"YulIdentifier","src":"3023:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_address","nativeSrc":"2681:396:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2736:9:89","nodeType":"YulTypedName","src":"2736:9:89","type":""},{"name":"dataEnd","nativeSrc":"2747:7:89","nodeType":"YulTypedName","src":"2747:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2759:6:89","nodeType":"YulTypedName","src":"2759:6:89","type":""},{"name":"value1","nativeSrc":"2767:6:89","nodeType":"YulTypedName","src":"2767:6:89","type":""}],"src":"2681:396:89"},{"body":{"nativeSrc":"3162:242:89","nodeType":"YulBlock","src":"3162:242:89","statements":[{"body":{"nativeSrc":"3208:16:89","nodeType":"YulBlock","src":"3208:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3217:1:89","nodeType":"YulLiteral","src":"3217:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3220:1:89","nodeType":"YulLiteral","src":"3220:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3210:6:89","nodeType":"YulIdentifier","src":"3210:6:89"},"nativeSrc":"3210:12:89","nodeType":"YulFunctionCall","src":"3210:12:89"},"nativeSrc":"3210:12:89","nodeType":"YulExpressionStatement","src":"3210:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3183:7:89","nodeType":"YulIdentifier","src":"3183:7:89"},{"name":"headStart","nativeSrc":"3192:9:89","nodeType":"YulIdentifier","src":"3192:9:89"}],"functionName":{"name":"sub","nativeSrc":"3179:3:89","nodeType":"YulIdentifier","src":"3179:3:89"},"nativeSrc":"3179:23:89","nodeType":"YulFunctionCall","src":"3179:23:89"},{"kind":"number","nativeSrc":"3204:2:89","nodeType":"YulLiteral","src":"3204:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3175:3:89","nodeType":"YulIdentifier","src":"3175:3:89"},"nativeSrc":"3175:32:89","nodeType":"YulFunctionCall","src":"3175:32:89"},"nativeSrc":"3172:52:89","nodeType":"YulIf","src":"3172:52:89"},{"nativeSrc":"3233:37:89","nodeType":"YulVariableDeclaration","src":"3233:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3260:9:89","nodeType":"YulIdentifier","src":"3260:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3247:12:89","nodeType":"YulIdentifier","src":"3247:12:89"},"nativeSrc":"3247:23:89","nodeType":"YulFunctionCall","src":"3247:23:89"},"variables":[{"name":"offset","nativeSrc":"3237:6:89","nodeType":"YulTypedName","src":"3237:6:89","type":""}]},{"body":{"nativeSrc":"3313:16:89","nodeType":"YulBlock","src":"3313:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3322:1:89","nodeType":"YulLiteral","src":"3322:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3325:1:89","nodeType":"YulLiteral","src":"3325:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3315:6:89","nodeType":"YulIdentifier","src":"3315:6:89"},"nativeSrc":"3315:12:89","nodeType":"YulFunctionCall","src":"3315:12:89"},"nativeSrc":"3315:12:89","nodeType":"YulExpressionStatement","src":"3315:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3285:6:89","nodeType":"YulIdentifier","src":"3285:6:89"},{"kind":"number","nativeSrc":"3293:18:89","nodeType":"YulLiteral","src":"3293:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3282:2:89","nodeType":"YulIdentifier","src":"3282:2:89"},"nativeSrc":"3282:30:89","nodeType":"YulFunctionCall","src":"3282:30:89"},"nativeSrc":"3279:50:89","nodeType":"YulIf","src":"3279:50:89"},{"nativeSrc":"3338:60:89","nodeType":"YulAssignment","src":"3338:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3370:9:89","nodeType":"YulIdentifier","src":"3370:9:89"},{"name":"offset","nativeSrc":"3381:6:89","nodeType":"YulIdentifier","src":"3381:6:89"}],"functionName":{"name":"add","nativeSrc":"3366:3:89","nodeType":"YulIdentifier","src":"3366:3:89"},"nativeSrc":"3366:22:89","nodeType":"YulFunctionCall","src":"3366:22:89"},{"name":"dataEnd","nativeSrc":"3390:7:89","nodeType":"YulIdentifier","src":"3390:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"3348:17:89","nodeType":"YulIdentifier","src":"3348:17:89"},"nativeSrc":"3348:50:89","nodeType":"YulFunctionCall","src":"3348:50:89"},"variableNames":[{"name":"value0","nativeSrc":"3338:6:89","nodeType":"YulIdentifier","src":"3338:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nativeSrc":"3082:322:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3128:9:89","nodeType":"YulTypedName","src":"3128:9:89","type":""},{"name":"dataEnd","nativeSrc":"3139:7:89","nodeType":"YulTypedName","src":"3139:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3151:6:89","nodeType":"YulTypedName","src":"3151:6:89","type":""}],"src":"3082:322:89"},{"body":{"nativeSrc":"3532:161:89","nodeType":"YulBlock","src":"3532:161:89","statements":[{"nativeSrc":"3542:26:89","nodeType":"YulAssignment","src":"3542:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3554:9:89","nodeType":"YulIdentifier","src":"3554:9:89"},{"kind":"number","nativeSrc":"3565:2:89","nodeType":"YulLiteral","src":"3565:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3550:3:89","nodeType":"YulIdentifier","src":"3550:3:89"},"nativeSrc":"3550:18:89","nodeType":"YulFunctionCall","src":"3550:18:89"},"variableNames":[{"name":"tail","nativeSrc":"3542:4:89","nodeType":"YulIdentifier","src":"3542:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3584:9:89","nodeType":"YulIdentifier","src":"3584:9:89"},{"arguments":[{"name":"value0","nativeSrc":"3599:6:89","nodeType":"YulIdentifier","src":"3599:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3615:3:89","nodeType":"YulLiteral","src":"3615:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"3620:1:89","nodeType":"YulLiteral","src":"3620:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3611:3:89","nodeType":"YulIdentifier","src":"3611:3:89"},"nativeSrc":"3611:11:89","nodeType":"YulFunctionCall","src":"3611:11:89"},{"kind":"number","nativeSrc":"3624:1:89","nodeType":"YulLiteral","src":"3624:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3607:3:89","nodeType":"YulIdentifier","src":"3607:3:89"},"nativeSrc":"3607:19:89","nodeType":"YulFunctionCall","src":"3607:19:89"}],"functionName":{"name":"and","nativeSrc":"3595:3:89","nodeType":"YulIdentifier","src":"3595:3:89"},"nativeSrc":"3595:32:89","nodeType":"YulFunctionCall","src":"3595:32:89"}],"functionName":{"name":"mstore","nativeSrc":"3577:6:89","nodeType":"YulIdentifier","src":"3577:6:89"},"nativeSrc":"3577:51:89","nodeType":"YulFunctionCall","src":"3577:51:89"},"nativeSrc":"3577:51:89","nodeType":"YulExpressionStatement","src":"3577:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3648:9:89","nodeType":"YulIdentifier","src":"3648:9:89"},{"kind":"number","nativeSrc":"3659:2:89","nodeType":"YulLiteral","src":"3659:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3644:3:89","nodeType":"YulIdentifier","src":"3644:3:89"},"nativeSrc":"3644:18:89","nodeType":"YulFunctionCall","src":"3644:18:89"},{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"3678:6:89","nodeType":"YulIdentifier","src":"3678:6:89"}],"functionName":{"name":"iszero","nativeSrc":"3671:6:89","nodeType":"YulIdentifier","src":"3671:6:89"},"nativeSrc":"3671:14:89","nodeType":"YulFunctionCall","src":"3671:14:89"}],"functionName":{"name":"iszero","nativeSrc":"3664:6:89","nodeType":"YulIdentifier","src":"3664:6:89"},"nativeSrc":"3664:22:89","nodeType":"YulFunctionCall","src":"3664:22:89"}],"functionName":{"name":"mstore","nativeSrc":"3637:6:89","nodeType":"YulIdentifier","src":"3637:6:89"},"nativeSrc":"3637:50:89","nodeType":"YulFunctionCall","src":"3637:50:89"},"nativeSrc":"3637:50:89","nodeType":"YulExpressionStatement","src":"3637:50:89"}]},"name":"abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed","nativeSrc":"3409:284:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3493:9:89","nodeType":"YulTypedName","src":"3493:9:89","type":""},{"name":"value1","nativeSrc":"3504:6:89","nodeType":"YulTypedName","src":"3504:6:89","type":""},{"name":"value0","nativeSrc":"3512:6:89","nodeType":"YulTypedName","src":"3512:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3523:4:89","nodeType":"YulTypedName","src":"3523:4:89","type":""}],"src":"3409:284:89"},{"body":{"nativeSrc":"3764:184:89","nodeType":"YulBlock","src":"3764:184:89","statements":[{"nativeSrc":"3774:10:89","nodeType":"YulVariableDeclaration","src":"3774:10:89","value":{"kind":"number","nativeSrc":"3783:1:89","nodeType":"YulLiteral","src":"3783:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3778:1:89","nodeType":"YulTypedName","src":"3778:1:89","type":""}]},{"body":{"nativeSrc":"3843:63:89","nodeType":"YulBlock","src":"3843:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3868:3:89","nodeType":"YulIdentifier","src":"3868:3:89"},{"name":"i","nativeSrc":"3873:1:89","nodeType":"YulIdentifier","src":"3873:1:89"}],"functionName":{"name":"add","nativeSrc":"3864:3:89","nodeType":"YulIdentifier","src":"3864:3:89"},"nativeSrc":"3864:11:89","nodeType":"YulFunctionCall","src":"3864:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3887:3:89","nodeType":"YulIdentifier","src":"3887:3:89"},{"name":"i","nativeSrc":"3892:1:89","nodeType":"YulIdentifier","src":"3892:1:89"}],"functionName":{"name":"add","nativeSrc":"3883:3:89","nodeType":"YulIdentifier","src":"3883:3:89"},"nativeSrc":"3883:11:89","nodeType":"YulFunctionCall","src":"3883:11:89"}],"functionName":{"name":"mload","nativeSrc":"3877:5:89","nodeType":"YulIdentifier","src":"3877:5:89"},"nativeSrc":"3877:18:89","nodeType":"YulFunctionCall","src":"3877:18:89"}],"functionName":{"name":"mstore","nativeSrc":"3857:6:89","nodeType":"YulIdentifier","src":"3857:6:89"},"nativeSrc":"3857:39:89","nodeType":"YulFunctionCall","src":"3857:39:89"},"nativeSrc":"3857:39:89","nodeType":"YulExpressionStatement","src":"3857:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3804:1:89","nodeType":"YulIdentifier","src":"3804:1:89"},{"name":"length","nativeSrc":"3807:6:89","nodeType":"YulIdentifier","src":"3807:6:89"}],"functionName":{"name":"lt","nativeSrc":"3801:2:89","nodeType":"YulIdentifier","src":"3801:2:89"},"nativeSrc":"3801:13:89","nodeType":"YulFunctionCall","src":"3801:13:89"},"nativeSrc":"3793:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"3815:19:89","nodeType":"YulBlock","src":"3815:19:89","statements":[{"nativeSrc":"3817:15:89","nodeType":"YulAssignment","src":"3817:15:89","value":{"arguments":[{"name":"i","nativeSrc":"3826:1:89","nodeType":"YulIdentifier","src":"3826:1:89"},{"kind":"number","nativeSrc":"3829:2:89","nodeType":"YulLiteral","src":"3829:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3822:3:89","nodeType":"YulIdentifier","src":"3822:3:89"},"nativeSrc":"3822:10:89","nodeType":"YulFunctionCall","src":"3822:10:89"},"variableNames":[{"name":"i","nativeSrc":"3817:1:89","nodeType":"YulIdentifier","src":"3817:1:89"}]}]},"pre":{"nativeSrc":"3797:3:89","nodeType":"YulBlock","src":"3797:3:89","statements":[]},"src":"3793:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3926:3:89","nodeType":"YulIdentifier","src":"3926:3:89"},{"name":"length","nativeSrc":"3931:6:89","nodeType":"YulIdentifier","src":"3931:6:89"}],"functionName":{"name":"add","nativeSrc":"3922:3:89","nodeType":"YulIdentifier","src":"3922:3:89"},"nativeSrc":"3922:16:89","nodeType":"YulFunctionCall","src":"3922:16:89"},{"kind":"number","nativeSrc":"3940:1:89","nodeType":"YulLiteral","src":"3940:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3915:6:89","nodeType":"YulIdentifier","src":"3915:6:89"},"nativeSrc":"3915:27:89","nodeType":"YulFunctionCall","src":"3915:27:89"},"nativeSrc":"3915:27:89","nodeType":"YulExpressionStatement","src":"3915:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3698:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3742:3:89","nodeType":"YulTypedName","src":"3742:3:89","type":""},{"name":"dst","nativeSrc":"3747:3:89","nodeType":"YulTypedName","src":"3747:3:89","type":""},{"name":"length","nativeSrc":"3752:6:89","nodeType":"YulTypedName","src":"3752:6:89","type":""}],"src":"3698:250:89"},{"body":{"nativeSrc":"4003:221:89","nodeType":"YulBlock","src":"4003:221:89","statements":[{"nativeSrc":"4013:26:89","nodeType":"YulVariableDeclaration","src":"4013:26:89","value":{"arguments":[{"name":"value","nativeSrc":"4033:5:89","nodeType":"YulIdentifier","src":"4033:5:89"}],"functionName":{"name":"mload","nativeSrc":"4027:5:89","nodeType":"YulIdentifier","src":"4027:5:89"},"nativeSrc":"4027:12:89","nodeType":"YulFunctionCall","src":"4027:12:89"},"variables":[{"name":"length","nativeSrc":"4017:6:89","nodeType":"YulTypedName","src":"4017:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4055:3:89","nodeType":"YulIdentifier","src":"4055:3:89"},{"name":"length","nativeSrc":"4060:6:89","nodeType":"YulIdentifier","src":"4060:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4048:6:89","nodeType":"YulIdentifier","src":"4048:6:89"},"nativeSrc":"4048:19:89","nodeType":"YulFunctionCall","src":"4048:19:89"},"nativeSrc":"4048:19:89","nodeType":"YulExpressionStatement","src":"4048:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4115:5:89","nodeType":"YulIdentifier","src":"4115:5:89"},{"kind":"number","nativeSrc":"4122:4:89","nodeType":"YulLiteral","src":"4122:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4111:3:89","nodeType":"YulIdentifier","src":"4111:3:89"},"nativeSrc":"4111:16:89","nodeType":"YulFunctionCall","src":"4111:16:89"},{"arguments":[{"name":"pos","nativeSrc":"4133:3:89","nodeType":"YulIdentifier","src":"4133:3:89"},{"kind":"number","nativeSrc":"4138:4:89","nodeType":"YulLiteral","src":"4138:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4129:3:89","nodeType":"YulIdentifier","src":"4129:3:89"},"nativeSrc":"4129:14:89","nodeType":"YulFunctionCall","src":"4129:14:89"},{"name":"length","nativeSrc":"4145:6:89","nodeType":"YulIdentifier","src":"4145:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4076:34:89","nodeType":"YulIdentifier","src":"4076:34:89"},"nativeSrc":"4076:76:89","nodeType":"YulFunctionCall","src":"4076:76:89"},"nativeSrc":"4076:76:89","nodeType":"YulExpressionStatement","src":"4076:76:89"},{"nativeSrc":"4161:57:89","nodeType":"YulAssignment","src":"4161:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4176:3:89","nodeType":"YulIdentifier","src":"4176:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4189:6:89","nodeType":"YulIdentifier","src":"4189:6:89"},{"kind":"number","nativeSrc":"4197:2:89","nodeType":"YulLiteral","src":"4197:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4185:3:89","nodeType":"YulIdentifier","src":"4185:3:89"},"nativeSrc":"4185:15:89","nodeType":"YulFunctionCall","src":"4185:15:89"},{"arguments":[{"kind":"number","nativeSrc":"4206:2:89","nodeType":"YulLiteral","src":"4206:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4202:3:89","nodeType":"YulIdentifier","src":"4202:3:89"},"nativeSrc":"4202:7:89","nodeType":"YulFunctionCall","src":"4202:7:89"}],"functionName":{"name":"and","nativeSrc":"4181:3:89","nodeType":"YulIdentifier","src":"4181:3:89"},"nativeSrc":"4181:29:89","nodeType":"YulFunctionCall","src":"4181:29:89"}],"functionName":{"name":"add","nativeSrc":"4172:3:89","nodeType":"YulIdentifier","src":"4172:3:89"},"nativeSrc":"4172:39:89","nodeType":"YulFunctionCall","src":"4172:39:89"},{"kind":"number","nativeSrc":"4213:4:89","nodeType":"YulLiteral","src":"4213:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4168:3:89","nodeType":"YulIdentifier","src":"4168:3:89"},"nativeSrc":"4168:50:89","nodeType":"YulFunctionCall","src":"4168:50:89"},"variableNames":[{"name":"end","nativeSrc":"4161:3:89","nodeType":"YulIdentifier","src":"4161:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"3953:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3980:5:89","nodeType":"YulTypedName","src":"3980:5:89","type":""},{"name":"pos","nativeSrc":"3987:3:89","nodeType":"YulTypedName","src":"3987:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3995:3:89","nodeType":"YulTypedName","src":"3995:3:89","type":""}],"src":"3953:271:89"},{"body":{"nativeSrc":"4350:99:89","nodeType":"YulBlock","src":"4350:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4367:9:89","nodeType":"YulIdentifier","src":"4367:9:89"},{"kind":"number","nativeSrc":"4378:2:89","nodeType":"YulLiteral","src":"4378:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4360:6:89","nodeType":"YulIdentifier","src":"4360:6:89"},"nativeSrc":"4360:21:89","nodeType":"YulFunctionCall","src":"4360:21:89"},"nativeSrc":"4360:21:89","nodeType":"YulExpressionStatement","src":"4360:21:89"},{"nativeSrc":"4390:53:89","nodeType":"YulAssignment","src":"4390:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"4416:6:89","nodeType":"YulIdentifier","src":"4416:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"4428:9:89","nodeType":"YulIdentifier","src":"4428:9:89"},{"kind":"number","nativeSrc":"4439:2:89","nodeType":"YulLiteral","src":"4439:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4424:3:89","nodeType":"YulIdentifier","src":"4424:3:89"},"nativeSrc":"4424:18:89","nodeType":"YulFunctionCall","src":"4424:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"4398:17:89","nodeType":"YulIdentifier","src":"4398:17:89"},"nativeSrc":"4398:45:89","nodeType":"YulFunctionCall","src":"4398:45:89"},"variableNames":[{"name":"tail","nativeSrc":"4390:4:89","nodeType":"YulIdentifier","src":"4390:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4229:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4319:9:89","nodeType":"YulTypedName","src":"4319:9:89","type":""},{"name":"value0","nativeSrc":"4330:6:89","nodeType":"YulTypedName","src":"4330:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4341:4:89","nodeType":"YulTypedName","src":"4341:4:89","type":""}],"src":"4229:220:89"},{"body":{"nativeSrc":"4524:116:89","nodeType":"YulBlock","src":"4524:116:89","statements":[{"body":{"nativeSrc":"4570:16:89","nodeType":"YulBlock","src":"4570:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4579:1:89","nodeType":"YulLiteral","src":"4579:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4582:1:89","nodeType":"YulLiteral","src":"4582:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4572:6:89","nodeType":"YulIdentifier","src":"4572:6:89"},"nativeSrc":"4572:12:89","nodeType":"YulFunctionCall","src":"4572:12:89"},"nativeSrc":"4572:12:89","nodeType":"YulExpressionStatement","src":"4572:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4545:7:89","nodeType":"YulIdentifier","src":"4545:7:89"},{"name":"headStart","nativeSrc":"4554:9:89","nodeType":"YulIdentifier","src":"4554:9:89"}],"functionName":{"name":"sub","nativeSrc":"4541:3:89","nodeType":"YulIdentifier","src":"4541:3:89"},"nativeSrc":"4541:23:89","nodeType":"YulFunctionCall","src":"4541:23:89"},{"kind":"number","nativeSrc":"4566:2:89","nodeType":"YulLiteral","src":"4566:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4537:3:89","nodeType":"YulIdentifier","src":"4537:3:89"},"nativeSrc":"4537:32:89","nodeType":"YulFunctionCall","src":"4537:32:89"},"nativeSrc":"4534:52:89","nodeType":"YulIf","src":"4534:52:89"},{"nativeSrc":"4595:39:89","nodeType":"YulAssignment","src":"4595:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4624:9:89","nodeType":"YulIdentifier","src":"4624:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4605:18:89","nodeType":"YulIdentifier","src":"4605:18:89"},"nativeSrc":"4605:29:89","nodeType":"YulFunctionCall","src":"4605:29:89"},"variableNames":[{"name":"value0","nativeSrc":"4595:6:89","nodeType":"YulIdentifier","src":"4595:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4454:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4490:9:89","nodeType":"YulTypedName","src":"4490:9:89","type":""},{"name":"dataEnd","nativeSrc":"4501:7:89","nodeType":"YulTypedName","src":"4501:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4513:6:89","nodeType":"YulTypedName","src":"4513:6:89","type":""}],"src":"4454:186:89"},{"body":{"nativeSrc":"4784:150:89","nodeType":"YulBlock","src":"4784:150:89","statements":[{"nativeSrc":"4794:27:89","nodeType":"YulVariableDeclaration","src":"4794:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"4814:6:89","nodeType":"YulIdentifier","src":"4814:6:89"}],"functionName":{"name":"mload","nativeSrc":"4808:5:89","nodeType":"YulIdentifier","src":"4808:5:89"},"nativeSrc":"4808:13:89","nodeType":"YulFunctionCall","src":"4808:13:89"},"variables":[{"name":"length","nativeSrc":"4798:6:89","nodeType":"YulTypedName","src":"4798:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4869:6:89","nodeType":"YulIdentifier","src":"4869:6:89"},{"kind":"number","nativeSrc":"4877:4:89","nodeType":"YulLiteral","src":"4877:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4865:3:89","nodeType":"YulIdentifier","src":"4865:3:89"},"nativeSrc":"4865:17:89","nodeType":"YulFunctionCall","src":"4865:17:89"},{"name":"pos","nativeSrc":"4884:3:89","nodeType":"YulIdentifier","src":"4884:3:89"},{"name":"length","nativeSrc":"4889:6:89","nodeType":"YulIdentifier","src":"4889:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4830:34:89","nodeType":"YulIdentifier","src":"4830:34:89"},"nativeSrc":"4830:66:89","nodeType":"YulFunctionCall","src":"4830:66:89"},"nativeSrc":"4830:66:89","nodeType":"YulExpressionStatement","src":"4830:66:89"},{"nativeSrc":"4905:23:89","nodeType":"YulAssignment","src":"4905:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"4916:3:89","nodeType":"YulIdentifier","src":"4916:3:89"},{"name":"length","nativeSrc":"4921:6:89","nodeType":"YulIdentifier","src":"4921:6:89"}],"functionName":{"name":"add","nativeSrc":"4912:3:89","nodeType":"YulIdentifier","src":"4912:3:89"},"nativeSrc":"4912:16:89","nodeType":"YulFunctionCall","src":"4912:16:89"},"variableNames":[{"name":"end","nativeSrc":"4905:3:89","nodeType":"YulIdentifier","src":"4905:3:89"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"4645:289:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4760:3:89","nodeType":"YulTypedName","src":"4760:3:89","type":""},{"name":"value0","nativeSrc":"4765:6:89","nodeType":"YulTypedName","src":"4765:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4776:3:89","nodeType":"YulTypedName","src":"4776:3:89","type":""}],"src":"4645:289:89"},{"body":{"nativeSrc":"5086:168:89","nodeType":"YulBlock","src":"5086:168:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5103:9:89","nodeType":"YulIdentifier","src":"5103:9:89"},{"arguments":[{"name":"value0","nativeSrc":"5118:6:89","nodeType":"YulIdentifier","src":"5118:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5134:3:89","nodeType":"YulLiteral","src":"5134:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"5139:1:89","nodeType":"YulLiteral","src":"5139:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5130:3:89","nodeType":"YulIdentifier","src":"5130:3:89"},"nativeSrc":"5130:11:89","nodeType":"YulFunctionCall","src":"5130:11:89"},{"kind":"number","nativeSrc":"5143:1:89","nodeType":"YulLiteral","src":"5143:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5126:3:89","nodeType":"YulIdentifier","src":"5126:3:89"},"nativeSrc":"5126:19:89","nodeType":"YulFunctionCall","src":"5126:19:89"}],"functionName":{"name":"and","nativeSrc":"5114:3:89","nodeType":"YulIdentifier","src":"5114:3:89"},"nativeSrc":"5114:32:89","nodeType":"YulFunctionCall","src":"5114:32:89"}],"functionName":{"name":"mstore","nativeSrc":"5096:6:89","nodeType":"YulIdentifier","src":"5096:6:89"},"nativeSrc":"5096:51:89","nodeType":"YulFunctionCall","src":"5096:51:89"},"nativeSrc":"5096:51:89","nodeType":"YulExpressionStatement","src":"5096:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5167:9:89","nodeType":"YulIdentifier","src":"5167:9:89"},{"kind":"number","nativeSrc":"5178:2:89","nodeType":"YulLiteral","src":"5178:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5163:3:89","nodeType":"YulIdentifier","src":"5163:3:89"},"nativeSrc":"5163:18:89","nodeType":"YulFunctionCall","src":"5163:18:89"},{"kind":"number","nativeSrc":"5183:2:89","nodeType":"YulLiteral","src":"5183:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"5156:6:89","nodeType":"YulIdentifier","src":"5156:6:89"},"nativeSrc":"5156:30:89","nodeType":"YulFunctionCall","src":"5156:30:89"},"nativeSrc":"5156:30:89","nodeType":"YulExpressionStatement","src":"5156:30:89"},{"nativeSrc":"5195:53:89","nodeType":"YulAssignment","src":"5195:53:89","value":{"arguments":[{"name":"value1","nativeSrc":"5221:6:89","nodeType":"YulIdentifier","src":"5221:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"5233:9:89","nodeType":"YulIdentifier","src":"5233:9:89"},{"kind":"number","nativeSrc":"5244:2:89","nodeType":"YulLiteral","src":"5244:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5229:3:89","nodeType":"YulIdentifier","src":"5229:3:89"},"nativeSrc":"5229:18:89","nodeType":"YulFunctionCall","src":"5229:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5203:17:89","nodeType":"YulIdentifier","src":"5203:17:89"},"nativeSrc":"5203:45:89","nodeType":"YulFunctionCall","src":"5203:45:89"},"variableNames":[{"name":"tail","nativeSrc":"5195:4:89","nodeType":"YulIdentifier","src":"5195:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4939:315:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5047:9:89","nodeType":"YulTypedName","src":"5047:9:89","type":""},{"name":"value1","nativeSrc":"5058:6:89","nodeType":"YulTypedName","src":"5058:6:89","type":""},{"name":"value0","nativeSrc":"5066:6:89","nodeType":"YulTypedName","src":"5066:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5077:4:89","nodeType":"YulTypedName","src":"5077:4:89","type":""}],"src":"4939:315:89"},{"body":{"nativeSrc":"5442:309:89","nodeType":"YulBlock","src":"5442:309:89","statements":[{"nativeSrc":"5452:27:89","nodeType":"YulVariableDeclaration","src":"5452:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"5472:6:89","nodeType":"YulIdentifier","src":"5472:6:89"}],"functionName":{"name":"mload","nativeSrc":"5466:5:89","nodeType":"YulIdentifier","src":"5466:5:89"},"nativeSrc":"5466:13:89","nodeType":"YulFunctionCall","src":"5466:13:89"},"variables":[{"name":"length","nativeSrc":"5456:6:89","nodeType":"YulTypedName","src":"5456:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5527:6:89","nodeType":"YulIdentifier","src":"5527:6:89"},{"kind":"number","nativeSrc":"5535:4:89","nodeType":"YulLiteral","src":"5535:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5523:3:89","nodeType":"YulIdentifier","src":"5523:3:89"},"nativeSrc":"5523:17:89","nodeType":"YulFunctionCall","src":"5523:17:89"},{"name":"pos","nativeSrc":"5542:3:89","nodeType":"YulIdentifier","src":"5542:3:89"},{"name":"length","nativeSrc":"5547:6:89","nodeType":"YulIdentifier","src":"5547:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5488:34:89","nodeType":"YulIdentifier","src":"5488:34:89"},"nativeSrc":"5488:66:89","nodeType":"YulFunctionCall","src":"5488:66:89"},"nativeSrc":"5488:66:89","nodeType":"YulExpressionStatement","src":"5488:66:89"},{"nativeSrc":"5563:29:89","nodeType":"YulVariableDeclaration","src":"5563:29:89","value":{"arguments":[{"name":"pos","nativeSrc":"5580:3:89","nodeType":"YulIdentifier","src":"5580:3:89"},{"name":"length","nativeSrc":"5585:6:89","nodeType":"YulIdentifier","src":"5585:6:89"}],"functionName":{"name":"add","nativeSrc":"5576:3:89","nodeType":"YulIdentifier","src":"5576:3:89"},"nativeSrc":"5576:16:89","nodeType":"YulFunctionCall","src":"5576:16:89"},"variables":[{"name":"end_1","nativeSrc":"5567:5:89","nodeType":"YulTypedName","src":"5567:5:89","type":""}]},{"nativeSrc":"5601:29:89","nodeType":"YulVariableDeclaration","src":"5601:29:89","value":{"arguments":[{"name":"value1","nativeSrc":"5623:6:89","nodeType":"YulIdentifier","src":"5623:6:89"}],"functionName":{"name":"mload","nativeSrc":"5617:5:89","nodeType":"YulIdentifier","src":"5617:5:89"},"nativeSrc":"5617:13:89","nodeType":"YulFunctionCall","src":"5617:13:89"},"variables":[{"name":"length_1","nativeSrc":"5605:8:89","nodeType":"YulTypedName","src":"5605:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"5678:6:89","nodeType":"YulIdentifier","src":"5678:6:89"},{"kind":"number","nativeSrc":"5686:4:89","nodeType":"YulLiteral","src":"5686:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5674:3:89","nodeType":"YulIdentifier","src":"5674:3:89"},"nativeSrc":"5674:17:89","nodeType":"YulFunctionCall","src":"5674:17:89"},{"name":"end_1","nativeSrc":"5693:5:89","nodeType":"YulIdentifier","src":"5693:5:89"},{"name":"length_1","nativeSrc":"5700:8:89","nodeType":"YulIdentifier","src":"5700:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5639:34:89","nodeType":"YulIdentifier","src":"5639:34:89"},"nativeSrc":"5639:70:89","nodeType":"YulFunctionCall","src":"5639:70:89"},"nativeSrc":"5639:70:89","nodeType":"YulExpressionStatement","src":"5639:70:89"},{"nativeSrc":"5718:27:89","nodeType":"YulAssignment","src":"5718:27:89","value":{"arguments":[{"name":"end_1","nativeSrc":"5729:5:89","nodeType":"YulIdentifier","src":"5729:5:89"},{"name":"length_1","nativeSrc":"5736:8:89","nodeType":"YulIdentifier","src":"5736:8:89"}],"functionName":{"name":"add","nativeSrc":"5725:3:89","nodeType":"YulIdentifier","src":"5725:3:89"},"nativeSrc":"5725:20:89","nodeType":"YulFunctionCall","src":"5725:20:89"},"variableNames":[{"name":"end","nativeSrc":"5718:3:89","nodeType":"YulIdentifier","src":"5718:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5259:492:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5410:3:89","nodeType":"YulTypedName","src":"5410:3:89","type":""},{"name":"value1","nativeSrc":"5415:6:89","nodeType":"YulTypedName","src":"5415:6:89","type":""},{"name":"value0","nativeSrc":"5423:6:89","nodeType":"YulTypedName","src":"5423:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5434:3:89","nodeType":"YulTypedName","src":"5434:3:89","type":""}],"src":"5259:492:89"},{"body":{"nativeSrc":"5903:147:89","nodeType":"YulBlock","src":"5903:147:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5920:3:89","nodeType":"YulIdentifier","src":"5920:3:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5933:2:89","nodeType":"YulLiteral","src":"5933:2:89","type":"","value":"96"},{"name":"value0","nativeSrc":"5937:6:89","nodeType":"YulIdentifier","src":"5937:6:89"}],"functionName":{"name":"shl","nativeSrc":"5929:3:89","nodeType":"YulIdentifier","src":"5929:3:89"},"nativeSrc":"5929:15:89","nodeType":"YulFunctionCall","src":"5929:15:89"},{"arguments":[{"kind":"number","nativeSrc":"5950:26:89","nodeType":"YulLiteral","src":"5950:26:89","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nativeSrc":"5946:3:89","nodeType":"YulIdentifier","src":"5946:3:89"},"nativeSrc":"5946:31:89","nodeType":"YulFunctionCall","src":"5946:31:89"}],"functionName":{"name":"and","nativeSrc":"5925:3:89","nodeType":"YulIdentifier","src":"5925:3:89"},"nativeSrc":"5925:53:89","nodeType":"YulFunctionCall","src":"5925:53:89"}],"functionName":{"name":"mstore","nativeSrc":"5913:6:89","nodeType":"YulIdentifier","src":"5913:6:89"},"nativeSrc":"5913:66:89","nodeType":"YulFunctionCall","src":"5913:66:89"},"nativeSrc":"5913:66:89","nodeType":"YulExpressionStatement","src":"5913:66:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5999:3:89","nodeType":"YulIdentifier","src":"5999:3:89"},{"kind":"number","nativeSrc":"6004:2:89","nodeType":"YulLiteral","src":"6004:2:89","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"5995:3:89","nodeType":"YulIdentifier","src":"5995:3:89"},"nativeSrc":"5995:12:89","nodeType":"YulFunctionCall","src":"5995:12:89"},{"name":"value1","nativeSrc":"6009:6:89","nodeType":"YulIdentifier","src":"6009:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5988:6:89","nodeType":"YulIdentifier","src":"5988:6:89"},"nativeSrc":"5988:28:89","nodeType":"YulFunctionCall","src":"5988:28:89"},"nativeSrc":"5988:28:89","nodeType":"YulExpressionStatement","src":"5988:28:89"},{"nativeSrc":"6025:19:89","nodeType":"YulAssignment","src":"6025:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"6036:3:89","nodeType":"YulIdentifier","src":"6036:3:89"},{"kind":"number","nativeSrc":"6041:2:89","nodeType":"YulLiteral","src":"6041:2:89","type":"","value":"52"}],"functionName":{"name":"add","nativeSrc":"6032:3:89","nodeType":"YulIdentifier","src":"6032:3:89"},"nativeSrc":"6032:12:89","nodeType":"YulFunctionCall","src":"6032:12:89"},"variableNames":[{"name":"end","nativeSrc":"6025:3:89","nodeType":"YulIdentifier","src":"6025:3:89"}]}]},"name":"abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"5756:294:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5871:3:89","nodeType":"YulTypedName","src":"5871:3:89","type":""},{"name":"value1","nativeSrc":"5876:6:89","nodeType":"YulTypedName","src":"5876:6:89","type":""},{"name":"value0","nativeSrc":"5884:6:89","nodeType":"YulTypedName","src":"5884:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5895:3:89","nodeType":"YulTypedName","src":"5895:3:89","type":""}],"src":"5756:294:89"},{"body":{"nativeSrc":"6256:240:89","nodeType":"YulBlock","src":"6256:240:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6273:3:89","nodeType":"YulIdentifier","src":"6273:3:89"},{"arguments":[{"name":"value0","nativeSrc":"6282:6:89","nodeType":"YulIdentifier","src":"6282:6:89"},{"arguments":[{"kind":"number","nativeSrc":"6294:3:89","nodeType":"YulLiteral","src":"6294:3:89","type":"","value":"248"},{"kind":"number","nativeSrc":"6299:3:89","nodeType":"YulLiteral","src":"6299:3:89","type":"","value":"255"}],"functionName":{"name":"shl","nativeSrc":"6290:3:89","nodeType":"YulIdentifier","src":"6290:3:89"},"nativeSrc":"6290:13:89","nodeType":"YulFunctionCall","src":"6290:13:89"}],"functionName":{"name":"and","nativeSrc":"6278:3:89","nodeType":"YulIdentifier","src":"6278:3:89"},"nativeSrc":"6278:26:89","nodeType":"YulFunctionCall","src":"6278:26:89"}],"functionName":{"name":"mstore","nativeSrc":"6266:6:89","nodeType":"YulIdentifier","src":"6266:6:89"},"nativeSrc":"6266:39:89","nodeType":"YulFunctionCall","src":"6266:39:89"},"nativeSrc":"6266:39:89","nodeType":"YulExpressionStatement","src":"6266:39:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6325:3:89","nodeType":"YulIdentifier","src":"6325:3:89"},{"kind":"number","nativeSrc":"6330:1:89","nodeType":"YulLiteral","src":"6330:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6321:3:89","nodeType":"YulIdentifier","src":"6321:3:89"},"nativeSrc":"6321:11:89","nodeType":"YulFunctionCall","src":"6321:11:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6342:2:89","nodeType":"YulLiteral","src":"6342:2:89","type":"","value":"96"},{"name":"value1","nativeSrc":"6346:6:89","nodeType":"YulIdentifier","src":"6346:6:89"}],"functionName":{"name":"shl","nativeSrc":"6338:3:89","nodeType":"YulIdentifier","src":"6338:3:89"},"nativeSrc":"6338:15:89","nodeType":"YulFunctionCall","src":"6338:15:89"},{"arguments":[{"kind":"number","nativeSrc":"6359:26:89","nodeType":"YulLiteral","src":"6359:26:89","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nativeSrc":"6355:3:89","nodeType":"YulIdentifier","src":"6355:3:89"},"nativeSrc":"6355:31:89","nodeType":"YulFunctionCall","src":"6355:31:89"}],"functionName":{"name":"and","nativeSrc":"6334:3:89","nodeType":"YulIdentifier","src":"6334:3:89"},"nativeSrc":"6334:53:89","nodeType":"YulFunctionCall","src":"6334:53:89"}],"functionName":{"name":"mstore","nativeSrc":"6314:6:89","nodeType":"YulIdentifier","src":"6314:6:89"},"nativeSrc":"6314:74:89","nodeType":"YulFunctionCall","src":"6314:74:89"},"nativeSrc":"6314:74:89","nodeType":"YulExpressionStatement","src":"6314:74:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6408:3:89","nodeType":"YulIdentifier","src":"6408:3:89"},{"kind":"number","nativeSrc":"6413:2:89","nodeType":"YulLiteral","src":"6413:2:89","type":"","value":"21"}],"functionName":{"name":"add","nativeSrc":"6404:3:89","nodeType":"YulIdentifier","src":"6404:3:89"},"nativeSrc":"6404:12:89","nodeType":"YulFunctionCall","src":"6404:12:89"},{"name":"value2","nativeSrc":"6418:6:89","nodeType":"YulIdentifier","src":"6418:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6397:6:89","nodeType":"YulIdentifier","src":"6397:6:89"},"nativeSrc":"6397:28:89","nodeType":"YulFunctionCall","src":"6397:28:89"},"nativeSrc":"6397:28:89","nodeType":"YulExpressionStatement","src":"6397:28:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6445:3:89","nodeType":"YulIdentifier","src":"6445:3:89"},{"kind":"number","nativeSrc":"6450:2:89","nodeType":"YulLiteral","src":"6450:2:89","type":"","value":"53"}],"functionName":{"name":"add","nativeSrc":"6441:3:89","nodeType":"YulIdentifier","src":"6441:3:89"},"nativeSrc":"6441:12:89","nodeType":"YulFunctionCall","src":"6441:12:89"},{"name":"value3","nativeSrc":"6455:6:89","nodeType":"YulIdentifier","src":"6455:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6434:6:89","nodeType":"YulIdentifier","src":"6434:6:89"},"nativeSrc":"6434:28:89","nodeType":"YulFunctionCall","src":"6434:28:89"},"nativeSrc":"6434:28:89","nodeType":"YulExpressionStatement","src":"6434:28:89"},{"nativeSrc":"6471:19:89","nodeType":"YulAssignment","src":"6471:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"6482:3:89","nodeType":"YulIdentifier","src":"6482:3:89"},{"kind":"number","nativeSrc":"6487:2:89","nodeType":"YulLiteral","src":"6487:2:89","type":"","value":"85"}],"functionName":{"name":"add","nativeSrc":"6478:3:89","nodeType":"YulIdentifier","src":"6478:3:89"},"nativeSrc":"6478:12:89","nodeType":"YulFunctionCall","src":"6478:12:89"},"variableNames":[{"name":"end","nativeSrc":"6471:3:89","nodeType":"YulIdentifier","src":"6471:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"6055:441:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6208:3:89","nodeType":"YulTypedName","src":"6208:3:89","type":""},{"name":"value3","nativeSrc":"6213:6:89","nodeType":"YulTypedName","src":"6213:6:89","type":""},{"name":"value2","nativeSrc":"6221:6:89","nodeType":"YulTypedName","src":"6221:6:89","type":""},{"name":"value1","nativeSrc":"6229:6:89","nodeType":"YulTypedName","src":"6229:6:89","type":""},{"name":"value0","nativeSrc":"6237:6:89","nodeType":"YulTypedName","src":"6237:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6248:3:89","nodeType":"YulTypedName","src":"6248:3:89","type":""}],"src":"6055:441:89"},{"body":{"nativeSrc":"6630:171:89","nodeType":"YulBlock","src":"6630:171:89","statements":[{"nativeSrc":"6640:26:89","nodeType":"YulAssignment","src":"6640:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6652:9:89","nodeType":"YulIdentifier","src":"6652:9:89"},{"kind":"number","nativeSrc":"6663:2:89","nodeType":"YulLiteral","src":"6663:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6648:3:89","nodeType":"YulIdentifier","src":"6648:3:89"},"nativeSrc":"6648:18:89","nodeType":"YulFunctionCall","src":"6648:18:89"},"variableNames":[{"name":"tail","nativeSrc":"6640:4:89","nodeType":"YulIdentifier","src":"6640:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6682:9:89","nodeType":"YulIdentifier","src":"6682:9:89"},{"arguments":[{"name":"value0","nativeSrc":"6697:6:89","nodeType":"YulIdentifier","src":"6697:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6713:3:89","nodeType":"YulLiteral","src":"6713:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"6718:1:89","nodeType":"YulLiteral","src":"6718:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6709:3:89","nodeType":"YulIdentifier","src":"6709:3:89"},"nativeSrc":"6709:11:89","nodeType":"YulFunctionCall","src":"6709:11:89"},{"kind":"number","nativeSrc":"6722:1:89","nodeType":"YulLiteral","src":"6722:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6705:3:89","nodeType":"YulIdentifier","src":"6705:3:89"},"nativeSrc":"6705:19:89","nodeType":"YulFunctionCall","src":"6705:19:89"}],"functionName":{"name":"and","nativeSrc":"6693:3:89","nodeType":"YulIdentifier","src":"6693:3:89"},"nativeSrc":"6693:32:89","nodeType":"YulFunctionCall","src":"6693:32:89"}],"functionName":{"name":"mstore","nativeSrc":"6675:6:89","nodeType":"YulIdentifier","src":"6675:6:89"},"nativeSrc":"6675:51:89","nodeType":"YulFunctionCall","src":"6675:51:89"},"nativeSrc":"6675:51:89","nodeType":"YulExpressionStatement","src":"6675:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6746:9:89","nodeType":"YulIdentifier","src":"6746:9:89"},{"kind":"number","nativeSrc":"6757:2:89","nodeType":"YulLiteral","src":"6757:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6742:3:89","nodeType":"YulIdentifier","src":"6742:3:89"},"nativeSrc":"6742:18:89","nodeType":"YulFunctionCall","src":"6742:18:89"},{"arguments":[{"name":"value1","nativeSrc":"6766:6:89","nodeType":"YulIdentifier","src":"6766:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6782:3:89","nodeType":"YulLiteral","src":"6782:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"6787:1:89","nodeType":"YulLiteral","src":"6787:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6778:3:89","nodeType":"YulIdentifier","src":"6778:3:89"},"nativeSrc":"6778:11:89","nodeType":"YulFunctionCall","src":"6778:11:89"},{"kind":"number","nativeSrc":"6791:1:89","nodeType":"YulLiteral","src":"6791:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6774:3:89","nodeType":"YulIdentifier","src":"6774:3:89"},"nativeSrc":"6774:19:89","nodeType":"YulFunctionCall","src":"6774:19:89"}],"functionName":{"name":"and","nativeSrc":"6762:3:89","nodeType":"YulIdentifier","src":"6762:3:89"},"nativeSrc":"6762:32:89","nodeType":"YulFunctionCall","src":"6762:32:89"}],"functionName":{"name":"mstore","nativeSrc":"6735:6:89","nodeType":"YulIdentifier","src":"6735:6:89"},"nativeSrc":"6735:60:89","nodeType":"YulFunctionCall","src":"6735:60:89"},"nativeSrc":"6735:60:89","nodeType":"YulExpressionStatement","src":"6735:60:89"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"6501:300:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6591:9:89","nodeType":"YulTypedName","src":"6591:9:89","type":""},{"name":"value1","nativeSrc":"6602:6:89","nodeType":"YulTypedName","src":"6602:6:89","type":""},{"name":"value0","nativeSrc":"6610:6:89","nodeType":"YulTypedName","src":"6610:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6621:4:89","nodeType":"YulTypedName","src":"6621:4:89","type":""}],"src":"6501:300:89"},{"body":{"nativeSrc":"6914:101:89","nodeType":"YulBlock","src":"6914:101:89","statements":[{"nativeSrc":"6924:26:89","nodeType":"YulAssignment","src":"6924:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6936:9:89","nodeType":"YulIdentifier","src":"6936:9:89"},{"kind":"number","nativeSrc":"6947:2:89","nodeType":"YulLiteral","src":"6947:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6932:3:89","nodeType":"YulIdentifier","src":"6932:3:89"},"nativeSrc":"6932:18:89","nodeType":"YulFunctionCall","src":"6932:18:89"},"variableNames":[{"name":"tail","nativeSrc":"6924:4:89","nodeType":"YulIdentifier","src":"6924:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6966:9:89","nodeType":"YulIdentifier","src":"6966:9:89"},{"arguments":[{"name":"value0","nativeSrc":"6981:6:89","nodeType":"YulIdentifier","src":"6981:6:89"},{"kind":"number","nativeSrc":"6989:18:89","nodeType":"YulLiteral","src":"6989:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6977:3:89","nodeType":"YulIdentifier","src":"6977:3:89"},"nativeSrc":"6977:31:89","nodeType":"YulFunctionCall","src":"6977:31:89"}],"functionName":{"name":"mstore","nativeSrc":"6959:6:89","nodeType":"YulIdentifier","src":"6959:6:89"},"nativeSrc":"6959:50:89","nodeType":"YulFunctionCall","src":"6959:50:89"},"nativeSrc":"6959:50:89","nodeType":"YulExpressionStatement","src":"6959:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"6806:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6883:9:89","nodeType":"YulTypedName","src":"6883:9:89","type":""},{"name":"value0","nativeSrc":"6894:6:89","nodeType":"YulTypedName","src":"6894:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6905:4:89","nodeType":"YulTypedName","src":"6905:4:89","type":""}],"src":"6806:209:89"},{"body":{"nativeSrc":"7119:101:89","nodeType":"YulBlock","src":"7119:101:89","statements":[{"nativeSrc":"7129:26:89","nodeType":"YulAssignment","src":"7129:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7141:9:89","nodeType":"YulIdentifier","src":"7141:9:89"},{"kind":"number","nativeSrc":"7152:2:89","nodeType":"YulLiteral","src":"7152:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7137:3:89","nodeType":"YulIdentifier","src":"7137:3:89"},"nativeSrc":"7137:18:89","nodeType":"YulFunctionCall","src":"7137:18:89"},"variableNames":[{"name":"tail","nativeSrc":"7129:4:89","nodeType":"YulIdentifier","src":"7129:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7171:9:89","nodeType":"YulIdentifier","src":"7171:9:89"},{"arguments":[{"name":"value0","nativeSrc":"7186:6:89","nodeType":"YulIdentifier","src":"7186:6:89"},{"kind":"number","nativeSrc":"7194:18:89","nodeType":"YulLiteral","src":"7194:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7182:3:89","nodeType":"YulIdentifier","src":"7182:3:89"},"nativeSrc":"7182:31:89","nodeType":"YulFunctionCall","src":"7182:31:89"}],"functionName":{"name":"mstore","nativeSrc":"7164:6:89","nodeType":"YulIdentifier","src":"7164:6:89"},"nativeSrc":"7164:50:89","nodeType":"YulFunctionCall","src":"7164:50:89"},"nativeSrc":"7164:50:89","nodeType":"YulExpressionStatement","src":"7164:50:89"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"7020:200:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7088:9:89","nodeType":"YulTypedName","src":"7088:9:89","type":""},{"name":"value0","nativeSrc":"7099:6:89","nodeType":"YulTypedName","src":"7099:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7110:4:89","nodeType":"YulTypedName","src":"7110:4:89","type":""}],"src":"7020:200:89"},{"body":{"nativeSrc":"7306:103:89","nodeType":"YulBlock","src":"7306:103:89","statements":[{"body":{"nativeSrc":"7352:16:89","nodeType":"YulBlock","src":"7352:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7361:1:89","nodeType":"YulLiteral","src":"7361:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7364:1:89","nodeType":"YulLiteral","src":"7364:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7354:6:89","nodeType":"YulIdentifier","src":"7354:6:89"},"nativeSrc":"7354:12:89","nodeType":"YulFunctionCall","src":"7354:12:89"},"nativeSrc":"7354:12:89","nodeType":"YulExpressionStatement","src":"7354:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7327:7:89","nodeType":"YulIdentifier","src":"7327:7:89"},{"name":"headStart","nativeSrc":"7336:9:89","nodeType":"YulIdentifier","src":"7336:9:89"}],"functionName":{"name":"sub","nativeSrc":"7323:3:89","nodeType":"YulIdentifier","src":"7323:3:89"},"nativeSrc":"7323:23:89","nodeType":"YulFunctionCall","src":"7323:23:89"},{"kind":"number","nativeSrc":"7348:2:89","nodeType":"YulLiteral","src":"7348:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7319:3:89","nodeType":"YulIdentifier","src":"7319:3:89"},"nativeSrc":"7319:32:89","nodeType":"YulFunctionCall","src":"7319:32:89"},"nativeSrc":"7316:52:89","nodeType":"YulIf","src":"7316:52:89"},{"nativeSrc":"7377:26:89","nodeType":"YulAssignment","src":"7377:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7393:9:89","nodeType":"YulIdentifier","src":"7393:9:89"}],"functionName":{"name":"mload","nativeSrc":"7387:5:89","nodeType":"YulIdentifier","src":"7387:5:89"},"nativeSrc":"7387:16:89","nodeType":"YulFunctionCall","src":"7387:16:89"},"variableNames":[{"name":"value0","nativeSrc":"7377:6:89","nodeType":"YulIdentifier","src":"7377:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"7225:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7272:9:89","nodeType":"YulTypedName","src":"7272:9:89","type":""},{"name":"dataEnd","nativeSrc":"7283:7:89","nodeType":"YulTypedName","src":"7283:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7295:6:89","nodeType":"YulTypedName","src":"7295:6:89","type":""}],"src":"7225:184:89"},{"body":{"nativeSrc":"7551:150:89","nodeType":"YulBlock","src":"7551:150:89","statements":[{"nativeSrc":"7561:27:89","nodeType":"YulVariableDeclaration","src":"7561:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"7581:6:89","nodeType":"YulIdentifier","src":"7581:6:89"}],"functionName":{"name":"mload","nativeSrc":"7575:5:89","nodeType":"YulIdentifier","src":"7575:5:89"},"nativeSrc":"7575:13:89","nodeType":"YulFunctionCall","src":"7575:13:89"},"variables":[{"name":"length","nativeSrc":"7565:6:89","nodeType":"YulTypedName","src":"7565:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"7636:6:89","nodeType":"YulIdentifier","src":"7636:6:89"},{"kind":"number","nativeSrc":"7644:4:89","nodeType":"YulLiteral","src":"7644:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7632:3:89","nodeType":"YulIdentifier","src":"7632:3:89"},"nativeSrc":"7632:17:89","nodeType":"YulFunctionCall","src":"7632:17:89"},{"name":"pos","nativeSrc":"7651:3:89","nodeType":"YulIdentifier","src":"7651:3:89"},{"name":"length","nativeSrc":"7656:6:89","nodeType":"YulIdentifier","src":"7656:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7597:34:89","nodeType":"YulIdentifier","src":"7597:34:89"},"nativeSrc":"7597:66:89","nodeType":"YulFunctionCall","src":"7597:66:89"},"nativeSrc":"7597:66:89","nodeType":"YulExpressionStatement","src":"7597:66:89"},{"nativeSrc":"7672:23:89","nodeType":"YulAssignment","src":"7672:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"7683:3:89","nodeType":"YulIdentifier","src":"7683:3:89"},{"name":"length","nativeSrc":"7688:6:89","nodeType":"YulIdentifier","src":"7688:6:89"}],"functionName":{"name":"add","nativeSrc":"7679:3:89","nodeType":"YulIdentifier","src":"7679:3:89"},"nativeSrc":"7679:16:89","nodeType":"YulFunctionCall","src":"7679:16:89"},"variableNames":[{"name":"end","nativeSrc":"7672:3:89","nodeType":"YulIdentifier","src":"7672:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7414:287:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7527:3:89","nodeType":"YulTypedName","src":"7527:3:89","type":""},{"name":"value0","nativeSrc":"7532:6:89","nodeType":"YulTypedName","src":"7532:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7543:3:89","nodeType":"YulTypedName","src":"7543:3:89","type":""}],"src":"7414:287:89"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let result := and(add(length, 31), not(31))\n        size := add(result, 0x20)\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value1 := abi_decode_available_length_bytes(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_UpgradeableBeacon_$3888__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_bytes(add(offset, 0x20), calldataload(offset), end)\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), iszero(iszero(value1)))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n        mstore(add(pos, 20), value1)\n        end := add(pos, 52)\n    }\n    function abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, and(value0, shl(248, 255)))\n        mstore(add(pos, 1), and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n        mstore(add(pos, 21), value2)\n        mstore(add(pos, 53), value3)\n        end := add(pos, 85)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"968":[{"length":32,"start":2738},{"length":32,"start":2779},{"length":32,"start":3105}]},"linkReferences":{},"object":"6080604052600436106100f35760003560e01c80638da5cb5b1161008a578063dbe6e7f911610059578063dbe6e7f9146102bf578063e30c3978146102df578063f2fde38b146102f4578063fa81f7d91461031457600080fd5b80638da5cb5b1461020d578063a66c4f5014610222578063ad3cb1cc14610261578063c4d66de81461029f57600080fd5b806359659e90116100c657806359659e90146101a357806370d367c3146101c3578063715018a6146101e357806379ba5097146101f857600080fd5b806331f44900146100f8578063391cb3581461010f5780634f1ef2861461016d57806352d1902d14610180575b600080fd5b34801561010457600080fd5b5061010d610334565b005b34801561011b57600080fd5b5061015061012a366004611116565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61010d61017b3660046111d0565b610375565b34801561018c57600080fd5b50610195610394565b604051908152602001610164565b3480156101af57600080fd5b50600054610150906001600160a01b031681565b3480156101cf57600080fd5b506101506101de366004611252565b6103b1565b3480156101ef57600080fd5b5061010d61058b565b34801561020457600080fd5b5061010d61059d565b34801561021957600080fd5b506101506105ea565b34801561022e57600080fd5b5061024261023d3660046112a0565b61061f565b604080516001600160a01b039093168352901515602083015201610164565b34801561026d57600080fd5b50610292604051806040016040528060058152602001640352e302e360dc1b81525081565b604051610164919061132d565b3480156102ab57600080fd5b5061010d6102ba366004611340565b6106ed565b3480156102cb57600080fd5b506101506102da366004611252565b61085d565b3480156102eb57600080fd5b506101506108f2565b34801561030057600080fd5b5061010d61030f366004611340565b61091b565b34801561032057600080fd5b5061010d61032f366004611340565b6109a0565b600080516020611e018339815191525467ffffffffffffffff161561036b5760405162dc149f60e41b815260040160405180910390fd5b610373610a0a565b565b61037d610aa7565b61038682610b4c565b6103908282610b54565b5050565b600061039e610c16565b50600080516020611de183398151915290565b600080836040516020016103c5919061135b565b60408051601f1981840301815291815281516020928301206001600160a01b0386811660009081526001855283812083825290945291909220549192501615610437576001600160a01b0380841660009081526001602090815260408083209483529390529190912054169050610585565b600060405180602001610449906110e0565b601f1982820381018352601f9091011660408190526000546001600160a01b038781166024840152169063189acdbd60e31b9060440160408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031990951694909417909352516104be939201611377565b60408051601f19818403018152908290526104dc929160200161139b565b60408051601f19818403018152908290526001600160601b0319606087901b16602083015260348201849052915060009060540160408051808303601f190181529082905280516020918201208451858301206001600160f81b0319928401929092526001600160601b03193060601b16602184015260358301819052605583019190915291506075016040516020818303038152906040528051906020012060001c93505050505b92915050565b610593610c5f565b6103736000610c91565b33806105a76108f2565b6001600160a01b0316146105de5760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b6105e781610c91565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b600080600083604051602001610635919061135b565b60408051601f198184030181529181528151602092830120336000908152600184528281208282529093529120549091506001600160a01b0316156106a257336000908152600160209081526040808320938352929052908120546001600160a01b031694909350915050565b60006106ae8533610cc9565b33600090815260016020818152604080842096845295905293902080546001600160a01b0319166001600160a01b038316179055959194509092505050565b600080516020611e018339815191528054600160401b810460ff16159067ffffffffffffffff166000811580156107215750825b905060008267ffffffffffffffff16600114801561073e5750303b155b90508115801561074c575080155b1561076a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561079457845460ff60401b1916600160401b1785555b61079c610e15565b6107a533610e1d565b6107ad610e15565b85306040516107bb906110ed565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156107ee573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055831561085557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60008083604051602001610871919061135b565b60408051601f1981840301815291815281516020928301206001600160a01b038681166000908152600185528381208382529094529190922054919250166108c5576108bd84846103b1565b915050610585565b6001600160a01b039283166000908152600160209081526040808320938352929052205490911692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0061060f565b610923610c5f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556109676105ea565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6109a8610c5f565b600054604051631b2ce7f360e11b81526001600160a01b03838116600483015290911690633659cfe690602401600060405180830381600087803b1580156109ef57600080fd5b505af1158015610a03573d6000803e3d6000fd5b5050505050565b600080516020611e018339815191528054600160401b900460ff1615610a435760405163f92ee8a960e01b815260040160405180910390fd5b805467ffffffffffffffff908116146105e757805467ffffffffffffffff191667ffffffffffffffff90811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610b2e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b22600080516020611de1833981519152546001600160a01b031690565b6001600160a01b031614155b156103735760405163703e46dd60e11b815260040160405180910390fd5b6105e7610c5f565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610bae575060408051601f3d908101601f19168201909252610bab918101906113ca565b60015b610bd657604051634c9c8ce360e01b81526001600160a01b03831660048201526024016105d5565b600080516020611de18339815191528114610c0757604051632a87526960e21b8152600481018290526024016105d5565b610c118383610e2e565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103735760405163703e46dd60e11b815260040160405180910390fd5b33610c686105ea565b6001600160a01b0316146103735760405163118cdaa760e01b81523360048201526024016105d5565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561039082610e84565b60008083604051602001610cdd919061135b565b60405160208183030381529060405280519060200120905060008382604051602001610d2292919060609290921b6001600160601b0319168252601482015260340190565b60408051601f198184030181528282528051602091820120600080546001600160a01b038a8116602480890191909152865180890390910181526044909701865293860180516001600160e01b031663189acdbd60e31b1790529351919550938593929092169190610d93906110e0565b610d9e929190611377565b8190604051809103906000f5905080158015610dbe573d6000803e3d6000fd5b509050846001600160a01b0316816001600160a01b03167fad8a41b3cf9ccd262272a1aa8601a0191fac66c39f2b13491a904c1055bb97cd88604051610e04919061132d565b60405180910390a395945050505050565b610373610ef5565b610e25610ef5565b6105e781610f2c565b610e3782610f5e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610e7c57610c118282610fc3565b610390611039565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600080516020611e0183398151915254600160401b900460ff1661037357604051631afcd79f60e31b815260040160405180910390fd5b610f34610ef5565b6001600160a01b0381166105de57604051631e4fbdf760e01b8152600060048201526024016105d5565b806001600160a01b03163b600003610f9457604051634c9c8ce360e01b81526001600160a01b03821660048201526024016105d5565b600080516020611de183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610fe0919061135b565b600060405180830381855af49150503d806000811461101b576040519150601f19603f3d011682016040523d82523d6000602084013e611020565b606091505b5091509150611030858383611058565b95945050505050565b34156103735760405163b398979f60e01b815260040160405180910390fd5b60608261106d57611068826110b7565b6110b0565b815115801561108457506001600160a01b0384163b155b156110ad57604051639996b31560e01b81526001600160a01b03851660048201526024016105d5565b50805b9392505050565b8051156110c75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105c5806113e483390190565b610438806119a983390190565b80356001600160a01b038116811461111157600080fd5b919050565b6000806040838503121561112957600080fd5b611132836110fa565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008067ffffffffffffffff84111561117157611171611140565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156111a0576111a0611140565b6040528381529050808284018510156111b857600080fd5b83836020830137600060208583010152509392505050565b600080604083850312156111e357600080fd5b6111ec836110fa565b9150602083013567ffffffffffffffff81111561120857600080fd5b8301601f8101851361121957600080fd5b61122885823560208401611156565b9150509250929050565b600082601f83011261124357600080fd5b6110b083833560208501611156565b6000806040838503121561126557600080fd5b823567ffffffffffffffff81111561127c57600080fd5b61128885828601611232565b925050611297602084016110fa565b90509250929050565b6000602082840312156112b257600080fd5b813567ffffffffffffffff8111156112c957600080fd5b6112d584828501611232565b949350505050565b60005b838110156112f85781810151838201526020016112e0565b50506000910152565b600081518084526113198160208601602086016112dd565b601f01601f19169290920160200192915050565b6020815260006110b06020830184611301565b60006020828403121561135257600080fd5b6110b0826110fa565b6000825161136d8184602087016112dd565b9190910192915050565b6001600160a01b03831681526040602082018190526000906112d590830184611301565b600083516113ad8184602088016112dd565b8351908301906113c18183602088016112dd565b01949350505050565b6000602082840312156113dc57600080fd5b505191905056fe60a06040526040516105c53803806105c583398101604081905261002291610387565b61002c828261003e565b506001600160a01b0316608052610484565b610047826100fe565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a28051156100f2576100ed826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e7919061044d565b82610211565b505050565b6100fa610288565b5050565b806001600160a01b03163b60000361013957604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b81529051600092841691635c60da1b9160048083019260209291908290030181865afa1580156101b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d9919061044d565b9050806001600160a01b03163b6000036100fa57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610130565b6060600080846001600160a01b03168460405161022e9190610468565b600060405180830381855af49150503d8060008114610269576040519150601f19603f3d011682016040523d82523d6000602084013e61026e565b606091505b50909250905061027f8583836102a9565b95945050505050565b34156102a75760405163b398979f60e01b815260040160405180910390fd5b565b6060826102be576102b982610308565b610301565b81511580156102d557506001600160a01b0384163b155b156102fe57604051639996b31560e01b81526001600160a01b0385166004820152602401610130565b50805b9392505050565b8051156103185780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80516001600160a01b038116811461034857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561037e578181015183820152602001610366565b50506000910152565b6000806040838503121561039a57600080fd5b6103a383610331565b60208401519092506001600160401b038111156103bf57600080fd5b8301601f810185136103d057600080fd5b80516001600160401b038111156103e9576103e961034d565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104175761041761034d565b60405281815282820160200187101561042f57600080fd5b610440826020830160208601610363565b8093505050509250929050565b60006020828403121561045f57600080fd5b61030182610331565b6000825161047a818460208701610363565b9190910192915050565b60805161012761049e6000396000601e01526101276000f3fe6080604052600a600c565b005b60186014601a565b60a0565b565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156079573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190609b919060c3565b905090565b3660008037600080366000845af43d6000803e80801560be573d6000f35b3d6000fd5b60006020828403121560d457600080fd5b81516001600160a01b038116811460ea57600080fd5b939250505056fea2646970667358221220f0959ca51a58dfa33f8868f1214c44e6abd5c2555618646d963c304a98aa25ac64736f6c634300081c0033608060405234801561001057600080fd5b5060405161043838038061043883398101604081905261002f91610165565b806001600160a01b03811661005f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61006881610079565b50610072826100c9565b5050610198565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b6000036100ff5760405163211eb15960e21b81526001600160a01b0382166004820152602401610056565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b80516001600160a01b038116811461016057600080fd5b919050565b6000806040838503121561017857600080fd5b61018183610149565b915061018f60208401610149565b90509250929050565b610291806101a76000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a36600461022b565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f6100da565b6000546001600160a01b031661007e565b61006f6100c136600461022b565b6100ee565b6100ce61012e565b6100d78161015b565b50565b6100e261012e565b6100ec60006101db565b565b6100f661012e565b6001600160a01b03811661012557604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100d7816101db565b6000546001600160a01b031633146100ec5760405163118cdaa760e01b815233600482015260240161011c565b806001600160a01b03163b6000036101915760405163211eb15960e21b81526001600160a01b038216600482015260240161011c565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561023d57600080fd5b81356001600160a01b038116811461025457600080fd5b939250505056fea26469706673582212207f9e29c272144c167454a78a6120d9d066cbed12b713983129ffb88bb0f564af64736f6c634300081c0033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122067d2d7e0cf9895a9f21a74a6a2856271b17fa1f3949ac0846ed37ba3511eedd264736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF3 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDBE6E7F9 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xDBE6E7F9 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0xFA81F7D9 EQ PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA66C4F50 EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x29F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x59659E90 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x59659E90 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x70D367C3 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31F44900 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0x391CB358 EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x16D JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x180 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x12A CALLDATASIZE PUSH1 0x4 PUSH2 0x1116 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10D PUSH2 0x17B CALLDATASIZE PUSH1 0x4 PUSH2 0x11D0 JUMP JUMPDEST PUSH2 0x375 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x164 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x150 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x1DE CALLDATASIZE PUSH1 0x4 PUSH2 0x1252 JUMP JUMPDEST PUSH2 0x3B1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x58B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x59D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x5EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH2 0x23D CALLDATASIZE PUSH1 0x4 PUSH2 0x12A0 JUMP JUMPDEST PUSH2 0x61F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND DUP4 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH2 0x164 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x164 SWAP2 SWAP1 PUSH2 0x132D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x2BA CALLDATASIZE PUSH1 0x4 PUSH2 0x1340 JUMP JUMPDEST PUSH2 0x6ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x2DA CALLDATASIZE PUSH1 0x4 PUSH2 0x1252 JUMP JUMPDEST PUSH2 0x85D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH2 0x8F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x1340 JUMP JUMPDEST PUSH2 0x91B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH2 0x32F CALLDATASIZE PUSH1 0x4 PUSH2 0x1340 JUMP JUMPDEST PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1E01 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x36B JUMPI PUSH1 0x40 MLOAD PUSH3 0xDC149F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x373 PUSH2 0xA0A JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x37D PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x386 DUP3 PUSH2 0xB4C JUMP JUMPDEST PUSH2 0x390 DUP3 DUP3 PUSH2 0xB54 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39E PUSH2 0xC16 JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP6 MSTORE DUP4 DUP2 KECCAK256 DUP4 DUP3 MSTORE SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP3 KECCAK256 SLOAD SWAP2 SWAP3 POP AND ISZERO PUSH2 0x437 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP4 MSTORE SWAP4 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SLOAD AND SWAP1 POP PUSH2 0x585 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x449 SWAP1 PUSH2 0x10E0 JUMP JUMPDEST PUSH1 0x1F NOT DUP3 DUP3 SUB DUP2 ADD DUP4 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD AND PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x24 DUP5 ADD MSTORE AND SWAP1 PUSH4 0x189ACDBD PUSH1 0xE3 SHL SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 MSTORE MLOAD PUSH2 0x4BE SWAP4 SWAP3 ADD PUSH2 0x1377 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x4DC SWAP3 SWAP2 PUSH1 0x20 ADD PUSH2 0x139B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 DUP8 SWAP1 SHL AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x34 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP5 MLOAD DUP6 DUP4 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x21 DUP5 ADD MSTORE PUSH1 0x35 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x55 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 POP PUSH1 0x75 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x593 PUSH2 0xC5F JUMP JUMPDEST PUSH2 0x373 PUSH1 0x0 PUSH2 0xC91 JUMP JUMPDEST CALLER DUP1 PUSH2 0x5A7 PUSH2 0x8F2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5DE JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E7 DUP2 PUSH2 0xC91 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x635 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP5 MSTORE DUP3 DUP2 KECCAK256 DUP3 DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x6A2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AE DUP6 CALLER PUSH2 0xCC9 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP7 DUP5 MSTORE SWAP6 SWAP1 MSTORE SWAP4 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE SWAP6 SWAP2 SWAP5 POP SWAP1 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1E01 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x721 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x73E JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x74C JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x76A JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x794 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x79C PUSH2 0xE15 JUMP JUMPDEST PUSH2 0x7A5 CALLER PUSH2 0xE1D JUMP JUMPDEST PUSH2 0x7AD PUSH2 0xE15 JUMP JUMPDEST DUP6 ADDRESS PUSH1 0x40 MLOAD PUSH2 0x7BB SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x7EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x855 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x871 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP6 MSTORE DUP4 DUP2 KECCAK256 DUP4 DUP3 MSTORE SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP3 KECCAK256 SLOAD SWAP2 SWAP3 POP AND PUSH2 0x8C5 JUMPI PUSH2 0x8BD DUP5 DUP5 PUSH2 0x3B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x585 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 PUSH2 0x60F JUMP JUMPDEST PUSH2 0x923 PUSH2 0xC5F JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR DUP3 SSTORE PUSH2 0x967 PUSH2 0x5EA 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 POP JUMP JUMPDEST PUSH2 0x9A8 PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B2CE7F3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA03 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1E01 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xA43 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP2 AND EQ PUSH2 0x5E7 JUMPI DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0xB2E JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB22 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E7 PUSH2 0xC5F JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xBAE JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xBAB SWAP2 DUP2 ADD SWAP1 PUSH2 0x13CA JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xBD6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0xC07 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST PUSH2 0xC11 DUP4 DUP4 PUSH2 0xE2E JUMP JUMPDEST POP POP POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH2 0xC68 PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH2 0x390 DUP3 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x135B 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 PUSH1 0x0 DUP4 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD22 SWAP3 SWAP2 SWAP1 PUSH1 0x60 SWAP3 SWAP1 SWAP3 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND DUP3 MSTORE PUSH1 0x14 DUP3 ADD MSTORE PUSH1 0x34 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP1 DUP10 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 MLOAD DUP1 DUP10 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP8 ADD DUP7 MSTORE SWAP4 DUP7 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x189ACDBD PUSH1 0xE3 SHL OR SWAP1 MSTORE SWAP4 MLOAD SWAP2 SWAP6 POP SWAP4 DUP6 SWAP4 SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0xD93 SWAP1 PUSH2 0x10E0 JUMP JUMPDEST PUSH2 0xD9E SWAP3 SWAP2 SWAP1 PUSH2 0x1377 JUMP JUMPDEST DUP2 SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE2 SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0xDBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xAD8A41B3CF9CCD262272A1AA8601A0191FAC66C39F2B13491A904C1055BB97CD DUP9 PUSH1 0x40 MLOAD PUSH2 0xE04 SWAP2 SWAP1 PUSH2 0x132D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x373 PUSH2 0xEF5 JUMP JUMPDEST PUSH2 0xE25 PUSH2 0xEF5 JUMP JUMPDEST PUSH2 0x5E7 DUP2 PUSH2 0xF2C JUMP JUMPDEST PUSH2 0xE37 DUP3 PUSH2 0xF5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0xE7C JUMPI PUSH2 0xC11 DUP3 DUP3 PUSH2 0xFC3 JUMP JUMPDEST PUSH2 0x390 PUSH2 0x1039 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1E01 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF34 PUSH2 0xEF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5DE JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xF94 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1DE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0xFE0 SWAP2 SWAP1 PUSH2 0x135B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x101B 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 0x1020 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1030 DUP6 DUP4 DUP4 PUSH2 0x1058 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x373 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x106D JUMPI PUSH2 0x1068 DUP3 PUSH2 0x10B7 JUMP JUMPDEST PUSH2 0x10B0 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x1084 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x10AD JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5D5 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x10C7 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C5 DUP1 PUSH2 0x13E4 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x438 DUP1 PUSH2 0x19A9 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1111 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1129 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1132 DUP4 PUSH2 0x10FA JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 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 0x0 DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x1171 JUMPI PUSH2 0x1171 PUSH2 0x1140 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11A0 JUMPI PUSH2 0x11A0 PUSH2 0x1140 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x11B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11EC DUP4 PUSH2 0x10FA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x1219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1228 DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1156 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10B0 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1288 DUP6 DUP3 DUP7 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x1297 PUSH1 0x20 DUP5 ADD PUSH2 0x10FA JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x12C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12D5 DUP5 DUP3 DUP6 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12F8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x12E0 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1319 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x12DD JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x10B0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10B0 DUP3 PUSH2 0x10FA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x136D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x12DD JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x12D5 SWAP1 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x13AD DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x12DD JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x13C1 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x12DD JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x5C5 CODESIZE SUB DUP1 PUSH2 0x5C5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x387 JUMP JUMPDEST PUSH2 0x2C DUP3 DUP3 PUSH2 0x3E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x484 JUMP JUMPDEST PUSH2 0x47 DUP3 PUSH2 0xFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0x1CF3B03A6CF19FA2BABA4DF148E9DCABEDEA7F8A5C07840E207E5C089BE95D3E SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0xF2 JUMPI PUSH2 0xED DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC3 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 0xE7 SWAP2 SWAP1 PUSH2 0x44D JUMP JUMPDEST DUP3 PUSH2 0x211 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xFA PUSH2 0x288 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x139 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1933B43B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH32 0xA3F0AD74E5423AEBFD80D3EF4346578335A9A72AEAEE59FF6CB3582B35133D50 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x5C60DA1B PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP5 AND SWAP2 PUSH4 0x5C60DA1B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B5 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 0x1D9 SWAP2 SWAP1 PUSH2 0x44D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xFA JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x130 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0x468 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x269 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 0x26E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x27F DUP6 DUP4 DUP4 PUSH2 0x2A9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x2A7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x2BE JUMPI PUSH2 0x2B9 DUP3 PUSH2 0x308 JUMP JUMPDEST PUSH2 0x301 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2D5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x2FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x130 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x318 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x37E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x366 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3A3 DUP4 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E9 JUMPI PUSH2 0x3E9 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x417 JUMPI PUSH2 0x417 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x440 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x363 JUMP JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x301 DUP3 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x47A DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x363 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x127 PUSH2 0x49E PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH1 0x1E ADD MSTORE PUSH2 0x127 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0xA0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5C60DA1B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH1 0x79 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 PUSH1 0x9B SWAP2 SWAP1 PUSH1 0xC3 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE SWAP6 SWAP13 0xA5 BYTE PC 0xDF LOG3 EXTCODEHASH DUP9 PUSH9 0xF1214C44E6ABD5C255 JUMP XOR PUSH5 0x6D963C304A SWAP9 0xAA 0x25 0xAC PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x438 CODESIZE SUB DUP1 PUSH2 0x438 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5F JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x68 DUP2 PUSH2 0x79 JUMP JUMPDEST POP PUSH2 0x72 DUP3 PUSH2 0xC9 JUMP JUMPDEST POP POP PUSH2 0x198 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xFF JUMPI PUSH1 0x40 MLOAD PUSH4 0x211EB159 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x56 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x181 DUP4 PUSH2 0x149 JUMP JUMPDEST SWAP2 POP PUSH2 0x18F PUSH1 0x20 DUP5 ADD PUSH2 0x149 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x291 DUP1 PUSH2 0x1A7 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 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x9A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x22B JUMP JUMPDEST PUSH2 0xC6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6F PUSH2 0xDA JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7E JUMP JUMPDEST PUSH2 0x6F PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B JUMP JUMPDEST PUSH2 0xEE JUMP JUMPDEST PUSH2 0xCE PUSH2 0x12E JUMP JUMPDEST PUSH2 0xD7 DUP2 PUSH2 0x15B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x12E JUMP JUMPDEST PUSH2 0xEC PUSH1 0x0 PUSH2 0x1DB JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xF6 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x125 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD7 DUP2 PUSH2 0x1DB JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xEC JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x11C JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x191 JUMPI PUSH1 0x40 MLOAD PUSH4 0x211EB159 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x11C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x9E29C272144C167454A78A6120D9D066CBED12B713983129FFB88BB0F564AF64 PUSH20 0x6F6C634300081C0033360894A13BA1A3210667C8 0x28 BLOBHASH 0x2D 0xB9 DUP14 0xCA RETURNDATACOPY KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCF0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0xD2D7E0CF9895A9F2 BYTE PUSH21 0xA6A2856271B17FA1F3949AC0846ED37BA3511EEDD2 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"627:3307:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:175:53;;;;;;;;;;;;;:::i;:::-;;766:96:75;;;;;;;;;;-1:-1:-1;766:96:75;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;766:96:75;;;;;;-1:-1:-1;;;;;615:32:89;;;597:51;;585:2;570:18;766:96:75;;;;;;;;4161:214:4;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;:::-;;;2185:25:89;;;2173:2;2158:18;3708:134:4;2039:177:89;729:31:75;;;;;;;;;;-1:-1:-1;729:31:75;;;;-1:-1:-1;;;;;729:31:75;;;2239:993;;;;;;;;;;-1:-1:-1;2239:993:75;;;;;:::i;:::-;;:::i;3155:101:2:-;;;;;;;;;;;;;:::i;3257:229:1:-;;;;;;;;;;;;;:::i;2441:144:2:-;;;;;;;;;;;;;:::i;1367:465:75:-;;;;;;;;;;-1:-1:-1;1367:465:75;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;3595:32:89;;;3577:51;;3671:14;;3664:22;3659:2;3644:18;;3637:50;3550:18;1367:465:75;3409:284:89;1819:58:4;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:4;;;;;;;;;;;;:::i;985:258:75:-;;;;;;;;;;-1:-1:-1;985:258:75;;;;;:::i;:::-;;:::i;1838:395::-;;;;;;;;;;-1:-1:-1;1838:395:75;;;;;:::i;:::-;;:::i;2038:168:1:-;;;;;;;;;;;;;:::i;2524:247::-;;;;;;;;;;-1:-1:-1;2524:247:1;;;;;:::i;:::-;;:::i;3817:115:75:-;;;;;;;;;;-1:-1:-1;3817:115:75;;;;;:::i;:::-;;:::i;378:175:53:-;-1:-1:-1;;;;;;;;;;;8325:39:3;;;432:29:53;428:87;;484:20;;-1:-1:-1;;;484:20:53;;;;;;;;;;;428:87;524:22;:20;:22::i;:::-;378:175::o;4161:214:4:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;3708:134::-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:4;:::o;2239:993:75:-;2364:7;2383:10;2423:9;2406:27;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2406:27:75;;;;;;;;;2396:38;;2406:27;2396:38;;;;-1:-1:-1;;;;;2448:26:75;;;2490:1;2448:26;;;:13;:26;;;;;:30;;;;;;;;;;;2396:38;;-1:-1:-1;2448:30:75;:44;2444:112;;-1:-1:-1;;;;;2515:26:75;;;;;;;:13;:26;;;;;;;;:30;;;;;;;;;;;;;-1:-1:-1;2508:37:75;;2444:112;2649:21;2703:30;;;;;;;;:::i;:::-;-1:-1:-1;;2703:30:75;;;;;;;;;;;;;;;;2783:6;;-1:-1:-1;;;;;615:32:89;;;2808:130:75;;;597:51:89;2783:6:75;;-1:-1:-1;;;2852:35:75;570:18:89;;2808:130:75;;;-1:-1:-1;;2808:130:75;;;;;;;;;;;;;;;-1:-1:-1;;;;;2808:130:75;-1:-1:-1;;;;;;2808:130:75;;;;;;;;;;2747:205;;;;;;:::i;:::-;;;;-1:-1:-1;;2747:205:75;;;;;;;;;;2673:289;;;2747:205;2673:289;;:::i;:::-;;;;-1:-1:-1;;2673:289:75;;;;;;;;;;-1:-1:-1;;;;;;5933:2:89;5929:15;;;5925:53;2673:289:75;3006:33;;5913:66:89;5995:12;;;5988:28;;;2673:289:75;-1:-1:-1;2981:12:75;;6032::89;;3006:33:75;;;;;;-1:-1:-1;;3006:33:75;;;;;;;2996:44;;3006:33;2996:44;;;;3192:19;;;;;;-1:-1:-1;;;;;;3091:130:75;;;6266:39:89;;;;-1:-1:-1;;;;;;3155:4:75;6342:2:89;6338:15;6334:53;6321:11;;;6314:74;6404:12;;;6397:28;;;6441:12;;;6434:28;;;;2996:44:75;-1:-1:-1;6478:12:89;;3091:130:75;;;;;;;;;;;;3081:141;;;;;;3073:150;;3050:175;;;;;2239:993;;;;;:::o;3155:101:2:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;3257:229:1:-:0;966:10:7;;3352:14:1;:12;:14::i;:::-;-1:-1:-1;;;;;3352:24:1;;3348:96;;3399:34;;-1:-1:-1;;;3399:34:1;;-1:-1:-1;;;;;615:32:89;;3399:34:1;;;597:51:89;570:18;;3399:34:1;;;;;;;;3348:96;3453:26;3472:6;3453:18;:26::i;:::-;3299:187;3257:229::o;2441:144:2:-;2487:7;;1313:22;2533:20;2570:8;-1:-1:-1;;;;;2570:8:2;;2441:144;-1:-1:-1;;2441:144:2:o;1367:465:75:-;1457:7;1466:17;1495:10;1535:9;1518:27;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1518:27:75;;;;;;;;;1508:38;;1518:27;1508:38;;;;1574:10;1601:1;1560:25;;;:13;:25;;;;;:29;;;;;;;;;1508:38;;-1:-1:-1;;;;;;1560:29:75;:43;1556:119;;1641:10;1627:25;;;;:13;:25;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;;;1627:29:75;;:25;;-1:-1:-1;1367:465:75;-1:-1:-1;;1367:465:75:o;1556:119::-;1684:15;1702:42;1722:9;1733:10;1702:19;:42::i;:::-;1768:10;1754:25;;;;:13;:25;;;;;;;;:29;;;;;;;;;:39;;-1:-1:-1;;;;;;1754:39:75;-1:-1:-1;;;;;1754:39:75;;;;;;:13;;-1:-1:-1;1684:60:75;;-1:-1:-1;;;1367:465:75:o;985:258::-;-1:-1:-1;;;;;;;;;;;4302:15:3;;-1:-1:-1;;;4302:15:3;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:3;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:3;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:3;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:3;-1:-1:-1;;;5013:22:3;;;4979:67;1074:21:75::1;:19;:21::i;:::-;1105:26;1120:10;1105:14;:26::i;:::-;1141:24;:22;:24::i;:::-;1206:14;1230:4;1184:52;;;;;:::i;:::-;-1:-1:-1::0;;;;;6693:32:89;;;6675:51;;6762:32;;6757:2;6742:18;;6735:60;6663:2;6648:18;1184:52:75::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;1175:6:75::1;:61:::0;;-1:-1:-1;;;;;;1175:61:75::1;-1:-1:-1::0;;;;;1175:61:75;;;::::1;::::0;;;::::1;::::0;;5066:101:3;;;;5100:23;;-1:-1:-1;;;;5100:23:3;;;5142:14;;-1:-1:-1;6959:50:89;;5142:14:3;;6947:2:89;6932:18;5142:14:3;;;;;;;5066:101;4092:1081;;;;;985:258:75;:::o;1838:395::-;1968:7;1987:10;2027:9;2010:27;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2010:27:75;;;;;;;;;2000:38;;2010:27;2000:38;;;;-1:-1:-1;;;;;2052:26:75;;;2094:1;2052:26;;;:13;:26;;;;;:30;;;;;;;;;;;2000:38;;-1:-1:-1;2052:30:75;2048:132;;2119:50;2146:9;2157:11;2119:26;:50::i;:::-;2112:57;;;;;2048:132;-1:-1:-1;;;;;2196:26:75;;;;;;;:13;:26;;;;;;;;:30;;;;;;;;;;;;1838:395;-1:-1:-1;;1838:395:75:o;2038:168:1:-;2091:7;;1676:27;2142:25;1545:174;2524:247;2334:13:2;:11;:13::i;:::-;1676:27:1;2680:26;;-1:-1:-1;;;;;;2680:26:1::1;-1:-1:-1::0;;;;;2680:26:1;::::1;::::0;;::::1;::::0;;2746:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;2721:43:1::1;;;;;;;;;;;2603:168;2524:247:::0;:::o;3817:115:75:-;2334:13:2;:11;:13::i;:::-;3894:6:75::1;::::0;:31:::1;::::0;-1:-1:-1;;;3894:31:75;;-1:-1:-1;;;;;615:32:89;;;3894:31:75::1;::::0;::::1;597:51:89::0;3894:6:75;;::::1;::::0;:16:::1;::::0;570:18:89;;3894:31:75::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3817:115:::0;:::o;7711:422:3:-;-1:-1:-1;;;;;;;;;;;7900:15:3;;-1:-1:-1;;;7900:15:3;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:3;;;;;;;;;;;7896:76;7985:14;;8003:16;7985:14;;;:34;7981:146;;8035:33;;-1:-1:-1;;8035:33:3;8052:16;8035:33;;;;;8087:29;;6959:50:89;;;8087:29:3;;6947:2:89;6932:18;8087:29:3;;;;;;;7760:373;7711:422::o;4603:312:4:-;4683:4;-1:-1:-1;;;;;4692:6:4;4675:23;;;:120;;;4789:6;-1:-1:-1;;;;;4753:42:4;:32;-1:-1:-1;;;;;;;;;;;1519:53:17;-1:-1:-1;;;;;1519:53:17;;1441:138;4753:32:4;-1:-1:-1;;;;;4753:42:4;;;4675:120;4658:251;;;4869:29;;-1:-1:-1;;;4869:29:4;;;;;;;;;;;1249:112:75;2334:13:2;:11;:13::i;6057:538:4:-;6174:17;-1:-1:-1;;;;;6156:50:4;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6156:52:4;;;;;;;;-1:-1:-1;;6156:52:4;;;;;;;;;;;;:::i;:::-;;;6152:437;;6518:60;;-1:-1:-1;;;6518:60:4;;-1:-1:-1;;;;;615:32:89;;6518:60:4;;;597:51:89;570:18;;6518:60:4;451:203:89;6152:437:4;-1:-1:-1;;;;;;;;;;;6250:40:4;;6246:120;;6317:34;;-1:-1:-1;;;6317:34:4;;;;;2185:25:89;;;2158:18;;6317:34:4;2039:177:89;6246:120:4;6379:54;6409:17;6428:4;6379:29;:54::i;:::-;6209:235;6057:538;;:::o;5032:213::-;5106:4;-1:-1:-1;;;;;5115:6:4;5098:23;;5094:145;;5199:29;;-1:-1:-1;;;5199:29:4;;;;;;;;;;;2658:162:2;966:10:7;2717:7:2;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:2;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:2;;966:10:7;2763:40:2;;;597:51:89;570:18;;2763:40:2;451:203:89;2955:222:1;1676:27;3104:22;;-1:-1:-1;;;;;;3104:22:1;;;3136:34;3161:8;3136:24;:34::i;3238:572:75:-;3331:7;3350:10;3390:9;3373:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;3363:38;;;;;;3350:51;;3411:12;3453:11;3466:2;3436:33;;;;;;;;5933:2:89;5929:15;;;;-1:-1:-1;;;;;;5925:53:89;5913:66;;6004:2;5995:12;;5988:28;6041:2;6032:12;;5756:294;3436:33:75;;;;-1:-1:-1;;3436:33:75;;;;;;;;;3426:44;;3436:33;3426:44;;;;3480:17;3549:6;;-1:-1:-1;;;;;615:32:89;;;3570:118:75;;;;597:51:89;;;;3570:118:75;;;;;;;;;;570:18:89;;;;3570:118:75;;;;;;;-1:-1:-1;;;;;3570:118:75;-1:-1:-1;;;3570:118:75;;;3500:198;;3426:44;;-1:-1:-1;3480:17:75;3426:44;;3549:6;;;;;3570:118;3500:198;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3480:218;;3749:11;-1:-1:-1;;;;;3713:59:75;3741:5;-1:-1:-1;;;;;3713:59:75;;3762:9;3713:59;;;;;;:::i;:::-;;;;;;;;3797:5;3238:572;-1:-1:-1;;;;;3238:572:75:o;1819:64:1:-;6931:20:3;:18;:20::i;1847:127:2:-;6931:20:3;:18;:20::i;:::-;1929:38:2::1;1954:12;1929:24;:38::i;2264:344:17:-:0;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:17;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;3774:248:2:-;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:2;;-1:-1:-1;;;;;3941:19:2;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;7084:141:3:-;-1:-1:-1;;;;;;;;;;;8560:40:3;-1:-1:-1;;;8560:40:3;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:3;;;;;;;;;;;1980:235:2;6931:20:3;:18;:20::i;:::-;-1:-1:-1;;;;;2076:26:2;::::1;2072:95;;2125:31;::::0;-1:-1:-1;;;2125:31:2;;2153:1:::1;2125:31;::::0;::::1;597:51:89::0;570:18;;2125:31:2::1;451:203:89::0;1671:281:17;1748:17;-1:-1:-1;;;;;1748:29:17;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:17;;-1:-1:-1;;;;;615:32:89;;1805:47:17;;;597:51:89;570:18;;1805:47:17;451:203:89;1744:119:17;-1:-1:-1;;;;;;;;;;;1872:73:17;;-1:-1:-1;;;;;;1872:73:17;-1:-1:-1;;;;;1872:73:17;;;;;;;;;;1671:281::o;3900:253:32:-;3983:12;4008;4022:23;4049:6;-1:-1:-1;;;;;4049:19:32;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;3900:253;-1:-1:-1;;;;;3900:253:32:o;6113:122:17:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:17;;;;;;;;;;;4421:582:32;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4841:17;;:22;:49;;;;-1:-1:-1;;;;;;4867:18:32;;;:23;4841:49;4837:119;;;4917:24;;-1:-1:-1;;;4917:24:32;;-1:-1:-1;;;;;615:32:89;;4917:24:32;;;597:51:89;570:18;;4917:24:32;451:203:89;4837:119:32;-1:-1:-1;4976:10:32;4589:408;4421:582;;;;;:::o;5543:487::-;5674:17;;:21;5670:354;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;-1:-1:-1;;;5994:19:32;;;;;;;;;;;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;14:173:89:-;82:20;;-1:-1:-1;;;;;131:31:89;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:89:o;659:127::-;720:10;715:3;711:20;708:1;701:31;751:4;748:1;741:15;775:4;772:1;765:15;791:715;855:5;887:1;911:18;903:6;900:30;897:56;;;933:18;;:::i;:::-;-1:-1:-1;1088:2:89;1082:9;-1:-1:-1;;1001:2:89;980:15;;976:29;;1146:2;1134:15;1130:29;1118:42;;1211:22;;;1190:18;1175:34;;1172:62;1169:88;;;1237:18;;:::i;:::-;1273:2;1266:22;1321;;;1306:6;-1:-1:-1;1306:6:89;1358:16;;;1355:25;-1:-1:-1;1352:45:89;;;1393:1;1390;1383:12;1352:45;1443:6;1438:3;1431:4;1423:6;1419:17;1406:44;1498:1;1491:4;1482:6;1474;1470:19;1466:30;1459:41;;791:715;;;;;:::o;1511:523::-;1588:6;1596;1649:2;1637:9;1628:7;1624:23;1620:32;1617:52;;;1665:1;1662;1655:12;1617:52;1688:29;1707:9;1688:29;:::i;:::-;1678:39;;1768:2;1757:9;1753:18;1740:32;1795:18;1787:6;1784:30;1781:50;;;1827:1;1824;1817:12;1781:50;1850:22;;1903:4;1895:13;;1891:27;-1:-1:-1;1881:55:89;;1932:1;1929;1922:12;1881:55;1955:73;2020:7;2015:2;2002:16;1997:2;1993;1989:11;1955:73;:::i;:::-;1945:83;;;1511:523;;;;;:::o;2455:221::-;2498:5;2551:3;2544:4;2536:6;2532:17;2528:27;2518:55;;2569:1;2566;2559:12;2518:55;2591:79;2666:3;2657:6;2644:20;2637:4;2629:6;2625:17;2591:79;:::i;2681:396::-;2759:6;2767;2820:2;2808:9;2799:7;2795:23;2791:32;2788:52;;;2836:1;2833;2826:12;2788:52;2876:9;2863:23;2909:18;2901:6;2898:30;2895:50;;;2941:1;2938;2931:12;2895:50;2964;3006:7;2997:6;2986:9;2982:22;2964:50;:::i;:::-;2954:60;;;3033:38;3067:2;3056:9;3052:18;3033:38;:::i;:::-;3023:48;;2681:396;;;;;:::o;3082:322::-;3151:6;3204:2;3192:9;3183:7;3179:23;3175:32;3172:52;;;3220:1;3217;3210:12;3172:52;3260:9;3247:23;3293:18;3285:6;3282:30;3279:50;;;3325:1;3322;3315:12;3279:50;3348;3390:7;3381:6;3370:9;3366:22;3348:50;:::i;:::-;3338:60;3082:322;-1:-1:-1;;;;3082:322:89:o;3698:250::-;3783:1;3793:113;3807:6;3804:1;3801:13;3793:113;;;3883:11;;;3877:18;3864:11;;;3857:39;3829:2;3822:10;3793:113;;;-1:-1:-1;;3940:1:89;3922:16;;3915:27;3698:250::o;3953:271::-;3995:3;4033:5;4027:12;4060:6;4055:3;4048:19;4076:76;4145:6;4138:4;4133:3;4129:14;4122:4;4115:5;4111:16;4076:76;:::i;:::-;4206:2;4185:15;-1:-1:-1;;4181:29:89;4172:39;;;;4213:4;4168:50;;3953:271;-1:-1:-1;;3953:271:89:o;4229:220::-;4378:2;4367:9;4360:21;4341:4;4398:45;4439:2;4428:9;4424:18;4416:6;4398:45;:::i;4454:186::-;4513:6;4566:2;4554:9;4545:7;4541:23;4537:32;4534:52;;;4582:1;4579;4572:12;4534:52;4605:29;4624:9;4605:29;:::i;4645:289::-;4776:3;4814:6;4808:13;4830:66;4889:6;4884:3;4877:4;4869:6;4865:17;4830:66;:::i;:::-;4912:16;;;;;4645:289;-1:-1:-1;;4645:289:89:o;4939:315::-;-1:-1:-1;;;;;5114:32:89;;5096:51;;5183:2;5178;5163:18;;5156:30;;;-1:-1:-1;;5203:45:89;;5229:18;;5221:6;5203:45;:::i;5259:492::-;5434:3;5472:6;5466:13;5488:66;5547:6;5542:3;5535:4;5527:6;5523:17;5488:66;:::i;:::-;5617:13;;5576:16;;;;5639:70;5617:13;5576:16;5686:4;5674:17;;5639:70;:::i;:::-;5725:20;;5259:492;-1:-1:-1;;;;5259:492:89:o;7225:184::-;7295:6;7348:2;7336:9;7327:7;7323:23;7319:32;7316:52;;;7364:1;7361;7354:12;7316:52;-1:-1:-1;7387:16:89;;7225:184;-1:-1:-1;7225:184:89:o"},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","acceptOwnership()":"79ba5097","beacon()":"59659e90","disableInitializers()":"31f44900","getOrCreateSmartAccount(string)":"a66c4f50","getSmartAccountForApplication(string,address)":"dbe6e7f9","initialize(address)":"c4d66de8","owner()":"8da5cb5b","pendingOwner()":"e30c3978","predictSmartAccountAddress(string,address)":"70d367c3","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","smartAccounts(address,bytes32)":"391cb358","transferOwnership(address)":"f2fde38b","updateBlueprint(address)":"fa81f7d9","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"smartAccountAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"application\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tvmWallet\",\"type\":\"string\"}],\"name\":\"SmartAccountCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beacon\",\"outputs\":[{\"internalType\":\"contract UpgradeableBeacon\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmWallet\",\"type\":\"string\"}],\"name\":\"getOrCreateSmartAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isNewAccount\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmWallet\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"application\",\"type\":\"address\"}],\"name\":\"getSmartAccountForApplication\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initBlueprint\",\"type\":\"address\"}],\"name\":\"initialize\",\"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\":[{\"internalType\":\"string\",\"name\":\"tvmWallet\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"application\",\"type\":\"address\"}],\"name\":\"predictSmartAccountAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"application\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"smartAccounts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"smartAccount\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newBlueprint\",\"type\":\"address\"}],\"name\":\"updateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"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.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"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. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/smart-account/TacSAFactory.sol\":\"TacSAFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol\":{\"keccak256\":\"0xb719fe6bd47177169ae56e3a6300ca21cc966c649412a1d1156f02862e81beac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5207f4c145e0504ee8c81088b0eadbf9500c31ecbf26c46443f1f5076cafbf4\",\"dweb:/ipfs/QmevxdJoPzBHtcRtEQ9wtkSqhfYvqD4S4BmfEFxDrfYk3G\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol\":{\"keccak256\":\"0x5920bac7215d12961e23b207f6e81a1d64aa4935a4469abe95b64a96a3c3007b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b34bb828c45c3a4ebf6c2c585971abf5089e61357a3818a2900c7e85b74a1299\",\"dweb:/ipfs/QmewGAzKsPXYfSjCKxuH1SekKxtdyzhdbdyxjF5gohLigt\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/TacInitializable.sol\":{\"keccak256\":\"0x1a60834ac4652782e16392d639235d96e1675970c507b8b6d2db9c8644b50941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ab364d4d3e4ea4d477132e98eeac8142d54d208440c7a73fd78138990fc2db5\",\"dweb:/ipfs/QmfRaaiGh4xFE2aDVHQiB57fE2rmu6c6m6vdHGXqKay62C\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/smart-account/TacSAFactory.sol\":{\"keccak256\":\"0x0bc96c7af927cad854c071c308cbe3ebd04c3af22ab095b200b8b83137464dd3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://70d06d4469f847c43950d69b00709143fe9a2dd24892e5b02b7798e2333cbb6d\",\"dweb:/ipfs/QmVxnVQvcBwj7B38mtr5WF2p4mY9Bpudx8ev68Dr6zJtB3\"]},\"contracts/smart-account/TacSmartAccount.sol\":{\"keccak256\":\"0x4609e52e0d11ab9904a4d10436daace0694b24cc75a44aed3ff2b5f1aa5b97c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3d0ff2038c2273cae96e93452ed0510af43981e0e075f2ce71b286f693111e8\",\"dweb:/ipfs/QmWsgtDDx7bg1fdz8LXo2SRfJoMS5UvZtWoV1ybBkw8bUF\"]},\"contracts/smart-account/interfaces/ISAFactory.sol\":{\"keccak256\":\"0xbc3865cbdc19dde77ff0a60d69db0185e6203252c298588143958d4660b109ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1101b2014e66dcab07df94da3b5eea75b256a321b4ffa98563e1b5a94719d375\",\"dweb:/ipfs/QmWHhNBL7G11HoiHtgiGBJVefwzsDQzsWovSQxdXfyE3Aa\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":18722,"contract":"contracts/smart-account/TacSAFactory.sol:TacSAFactory","label":"beacon","offset":0,"slot":"0","type":"t_contract(UpgradeableBeacon)3888"},{"astId":18728,"contract":"contracts/smart-account/TacSAFactory.sol:TacSAFactory","label":"smartAccounts","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes32,t_address))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(UpgradeableBeacon)3888":{"encoding":"inplace","label":"contract UpgradeableBeacon","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_bytes32,t_address))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => address))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_address)"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"}}}}},"contracts/smart-account/TacSmartAccount.sol":{"TacSmartAccount":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"AccessDenied","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"ExecutionFailed","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Executed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"createOneTimeTicket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"delegatecall","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"executeUnsafe","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"oneTimeTickets","outputs":[{"internalType":"bool","name":"ticket","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"revokeOneTimeTicket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_19154":{"entryPoint":null,"id":19154,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_4110":{"entryPoint":26,"id":4110,"parameterSlots":0,"returnSlots":0},"@_getInitializableStorage_4141":{"entryPoint":null,"id":4141,"parameterSlots":0,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:216:89","nodeType":"YulBlock","src":"0:216:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"113:101:89","nodeType":"YulBlock","src":"113:101:89","statements":[{"nativeSrc":"123:26:89","nodeType":"YulAssignment","src":"123:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"135:9:89","nodeType":"YulIdentifier","src":"135:9:89"},{"kind":"number","nativeSrc":"146:2:89","nodeType":"YulLiteral","src":"146:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"131:3:89","nodeType":"YulIdentifier","src":"131:3:89"},"nativeSrc":"131:18:89","nodeType":"YulFunctionCall","src":"131:18:89"},"variableNames":[{"name":"tail","nativeSrc":"123:4:89","nodeType":"YulIdentifier","src":"123:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"165:9:89","nodeType":"YulIdentifier","src":"165:9:89"},{"arguments":[{"name":"value0","nativeSrc":"180:6:89","nodeType":"YulIdentifier","src":"180:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"196:2:89","nodeType":"YulLiteral","src":"196:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"200:1:89","nodeType":"YulLiteral","src":"200:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"192:3:89","nodeType":"YulIdentifier","src":"192:3:89"},"nativeSrc":"192:10:89","nodeType":"YulFunctionCall","src":"192:10:89"},{"kind":"number","nativeSrc":"204:1:89","nodeType":"YulLiteral","src":"204:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"188:3:89","nodeType":"YulIdentifier","src":"188:3:89"},"nativeSrc":"188:18:89","nodeType":"YulFunctionCall","src":"188:18:89"}],"functionName":{"name":"and","nativeSrc":"176:3:89","nodeType":"YulIdentifier","src":"176:3:89"},"nativeSrc":"176:31:89","nodeType":"YulFunctionCall","src":"176:31:89"}],"functionName":{"name":"mstore","nativeSrc":"158:6:89","nodeType":"YulIdentifier","src":"158:6:89"},"nativeSrc":"158:50:89","nodeType":"YulFunctionCall","src":"158:50:89"},"nativeSrc":"158:50:89","nodeType":"YulExpressionStatement","src":"158:50:89"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"14:200:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"82:9:89","nodeType":"YulTypedName","src":"82:9:89","type":""},{"name":"value0","nativeSrc":"93:6:89","nodeType":"YulTypedName","src":"93:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"104:4:89","nodeType":"YulTypedName","src":"104:4:89","type":""}],"src":"14:200:89"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(64, 1), 1)))\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611143806100d96000396000f3fe6080604052600436106100a05760003560e01c80638da5cb5b116100645780638da5cb5b14610179578063b61d27f6146101b1578063c4d66de8146101d1578063c72c901a146101f1578063dc40af1f14610211578063e1f21c671461025157600080fd5b8063150b7a02146100ac57806345670295146100f657806345f67ac7146101175780636e0aacf7146101375780637e383a751461015757600080fd5b366100a757005b600080fd5b3480156100b857600080fd5b506100d86100c7366004610ca3565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b610109610104366004610d16565b610271565b6040516100ed929190610db8565b61012a610125366004610e20565b61039b565b6040516100ed9190610ec6565b34801561014357600080fd5b50610109610152366004610f2b565b6105f4565b34801561016357600080fd5b50610177610172366004610f80565b61070e565b005b34801561018557600080fd5b50600054610199906001600160a01b031681565b6040516001600160a01b0390911681526020016100ed565b6101c46101bf366004610d16565b610769565b6040516100ed9190610fa4565b3480156101dd57600080fd5b506101776101ec366004610f80565b6108bd565b3480156101fd57600080fd5b5061017761020c366004610f80565b6109df565b34801561021d57600080fd5b5061024161022c366004610f80565b60016020526000908152604090205460ff1681565b60405190151581526020016100ed565b34801561025d57600080fd5b5061017761026c366004610fb7565b610a40565b3360009081526001602052604081205460609060ff16156102a857336000908152600160205260409020805460ff191690556102e8565b60005433906001600160a01b031681146102e657604051630504a20d60e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b505b856001600160a01b0316858585604051610303929190610ff8565b60006040518083038185875af1925050503d8060008114610340576040519150601f19603f3d011682016040523d82523d6000602084013e610345565b606091505b5060405191935091506001600160a01b038716907fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9061038a90889088908890611031565b60405180910390a294509492505050565b3360009081526001602052604090205460609060ff16156103d257336000908152600160205260409020805460ff1916905561040d565b60005433906001600160a01b0316811461040b57604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b505b60008667ffffffffffffffff81111561042857610428611054565b60405190808252806020026020018201604052801561045b57816020015b60608152602001906001900390816104465790505b50905060005b878110156105e8576000808a8a8481811061047e5761047e61106a565b90506020020160208101906104939190610f80565b6001600160a01b03168989858181106104ae576104ae61106a565b905060200201358888868181106104c7576104c761106a565b90506020028101906104d99190611080565b6040516104e7929190610ff8565b60006040518083038185875af1925050503d8060008114610524576040519150601f19603f3d011682016040523d82523d6000602084013e610529565b606091505b5091509150818b8b858181106105415761054161106a565b90506020020160208101906105569190610f80565b8a8a868181106105685761056861106a565b905060200201358989878181106105815761058161106a565b90506020028101906105939190611080565b8590919293946105bb57604051630717adb560e21b81526004016102dd9594939291906110c7565b5050505050808484815181106105d3576105d361106a565b60209081029190910101525050600101610461565b50979650505050505050565b6000805460609033906001600160a01b0316811461063157604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b50846001600160a01b0316848460405161064c929190610ff8565b600060405180830381855af49150503d8060008114610687576040519150601f19603f3d011682016040523d82523d6000602084013e61068c565b606091505b509092509050846000858584866106bb57604051630717adb560e21b81526004016102dd9594939291906110c7565b5050505050846001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f600086866040516106fe93929190611031565b60405180910390a2935093915050565b60005433906001600160a01b0316811461074757604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b506001600160a01b03166000908152600160205260409020805460ff19169055565b3360009081526001602052604090205460609060ff16156107a057336000908152600160205260409020805460ff191690556107db565b60005433906001600160a01b031681146107d957604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b505b600080866001600160a01b03168686866040516107f9929190610ff8565b60006040518083038185875af1925050503d8060008114610836576040519150601f19603f3d011682016040523d82523d6000602084013e61083b565b606091505b50909250905086868686848661086957604051630717adb560e21b81526004016102dd9594939291906110c7565b5050505050866001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f8787876040516108ab93929190611031565b60405180910390a29695505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109035750825b905060008267ffffffffffffffff1660011480156109205750303b155b90508115801561092e575080155b1561094c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561097657845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156109d757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60005433906001600160a01b03168114610a1857604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b506001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526001602052604090205460ff1615610a7457336000908152600160205260409020805460ff19169055610aaf565b60005433906001600160a01b03168114610aad57604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b505b610ac36001600160a01b0384168383610ac8565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610b198482610b82565b610b7c57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610b72908590610bd1565b610b7c8482610bd1565b50505050565b6000806000806020600086516020880160008a5af192503d91506000519050828015610bc757508115610bb85780600114610bc7565b6000866001600160a01b03163b115b9695505050505050565b600080602060008451602086016000885af180610bf4576040513d6000823e3d81fd5b50506000513d91508115610c0c578060011415610c19565b6001600160a01b0384163b155b15610b7c57604051635274afe760e01b81526001600160a01b03851660048201526024016102dd565b6001600160a01b0381168114610c5757600080fd5b50565b60008083601f840112610c6c57600080fd5b50813567ffffffffffffffff811115610c8457600080fd5b602083019150836020828501011115610c9c57600080fd5b9250929050565b600080600080600060808688031215610cbb57600080fd5b8535610cc681610c42565b94506020860135610cd681610c42565b935060408601359250606086013567ffffffffffffffff811115610cf957600080fd5b610d0588828901610c5a565b969995985093965092949392505050565b60008060008060608587031215610d2c57600080fd5b8435610d3781610c42565b935060208501359250604085013567ffffffffffffffff811115610d5a57600080fd5b610d6687828801610c5a565b95989497509550505050565b6000815180845260005b81811015610d9857602081850181015186830182015201610d7c565b506000602082860101526020601f19601f83011685010191505092915050565b8215158152604060208201526000610dd36040830184610d72565b949350505050565b60008083601f840112610ded57600080fd5b50813567ffffffffffffffff811115610e0557600080fd5b6020830191508360208260051b8501011115610c9c57600080fd5b60008060008060008060608789031215610e3957600080fd5b863567ffffffffffffffff811115610e5057600080fd5b610e5c89828a01610ddb565b909750955050602087013567ffffffffffffffff811115610e7c57600080fd5b610e8889828a01610ddb565b909550935050604087013567ffffffffffffffff811115610ea857600080fd5b610eb489828a01610ddb565b979a9699509497509295939492505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610f1f57603f19878603018452610f0a858351610d72565b94506020938401939190910190600101610eee565b50929695505050505050565b600080600060408486031215610f4057600080fd5b8335610f4b81610c42565b9250602084013567ffffffffffffffff811115610f6757600080fd5b610f7386828701610c5a565b9497909650939450505050565b600060208284031215610f9257600080fd5b8135610f9d81610c42565b9392505050565b602081526000610f9d6020830184610d72565b600080600060608486031215610fcc57600080fd5b8335610fd781610c42565b92506020840135610fe781610c42565b929592945050506040919091013590565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b83815260406020820152600061104b604083018486611008565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261109757600080fd5b83018035915067ffffffffffffffff8211156110b257600080fd5b602001915036819003821315610c9c57600080fd5b60018060a01b03861681528460208201526080604082015260006110ef608083018587611008565b82810360608401526111018185610d72565b9897505050505050505056fea264697066735822122032ddb73151e54c46720ba996a1a687a7dc1fb42eb87537e7af28c2b2a270da5464736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 PUSH1 0x1A JUMP JUMPDEST PUSH1 0xCA JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH1 0x69 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH1 0xC7 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x1143 DUP1 PUSH2 0xD9 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0xB61D27F6 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xC72C901A EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0xDC40AF1F EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0xE1F21C67 EQ PUSH2 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x150B7A02 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x45670295 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x45F67AC7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x6E0AACF7 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0x7E383A75 EQ PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xA7 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD8 PUSH2 0xC7 CALLDATASIZE PUSH1 0x4 PUSH2 0xCA3 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0xD16 JUMP JUMPDEST PUSH2 0x271 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP3 SWAP2 SWAP1 PUSH2 0xDB8 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x125 CALLDATASIZE PUSH1 0x4 PUSH2 0xE20 JUMP JUMPDEST PUSH2 0x39B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xEC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x109 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0xF2B JUMP JUMPDEST PUSH2 0x5F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xF80 JUMP JUMPDEST PUSH2 0x70E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x199 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x1BF CALLDATASIZE PUSH1 0x4 PUSH2 0xD16 JUMP JUMPDEST PUSH2 0x769 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xFA4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH2 0x1EC CALLDATASIZE PUSH1 0x4 PUSH2 0xF80 JUMP JUMPDEST PUSH2 0x8BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0xF80 JUMP JUMPDEST PUSH2 0x9DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x22C CALLDATASIZE PUSH1 0x4 PUSH2 0xF80 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH2 0x26C CALLDATASIZE PUSH1 0x4 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0xA40 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x2A8 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x2E6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x303 SWAP3 SWAP2 SWAP1 PUSH2 0xFF8 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 0x340 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 0x345 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F SWAP1 PUSH2 0x38A SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x1031 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x3D2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x40D JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x40B JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP7 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x428 JUMPI PUSH2 0x428 PUSH2 0x1054 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x45B JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x446 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x5E8 JUMPI PUSH1 0x0 DUP1 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0x47E JUMPI PUSH2 0x47E PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x493 SWAP2 SWAP1 PUSH2 0xF80 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x4AE JUMPI PUSH2 0x4AE PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x4C7 JUMPI PUSH2 0x4C7 PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x4D9 SWAP2 SWAP1 PUSH2 0x1080 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E7 SWAP3 SWAP2 SWAP1 PUSH2 0xFF8 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 0x524 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 0x529 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP12 DUP12 DUP6 DUP2 DUP2 LT PUSH2 0x541 JUMPI PUSH2 0x541 PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x556 SWAP2 SWAP1 PUSH2 0xF80 JUMP JUMPDEST DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x568 JUMPI PUSH2 0x568 PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP10 DUP10 DUP8 DUP2 DUP2 LT PUSH2 0x581 JUMPI PUSH2 0x581 PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1080 JUMP JUMPDEST DUP6 SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 PUSH2 0x5BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10C7 JUMP JUMPDEST POP POP POP POP POP DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x5D3 JUMPI PUSH2 0x5D3 PUSH2 0x106A JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x461 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x631 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x64C SWAP3 SWAP2 SWAP1 PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x687 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 0x68C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP DUP5 PUSH1 0x0 DUP6 DUP6 DUP5 DUP7 PUSH2 0x6BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10C7 JUMP JUMPDEST POP POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x6FE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1031 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x7A0 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x7D9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x7F9 SWAP3 SWAP2 SWAP1 PUSH2 0xFF8 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 0x836 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 0x83B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP DUP7 DUP7 DUP7 DUP7 DUP5 DUP7 PUSH2 0x869 JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10C7 JUMP JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x8AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1031 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x903 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x920 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x92E JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x94C JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x976 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x9D7 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0xA18 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA74 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0xAAF JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0xAAD JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP JUMPDEST PUSH2 0xAC3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP4 DUP4 PUSH2 0xAC8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xB19 DUP5 DUP3 PUSH2 0xB82 JUMP JUMPDEST PUSH2 0xB7C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x44 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xB72 SWAP1 DUP6 SWAP1 PUSH2 0xBD1 JUMP JUMPDEST PUSH2 0xB7C DUP5 DUP3 PUSH2 0xBD1 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP7 MLOAD PUSH1 0x20 DUP9 ADD PUSH1 0x0 DUP11 GAS CALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0xBC7 JUMPI POP DUP2 ISZERO PUSH2 0xBB8 JUMPI DUP1 PUSH1 0x1 EQ PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH1 0x0 DUP9 GAS CALL DUP1 PUSH2 0xBF4 JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST POP POP PUSH1 0x0 MLOAD RETURNDATASIZE SWAP2 POP DUP2 ISZERO PUSH2 0xC0C JUMPI DUP1 PUSH1 0x1 EQ ISZERO PUSH2 0xC19 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0xB7C JUMPI PUSH1 0x40 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xCBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0xCC6 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0xCD6 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD05 DUP9 DUP3 DUP10 ADD PUSH2 0xC5A JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0xD37 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD66 DUP8 DUP3 DUP9 ADD PUSH2 0xC5A JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD98 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xD7C JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xDD3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xD72 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xC9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xE39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE5C DUP10 DUP3 DUP11 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE88 DUP10 DUP3 DUP11 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB4 DUP10 DUP3 DUP11 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xF1F JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0xF0A DUP6 DUP4 MLOAD PUSH2 0xD72 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xEEE JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xF4B DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF73 DUP7 DUP3 DUP8 ADD PUSH2 0xC5A JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xF9D DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xF9D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xFCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFD7 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0xFE7 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x104B PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x1008 JUMP JUMPDEST SWAP6 SWAP5 POP 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x10B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0xC9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x10EF PUSH1 0x80 DUP4 ADD DUP6 DUP8 PUSH2 0x1008 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x1101 DUP2 DUP6 PUSH2 0xD72 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0xDD 0xB7 BALANCE MLOAD 0xE5 0x4C CHAINID PUSH19 0xBA996A1A687A7DC1FB42EB87537E7AF28C2B2 LOG2 PUSH17 0xDA5464736F6C634300081C003300000000 ","sourceMap":"388:3005:76:-:0;;;1129:53;;;;;;;;;-1:-1:-1;1153:22:76;:20;:22::i;:::-;388:3005;;7711:422:22;8870:21;7900:15;;;;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:22;;;;;;;;;;;7896:76;7985:14;;-1:-1:-1;;;;;7985:14:22;;;:34;7981:146;;8035:33;;-1:-1:-1;;;;;;8035:33:22;-1:-1:-1;;;;;8035:33:22;;;;;8087:29;;158:50:89;;;8087:29:22;;146:2:89;131:18;8087:29:22;;;;;;;7981:146;7760:373;7711:422::o;14:200:89:-;388:3005:76;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_19417":{"entryPoint":null,"id":19417,"parameterSlots":0,"returnSlots":0},"@_callOptionalReturnBool_5171":{"entryPoint":2946,"id":5171,"parameterSlots":2,"returnSlots":1},"@_callOptionalReturn_5130":{"entryPoint":3025,"id":5130,"parameterSlots":2,"returnSlots":0},"@_getInitializableStorage_4141":{"entryPoint":null,"id":4141,"parameterSlots":0,"returnSlots":1},"@approve_19329":{"entryPoint":2624,"id":19329,"parameterSlots":3,"returnSlots":0},"@createOneTimeTicket_19295":{"entryPoint":2527,"id":19295,"parameterSlots":1,"returnSlots":0},"@delegatecall_19281":{"entryPoint":1524,"id":19281,"parameterSlots":3,"returnSlots":2},"@executeUnsafe_19242":{"entryPoint":625,"id":19242,"parameterSlots":4,"returnSlots":2},"@execute_19209":{"entryPoint":1897,"id":19209,"parameterSlots":4,"returnSlots":1},"@forceApprove_4956":{"entryPoint":2760,"id":4956,"parameterSlots":3,"returnSlots":0},"@initialize_19166":{"entryPoint":2237,"id":19166,"parameterSlots":1,"returnSlots":0},"@multicall_19413":{"entryPoint":923,"id":19413,"parameterSlots":6,"returnSlots":1},"@onERC721Received_19436":{"entryPoint":null,"id":19436,"parameterSlots":5,"returnSlots":1},"@oneTimeTickets_19089":{"entryPoint":null,"id":19089,"parameterSlots":0,"returnSlots":0},"@owner_19077":{"entryPoint":null,"id":19077,"parameterSlots":0,"returnSlots":0},"@revokeOneTimeTicket_19309":{"entryPoint":1806,"id":19309,"parameterSlots":1,"returnSlots":0},"abi_decode_array_address_dyn_calldata":{"entryPoint":3547,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_bytes_calldata":{"entryPoint":3162,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":3968,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr":{"entryPoint":3235,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":3883,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr":{"entryPoint":3350,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":3616,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_contract$_IERC20_$4735t_addresst_uint256":{"entryPoint":4023,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_bytes":{"entryPoint":3442,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":4104,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4088,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_rational_0_by_1__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_rational_0_by_1_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4295,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":3782,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3512,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4004,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_0_by_1_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4145,"id":null,"parameterSlots":4,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":4224,"id":null,"parameterSlots":2,"returnSlots":2},"panic_error_0x32":{"entryPoint":4202,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4180,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":3138,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:11046:89","nodeType":"YulBlock","src":"0:11046:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"59:86:89","nodeType":"YulBlock","src":"59:86:89","statements":[{"body":{"nativeSrc":"123:16:89","nodeType":"YulBlock","src":"123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"132:1:89","nodeType":"YulLiteral","src":"132:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"135:1:89","nodeType":"YulLiteral","src":"135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"125:6:89","nodeType":"YulIdentifier","src":"125:6:89"},"nativeSrc":"125:12:89","nodeType":"YulFunctionCall","src":"125:12:89"},"nativeSrc":"125:12:89","nodeType":"YulExpressionStatement","src":"125:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"82:5:89","nodeType":"YulIdentifier","src":"82:5:89"},{"arguments":[{"name":"value","nativeSrc":"93:5:89","nodeType":"YulIdentifier","src":"93:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"108:3:89","nodeType":"YulLiteral","src":"108:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"113:1:89","nodeType":"YulLiteral","src":"113:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"104:3:89","nodeType":"YulIdentifier","src":"104:3:89"},"nativeSrc":"104:11:89","nodeType":"YulFunctionCall","src":"104:11:89"},{"kind":"number","nativeSrc":"117:1:89","nodeType":"YulLiteral","src":"117:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"100:3:89","nodeType":"YulIdentifier","src":"100:3:89"},"nativeSrc":"100:19:89","nodeType":"YulFunctionCall","src":"100:19:89"}],"functionName":{"name":"and","nativeSrc":"89:3:89","nodeType":"YulIdentifier","src":"89:3:89"},"nativeSrc":"89:31:89","nodeType":"YulFunctionCall","src":"89:31:89"}],"functionName":{"name":"eq","nativeSrc":"79:2:89","nodeType":"YulIdentifier","src":"79:2:89"},"nativeSrc":"79:42:89","nodeType":"YulFunctionCall","src":"79:42:89"}],"functionName":{"name":"iszero","nativeSrc":"72:6:89","nodeType":"YulIdentifier","src":"72:6:89"},"nativeSrc":"72:50:89","nodeType":"YulFunctionCall","src":"72:50:89"},"nativeSrc":"69:70:89","nodeType":"YulIf","src":"69:70:89"}]},"name":"validator_revert_address","nativeSrc":"14:131:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"48:5:89","nodeType":"YulTypedName","src":"48:5:89","type":""}],"src":"14:131:89"},{"body":{"nativeSrc":"222:275:89","nodeType":"YulBlock","src":"222:275:89","statements":[{"body":{"nativeSrc":"271:16:89","nodeType":"YulBlock","src":"271:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"280:1:89","nodeType":"YulLiteral","src":"280:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"283:1:89","nodeType":"YulLiteral","src":"283:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"273:6:89","nodeType":"YulIdentifier","src":"273:6:89"},"nativeSrc":"273:12:89","nodeType":"YulFunctionCall","src":"273:12:89"},"nativeSrc":"273:12:89","nodeType":"YulExpressionStatement","src":"273:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"250:6:89","nodeType":"YulIdentifier","src":"250:6:89"},{"kind":"number","nativeSrc":"258:4:89","nodeType":"YulLiteral","src":"258:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"246:3:89","nodeType":"YulIdentifier","src":"246:3:89"},"nativeSrc":"246:17:89","nodeType":"YulFunctionCall","src":"246:17:89"},{"name":"end","nativeSrc":"265:3:89","nodeType":"YulIdentifier","src":"265:3:89"}],"functionName":{"name":"slt","nativeSrc":"242:3:89","nodeType":"YulIdentifier","src":"242:3:89"},"nativeSrc":"242:27:89","nodeType":"YulFunctionCall","src":"242:27:89"}],"functionName":{"name":"iszero","nativeSrc":"235:6:89","nodeType":"YulIdentifier","src":"235:6:89"},"nativeSrc":"235:35:89","nodeType":"YulFunctionCall","src":"235:35:89"},"nativeSrc":"232:55:89","nodeType":"YulIf","src":"232:55:89"},{"nativeSrc":"296:30:89","nodeType":"YulAssignment","src":"296:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"319:6:89","nodeType":"YulIdentifier","src":"319:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"306:12:89","nodeType":"YulIdentifier","src":"306:12:89"},"nativeSrc":"306:20:89","nodeType":"YulFunctionCall","src":"306:20:89"},"variableNames":[{"name":"length","nativeSrc":"296:6:89","nodeType":"YulIdentifier","src":"296:6:89"}]},{"body":{"nativeSrc":"369:16:89","nodeType":"YulBlock","src":"369:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"378:1:89","nodeType":"YulLiteral","src":"378:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"381:1:89","nodeType":"YulLiteral","src":"381:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"371:6:89","nodeType":"YulIdentifier","src":"371:6:89"},"nativeSrc":"371:12:89","nodeType":"YulFunctionCall","src":"371:12:89"},"nativeSrc":"371:12:89","nodeType":"YulExpressionStatement","src":"371:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"341:6:89","nodeType":"YulIdentifier","src":"341:6:89"},{"kind":"number","nativeSrc":"349:18:89","nodeType":"YulLiteral","src":"349:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"338:2:89","nodeType":"YulIdentifier","src":"338:2:89"},"nativeSrc":"338:30:89","nodeType":"YulFunctionCall","src":"338:30:89"},"nativeSrc":"335:50:89","nodeType":"YulIf","src":"335:50:89"},{"nativeSrc":"394:29:89","nodeType":"YulAssignment","src":"394:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"410:6:89","nodeType":"YulIdentifier","src":"410:6:89"},{"kind":"number","nativeSrc":"418:4:89","nodeType":"YulLiteral","src":"418:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"406:3:89","nodeType":"YulIdentifier","src":"406:3:89"},"nativeSrc":"406:17:89","nodeType":"YulFunctionCall","src":"406:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"394:8:89","nodeType":"YulIdentifier","src":"394:8:89"}]},{"body":{"nativeSrc":"475:16:89","nodeType":"YulBlock","src":"475:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"484:1:89","nodeType":"YulLiteral","src":"484:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"487:1:89","nodeType":"YulLiteral","src":"487:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"477:6:89","nodeType":"YulIdentifier","src":"477:6:89"},"nativeSrc":"477:12:89","nodeType":"YulFunctionCall","src":"477:12:89"},"nativeSrc":"477:12:89","nodeType":"YulExpressionStatement","src":"477:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"446:6:89","nodeType":"YulIdentifier","src":"446:6:89"},{"name":"length","nativeSrc":"454:6:89","nodeType":"YulIdentifier","src":"454:6:89"}],"functionName":{"name":"add","nativeSrc":"442:3:89","nodeType":"YulIdentifier","src":"442:3:89"},"nativeSrc":"442:19:89","nodeType":"YulFunctionCall","src":"442:19:89"},{"kind":"number","nativeSrc":"463:4:89","nodeType":"YulLiteral","src":"463:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"438:3:89","nodeType":"YulIdentifier","src":"438:3:89"},"nativeSrc":"438:30:89","nodeType":"YulFunctionCall","src":"438:30:89"},{"name":"end","nativeSrc":"470:3:89","nodeType":"YulIdentifier","src":"470:3:89"}],"functionName":{"name":"gt","nativeSrc":"435:2:89","nodeType":"YulIdentifier","src":"435:2:89"},"nativeSrc":"435:39:89","nodeType":"YulFunctionCall","src":"435:39:89"},"nativeSrc":"432:59:89","nodeType":"YulIf","src":"432:59:89"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"150:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"185:6:89","nodeType":"YulTypedName","src":"185:6:89","type":""},{"name":"end","nativeSrc":"193:3:89","nodeType":"YulTypedName","src":"193:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"201:8:89","nodeType":"YulTypedName","src":"201:8:89","type":""},{"name":"length","nativeSrc":"211:6:89","nodeType":"YulTypedName","src":"211:6:89","type":""}],"src":"150:347:89"},{"body":{"nativeSrc":"642:666:89","nodeType":"YulBlock","src":"642:666:89","statements":[{"body":{"nativeSrc":"689:16:89","nodeType":"YulBlock","src":"689:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"698:1:89","nodeType":"YulLiteral","src":"698:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"701:1:89","nodeType":"YulLiteral","src":"701:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"691:6:89","nodeType":"YulIdentifier","src":"691:6:89"},"nativeSrc":"691:12:89","nodeType":"YulFunctionCall","src":"691:12:89"},"nativeSrc":"691:12:89","nodeType":"YulExpressionStatement","src":"691:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"663:7:89","nodeType":"YulIdentifier","src":"663:7:89"},{"name":"headStart","nativeSrc":"672:9:89","nodeType":"YulIdentifier","src":"672:9:89"}],"functionName":{"name":"sub","nativeSrc":"659:3:89","nodeType":"YulIdentifier","src":"659:3:89"},"nativeSrc":"659:23:89","nodeType":"YulFunctionCall","src":"659:23:89"},{"kind":"number","nativeSrc":"684:3:89","nodeType":"YulLiteral","src":"684:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"655:3:89","nodeType":"YulIdentifier","src":"655:3:89"},"nativeSrc":"655:33:89","nodeType":"YulFunctionCall","src":"655:33:89"},"nativeSrc":"652:53:89","nodeType":"YulIf","src":"652:53:89"},{"nativeSrc":"714:36:89","nodeType":"YulVariableDeclaration","src":"714:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"740:9:89","nodeType":"YulIdentifier","src":"740:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"727:12:89","nodeType":"YulIdentifier","src":"727:12:89"},"nativeSrc":"727:23:89","nodeType":"YulFunctionCall","src":"727:23:89"},"variables":[{"name":"value","nativeSrc":"718:5:89","nodeType":"YulTypedName","src":"718:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"784:5:89","nodeType":"YulIdentifier","src":"784:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"759:24:89","nodeType":"YulIdentifier","src":"759:24:89"},"nativeSrc":"759:31:89","nodeType":"YulFunctionCall","src":"759:31:89"},"nativeSrc":"759:31:89","nodeType":"YulExpressionStatement","src":"759:31:89"},{"nativeSrc":"799:15:89","nodeType":"YulAssignment","src":"799:15:89","value":{"name":"value","nativeSrc":"809:5:89","nodeType":"YulIdentifier","src":"809:5:89"},"variableNames":[{"name":"value0","nativeSrc":"799:6:89","nodeType":"YulIdentifier","src":"799:6:89"}]},{"nativeSrc":"823:47:89","nodeType":"YulVariableDeclaration","src":"823:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"855:9:89","nodeType":"YulIdentifier","src":"855:9:89"},{"kind":"number","nativeSrc":"866:2:89","nodeType":"YulLiteral","src":"866:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"851:3:89","nodeType":"YulIdentifier","src":"851:3:89"},"nativeSrc":"851:18:89","nodeType":"YulFunctionCall","src":"851:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"838:12:89","nodeType":"YulIdentifier","src":"838:12:89"},"nativeSrc":"838:32:89","nodeType":"YulFunctionCall","src":"838:32:89"},"variables":[{"name":"value_1","nativeSrc":"827:7:89","nodeType":"YulTypedName","src":"827:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"904:7:89","nodeType":"YulIdentifier","src":"904:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"879:24:89","nodeType":"YulIdentifier","src":"879:24:89"},"nativeSrc":"879:33:89","nodeType":"YulFunctionCall","src":"879:33:89"},"nativeSrc":"879:33:89","nodeType":"YulExpressionStatement","src":"879:33:89"},{"nativeSrc":"921:17:89","nodeType":"YulAssignment","src":"921:17:89","value":{"name":"value_1","nativeSrc":"931:7:89","nodeType":"YulIdentifier","src":"931:7:89"},"variableNames":[{"name":"value1","nativeSrc":"921:6:89","nodeType":"YulIdentifier","src":"921:6:89"}]},{"nativeSrc":"947:16:89","nodeType":"YulVariableDeclaration","src":"947:16:89","value":{"kind":"number","nativeSrc":"962:1:89","nodeType":"YulLiteral","src":"962:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"951:7:89","nodeType":"YulTypedName","src":"951:7:89","type":""}]},{"nativeSrc":"972:43:89","nodeType":"YulAssignment","src":"972:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1000:9:89","nodeType":"YulIdentifier","src":"1000:9:89"},{"kind":"number","nativeSrc":"1011:2:89","nodeType":"YulLiteral","src":"1011:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"996:3:89","nodeType":"YulIdentifier","src":"996:3:89"},"nativeSrc":"996:18:89","nodeType":"YulFunctionCall","src":"996:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"983:12:89","nodeType":"YulIdentifier","src":"983:12:89"},"nativeSrc":"983:32:89","nodeType":"YulFunctionCall","src":"983:32:89"},"variableNames":[{"name":"value_2","nativeSrc":"972:7:89","nodeType":"YulIdentifier","src":"972:7:89"}]},{"nativeSrc":"1024:17:89","nodeType":"YulAssignment","src":"1024:17:89","value":{"name":"value_2","nativeSrc":"1034:7:89","nodeType":"YulIdentifier","src":"1034:7:89"},"variableNames":[{"name":"value2","nativeSrc":"1024:6:89","nodeType":"YulIdentifier","src":"1024:6:89"}]},{"nativeSrc":"1050:46:89","nodeType":"YulVariableDeclaration","src":"1050:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1081:9:89","nodeType":"YulIdentifier","src":"1081:9:89"},{"kind":"number","nativeSrc":"1092:2:89","nodeType":"YulLiteral","src":"1092:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1077:3:89","nodeType":"YulIdentifier","src":"1077:3:89"},"nativeSrc":"1077:18:89","nodeType":"YulFunctionCall","src":"1077:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1064:12:89","nodeType":"YulIdentifier","src":"1064:12:89"},"nativeSrc":"1064:32:89","nodeType":"YulFunctionCall","src":"1064:32:89"},"variables":[{"name":"offset","nativeSrc":"1054:6:89","nodeType":"YulTypedName","src":"1054:6:89","type":""}]},{"body":{"nativeSrc":"1139:16:89","nodeType":"YulBlock","src":"1139:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1148:1:89","nodeType":"YulLiteral","src":"1148:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1151:1:89","nodeType":"YulLiteral","src":"1151:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1141:6:89","nodeType":"YulIdentifier","src":"1141:6:89"},"nativeSrc":"1141:12:89","nodeType":"YulFunctionCall","src":"1141:12:89"},"nativeSrc":"1141:12:89","nodeType":"YulExpressionStatement","src":"1141:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1111:6:89","nodeType":"YulIdentifier","src":"1111:6:89"},{"kind":"number","nativeSrc":"1119:18:89","nodeType":"YulLiteral","src":"1119:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1108:2:89","nodeType":"YulIdentifier","src":"1108:2:89"},"nativeSrc":"1108:30:89","nodeType":"YulFunctionCall","src":"1108:30:89"},"nativeSrc":"1105:50:89","nodeType":"YulIf","src":"1105:50:89"},{"nativeSrc":"1164:84:89","nodeType":"YulVariableDeclaration","src":"1164:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1220:9:89","nodeType":"YulIdentifier","src":"1220:9:89"},{"name":"offset","nativeSrc":"1231:6:89","nodeType":"YulIdentifier","src":"1231:6:89"}],"functionName":{"name":"add","nativeSrc":"1216:3:89","nodeType":"YulIdentifier","src":"1216:3:89"},"nativeSrc":"1216:22:89","nodeType":"YulFunctionCall","src":"1216:22:89"},{"name":"dataEnd","nativeSrc":"1240:7:89","nodeType":"YulIdentifier","src":"1240:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1190:25:89","nodeType":"YulIdentifier","src":"1190:25:89"},"nativeSrc":"1190:58:89","nodeType":"YulFunctionCall","src":"1190:58:89"},"variables":[{"name":"value3_1","nativeSrc":"1168:8:89","nodeType":"YulTypedName","src":"1168:8:89","type":""},{"name":"value4_1","nativeSrc":"1178:8:89","nodeType":"YulTypedName","src":"1178:8:89","type":""}]},{"nativeSrc":"1257:18:89","nodeType":"YulAssignment","src":"1257:18:89","value":{"name":"value3_1","nativeSrc":"1267:8:89","nodeType":"YulIdentifier","src":"1267:8:89"},"variableNames":[{"name":"value3","nativeSrc":"1257:6:89","nodeType":"YulIdentifier","src":"1257:6:89"}]},{"nativeSrc":"1284:18:89","nodeType":"YulAssignment","src":"1284:18:89","value":{"name":"value4_1","nativeSrc":"1294:8:89","nodeType":"YulIdentifier","src":"1294:8:89"},"variableNames":[{"name":"value4","nativeSrc":"1284:6:89","nodeType":"YulIdentifier","src":"1284:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr","nativeSrc":"502:806:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"576:9:89","nodeType":"YulTypedName","src":"576:9:89","type":""},{"name":"dataEnd","nativeSrc":"587:7:89","nodeType":"YulTypedName","src":"587:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"599:6:89","nodeType":"YulTypedName","src":"599:6:89","type":""},{"name":"value1","nativeSrc":"607:6:89","nodeType":"YulTypedName","src":"607:6:89","type":""},{"name":"value2","nativeSrc":"615:6:89","nodeType":"YulTypedName","src":"615:6:89","type":""},{"name":"value3","nativeSrc":"623:6:89","nodeType":"YulTypedName","src":"623:6:89","type":""},{"name":"value4","nativeSrc":"631:6:89","nodeType":"YulTypedName","src":"631:6:89","type":""}],"src":"502:806:89"},{"body":{"nativeSrc":"1412:103:89","nodeType":"YulBlock","src":"1412:103:89","statements":[{"nativeSrc":"1422:26:89","nodeType":"YulAssignment","src":"1422:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1434:9:89","nodeType":"YulIdentifier","src":"1434:9:89"},{"kind":"number","nativeSrc":"1445:2:89","nodeType":"YulLiteral","src":"1445:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1430:3:89","nodeType":"YulIdentifier","src":"1430:3:89"},"nativeSrc":"1430:18:89","nodeType":"YulFunctionCall","src":"1430:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1422:4:89","nodeType":"YulIdentifier","src":"1422:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1464:9:89","nodeType":"YulIdentifier","src":"1464:9:89"},{"arguments":[{"name":"value0","nativeSrc":"1479:6:89","nodeType":"YulIdentifier","src":"1479:6:89"},{"arguments":[{"kind":"number","nativeSrc":"1491:3:89","nodeType":"YulLiteral","src":"1491:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"1496:10:89","nodeType":"YulLiteral","src":"1496:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"1487:3:89","nodeType":"YulIdentifier","src":"1487:3:89"},"nativeSrc":"1487:20:89","nodeType":"YulFunctionCall","src":"1487:20:89"}],"functionName":{"name":"and","nativeSrc":"1475:3:89","nodeType":"YulIdentifier","src":"1475:3:89"},"nativeSrc":"1475:33:89","nodeType":"YulFunctionCall","src":"1475:33:89"}],"functionName":{"name":"mstore","nativeSrc":"1457:6:89","nodeType":"YulIdentifier","src":"1457:6:89"},"nativeSrc":"1457:52:89","nodeType":"YulFunctionCall","src":"1457:52:89"},"nativeSrc":"1457:52:89","nodeType":"YulExpressionStatement","src":"1457:52:89"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"1313:202:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1381:9:89","nodeType":"YulTypedName","src":"1381:9:89","type":""},{"name":"value0","nativeSrc":"1392:6:89","nodeType":"YulTypedName","src":"1392:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1403:4:89","nodeType":"YulTypedName","src":"1403:4:89","type":""}],"src":"1313:202:89"},{"body":{"nativeSrc":"1643:541:89","nodeType":"YulBlock","src":"1643:541:89","statements":[{"body":{"nativeSrc":"1689:16:89","nodeType":"YulBlock","src":"1689:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1698:1:89","nodeType":"YulLiteral","src":"1698:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1701:1:89","nodeType":"YulLiteral","src":"1701:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1691:6:89","nodeType":"YulIdentifier","src":"1691:6:89"},"nativeSrc":"1691:12:89","nodeType":"YulFunctionCall","src":"1691:12:89"},"nativeSrc":"1691:12:89","nodeType":"YulExpressionStatement","src":"1691:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1664:7:89","nodeType":"YulIdentifier","src":"1664:7:89"},{"name":"headStart","nativeSrc":"1673:9:89","nodeType":"YulIdentifier","src":"1673:9:89"}],"functionName":{"name":"sub","nativeSrc":"1660:3:89","nodeType":"YulIdentifier","src":"1660:3:89"},"nativeSrc":"1660:23:89","nodeType":"YulFunctionCall","src":"1660:23:89"},{"kind":"number","nativeSrc":"1685:2:89","nodeType":"YulLiteral","src":"1685:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1656:3:89","nodeType":"YulIdentifier","src":"1656:3:89"},"nativeSrc":"1656:32:89","nodeType":"YulFunctionCall","src":"1656:32:89"},"nativeSrc":"1653:52:89","nodeType":"YulIf","src":"1653:52:89"},{"nativeSrc":"1714:36:89","nodeType":"YulVariableDeclaration","src":"1714:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1740:9:89","nodeType":"YulIdentifier","src":"1740:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1727:12:89","nodeType":"YulIdentifier","src":"1727:12:89"},"nativeSrc":"1727:23:89","nodeType":"YulFunctionCall","src":"1727:23:89"},"variables":[{"name":"value","nativeSrc":"1718:5:89","nodeType":"YulTypedName","src":"1718:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1784:5:89","nodeType":"YulIdentifier","src":"1784:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1759:24:89","nodeType":"YulIdentifier","src":"1759:24:89"},"nativeSrc":"1759:31:89","nodeType":"YulFunctionCall","src":"1759:31:89"},"nativeSrc":"1759:31:89","nodeType":"YulExpressionStatement","src":"1759:31:89"},{"nativeSrc":"1799:15:89","nodeType":"YulAssignment","src":"1799:15:89","value":{"name":"value","nativeSrc":"1809:5:89","nodeType":"YulIdentifier","src":"1809:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1799:6:89","nodeType":"YulIdentifier","src":"1799:6:89"}]},{"nativeSrc":"1823:16:89","nodeType":"YulVariableDeclaration","src":"1823:16:89","value":{"kind":"number","nativeSrc":"1838:1:89","nodeType":"YulLiteral","src":"1838:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"1827:7:89","nodeType":"YulTypedName","src":"1827:7:89","type":""}]},{"nativeSrc":"1848:43:89","nodeType":"YulAssignment","src":"1848:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1876:9:89","nodeType":"YulIdentifier","src":"1876:9:89"},{"kind":"number","nativeSrc":"1887:2:89","nodeType":"YulLiteral","src":"1887:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1872:3:89","nodeType":"YulIdentifier","src":"1872:3:89"},"nativeSrc":"1872:18:89","nodeType":"YulFunctionCall","src":"1872:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1859:12:89","nodeType":"YulIdentifier","src":"1859:12:89"},"nativeSrc":"1859:32:89","nodeType":"YulFunctionCall","src":"1859:32:89"},"variableNames":[{"name":"value_1","nativeSrc":"1848:7:89","nodeType":"YulIdentifier","src":"1848:7:89"}]},{"nativeSrc":"1900:17:89","nodeType":"YulAssignment","src":"1900:17:89","value":{"name":"value_1","nativeSrc":"1910:7:89","nodeType":"YulIdentifier","src":"1910:7:89"},"variableNames":[{"name":"value1","nativeSrc":"1900:6:89","nodeType":"YulIdentifier","src":"1900:6:89"}]},{"nativeSrc":"1926:46:89","nodeType":"YulVariableDeclaration","src":"1926:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1957:9:89","nodeType":"YulIdentifier","src":"1957:9:89"},{"kind":"number","nativeSrc":"1968:2:89","nodeType":"YulLiteral","src":"1968:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1953:3:89","nodeType":"YulIdentifier","src":"1953:3:89"},"nativeSrc":"1953:18:89","nodeType":"YulFunctionCall","src":"1953:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1940:12:89","nodeType":"YulIdentifier","src":"1940:12:89"},"nativeSrc":"1940:32:89","nodeType":"YulFunctionCall","src":"1940:32:89"},"variables":[{"name":"offset","nativeSrc":"1930:6:89","nodeType":"YulTypedName","src":"1930:6:89","type":""}]},{"body":{"nativeSrc":"2015:16:89","nodeType":"YulBlock","src":"2015:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2024:1:89","nodeType":"YulLiteral","src":"2024:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2027:1:89","nodeType":"YulLiteral","src":"2027:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2017:6:89","nodeType":"YulIdentifier","src":"2017:6:89"},"nativeSrc":"2017:12:89","nodeType":"YulFunctionCall","src":"2017:12:89"},"nativeSrc":"2017:12:89","nodeType":"YulExpressionStatement","src":"2017:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1987:6:89","nodeType":"YulIdentifier","src":"1987:6:89"},{"kind":"number","nativeSrc":"1995:18:89","nodeType":"YulLiteral","src":"1995:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1984:2:89","nodeType":"YulIdentifier","src":"1984:2:89"},"nativeSrc":"1984:30:89","nodeType":"YulFunctionCall","src":"1984:30:89"},"nativeSrc":"1981:50:89","nodeType":"YulIf","src":"1981:50:89"},{"nativeSrc":"2040:84:89","nodeType":"YulVariableDeclaration","src":"2040:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2096:9:89","nodeType":"YulIdentifier","src":"2096:9:89"},{"name":"offset","nativeSrc":"2107:6:89","nodeType":"YulIdentifier","src":"2107:6:89"}],"functionName":{"name":"add","nativeSrc":"2092:3:89","nodeType":"YulIdentifier","src":"2092:3:89"},"nativeSrc":"2092:22:89","nodeType":"YulFunctionCall","src":"2092:22:89"},{"name":"dataEnd","nativeSrc":"2116:7:89","nodeType":"YulIdentifier","src":"2116:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"2066:25:89","nodeType":"YulIdentifier","src":"2066:25:89"},"nativeSrc":"2066:58:89","nodeType":"YulFunctionCall","src":"2066:58:89"},"variables":[{"name":"value2_1","nativeSrc":"2044:8:89","nodeType":"YulTypedName","src":"2044:8:89","type":""},{"name":"value3_1","nativeSrc":"2054:8:89","nodeType":"YulTypedName","src":"2054:8:89","type":""}]},{"nativeSrc":"2133:18:89","nodeType":"YulAssignment","src":"2133:18:89","value":{"name":"value2_1","nativeSrc":"2143:8:89","nodeType":"YulIdentifier","src":"2143:8:89"},"variableNames":[{"name":"value2","nativeSrc":"2133:6:89","nodeType":"YulIdentifier","src":"2133:6:89"}]},{"nativeSrc":"2160:18:89","nodeType":"YulAssignment","src":"2160:18:89","value":{"name":"value3_1","nativeSrc":"2170:8:89","nodeType":"YulIdentifier","src":"2170:8:89"},"variableNames":[{"name":"value3","nativeSrc":"2160:6:89","nodeType":"YulIdentifier","src":"2160:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr","nativeSrc":"1520:664:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1585:9:89","nodeType":"YulTypedName","src":"1585:9:89","type":""},{"name":"dataEnd","nativeSrc":"1596:7:89","nodeType":"YulTypedName","src":"1596:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1608:6:89","nodeType":"YulTypedName","src":"1608:6:89","type":""},{"name":"value1","nativeSrc":"1616:6:89","nodeType":"YulTypedName","src":"1616:6:89","type":""},{"name":"value2","nativeSrc":"1624:6:89","nodeType":"YulTypedName","src":"1624:6:89","type":""},{"name":"value3","nativeSrc":"1632:6:89","nodeType":"YulTypedName","src":"1632:6:89","type":""}],"src":"1520:664:89"},{"body":{"nativeSrc":"2238:350:89","nodeType":"YulBlock","src":"2238:350:89","statements":[{"nativeSrc":"2248:26:89","nodeType":"YulVariableDeclaration","src":"2248:26:89","value":{"arguments":[{"name":"value","nativeSrc":"2268:5:89","nodeType":"YulIdentifier","src":"2268:5:89"}],"functionName":{"name":"mload","nativeSrc":"2262:5:89","nodeType":"YulIdentifier","src":"2262:5:89"},"nativeSrc":"2262:12:89","nodeType":"YulFunctionCall","src":"2262:12:89"},"variables":[{"name":"length","nativeSrc":"2252:6:89","nodeType":"YulTypedName","src":"2252:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2290:3:89","nodeType":"YulIdentifier","src":"2290:3:89"},{"name":"length","nativeSrc":"2295:6:89","nodeType":"YulIdentifier","src":"2295:6:89"}],"functionName":{"name":"mstore","nativeSrc":"2283:6:89","nodeType":"YulIdentifier","src":"2283:6:89"},"nativeSrc":"2283:19:89","nodeType":"YulFunctionCall","src":"2283:19:89"},"nativeSrc":"2283:19:89","nodeType":"YulExpressionStatement","src":"2283:19:89"},{"nativeSrc":"2311:10:89","nodeType":"YulVariableDeclaration","src":"2311:10:89","value":{"kind":"number","nativeSrc":"2320:1:89","nodeType":"YulLiteral","src":"2320:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2315:1:89","nodeType":"YulTypedName","src":"2315:1:89","type":""}]},{"body":{"nativeSrc":"2382:87:89","nodeType":"YulBlock","src":"2382:87:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2411:3:89","nodeType":"YulIdentifier","src":"2411:3:89"},{"name":"i","nativeSrc":"2416:1:89","nodeType":"YulIdentifier","src":"2416:1:89"}],"functionName":{"name":"add","nativeSrc":"2407:3:89","nodeType":"YulIdentifier","src":"2407:3:89"},"nativeSrc":"2407:11:89","nodeType":"YulFunctionCall","src":"2407:11:89"},{"kind":"number","nativeSrc":"2420:4:89","nodeType":"YulLiteral","src":"2420:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2403:3:89","nodeType":"YulIdentifier","src":"2403:3:89"},"nativeSrc":"2403:22:89","nodeType":"YulFunctionCall","src":"2403:22:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2441:5:89","nodeType":"YulIdentifier","src":"2441:5:89"},{"name":"i","nativeSrc":"2448:1:89","nodeType":"YulIdentifier","src":"2448:1:89"}],"functionName":{"name":"add","nativeSrc":"2437:3:89","nodeType":"YulIdentifier","src":"2437:3:89"},"nativeSrc":"2437:13:89","nodeType":"YulFunctionCall","src":"2437:13:89"},{"kind":"number","nativeSrc":"2452:4:89","nodeType":"YulLiteral","src":"2452:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2433:3:89","nodeType":"YulIdentifier","src":"2433:3:89"},"nativeSrc":"2433:24:89","nodeType":"YulFunctionCall","src":"2433:24:89"}],"functionName":{"name":"mload","nativeSrc":"2427:5:89","nodeType":"YulIdentifier","src":"2427:5:89"},"nativeSrc":"2427:31:89","nodeType":"YulFunctionCall","src":"2427:31:89"}],"functionName":{"name":"mstore","nativeSrc":"2396:6:89","nodeType":"YulIdentifier","src":"2396:6:89"},"nativeSrc":"2396:63:89","nodeType":"YulFunctionCall","src":"2396:63:89"},"nativeSrc":"2396:63:89","nodeType":"YulExpressionStatement","src":"2396:63:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2341:1:89","nodeType":"YulIdentifier","src":"2341:1:89"},{"name":"length","nativeSrc":"2344:6:89","nodeType":"YulIdentifier","src":"2344:6:89"}],"functionName":{"name":"lt","nativeSrc":"2338:2:89","nodeType":"YulIdentifier","src":"2338:2:89"},"nativeSrc":"2338:13:89","nodeType":"YulFunctionCall","src":"2338:13:89"},"nativeSrc":"2330:139:89","nodeType":"YulForLoop","post":{"nativeSrc":"2352:21:89","nodeType":"YulBlock","src":"2352:21:89","statements":[{"nativeSrc":"2354:17:89","nodeType":"YulAssignment","src":"2354:17:89","value":{"arguments":[{"name":"i","nativeSrc":"2363:1:89","nodeType":"YulIdentifier","src":"2363:1:89"},{"kind":"number","nativeSrc":"2366:4:89","nodeType":"YulLiteral","src":"2366:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2359:3:89","nodeType":"YulIdentifier","src":"2359:3:89"},"nativeSrc":"2359:12:89","nodeType":"YulFunctionCall","src":"2359:12:89"},"variableNames":[{"name":"i","nativeSrc":"2354:1:89","nodeType":"YulIdentifier","src":"2354:1:89"}]}]},"pre":{"nativeSrc":"2334:3:89","nodeType":"YulBlock","src":"2334:3:89","statements":[]},"src":"2330:139:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2493:3:89","nodeType":"YulIdentifier","src":"2493:3:89"},{"name":"length","nativeSrc":"2498:6:89","nodeType":"YulIdentifier","src":"2498:6:89"}],"functionName":{"name":"add","nativeSrc":"2489:3:89","nodeType":"YulIdentifier","src":"2489:3:89"},"nativeSrc":"2489:16:89","nodeType":"YulFunctionCall","src":"2489:16:89"},{"kind":"number","nativeSrc":"2507:4:89","nodeType":"YulLiteral","src":"2507:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2485:3:89","nodeType":"YulIdentifier","src":"2485:3:89"},"nativeSrc":"2485:27:89","nodeType":"YulFunctionCall","src":"2485:27:89"},{"kind":"number","nativeSrc":"2514:1:89","nodeType":"YulLiteral","src":"2514:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2478:6:89","nodeType":"YulIdentifier","src":"2478:6:89"},"nativeSrc":"2478:38:89","nodeType":"YulFunctionCall","src":"2478:38:89"},"nativeSrc":"2478:38:89","nodeType":"YulExpressionStatement","src":"2478:38:89"},{"nativeSrc":"2525:57:89","nodeType":"YulAssignment","src":"2525:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2540:3:89","nodeType":"YulIdentifier","src":"2540:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2553:6:89","nodeType":"YulIdentifier","src":"2553:6:89"},{"kind":"number","nativeSrc":"2561:2:89","nodeType":"YulLiteral","src":"2561:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2549:3:89","nodeType":"YulIdentifier","src":"2549:3:89"},"nativeSrc":"2549:15:89","nodeType":"YulFunctionCall","src":"2549:15:89"},{"arguments":[{"kind":"number","nativeSrc":"2570:2:89","nodeType":"YulLiteral","src":"2570:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2566:3:89","nodeType":"YulIdentifier","src":"2566:3:89"},"nativeSrc":"2566:7:89","nodeType":"YulFunctionCall","src":"2566:7:89"}],"functionName":{"name":"and","nativeSrc":"2545:3:89","nodeType":"YulIdentifier","src":"2545:3:89"},"nativeSrc":"2545:29:89","nodeType":"YulFunctionCall","src":"2545:29:89"}],"functionName":{"name":"add","nativeSrc":"2536:3:89","nodeType":"YulIdentifier","src":"2536:3:89"},"nativeSrc":"2536:39:89","nodeType":"YulFunctionCall","src":"2536:39:89"},{"kind":"number","nativeSrc":"2577:4:89","nodeType":"YulLiteral","src":"2577:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2532:3:89","nodeType":"YulIdentifier","src":"2532:3:89"},"nativeSrc":"2532:50:89","nodeType":"YulFunctionCall","src":"2532:50:89"},"variableNames":[{"name":"end","nativeSrc":"2525:3:89","nodeType":"YulIdentifier","src":"2525:3:89"}]}]},"name":"abi_encode_bytes","nativeSrc":"2189:399:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2215:5:89","nodeType":"YulTypedName","src":"2215:5:89","type":""},{"name":"pos","nativeSrc":"2222:3:89","nodeType":"YulTypedName","src":"2222:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2230:3:89","nodeType":"YulTypedName","src":"2230:3:89","type":""}],"src":"2189:399:89"},{"body":{"nativeSrc":"2734:157:89","nodeType":"YulBlock","src":"2734:157:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2751:9:89","nodeType":"YulIdentifier","src":"2751:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2776:6:89","nodeType":"YulIdentifier","src":"2776:6:89"}],"functionName":{"name":"iszero","nativeSrc":"2769:6:89","nodeType":"YulIdentifier","src":"2769:6:89"},"nativeSrc":"2769:14:89","nodeType":"YulFunctionCall","src":"2769:14:89"}],"functionName":{"name":"iszero","nativeSrc":"2762:6:89","nodeType":"YulIdentifier","src":"2762:6:89"},"nativeSrc":"2762:22:89","nodeType":"YulFunctionCall","src":"2762:22:89"}],"functionName":{"name":"mstore","nativeSrc":"2744:6:89","nodeType":"YulIdentifier","src":"2744:6:89"},"nativeSrc":"2744:41:89","nodeType":"YulFunctionCall","src":"2744:41:89"},"nativeSrc":"2744:41:89","nodeType":"YulExpressionStatement","src":"2744:41:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2805:9:89","nodeType":"YulIdentifier","src":"2805:9:89"},{"kind":"number","nativeSrc":"2816:2:89","nodeType":"YulLiteral","src":"2816:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2801:3:89","nodeType":"YulIdentifier","src":"2801:3:89"},"nativeSrc":"2801:18:89","nodeType":"YulFunctionCall","src":"2801:18:89"},{"kind":"number","nativeSrc":"2821:2:89","nodeType":"YulLiteral","src":"2821:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"2794:6:89","nodeType":"YulIdentifier","src":"2794:6:89"},"nativeSrc":"2794:30:89","nodeType":"YulFunctionCall","src":"2794:30:89"},"nativeSrc":"2794:30:89","nodeType":"YulExpressionStatement","src":"2794:30:89"},{"nativeSrc":"2833:52:89","nodeType":"YulAssignment","src":"2833:52:89","value":{"arguments":[{"name":"value1","nativeSrc":"2858:6:89","nodeType":"YulIdentifier","src":"2858:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"2870:9:89","nodeType":"YulIdentifier","src":"2870:9:89"},{"kind":"number","nativeSrc":"2881:2:89","nodeType":"YulLiteral","src":"2881:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2866:3:89","nodeType":"YulIdentifier","src":"2866:3:89"},"nativeSrc":"2866:18:89","nodeType":"YulFunctionCall","src":"2866:18:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"2841:16:89","nodeType":"YulIdentifier","src":"2841:16:89"},"nativeSrc":"2841:44:89","nodeType":"YulFunctionCall","src":"2841:44:89"},"variableNames":[{"name":"tail","nativeSrc":"2833:4:89","nodeType":"YulIdentifier","src":"2833:4:89"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"2593:298:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2695:9:89","nodeType":"YulTypedName","src":"2695:9:89","type":""},{"name":"value1","nativeSrc":"2706:6:89","nodeType":"YulTypedName","src":"2706:6:89","type":""},{"name":"value0","nativeSrc":"2714:6:89","nodeType":"YulTypedName","src":"2714:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2725:4:89","nodeType":"YulTypedName","src":"2725:4:89","type":""}],"src":"2593:298:89"},{"body":{"nativeSrc":"2980:283:89","nodeType":"YulBlock","src":"2980:283:89","statements":[{"body":{"nativeSrc":"3029:16:89","nodeType":"YulBlock","src":"3029:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3038:1:89","nodeType":"YulLiteral","src":"3038:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3041:1:89","nodeType":"YulLiteral","src":"3041:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3031:6:89","nodeType":"YulIdentifier","src":"3031:6:89"},"nativeSrc":"3031:12:89","nodeType":"YulFunctionCall","src":"3031:12:89"},"nativeSrc":"3031:12:89","nodeType":"YulExpressionStatement","src":"3031:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3008:6:89","nodeType":"YulIdentifier","src":"3008:6:89"},{"kind":"number","nativeSrc":"3016:4:89","nodeType":"YulLiteral","src":"3016:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3004:3:89","nodeType":"YulIdentifier","src":"3004:3:89"},"nativeSrc":"3004:17:89","nodeType":"YulFunctionCall","src":"3004:17:89"},{"name":"end","nativeSrc":"3023:3:89","nodeType":"YulIdentifier","src":"3023:3:89"}],"functionName":{"name":"slt","nativeSrc":"3000:3:89","nodeType":"YulIdentifier","src":"3000:3:89"},"nativeSrc":"3000:27:89","nodeType":"YulFunctionCall","src":"3000:27:89"}],"functionName":{"name":"iszero","nativeSrc":"2993:6:89","nodeType":"YulIdentifier","src":"2993:6:89"},"nativeSrc":"2993:35:89","nodeType":"YulFunctionCall","src":"2993:35:89"},"nativeSrc":"2990:55:89","nodeType":"YulIf","src":"2990:55:89"},{"nativeSrc":"3054:30:89","nodeType":"YulAssignment","src":"3054:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"3077:6:89","nodeType":"YulIdentifier","src":"3077:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"3064:12:89","nodeType":"YulIdentifier","src":"3064:12:89"},"nativeSrc":"3064:20:89","nodeType":"YulFunctionCall","src":"3064:20:89"},"variableNames":[{"name":"length","nativeSrc":"3054:6:89","nodeType":"YulIdentifier","src":"3054:6:89"}]},{"body":{"nativeSrc":"3127:16:89","nodeType":"YulBlock","src":"3127:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3136:1:89","nodeType":"YulLiteral","src":"3136:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3139:1:89","nodeType":"YulLiteral","src":"3139:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3129:6:89","nodeType":"YulIdentifier","src":"3129:6:89"},"nativeSrc":"3129:12:89","nodeType":"YulFunctionCall","src":"3129:12:89"},"nativeSrc":"3129:12:89","nodeType":"YulExpressionStatement","src":"3129:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3099:6:89","nodeType":"YulIdentifier","src":"3099:6:89"},{"kind":"number","nativeSrc":"3107:18:89","nodeType":"YulLiteral","src":"3107:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3096:2:89","nodeType":"YulIdentifier","src":"3096:2:89"},"nativeSrc":"3096:30:89","nodeType":"YulFunctionCall","src":"3096:30:89"},"nativeSrc":"3093:50:89","nodeType":"YulIf","src":"3093:50:89"},{"nativeSrc":"3152:29:89","nodeType":"YulAssignment","src":"3152:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"3168:6:89","nodeType":"YulIdentifier","src":"3168:6:89"},{"kind":"number","nativeSrc":"3176:4:89","nodeType":"YulLiteral","src":"3176:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3164:3:89","nodeType":"YulIdentifier","src":"3164:3:89"},"nativeSrc":"3164:17:89","nodeType":"YulFunctionCall","src":"3164:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"3152:8:89","nodeType":"YulIdentifier","src":"3152:8:89"}]},{"body":{"nativeSrc":"3241:16:89","nodeType":"YulBlock","src":"3241:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3250:1:89","nodeType":"YulLiteral","src":"3250:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3253:1:89","nodeType":"YulLiteral","src":"3253:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3243:6:89","nodeType":"YulIdentifier","src":"3243:6:89"},"nativeSrc":"3243:12:89","nodeType":"YulFunctionCall","src":"3243:12:89"},"nativeSrc":"3243:12:89","nodeType":"YulExpressionStatement","src":"3243:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3204:6:89","nodeType":"YulIdentifier","src":"3204:6:89"},{"arguments":[{"kind":"number","nativeSrc":"3216:1:89","nodeType":"YulLiteral","src":"3216:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"3219:6:89","nodeType":"YulIdentifier","src":"3219:6:89"}],"functionName":{"name":"shl","nativeSrc":"3212:3:89","nodeType":"YulIdentifier","src":"3212:3:89"},"nativeSrc":"3212:14:89","nodeType":"YulFunctionCall","src":"3212:14:89"}],"functionName":{"name":"add","nativeSrc":"3200:3:89","nodeType":"YulIdentifier","src":"3200:3:89"},"nativeSrc":"3200:27:89","nodeType":"YulFunctionCall","src":"3200:27:89"},{"kind":"number","nativeSrc":"3229:4:89","nodeType":"YulLiteral","src":"3229:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3196:3:89","nodeType":"YulIdentifier","src":"3196:3:89"},"nativeSrc":"3196:38:89","nodeType":"YulFunctionCall","src":"3196:38:89"},{"name":"end","nativeSrc":"3236:3:89","nodeType":"YulIdentifier","src":"3236:3:89"}],"functionName":{"name":"gt","nativeSrc":"3193:2:89","nodeType":"YulIdentifier","src":"3193:2:89"},"nativeSrc":"3193:47:89","nodeType":"YulFunctionCall","src":"3193:47:89"},"nativeSrc":"3190:67:89","nodeType":"YulIf","src":"3190:67:89"}]},"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"2896:367:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2943:6:89","nodeType":"YulTypedName","src":"2943:6:89","type":""},{"name":"end","nativeSrc":"2951:3:89","nodeType":"YulTypedName","src":"2951:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2959:8:89","nodeType":"YulTypedName","src":"2959:8:89","type":""},{"name":"length","nativeSrc":"2969:6:89","nodeType":"YulTypedName","src":"2969:6:89","type":""}],"src":"2896:367:89"},{"body":{"nativeSrc":"3488:890:89","nodeType":"YulBlock","src":"3488:890:89","statements":[{"body":{"nativeSrc":"3534:16:89","nodeType":"YulBlock","src":"3534:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3543:1:89","nodeType":"YulLiteral","src":"3543:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3546:1:89","nodeType":"YulLiteral","src":"3546:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3536:6:89","nodeType":"YulIdentifier","src":"3536:6:89"},"nativeSrc":"3536:12:89","nodeType":"YulFunctionCall","src":"3536:12:89"},"nativeSrc":"3536:12:89","nodeType":"YulExpressionStatement","src":"3536:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3509:7:89","nodeType":"YulIdentifier","src":"3509:7:89"},{"name":"headStart","nativeSrc":"3518:9:89","nodeType":"YulIdentifier","src":"3518:9:89"}],"functionName":{"name":"sub","nativeSrc":"3505:3:89","nodeType":"YulIdentifier","src":"3505:3:89"},"nativeSrc":"3505:23:89","nodeType":"YulFunctionCall","src":"3505:23:89"},{"kind":"number","nativeSrc":"3530:2:89","nodeType":"YulLiteral","src":"3530:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3501:3:89","nodeType":"YulIdentifier","src":"3501:3:89"},"nativeSrc":"3501:32:89","nodeType":"YulFunctionCall","src":"3501:32:89"},"nativeSrc":"3498:52:89","nodeType":"YulIf","src":"3498:52:89"},{"nativeSrc":"3559:37:89","nodeType":"YulVariableDeclaration","src":"3559:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3586:9:89","nodeType":"YulIdentifier","src":"3586:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3573:12:89","nodeType":"YulIdentifier","src":"3573:12:89"},"nativeSrc":"3573:23:89","nodeType":"YulFunctionCall","src":"3573:23:89"},"variables":[{"name":"offset","nativeSrc":"3563:6:89","nodeType":"YulTypedName","src":"3563:6:89","type":""}]},{"body":{"nativeSrc":"3639:16:89","nodeType":"YulBlock","src":"3639:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3648:1:89","nodeType":"YulLiteral","src":"3648:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3651:1:89","nodeType":"YulLiteral","src":"3651:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3641:6:89","nodeType":"YulIdentifier","src":"3641:6:89"},"nativeSrc":"3641:12:89","nodeType":"YulFunctionCall","src":"3641:12:89"},"nativeSrc":"3641:12:89","nodeType":"YulExpressionStatement","src":"3641:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3611:6:89","nodeType":"YulIdentifier","src":"3611:6:89"},{"kind":"number","nativeSrc":"3619:18:89","nodeType":"YulLiteral","src":"3619:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3608:2:89","nodeType":"YulIdentifier","src":"3608:2:89"},"nativeSrc":"3608:30:89","nodeType":"YulFunctionCall","src":"3608:30:89"},"nativeSrc":"3605:50:89","nodeType":"YulIf","src":"3605:50:89"},{"nativeSrc":"3664:96:89","nodeType":"YulVariableDeclaration","src":"3664:96:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3732:9:89","nodeType":"YulIdentifier","src":"3732:9:89"},{"name":"offset","nativeSrc":"3743:6:89","nodeType":"YulIdentifier","src":"3743:6:89"}],"functionName":{"name":"add","nativeSrc":"3728:3:89","nodeType":"YulIdentifier","src":"3728:3:89"},"nativeSrc":"3728:22:89","nodeType":"YulFunctionCall","src":"3728:22:89"},{"name":"dataEnd","nativeSrc":"3752:7:89","nodeType":"YulIdentifier","src":"3752:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"3690:37:89","nodeType":"YulIdentifier","src":"3690:37:89"},"nativeSrc":"3690:70:89","nodeType":"YulFunctionCall","src":"3690:70:89"},"variables":[{"name":"value0_1","nativeSrc":"3668:8:89","nodeType":"YulTypedName","src":"3668:8:89","type":""},{"name":"value1_1","nativeSrc":"3678:8:89","nodeType":"YulTypedName","src":"3678:8:89","type":""}]},{"nativeSrc":"3769:18:89","nodeType":"YulAssignment","src":"3769:18:89","value":{"name":"value0_1","nativeSrc":"3779:8:89","nodeType":"YulIdentifier","src":"3779:8:89"},"variableNames":[{"name":"value0","nativeSrc":"3769:6:89","nodeType":"YulIdentifier","src":"3769:6:89"}]},{"nativeSrc":"3796:18:89","nodeType":"YulAssignment","src":"3796:18:89","value":{"name":"value1_1","nativeSrc":"3806:8:89","nodeType":"YulIdentifier","src":"3806:8:89"},"variableNames":[{"name":"value1","nativeSrc":"3796:6:89","nodeType":"YulIdentifier","src":"3796:6:89"}]},{"nativeSrc":"3823:48:89","nodeType":"YulVariableDeclaration","src":"3823:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3856:9:89","nodeType":"YulIdentifier","src":"3856:9:89"},{"kind":"number","nativeSrc":"3867:2:89","nodeType":"YulLiteral","src":"3867:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3852:3:89","nodeType":"YulIdentifier","src":"3852:3:89"},"nativeSrc":"3852:18:89","nodeType":"YulFunctionCall","src":"3852:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3839:12:89","nodeType":"YulIdentifier","src":"3839:12:89"},"nativeSrc":"3839:32:89","nodeType":"YulFunctionCall","src":"3839:32:89"},"variables":[{"name":"offset_1","nativeSrc":"3827:8:89","nodeType":"YulTypedName","src":"3827:8:89","type":""}]},{"body":{"nativeSrc":"3916:16:89","nodeType":"YulBlock","src":"3916:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3925:1:89","nodeType":"YulLiteral","src":"3925:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3928:1:89","nodeType":"YulLiteral","src":"3928:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3918:6:89","nodeType":"YulIdentifier","src":"3918:6:89"},"nativeSrc":"3918:12:89","nodeType":"YulFunctionCall","src":"3918:12:89"},"nativeSrc":"3918:12:89","nodeType":"YulExpressionStatement","src":"3918:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3886:8:89","nodeType":"YulIdentifier","src":"3886:8:89"},{"kind":"number","nativeSrc":"3896:18:89","nodeType":"YulLiteral","src":"3896:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3883:2:89","nodeType":"YulIdentifier","src":"3883:2:89"},"nativeSrc":"3883:32:89","nodeType":"YulFunctionCall","src":"3883:32:89"},"nativeSrc":"3880:52:89","nodeType":"YulIf","src":"3880:52:89"},{"nativeSrc":"3941:98:89","nodeType":"YulVariableDeclaration","src":"3941:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:89","nodeType":"YulIdentifier","src":"4009:9:89"},{"name":"offset_1","nativeSrc":"4020:8:89","nodeType":"YulIdentifier","src":"4020:8:89"}],"functionName":{"name":"add","nativeSrc":"4005:3:89","nodeType":"YulIdentifier","src":"4005:3:89"},"nativeSrc":"4005:24:89","nodeType":"YulFunctionCall","src":"4005:24:89"},{"name":"dataEnd","nativeSrc":"4031:7:89","nodeType":"YulIdentifier","src":"4031:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"3967:37:89","nodeType":"YulIdentifier","src":"3967:37:89"},"nativeSrc":"3967:72:89","nodeType":"YulFunctionCall","src":"3967:72:89"},"variables":[{"name":"value2_1","nativeSrc":"3945:8:89","nodeType":"YulTypedName","src":"3945:8:89","type":""},{"name":"value3_1","nativeSrc":"3955:8:89","nodeType":"YulTypedName","src":"3955:8:89","type":""}]},{"nativeSrc":"4048:18:89","nodeType":"YulAssignment","src":"4048:18:89","value":{"name":"value2_1","nativeSrc":"4058:8:89","nodeType":"YulIdentifier","src":"4058:8:89"},"variableNames":[{"name":"value2","nativeSrc":"4048:6:89","nodeType":"YulIdentifier","src":"4048:6:89"}]},{"nativeSrc":"4075:18:89","nodeType":"YulAssignment","src":"4075:18:89","value":{"name":"value3_1","nativeSrc":"4085:8:89","nodeType":"YulIdentifier","src":"4085:8:89"},"variableNames":[{"name":"value3","nativeSrc":"4075:6:89","nodeType":"YulIdentifier","src":"4075:6:89"}]},{"nativeSrc":"4102:48:89","nodeType":"YulVariableDeclaration","src":"4102:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4135:9:89","nodeType":"YulIdentifier","src":"4135:9:89"},{"kind":"number","nativeSrc":"4146:2:89","nodeType":"YulLiteral","src":"4146:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4131:3:89","nodeType":"YulIdentifier","src":"4131:3:89"},"nativeSrc":"4131:18:89","nodeType":"YulFunctionCall","src":"4131:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4118:12:89","nodeType":"YulIdentifier","src":"4118:12:89"},"nativeSrc":"4118:32:89","nodeType":"YulFunctionCall","src":"4118:32:89"},"variables":[{"name":"offset_2","nativeSrc":"4106:8:89","nodeType":"YulTypedName","src":"4106:8:89","type":""}]},{"body":{"nativeSrc":"4195:16:89","nodeType":"YulBlock","src":"4195:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4204:1:89","nodeType":"YulLiteral","src":"4204:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4207:1:89","nodeType":"YulLiteral","src":"4207:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4197:6:89","nodeType":"YulIdentifier","src":"4197:6:89"},"nativeSrc":"4197:12:89","nodeType":"YulFunctionCall","src":"4197:12:89"},"nativeSrc":"4197:12:89","nodeType":"YulExpressionStatement","src":"4197:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"4165:8:89","nodeType":"YulIdentifier","src":"4165:8:89"},{"kind":"number","nativeSrc":"4175:18:89","nodeType":"YulLiteral","src":"4175:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4162:2:89","nodeType":"YulIdentifier","src":"4162:2:89"},"nativeSrc":"4162:32:89","nodeType":"YulFunctionCall","src":"4162:32:89"},"nativeSrc":"4159:52:89","nodeType":"YulIf","src":"4159:52:89"},{"nativeSrc":"4220:98:89","nodeType":"YulVariableDeclaration","src":"4220:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4288:9:89","nodeType":"YulIdentifier","src":"4288:9:89"},{"name":"offset_2","nativeSrc":"4299:8:89","nodeType":"YulIdentifier","src":"4299:8:89"}],"functionName":{"name":"add","nativeSrc":"4284:3:89","nodeType":"YulIdentifier","src":"4284:3:89"},"nativeSrc":"4284:24:89","nodeType":"YulFunctionCall","src":"4284:24:89"},{"name":"dataEnd","nativeSrc":"4310:7:89","nodeType":"YulIdentifier","src":"4310:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"4246:37:89","nodeType":"YulIdentifier","src":"4246:37:89"},"nativeSrc":"4246:72:89","nodeType":"YulFunctionCall","src":"4246:72:89"},"variables":[{"name":"value4_1","nativeSrc":"4224:8:89","nodeType":"YulTypedName","src":"4224:8:89","type":""},{"name":"value5_1","nativeSrc":"4234:8:89","nodeType":"YulTypedName","src":"4234:8:89","type":""}]},{"nativeSrc":"4327:18:89","nodeType":"YulAssignment","src":"4327:18:89","value":{"name":"value4_1","nativeSrc":"4337:8:89","nodeType":"YulIdentifier","src":"4337:8:89"},"variableNames":[{"name":"value4","nativeSrc":"4327:6:89","nodeType":"YulIdentifier","src":"4327:6:89"}]},{"nativeSrc":"4354:18:89","nodeType":"YulAssignment","src":"4354:18:89","value":{"name":"value5_1","nativeSrc":"4364:8:89","nodeType":"YulIdentifier","src":"4364:8:89"},"variableNames":[{"name":"value5","nativeSrc":"4354:6:89","nodeType":"YulIdentifier","src":"4354:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"3268:1110:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3414:9:89","nodeType":"YulTypedName","src":"3414:9:89","type":""},{"name":"dataEnd","nativeSrc":"3425:7:89","nodeType":"YulTypedName","src":"3425:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3437:6:89","nodeType":"YulTypedName","src":"3437:6:89","type":""},{"name":"value1","nativeSrc":"3445:6:89","nodeType":"YulTypedName","src":"3445:6:89","type":""},{"name":"value2","nativeSrc":"3453:6:89","nodeType":"YulTypedName","src":"3453:6:89","type":""},{"name":"value3","nativeSrc":"3461:6:89","nodeType":"YulTypedName","src":"3461:6:89","type":""},{"name":"value4","nativeSrc":"3469:6:89","nodeType":"YulTypedName","src":"3469:6:89","type":""},{"name":"value5","nativeSrc":"3477:6:89","nodeType":"YulTypedName","src":"3477:6:89","type":""}],"src":"3268:1110:89"},{"body":{"nativeSrc":"4552:610:89","nodeType":"YulBlock","src":"4552:610:89","statements":[{"nativeSrc":"4562:32:89","nodeType":"YulVariableDeclaration","src":"4562:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4580:9:89","nodeType":"YulIdentifier","src":"4580:9:89"},{"kind":"number","nativeSrc":"4591:2:89","nodeType":"YulLiteral","src":"4591:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4576:3:89","nodeType":"YulIdentifier","src":"4576:3:89"},"nativeSrc":"4576:18:89","nodeType":"YulFunctionCall","src":"4576:18:89"},"variables":[{"name":"tail_1","nativeSrc":"4566:6:89","nodeType":"YulTypedName","src":"4566:6:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4610:9:89","nodeType":"YulIdentifier","src":"4610:9:89"},{"kind":"number","nativeSrc":"4621:2:89","nodeType":"YulLiteral","src":"4621:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4603:6:89","nodeType":"YulIdentifier","src":"4603:6:89"},"nativeSrc":"4603:21:89","nodeType":"YulFunctionCall","src":"4603:21:89"},"nativeSrc":"4603:21:89","nodeType":"YulExpressionStatement","src":"4603:21:89"},{"nativeSrc":"4633:17:89","nodeType":"YulVariableDeclaration","src":"4633:17:89","value":{"name":"tail_1","nativeSrc":"4644:6:89","nodeType":"YulIdentifier","src":"4644:6:89"},"variables":[{"name":"pos","nativeSrc":"4637:3:89","nodeType":"YulTypedName","src":"4637:3:89","type":""}]},{"nativeSrc":"4659:27:89","nodeType":"YulVariableDeclaration","src":"4659:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"4679:6:89","nodeType":"YulIdentifier","src":"4679:6:89"}],"functionName":{"name":"mload","nativeSrc":"4673:5:89","nodeType":"YulIdentifier","src":"4673:5:89"},"nativeSrc":"4673:13:89","nodeType":"YulFunctionCall","src":"4673:13:89"},"variables":[{"name":"length","nativeSrc":"4663:6:89","nodeType":"YulTypedName","src":"4663:6:89","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"4702:6:89","nodeType":"YulIdentifier","src":"4702:6:89"},{"name":"length","nativeSrc":"4710:6:89","nodeType":"YulIdentifier","src":"4710:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4695:6:89","nodeType":"YulIdentifier","src":"4695:6:89"},"nativeSrc":"4695:22:89","nodeType":"YulFunctionCall","src":"4695:22:89"},"nativeSrc":"4695:22:89","nodeType":"YulExpressionStatement","src":"4695:22:89"},{"nativeSrc":"4726:25:89","nodeType":"YulAssignment","src":"4726:25:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4737:9:89","nodeType":"YulIdentifier","src":"4737:9:89"},{"kind":"number","nativeSrc":"4748:2:89","nodeType":"YulLiteral","src":"4748:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4733:3:89","nodeType":"YulIdentifier","src":"4733:3:89"},"nativeSrc":"4733:18:89","nodeType":"YulFunctionCall","src":"4733:18:89"},"variableNames":[{"name":"pos","nativeSrc":"4726:3:89","nodeType":"YulIdentifier","src":"4726:3:89"}]},{"nativeSrc":"4760:53:89","nodeType":"YulVariableDeclaration","src":"4760:53:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4782:9:89","nodeType":"YulIdentifier","src":"4782:9:89"},{"arguments":[{"kind":"number","nativeSrc":"4797:1:89","nodeType":"YulLiteral","src":"4797:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"4800:6:89","nodeType":"YulIdentifier","src":"4800:6:89"}],"functionName":{"name":"shl","nativeSrc":"4793:3:89","nodeType":"YulIdentifier","src":"4793:3:89"},"nativeSrc":"4793:14:89","nodeType":"YulFunctionCall","src":"4793:14:89"}],"functionName":{"name":"add","nativeSrc":"4778:3:89","nodeType":"YulIdentifier","src":"4778:3:89"},"nativeSrc":"4778:30:89","nodeType":"YulFunctionCall","src":"4778:30:89"},{"kind":"number","nativeSrc":"4810:2:89","nodeType":"YulLiteral","src":"4810:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4774:3:89","nodeType":"YulIdentifier","src":"4774:3:89"},"nativeSrc":"4774:39:89","nodeType":"YulFunctionCall","src":"4774:39:89"},"variables":[{"name":"tail_2","nativeSrc":"4764:6:89","nodeType":"YulTypedName","src":"4764:6:89","type":""}]},{"nativeSrc":"4822:29:89","nodeType":"YulVariableDeclaration","src":"4822:29:89","value":{"arguments":[{"name":"value0","nativeSrc":"4840:6:89","nodeType":"YulIdentifier","src":"4840:6:89"},{"kind":"number","nativeSrc":"4848:2:89","nodeType":"YulLiteral","src":"4848:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4836:3:89","nodeType":"YulIdentifier","src":"4836:3:89"},"nativeSrc":"4836:15:89","nodeType":"YulFunctionCall","src":"4836:15:89"},"variables":[{"name":"srcPtr","nativeSrc":"4826:6:89","nodeType":"YulTypedName","src":"4826:6:89","type":""}]},{"nativeSrc":"4860:10:89","nodeType":"YulVariableDeclaration","src":"4860:10:89","value":{"kind":"number","nativeSrc":"4869:1:89","nodeType":"YulLiteral","src":"4869:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4864:1:89","nodeType":"YulTypedName","src":"4864:1:89","type":""}]},{"body":{"nativeSrc":"4928:205:89","nodeType":"YulBlock","src":"4928:205:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4949:3:89","nodeType":"YulIdentifier","src":"4949:3:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"4962:6:89","nodeType":"YulIdentifier","src":"4962:6:89"},{"name":"headStart","nativeSrc":"4970:9:89","nodeType":"YulIdentifier","src":"4970:9:89"}],"functionName":{"name":"sub","nativeSrc":"4958:3:89","nodeType":"YulIdentifier","src":"4958:3:89"},"nativeSrc":"4958:22:89","nodeType":"YulFunctionCall","src":"4958:22:89"},{"arguments":[{"kind":"number","nativeSrc":"4986:2:89","nodeType":"YulLiteral","src":"4986:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"4982:3:89","nodeType":"YulIdentifier","src":"4982:3:89"},"nativeSrc":"4982:7:89","nodeType":"YulFunctionCall","src":"4982:7:89"}],"functionName":{"name":"add","nativeSrc":"4954:3:89","nodeType":"YulIdentifier","src":"4954:3:89"},"nativeSrc":"4954:36:89","nodeType":"YulFunctionCall","src":"4954:36:89"}],"functionName":{"name":"mstore","nativeSrc":"4942:6:89","nodeType":"YulIdentifier","src":"4942:6:89"},"nativeSrc":"4942:49:89","nodeType":"YulFunctionCall","src":"4942:49:89"},"nativeSrc":"4942:49:89","nodeType":"YulExpressionStatement","src":"4942:49:89"},{"nativeSrc":"5004:49:89","nodeType":"YulAssignment","src":"5004:49:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"5037:6:89","nodeType":"YulIdentifier","src":"5037:6:89"}],"functionName":{"name":"mload","nativeSrc":"5031:5:89","nodeType":"YulIdentifier","src":"5031:5:89"},"nativeSrc":"5031:13:89","nodeType":"YulFunctionCall","src":"5031:13:89"},{"name":"tail_2","nativeSrc":"5046:6:89","nodeType":"YulIdentifier","src":"5046:6:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"5014:16:89","nodeType":"YulIdentifier","src":"5014:16:89"},"nativeSrc":"5014:39:89","nodeType":"YulFunctionCall","src":"5014:39:89"},"variableNames":[{"name":"tail_2","nativeSrc":"5004:6:89","nodeType":"YulIdentifier","src":"5004:6:89"}]},{"nativeSrc":"5066:25:89","nodeType":"YulAssignment","src":"5066:25:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"5080:6:89","nodeType":"YulIdentifier","src":"5080:6:89"},{"kind":"number","nativeSrc":"5088:2:89","nodeType":"YulLiteral","src":"5088:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5076:3:89","nodeType":"YulIdentifier","src":"5076:3:89"},"nativeSrc":"5076:15:89","nodeType":"YulFunctionCall","src":"5076:15:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"5066:6:89","nodeType":"YulIdentifier","src":"5066:6:89"}]},{"nativeSrc":"5104:19:89","nodeType":"YulAssignment","src":"5104:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"5115:3:89","nodeType":"YulIdentifier","src":"5115:3:89"},{"kind":"number","nativeSrc":"5120:2:89","nodeType":"YulLiteral","src":"5120:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5111:3:89","nodeType":"YulIdentifier","src":"5111:3:89"},"nativeSrc":"5111:12:89","nodeType":"YulFunctionCall","src":"5111:12:89"},"variableNames":[{"name":"pos","nativeSrc":"5104:3:89","nodeType":"YulIdentifier","src":"5104:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4890:1:89","nodeType":"YulIdentifier","src":"4890:1:89"},{"name":"length","nativeSrc":"4893:6:89","nodeType":"YulIdentifier","src":"4893:6:89"}],"functionName":{"name":"lt","nativeSrc":"4887:2:89","nodeType":"YulIdentifier","src":"4887:2:89"},"nativeSrc":"4887:13:89","nodeType":"YulFunctionCall","src":"4887:13:89"},"nativeSrc":"4879:254:89","nodeType":"YulForLoop","post":{"nativeSrc":"4901:18:89","nodeType":"YulBlock","src":"4901:18:89","statements":[{"nativeSrc":"4903:14:89","nodeType":"YulAssignment","src":"4903:14:89","value":{"arguments":[{"name":"i","nativeSrc":"4912:1:89","nodeType":"YulIdentifier","src":"4912:1:89"},{"kind":"number","nativeSrc":"4915:1:89","nodeType":"YulLiteral","src":"4915:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4908:3:89","nodeType":"YulIdentifier","src":"4908:3:89"},"nativeSrc":"4908:9:89","nodeType":"YulFunctionCall","src":"4908:9:89"},"variableNames":[{"name":"i","nativeSrc":"4903:1:89","nodeType":"YulIdentifier","src":"4903:1:89"}]}]},"pre":{"nativeSrc":"4883:3:89","nodeType":"YulBlock","src":"4883:3:89","statements":[]},"src":"4879:254:89"},{"nativeSrc":"5142:14:89","nodeType":"YulAssignment","src":"5142:14:89","value":{"name":"tail_2","nativeSrc":"5150:6:89","nodeType":"YulIdentifier","src":"5150:6:89"},"variableNames":[{"name":"tail","nativeSrc":"5142:4:89","nodeType":"YulIdentifier","src":"5142:4:89"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"4383:779:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4521:9:89","nodeType":"YulTypedName","src":"4521:9:89","type":""},{"name":"value0","nativeSrc":"4532:6:89","nodeType":"YulTypedName","src":"4532:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4543:4:89","nodeType":"YulTypedName","src":"4543:4:89","type":""}],"src":"4383:779:89"},{"body":{"nativeSrc":"5273:438:89","nodeType":"YulBlock","src":"5273:438:89","statements":[{"body":{"nativeSrc":"5319:16:89","nodeType":"YulBlock","src":"5319:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5328:1:89","nodeType":"YulLiteral","src":"5328:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5331:1:89","nodeType":"YulLiteral","src":"5331:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5321:6:89","nodeType":"YulIdentifier","src":"5321:6:89"},"nativeSrc":"5321:12:89","nodeType":"YulFunctionCall","src":"5321:12:89"},"nativeSrc":"5321:12:89","nodeType":"YulExpressionStatement","src":"5321:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5294:7:89","nodeType":"YulIdentifier","src":"5294:7:89"},{"name":"headStart","nativeSrc":"5303:9:89","nodeType":"YulIdentifier","src":"5303:9:89"}],"functionName":{"name":"sub","nativeSrc":"5290:3:89","nodeType":"YulIdentifier","src":"5290:3:89"},"nativeSrc":"5290:23:89","nodeType":"YulFunctionCall","src":"5290:23:89"},{"kind":"number","nativeSrc":"5315:2:89","nodeType":"YulLiteral","src":"5315:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5286:3:89","nodeType":"YulIdentifier","src":"5286:3:89"},"nativeSrc":"5286:32:89","nodeType":"YulFunctionCall","src":"5286:32:89"},"nativeSrc":"5283:52:89","nodeType":"YulIf","src":"5283:52:89"},{"nativeSrc":"5344:36:89","nodeType":"YulVariableDeclaration","src":"5344:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5370:9:89","nodeType":"YulIdentifier","src":"5370:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"5357:12:89","nodeType":"YulIdentifier","src":"5357:12:89"},"nativeSrc":"5357:23:89","nodeType":"YulFunctionCall","src":"5357:23:89"},"variables":[{"name":"value","nativeSrc":"5348:5:89","nodeType":"YulTypedName","src":"5348:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5414:5:89","nodeType":"YulIdentifier","src":"5414:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5389:24:89","nodeType":"YulIdentifier","src":"5389:24:89"},"nativeSrc":"5389:31:89","nodeType":"YulFunctionCall","src":"5389:31:89"},"nativeSrc":"5389:31:89","nodeType":"YulExpressionStatement","src":"5389:31:89"},{"nativeSrc":"5429:15:89","nodeType":"YulAssignment","src":"5429:15:89","value":{"name":"value","nativeSrc":"5439:5:89","nodeType":"YulIdentifier","src":"5439:5:89"},"variableNames":[{"name":"value0","nativeSrc":"5429:6:89","nodeType":"YulIdentifier","src":"5429:6:89"}]},{"nativeSrc":"5453:46:89","nodeType":"YulVariableDeclaration","src":"5453:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5484:9:89","nodeType":"YulIdentifier","src":"5484:9:89"},{"kind":"number","nativeSrc":"5495:2:89","nodeType":"YulLiteral","src":"5495:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5480:3:89","nodeType":"YulIdentifier","src":"5480:3:89"},"nativeSrc":"5480:18:89","nodeType":"YulFunctionCall","src":"5480:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"5467:12:89","nodeType":"YulIdentifier","src":"5467:12:89"},"nativeSrc":"5467:32:89","nodeType":"YulFunctionCall","src":"5467:32:89"},"variables":[{"name":"offset","nativeSrc":"5457:6:89","nodeType":"YulTypedName","src":"5457:6:89","type":""}]},{"body":{"nativeSrc":"5542:16:89","nodeType":"YulBlock","src":"5542:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5551:1:89","nodeType":"YulLiteral","src":"5551:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5554:1:89","nodeType":"YulLiteral","src":"5554:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5544:6:89","nodeType":"YulIdentifier","src":"5544:6:89"},"nativeSrc":"5544:12:89","nodeType":"YulFunctionCall","src":"5544:12:89"},"nativeSrc":"5544:12:89","nodeType":"YulExpressionStatement","src":"5544:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5514:6:89","nodeType":"YulIdentifier","src":"5514:6:89"},{"kind":"number","nativeSrc":"5522:18:89","nodeType":"YulLiteral","src":"5522:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5511:2:89","nodeType":"YulIdentifier","src":"5511:2:89"},"nativeSrc":"5511:30:89","nodeType":"YulFunctionCall","src":"5511:30:89"},"nativeSrc":"5508:50:89","nodeType":"YulIf","src":"5508:50:89"},{"nativeSrc":"5567:84:89","nodeType":"YulVariableDeclaration","src":"5567:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5623:9:89","nodeType":"YulIdentifier","src":"5623:9:89"},{"name":"offset","nativeSrc":"5634:6:89","nodeType":"YulIdentifier","src":"5634:6:89"}],"functionName":{"name":"add","nativeSrc":"5619:3:89","nodeType":"YulIdentifier","src":"5619:3:89"},"nativeSrc":"5619:22:89","nodeType":"YulFunctionCall","src":"5619:22:89"},{"name":"dataEnd","nativeSrc":"5643:7:89","nodeType":"YulIdentifier","src":"5643:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"5593:25:89","nodeType":"YulIdentifier","src":"5593:25:89"},"nativeSrc":"5593:58:89","nodeType":"YulFunctionCall","src":"5593:58:89"},"variables":[{"name":"value1_1","nativeSrc":"5571:8:89","nodeType":"YulTypedName","src":"5571:8:89","type":""},{"name":"value2_1","nativeSrc":"5581:8:89","nodeType":"YulTypedName","src":"5581:8:89","type":""}]},{"nativeSrc":"5660:18:89","nodeType":"YulAssignment","src":"5660:18:89","value":{"name":"value1_1","nativeSrc":"5670:8:89","nodeType":"YulIdentifier","src":"5670:8:89"},"variableNames":[{"name":"value1","nativeSrc":"5660:6:89","nodeType":"YulIdentifier","src":"5660:6:89"}]},{"nativeSrc":"5687:18:89","nodeType":"YulAssignment","src":"5687:18:89","value":{"name":"value2_1","nativeSrc":"5697:8:89","nodeType":"YulIdentifier","src":"5697:8:89"},"variableNames":[{"name":"value2","nativeSrc":"5687:6:89","nodeType":"YulIdentifier","src":"5687:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"5167:544:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5223:9:89","nodeType":"YulTypedName","src":"5223:9:89","type":""},{"name":"dataEnd","nativeSrc":"5234:7:89","nodeType":"YulTypedName","src":"5234:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5246:6:89","nodeType":"YulTypedName","src":"5246:6:89","type":""},{"name":"value1","nativeSrc":"5254:6:89","nodeType":"YulTypedName","src":"5254:6:89","type":""},{"name":"value2","nativeSrc":"5262:6:89","nodeType":"YulTypedName","src":"5262:6:89","type":""}],"src":"5167:544:89"},{"body":{"nativeSrc":"5786:177:89","nodeType":"YulBlock","src":"5786:177:89","statements":[{"body":{"nativeSrc":"5832:16:89","nodeType":"YulBlock","src":"5832:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5841:1:89","nodeType":"YulLiteral","src":"5841:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5844:1:89","nodeType":"YulLiteral","src":"5844:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5834:6:89","nodeType":"YulIdentifier","src":"5834:6:89"},"nativeSrc":"5834:12:89","nodeType":"YulFunctionCall","src":"5834:12:89"},"nativeSrc":"5834:12:89","nodeType":"YulExpressionStatement","src":"5834:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5807:7:89","nodeType":"YulIdentifier","src":"5807:7:89"},{"name":"headStart","nativeSrc":"5816:9:89","nodeType":"YulIdentifier","src":"5816:9:89"}],"functionName":{"name":"sub","nativeSrc":"5803:3:89","nodeType":"YulIdentifier","src":"5803:3:89"},"nativeSrc":"5803:23:89","nodeType":"YulFunctionCall","src":"5803:23:89"},{"kind":"number","nativeSrc":"5828:2:89","nodeType":"YulLiteral","src":"5828:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5799:3:89","nodeType":"YulIdentifier","src":"5799:3:89"},"nativeSrc":"5799:32:89","nodeType":"YulFunctionCall","src":"5799:32:89"},"nativeSrc":"5796:52:89","nodeType":"YulIf","src":"5796:52:89"},{"nativeSrc":"5857:36:89","nodeType":"YulVariableDeclaration","src":"5857:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5883:9:89","nodeType":"YulIdentifier","src":"5883:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"5870:12:89","nodeType":"YulIdentifier","src":"5870:12:89"},"nativeSrc":"5870:23:89","nodeType":"YulFunctionCall","src":"5870:23:89"},"variables":[{"name":"value","nativeSrc":"5861:5:89","nodeType":"YulTypedName","src":"5861:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5927:5:89","nodeType":"YulIdentifier","src":"5927:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5902:24:89","nodeType":"YulIdentifier","src":"5902:24:89"},"nativeSrc":"5902:31:89","nodeType":"YulFunctionCall","src":"5902:31:89"},"nativeSrc":"5902:31:89","nodeType":"YulExpressionStatement","src":"5902:31:89"},{"nativeSrc":"5942:15:89","nodeType":"YulAssignment","src":"5942:15:89","value":{"name":"value","nativeSrc":"5952:5:89","nodeType":"YulIdentifier","src":"5952:5:89"},"variableNames":[{"name":"value0","nativeSrc":"5942:6:89","nodeType":"YulIdentifier","src":"5942:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5716:247:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5752:9:89","nodeType":"YulTypedName","src":"5752:9:89","type":""},{"name":"dataEnd","nativeSrc":"5763:7:89","nodeType":"YulTypedName","src":"5763:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5775:6:89","nodeType":"YulTypedName","src":"5775:6:89","type":""}],"src":"5716:247:89"},{"body":{"nativeSrc":"6069:102:89","nodeType":"YulBlock","src":"6069:102:89","statements":[{"nativeSrc":"6079:26:89","nodeType":"YulAssignment","src":"6079:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6091:9:89","nodeType":"YulIdentifier","src":"6091:9:89"},{"kind":"number","nativeSrc":"6102:2:89","nodeType":"YulLiteral","src":"6102:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6087:3:89","nodeType":"YulIdentifier","src":"6087:3:89"},"nativeSrc":"6087:18:89","nodeType":"YulFunctionCall","src":"6087:18:89"},"variableNames":[{"name":"tail","nativeSrc":"6079:4:89","nodeType":"YulIdentifier","src":"6079:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6121:9:89","nodeType":"YulIdentifier","src":"6121:9:89"},{"arguments":[{"name":"value0","nativeSrc":"6136:6:89","nodeType":"YulIdentifier","src":"6136:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6152:3:89","nodeType":"YulLiteral","src":"6152:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"6157:1:89","nodeType":"YulLiteral","src":"6157:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6148:3:89","nodeType":"YulIdentifier","src":"6148:3:89"},"nativeSrc":"6148:11:89","nodeType":"YulFunctionCall","src":"6148:11:89"},{"kind":"number","nativeSrc":"6161:1:89","nodeType":"YulLiteral","src":"6161:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6144:3:89","nodeType":"YulIdentifier","src":"6144:3:89"},"nativeSrc":"6144:19:89","nodeType":"YulFunctionCall","src":"6144:19:89"}],"functionName":{"name":"and","nativeSrc":"6132:3:89","nodeType":"YulIdentifier","src":"6132:3:89"},"nativeSrc":"6132:32:89","nodeType":"YulFunctionCall","src":"6132:32:89"}],"functionName":{"name":"mstore","nativeSrc":"6114:6:89","nodeType":"YulIdentifier","src":"6114:6:89"},"nativeSrc":"6114:51:89","nodeType":"YulFunctionCall","src":"6114:51:89"},"nativeSrc":"6114:51:89","nodeType":"YulExpressionStatement","src":"6114:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5968:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6038:9:89","nodeType":"YulTypedName","src":"6038:9:89","type":""},{"name":"value0","nativeSrc":"6049:6:89","nodeType":"YulTypedName","src":"6049:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6060:4:89","nodeType":"YulTypedName","src":"6060:4:89","type":""}],"src":"5968:203:89"},{"body":{"nativeSrc":"6295:98:89","nodeType":"YulBlock","src":"6295:98:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6312:9:89","nodeType":"YulIdentifier","src":"6312:9:89"},{"kind":"number","nativeSrc":"6323:2:89","nodeType":"YulLiteral","src":"6323:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6305:6:89","nodeType":"YulIdentifier","src":"6305:6:89"},"nativeSrc":"6305:21:89","nodeType":"YulFunctionCall","src":"6305:21:89"},"nativeSrc":"6305:21:89","nodeType":"YulExpressionStatement","src":"6305:21:89"},{"nativeSrc":"6335:52:89","nodeType":"YulAssignment","src":"6335:52:89","value":{"arguments":[{"name":"value0","nativeSrc":"6360:6:89","nodeType":"YulIdentifier","src":"6360:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"6372:9:89","nodeType":"YulIdentifier","src":"6372:9:89"},{"kind":"number","nativeSrc":"6383:2:89","nodeType":"YulLiteral","src":"6383:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6368:3:89","nodeType":"YulIdentifier","src":"6368:3:89"},"nativeSrc":"6368:18:89","nodeType":"YulFunctionCall","src":"6368:18:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"6343:16:89","nodeType":"YulIdentifier","src":"6343:16:89"},"nativeSrc":"6343:44:89","nodeType":"YulFunctionCall","src":"6343:44:89"},"variableNames":[{"name":"tail","nativeSrc":"6335:4:89","nodeType":"YulIdentifier","src":"6335:4:89"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"6176:217:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6264:9:89","nodeType":"YulTypedName","src":"6264:9:89","type":""},{"name":"value0","nativeSrc":"6275:6:89","nodeType":"YulTypedName","src":"6275:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6286:4:89","nodeType":"YulTypedName","src":"6286:4:89","type":""}],"src":"6176:217:89"},{"body":{"nativeSrc":"6493:92:89","nodeType":"YulBlock","src":"6493:92:89","statements":[{"nativeSrc":"6503:26:89","nodeType":"YulAssignment","src":"6503:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6515:9:89","nodeType":"YulIdentifier","src":"6515:9:89"},{"kind":"number","nativeSrc":"6526:2:89","nodeType":"YulLiteral","src":"6526:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6511:3:89","nodeType":"YulIdentifier","src":"6511:3:89"},"nativeSrc":"6511:18:89","nodeType":"YulFunctionCall","src":"6511:18:89"},"variableNames":[{"name":"tail","nativeSrc":"6503:4:89","nodeType":"YulIdentifier","src":"6503:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6545:9:89","nodeType":"YulIdentifier","src":"6545:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"6570:6:89","nodeType":"YulIdentifier","src":"6570:6:89"}],"functionName":{"name":"iszero","nativeSrc":"6563:6:89","nodeType":"YulIdentifier","src":"6563:6:89"},"nativeSrc":"6563:14:89","nodeType":"YulFunctionCall","src":"6563:14:89"}],"functionName":{"name":"iszero","nativeSrc":"6556:6:89","nodeType":"YulIdentifier","src":"6556:6:89"},"nativeSrc":"6556:22:89","nodeType":"YulFunctionCall","src":"6556:22:89"}],"functionName":{"name":"mstore","nativeSrc":"6538:6:89","nodeType":"YulIdentifier","src":"6538:6:89"},"nativeSrc":"6538:41:89","nodeType":"YulFunctionCall","src":"6538:41:89"},"nativeSrc":"6538:41:89","nodeType":"YulExpressionStatement","src":"6538:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"6398:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6462:9:89","nodeType":"YulTypedName","src":"6462:9:89","type":""},{"name":"value0","nativeSrc":"6473:6:89","nodeType":"YulTypedName","src":"6473:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6484:4:89","nodeType":"YulTypedName","src":"6484:4:89","type":""}],"src":"6398:187:89"},{"body":{"nativeSrc":"6709:404:89","nodeType":"YulBlock","src":"6709:404:89","statements":[{"body":{"nativeSrc":"6755:16:89","nodeType":"YulBlock","src":"6755:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6764:1:89","nodeType":"YulLiteral","src":"6764:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6767:1:89","nodeType":"YulLiteral","src":"6767:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6757:6:89","nodeType":"YulIdentifier","src":"6757:6:89"},"nativeSrc":"6757:12:89","nodeType":"YulFunctionCall","src":"6757:12:89"},"nativeSrc":"6757:12:89","nodeType":"YulExpressionStatement","src":"6757:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6730:7:89","nodeType":"YulIdentifier","src":"6730:7:89"},{"name":"headStart","nativeSrc":"6739:9:89","nodeType":"YulIdentifier","src":"6739:9:89"}],"functionName":{"name":"sub","nativeSrc":"6726:3:89","nodeType":"YulIdentifier","src":"6726:3:89"},"nativeSrc":"6726:23:89","nodeType":"YulFunctionCall","src":"6726:23:89"},{"kind":"number","nativeSrc":"6751:2:89","nodeType":"YulLiteral","src":"6751:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"6722:3:89","nodeType":"YulIdentifier","src":"6722:3:89"},"nativeSrc":"6722:32:89","nodeType":"YulFunctionCall","src":"6722:32:89"},"nativeSrc":"6719:52:89","nodeType":"YulIf","src":"6719:52:89"},{"nativeSrc":"6780:36:89","nodeType":"YulVariableDeclaration","src":"6780:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6806:9:89","nodeType":"YulIdentifier","src":"6806:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"6793:12:89","nodeType":"YulIdentifier","src":"6793:12:89"},"nativeSrc":"6793:23:89","nodeType":"YulFunctionCall","src":"6793:23:89"},"variables":[{"name":"value","nativeSrc":"6784:5:89","nodeType":"YulTypedName","src":"6784:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6850:5:89","nodeType":"YulIdentifier","src":"6850:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6825:24:89","nodeType":"YulIdentifier","src":"6825:24:89"},"nativeSrc":"6825:31:89","nodeType":"YulFunctionCall","src":"6825:31:89"},"nativeSrc":"6825:31:89","nodeType":"YulExpressionStatement","src":"6825:31:89"},{"nativeSrc":"6865:15:89","nodeType":"YulAssignment","src":"6865:15:89","value":{"name":"value","nativeSrc":"6875:5:89","nodeType":"YulIdentifier","src":"6875:5:89"},"variableNames":[{"name":"value0","nativeSrc":"6865:6:89","nodeType":"YulIdentifier","src":"6865:6:89"}]},{"nativeSrc":"6889:47:89","nodeType":"YulVariableDeclaration","src":"6889:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6921:9:89","nodeType":"YulIdentifier","src":"6921:9:89"},{"kind":"number","nativeSrc":"6932:2:89","nodeType":"YulLiteral","src":"6932:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6917:3:89","nodeType":"YulIdentifier","src":"6917:3:89"},"nativeSrc":"6917:18:89","nodeType":"YulFunctionCall","src":"6917:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"6904:12:89","nodeType":"YulIdentifier","src":"6904:12:89"},"nativeSrc":"6904:32:89","nodeType":"YulFunctionCall","src":"6904:32:89"},"variables":[{"name":"value_1","nativeSrc":"6893:7:89","nodeType":"YulTypedName","src":"6893:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"6970:7:89","nodeType":"YulIdentifier","src":"6970:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6945:24:89","nodeType":"YulIdentifier","src":"6945:24:89"},"nativeSrc":"6945:33:89","nodeType":"YulFunctionCall","src":"6945:33:89"},"nativeSrc":"6945:33:89","nodeType":"YulExpressionStatement","src":"6945:33:89"},{"nativeSrc":"6987:17:89","nodeType":"YulAssignment","src":"6987:17:89","value":{"name":"value_1","nativeSrc":"6997:7:89","nodeType":"YulIdentifier","src":"6997:7:89"},"variableNames":[{"name":"value1","nativeSrc":"6987:6:89","nodeType":"YulIdentifier","src":"6987:6:89"}]},{"nativeSrc":"7013:16:89","nodeType":"YulVariableDeclaration","src":"7013:16:89","value":{"kind":"number","nativeSrc":"7028:1:89","nodeType":"YulLiteral","src":"7028:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"7017:7:89","nodeType":"YulTypedName","src":"7017:7:89","type":""}]},{"nativeSrc":"7038:43:89","nodeType":"YulAssignment","src":"7038:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7066:9:89","nodeType":"YulIdentifier","src":"7066:9:89"},{"kind":"number","nativeSrc":"7077:2:89","nodeType":"YulLiteral","src":"7077:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7062:3:89","nodeType":"YulIdentifier","src":"7062:3:89"},"nativeSrc":"7062:18:89","nodeType":"YulFunctionCall","src":"7062:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"7049:12:89","nodeType":"YulIdentifier","src":"7049:12:89"},"nativeSrc":"7049:32:89","nodeType":"YulFunctionCall","src":"7049:32:89"},"variableNames":[{"name":"value_2","nativeSrc":"7038:7:89","nodeType":"YulIdentifier","src":"7038:7:89"}]},{"nativeSrc":"7090:17:89","nodeType":"YulAssignment","src":"7090:17:89","value":{"name":"value_2","nativeSrc":"7100:7:89","nodeType":"YulIdentifier","src":"7100:7:89"},"variableNames":[{"name":"value2","nativeSrc":"7090:6:89","nodeType":"YulIdentifier","src":"7090:6:89"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$4735t_addresst_uint256","nativeSrc":"6590:523:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6659:9:89","nodeType":"YulTypedName","src":"6659:9:89","type":""},{"name":"dataEnd","nativeSrc":"6670:7:89","nodeType":"YulTypedName","src":"6670:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6682:6:89","nodeType":"YulTypedName","src":"6682:6:89","type":""},{"name":"value1","nativeSrc":"6690:6:89","nodeType":"YulTypedName","src":"6690:6:89","type":""},{"name":"value2","nativeSrc":"6698:6:89","nodeType":"YulTypedName","src":"6698:6:89","type":""}],"src":"6590:523:89"},{"body":{"nativeSrc":"7265:124:89","nodeType":"YulBlock","src":"7265:124:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7288:3:89","nodeType":"YulIdentifier","src":"7288:3:89"},{"name":"value0","nativeSrc":"7293:6:89","nodeType":"YulIdentifier","src":"7293:6:89"},{"name":"value1","nativeSrc":"7301:6:89","nodeType":"YulIdentifier","src":"7301:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"7275:12:89","nodeType":"YulIdentifier","src":"7275:12:89"},"nativeSrc":"7275:33:89","nodeType":"YulFunctionCall","src":"7275:33:89"},"nativeSrc":"7275:33:89","nodeType":"YulExpressionStatement","src":"7275:33:89"},{"nativeSrc":"7317:26:89","nodeType":"YulVariableDeclaration","src":"7317:26:89","value":{"arguments":[{"name":"pos","nativeSrc":"7331:3:89","nodeType":"YulIdentifier","src":"7331:3:89"},{"name":"value1","nativeSrc":"7336:6:89","nodeType":"YulIdentifier","src":"7336:6:89"}],"functionName":{"name":"add","nativeSrc":"7327:3:89","nodeType":"YulIdentifier","src":"7327:3:89"},"nativeSrc":"7327:16:89","nodeType":"YulFunctionCall","src":"7327:16:89"},"variables":[{"name":"_1","nativeSrc":"7321:2:89","nodeType":"YulTypedName","src":"7321:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"7359:2:89","nodeType":"YulIdentifier","src":"7359:2:89"},{"kind":"number","nativeSrc":"7363:1:89","nodeType":"YulLiteral","src":"7363:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7352:6:89","nodeType":"YulIdentifier","src":"7352:6:89"},"nativeSrc":"7352:13:89","nodeType":"YulFunctionCall","src":"7352:13:89"},"nativeSrc":"7352:13:89","nodeType":"YulExpressionStatement","src":"7352:13:89"},{"nativeSrc":"7374:9:89","nodeType":"YulAssignment","src":"7374:9:89","value":{"name":"_1","nativeSrc":"7381:2:89","nodeType":"YulIdentifier","src":"7381:2:89"},"variableNames":[{"name":"end","nativeSrc":"7374:3:89","nodeType":"YulIdentifier","src":"7374:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7118:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7233:3:89","nodeType":"YulTypedName","src":"7233:3:89","type":""},{"name":"value1","nativeSrc":"7238:6:89","nodeType":"YulTypedName","src":"7238:6:89","type":""},{"name":"value0","nativeSrc":"7246:6:89","nodeType":"YulTypedName","src":"7246:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7257:3:89","nodeType":"YulTypedName","src":"7257:3:89","type":""}],"src":"7118:271:89"},{"body":{"nativeSrc":"7460:200:89","nodeType":"YulBlock","src":"7460:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7477:3:89","nodeType":"YulIdentifier","src":"7477:3:89"},{"name":"length","nativeSrc":"7482:6:89","nodeType":"YulIdentifier","src":"7482:6:89"}],"functionName":{"name":"mstore","nativeSrc":"7470:6:89","nodeType":"YulIdentifier","src":"7470:6:89"},"nativeSrc":"7470:19:89","nodeType":"YulFunctionCall","src":"7470:19:89"},"nativeSrc":"7470:19:89","nodeType":"YulExpressionStatement","src":"7470:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7515:3:89","nodeType":"YulIdentifier","src":"7515:3:89"},{"kind":"number","nativeSrc":"7520:4:89","nodeType":"YulLiteral","src":"7520:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7511:3:89","nodeType":"YulIdentifier","src":"7511:3:89"},"nativeSrc":"7511:14:89","nodeType":"YulFunctionCall","src":"7511:14:89"},{"name":"start","nativeSrc":"7527:5:89","nodeType":"YulIdentifier","src":"7527:5:89"},{"name":"length","nativeSrc":"7534:6:89","nodeType":"YulIdentifier","src":"7534:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"7498:12:89","nodeType":"YulIdentifier","src":"7498:12:89"},"nativeSrc":"7498:43:89","nodeType":"YulFunctionCall","src":"7498:43:89"},"nativeSrc":"7498:43:89","nodeType":"YulExpressionStatement","src":"7498:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7565:3:89","nodeType":"YulIdentifier","src":"7565:3:89"},{"name":"length","nativeSrc":"7570:6:89","nodeType":"YulIdentifier","src":"7570:6:89"}],"functionName":{"name":"add","nativeSrc":"7561:3:89","nodeType":"YulIdentifier","src":"7561:3:89"},"nativeSrc":"7561:16:89","nodeType":"YulFunctionCall","src":"7561:16:89"},{"kind":"number","nativeSrc":"7579:4:89","nodeType":"YulLiteral","src":"7579:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7557:3:89","nodeType":"YulIdentifier","src":"7557:3:89"},"nativeSrc":"7557:27:89","nodeType":"YulFunctionCall","src":"7557:27:89"},{"kind":"number","nativeSrc":"7586:1:89","nodeType":"YulLiteral","src":"7586:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7550:6:89","nodeType":"YulIdentifier","src":"7550:6:89"},"nativeSrc":"7550:38:89","nodeType":"YulFunctionCall","src":"7550:38:89"},"nativeSrc":"7550:38:89","nodeType":"YulExpressionStatement","src":"7550:38:89"},{"nativeSrc":"7597:57:89","nodeType":"YulAssignment","src":"7597:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7612:3:89","nodeType":"YulIdentifier","src":"7612:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"7625:6:89","nodeType":"YulIdentifier","src":"7625:6:89"},{"kind":"number","nativeSrc":"7633:2:89","nodeType":"YulLiteral","src":"7633:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7621:3:89","nodeType":"YulIdentifier","src":"7621:3:89"},"nativeSrc":"7621:15:89","nodeType":"YulFunctionCall","src":"7621:15:89"},{"arguments":[{"kind":"number","nativeSrc":"7642:2:89","nodeType":"YulLiteral","src":"7642:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7638:3:89","nodeType":"YulIdentifier","src":"7638:3:89"},"nativeSrc":"7638:7:89","nodeType":"YulFunctionCall","src":"7638:7:89"}],"functionName":{"name":"and","nativeSrc":"7617:3:89","nodeType":"YulIdentifier","src":"7617:3:89"},"nativeSrc":"7617:29:89","nodeType":"YulFunctionCall","src":"7617:29:89"}],"functionName":{"name":"add","nativeSrc":"7608:3:89","nodeType":"YulIdentifier","src":"7608:3:89"},"nativeSrc":"7608:39:89","nodeType":"YulFunctionCall","src":"7608:39:89"},{"kind":"number","nativeSrc":"7649:4:89","nodeType":"YulLiteral","src":"7649:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7604:3:89","nodeType":"YulIdentifier","src":"7604:3:89"},"nativeSrc":"7604:50:89","nodeType":"YulFunctionCall","src":"7604:50:89"},"variableNames":[{"name":"end","nativeSrc":"7597:3:89","nodeType":"YulIdentifier","src":"7597:3:89"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"7394:266:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"7429:5:89","nodeType":"YulTypedName","src":"7429:5:89","type":""},{"name":"length","nativeSrc":"7436:6:89","nodeType":"YulTypedName","src":"7436:6:89","type":""},{"name":"pos","nativeSrc":"7444:3:89","nodeType":"YulTypedName","src":"7444:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7452:3:89","nodeType":"YulTypedName","src":"7452:3:89","type":""}],"src":"7394:266:89"},{"body":{"nativeSrc":"7822:158:89","nodeType":"YulBlock","src":"7822:158:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7839:9:89","nodeType":"YulIdentifier","src":"7839:9:89"},{"name":"value0","nativeSrc":"7850:6:89","nodeType":"YulIdentifier","src":"7850:6:89"}],"functionName":{"name":"mstore","nativeSrc":"7832:6:89","nodeType":"YulIdentifier","src":"7832:6:89"},"nativeSrc":"7832:25:89","nodeType":"YulFunctionCall","src":"7832:25:89"},"nativeSrc":"7832:25:89","nodeType":"YulExpressionStatement","src":"7832:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7877:9:89","nodeType":"YulIdentifier","src":"7877:9:89"},{"kind":"number","nativeSrc":"7888:2:89","nodeType":"YulLiteral","src":"7888:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7873:3:89","nodeType":"YulIdentifier","src":"7873:3:89"},"nativeSrc":"7873:18:89","nodeType":"YulFunctionCall","src":"7873:18:89"},{"kind":"number","nativeSrc":"7893:2:89","nodeType":"YulLiteral","src":"7893:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"7866:6:89","nodeType":"YulIdentifier","src":"7866:6:89"},"nativeSrc":"7866:30:89","nodeType":"YulFunctionCall","src":"7866:30:89"},"nativeSrc":"7866:30:89","nodeType":"YulExpressionStatement","src":"7866:30:89"},{"nativeSrc":"7905:69:89","nodeType":"YulAssignment","src":"7905:69:89","value":{"arguments":[{"name":"value1","nativeSrc":"7939:6:89","nodeType":"YulIdentifier","src":"7939:6:89"},{"name":"value2","nativeSrc":"7947:6:89","nodeType":"YulIdentifier","src":"7947:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"7959:9:89","nodeType":"YulIdentifier","src":"7959:9:89"},{"kind":"number","nativeSrc":"7970:2:89","nodeType":"YulLiteral","src":"7970:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7955:3:89","nodeType":"YulIdentifier","src":"7955:3:89"},"nativeSrc":"7955:18:89","nodeType":"YulFunctionCall","src":"7955:18:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"7913:25:89","nodeType":"YulIdentifier","src":"7913:25:89"},"nativeSrc":"7913:61:89","nodeType":"YulFunctionCall","src":"7913:61:89"},"variableNames":[{"name":"tail","nativeSrc":"7905:4:89","nodeType":"YulIdentifier","src":"7905:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7665:315:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7775:9:89","nodeType":"YulTypedName","src":"7775:9:89","type":""},{"name":"value2","nativeSrc":"7786:6:89","nodeType":"YulTypedName","src":"7786:6:89","type":""},{"name":"value1","nativeSrc":"7794:6:89","nodeType":"YulTypedName","src":"7794:6:89","type":""},{"name":"value0","nativeSrc":"7802:6:89","nodeType":"YulTypedName","src":"7802:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7813:4:89","nodeType":"YulTypedName","src":"7813:4:89","type":""}],"src":"7665:315:89"},{"body":{"nativeSrc":"8017:95:89","nodeType":"YulBlock","src":"8017:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8034:1:89","nodeType":"YulLiteral","src":"8034:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"8041:3:89","nodeType":"YulLiteral","src":"8041:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"8046:10:89","nodeType":"YulLiteral","src":"8046:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"8037:3:89","nodeType":"YulIdentifier","src":"8037:3:89"},"nativeSrc":"8037:20:89","nodeType":"YulFunctionCall","src":"8037:20:89"}],"functionName":{"name":"mstore","nativeSrc":"8027:6:89","nodeType":"YulIdentifier","src":"8027:6:89"},"nativeSrc":"8027:31:89","nodeType":"YulFunctionCall","src":"8027:31:89"},"nativeSrc":"8027:31:89","nodeType":"YulExpressionStatement","src":"8027:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8074:1:89","nodeType":"YulLiteral","src":"8074:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"8077:4:89","nodeType":"YulLiteral","src":"8077:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8067:6:89","nodeType":"YulIdentifier","src":"8067:6:89"},"nativeSrc":"8067:15:89","nodeType":"YulFunctionCall","src":"8067:15:89"},"nativeSrc":"8067:15:89","nodeType":"YulExpressionStatement","src":"8067:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8098:1:89","nodeType":"YulLiteral","src":"8098:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8101:4:89","nodeType":"YulLiteral","src":"8101:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8091:6:89","nodeType":"YulIdentifier","src":"8091:6:89"},"nativeSrc":"8091:15:89","nodeType":"YulFunctionCall","src":"8091:15:89"},"nativeSrc":"8091:15:89","nodeType":"YulExpressionStatement","src":"8091:15:89"}]},"name":"panic_error_0x41","nativeSrc":"7985:127:89","nodeType":"YulFunctionDefinition","src":"7985:127:89"},{"body":{"nativeSrc":"8149:95:89","nodeType":"YulBlock","src":"8149:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8166:1:89","nodeType":"YulLiteral","src":"8166:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"8173:3:89","nodeType":"YulLiteral","src":"8173:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"8178:10:89","nodeType":"YulLiteral","src":"8178:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"8169:3:89","nodeType":"YulIdentifier","src":"8169:3:89"},"nativeSrc":"8169:20:89","nodeType":"YulFunctionCall","src":"8169:20:89"}],"functionName":{"name":"mstore","nativeSrc":"8159:6:89","nodeType":"YulIdentifier","src":"8159:6:89"},"nativeSrc":"8159:31:89","nodeType":"YulFunctionCall","src":"8159:31:89"},"nativeSrc":"8159:31:89","nodeType":"YulExpressionStatement","src":"8159:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8206:1:89","nodeType":"YulLiteral","src":"8206:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"8209:4:89","nodeType":"YulLiteral","src":"8209:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8199:6:89","nodeType":"YulIdentifier","src":"8199:6:89"},"nativeSrc":"8199:15:89","nodeType":"YulFunctionCall","src":"8199:15:89"},"nativeSrc":"8199:15:89","nodeType":"YulExpressionStatement","src":"8199:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8230:1:89","nodeType":"YulLiteral","src":"8230:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8233:4:89","nodeType":"YulLiteral","src":"8233:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8223:6:89","nodeType":"YulIdentifier","src":"8223:6:89"},"nativeSrc":"8223:15:89","nodeType":"YulFunctionCall","src":"8223:15:89"},"nativeSrc":"8223:15:89","nodeType":"YulExpressionStatement","src":"8223:15:89"}]},"name":"panic_error_0x32","nativeSrc":"8117:127:89","nodeType":"YulFunctionDefinition","src":"8117:127:89"},{"body":{"nativeSrc":"8343:427:89","nodeType":"YulBlock","src":"8343:427:89","statements":[{"nativeSrc":"8353:51:89","nodeType":"YulVariableDeclaration","src":"8353:51:89","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"8392:11:89","nodeType":"YulIdentifier","src":"8392:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"8379:12:89","nodeType":"YulIdentifier","src":"8379:12:89"},"nativeSrc":"8379:25:89","nodeType":"YulFunctionCall","src":"8379:25:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"8357:18:89","nodeType":"YulTypedName","src":"8357:18:89","type":""}]},{"body":{"nativeSrc":"8493:16:89","nodeType":"YulBlock","src":"8493:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8502:1:89","nodeType":"YulLiteral","src":"8502:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8505:1:89","nodeType":"YulLiteral","src":"8505:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8495:6:89","nodeType":"YulIdentifier","src":"8495:6:89"},"nativeSrc":"8495:12:89","nodeType":"YulFunctionCall","src":"8495:12:89"},"nativeSrc":"8495:12:89","nodeType":"YulExpressionStatement","src":"8495:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"8427:18:89","nodeType":"YulIdentifier","src":"8427:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"8455:12:89","nodeType":"YulIdentifier","src":"8455:12:89"},"nativeSrc":"8455:14:89","nodeType":"YulFunctionCall","src":"8455:14:89"},{"name":"base_ref","nativeSrc":"8471:8:89","nodeType":"YulIdentifier","src":"8471:8:89"}],"functionName":{"name":"sub","nativeSrc":"8451:3:89","nodeType":"YulIdentifier","src":"8451:3:89"},"nativeSrc":"8451:29:89","nodeType":"YulFunctionCall","src":"8451:29:89"},{"arguments":[{"kind":"number","nativeSrc":"8486:2:89","nodeType":"YulLiteral","src":"8486:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"8482:3:89","nodeType":"YulIdentifier","src":"8482:3:89"},"nativeSrc":"8482:7:89","nodeType":"YulFunctionCall","src":"8482:7:89"}],"functionName":{"name":"add","nativeSrc":"8447:3:89","nodeType":"YulIdentifier","src":"8447:3:89"},"nativeSrc":"8447:43:89","nodeType":"YulFunctionCall","src":"8447:43:89"}],"functionName":{"name":"slt","nativeSrc":"8423:3:89","nodeType":"YulIdentifier","src":"8423:3:89"},"nativeSrc":"8423:68:89","nodeType":"YulFunctionCall","src":"8423:68:89"}],"functionName":{"name":"iszero","nativeSrc":"8416:6:89","nodeType":"YulIdentifier","src":"8416:6:89"},"nativeSrc":"8416:76:89","nodeType":"YulFunctionCall","src":"8416:76:89"},"nativeSrc":"8413:96:89","nodeType":"YulIf","src":"8413:96:89"},{"nativeSrc":"8518:47:89","nodeType":"YulVariableDeclaration","src":"8518:47:89","value":{"arguments":[{"name":"base_ref","nativeSrc":"8536:8:89","nodeType":"YulIdentifier","src":"8536:8:89"},{"name":"rel_offset_of_tail","nativeSrc":"8546:18:89","nodeType":"YulIdentifier","src":"8546:18:89"}],"functionName":{"name":"add","nativeSrc":"8532:3:89","nodeType":"YulIdentifier","src":"8532:3:89"},"nativeSrc":"8532:33:89","nodeType":"YulFunctionCall","src":"8532:33:89"},"variables":[{"name":"addr_1","nativeSrc":"8522:6:89","nodeType":"YulTypedName","src":"8522:6:89","type":""}]},{"nativeSrc":"8574:30:89","nodeType":"YulAssignment","src":"8574:30:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"8597:6:89","nodeType":"YulIdentifier","src":"8597:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"8584:12:89","nodeType":"YulIdentifier","src":"8584:12:89"},"nativeSrc":"8584:20:89","nodeType":"YulFunctionCall","src":"8584:20:89"},"variableNames":[{"name":"length","nativeSrc":"8574:6:89","nodeType":"YulIdentifier","src":"8574:6:89"}]},{"body":{"nativeSrc":"8647:16:89","nodeType":"YulBlock","src":"8647:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8656:1:89","nodeType":"YulLiteral","src":"8656:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8659:1:89","nodeType":"YulLiteral","src":"8659:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8649:6:89","nodeType":"YulIdentifier","src":"8649:6:89"},"nativeSrc":"8649:12:89","nodeType":"YulFunctionCall","src":"8649:12:89"},"nativeSrc":"8649:12:89","nodeType":"YulExpressionStatement","src":"8649:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8619:6:89","nodeType":"YulIdentifier","src":"8619:6:89"},{"kind":"number","nativeSrc":"8627:18:89","nodeType":"YulLiteral","src":"8627:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8616:2:89","nodeType":"YulIdentifier","src":"8616:2:89"},"nativeSrc":"8616:30:89","nodeType":"YulFunctionCall","src":"8616:30:89"},"nativeSrc":"8613:50:89","nodeType":"YulIf","src":"8613:50:89"},{"nativeSrc":"8672:25:89","nodeType":"YulAssignment","src":"8672:25:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"8684:6:89","nodeType":"YulIdentifier","src":"8684:6:89"},{"kind":"number","nativeSrc":"8692:4:89","nodeType":"YulLiteral","src":"8692:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8680:3:89","nodeType":"YulIdentifier","src":"8680:3:89"},"nativeSrc":"8680:17:89","nodeType":"YulFunctionCall","src":"8680:17:89"},"variableNames":[{"name":"addr","nativeSrc":"8672:4:89","nodeType":"YulIdentifier","src":"8672:4:89"}]},{"body":{"nativeSrc":"8748:16:89","nodeType":"YulBlock","src":"8748:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8757:1:89","nodeType":"YulLiteral","src":"8757:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8760:1:89","nodeType":"YulLiteral","src":"8760:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8750:6:89","nodeType":"YulIdentifier","src":"8750:6:89"},"nativeSrc":"8750:12:89","nodeType":"YulFunctionCall","src":"8750:12:89"},"nativeSrc":"8750:12:89","nodeType":"YulExpressionStatement","src":"8750:12:89"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"8713:4:89","nodeType":"YulIdentifier","src":"8713:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"8723:12:89","nodeType":"YulIdentifier","src":"8723:12:89"},"nativeSrc":"8723:14:89","nodeType":"YulFunctionCall","src":"8723:14:89"},{"name":"length","nativeSrc":"8739:6:89","nodeType":"YulIdentifier","src":"8739:6:89"}],"functionName":{"name":"sub","nativeSrc":"8719:3:89","nodeType":"YulIdentifier","src":"8719:3:89"},"nativeSrc":"8719:27:89","nodeType":"YulFunctionCall","src":"8719:27:89"}],"functionName":{"name":"sgt","nativeSrc":"8709:3:89","nodeType":"YulIdentifier","src":"8709:3:89"},"nativeSrc":"8709:38:89","nodeType":"YulFunctionCall","src":"8709:38:89"},"nativeSrc":"8706:58:89","nodeType":"YulIf","src":"8706:58:89"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"8249:521:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"8300:8:89","nodeType":"YulTypedName","src":"8300:8:89","type":""},{"name":"ptr_to_tail","nativeSrc":"8310:11:89","nodeType":"YulTypedName","src":"8310:11:89","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"8326:4:89","nodeType":"YulTypedName","src":"8326:4:89","type":""},{"name":"length","nativeSrc":"8332:6:89","nodeType":"YulTypedName","src":"8332:6:89","type":""}],"src":"8249:521:89"},{"body":{"nativeSrc":"9006:343:89","nodeType":"YulBlock","src":"9006:343:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9023:9:89","nodeType":"YulIdentifier","src":"9023:9:89"},{"arguments":[{"name":"value0","nativeSrc":"9038:6:89","nodeType":"YulIdentifier","src":"9038:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9054:3:89","nodeType":"YulLiteral","src":"9054:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"9059:1:89","nodeType":"YulLiteral","src":"9059:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9050:3:89","nodeType":"YulIdentifier","src":"9050:3:89"},"nativeSrc":"9050:11:89","nodeType":"YulFunctionCall","src":"9050:11:89"},{"kind":"number","nativeSrc":"9063:1:89","nodeType":"YulLiteral","src":"9063:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9046:3:89","nodeType":"YulIdentifier","src":"9046:3:89"},"nativeSrc":"9046:19:89","nodeType":"YulFunctionCall","src":"9046:19:89"}],"functionName":{"name":"and","nativeSrc":"9034:3:89","nodeType":"YulIdentifier","src":"9034:3:89"},"nativeSrc":"9034:32:89","nodeType":"YulFunctionCall","src":"9034:32:89"}],"functionName":{"name":"mstore","nativeSrc":"9016:6:89","nodeType":"YulIdentifier","src":"9016:6:89"},"nativeSrc":"9016:51:89","nodeType":"YulFunctionCall","src":"9016:51:89"},"nativeSrc":"9016:51:89","nodeType":"YulExpressionStatement","src":"9016:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9087:9:89","nodeType":"YulIdentifier","src":"9087:9:89"},{"kind":"number","nativeSrc":"9098:2:89","nodeType":"YulLiteral","src":"9098:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9083:3:89","nodeType":"YulIdentifier","src":"9083:3:89"},"nativeSrc":"9083:18:89","nodeType":"YulFunctionCall","src":"9083:18:89"},{"name":"value1","nativeSrc":"9103:6:89","nodeType":"YulIdentifier","src":"9103:6:89"}],"functionName":{"name":"mstore","nativeSrc":"9076:6:89","nodeType":"YulIdentifier","src":"9076:6:89"},"nativeSrc":"9076:34:89","nodeType":"YulFunctionCall","src":"9076:34:89"},"nativeSrc":"9076:34:89","nodeType":"YulExpressionStatement","src":"9076:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9130:9:89","nodeType":"YulIdentifier","src":"9130:9:89"},{"kind":"number","nativeSrc":"9141:2:89","nodeType":"YulLiteral","src":"9141:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9126:3:89","nodeType":"YulIdentifier","src":"9126:3:89"},"nativeSrc":"9126:18:89","nodeType":"YulFunctionCall","src":"9126:18:89"},{"kind":"number","nativeSrc":"9146:3:89","nodeType":"YulLiteral","src":"9146:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"9119:6:89","nodeType":"YulIdentifier","src":"9119:6:89"},"nativeSrc":"9119:31:89","nodeType":"YulFunctionCall","src":"9119:31:89"},"nativeSrc":"9119:31:89","nodeType":"YulExpressionStatement","src":"9119:31:89"},{"nativeSrc":"9159:76:89","nodeType":"YulVariableDeclaration","src":"9159:76:89","value":{"arguments":[{"name":"value2","nativeSrc":"9199:6:89","nodeType":"YulIdentifier","src":"9199:6:89"},{"name":"value3","nativeSrc":"9207:6:89","nodeType":"YulIdentifier","src":"9207:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"9219:9:89","nodeType":"YulIdentifier","src":"9219:9:89"},{"kind":"number","nativeSrc":"9230:3:89","nodeType":"YulLiteral","src":"9230:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9215:3:89","nodeType":"YulIdentifier","src":"9215:3:89"},"nativeSrc":"9215:19:89","nodeType":"YulFunctionCall","src":"9215:19:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"9173:25:89","nodeType":"YulIdentifier","src":"9173:25:89"},"nativeSrc":"9173:62:89","nodeType":"YulFunctionCall","src":"9173:62:89"},"variables":[{"name":"tail_1","nativeSrc":"9163:6:89","nodeType":"YulTypedName","src":"9163:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9255:9:89","nodeType":"YulIdentifier","src":"9255:9:89"},{"kind":"number","nativeSrc":"9266:2:89","nodeType":"YulLiteral","src":"9266:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9251:3:89","nodeType":"YulIdentifier","src":"9251:3:89"},"nativeSrc":"9251:18:89","nodeType":"YulFunctionCall","src":"9251:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"9275:6:89","nodeType":"YulIdentifier","src":"9275:6:89"},{"name":"headStart","nativeSrc":"9283:9:89","nodeType":"YulIdentifier","src":"9283:9:89"}],"functionName":{"name":"sub","nativeSrc":"9271:3:89","nodeType":"YulIdentifier","src":"9271:3:89"},"nativeSrc":"9271:22:89","nodeType":"YulFunctionCall","src":"9271:22:89"}],"functionName":{"name":"mstore","nativeSrc":"9244:6:89","nodeType":"YulIdentifier","src":"9244:6:89"},"nativeSrc":"9244:50:89","nodeType":"YulFunctionCall","src":"9244:50:89"},"nativeSrc":"9244:50:89","nodeType":"YulExpressionStatement","src":"9244:50:89"},{"nativeSrc":"9303:40:89","nodeType":"YulAssignment","src":"9303:40:89","value":{"arguments":[{"name":"value4","nativeSrc":"9328:6:89","nodeType":"YulIdentifier","src":"9328:6:89"},{"name":"tail_1","nativeSrc":"9336:6:89","nodeType":"YulIdentifier","src":"9336:6:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"9311:16:89","nodeType":"YulIdentifier","src":"9311:16:89"},"nativeSrc":"9311:32:89","nodeType":"YulFunctionCall","src":"9311:32:89"},"variableNames":[{"name":"tail","nativeSrc":"9303:4:89","nodeType":"YulIdentifier","src":"9303:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"8775:574:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8943:9:89","nodeType":"YulTypedName","src":"8943:9:89","type":""},{"name":"value4","nativeSrc":"8954:6:89","nodeType":"YulTypedName","src":"8954:6:89","type":""},{"name":"value3","nativeSrc":"8962:6:89","nodeType":"YulTypedName","src":"8962:6:89","type":""},{"name":"value2","nativeSrc":"8970:6:89","nodeType":"YulTypedName","src":"8970:6:89","type":""},{"name":"value1","nativeSrc":"8978:6:89","nodeType":"YulTypedName","src":"8978:6:89","type":""},{"name":"value0","nativeSrc":"8986:6:89","nodeType":"YulTypedName","src":"8986:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8997:4:89","nodeType":"YulTypedName","src":"8997:4:89","type":""}],"src":"8775:574:89"},{"body":{"nativeSrc":"9593:343:89","nodeType":"YulBlock","src":"9593:343:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9610:9:89","nodeType":"YulIdentifier","src":"9610:9:89"},{"arguments":[{"name":"value0","nativeSrc":"9625:6:89","nodeType":"YulIdentifier","src":"9625:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9641:3:89","nodeType":"YulLiteral","src":"9641:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"9646:1:89","nodeType":"YulLiteral","src":"9646:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9637:3:89","nodeType":"YulIdentifier","src":"9637:3:89"},"nativeSrc":"9637:11:89","nodeType":"YulFunctionCall","src":"9637:11:89"},{"kind":"number","nativeSrc":"9650:1:89","nodeType":"YulLiteral","src":"9650:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9633:3:89","nodeType":"YulIdentifier","src":"9633:3:89"},"nativeSrc":"9633:19:89","nodeType":"YulFunctionCall","src":"9633:19:89"}],"functionName":{"name":"and","nativeSrc":"9621:3:89","nodeType":"YulIdentifier","src":"9621:3:89"},"nativeSrc":"9621:32:89","nodeType":"YulFunctionCall","src":"9621:32:89"}],"functionName":{"name":"mstore","nativeSrc":"9603:6:89","nodeType":"YulIdentifier","src":"9603:6:89"},"nativeSrc":"9603:51:89","nodeType":"YulFunctionCall","src":"9603:51:89"},"nativeSrc":"9603:51:89","nodeType":"YulExpressionStatement","src":"9603:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9674:9:89","nodeType":"YulIdentifier","src":"9674:9:89"},{"kind":"number","nativeSrc":"9685:2:89","nodeType":"YulLiteral","src":"9685:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9670:3:89","nodeType":"YulIdentifier","src":"9670:3:89"},"nativeSrc":"9670:18:89","nodeType":"YulFunctionCall","src":"9670:18:89"},{"name":"value1","nativeSrc":"9690:6:89","nodeType":"YulIdentifier","src":"9690:6:89"}],"functionName":{"name":"mstore","nativeSrc":"9663:6:89","nodeType":"YulIdentifier","src":"9663:6:89"},"nativeSrc":"9663:34:89","nodeType":"YulFunctionCall","src":"9663:34:89"},"nativeSrc":"9663:34:89","nodeType":"YulExpressionStatement","src":"9663:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9717:9:89","nodeType":"YulIdentifier","src":"9717:9:89"},{"kind":"number","nativeSrc":"9728:2:89","nodeType":"YulLiteral","src":"9728:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9713:3:89","nodeType":"YulIdentifier","src":"9713:3:89"},"nativeSrc":"9713:18:89","nodeType":"YulFunctionCall","src":"9713:18:89"},{"kind":"number","nativeSrc":"9733:3:89","nodeType":"YulLiteral","src":"9733:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"9706:6:89","nodeType":"YulIdentifier","src":"9706:6:89"},"nativeSrc":"9706:31:89","nodeType":"YulFunctionCall","src":"9706:31:89"},"nativeSrc":"9706:31:89","nodeType":"YulExpressionStatement","src":"9706:31:89"},{"nativeSrc":"9746:76:89","nodeType":"YulVariableDeclaration","src":"9746:76:89","value":{"arguments":[{"name":"value2","nativeSrc":"9786:6:89","nodeType":"YulIdentifier","src":"9786:6:89"},{"name":"value3","nativeSrc":"9794:6:89","nodeType":"YulIdentifier","src":"9794:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"9806:9:89","nodeType":"YulIdentifier","src":"9806:9:89"},{"kind":"number","nativeSrc":"9817:3:89","nodeType":"YulLiteral","src":"9817:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9802:3:89","nodeType":"YulIdentifier","src":"9802:3:89"},"nativeSrc":"9802:19:89","nodeType":"YulFunctionCall","src":"9802:19:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"9760:25:89","nodeType":"YulIdentifier","src":"9760:25:89"},"nativeSrc":"9760:62:89","nodeType":"YulFunctionCall","src":"9760:62:89"},"variables":[{"name":"tail_1","nativeSrc":"9750:6:89","nodeType":"YulTypedName","src":"9750:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9842:9:89","nodeType":"YulIdentifier","src":"9842:9:89"},{"kind":"number","nativeSrc":"9853:2:89","nodeType":"YulLiteral","src":"9853:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9838:3:89","nodeType":"YulIdentifier","src":"9838:3:89"},"nativeSrc":"9838:18:89","nodeType":"YulFunctionCall","src":"9838:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"9862:6:89","nodeType":"YulIdentifier","src":"9862:6:89"},{"name":"headStart","nativeSrc":"9870:9:89","nodeType":"YulIdentifier","src":"9870:9:89"}],"functionName":{"name":"sub","nativeSrc":"9858:3:89","nodeType":"YulIdentifier","src":"9858:3:89"},"nativeSrc":"9858:22:89","nodeType":"YulFunctionCall","src":"9858:22:89"}],"functionName":{"name":"mstore","nativeSrc":"9831:6:89","nodeType":"YulIdentifier","src":"9831:6:89"},"nativeSrc":"9831:50:89","nodeType":"YulFunctionCall","src":"9831:50:89"},"nativeSrc":"9831:50:89","nodeType":"YulExpressionStatement","src":"9831:50:89"},{"nativeSrc":"9890:40:89","nodeType":"YulAssignment","src":"9890:40:89","value":{"arguments":[{"name":"value4","nativeSrc":"9915:6:89","nodeType":"YulIdentifier","src":"9915:6:89"},{"name":"tail_1","nativeSrc":"9923:6:89","nodeType":"YulIdentifier","src":"9923:6:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"9898:16:89","nodeType":"YulIdentifier","src":"9898:16:89"},"nativeSrc":"9898:32:89","nodeType":"YulFunctionCall","src":"9898:32:89"},"variableNames":[{"name":"tail","nativeSrc":"9890:4:89","nodeType":"YulIdentifier","src":"9890:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_rational_0_by_1_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"9354:582:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9530:9:89","nodeType":"YulTypedName","src":"9530:9:89","type":""},{"name":"value4","nativeSrc":"9541:6:89","nodeType":"YulTypedName","src":"9541:6:89","type":""},{"name":"value3","nativeSrc":"9549:6:89","nodeType":"YulTypedName","src":"9549:6:89","type":""},{"name":"value2","nativeSrc":"9557:6:89","nodeType":"YulTypedName","src":"9557:6:89","type":""},{"name":"value1","nativeSrc":"9565:6:89","nodeType":"YulTypedName","src":"9565:6:89","type":""},{"name":"value0","nativeSrc":"9573:6:89","nodeType":"YulTypedName","src":"9573:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9584:4:89","nodeType":"YulTypedName","src":"9584:4:89","type":""}],"src":"9354:582:89"},{"body":{"nativeSrc":"10106:158:89","nodeType":"YulBlock","src":"10106:158:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10123:9:89","nodeType":"YulIdentifier","src":"10123:9:89"},{"name":"value0","nativeSrc":"10134:6:89","nodeType":"YulIdentifier","src":"10134:6:89"}],"functionName":{"name":"mstore","nativeSrc":"10116:6:89","nodeType":"YulIdentifier","src":"10116:6:89"},"nativeSrc":"10116:25:89","nodeType":"YulFunctionCall","src":"10116:25:89"},"nativeSrc":"10116:25:89","nodeType":"YulExpressionStatement","src":"10116:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10161:9:89","nodeType":"YulIdentifier","src":"10161:9:89"},{"kind":"number","nativeSrc":"10172:2:89","nodeType":"YulLiteral","src":"10172:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10157:3:89","nodeType":"YulIdentifier","src":"10157:3:89"},"nativeSrc":"10157:18:89","nodeType":"YulFunctionCall","src":"10157:18:89"},{"kind":"number","nativeSrc":"10177:2:89","nodeType":"YulLiteral","src":"10177:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"10150:6:89","nodeType":"YulIdentifier","src":"10150:6:89"},"nativeSrc":"10150:30:89","nodeType":"YulFunctionCall","src":"10150:30:89"},"nativeSrc":"10150:30:89","nodeType":"YulExpressionStatement","src":"10150:30:89"},{"nativeSrc":"10189:69:89","nodeType":"YulAssignment","src":"10189:69:89","value":{"arguments":[{"name":"value1","nativeSrc":"10223:6:89","nodeType":"YulIdentifier","src":"10223:6:89"},{"name":"value2","nativeSrc":"10231:6:89","nodeType":"YulIdentifier","src":"10231:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"10243:9:89","nodeType":"YulIdentifier","src":"10243:9:89"},{"kind":"number","nativeSrc":"10254:2:89","nodeType":"YulLiteral","src":"10254:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10239:3:89","nodeType":"YulIdentifier","src":"10239:3:89"},"nativeSrc":"10239:18:89","nodeType":"YulFunctionCall","src":"10239:18:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"10197:25:89","nodeType":"YulIdentifier","src":"10197:25:89"},"nativeSrc":"10197:61:89","nodeType":"YulFunctionCall","src":"10197:61:89"},"variableNames":[{"name":"tail","nativeSrc":"10189:4:89","nodeType":"YulIdentifier","src":"10189:4:89"}]}]},"name":"abi_encode_tuple_t_rational_0_by_1_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"9941:323:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10059:9:89","nodeType":"YulTypedName","src":"10059:9:89","type":""},{"name":"value2","nativeSrc":"10070:6:89","nodeType":"YulTypedName","src":"10070:6:89","type":""},{"name":"value1","nativeSrc":"10078:6:89","nodeType":"YulTypedName","src":"10078:6:89","type":""},{"name":"value0","nativeSrc":"10086:6:89","nodeType":"YulTypedName","src":"10086:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10097:4:89","nodeType":"YulTypedName","src":"10097:4:89","type":""}],"src":"9941:323:89"},{"body":{"nativeSrc":"10377:101:89","nodeType":"YulBlock","src":"10377:101:89","statements":[{"nativeSrc":"10387:26:89","nodeType":"YulAssignment","src":"10387:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"10399:9:89","nodeType":"YulIdentifier","src":"10399:9:89"},{"kind":"number","nativeSrc":"10410:2:89","nodeType":"YulLiteral","src":"10410:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10395:3:89","nodeType":"YulIdentifier","src":"10395:3:89"},"nativeSrc":"10395:18:89","nodeType":"YulFunctionCall","src":"10395:18:89"},"variableNames":[{"name":"tail","nativeSrc":"10387:4:89","nodeType":"YulIdentifier","src":"10387:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10429:9:89","nodeType":"YulIdentifier","src":"10429:9:89"},{"arguments":[{"name":"value0","nativeSrc":"10444:6:89","nodeType":"YulIdentifier","src":"10444:6:89"},{"kind":"number","nativeSrc":"10452:18:89","nodeType":"YulLiteral","src":"10452:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10440:3:89","nodeType":"YulIdentifier","src":"10440:3:89"},"nativeSrc":"10440:31:89","nodeType":"YulFunctionCall","src":"10440:31:89"}],"functionName":{"name":"mstore","nativeSrc":"10422:6:89","nodeType":"YulIdentifier","src":"10422:6:89"},"nativeSrc":"10422:50:89","nodeType":"YulFunctionCall","src":"10422:50:89"},"nativeSrc":"10422:50:89","nodeType":"YulExpressionStatement","src":"10422:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"10269:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10346:9:89","nodeType":"YulTypedName","src":"10346:9:89","type":""},{"name":"value0","nativeSrc":"10357:6:89","nodeType":"YulTypedName","src":"10357:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10368:4:89","nodeType":"YulTypedName","src":"10368:4:89","type":""}],"src":"10269:209:89"},{"body":{"nativeSrc":"10612:145:89","nodeType":"YulBlock","src":"10612:145:89","statements":[{"nativeSrc":"10622:26:89","nodeType":"YulAssignment","src":"10622:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"10634:9:89","nodeType":"YulIdentifier","src":"10634:9:89"},{"kind":"number","nativeSrc":"10645:2:89","nodeType":"YulLiteral","src":"10645:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10630:3:89","nodeType":"YulIdentifier","src":"10630:3:89"},"nativeSrc":"10630:18:89","nodeType":"YulFunctionCall","src":"10630:18:89"},"variableNames":[{"name":"tail","nativeSrc":"10622:4:89","nodeType":"YulIdentifier","src":"10622:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10664:9:89","nodeType":"YulIdentifier","src":"10664:9:89"},{"arguments":[{"name":"value0","nativeSrc":"10679:6:89","nodeType":"YulIdentifier","src":"10679:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10695:3:89","nodeType":"YulLiteral","src":"10695:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"10700:1:89","nodeType":"YulLiteral","src":"10700:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"10691:3:89","nodeType":"YulIdentifier","src":"10691:3:89"},"nativeSrc":"10691:11:89","nodeType":"YulFunctionCall","src":"10691:11:89"},{"kind":"number","nativeSrc":"10704:1:89","nodeType":"YulLiteral","src":"10704:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10687:3:89","nodeType":"YulIdentifier","src":"10687:3:89"},"nativeSrc":"10687:19:89","nodeType":"YulFunctionCall","src":"10687:19:89"}],"functionName":{"name":"and","nativeSrc":"10675:3:89","nodeType":"YulIdentifier","src":"10675:3:89"},"nativeSrc":"10675:32:89","nodeType":"YulFunctionCall","src":"10675:32:89"}],"functionName":{"name":"mstore","nativeSrc":"10657:6:89","nodeType":"YulIdentifier","src":"10657:6:89"},"nativeSrc":"10657:51:89","nodeType":"YulFunctionCall","src":"10657:51:89"},"nativeSrc":"10657:51:89","nodeType":"YulExpressionStatement","src":"10657:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10728:9:89","nodeType":"YulIdentifier","src":"10728:9:89"},{"kind":"number","nativeSrc":"10739:2:89","nodeType":"YulLiteral","src":"10739:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10724:3:89","nodeType":"YulIdentifier","src":"10724:3:89"},"nativeSrc":"10724:18:89","nodeType":"YulFunctionCall","src":"10724:18:89"},{"name":"value1","nativeSrc":"10744:6:89","nodeType":"YulIdentifier","src":"10744:6:89"}],"functionName":{"name":"mstore","nativeSrc":"10717:6:89","nodeType":"YulIdentifier","src":"10717:6:89"},"nativeSrc":"10717:34:89","nodeType":"YulFunctionCall","src":"10717:34:89"},"nativeSrc":"10717:34:89","nodeType":"YulExpressionStatement","src":"10717:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"10483:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10573:9:89","nodeType":"YulTypedName","src":"10573:9:89","type":""},{"name":"value1","nativeSrc":"10584:6:89","nodeType":"YulTypedName","src":"10584:6:89","type":""},{"name":"value0","nativeSrc":"10592:6:89","nodeType":"YulTypedName","src":"10592:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10603:4:89","nodeType":"YulTypedName","src":"10603:4:89","type":""}],"src":"10483:274:89"},{"body":{"nativeSrc":"10899:145:89","nodeType":"YulBlock","src":"10899:145:89","statements":[{"nativeSrc":"10909:26:89","nodeType":"YulAssignment","src":"10909:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"10921:9:89","nodeType":"YulIdentifier","src":"10921:9:89"},{"kind":"number","nativeSrc":"10932:2:89","nodeType":"YulLiteral","src":"10932:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10917:3:89","nodeType":"YulIdentifier","src":"10917:3:89"},"nativeSrc":"10917:18:89","nodeType":"YulFunctionCall","src":"10917:18:89"},"variableNames":[{"name":"tail","nativeSrc":"10909:4:89","nodeType":"YulIdentifier","src":"10909:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10951:9:89","nodeType":"YulIdentifier","src":"10951:9:89"},{"arguments":[{"name":"value0","nativeSrc":"10966:6:89","nodeType":"YulIdentifier","src":"10966:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10982:3:89","nodeType":"YulLiteral","src":"10982:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"10987:1:89","nodeType":"YulLiteral","src":"10987:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"10978:3:89","nodeType":"YulIdentifier","src":"10978:3:89"},"nativeSrc":"10978:11:89","nodeType":"YulFunctionCall","src":"10978:11:89"},{"kind":"number","nativeSrc":"10991:1:89","nodeType":"YulLiteral","src":"10991:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10974:3:89","nodeType":"YulIdentifier","src":"10974:3:89"},"nativeSrc":"10974:19:89","nodeType":"YulFunctionCall","src":"10974:19:89"}],"functionName":{"name":"and","nativeSrc":"10962:3:89","nodeType":"YulIdentifier","src":"10962:3:89"},"nativeSrc":"10962:32:89","nodeType":"YulFunctionCall","src":"10962:32:89"}],"functionName":{"name":"mstore","nativeSrc":"10944:6:89","nodeType":"YulIdentifier","src":"10944:6:89"},"nativeSrc":"10944:51:89","nodeType":"YulFunctionCall","src":"10944:51:89"},"nativeSrc":"10944:51:89","nodeType":"YulExpressionStatement","src":"10944:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11015:9:89","nodeType":"YulIdentifier","src":"11015:9:89"},{"kind":"number","nativeSrc":"11026:2:89","nodeType":"YulLiteral","src":"11026:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11011:3:89","nodeType":"YulIdentifier","src":"11011:3:89"},"nativeSrc":"11011:18:89","nodeType":"YulFunctionCall","src":"11011:18:89"},{"name":"value1","nativeSrc":"11031:6:89","nodeType":"YulIdentifier","src":"11031:6:89"}],"functionName":{"name":"mstore","nativeSrc":"11004:6:89","nodeType":"YulIdentifier","src":"11004:6:89"},"nativeSrc":"11004:34:89","nodeType":"YulFunctionCall","src":"11004:34:89"},"nativeSrc":"11004:34:89","nodeType":"YulExpressionStatement","src":"11004:34:89"}]},"name":"abi_encode_tuple_t_address_t_rational_0_by_1__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"10762:282:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10860:9:89","nodeType":"YulTypedName","src":"10860:9:89","type":""},{"name":"value1","nativeSrc":"10871:6:89","nodeType":"YulTypedName","src":"10871:6:89","type":""},{"name":"value0","nativeSrc":"10879:6:89","nodeType":"YulTypedName","src":"10879:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10890:4:89","nodeType":"YulTypedName","src":"10890:4:89","type":""}],"src":"10762:282:89"}]},"contents":"{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(add(pos, i), 0x20), mload(add(add(value, i), 0x20)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let tail_2 := add(add(headStart, shl(5, length)), 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, headStart), not(63)))\n            tail_2 := abi_encode_bytes(mload(srcPtr), tail_2)\n            srcPtr := add(srcPtr, 32)\n            pos := add(pos, 32)\n        }\n        tail := tail_2\n    }\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_contract$_IERC20_$4735t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 128)\n        let tail_1 := abi_encode_bytes_calldata(value2, value3, add(headStart, 128))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value4, tail_1)\n    }\n    function abi_encode_tuple_t_address_t_rational_0_by_1_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 128)\n        let tail_1 := abi_encode_bytes_calldata(value2, value3, add(headStart, 128))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value4, tail_1)\n    }\n    function abi_encode_tuple_t_rational_0_by_1_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_address_t_rational_0_by_1__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100a05760003560e01c80638da5cb5b116100645780638da5cb5b14610179578063b61d27f6146101b1578063c4d66de8146101d1578063c72c901a146101f1578063dc40af1f14610211578063e1f21c671461025157600080fd5b8063150b7a02146100ac57806345670295146100f657806345f67ac7146101175780636e0aacf7146101375780637e383a751461015757600080fd5b366100a757005b600080fd5b3480156100b857600080fd5b506100d86100c7366004610ca3565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b610109610104366004610d16565b610271565b6040516100ed929190610db8565b61012a610125366004610e20565b61039b565b6040516100ed9190610ec6565b34801561014357600080fd5b50610109610152366004610f2b565b6105f4565b34801561016357600080fd5b50610177610172366004610f80565b61070e565b005b34801561018557600080fd5b50600054610199906001600160a01b031681565b6040516001600160a01b0390911681526020016100ed565b6101c46101bf366004610d16565b610769565b6040516100ed9190610fa4565b3480156101dd57600080fd5b506101776101ec366004610f80565b6108bd565b3480156101fd57600080fd5b5061017761020c366004610f80565b6109df565b34801561021d57600080fd5b5061024161022c366004610f80565b60016020526000908152604090205460ff1681565b60405190151581526020016100ed565b34801561025d57600080fd5b5061017761026c366004610fb7565b610a40565b3360009081526001602052604081205460609060ff16156102a857336000908152600160205260409020805460ff191690556102e8565b60005433906001600160a01b031681146102e657604051630504a20d60e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b505b856001600160a01b0316858585604051610303929190610ff8565b60006040518083038185875af1925050503d8060008114610340576040519150601f19603f3d011682016040523d82523d6000602084013e610345565b606091505b5060405191935091506001600160a01b038716907fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9061038a90889088908890611031565b60405180910390a294509492505050565b3360009081526001602052604090205460609060ff16156103d257336000908152600160205260409020805460ff1916905561040d565b60005433906001600160a01b0316811461040b57604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b505b60008667ffffffffffffffff81111561042857610428611054565b60405190808252806020026020018201604052801561045b57816020015b60608152602001906001900390816104465790505b50905060005b878110156105e8576000808a8a8481811061047e5761047e61106a565b90506020020160208101906104939190610f80565b6001600160a01b03168989858181106104ae576104ae61106a565b905060200201358888868181106104c7576104c761106a565b90506020028101906104d99190611080565b6040516104e7929190610ff8565b60006040518083038185875af1925050503d8060008114610524576040519150601f19603f3d011682016040523d82523d6000602084013e610529565b606091505b5091509150818b8b858181106105415761054161106a565b90506020020160208101906105569190610f80565b8a8a868181106105685761056861106a565b905060200201358989878181106105815761058161106a565b90506020028101906105939190611080565b8590919293946105bb57604051630717adb560e21b81526004016102dd9594939291906110c7565b5050505050808484815181106105d3576105d361106a565b60209081029190910101525050600101610461565b50979650505050505050565b6000805460609033906001600160a01b0316811461063157604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b50846001600160a01b0316848460405161064c929190610ff8565b600060405180830381855af49150503d8060008114610687576040519150601f19603f3d011682016040523d82523d6000602084013e61068c565b606091505b509092509050846000858584866106bb57604051630717adb560e21b81526004016102dd9594939291906110c7565b5050505050846001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f600086866040516106fe93929190611031565b60405180910390a2935093915050565b60005433906001600160a01b0316811461074757604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b506001600160a01b03166000908152600160205260409020805460ff19169055565b3360009081526001602052604090205460609060ff16156107a057336000908152600160205260409020805460ff191690556107db565b60005433906001600160a01b031681146107d957604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b505b600080866001600160a01b03168686866040516107f9929190610ff8565b60006040518083038185875af1925050503d8060008114610836576040519150601f19603f3d011682016040523d82523d6000602084013e61083b565b606091505b50909250905086868686848661086957604051630717adb560e21b81526004016102dd9594939291906110c7565b5050505050866001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f8787876040516108ab93929190611031565b60405180910390a29695505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109035750825b905060008267ffffffffffffffff1660011480156109205750303b155b90508115801561092e575080155b1561094c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561097657845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156109d757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60005433906001600160a01b03168114610a1857604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b506001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526001602052604090205460ff1615610a7457336000908152600160205260409020805460ff19169055610aaf565b60005433906001600160a01b03168114610aad57604051630504a20d60e01b81526001600160a01b0390911660048201526024016102dd565b505b610ac36001600160a01b0384168383610ac8565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610b198482610b82565b610b7c57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610b72908590610bd1565b610b7c8482610bd1565b50505050565b6000806000806020600086516020880160008a5af192503d91506000519050828015610bc757508115610bb85780600114610bc7565b6000866001600160a01b03163b115b9695505050505050565b600080602060008451602086016000885af180610bf4576040513d6000823e3d81fd5b50506000513d91508115610c0c578060011415610c19565b6001600160a01b0384163b155b15610b7c57604051635274afe760e01b81526001600160a01b03851660048201526024016102dd565b6001600160a01b0381168114610c5757600080fd5b50565b60008083601f840112610c6c57600080fd5b50813567ffffffffffffffff811115610c8457600080fd5b602083019150836020828501011115610c9c57600080fd5b9250929050565b600080600080600060808688031215610cbb57600080fd5b8535610cc681610c42565b94506020860135610cd681610c42565b935060408601359250606086013567ffffffffffffffff811115610cf957600080fd5b610d0588828901610c5a565b969995985093965092949392505050565b60008060008060608587031215610d2c57600080fd5b8435610d3781610c42565b935060208501359250604085013567ffffffffffffffff811115610d5a57600080fd5b610d6687828801610c5a565b95989497509550505050565b6000815180845260005b81811015610d9857602081850181015186830182015201610d7c565b506000602082860101526020601f19601f83011685010191505092915050565b8215158152604060208201526000610dd36040830184610d72565b949350505050565b60008083601f840112610ded57600080fd5b50813567ffffffffffffffff811115610e0557600080fd5b6020830191508360208260051b8501011115610c9c57600080fd5b60008060008060008060608789031215610e3957600080fd5b863567ffffffffffffffff811115610e5057600080fd5b610e5c89828a01610ddb565b909750955050602087013567ffffffffffffffff811115610e7c57600080fd5b610e8889828a01610ddb565b909550935050604087013567ffffffffffffffff811115610ea857600080fd5b610eb489828a01610ddb565b979a9699509497509295939492505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610f1f57603f19878603018452610f0a858351610d72565b94506020938401939190910190600101610eee565b50929695505050505050565b600080600060408486031215610f4057600080fd5b8335610f4b81610c42565b9250602084013567ffffffffffffffff811115610f6757600080fd5b610f7386828701610c5a565b9497909650939450505050565b600060208284031215610f9257600080fd5b8135610f9d81610c42565b9392505050565b602081526000610f9d6020830184610d72565b600080600060608486031215610fcc57600080fd5b8335610fd781610c42565b92506020840135610fe781610c42565b929592945050506040919091013590565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b83815260406020820152600061104b604083018486611008565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261109757600080fd5b83018035915067ffffffffffffffff8211156110b257600080fd5b602001915036819003821315610c9c57600080fd5b60018060a01b03861681528460208201526080604082015260006110ef608083018587611008565b82810360608401526111018185610d72565b9897505050505050505056fea264697066735822122032ddb73151e54c46720ba996a1a687a7dc1fb42eb87537e7af28c2b2a270da5464736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0xB61D27F6 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xC72C901A EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0xDC40AF1F EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0xE1F21C67 EQ PUSH2 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x150B7A02 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x45670295 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x45F67AC7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x6E0AACF7 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0x7E383A75 EQ PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xA7 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD8 PUSH2 0xC7 CALLDATASIZE PUSH1 0x4 PUSH2 0xCA3 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0xD16 JUMP JUMPDEST PUSH2 0x271 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP3 SWAP2 SWAP1 PUSH2 0xDB8 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x125 CALLDATASIZE PUSH1 0x4 PUSH2 0xE20 JUMP JUMPDEST PUSH2 0x39B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xEC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x109 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0xF2B JUMP JUMPDEST PUSH2 0x5F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xF80 JUMP JUMPDEST PUSH2 0x70E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x199 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x1BF CALLDATASIZE PUSH1 0x4 PUSH2 0xD16 JUMP JUMPDEST PUSH2 0x769 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xFA4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH2 0x1EC CALLDATASIZE PUSH1 0x4 PUSH2 0xF80 JUMP JUMPDEST PUSH2 0x8BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0xF80 JUMP JUMPDEST PUSH2 0x9DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x22C CALLDATASIZE PUSH1 0x4 PUSH2 0xF80 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH2 0x26C CALLDATASIZE PUSH1 0x4 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0xA40 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x2A8 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x2E6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x303 SWAP3 SWAP2 SWAP1 PUSH2 0xFF8 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 0x340 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 0x345 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F SWAP1 PUSH2 0x38A SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x1031 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x3D2 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x40D JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x40B JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP7 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x428 JUMPI PUSH2 0x428 PUSH2 0x1054 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x45B JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x446 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x5E8 JUMPI PUSH1 0x0 DUP1 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0x47E JUMPI PUSH2 0x47E PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x493 SWAP2 SWAP1 PUSH2 0xF80 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x4AE JUMPI PUSH2 0x4AE PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x4C7 JUMPI PUSH2 0x4C7 PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x4D9 SWAP2 SWAP1 PUSH2 0x1080 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E7 SWAP3 SWAP2 SWAP1 PUSH2 0xFF8 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 0x524 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 0x529 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP12 DUP12 DUP6 DUP2 DUP2 LT PUSH2 0x541 JUMPI PUSH2 0x541 PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x556 SWAP2 SWAP1 PUSH2 0xF80 JUMP JUMPDEST DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x568 JUMPI PUSH2 0x568 PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP10 DUP10 DUP8 DUP2 DUP2 LT PUSH2 0x581 JUMPI PUSH2 0x581 PUSH2 0x106A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1080 JUMP JUMPDEST DUP6 SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 PUSH2 0x5BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10C7 JUMP JUMPDEST POP POP POP POP POP DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x5D3 JUMPI PUSH2 0x5D3 PUSH2 0x106A JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x461 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x631 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x64C SWAP3 SWAP2 SWAP1 PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x687 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 0x68C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP DUP5 PUSH1 0x0 DUP6 DUP6 DUP5 DUP7 PUSH2 0x6BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10C7 JUMP JUMPDEST POP POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x6FE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1031 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x7A0 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x7DB JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x7D9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x7F9 SWAP3 SWAP2 SWAP1 PUSH2 0xFF8 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 0x836 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 0x83B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP DUP7 DUP7 DUP7 DUP7 DUP5 DUP7 PUSH2 0x869 JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10C7 JUMP JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x8AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1031 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x903 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x920 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x92E JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x94C JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x976 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x9D7 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0xA18 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA74 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0xAAF JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0xAAD JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST POP JUMPDEST PUSH2 0xAC3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP4 DUP4 PUSH2 0xAC8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xB19 DUP5 DUP3 PUSH2 0xB82 JUMP JUMPDEST PUSH2 0xB7C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x44 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xB72 SWAP1 DUP6 SWAP1 PUSH2 0xBD1 JUMP JUMPDEST PUSH2 0xB7C DUP5 DUP3 PUSH2 0xBD1 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP7 MLOAD PUSH1 0x20 DUP9 ADD PUSH1 0x0 DUP11 GAS CALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0xBC7 JUMPI POP DUP2 ISZERO PUSH2 0xBB8 JUMPI DUP1 PUSH1 0x1 EQ PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 PUSH1 0x0 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH1 0x0 DUP9 GAS CALL DUP1 PUSH2 0xBF4 JUMPI PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE DUP2 REVERT JUMPDEST POP POP PUSH1 0x0 MLOAD RETURNDATASIZE SWAP2 POP DUP2 ISZERO PUSH2 0xC0C JUMPI DUP1 PUSH1 0x1 EQ ISZERO PUSH2 0xC19 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0xB7C JUMPI PUSH1 0x40 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xCBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0xCC6 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0xCD6 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD05 DUP9 DUP3 DUP10 ADD PUSH2 0xC5A JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0xD37 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD66 DUP8 DUP3 DUP9 ADD PUSH2 0xC5A JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD98 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xD7C JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xDD3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xD72 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xC9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xE39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE5C DUP10 DUP3 DUP11 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE88 DUP10 DUP3 DUP11 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB4 DUP10 DUP3 DUP11 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xF1F JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0xF0A DUP6 DUP4 MLOAD PUSH2 0xD72 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xEEE JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xF4B DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF73 DUP7 DUP3 DUP8 ADD PUSH2 0xC5A JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xF9D DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xF9D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xFCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFD7 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0xFE7 DUP2 PUSH2 0xC42 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x104B PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x1008 JUMP JUMPDEST SWAP6 SWAP5 POP 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x10B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0xC9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x10EF PUSH1 0x80 DUP4 ADD DUP6 DUP8 PUSH2 0x1008 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x1101 DUP2 DUP6 PUSH2 0xD72 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0xDD 0xB7 BALANCE MLOAD 0xE5 0x4C CHAINID PUSH19 0xBA996A1A687A7DC1FB42EB87537E7AF28C2B2 LOG2 PUSH17 0xDA5464736F6C634300081C003300000000 ","sourceMap":"388:3005:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3190:201;;;;;;;;;;-1:-1:-1;3190:201:76;;;;;:::i;:::-;-1:-1:-1;;;3190:201:76;;;;;;;;;;;-1:-1:-1;;;;;;1475:33:89;;;1457:52;;1445:2;1430:18;3190:201:76;;;;;;;;1649:274;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2609:540::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1929:303::-;;;;;;;;;;-1:-1:-1;1929:303:76;;;;;:::i;:::-;;:::i;2354:111::-;;;;;;;;;;-1:-1:-1;2354:111:76;;;;;:::i;:::-;;:::i;:::-;;487:20;;;;;;;;;;-1:-1:-1;487:20:76;;;;-1:-1:-1;;;;;487:20:76;;;;;;-1:-1:-1;;;;;6132:32:89;;;6114:51;;6102:2;6087:18;487:20:76;5968:203:89;1280:363:76;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1188:86::-;;;;;;;;;;-1:-1:-1;1188:86:76;;;;;:::i;:::-;;:::i;2238:110::-;;;;;;;;;;-1:-1:-1;2238:110:76;;;;;:::i;:::-;;:::i;586:60::-;;;;;;;;;;-1:-1:-1;586:60:76;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6563:14:89;;6556:22;6538:41;;6526:2;6511:18;586:60:76;6398:187:89;2471:132:76;;;;;;;;;;-1:-1:-1;2471:132:76;;;;;:::i;:::-;;:::i;1649:274::-;840:10;1767:12;825:26;;;:14;:26;;;;;;1781:23;;825:26;;821:176;;;882:10;896:5;867:26;;;:14;:26;;;;;:34;;-1:-1:-1;;867:34:76;;;821:176;;;954:5;;940:10;;-1:-1:-1;;;;;954:5:76;940:19;;932:54;;;;-1:-1:-1;;;932:54:76;;-1:-1:-1;;;;;6132:32:89;;;932:54:76;;;6114:51:89;6087:18;;932:54:76;;;;;;;;;;821:176;1841:6:::1;-1:-1:-1::0;;;;;1841:11:76::1;1860:5;1867:4;;1841:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;1887:29:76::1;::::0;1817:55;;-1:-1:-1;1817:55:76;-1:-1:-1;;;;;;1887:29:76;::::1;::::0;::::1;::::0;::::1;::::0;1904:5;;1911:4;;;;1887:29:::1;:::i;:::-;;;;;;;;1649:274:::0;;;;;;;:::o;2609:540::-;840:10;825:26;;;;:14;:26;;;;;;2749:14;;825:26;;821:176;;;882:10;896:5;867:26;;;:14;:26;;;;;:34;;-1:-1:-1;;867:34:76;;;821:176;;;954:5;;940:10;;-1:-1:-1;;;;;954:5:76;940:19;;932:54;;;;-1:-1:-1;;;932:54:76;;-1:-1:-1;;;;;6132:32:89;;;932:54:76;;;6114:51:89;6087:18;;932:54:76;5968:203:89;932:54:76;;821:176;2775:22:::1;2812:7:::0;2800:27:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2775:52;;2842:9;2837:282;2857:18:::0;;::::1;2837:282;;;2897:12;2911:23:::0;2938:7:::1;;2946:1;2938:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2938:15:76::1;2961:6;;2968:1;2961:9;;;;;;;:::i;:::-;;;;;;;2972:4;;2977:1;2972:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2938:42;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2896:84;;;;3002:7;3027;;3035:1;3027:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3039:6;;3046:1;3039:9;;;;;;;:::i;:::-;;;;;;;3050:4;;3055:1;3050:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3059:10;2994:77;;;;;;;;;-1:-1:-1::0;;;2994:77:76::1;;;;;;;;;;;;:::i;:::-;;;;;;3098:10;3085:7;3093:1;3085:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:23;-1:-1:-1;;2877:3:76::1;;2837:282;;;-1:-1:-1::0;3135:7:76;2609:540;-1:-1:-1;;;;;;;2609:540:76:o;1929:303::-;2015:12;1073:5;;2029:23;;1059:10;;-1:-1:-1;;;;;1073:5:76;1059:19;;1051:54;;;;-1:-1:-1;;;1051:54:76;;-1:-1:-1;;;;;6132:32:89;;;1051:54:76;;;6114:51:89;6087:18;;1051:54:76;5968:203:89;1051:54:76;;2088:6:::1;-1:-1:-1::0;;;;;2088:19:76::1;2108:4;;2088:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;2064:49:76;;-1:-1:-1;2064:49:76;-1:-1:-1;2156:6:76;2164:1:::1;2167:4:::0;;2064:49;;2123:62:::1;;;;-1:-1:-1::0;;;2123:62:76::1;;;;;;;;;;;;:::i;:::-;;;;;;2209:6;-1:-1:-1::0;;;;;2200:25:76::1;;2217:1;2220:4;;2200:25;;;;;;;;:::i;:::-;;;;;;;;1929:303:::0;;;;;;:::o;2354:111::-;1073:5;;1059:10;;-1:-1:-1;;;;;1073:5:76;1059:19;;1051:54;;;;-1:-1:-1;;;1051:54:76;;-1:-1:-1;;;;;6132:32:89;;;1051:54:76;;;6114:51:89;6087:18;;1051:54:76;5968:203:89;1051:54:76;-1:-1:-1;;;;;;2428:22:76::1;2453:5;2428:22:::0;;;:14:::1;:22;::::0;;;;:30;;-1:-1:-1;;2428:30:76::1;::::0;;2354:111::o;1280:363::-;840:10;825:26;;;;:14;:26;;;;;;1392:12;;825:26;;821:176;;;882:10;896:5;867:26;;;:14;:26;;;;;:34;;-1:-1:-1;;867:34:76;;;821:176;;;954:5;;940:10;;-1:-1:-1;;;;;954:5:76;940:19;;932:54;;;;-1:-1:-1;;;932:54:76;;-1:-1:-1;;;;;6132:32:89;;;932:54:76;;;6114:51:89;6087:18;;932:54:76;5968:203:89;932:54:76;;821:176;1417:12:::1;1431:23:::0;1458:6:::1;-1:-1:-1::0;;;;;1458:11:76::1;1477:5;1484:4;;1458:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;1416:73:76;;-1:-1:-1;1416:73:76;-1:-1:-1;1532:6:76;1540:5;1547:4;;1416:73;;1499:66:::1;;;;-1:-1:-1::0;;;1499:66:76::1;;;;;;;;;;;;:::i;:::-;;;;;;1589:6;-1:-1:-1::0;;;;;1580:29:76::1;;1597:5;1604:4;;1580:29;;;;;;;;:::i;:::-;;;;;;;;1626:10:::0;1280:363;-1:-1:-1;;;;;;1280:363:76:o;1188:86::-;8870:21:22;4302:15;;-1:-1:-1;;;4302:15:22;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:22;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:22;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:22;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:22;-1:-1:-1;;;5013:22:22;;;4979:67;1253:5:76::1;:14:::0;;-1:-1:-1;;;;;;1253:14:76::1;-1:-1:-1::0;;;;;1253:14:76;::::1;;::::0;;5066:101:22;;;;5100:23;;-1:-1:-1;;;;5100:23:22;;;5142:14;;-1:-1:-1;10422:50:89;;5142:14:22;;10410:2:89;10395:18;5142:14:22;;;;;;;5066:101;4092:1081;;;;;1188:86:76;:::o;2238:110::-;1073:5;;1059:10;;-1:-1:-1;;;;;1073:5:76;1059:19;;1051:54;;;;-1:-1:-1;;;1051:54:76;;-1:-1:-1;;;;;6132:32:89;;;1051:54:76;;;6114:51:89;6087:18;;1051:54:76;5968:203:89;1051:54:76;-1:-1:-1;;;;;;2312:22:76::1;;::::0;;;2337:4:::1;2312:22;::::0;;;;;;;:29;;-1:-1:-1;;2312:29:76::1;::::0;;::::1;::::0;;2238:110::o;2471:132::-;840:10;825:26;;;;:14;:26;;;;;;;;821:176;;;882:10;896:5;867:26;;;:14;:26;;;;;:34;;-1:-1:-1;;867:34:76;;;821:176;;;954:5;;940:10;;-1:-1:-1;;;;;954:5:76;940:19;;932:54;;;;-1:-1:-1;;;932:54:76;;-1:-1:-1;;;;;6132:32:89;;;932:54:76;;;6114:51:89;6087:18;;932:54:76;5968:203:89;932:54:76;;821:176;2566:30:::1;-1:-1:-1::0;;;;;2566:18:76;::::1;2585:2:::0;2589:6;2566:18:::1;:30::i;:::-;2471:132:::0;;;:::o;4452:380:26:-;4567:47;;;-1:-1:-1;;;;;10675:32:89;;4567:47:26;;;10657:51:89;10724:18;;;;10717:34;;;4567:47:26;;;;;;;;;;10630:18:89;;;;4567:47:26;;;;;;;;-1:-1:-1;;;;;4567:47:26;-1:-1:-1;;;4567:47:26;;;4630:44;4582:13;4567:47;4630:23;:44::i;:::-;4625:201;;4717:43;;;-1:-1:-1;;;;;10675:32:89;;4717:43:26;;;10657:51:89;4757:1:26;10724:18:89;;;;10717:34;;;;4717:43:26;;;;;;;;;;10630:18:89;;;;4717:43:26;;;;;;;;-1:-1:-1;;;;;4717:43:26;-1:-1:-1;;;4717:43:26;;;4690:71;;4710:5;;4690:19;:71::i;:::-;4775:40;4795:5;4802:12;4775:19;:40::i;:::-;4529:303;4452:380;;;:::o;8960:480::-;9043:4;9059:12;9081:18;9109:19;9243:4;9240:1;9233:4;9227:11;9220:4;9214;9210:15;9207:1;9200:5;9193;9188:60;9177:71;;9275:16;9261:30;;9325:1;9319:8;9304:23;;9353:7;:80;;;;-1:-1:-1;9365:15:26;;:67;;9416:11;9431:1;9416:16;9365:67;;;9412:1;9391:5;-1:-1:-1;;;;;9383:26:26;;:30;9365:67;9346:87;8960:480;-1:-1:-1;;;;;;8960:480:26:o;7738:720::-;7818:18;7846:19;7984:4;7981:1;7974:4;7968:11;7961:4;7955;7951:15;7948:1;7941:5;7934;7929:60;8041:7;8031:176;;8085:4;8079:11;8130:16;8127:1;8122:3;8107:40;8176:16;8171:3;8164:29;8031:176;-1:-1:-1;;8284:1:26;8278:8;8234:16;;-1:-1:-1;8310:15:26;;:68;;8362:11;8377:1;8362:16;;8310:68;;;-1:-1:-1;;;;;8328:26:26;;;:31;8310:68;8306:146;;;8401:40;;-1:-1:-1;;;8401:40:26;;-1:-1:-1;;;;;6132:32:89;;8401:40:26;;;6114:51:89;6087:18;;8401:40:26;5968:203:89;14:131;-1:-1:-1;;;;;89:31:89;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:347::-;201:8;211:6;265:3;258:4;250:6;246:17;242:27;232:55;;283:1;280;273:12;232:55;-1:-1:-1;306:20:89;;349:18;338:30;;335:50;;;381:1;378;371:12;335:50;418:4;410:6;406:17;394:29;;470:3;463:4;454:6;446;442:19;438:30;435:39;432:59;;;487:1;484;477:12;432:59;150:347;;;;;:::o;502:806::-;599:6;607;615;623;631;684:3;672:9;663:7;659:23;655:33;652:53;;;701:1;698;691:12;652:53;740:9;727:23;759:31;784:5;759:31;:::i;:::-;809:5;-1:-1:-1;866:2:89;851:18;;838:32;879:33;838:32;879:33;:::i;:::-;931:7;-1:-1:-1;1011:2:89;996:18;;983:32;;-1:-1:-1;1092:2:89;1077:18;;1064:32;1119:18;1108:30;;1105:50;;;1151:1;1148;1141:12;1105:50;1190:58;1240:7;1231:6;1220:9;1216:22;1190:58;:::i;:::-;502:806;;;;-1:-1:-1;502:806:89;;-1:-1:-1;1267:8:89;;1164:84;502:806;-1:-1:-1;;;502:806:89:o;1520:664::-;1608:6;1616;1624;1632;1685:2;1673:9;1664:7;1660:23;1656:32;1653:52;;;1701:1;1698;1691:12;1653:52;1740:9;1727:23;1759:31;1784:5;1759:31;:::i;:::-;1809:5;-1:-1:-1;1887:2:89;1872:18;;1859:32;;-1:-1:-1;1968:2:89;1953:18;;1940:32;1995:18;1984:30;;1981:50;;;2027:1;2024;2017:12;1981:50;2066:58;2116:7;2107:6;2096:9;2092:22;2066:58;:::i;:::-;1520:664;;;;-1:-1:-1;2143:8:89;-1:-1:-1;;;;1520:664:89:o;2189:399::-;2230:3;2268:5;2262:12;2295:6;2290:3;2283:19;2320:1;2330:139;2344:6;2341:1;2338:13;2330:139;;;2452:4;2437:13;;;2433:24;;2427:31;2407:11;;;2403:22;;2396:63;2359:12;2330:139;;;2334:3;2514:1;2507:4;2498:6;2493:3;2489:16;2485:27;2478:38;2577:4;2570:2;2566:7;2561:2;2553:6;2549:15;2545:29;2540:3;2536:39;2532:50;2525:57;;;2189:399;;;;:::o;2593:298::-;2776:6;2769:14;2762:22;2751:9;2744:41;2821:2;2816;2805:9;2801:18;2794:30;2725:4;2841:44;2881:2;2870:9;2866:18;2858:6;2841:44;:::i;:::-;2833:52;2593:298;-1:-1:-1;;;;2593:298:89:o;2896:367::-;2959:8;2969:6;3023:3;3016:4;3008:6;3004:17;3000:27;2990:55;;3041:1;3038;3031:12;2990:55;-1:-1:-1;3064:20:89;;3107:18;3096:30;;3093:50;;;3139:1;3136;3129:12;3093:50;3176:4;3168:6;3164:17;3152:29;;3236:3;3229:4;3219:6;3216:1;3212:14;3204:6;3200:27;3196:38;3193:47;3190:67;;;3253:1;3250;3243:12;3268:1110;3437:6;3445;3453;3461;3469;3477;3530:2;3518:9;3509:7;3505:23;3501:32;3498:52;;;3546:1;3543;3536:12;3498:52;3586:9;3573:23;3619:18;3611:6;3608:30;3605:50;;;3651:1;3648;3641:12;3605:50;3690:70;3752:7;3743:6;3732:9;3728:22;3690:70;:::i;:::-;3779:8;;-1:-1:-1;3664:96:89;-1:-1:-1;;3867:2:89;3852:18;;3839:32;3896:18;3883:32;;3880:52;;;3928:1;3925;3918:12;3880:52;3967:72;4031:7;4020:8;4009:9;4005:24;3967:72;:::i;:::-;4058:8;;-1:-1:-1;3941:98:89;-1:-1:-1;;4146:2:89;4131:18;;4118:32;4175:18;4162:32;;4159:52;;;4207:1;4204;4197:12;4159:52;4246:72;4310:7;4299:8;4288:9;4284:24;4246:72;:::i;:::-;3268:1110;;;;-1:-1:-1;3268:1110:89;;-1:-1:-1;3268:1110:89;;4337:8;;3268:1110;-1:-1:-1;;;3268:1110:89:o;4383:779::-;4543:4;4591:2;4580:9;4576:18;4621:2;4610:9;4603:21;4644:6;4679;4673:13;4710:6;4702;4695:22;4748:2;4737:9;4733:18;4726:25;;4810:2;4800:6;4797:1;4793:14;4782:9;4778:30;4774:39;4760:53;;4848:2;4840:6;4836:15;4869:1;4879:254;4893:6;4890:1;4887:13;4879:254;;;4986:2;4982:7;4970:9;4962:6;4958:22;4954:36;4949:3;4942:49;5014:39;5046:6;5037;5031:13;5014:39;:::i;:::-;5004:49;-1:-1:-1;5088:2:89;5111:12;;;;5076:15;;;;;4915:1;4908:9;4879:254;;;-1:-1:-1;5150:6:89;;4383:779;-1:-1:-1;;;;;;4383:779:89:o;5167:544::-;5246:6;5254;5262;5315:2;5303:9;5294:7;5290:23;5286:32;5283:52;;;5331:1;5328;5321:12;5283:52;5370:9;5357:23;5389:31;5414:5;5389:31;:::i;:::-;5439:5;-1:-1:-1;5495:2:89;5480:18;;5467:32;5522:18;5511:30;;5508:50;;;5554:1;5551;5544:12;5508:50;5593:58;5643:7;5634:6;5623:9;5619:22;5593:58;:::i;:::-;5167:544;;5670:8;;-1:-1:-1;5567:84:89;;-1:-1:-1;;;;5167:544:89:o;5716:247::-;5775:6;5828:2;5816:9;5807:7;5803:23;5799:32;5796:52;;;5844:1;5841;5834:12;5796:52;5883:9;5870:23;5902:31;5927:5;5902:31;:::i;:::-;5952:5;5716:247;-1:-1:-1;;;5716:247:89:o;6176:217::-;6323:2;6312:9;6305:21;6286:4;6343:44;6383:2;6372:9;6368:18;6360:6;6343:44;:::i;6590:523::-;6682:6;6690;6698;6751:2;6739:9;6730:7;6726:23;6722:32;6719:52;;;6767:1;6764;6757:12;6719:52;6806:9;6793:23;6825:31;6850:5;6825:31;:::i;:::-;6875:5;-1:-1:-1;6932:2:89;6917:18;;6904:32;6945:33;6904:32;6945:33;:::i;:::-;6590:523;;6997:7;;-1:-1:-1;;;7077:2:89;7062:18;;;;7049:32;;6590:523::o;7118:271::-;7301:6;7293;7288:3;7275:33;7257:3;7327:16;;7352:13;;;7327:16;7118:271;-1:-1:-1;7118:271:89:o;7394:266::-;7482:6;7477:3;7470:19;7534:6;7527:5;7520:4;7515:3;7511:14;7498:43;-1:-1:-1;7586:1:89;7561:16;;;7579:4;7557:27;;;7550:38;;;;7642:2;7621:15;;;-1:-1:-1;;7617:29:89;7608:39;;;7604:50;;7394:266::o;7665:315::-;7850:6;7839:9;7832:25;7893:2;7888;7877:9;7873:18;7866:30;7813:4;7913:61;7970:2;7959:9;7955:18;7947:6;7939;7913:61;:::i;:::-;7905:69;7665:315;-1:-1:-1;;;;;7665:315:89:o;7985:127::-;8046:10;8041:3;8037:20;8034:1;8027:31;8077:4;8074:1;8067:15;8101:4;8098:1;8091:15;8117:127;8178:10;8173:3;8169:20;8166:1;8159:31;8209:4;8206:1;8199:15;8233:4;8230:1;8223:15;8249:521;8326:4;8332:6;8392:11;8379:25;8486:2;8482:7;8471:8;8455:14;8451:29;8447:43;8427:18;8423:68;8413:96;;8505:1;8502;8495:12;8413:96;8532:33;;8584:20;;;-1:-1:-1;8627:18:89;8616:30;;8613:50;;;8659:1;8656;8649:12;8613:50;8692:4;8680:17;;-1:-1:-1;8723:14:89;8719:27;;;8709:38;;8706:58;;;8760:1;8757;8750:12;8775:574;9063:1;9059;9054:3;9050:11;9046:19;9038:6;9034:32;9023:9;9016:51;9103:6;9098:2;9087:9;9083:18;9076:34;9146:3;9141:2;9130:9;9126:18;9119:31;8997:4;9173:62;9230:3;9219:9;9215:19;9207:6;9199;9173:62;:::i;:::-;9283:9;9275:6;9271:22;9266:2;9255:9;9251:18;9244:50;9311:32;9336:6;9328;9311:32;:::i;:::-;9303:40;8775:574;-1:-1:-1;;;;;;;;8775:574:89:o"},"methodIdentifiers":{"approve(address,address,uint256)":"e1f21c67","createOneTimeTicket(address)":"c72c901a","delegatecall(address,bytes)":"6e0aacf7","execute(address,uint256,bytes)":"b61d27f6","executeUnsafe(address,uint256,bytes)":"45670295","initialize(address)":"c4d66de8","multicall(address[],uint256[],bytes[])":"45f67ac7","onERC721Received(address,address,uint256,bytes)":"150b7a02","oneTimeTickets(address)":"dc40af1f","owner()":"8da5cb5b","revokeOneTimeTicket(address)":"7e383a75"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"createOneTimeTicket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegatecall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeUnsafe\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"oneTimeTickets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ticket\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"revokeOneTimeTicket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/smart-account/TacSmartAccount.sol\":\"TacSmartAccount\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"contracts/smart-account/TacSmartAccount.sol\":{\"keccak256\":\"0x4609e52e0d11ab9904a4d10436daace0694b24cc75a44aed3ff2b5f1aa5b97c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3d0ff2038c2273cae96e93452ed0510af43981e0e075f2ce71b286f693111e8\",\"dweb:/ipfs/QmWsgtDDx7bg1fdz8LXo2SRfJoMS5UvZtWoV1ybBkw8bUF\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":19077,"contract":"contracts/smart-account/TacSmartAccount.sol:TacSmartAccount","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":19089,"contract":"contracts/smart-account/TacSmartAccount.sol:TacSmartAccount","label":"oneTimeTickets","offset":0,"slot":"1","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"}}}}},"contracts/smart-account/interfaces/IHooks.sol":{"IHooks":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/smart-account/interfaces/IHooks.sol\":\"IHooks\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/smart-account/interfaces/IHooks.sol\":{\"keccak256\":\"0x92df3e161f446d1e7424cb544f92326549ecbafb77b37c647fb83026db4cddb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://958f2d6114803e5cec8b5556cb5199fdec970a12ba67e5bb74de793293a257f3\",\"dweb:/ipfs/QmNproAXSrm5R8BXjCHF6mo8yU7NFdMBEqammh26iKpKQ8\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/smart-account/interfaces/ISAFactory.sol":{"ISAFactory":{"abi":[{"inputs":[],"name":"disableInitializers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tvmWallet","type":"string"}],"name":"getOrCreateSmartAccount","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bool","name":"isNewAccount","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tvmWallet","type":"string"},{"internalType":"address","name":"application","type":"address"}],"name":"getSmartAccountForApplication","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"tvmWallet","type":"string"},{"internalType":"address","name":"application","type":"address"}],"name":"predictSmartAccountAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newBlueprint","type":"address"}],"name":"updateBlueprint","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"disableInitializers()":"31f44900","getOrCreateSmartAccount(string)":"a66c4f50","getSmartAccountForApplication(string,address)":"dbe6e7f9","predictSmartAccountAddress(string,address)":"70d367c3","updateBlueprint(address)":"fa81f7d9"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"disableInitializers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmWallet\",\"type\":\"string\"}],\"name\":\"getOrCreateSmartAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isNewAccount\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmWallet\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"application\",\"type\":\"address\"}],\"name\":\"getSmartAccountForApplication\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tvmWallet\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"application\",\"type\":\"address\"}],\"name\":\"predictSmartAccountAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newBlueprint\",\"type\":\"address\"}],\"name\":\"updateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/smart-account/interfaces/ISAFactory.sol\":\"ISAFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/smart-account/interfaces/ISAFactory.sol\":{\"keccak256\":\"0xbc3865cbdc19dde77ff0a60d69db0185e6203252c298588143958d4660b109ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1101b2014e66dcab07df94da3b5eea75b256a321b4ffa98563e1b5a94719d375\",\"dweb:/ipfs/QmWHhNBL7G11HoiHtgiGBJVefwzsDQzsWovSQxdXfyE3Aa\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/smart-account/interfaces/ITacSmartAccount.sol":{"ITacSmartAccount":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"createOneTimeTicket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"delegatecall","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"executeUnsafe","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"revokeOneTimeTicket","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,address,uint256)":"e1f21c67","createOneTimeTicket(address)":"c72c901a","delegatecall(address,bytes)":"6e0aacf7","execute(address,uint256,bytes)":"b61d27f6","executeUnsafe(address,uint256,bytes)":"45670295","multicall(address[],uint256[],bytes[])":"45f67ac7","revokeOneTimeTicket(address)":"7e383a75"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"createOneTimeTicket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegatecall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeUnsafe\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"revokeOneTimeTicket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/smart-account/interfaces/ITacSmartAccount.sol\":\"ITacSmartAccount\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/smart-account/interfaces/ITacSmartAccount.sol\":{\"keccak256\":\"0xd78a6839b3dfd4bc3c6a0898c10dbf7e7fbe73b4168964afce4671849853267b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ee2f0b2ea68353936cabb8ae16a7362ca7a6bffea0585e75ed5d413e193df84\",\"dweb:/ipfs/QmRbX4Pyp9hfLJxTyCdC4Bim2rdnVuM6Hnpj6TLFreqCb9\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/smart-account/libs/SaHelper.sol":{"SaHelper":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220af2797b57ddf0bd09308f9cc9e248ee69b1a9197bc93f8693201114dc857ad8164736f6c634300081c0033","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 0xAF 0x27 SWAP8 0xB5 PUSH30 0xDF0BD09308F9CC9E248EE69B1A9197BC93F8693201114DC857AD8164736F PUSH13 0x634300081C0033000000000000 ","sourceMap":"311:2047:80:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;311:2047:80;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220af2797b57ddf0bd09308f9cc9e248ee69b1a9197bc93f8693201114dc857ad8164736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0x27 SWAP8 0xB5 PUSH30 0xDF0BD09308F9CC9E248EE69B1A9197BC93F8693201114DC857AD8164736F PUSH13 0x634300081C0033000000000000 ","sourceMap":"311:2047:80:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/smart-account/libs/SaHelper.sol\":\"SaHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/smart-account/interfaces/IHooks.sol\":{\"keccak256\":\"0x92df3e161f446d1e7424cb544f92326549ecbafb77b37c647fb83026db4cddb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://958f2d6114803e5cec8b5556cb5199fdec970a12ba67e5bb74de793293a257f3\",\"dweb:/ipfs/QmNproAXSrm5R8BXjCHF6mo8yU7NFdMBEqammh26iKpKQ8\"]},\"contracts/smart-account/interfaces/ITacSmartAccount.sol\":{\"keccak256\":\"0xd78a6839b3dfd4bc3c6a0898c10dbf7e7fbe73b4168964afce4671849853267b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ee2f0b2ea68353936cabb8ae16a7362ca7a6bffea0585e75ed5d413e193df84\",\"dweb:/ipfs/QmRbX4Pyp9hfLJxTyCdC4Bim2rdnVuM6Hnpj6TLFreqCb9\"]},\"contracts/smart-account/libs/SaHelper.sol\":{\"keccak256\":\"0xd0b3f79b56e30704fe002189de2aedf73f9b8131139bc31a732068fef9e43c4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://696fc91b85ad47a68726b16675e44f6a673bfb51b54071b2e87126c57579abca\",\"dweb:/ipfs/QmP88UY6jq6PvkvpiHq2YQig6zUfPuEawssJzFMXdNWUfp\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/test/MerkleTreeUtils.sol":{"MerkleTreeUtils":{"abi":[{"inputs":[{"internalType":"bytes32","name":"objectHash","type":"bytes32"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"checkMerkleProof","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"bytes32","name":"operationId","type":"bytes32"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"string","name":"methodName","type":"string"},{"internalType":"bytes","name":"arguments","type":"bytes"},{"internalType":"string","name":"caller","type":"string"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount","name":"evmExecutorFee","type":"tuple"},{"internalType":"address[]","name":"evmValidExecutors","type":"address[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"mint","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"unlock","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct TokenInfo[]","name":"meta","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"mintNFT","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"unlockNFT","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"tvmAddress","type":"string"}],"internalType":"struct NFTInfo[]","name":"metaNFT","type":"tuple[]"}],"internalType":"struct InMessageV1","name":"message","type":"tuple"}],"name":"hashInMessageV1","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506108bd8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806358f5b6451461003b5780639507c26014610060575b600080fd5b61004e610049366004610149565b610073565b60405190815260200160405180910390f35b61004e61006e366004610185565b6100c0565b6000816040516020016100869190610645565b60408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052805190602001209050919050565b60006100cd8383866100d5565b949350505050565b600081815b8481101561010e57610104828787848181106100f8576100f8610871565b90506020020135610117565b91506001016100da565b50949350505050565b6000818310610133576000828152602084905260409020610142565b60008381526020839052604090205b9392505050565b60006020828403121561015b57600080fd5b813567ffffffffffffffff81111561017257600080fd5b8201610220818503121561014257600080fd5b60008060006040848603121561019a57600080fd5b83359250602084013567ffffffffffffffff8111156101b857600080fd5b8401601f810186136101c957600080fd5b803567ffffffffffffffff8111156101e057600080fd5b8660208260051b84010111156101f557600080fd5b939660209190910195509293505050565b803567ffffffffffffffff8116811461021e57600080fd5b919050565b80356001600160a01b038116811461021e57600080fd5b6000808335601e1984360301811261025157600080fd5b830160208101925035905067ffffffffffffffff81111561027157600080fd5b80360382131561028057600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b036102c182610223565b168252602090810135910152565b6000808335601e198436030181126102e657600080fd5b830160208101925035905067ffffffffffffffff81111561030657600080fd5b8060051b360382131561028057600080fd5b81835260208301925060008160005b84811015610356576001600160a01b0361034083610223565b1686526020958601959190910190600101610327565b5093949350505050565b6000808335601e1984360301811261037757600080fd5b830160208101925035905067ffffffffffffffff81111561039757600080fd5b8060061b360382131561028057600080fd5b81835260208301925060008160005b84811015610356576103ca86836102b0565b60409586019591909101906001016103b8565b60008235607e198336030181126103f357600080fd5b90910192915050565b60008383855260208501945060208460051b8201018360005b868110156104c957838303601f1901885261043082876103dd565b61043a818261023a565b6080865261044c608087018284610287565b91505061045c602083018361023a565b868303602088015261046f838284610287565b92505050604082013560ff811680821461048857600080fd5b60408701525061049b606083018361023a565b925085820360608701526104b0828483610287565b60209b8c019b9096509490940193505050600101610415565b50909695505050505050565b6000808335601e198436030181126104ec57600080fd5b830160208101925035905067ffffffffffffffff81111561050c57600080fd5b60608102360382131561028057600080fd5b81835260208301925060008160005b84811015610356576001600160a01b0361054683610223565b16865260208281013590870152604080830135908701526060958601959091019060010161052d565b60008383855260208501945060208460051b8201018360005b868110156104c957838303601f190188526105a382876103dd565b6105ad818261023a565b608086526105bf608087018284610287565b9150506105cf602083018361023a565b86830360208801526105e2838284610287565b925050506105f3604083018361023a565b8683036040880152610606838284610287565b92505050610617606083018361023a565b9250858203606087015261062c828483610287565b60209b8c019b9096509490940193505050600101610588565b602081526106676020820161065984610206565b67ffffffffffffffff169052565b600061067560208401610206565b67ffffffffffffffff811660408401525060408301356060838101919091528301356080808401919091526106ab908401610223565b6001600160a01b03811660a0840152506106c860a084018461023a565b61022060c08501526106df61024085018284610287565b9150506106ef60c085018561023a565b848303601f190160e0860152610706838284610287565b9250505061071760e085018561023a565b848303601f190161010086015261072f838284610287565b92505050610745610120840161010086016102b0565b6107536101408501856102cf565b848303601f190161016086015261076b838284610318565b9250505061077d610160850185610360565b848303601f19016101808601526107958382846103a9565b925050506107a7610180850185610360565b848303601f19016101a08601526107bf8382846103a9565b925050506107d16101a08501856102cf565b848303601f19016101c08601526107e98382846103fc565b925050506107fb6101c08501856104d5565b848303601f19016101e086015261081383828461051e565b925050506108256101e08501856104d5565b848303601f190161020086015261083d83828461051e565b9250505061084f6102008501856102cf565b848303601f190161022086015261086783828461056f565b9695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220c0a49435af5dfcd47d97220bd9e2b3784e228e8af3db28a04ee81ff88ceddb5e64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8BD DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x58F5B645 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x9507C260 EQ PUSH2 0x60 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x149 JUMP JUMPDEST PUSH2 0x73 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x6E CALLDATASIZE PUSH1 0x4 PUSH2 0x185 JUMP JUMPDEST PUSH2 0xC0 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x86 SWAP2 SWAP1 PUSH2 0x645 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 SWAP1 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD DUP4 DUP4 DUP7 PUSH2 0xD5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x10E JUMPI PUSH2 0x104 DUP3 DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0xF8 JUMPI PUSH2 0xF8 PUSH2 0x871 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x117 JUMP JUMPDEST SWAP2 POP PUSH1 0x1 ADD PUSH2 0xDA JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x133 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x142 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x220 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x142 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x1C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD GT ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP7 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 POP SWAP3 SWAP4 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x2C1 DUP3 PUSH2 0x223 JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD CALLDATALOAD SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x5 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x340 DUP4 PUSH2 0x223 JUMP JUMPDEST AND DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x327 JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x397 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x6 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH2 0x3CA DUP7 DUP4 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 SWAP6 DUP7 ADD SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3B8 JUMP JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x7E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP3 ADD ADD DUP4 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x4C9 JUMPI DUP4 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x430 DUP3 DUP8 PUSH2 0x3DD JUMP JUMPDEST PUSH2 0x43A DUP2 DUP3 PUSH2 0x23A JUMP JUMPDEST PUSH1 0x80 DUP7 MSTORE PUSH2 0x44C PUSH1 0x80 DUP8 ADD DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x45C PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x20 DUP9 ADD MSTORE PUSH2 0x46F DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP1 DUP3 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP8 ADD MSTORE POP PUSH2 0x49B PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST SWAP3 POP DUP6 DUP3 SUB PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x4B0 DUP3 DUP5 DUP4 PUSH2 0x287 JUMP JUMPDEST PUSH1 0x20 SWAP12 DUP13 ADD SWAP12 SWAP1 SWAP7 POP SWAP5 SWAP1 SWAP5 ADD SWAP4 POP POP POP PUSH1 0x1 ADD PUSH2 0x415 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP2 MUL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x546 DUP4 PUSH2 0x223 JUMP JUMPDEST AND DUP7 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x60 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x52D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP3 ADD ADD DUP4 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x4C9 JUMPI DUP4 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x5A3 DUP3 DUP8 PUSH2 0x3DD JUMP JUMPDEST PUSH2 0x5AD DUP2 DUP3 PUSH2 0x23A JUMP JUMPDEST PUSH1 0x80 DUP7 MSTORE PUSH2 0x5BF PUSH1 0x80 DUP8 ADD DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5CF PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x20 DUP9 ADD MSTORE PUSH2 0x5E2 DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x5F3 PUSH1 0x40 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x40 DUP9 ADD MSTORE PUSH2 0x606 DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x617 PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST SWAP3 POP DUP6 DUP3 SUB PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x62C DUP3 DUP5 DUP4 PUSH2 0x287 JUMP JUMPDEST PUSH1 0x20 SWAP12 DUP13 ADD SWAP12 SWAP1 SWAP7 POP SWAP5 SWAP1 SWAP5 ADD SWAP4 POP POP POP PUSH1 0x1 ADD PUSH2 0x588 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x667 PUSH1 0x20 DUP3 ADD PUSH2 0x659 DUP5 PUSH2 0x206 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 PUSH1 0x20 DUP5 ADD PUSH2 0x206 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x40 DUP5 ADD MSTORE POP PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x60 DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 ADD CALLDATALOAD PUSH1 0x80 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x6AB SWAP1 DUP5 ADD PUSH2 0x223 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE POP PUSH2 0x6C8 PUSH1 0xA0 DUP5 ADD DUP5 PUSH2 0x23A JUMP JUMPDEST PUSH2 0x220 PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x6DF PUSH2 0x240 DUP6 ADD DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6EF PUSH1 0xC0 DUP6 ADD DUP6 PUSH2 0x23A JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH1 0xE0 DUP7 ADD MSTORE PUSH2 0x706 DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x717 PUSH1 0xE0 DUP6 ADD DUP6 PUSH2 0x23A JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x72F DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x745 PUSH2 0x120 DUP5 ADD PUSH2 0x100 DUP7 ADD PUSH2 0x2B0 JUMP JUMPDEST PUSH2 0x753 PUSH2 0x140 DUP6 ADD DUP6 PUSH2 0x2CF JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x160 DUP7 ADD MSTORE PUSH2 0x76B DUP4 DUP3 DUP5 PUSH2 0x318 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x77D PUSH2 0x160 DUP6 ADD DUP6 PUSH2 0x360 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x180 DUP7 ADD MSTORE PUSH2 0x795 DUP4 DUP3 DUP5 PUSH2 0x3A9 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x7A7 PUSH2 0x180 DUP6 ADD DUP6 PUSH2 0x360 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x1A0 DUP7 ADD MSTORE PUSH2 0x7BF DUP4 DUP3 DUP5 PUSH2 0x3A9 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x7D1 PUSH2 0x1A0 DUP6 ADD DUP6 PUSH2 0x2CF JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x1C0 DUP7 ADD MSTORE PUSH2 0x7E9 DUP4 DUP3 DUP5 PUSH2 0x3FC JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x7FB PUSH2 0x1C0 DUP6 ADD DUP6 PUSH2 0x4D5 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x1E0 DUP7 ADD MSTORE PUSH2 0x813 DUP4 DUP3 DUP5 PUSH2 0x51E JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x825 PUSH2 0x1E0 DUP6 ADD DUP6 PUSH2 0x4D5 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x200 DUP7 ADD MSTORE PUSH2 0x83D DUP4 DUP3 DUP5 PUSH2 0x51E JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x84F PUSH2 0x200 DUP6 ADD DUP6 PUSH2 0x2CF JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x220 DUP7 ADD MSTORE PUSH2 0x867 DUP4 DUP3 DUP5 PUSH2 0x56F JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 LOG4 SWAP5 CALLDATALOAD 0xAF TSTORE 0xFC 0xD4 PUSH30 0x97220BD9E2B3784E228E8AF3DB28A04EE81FF88CEDDB5E64736F6C634300 ADDMOD SHR STOP CALLER ","sourceMap":"353:700:81:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_efficientKeccak256_7383":{"entryPoint":null,"id":7383,"parameterSlots":2,"returnSlots":1},"@checkMerkleProof_19927":{"entryPoint":192,"id":19927,"parameterSlots":3,"returnSlots":1},"@commutativeKeccak256_7371":{"entryPoint":279,"id":7371,"parameterSlots":2,"returnSlots":1},"@hashInMessageV1_19909":{"entryPoint":115,"id":19909,"parameterSlots":1,"returnSlots":1},"@processProofCalldata_7598":{"entryPoint":213,"id":7598,"parameterSlots":3,"returnSlots":1},"abi_decode_address":{"entryPoint":547,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_bytes32t_array$_t_bytes32_$dyn_calldata_ptr":{"entryPoint":389,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_struct$_InMessageV1_$16055_calldata_ptr":{"entryPoint":329,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint64":{"entryPoint":518,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_array_address_dyn_calldata":{"entryPoint":792,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_struct_NFTAmount_calldata_dyn_calldata":{"entryPoint":1310,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_struct_NFTInfo_calldata_dyn_calldata":{"entryPoint":1391,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_struct_TokenAmount_calldata_dyn_calldata":{"entryPoint":937,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_struct_TokenInfo_calldata_dyn_calldata":{"entryPoint":1020,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_string_calldata":{"entryPoint":647,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_struct_TokenAmount_calldata":{"entryPoint":688,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_InMessageV1_$16055_calldata_ptr__to_t_struct$_InMessageV1_$16055_memory_ptr__fromStack_reversed":{"entryPoint":1605,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint64":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"calldata_access_array_address_dyn_calldata":{"entryPoint":719,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_access_array_struct_NFTAmount_calldata_dyn_calldata":{"entryPoint":1237,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_access_array_struct_TokenAmount_calldata_dyn_calldata":{"entryPoint":864,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_access_string_calldata":{"entryPoint":570,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_access_struct_TokenInfo_calldata":{"entryPoint":989,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x32":{"entryPoint":2161,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13634:89","nodeType":"YulBlock","src":"0:13634:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"116:290:89","nodeType":"YulBlock","src":"116:290:89","statements":[{"body":{"nativeSrc":"162:16:89","nodeType":"YulBlock","src":"162:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"171:1:89","nodeType":"YulLiteral","src":"171:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"174:1:89","nodeType":"YulLiteral","src":"174:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"164:6:89","nodeType":"YulIdentifier","src":"164:6:89"},"nativeSrc":"164:12:89","nodeType":"YulFunctionCall","src":"164:12:89"},"nativeSrc":"164:12:89","nodeType":"YulExpressionStatement","src":"164:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"137:7:89","nodeType":"YulIdentifier","src":"137:7:89"},{"name":"headStart","nativeSrc":"146:9:89","nodeType":"YulIdentifier","src":"146:9:89"}],"functionName":{"name":"sub","nativeSrc":"133:3:89","nodeType":"YulIdentifier","src":"133:3:89"},"nativeSrc":"133:23:89","nodeType":"YulFunctionCall","src":"133:23:89"},{"kind":"number","nativeSrc":"158:2:89","nodeType":"YulLiteral","src":"158:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"129:3:89","nodeType":"YulIdentifier","src":"129:3:89"},"nativeSrc":"129:32:89","nodeType":"YulFunctionCall","src":"129:32:89"},"nativeSrc":"126:52:89","nodeType":"YulIf","src":"126:52:89"},{"nativeSrc":"187:37:89","nodeType":"YulVariableDeclaration","src":"187:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"214:9:89","nodeType":"YulIdentifier","src":"214:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"201:12:89","nodeType":"YulIdentifier","src":"201:12:89"},"nativeSrc":"201:23:89","nodeType":"YulFunctionCall","src":"201:23:89"},"variables":[{"name":"offset","nativeSrc":"191:6:89","nodeType":"YulTypedName","src":"191:6:89","type":""}]},{"body":{"nativeSrc":"267:16:89","nodeType":"YulBlock","src":"267:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"276:1:89","nodeType":"YulLiteral","src":"276:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"279:1:89","nodeType":"YulLiteral","src":"279:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"269:6:89","nodeType":"YulIdentifier","src":"269:6:89"},"nativeSrc":"269:12:89","nodeType":"YulFunctionCall","src":"269:12:89"},"nativeSrc":"269:12:89","nodeType":"YulExpressionStatement","src":"269:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"239:6:89","nodeType":"YulIdentifier","src":"239:6:89"},{"kind":"number","nativeSrc":"247:18:89","nodeType":"YulLiteral","src":"247:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"236:2:89","nodeType":"YulIdentifier","src":"236:2:89"},"nativeSrc":"236:30:89","nodeType":"YulFunctionCall","src":"236:30:89"},"nativeSrc":"233:50:89","nodeType":"YulIf","src":"233:50:89"},{"nativeSrc":"292:32:89","nodeType":"YulVariableDeclaration","src":"292:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"306:9:89","nodeType":"YulIdentifier","src":"306:9:89"},{"name":"offset","nativeSrc":"317:6:89","nodeType":"YulIdentifier","src":"317:6:89"}],"functionName":{"name":"add","nativeSrc":"302:3:89","nodeType":"YulIdentifier","src":"302:3:89"},"nativeSrc":"302:22:89","nodeType":"YulFunctionCall","src":"302:22:89"},"variables":[{"name":"_1","nativeSrc":"296:2:89","nodeType":"YulTypedName","src":"296:2:89","type":""}]},{"body":{"nativeSrc":"363:16:89","nodeType":"YulBlock","src":"363:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"372:1:89","nodeType":"YulLiteral","src":"372:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"375:1:89","nodeType":"YulLiteral","src":"375:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"365:6:89","nodeType":"YulIdentifier","src":"365:6:89"},"nativeSrc":"365:12:89","nodeType":"YulFunctionCall","src":"365:12:89"},"nativeSrc":"365:12:89","nodeType":"YulExpressionStatement","src":"365:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"344:7:89","nodeType":"YulIdentifier","src":"344:7:89"},{"name":"_1","nativeSrc":"353:2:89","nodeType":"YulIdentifier","src":"353:2:89"}],"functionName":{"name":"sub","nativeSrc":"340:3:89","nodeType":"YulIdentifier","src":"340:3:89"},"nativeSrc":"340:16:89","nodeType":"YulFunctionCall","src":"340:16:89"},{"kind":"number","nativeSrc":"358:3:89","nodeType":"YulLiteral","src":"358:3:89","type":"","value":"544"}],"functionName":{"name":"slt","nativeSrc":"336:3:89","nodeType":"YulIdentifier","src":"336:3:89"},"nativeSrc":"336:26:89","nodeType":"YulFunctionCall","src":"336:26:89"},"nativeSrc":"333:46:89","nodeType":"YulIf","src":"333:46:89"},{"nativeSrc":"388:12:89","nodeType":"YulAssignment","src":"388:12:89","value":{"name":"_1","nativeSrc":"398:2:89","nodeType":"YulIdentifier","src":"398:2:89"},"variableNames":[{"name":"value0","nativeSrc":"388:6:89","nodeType":"YulIdentifier","src":"388:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_InMessageV1_$16055_calldata_ptr","nativeSrc":"14:392:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"82:9:89","nodeType":"YulTypedName","src":"82:9:89","type":""},{"name":"dataEnd","nativeSrc":"93:7:89","nodeType":"YulTypedName","src":"93:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"105:6:89","nodeType":"YulTypedName","src":"105:6:89","type":""}],"src":"14:392:89"},{"body":{"nativeSrc":"512:76:89","nodeType":"YulBlock","src":"512:76:89","statements":[{"nativeSrc":"522:26:89","nodeType":"YulAssignment","src":"522:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"534:9:89","nodeType":"YulIdentifier","src":"534:9:89"},{"kind":"number","nativeSrc":"545:2:89","nodeType":"YulLiteral","src":"545:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"530:3:89","nodeType":"YulIdentifier","src":"530:3:89"},"nativeSrc":"530:18:89","nodeType":"YulFunctionCall","src":"530:18:89"},"variableNames":[{"name":"tail","nativeSrc":"522:4:89","nodeType":"YulIdentifier","src":"522:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"564:9:89","nodeType":"YulIdentifier","src":"564:9:89"},{"name":"value0","nativeSrc":"575:6:89","nodeType":"YulIdentifier","src":"575:6:89"}],"functionName":{"name":"mstore","nativeSrc":"557:6:89","nodeType":"YulIdentifier","src":"557:6:89"},"nativeSrc":"557:25:89","nodeType":"YulFunctionCall","src":"557:25:89"},"nativeSrc":"557:25:89","nodeType":"YulExpressionStatement","src":"557:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"411:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"481:9:89","nodeType":"YulTypedName","src":"481:9:89","type":""},{"name":"value0","nativeSrc":"492:6:89","nodeType":"YulTypedName","src":"492:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"503:4:89","nodeType":"YulTypedName","src":"503:4:89","type":""}],"src":"411:177:89"},{"body":{"nativeSrc":"715:602:89","nodeType":"YulBlock","src":"715:602:89","statements":[{"body":{"nativeSrc":"761:16:89","nodeType":"YulBlock","src":"761:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"770:1:89","nodeType":"YulLiteral","src":"770:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"773:1:89","nodeType":"YulLiteral","src":"773:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"763:6:89","nodeType":"YulIdentifier","src":"763:6:89"},"nativeSrc":"763:12:89","nodeType":"YulFunctionCall","src":"763:12:89"},"nativeSrc":"763:12:89","nodeType":"YulExpressionStatement","src":"763:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"736:7:89","nodeType":"YulIdentifier","src":"736:7:89"},{"name":"headStart","nativeSrc":"745:9:89","nodeType":"YulIdentifier","src":"745:9:89"}],"functionName":{"name":"sub","nativeSrc":"732:3:89","nodeType":"YulIdentifier","src":"732:3:89"},"nativeSrc":"732:23:89","nodeType":"YulFunctionCall","src":"732:23:89"},{"kind":"number","nativeSrc":"757:2:89","nodeType":"YulLiteral","src":"757:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"728:3:89","nodeType":"YulIdentifier","src":"728:3:89"},"nativeSrc":"728:32:89","nodeType":"YulFunctionCall","src":"728:32:89"},"nativeSrc":"725:52:89","nodeType":"YulIf","src":"725:52:89"},{"nativeSrc":"786:14:89","nodeType":"YulVariableDeclaration","src":"786:14:89","value":{"kind":"number","nativeSrc":"799:1:89","nodeType":"YulLiteral","src":"799:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"790:5:89","nodeType":"YulTypedName","src":"790:5:89","type":""}]},{"nativeSrc":"809:32:89","nodeType":"YulAssignment","src":"809:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"831:9:89","nodeType":"YulIdentifier","src":"831:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"818:12:89","nodeType":"YulIdentifier","src":"818:12:89"},"nativeSrc":"818:23:89","nodeType":"YulFunctionCall","src":"818:23:89"},"variableNames":[{"name":"value","nativeSrc":"809:5:89","nodeType":"YulIdentifier","src":"809:5:89"}]},{"nativeSrc":"850:15:89","nodeType":"YulAssignment","src":"850:15:89","value":{"name":"value","nativeSrc":"860:5:89","nodeType":"YulIdentifier","src":"860:5:89"},"variableNames":[{"name":"value0","nativeSrc":"850:6:89","nodeType":"YulIdentifier","src":"850:6:89"}]},{"nativeSrc":"874:46:89","nodeType":"YulVariableDeclaration","src":"874:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"905:9:89","nodeType":"YulIdentifier","src":"905:9:89"},{"kind":"number","nativeSrc":"916:2:89","nodeType":"YulLiteral","src":"916:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"901:3:89","nodeType":"YulIdentifier","src":"901:3:89"},"nativeSrc":"901:18:89","nodeType":"YulFunctionCall","src":"901:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"888:12:89","nodeType":"YulIdentifier","src":"888:12:89"},"nativeSrc":"888:32:89","nodeType":"YulFunctionCall","src":"888:32:89"},"variables":[{"name":"offset","nativeSrc":"878:6:89","nodeType":"YulTypedName","src":"878:6:89","type":""}]},{"body":{"nativeSrc":"963:16:89","nodeType":"YulBlock","src":"963:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"972:1:89","nodeType":"YulLiteral","src":"972:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"975:1:89","nodeType":"YulLiteral","src":"975:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"965:6:89","nodeType":"YulIdentifier","src":"965:6:89"},"nativeSrc":"965:12:89","nodeType":"YulFunctionCall","src":"965:12:89"},"nativeSrc":"965:12:89","nodeType":"YulExpressionStatement","src":"965:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"935:6:89","nodeType":"YulIdentifier","src":"935:6:89"},{"kind":"number","nativeSrc":"943:18:89","nodeType":"YulLiteral","src":"943:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"932:2:89","nodeType":"YulIdentifier","src":"932:2:89"},"nativeSrc":"932:30:89","nodeType":"YulFunctionCall","src":"932:30:89"},"nativeSrc":"929:50:89","nodeType":"YulIf","src":"929:50:89"},{"nativeSrc":"988:32:89","nodeType":"YulVariableDeclaration","src":"988:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1002:9:89","nodeType":"YulIdentifier","src":"1002:9:89"},{"name":"offset","nativeSrc":"1013:6:89","nodeType":"YulIdentifier","src":"1013:6:89"}],"functionName":{"name":"add","nativeSrc":"998:3:89","nodeType":"YulIdentifier","src":"998:3:89"},"nativeSrc":"998:22:89","nodeType":"YulFunctionCall","src":"998:22:89"},"variables":[{"name":"_1","nativeSrc":"992:2:89","nodeType":"YulTypedName","src":"992:2:89","type":""}]},{"body":{"nativeSrc":"1068:16:89","nodeType":"YulBlock","src":"1068:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1077:1:89","nodeType":"YulLiteral","src":"1077:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1080:1:89","nodeType":"YulLiteral","src":"1080:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1070:6:89","nodeType":"YulIdentifier","src":"1070:6:89"},"nativeSrc":"1070:12:89","nodeType":"YulFunctionCall","src":"1070:12:89"},"nativeSrc":"1070:12:89","nodeType":"YulExpressionStatement","src":"1070:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1047:2:89","nodeType":"YulIdentifier","src":"1047:2:89"},{"kind":"number","nativeSrc":"1051:4:89","nodeType":"YulLiteral","src":"1051:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1043:3:89","nodeType":"YulIdentifier","src":"1043:3:89"},"nativeSrc":"1043:13:89","nodeType":"YulFunctionCall","src":"1043:13:89"},{"name":"dataEnd","nativeSrc":"1058:7:89","nodeType":"YulIdentifier","src":"1058:7:89"}],"functionName":{"name":"slt","nativeSrc":"1039:3:89","nodeType":"YulIdentifier","src":"1039:3:89"},"nativeSrc":"1039:27:89","nodeType":"YulFunctionCall","src":"1039:27:89"}],"functionName":{"name":"iszero","nativeSrc":"1032:6:89","nodeType":"YulIdentifier","src":"1032:6:89"},"nativeSrc":"1032:35:89","nodeType":"YulFunctionCall","src":"1032:35:89"},"nativeSrc":"1029:55:89","nodeType":"YulIf","src":"1029:55:89"},{"nativeSrc":"1093:30:89","nodeType":"YulVariableDeclaration","src":"1093:30:89","value":{"arguments":[{"name":"_1","nativeSrc":"1120:2:89","nodeType":"YulIdentifier","src":"1120:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"1107:12:89","nodeType":"YulIdentifier","src":"1107:12:89"},"nativeSrc":"1107:16:89","nodeType":"YulFunctionCall","src":"1107:16:89"},"variables":[{"name":"length","nativeSrc":"1097:6:89","nodeType":"YulTypedName","src":"1097:6:89","type":""}]},{"body":{"nativeSrc":"1166:16:89","nodeType":"YulBlock","src":"1166:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1175:1:89","nodeType":"YulLiteral","src":"1175:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1178:1:89","nodeType":"YulLiteral","src":"1178:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1168:6:89","nodeType":"YulIdentifier","src":"1168:6:89"},"nativeSrc":"1168:12:89","nodeType":"YulFunctionCall","src":"1168:12:89"},"nativeSrc":"1168:12:89","nodeType":"YulExpressionStatement","src":"1168:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1138:6:89","nodeType":"YulIdentifier","src":"1138:6:89"},{"kind":"number","nativeSrc":"1146:18:89","nodeType":"YulLiteral","src":"1146:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1135:2:89","nodeType":"YulIdentifier","src":"1135:2:89"},"nativeSrc":"1135:30:89","nodeType":"YulFunctionCall","src":"1135:30:89"},"nativeSrc":"1132:50:89","nodeType":"YulIf","src":"1132:50:89"},{"body":{"nativeSrc":"1240:16:89","nodeType":"YulBlock","src":"1240:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1249:1:89","nodeType":"YulLiteral","src":"1249:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1252:1:89","nodeType":"YulLiteral","src":"1252:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1242:6:89","nodeType":"YulIdentifier","src":"1242:6:89"},"nativeSrc":"1242:12:89","nodeType":"YulFunctionCall","src":"1242:12:89"},"nativeSrc":"1242:12:89","nodeType":"YulExpressionStatement","src":"1242:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1205:2:89","nodeType":"YulIdentifier","src":"1205:2:89"},{"arguments":[{"kind":"number","nativeSrc":"1213:1:89","nodeType":"YulLiteral","src":"1213:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"1216:6:89","nodeType":"YulIdentifier","src":"1216:6:89"}],"functionName":{"name":"shl","nativeSrc":"1209:3:89","nodeType":"YulIdentifier","src":"1209:3:89"},"nativeSrc":"1209:14:89","nodeType":"YulFunctionCall","src":"1209:14:89"}],"functionName":{"name":"add","nativeSrc":"1201:3:89","nodeType":"YulIdentifier","src":"1201:3:89"},"nativeSrc":"1201:23:89","nodeType":"YulFunctionCall","src":"1201:23:89"},{"kind":"number","nativeSrc":"1226:2:89","nodeType":"YulLiteral","src":"1226:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1197:3:89","nodeType":"YulIdentifier","src":"1197:3:89"},"nativeSrc":"1197:32:89","nodeType":"YulFunctionCall","src":"1197:32:89"},{"name":"dataEnd","nativeSrc":"1231:7:89","nodeType":"YulIdentifier","src":"1231:7:89"}],"functionName":{"name":"gt","nativeSrc":"1194:2:89","nodeType":"YulIdentifier","src":"1194:2:89"},"nativeSrc":"1194:45:89","nodeType":"YulFunctionCall","src":"1194:45:89"},"nativeSrc":"1191:65:89","nodeType":"YulIf","src":"1191:65:89"},{"nativeSrc":"1265:21:89","nodeType":"YulAssignment","src":"1265:21:89","value":{"arguments":[{"name":"_1","nativeSrc":"1279:2:89","nodeType":"YulIdentifier","src":"1279:2:89"},{"kind":"number","nativeSrc":"1283:2:89","nodeType":"YulLiteral","src":"1283:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1275:3:89","nodeType":"YulIdentifier","src":"1275:3:89"},"nativeSrc":"1275:11:89","nodeType":"YulFunctionCall","src":"1275:11:89"},"variableNames":[{"name":"value1","nativeSrc":"1265:6:89","nodeType":"YulIdentifier","src":"1265:6:89"}]},{"nativeSrc":"1295:16:89","nodeType":"YulAssignment","src":"1295:16:89","value":{"name":"length","nativeSrc":"1305:6:89","nodeType":"YulIdentifier","src":"1305:6:89"},"variableNames":[{"name":"value2","nativeSrc":"1295:6:89","nodeType":"YulIdentifier","src":"1295:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_array$_t_bytes32_$dyn_calldata_ptr","nativeSrc":"593:724:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"665:9:89","nodeType":"YulTypedName","src":"665:9:89","type":""},{"name":"dataEnd","nativeSrc":"676:7:89","nodeType":"YulTypedName","src":"676:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"688:6:89","nodeType":"YulTypedName","src":"688:6:89","type":""},{"name":"value1","nativeSrc":"696:6:89","nodeType":"YulTypedName","src":"696:6:89","type":""},{"name":"value2","nativeSrc":"704:6:89","nodeType":"YulTypedName","src":"704:6:89","type":""}],"src":"593:724:89"},{"body":{"nativeSrc":"1370:123:89","nodeType":"YulBlock","src":"1370:123:89","statements":[{"nativeSrc":"1380:29:89","nodeType":"YulAssignment","src":"1380:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"1402:6:89","nodeType":"YulIdentifier","src":"1402:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"1389:12:89","nodeType":"YulIdentifier","src":"1389:12:89"},"nativeSrc":"1389:20:89","nodeType":"YulFunctionCall","src":"1389:20:89"},"variableNames":[{"name":"value","nativeSrc":"1380:5:89","nodeType":"YulIdentifier","src":"1380:5:89"}]},{"body":{"nativeSrc":"1471:16:89","nodeType":"YulBlock","src":"1471:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1480:1:89","nodeType":"YulLiteral","src":"1480:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1483:1:89","nodeType":"YulLiteral","src":"1483:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1473:6:89","nodeType":"YulIdentifier","src":"1473:6:89"},"nativeSrc":"1473:12:89","nodeType":"YulFunctionCall","src":"1473:12:89"},"nativeSrc":"1473:12:89","nodeType":"YulExpressionStatement","src":"1473:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1431:5:89","nodeType":"YulIdentifier","src":"1431:5:89"},{"arguments":[{"name":"value","nativeSrc":"1442:5:89","nodeType":"YulIdentifier","src":"1442:5:89"},{"kind":"number","nativeSrc":"1449:18:89","nodeType":"YulLiteral","src":"1449:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1438:3:89","nodeType":"YulIdentifier","src":"1438:3:89"},"nativeSrc":"1438:30:89","nodeType":"YulFunctionCall","src":"1438:30:89"}],"functionName":{"name":"eq","nativeSrc":"1428:2:89","nodeType":"YulIdentifier","src":"1428:2:89"},"nativeSrc":"1428:41:89","nodeType":"YulFunctionCall","src":"1428:41:89"}],"functionName":{"name":"iszero","nativeSrc":"1421:6:89","nodeType":"YulIdentifier","src":"1421:6:89"},"nativeSrc":"1421:49:89","nodeType":"YulFunctionCall","src":"1421:49:89"},"nativeSrc":"1418:69:89","nodeType":"YulIf","src":"1418:69:89"}]},"name":"abi_decode_uint64","nativeSrc":"1322:171:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1349:6:89","nodeType":"YulTypedName","src":"1349:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1360:5:89","nodeType":"YulTypedName","src":"1360:5:89","type":""}],"src":"1322:171:89"},{"body":{"nativeSrc":"1541:59:89","nodeType":"YulBlock","src":"1541:59:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1558:3:89","nodeType":"YulIdentifier","src":"1558:3:89"},{"arguments":[{"name":"value","nativeSrc":"1567:5:89","nodeType":"YulIdentifier","src":"1567:5:89"},{"kind":"number","nativeSrc":"1574:18:89","nodeType":"YulLiteral","src":"1574:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1563:3:89","nodeType":"YulIdentifier","src":"1563:3:89"},"nativeSrc":"1563:30:89","nodeType":"YulFunctionCall","src":"1563:30:89"}],"functionName":{"name":"mstore","nativeSrc":"1551:6:89","nodeType":"YulIdentifier","src":"1551:6:89"},"nativeSrc":"1551:43:89","nodeType":"YulFunctionCall","src":"1551:43:89"},"nativeSrc":"1551:43:89","nodeType":"YulExpressionStatement","src":"1551:43:89"}]},"name":"abi_encode_uint64","nativeSrc":"1498:102:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1525:5:89","nodeType":"YulTypedName","src":"1525:5:89","type":""},{"name":"pos","nativeSrc":"1532:3:89","nodeType":"YulTypedName","src":"1532:3:89","type":""}],"src":"1498:102:89"},{"body":{"nativeSrc":"1654:124:89","nodeType":"YulBlock","src":"1654:124:89","statements":[{"nativeSrc":"1664:29:89","nodeType":"YulAssignment","src":"1664:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"1686:6:89","nodeType":"YulIdentifier","src":"1686:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"1673:12:89","nodeType":"YulIdentifier","src":"1673:12:89"},"nativeSrc":"1673:20:89","nodeType":"YulFunctionCall","src":"1673:20:89"},"variableNames":[{"name":"value","nativeSrc":"1664:5:89","nodeType":"YulIdentifier","src":"1664:5:89"}]},{"body":{"nativeSrc":"1756:16:89","nodeType":"YulBlock","src":"1756:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1765:1:89","nodeType":"YulLiteral","src":"1765:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1768:1:89","nodeType":"YulLiteral","src":"1768:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1758:6:89","nodeType":"YulIdentifier","src":"1758:6:89"},"nativeSrc":"1758:12:89","nodeType":"YulFunctionCall","src":"1758:12:89"},"nativeSrc":"1758:12:89","nodeType":"YulExpressionStatement","src":"1758:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1715:5:89","nodeType":"YulIdentifier","src":"1715:5:89"},{"arguments":[{"name":"value","nativeSrc":"1726:5:89","nodeType":"YulIdentifier","src":"1726:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1741:3:89","nodeType":"YulLiteral","src":"1741:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1746:1:89","nodeType":"YulLiteral","src":"1746:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1737:3:89","nodeType":"YulIdentifier","src":"1737:3:89"},"nativeSrc":"1737:11:89","nodeType":"YulFunctionCall","src":"1737:11:89"},{"kind":"number","nativeSrc":"1750:1:89","nodeType":"YulLiteral","src":"1750:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1733:3:89","nodeType":"YulIdentifier","src":"1733:3:89"},"nativeSrc":"1733:19:89","nodeType":"YulFunctionCall","src":"1733:19:89"}],"functionName":{"name":"and","nativeSrc":"1722:3:89","nodeType":"YulIdentifier","src":"1722:3:89"},"nativeSrc":"1722:31:89","nodeType":"YulFunctionCall","src":"1722:31:89"}],"functionName":{"name":"eq","nativeSrc":"1712:2:89","nodeType":"YulIdentifier","src":"1712:2:89"},"nativeSrc":"1712:42:89","nodeType":"YulFunctionCall","src":"1712:42:89"}],"functionName":{"name":"iszero","nativeSrc":"1705:6:89","nodeType":"YulIdentifier","src":"1705:6:89"},"nativeSrc":"1705:50:89","nodeType":"YulFunctionCall","src":"1705:50:89"},"nativeSrc":"1702:70:89","nodeType":"YulIf","src":"1702:70:89"}]},"name":"abi_decode_address","nativeSrc":"1605:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1633:6:89","nodeType":"YulTypedName","src":"1633:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1644:5:89","nodeType":"YulTypedName","src":"1644:5:89","type":""}],"src":"1605:173:89"},{"body":{"nativeSrc":"1827:60:89","nodeType":"YulBlock","src":"1827:60:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1844:3:89","nodeType":"YulIdentifier","src":"1844:3:89"},{"arguments":[{"name":"value","nativeSrc":"1853:5:89","nodeType":"YulIdentifier","src":"1853:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1868:3:89","nodeType":"YulLiteral","src":"1868:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1873:1:89","nodeType":"YulLiteral","src":"1873:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1864:3:89","nodeType":"YulIdentifier","src":"1864:3:89"},"nativeSrc":"1864:11:89","nodeType":"YulFunctionCall","src":"1864:11:89"},{"kind":"number","nativeSrc":"1877:1:89","nodeType":"YulLiteral","src":"1877:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1860:3:89","nodeType":"YulIdentifier","src":"1860:3:89"},"nativeSrc":"1860:19:89","nodeType":"YulFunctionCall","src":"1860:19:89"}],"functionName":{"name":"and","nativeSrc":"1849:3:89","nodeType":"YulIdentifier","src":"1849:3:89"},"nativeSrc":"1849:31:89","nodeType":"YulFunctionCall","src":"1849:31:89"}],"functionName":{"name":"mstore","nativeSrc":"1837:6:89","nodeType":"YulIdentifier","src":"1837:6:89"},"nativeSrc":"1837:44:89","nodeType":"YulFunctionCall","src":"1837:44:89"},"nativeSrc":"1837:44:89","nodeType":"YulExpressionStatement","src":"1837:44:89"}]},"name":"abi_encode_address","nativeSrc":"1783:104:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1811:5:89","nodeType":"YulTypedName","src":"1811:5:89","type":""},{"name":"pos","nativeSrc":"1818:3:89","nodeType":"YulTypedName","src":"1818:3:89","type":""}],"src":"1783:104:89"},{"body":{"nativeSrc":"1969:424:89","nodeType":"YulBlock","src":"1969:424:89","statements":[{"nativeSrc":"1979:43:89","nodeType":"YulVariableDeclaration","src":"1979:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"2018:3:89","nodeType":"YulIdentifier","src":"2018:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"2005:12:89","nodeType":"YulIdentifier","src":"2005:12:89"},"nativeSrc":"2005:17:89","nodeType":"YulFunctionCall","src":"2005:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"1983:18:89","nodeType":"YulTypedName","src":"1983:18:89","type":""}]},{"body":{"nativeSrc":"2111:16:89","nodeType":"YulBlock","src":"2111:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2120:1:89","nodeType":"YulLiteral","src":"2120:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2123:1:89","nodeType":"YulLiteral","src":"2123:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2113:6:89","nodeType":"YulIdentifier","src":"2113:6:89"},"nativeSrc":"2113:12:89","nodeType":"YulFunctionCall","src":"2113:12:89"},"nativeSrc":"2113:12:89","nodeType":"YulExpressionStatement","src":"2113:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"2045:18:89","nodeType":"YulIdentifier","src":"2045:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"2073:12:89","nodeType":"YulIdentifier","src":"2073:12:89"},"nativeSrc":"2073:14:89","nodeType":"YulFunctionCall","src":"2073:14:89"},{"name":"base_ref","nativeSrc":"2089:8:89","nodeType":"YulIdentifier","src":"2089:8:89"}],"functionName":{"name":"sub","nativeSrc":"2069:3:89","nodeType":"YulIdentifier","src":"2069:3:89"},"nativeSrc":"2069:29:89","nodeType":"YulFunctionCall","src":"2069:29:89"},{"arguments":[{"kind":"number","nativeSrc":"2104:2:89","nodeType":"YulLiteral","src":"2104:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"2100:3:89","nodeType":"YulIdentifier","src":"2100:3:89"},"nativeSrc":"2100:7:89","nodeType":"YulFunctionCall","src":"2100:7:89"}],"functionName":{"name":"add","nativeSrc":"2065:3:89","nodeType":"YulIdentifier","src":"2065:3:89"},"nativeSrc":"2065:43:89","nodeType":"YulFunctionCall","src":"2065:43:89"}],"functionName":{"name":"slt","nativeSrc":"2041:3:89","nodeType":"YulIdentifier","src":"2041:3:89"},"nativeSrc":"2041:68:89","nodeType":"YulFunctionCall","src":"2041:68:89"}],"functionName":{"name":"iszero","nativeSrc":"2034:6:89","nodeType":"YulIdentifier","src":"2034:6:89"},"nativeSrc":"2034:76:89","nodeType":"YulFunctionCall","src":"2034:76:89"},"nativeSrc":"2031:96:89","nodeType":"YulIf","src":"2031:96:89"},{"nativeSrc":"2136:48:89","nodeType":"YulVariableDeclaration","src":"2136:48:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"2155:18:89","nodeType":"YulIdentifier","src":"2155:18:89"},{"name":"base_ref","nativeSrc":"2175:8:89","nodeType":"YulIdentifier","src":"2175:8:89"}],"functionName":{"name":"add","nativeSrc":"2151:3:89","nodeType":"YulIdentifier","src":"2151:3:89"},"nativeSrc":"2151:33:89","nodeType":"YulFunctionCall","src":"2151:33:89"},"variables":[{"name":"value_1","nativeSrc":"2140:7:89","nodeType":"YulTypedName","src":"2140:7:89","type":""}]},{"nativeSrc":"2193:31:89","nodeType":"YulAssignment","src":"2193:31:89","value":{"arguments":[{"name":"value_1","nativeSrc":"2216:7:89","nodeType":"YulIdentifier","src":"2216:7:89"}],"functionName":{"name":"calldataload","nativeSrc":"2203:12:89","nodeType":"YulIdentifier","src":"2203:12:89"},"nativeSrc":"2203:21:89","nodeType":"YulFunctionCall","src":"2203:21:89"},"variableNames":[{"name":"length","nativeSrc":"2193:6:89","nodeType":"YulIdentifier","src":"2193:6:89"}]},{"nativeSrc":"2233:27:89","nodeType":"YulAssignment","src":"2233:27:89","value":{"arguments":[{"name":"value_1","nativeSrc":"2246:7:89","nodeType":"YulIdentifier","src":"2246:7:89"},{"kind":"number","nativeSrc":"2255:4:89","nodeType":"YulLiteral","src":"2255:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2242:3:89","nodeType":"YulIdentifier","src":"2242:3:89"},"nativeSrc":"2242:18:89","nodeType":"YulFunctionCall","src":"2242:18:89"},"variableNames":[{"name":"value","nativeSrc":"2233:5:89","nodeType":"YulIdentifier","src":"2233:5:89"}]},{"body":{"nativeSrc":"2303:16:89","nodeType":"YulBlock","src":"2303:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2312:1:89","nodeType":"YulLiteral","src":"2312:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2315:1:89","nodeType":"YulLiteral","src":"2315:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2305:6:89","nodeType":"YulIdentifier","src":"2305:6:89"},"nativeSrc":"2305:12:89","nodeType":"YulFunctionCall","src":"2305:12:89"},"nativeSrc":"2305:12:89","nodeType":"YulExpressionStatement","src":"2305:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2275:6:89","nodeType":"YulIdentifier","src":"2275:6:89"},{"kind":"number","nativeSrc":"2283:18:89","nodeType":"YulLiteral","src":"2283:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2272:2:89","nodeType":"YulIdentifier","src":"2272:2:89"},"nativeSrc":"2272:30:89","nodeType":"YulFunctionCall","src":"2272:30:89"},"nativeSrc":"2269:50:89","nodeType":"YulIf","src":"2269:50:89"},{"body":{"nativeSrc":"2371:16:89","nodeType":"YulBlock","src":"2371:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2380:1:89","nodeType":"YulLiteral","src":"2380:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2383:1:89","nodeType":"YulLiteral","src":"2383:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2373:6:89","nodeType":"YulIdentifier","src":"2373:6:89"},"nativeSrc":"2373:12:89","nodeType":"YulFunctionCall","src":"2373:12:89"},"nativeSrc":"2373:12:89","nodeType":"YulExpressionStatement","src":"2373:12:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"2335:5:89","nodeType":"YulIdentifier","src":"2335:5:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"2346:12:89","nodeType":"YulIdentifier","src":"2346:12:89"},"nativeSrc":"2346:14:89","nodeType":"YulFunctionCall","src":"2346:14:89"},{"name":"length","nativeSrc":"2362:6:89","nodeType":"YulIdentifier","src":"2362:6:89"}],"functionName":{"name":"sub","nativeSrc":"2342:3:89","nodeType":"YulIdentifier","src":"2342:3:89"},"nativeSrc":"2342:27:89","nodeType":"YulFunctionCall","src":"2342:27:89"}],"functionName":{"name":"sgt","nativeSrc":"2331:3:89","nodeType":"YulIdentifier","src":"2331:3:89"},"nativeSrc":"2331:39:89","nodeType":"YulFunctionCall","src":"2331:39:89"},"nativeSrc":"2328:59:89","nodeType":"YulIf","src":"2328:59:89"}]},"name":"calldata_access_string_calldata","nativeSrc":"1892:501:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"1933:8:89","nodeType":"YulTypedName","src":"1933:8:89","type":""},{"name":"ptr","nativeSrc":"1943:3:89","nodeType":"YulTypedName","src":"1943:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1951:5:89","nodeType":"YulTypedName","src":"1951:5:89","type":""},{"name":"length","nativeSrc":"1958:6:89","nodeType":"YulTypedName","src":"1958:6:89","type":""}],"src":"1892:501:89"},{"body":{"nativeSrc":"2465:200:89","nodeType":"YulBlock","src":"2465:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2482:3:89","nodeType":"YulIdentifier","src":"2482:3:89"},{"name":"length","nativeSrc":"2487:6:89","nodeType":"YulIdentifier","src":"2487:6:89"}],"functionName":{"name":"mstore","nativeSrc":"2475:6:89","nodeType":"YulIdentifier","src":"2475:6:89"},"nativeSrc":"2475:19:89","nodeType":"YulFunctionCall","src":"2475:19:89"},"nativeSrc":"2475:19:89","nodeType":"YulExpressionStatement","src":"2475:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2520:3:89","nodeType":"YulIdentifier","src":"2520:3:89"},{"kind":"number","nativeSrc":"2525:4:89","nodeType":"YulLiteral","src":"2525:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2516:3:89","nodeType":"YulIdentifier","src":"2516:3:89"},"nativeSrc":"2516:14:89","nodeType":"YulFunctionCall","src":"2516:14:89"},{"name":"start","nativeSrc":"2532:5:89","nodeType":"YulIdentifier","src":"2532:5:89"},{"name":"length","nativeSrc":"2539:6:89","nodeType":"YulIdentifier","src":"2539:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"2503:12:89","nodeType":"YulIdentifier","src":"2503:12:89"},"nativeSrc":"2503:43:89","nodeType":"YulFunctionCall","src":"2503:43:89"},"nativeSrc":"2503:43:89","nodeType":"YulExpressionStatement","src":"2503:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2570:3:89","nodeType":"YulIdentifier","src":"2570:3:89"},{"name":"length","nativeSrc":"2575:6:89","nodeType":"YulIdentifier","src":"2575:6:89"}],"functionName":{"name":"add","nativeSrc":"2566:3:89","nodeType":"YulIdentifier","src":"2566:3:89"},"nativeSrc":"2566:16:89","nodeType":"YulFunctionCall","src":"2566:16:89"},{"kind":"number","nativeSrc":"2584:4:89","nodeType":"YulLiteral","src":"2584:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2562:3:89","nodeType":"YulIdentifier","src":"2562:3:89"},"nativeSrc":"2562:27:89","nodeType":"YulFunctionCall","src":"2562:27:89"},{"kind":"number","nativeSrc":"2591:1:89","nodeType":"YulLiteral","src":"2591:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2555:6:89","nodeType":"YulIdentifier","src":"2555:6:89"},"nativeSrc":"2555:38:89","nodeType":"YulFunctionCall","src":"2555:38:89"},"nativeSrc":"2555:38:89","nodeType":"YulExpressionStatement","src":"2555:38:89"},{"nativeSrc":"2602:57:89","nodeType":"YulAssignment","src":"2602:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2617:3:89","nodeType":"YulIdentifier","src":"2617:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2630:6:89","nodeType":"YulIdentifier","src":"2630:6:89"},{"kind":"number","nativeSrc":"2638:2:89","nodeType":"YulLiteral","src":"2638:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2626:3:89","nodeType":"YulIdentifier","src":"2626:3:89"},"nativeSrc":"2626:15:89","nodeType":"YulFunctionCall","src":"2626:15:89"},{"arguments":[{"kind":"number","nativeSrc":"2647:2:89","nodeType":"YulLiteral","src":"2647:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2643:3:89","nodeType":"YulIdentifier","src":"2643:3:89"},"nativeSrc":"2643:7:89","nodeType":"YulFunctionCall","src":"2643:7:89"}],"functionName":{"name":"and","nativeSrc":"2622:3:89","nodeType":"YulIdentifier","src":"2622:3:89"},"nativeSrc":"2622:29:89","nodeType":"YulFunctionCall","src":"2622:29:89"}],"functionName":{"name":"add","nativeSrc":"2613:3:89","nodeType":"YulIdentifier","src":"2613:3:89"},"nativeSrc":"2613:39:89","nodeType":"YulFunctionCall","src":"2613:39:89"},{"kind":"number","nativeSrc":"2654:4:89","nodeType":"YulLiteral","src":"2654:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2609:3:89","nodeType":"YulIdentifier","src":"2609:3:89"},"nativeSrc":"2609:50:89","nodeType":"YulFunctionCall","src":"2609:50:89"},"variableNames":[{"name":"end","nativeSrc":"2602:3:89","nodeType":"YulIdentifier","src":"2602:3:89"}]}]},"name":"abi_encode_string_calldata","nativeSrc":"2398:267:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"2434:5:89","nodeType":"YulTypedName","src":"2434:5:89","type":""},{"name":"length","nativeSrc":"2441:6:89","nodeType":"YulTypedName","src":"2441:6:89","type":""},{"name":"pos","nativeSrc":"2449:3:89","nodeType":"YulTypedName","src":"2449:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2457:3:89","nodeType":"YulTypedName","src":"2457:3:89","type":""}],"src":"2398:267:89"},{"body":{"nativeSrc":"2734:195:89","nodeType":"YulBlock","src":"2734:195:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2751:3:89","nodeType":"YulIdentifier","src":"2751:3:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2779:5:89","nodeType":"YulIdentifier","src":"2779:5:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2760:18:89","nodeType":"YulIdentifier","src":"2760:18:89"},"nativeSrc":"2760:25:89","nodeType":"YulFunctionCall","src":"2760:25:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2795:3:89","nodeType":"YulLiteral","src":"2795:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"2800:1:89","nodeType":"YulLiteral","src":"2800:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2791:3:89","nodeType":"YulIdentifier","src":"2791:3:89"},"nativeSrc":"2791:11:89","nodeType":"YulFunctionCall","src":"2791:11:89"},{"kind":"number","nativeSrc":"2804:1:89","nodeType":"YulLiteral","src":"2804:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2787:3:89","nodeType":"YulIdentifier","src":"2787:3:89"},"nativeSrc":"2787:19:89","nodeType":"YulFunctionCall","src":"2787:19:89"}],"functionName":{"name":"and","nativeSrc":"2756:3:89","nodeType":"YulIdentifier","src":"2756:3:89"},"nativeSrc":"2756:51:89","nodeType":"YulFunctionCall","src":"2756:51:89"}],"functionName":{"name":"mstore","nativeSrc":"2744:6:89","nodeType":"YulIdentifier","src":"2744:6:89"},"nativeSrc":"2744:64:89","nodeType":"YulFunctionCall","src":"2744:64:89"},"nativeSrc":"2744:64:89","nodeType":"YulExpressionStatement","src":"2744:64:89"},{"nativeSrc":"2817:16:89","nodeType":"YulVariableDeclaration","src":"2817:16:89","value":{"kind":"number","nativeSrc":"2832:1:89","nodeType":"YulLiteral","src":"2832:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"2821:7:89","nodeType":"YulTypedName","src":"2821:7:89","type":""}]},{"nativeSrc":"2842:41:89","nodeType":"YulAssignment","src":"2842:41:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2870:5:89","nodeType":"YulIdentifier","src":"2870:5:89"},{"kind":"number","nativeSrc":"2877:4:89","nodeType":"YulLiteral","src":"2877:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2866:3:89","nodeType":"YulIdentifier","src":"2866:3:89"},"nativeSrc":"2866:16:89","nodeType":"YulFunctionCall","src":"2866:16:89"}],"functionName":{"name":"calldataload","nativeSrc":"2853:12:89","nodeType":"YulIdentifier","src":"2853:12:89"},"nativeSrc":"2853:30:89","nodeType":"YulFunctionCall","src":"2853:30:89"},"variableNames":[{"name":"value_1","nativeSrc":"2842:7:89","nodeType":"YulIdentifier","src":"2842:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2903:3:89","nodeType":"YulIdentifier","src":"2903:3:89"},{"kind":"number","nativeSrc":"2908:4:89","nodeType":"YulLiteral","src":"2908:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2899:3:89","nodeType":"YulIdentifier","src":"2899:3:89"},"nativeSrc":"2899:14:89","nodeType":"YulFunctionCall","src":"2899:14:89"},{"name":"value_1","nativeSrc":"2915:7:89","nodeType":"YulIdentifier","src":"2915:7:89"}],"functionName":{"name":"mstore","nativeSrc":"2892:6:89","nodeType":"YulIdentifier","src":"2892:6:89"},"nativeSrc":"2892:31:89","nodeType":"YulFunctionCall","src":"2892:31:89"},"nativeSrc":"2892:31:89","nodeType":"YulExpressionStatement","src":"2892:31:89"}]},"name":"abi_encode_struct_TokenAmount_calldata","nativeSrc":"2670:259:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2718:5:89","nodeType":"YulTypedName","src":"2718:5:89","type":""},{"name":"pos","nativeSrc":"2725:3:89","nodeType":"YulTypedName","src":"2725:3:89","type":""}],"src":"2670:259:89"},{"body":{"nativeSrc":"3022:432:89","nodeType":"YulBlock","src":"3022:432:89","statements":[{"nativeSrc":"3032:43:89","nodeType":"YulVariableDeclaration","src":"3032:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"3071:3:89","nodeType":"YulIdentifier","src":"3071:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"3058:12:89","nodeType":"YulIdentifier","src":"3058:12:89"},"nativeSrc":"3058:17:89","nodeType":"YulFunctionCall","src":"3058:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"3036:18:89","nodeType":"YulTypedName","src":"3036:18:89","type":""}]},{"body":{"nativeSrc":"3164:16:89","nodeType":"YulBlock","src":"3164:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3173:1:89","nodeType":"YulLiteral","src":"3173:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3176:1:89","nodeType":"YulLiteral","src":"3176:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3166:6:89","nodeType":"YulIdentifier","src":"3166:6:89"},"nativeSrc":"3166:12:89","nodeType":"YulFunctionCall","src":"3166:12:89"},"nativeSrc":"3166:12:89","nodeType":"YulExpressionStatement","src":"3166:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"3098:18:89","nodeType":"YulIdentifier","src":"3098:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"3126:12:89","nodeType":"YulIdentifier","src":"3126:12:89"},"nativeSrc":"3126:14:89","nodeType":"YulFunctionCall","src":"3126:14:89"},{"name":"base_ref","nativeSrc":"3142:8:89","nodeType":"YulIdentifier","src":"3142:8:89"}],"functionName":{"name":"sub","nativeSrc":"3122:3:89","nodeType":"YulIdentifier","src":"3122:3:89"},"nativeSrc":"3122:29:89","nodeType":"YulFunctionCall","src":"3122:29:89"},{"arguments":[{"kind":"number","nativeSrc":"3157:2:89","nodeType":"YulLiteral","src":"3157:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"3153:3:89","nodeType":"YulIdentifier","src":"3153:3:89"},"nativeSrc":"3153:7:89","nodeType":"YulFunctionCall","src":"3153:7:89"}],"functionName":{"name":"add","nativeSrc":"3118:3:89","nodeType":"YulIdentifier","src":"3118:3:89"},"nativeSrc":"3118:43:89","nodeType":"YulFunctionCall","src":"3118:43:89"}],"functionName":{"name":"slt","nativeSrc":"3094:3:89","nodeType":"YulIdentifier","src":"3094:3:89"},"nativeSrc":"3094:68:89","nodeType":"YulFunctionCall","src":"3094:68:89"}],"functionName":{"name":"iszero","nativeSrc":"3087:6:89","nodeType":"YulIdentifier","src":"3087:6:89"},"nativeSrc":"3087:76:89","nodeType":"YulFunctionCall","src":"3087:76:89"},"nativeSrc":"3084:96:89","nodeType":"YulIf","src":"3084:96:89"},{"nativeSrc":"3189:48:89","nodeType":"YulVariableDeclaration","src":"3189:48:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"3208:18:89","nodeType":"YulIdentifier","src":"3208:18:89"},{"name":"base_ref","nativeSrc":"3228:8:89","nodeType":"YulIdentifier","src":"3228:8:89"}],"functionName":{"name":"add","nativeSrc":"3204:3:89","nodeType":"YulIdentifier","src":"3204:3:89"},"nativeSrc":"3204:33:89","nodeType":"YulFunctionCall","src":"3204:33:89"},"variables":[{"name":"value_1","nativeSrc":"3193:7:89","nodeType":"YulTypedName","src":"3193:7:89","type":""}]},{"nativeSrc":"3246:31:89","nodeType":"YulAssignment","src":"3246:31:89","value":{"arguments":[{"name":"value_1","nativeSrc":"3269:7:89","nodeType":"YulIdentifier","src":"3269:7:89"}],"functionName":{"name":"calldataload","nativeSrc":"3256:12:89","nodeType":"YulIdentifier","src":"3256:12:89"},"nativeSrc":"3256:21:89","nodeType":"YulFunctionCall","src":"3256:21:89"},"variableNames":[{"name":"length","nativeSrc":"3246:6:89","nodeType":"YulIdentifier","src":"3246:6:89"}]},{"nativeSrc":"3286:27:89","nodeType":"YulAssignment","src":"3286:27:89","value":{"arguments":[{"name":"value_1","nativeSrc":"3299:7:89","nodeType":"YulIdentifier","src":"3299:7:89"},{"kind":"number","nativeSrc":"3308:4:89","nodeType":"YulLiteral","src":"3308:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3295:3:89","nodeType":"YulIdentifier","src":"3295:3:89"},"nativeSrc":"3295:18:89","nodeType":"YulFunctionCall","src":"3295:18:89"},"variableNames":[{"name":"value","nativeSrc":"3286:5:89","nodeType":"YulIdentifier","src":"3286:5:89"}]},{"body":{"nativeSrc":"3356:16:89","nodeType":"YulBlock","src":"3356:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3365:1:89","nodeType":"YulLiteral","src":"3365:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3368:1:89","nodeType":"YulLiteral","src":"3368:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3358:6:89","nodeType":"YulIdentifier","src":"3358:6:89"},"nativeSrc":"3358:12:89","nodeType":"YulFunctionCall","src":"3358:12:89"},"nativeSrc":"3358:12:89","nodeType":"YulExpressionStatement","src":"3358:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3328:6:89","nodeType":"YulIdentifier","src":"3328:6:89"},{"kind":"number","nativeSrc":"3336:18:89","nodeType":"YulLiteral","src":"3336:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3325:2:89","nodeType":"YulIdentifier","src":"3325:2:89"},"nativeSrc":"3325:30:89","nodeType":"YulFunctionCall","src":"3325:30:89"},"nativeSrc":"3322:50:89","nodeType":"YulIf","src":"3322:50:89"},{"body":{"nativeSrc":"3432:16:89","nodeType":"YulBlock","src":"3432:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3441:1:89","nodeType":"YulLiteral","src":"3441:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3444:1:89","nodeType":"YulLiteral","src":"3444:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3434:6:89","nodeType":"YulIdentifier","src":"3434:6:89"},"nativeSrc":"3434:12:89","nodeType":"YulFunctionCall","src":"3434:12:89"},"nativeSrc":"3434:12:89","nodeType":"YulExpressionStatement","src":"3434:12:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"3388:5:89","nodeType":"YulIdentifier","src":"3388:5:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"3399:12:89","nodeType":"YulIdentifier","src":"3399:12:89"},"nativeSrc":"3399:14:89","nodeType":"YulFunctionCall","src":"3399:14:89"},{"arguments":[{"kind":"number","nativeSrc":"3419:1:89","nodeType":"YulLiteral","src":"3419:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"3422:6:89","nodeType":"YulIdentifier","src":"3422:6:89"}],"functionName":{"name":"shl","nativeSrc":"3415:3:89","nodeType":"YulIdentifier","src":"3415:3:89"},"nativeSrc":"3415:14:89","nodeType":"YulFunctionCall","src":"3415:14:89"}],"functionName":{"name":"sub","nativeSrc":"3395:3:89","nodeType":"YulIdentifier","src":"3395:3:89"},"nativeSrc":"3395:35:89","nodeType":"YulFunctionCall","src":"3395:35:89"}],"functionName":{"name":"sgt","nativeSrc":"3384:3:89","nodeType":"YulIdentifier","src":"3384:3:89"},"nativeSrc":"3384:47:89","nodeType":"YulFunctionCall","src":"3384:47:89"},"nativeSrc":"3381:67:89","nodeType":"YulIf","src":"3381:67:89"}]},"name":"calldata_access_array_address_dyn_calldata","nativeSrc":"2934:520:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"2986:8:89","nodeType":"YulTypedName","src":"2986:8:89","type":""},{"name":"ptr","nativeSrc":"2996:3:89","nodeType":"YulTypedName","src":"2996:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3004:5:89","nodeType":"YulTypedName","src":"3004:5:89","type":""},{"name":"length","nativeSrc":"3011:6:89","nodeType":"YulTypedName","src":"3011:6:89","type":""}],"src":"2934:520:89"},{"body":{"nativeSrc":"3537:352:89","nodeType":"YulBlock","src":"3537:352:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3554:3:89","nodeType":"YulIdentifier","src":"3554:3:89"},{"name":"length","nativeSrc":"3559:6:89","nodeType":"YulIdentifier","src":"3559:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3547:6:89","nodeType":"YulIdentifier","src":"3547:6:89"},"nativeSrc":"3547:19:89","nodeType":"YulFunctionCall","src":"3547:19:89"},"nativeSrc":"3547:19:89","nodeType":"YulExpressionStatement","src":"3547:19:89"},{"nativeSrc":"3575:21:89","nodeType":"YulAssignment","src":"3575:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"3586:3:89","nodeType":"YulIdentifier","src":"3586:3:89"},{"kind":"number","nativeSrc":"3591:4:89","nodeType":"YulLiteral","src":"3591:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3582:3:89","nodeType":"YulIdentifier","src":"3582:3:89"},"nativeSrc":"3582:14:89","nodeType":"YulFunctionCall","src":"3582:14:89"},"variableNames":[{"name":"pos","nativeSrc":"3575:3:89","nodeType":"YulIdentifier","src":"3575:3:89"}]},{"nativeSrc":"3605:19:89","nodeType":"YulVariableDeclaration","src":"3605:19:89","value":{"name":"value","nativeSrc":"3619:5:89","nodeType":"YulIdentifier","src":"3619:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"3609:6:89","nodeType":"YulTypedName","src":"3609:6:89","type":""}]},{"nativeSrc":"3633:10:89","nodeType":"YulVariableDeclaration","src":"3633:10:89","value":{"kind":"number","nativeSrc":"3642:1:89","nodeType":"YulLiteral","src":"3642:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3637:1:89","nodeType":"YulTypedName","src":"3637:1:89","type":""}]},{"body":{"nativeSrc":"3701:163:89","nodeType":"YulBlock","src":"3701:163:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3722:3:89","nodeType":"YulIdentifier","src":"3722:3:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"3750:6:89","nodeType":"YulIdentifier","src":"3750:6:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3731:18:89","nodeType":"YulIdentifier","src":"3731:18:89"},"nativeSrc":"3731:26:89","nodeType":"YulFunctionCall","src":"3731:26:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3767:3:89","nodeType":"YulLiteral","src":"3767:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"3772:1:89","nodeType":"YulLiteral","src":"3772:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3763:3:89","nodeType":"YulIdentifier","src":"3763:3:89"},"nativeSrc":"3763:11:89","nodeType":"YulFunctionCall","src":"3763:11:89"},{"kind":"number","nativeSrc":"3776:1:89","nodeType":"YulLiteral","src":"3776:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3759:3:89","nodeType":"YulIdentifier","src":"3759:3:89"},"nativeSrc":"3759:19:89","nodeType":"YulFunctionCall","src":"3759:19:89"}],"functionName":{"name":"and","nativeSrc":"3727:3:89","nodeType":"YulIdentifier","src":"3727:3:89"},"nativeSrc":"3727:52:89","nodeType":"YulFunctionCall","src":"3727:52:89"}],"functionName":{"name":"mstore","nativeSrc":"3715:6:89","nodeType":"YulIdentifier","src":"3715:6:89"},"nativeSrc":"3715:65:89","nodeType":"YulFunctionCall","src":"3715:65:89"},"nativeSrc":"3715:65:89","nodeType":"YulExpressionStatement","src":"3715:65:89"},{"nativeSrc":"3793:21:89","nodeType":"YulAssignment","src":"3793:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"3804:3:89","nodeType":"YulIdentifier","src":"3804:3:89"},{"kind":"number","nativeSrc":"3809:4:89","nodeType":"YulLiteral","src":"3809:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3800:3:89","nodeType":"YulIdentifier","src":"3800:3:89"},"nativeSrc":"3800:14:89","nodeType":"YulFunctionCall","src":"3800:14:89"},"variableNames":[{"name":"pos","nativeSrc":"3793:3:89","nodeType":"YulIdentifier","src":"3793:3:89"}]},{"nativeSrc":"3827:27:89","nodeType":"YulAssignment","src":"3827:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"3841:6:89","nodeType":"YulIdentifier","src":"3841:6:89"},{"kind":"number","nativeSrc":"3849:4:89","nodeType":"YulLiteral","src":"3849:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3837:3:89","nodeType":"YulIdentifier","src":"3837:3:89"},"nativeSrc":"3837:17:89","nodeType":"YulFunctionCall","src":"3837:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"3827:6:89","nodeType":"YulIdentifier","src":"3827:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3663:1:89","nodeType":"YulIdentifier","src":"3663:1:89"},{"name":"length","nativeSrc":"3666:6:89","nodeType":"YulIdentifier","src":"3666:6:89"}],"functionName":{"name":"lt","nativeSrc":"3660:2:89","nodeType":"YulIdentifier","src":"3660:2:89"},"nativeSrc":"3660:13:89","nodeType":"YulFunctionCall","src":"3660:13:89"},"nativeSrc":"3652:212:89","nodeType":"YulForLoop","post":{"nativeSrc":"3674:18:89","nodeType":"YulBlock","src":"3674:18:89","statements":[{"nativeSrc":"3676:14:89","nodeType":"YulAssignment","src":"3676:14:89","value":{"arguments":[{"name":"i","nativeSrc":"3685:1:89","nodeType":"YulIdentifier","src":"3685:1:89"},{"kind":"number","nativeSrc":"3688:1:89","nodeType":"YulLiteral","src":"3688:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3681:3:89","nodeType":"YulIdentifier","src":"3681:3:89"},"nativeSrc":"3681:9:89","nodeType":"YulFunctionCall","src":"3681:9:89"},"variableNames":[{"name":"i","nativeSrc":"3676:1:89","nodeType":"YulIdentifier","src":"3676:1:89"}]}]},"pre":{"nativeSrc":"3656:3:89","nodeType":"YulBlock","src":"3656:3:89","statements":[]},"src":"3652:212:89"},{"nativeSrc":"3873:10:89","nodeType":"YulAssignment","src":"3873:10:89","value":{"name":"pos","nativeSrc":"3880:3:89","nodeType":"YulIdentifier","src":"3880:3:89"},"variableNames":[{"name":"end","nativeSrc":"3873:3:89","nodeType":"YulIdentifier","src":"3873:3:89"}]}]},"name":"abi_encode_array_address_dyn_calldata","nativeSrc":"3459:430:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3506:5:89","nodeType":"YulTypedName","src":"3506:5:89","type":""},{"name":"length","nativeSrc":"3513:6:89","nodeType":"YulTypedName","src":"3513:6:89","type":""},{"name":"pos","nativeSrc":"3521:3:89","nodeType":"YulTypedName","src":"3521:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3529:3:89","nodeType":"YulTypedName","src":"3529:3:89","type":""}],"src":"3459:430:89"},{"body":{"nativeSrc":"4002:432:89","nodeType":"YulBlock","src":"4002:432:89","statements":[{"nativeSrc":"4012:43:89","nodeType":"YulVariableDeclaration","src":"4012:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"4051:3:89","nodeType":"YulIdentifier","src":"4051:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"4038:12:89","nodeType":"YulIdentifier","src":"4038:12:89"},"nativeSrc":"4038:17:89","nodeType":"YulFunctionCall","src":"4038:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"4016:18:89","nodeType":"YulTypedName","src":"4016:18:89","type":""}]},{"body":{"nativeSrc":"4144:16:89","nodeType":"YulBlock","src":"4144:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4153:1:89","nodeType":"YulLiteral","src":"4153:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4156:1:89","nodeType":"YulLiteral","src":"4156:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4146:6:89","nodeType":"YulIdentifier","src":"4146:6:89"},"nativeSrc":"4146:12:89","nodeType":"YulFunctionCall","src":"4146:12:89"},"nativeSrc":"4146:12:89","nodeType":"YulExpressionStatement","src":"4146:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"4078:18:89","nodeType":"YulIdentifier","src":"4078:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"4106:12:89","nodeType":"YulIdentifier","src":"4106:12:89"},"nativeSrc":"4106:14:89","nodeType":"YulFunctionCall","src":"4106:14:89"},{"name":"base_ref","nativeSrc":"4122:8:89","nodeType":"YulIdentifier","src":"4122:8:89"}],"functionName":{"name":"sub","nativeSrc":"4102:3:89","nodeType":"YulIdentifier","src":"4102:3:89"},"nativeSrc":"4102:29:89","nodeType":"YulFunctionCall","src":"4102:29:89"},{"arguments":[{"kind":"number","nativeSrc":"4137:2:89","nodeType":"YulLiteral","src":"4137:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"4133:3:89","nodeType":"YulIdentifier","src":"4133:3:89"},"nativeSrc":"4133:7:89","nodeType":"YulFunctionCall","src":"4133:7:89"}],"functionName":{"name":"add","nativeSrc":"4098:3:89","nodeType":"YulIdentifier","src":"4098:3:89"},"nativeSrc":"4098:43:89","nodeType":"YulFunctionCall","src":"4098:43:89"}],"functionName":{"name":"slt","nativeSrc":"4074:3:89","nodeType":"YulIdentifier","src":"4074:3:89"},"nativeSrc":"4074:68:89","nodeType":"YulFunctionCall","src":"4074:68:89"}],"functionName":{"name":"iszero","nativeSrc":"4067:6:89","nodeType":"YulIdentifier","src":"4067:6:89"},"nativeSrc":"4067:76:89","nodeType":"YulFunctionCall","src":"4067:76:89"},"nativeSrc":"4064:96:89","nodeType":"YulIf","src":"4064:96:89"},{"nativeSrc":"4169:48:89","nodeType":"YulVariableDeclaration","src":"4169:48:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"4188:18:89","nodeType":"YulIdentifier","src":"4188:18:89"},{"name":"base_ref","nativeSrc":"4208:8:89","nodeType":"YulIdentifier","src":"4208:8:89"}],"functionName":{"name":"add","nativeSrc":"4184:3:89","nodeType":"YulIdentifier","src":"4184:3:89"},"nativeSrc":"4184:33:89","nodeType":"YulFunctionCall","src":"4184:33:89"},"variables":[{"name":"value_1","nativeSrc":"4173:7:89","nodeType":"YulTypedName","src":"4173:7:89","type":""}]},{"nativeSrc":"4226:31:89","nodeType":"YulAssignment","src":"4226:31:89","value":{"arguments":[{"name":"value_1","nativeSrc":"4249:7:89","nodeType":"YulIdentifier","src":"4249:7:89"}],"functionName":{"name":"calldataload","nativeSrc":"4236:12:89","nodeType":"YulIdentifier","src":"4236:12:89"},"nativeSrc":"4236:21:89","nodeType":"YulFunctionCall","src":"4236:21:89"},"variableNames":[{"name":"length","nativeSrc":"4226:6:89","nodeType":"YulIdentifier","src":"4226:6:89"}]},{"nativeSrc":"4266:27:89","nodeType":"YulAssignment","src":"4266:27:89","value":{"arguments":[{"name":"value_1","nativeSrc":"4279:7:89","nodeType":"YulIdentifier","src":"4279:7:89"},{"kind":"number","nativeSrc":"4288:4:89","nodeType":"YulLiteral","src":"4288:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4275:3:89","nodeType":"YulIdentifier","src":"4275:3:89"},"nativeSrc":"4275:18:89","nodeType":"YulFunctionCall","src":"4275:18:89"},"variableNames":[{"name":"value","nativeSrc":"4266:5:89","nodeType":"YulIdentifier","src":"4266:5:89"}]},{"body":{"nativeSrc":"4336:16:89","nodeType":"YulBlock","src":"4336:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4345:1:89","nodeType":"YulLiteral","src":"4345:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4348:1:89","nodeType":"YulLiteral","src":"4348:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4338:6:89","nodeType":"YulIdentifier","src":"4338:6:89"},"nativeSrc":"4338:12:89","nodeType":"YulFunctionCall","src":"4338:12:89"},"nativeSrc":"4338:12:89","nodeType":"YulExpressionStatement","src":"4338:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4308:6:89","nodeType":"YulIdentifier","src":"4308:6:89"},{"kind":"number","nativeSrc":"4316:18:89","nodeType":"YulLiteral","src":"4316:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4305:2:89","nodeType":"YulIdentifier","src":"4305:2:89"},"nativeSrc":"4305:30:89","nodeType":"YulFunctionCall","src":"4305:30:89"},"nativeSrc":"4302:50:89","nodeType":"YulIf","src":"4302:50:89"},{"body":{"nativeSrc":"4412:16:89","nodeType":"YulBlock","src":"4412:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4421:1:89","nodeType":"YulLiteral","src":"4421:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4424:1:89","nodeType":"YulLiteral","src":"4424:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4414:6:89","nodeType":"YulIdentifier","src":"4414:6:89"},"nativeSrc":"4414:12:89","nodeType":"YulFunctionCall","src":"4414:12:89"},"nativeSrc":"4414:12:89","nodeType":"YulExpressionStatement","src":"4414:12:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"4368:5:89","nodeType":"YulIdentifier","src":"4368:5:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"4379:12:89","nodeType":"YulIdentifier","src":"4379:12:89"},"nativeSrc":"4379:14:89","nodeType":"YulFunctionCall","src":"4379:14:89"},{"arguments":[{"kind":"number","nativeSrc":"4399:1:89","nodeType":"YulLiteral","src":"4399:1:89","type":"","value":"6"},{"name":"length","nativeSrc":"4402:6:89","nodeType":"YulIdentifier","src":"4402:6:89"}],"functionName":{"name":"shl","nativeSrc":"4395:3:89","nodeType":"YulIdentifier","src":"4395:3:89"},"nativeSrc":"4395:14:89","nodeType":"YulFunctionCall","src":"4395:14:89"}],"functionName":{"name":"sub","nativeSrc":"4375:3:89","nodeType":"YulIdentifier","src":"4375:3:89"},"nativeSrc":"4375:35:89","nodeType":"YulFunctionCall","src":"4375:35:89"}],"functionName":{"name":"sgt","nativeSrc":"4364:3:89","nodeType":"YulIdentifier","src":"4364:3:89"},"nativeSrc":"4364:47:89","nodeType":"YulFunctionCall","src":"4364:47:89"},"nativeSrc":"4361:67:89","nodeType":"YulIf","src":"4361:67:89"}]},"name":"calldata_access_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"3894:540:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"3966:8:89","nodeType":"YulTypedName","src":"3966:8:89","type":""},{"name":"ptr","nativeSrc":"3976:3:89","nodeType":"YulTypedName","src":"3976:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3984:5:89","nodeType":"YulTypedName","src":"3984:5:89","type":""},{"name":"length","nativeSrc":"3991:6:89","nodeType":"YulTypedName","src":"3991:6:89","type":""}],"src":"3894:540:89"},{"body":{"nativeSrc":"4537:338:89","nodeType":"YulBlock","src":"4537:338:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4554:3:89","nodeType":"YulIdentifier","src":"4554:3:89"},{"name":"length","nativeSrc":"4559:6:89","nodeType":"YulIdentifier","src":"4559:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4547:6:89","nodeType":"YulIdentifier","src":"4547:6:89"},"nativeSrc":"4547:19:89","nodeType":"YulFunctionCall","src":"4547:19:89"},"nativeSrc":"4547:19:89","nodeType":"YulExpressionStatement","src":"4547:19:89"},{"nativeSrc":"4575:21:89","nodeType":"YulAssignment","src":"4575:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"4586:3:89","nodeType":"YulIdentifier","src":"4586:3:89"},{"kind":"number","nativeSrc":"4591:4:89","nodeType":"YulLiteral","src":"4591:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4582:3:89","nodeType":"YulIdentifier","src":"4582:3:89"},"nativeSrc":"4582:14:89","nodeType":"YulFunctionCall","src":"4582:14:89"},"variableNames":[{"name":"pos","nativeSrc":"4575:3:89","nodeType":"YulIdentifier","src":"4575:3:89"}]},{"nativeSrc":"4605:19:89","nodeType":"YulVariableDeclaration","src":"4605:19:89","value":{"name":"value","nativeSrc":"4619:5:89","nodeType":"YulIdentifier","src":"4619:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"4609:6:89","nodeType":"YulTypedName","src":"4609:6:89","type":""}]},{"nativeSrc":"4633:10:89","nodeType":"YulVariableDeclaration","src":"4633:10:89","value":{"kind":"number","nativeSrc":"4642:1:89","nodeType":"YulLiteral","src":"4642:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4637:1:89","nodeType":"YulTypedName","src":"4637:1:89","type":""}]},{"body":{"nativeSrc":"4701:149:89","nodeType":"YulBlock","src":"4701:149:89","statements":[{"expression":{"arguments":[{"name":"srcPtr","nativeSrc":"4754:6:89","nodeType":"YulIdentifier","src":"4754:6:89"},{"name":"pos","nativeSrc":"4762:3:89","nodeType":"YulIdentifier","src":"4762:3:89"}],"functionName":{"name":"abi_encode_struct_TokenAmount_calldata","nativeSrc":"4715:38:89","nodeType":"YulIdentifier","src":"4715:38:89"},"nativeSrc":"4715:51:89","nodeType":"YulFunctionCall","src":"4715:51:89"},"nativeSrc":"4715:51:89","nodeType":"YulExpressionStatement","src":"4715:51:89"},{"nativeSrc":"4779:21:89","nodeType":"YulAssignment","src":"4779:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"4790:3:89","nodeType":"YulIdentifier","src":"4790:3:89"},{"kind":"number","nativeSrc":"4795:4:89","nodeType":"YulLiteral","src":"4795:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"4786:3:89","nodeType":"YulIdentifier","src":"4786:3:89"},"nativeSrc":"4786:14:89","nodeType":"YulFunctionCall","src":"4786:14:89"},"variableNames":[{"name":"pos","nativeSrc":"4779:3:89","nodeType":"YulIdentifier","src":"4779:3:89"}]},{"nativeSrc":"4813:27:89","nodeType":"YulAssignment","src":"4813:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4827:6:89","nodeType":"YulIdentifier","src":"4827:6:89"},{"kind":"number","nativeSrc":"4835:4:89","nodeType":"YulLiteral","src":"4835:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"4823:3:89","nodeType":"YulIdentifier","src":"4823:3:89"},"nativeSrc":"4823:17:89","nodeType":"YulFunctionCall","src":"4823:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"4813:6:89","nodeType":"YulIdentifier","src":"4813:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4663:1:89","nodeType":"YulIdentifier","src":"4663:1:89"},{"name":"length","nativeSrc":"4666:6:89","nodeType":"YulIdentifier","src":"4666:6:89"}],"functionName":{"name":"lt","nativeSrc":"4660:2:89","nodeType":"YulIdentifier","src":"4660:2:89"},"nativeSrc":"4660:13:89","nodeType":"YulFunctionCall","src":"4660:13:89"},"nativeSrc":"4652:198:89","nodeType":"YulForLoop","post":{"nativeSrc":"4674:18:89","nodeType":"YulBlock","src":"4674:18:89","statements":[{"nativeSrc":"4676:14:89","nodeType":"YulAssignment","src":"4676:14:89","value":{"arguments":[{"name":"i","nativeSrc":"4685:1:89","nodeType":"YulIdentifier","src":"4685:1:89"},{"kind":"number","nativeSrc":"4688:1:89","nodeType":"YulLiteral","src":"4688:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4681:3:89","nodeType":"YulIdentifier","src":"4681:3:89"},"nativeSrc":"4681:9:89","nodeType":"YulFunctionCall","src":"4681:9:89"},"variableNames":[{"name":"i","nativeSrc":"4676:1:89","nodeType":"YulIdentifier","src":"4676:1:89"}]}]},"pre":{"nativeSrc":"4656:3:89","nodeType":"YulBlock","src":"4656:3:89","statements":[]},"src":"4652:198:89"},{"nativeSrc":"4859:10:89","nodeType":"YulAssignment","src":"4859:10:89","value":{"name":"pos","nativeSrc":"4866:3:89","nodeType":"YulIdentifier","src":"4866:3:89"},"variableNames":[{"name":"end","nativeSrc":"4859:3:89","nodeType":"YulIdentifier","src":"4859:3:89"}]}]},"name":"abi_encode_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"4439:436:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4506:5:89","nodeType":"YulTypedName","src":"4506:5:89","type":""},{"name":"length","nativeSrc":"4513:6:89","nodeType":"YulTypedName","src":"4513:6:89","type":""},{"name":"pos","nativeSrc":"4521:3:89","nodeType":"YulTypedName","src":"4521:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4529:3:89","nodeType":"YulTypedName","src":"4529:3:89","type":""}],"src":"4439:436:89"},{"body":{"nativeSrc":"4959:216:89","nodeType":"YulBlock","src":"4959:216:89","statements":[{"nativeSrc":"4969:43:89","nodeType":"YulVariableDeclaration","src":"4969:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"5008:3:89","nodeType":"YulIdentifier","src":"5008:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"4995:12:89","nodeType":"YulIdentifier","src":"4995:12:89"},"nativeSrc":"4995:17:89","nodeType":"YulFunctionCall","src":"4995:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"4973:18:89","nodeType":"YulTypedName","src":"4973:18:89","type":""}]},{"body":{"nativeSrc":"5102:16:89","nodeType":"YulBlock","src":"5102:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5111:1:89","nodeType":"YulLiteral","src":"5111:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5114:1:89","nodeType":"YulLiteral","src":"5114:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5104:6:89","nodeType":"YulIdentifier","src":"5104:6:89"},"nativeSrc":"5104:12:89","nodeType":"YulFunctionCall","src":"5104:12:89"},"nativeSrc":"5104:12:89","nodeType":"YulExpressionStatement","src":"5104:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"5035:18:89","nodeType":"YulIdentifier","src":"5035:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"5063:12:89","nodeType":"YulIdentifier","src":"5063:12:89"},"nativeSrc":"5063:14:89","nodeType":"YulFunctionCall","src":"5063:14:89"},{"name":"base_ref","nativeSrc":"5079:8:89","nodeType":"YulIdentifier","src":"5079:8:89"}],"functionName":{"name":"sub","nativeSrc":"5059:3:89","nodeType":"YulIdentifier","src":"5059:3:89"},"nativeSrc":"5059:29:89","nodeType":"YulFunctionCall","src":"5059:29:89"},{"arguments":[{"kind":"number","nativeSrc":"5094:3:89","nodeType":"YulLiteral","src":"5094:3:89","type":"","value":"126"}],"functionName":{"name":"not","nativeSrc":"5090:3:89","nodeType":"YulIdentifier","src":"5090:3:89"},"nativeSrc":"5090:8:89","nodeType":"YulFunctionCall","src":"5090:8:89"}],"functionName":{"name":"add","nativeSrc":"5055:3:89","nodeType":"YulIdentifier","src":"5055:3:89"},"nativeSrc":"5055:44:89","nodeType":"YulFunctionCall","src":"5055:44:89"}],"functionName":{"name":"slt","nativeSrc":"5031:3:89","nodeType":"YulIdentifier","src":"5031:3:89"},"nativeSrc":"5031:69:89","nodeType":"YulFunctionCall","src":"5031:69:89"}],"functionName":{"name":"iszero","nativeSrc":"5024:6:89","nodeType":"YulIdentifier","src":"5024:6:89"},"nativeSrc":"5024:77:89","nodeType":"YulFunctionCall","src":"5024:77:89"},"nativeSrc":"5021:97:89","nodeType":"YulIf","src":"5021:97:89"},{"nativeSrc":"5127:42:89","nodeType":"YulAssignment","src":"5127:42:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"5140:18:89","nodeType":"YulIdentifier","src":"5140:18:89"},{"name":"base_ref","nativeSrc":"5160:8:89","nodeType":"YulIdentifier","src":"5160:8:89"}],"functionName":{"name":"add","nativeSrc":"5136:3:89","nodeType":"YulIdentifier","src":"5136:3:89"},"nativeSrc":"5136:33:89","nodeType":"YulFunctionCall","src":"5136:33:89"},"variableNames":[{"name":"value","nativeSrc":"5127:5:89","nodeType":"YulIdentifier","src":"5127:5:89"}]}]},"name":"calldata_access_struct_TokenInfo_calldata","nativeSrc":"4880:295:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"4931:8:89","nodeType":"YulTypedName","src":"4931:8:89","type":""},{"name":"ptr","nativeSrc":"4941:3:89","nodeType":"YulTypedName","src":"4941:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4949:5:89","nodeType":"YulTypedName","src":"4949:5:89","type":""}],"src":"4880:295:89"},{"body":{"nativeSrc":"5276:1392:89","nodeType":"YulBlock","src":"5276:1392:89","statements":[{"nativeSrc":"5286:16:89","nodeType":"YulVariableDeclaration","src":"5286:16:89","value":{"name":"pos","nativeSrc":"5299:3:89","nodeType":"YulIdentifier","src":"5299:3:89"},"variables":[{"name":"pos_1","nativeSrc":"5290:5:89","nodeType":"YulTypedName","src":"5290:5:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5318:3:89","nodeType":"YulIdentifier","src":"5318:3:89"},{"name":"length","nativeSrc":"5323:6:89","nodeType":"YulIdentifier","src":"5323:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5311:6:89","nodeType":"YulIdentifier","src":"5311:6:89"},"nativeSrc":"5311:19:89","nodeType":"YulFunctionCall","src":"5311:19:89"},"nativeSrc":"5311:19:89","nodeType":"YulExpressionStatement","src":"5311:19:89"},{"nativeSrc":"5339:21:89","nodeType":"YulAssignment","src":"5339:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"5350:3:89","nodeType":"YulIdentifier","src":"5350:3:89"},{"kind":"number","nativeSrc":"5355:4:89","nodeType":"YulLiteral","src":"5355:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5346:3:89","nodeType":"YulIdentifier","src":"5346:3:89"},"nativeSrc":"5346:14:89","nodeType":"YulFunctionCall","src":"5346:14:89"},"variableNames":[{"name":"pos","nativeSrc":"5339:3:89","nodeType":"YulIdentifier","src":"5339:3:89"}]},{"nativeSrc":"5369:49:89","nodeType":"YulVariableDeclaration","src":"5369:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"5389:5:89","nodeType":"YulIdentifier","src":"5389:5:89"},{"arguments":[{"kind":"number","nativeSrc":"5400:1:89","nodeType":"YulLiteral","src":"5400:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"5403:6:89","nodeType":"YulIdentifier","src":"5403:6:89"}],"functionName":{"name":"shl","nativeSrc":"5396:3:89","nodeType":"YulIdentifier","src":"5396:3:89"},"nativeSrc":"5396:14:89","nodeType":"YulFunctionCall","src":"5396:14:89"}],"functionName":{"name":"add","nativeSrc":"5385:3:89","nodeType":"YulIdentifier","src":"5385:3:89"},"nativeSrc":"5385:26:89","nodeType":"YulFunctionCall","src":"5385:26:89"},{"kind":"number","nativeSrc":"5413:4:89","nodeType":"YulLiteral","src":"5413:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5381:3:89","nodeType":"YulIdentifier","src":"5381:3:89"},"nativeSrc":"5381:37:89","nodeType":"YulFunctionCall","src":"5381:37:89"},"variables":[{"name":"tail","nativeSrc":"5373:4:89","nodeType":"YulTypedName","src":"5373:4:89","type":""}]},{"nativeSrc":"5427:19:89","nodeType":"YulVariableDeclaration","src":"5427:19:89","value":{"name":"value","nativeSrc":"5441:5:89","nodeType":"YulIdentifier","src":"5441:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"5431:6:89","nodeType":"YulTypedName","src":"5431:6:89","type":""}]},{"nativeSrc":"5455:10:89","nodeType":"YulVariableDeclaration","src":"5455:10:89","value":{"kind":"number","nativeSrc":"5464:1:89","nodeType":"YulLiteral","src":"5464:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5459:1:89","nodeType":"YulTypedName","src":"5459:1:89","type":""}]},{"body":{"nativeSrc":"5523:1119:89","nodeType":"YulBlock","src":"5523:1119:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5544:3:89","nodeType":"YulIdentifier","src":"5544:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"5557:4:89","nodeType":"YulIdentifier","src":"5557:4:89"},{"name":"pos_1","nativeSrc":"5563:5:89","nodeType":"YulIdentifier","src":"5563:5:89"}],"functionName":{"name":"sub","nativeSrc":"5553:3:89","nodeType":"YulIdentifier","src":"5553:3:89"},"nativeSrc":"5553:16:89","nodeType":"YulFunctionCall","src":"5553:16:89"},{"arguments":[{"kind":"number","nativeSrc":"5575:2:89","nodeType":"YulLiteral","src":"5575:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5571:3:89","nodeType":"YulIdentifier","src":"5571:3:89"},"nativeSrc":"5571:7:89","nodeType":"YulFunctionCall","src":"5571:7:89"}],"functionName":{"name":"add","nativeSrc":"5549:3:89","nodeType":"YulIdentifier","src":"5549:3:89"},"nativeSrc":"5549:30:89","nodeType":"YulFunctionCall","src":"5549:30:89"}],"functionName":{"name":"mstore","nativeSrc":"5537:6:89","nodeType":"YulIdentifier","src":"5537:6:89"},"nativeSrc":"5537:43:89","nodeType":"YulFunctionCall","src":"5537:43:89"},"nativeSrc":"5537:43:89","nodeType":"YulExpressionStatement","src":"5537:43:89"},{"nativeSrc":"5593:66:89","nodeType":"YulVariableDeclaration","src":"5593:66:89","value":{"arguments":[{"name":"value","nativeSrc":"5645:5:89","nodeType":"YulIdentifier","src":"5645:5:89"},{"name":"srcPtr","nativeSrc":"5652:6:89","nodeType":"YulIdentifier","src":"5652:6:89"}],"functionName":{"name":"calldata_access_struct_TokenInfo_calldata","nativeSrc":"5603:41:89","nodeType":"YulIdentifier","src":"5603:41:89"},"nativeSrc":"5603:56:89","nodeType":"YulFunctionCall","src":"5603:56:89"},"variables":[{"name":"_1","nativeSrc":"5597:2:89","nodeType":"YulTypedName","src":"5597:2:89","type":""}]},{"nativeSrc":"5672:73:89","nodeType":"YulVariableDeclaration","src":"5672:73:89","value":{"arguments":[{"name":"_1","nativeSrc":"5738:2:89","nodeType":"YulIdentifier","src":"5738:2:89"},{"name":"_1","nativeSrc":"5742:2:89","nodeType":"YulIdentifier","src":"5742:2:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"5706:31:89","nodeType":"YulIdentifier","src":"5706:31:89"},"nativeSrc":"5706:39:89","nodeType":"YulFunctionCall","src":"5706:39:89"},"variables":[{"name":"memberValue0","nativeSrc":"5676:12:89","nodeType":"YulTypedName","src":"5676:12:89","type":""},{"name":"memberValue1","nativeSrc":"5690:12:89","nodeType":"YulTypedName","src":"5690:12:89","type":""}]},{"expression":{"arguments":[{"name":"tail","nativeSrc":"5765:4:89","nodeType":"YulIdentifier","src":"5765:4:89"},{"kind":"number","nativeSrc":"5771:4:89","nodeType":"YulLiteral","src":"5771:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"5758:6:89","nodeType":"YulIdentifier","src":"5758:6:89"},"nativeSrc":"5758:18:89","nodeType":"YulFunctionCall","src":"5758:18:89"},"nativeSrc":"5758:18:89","nodeType":"YulExpressionStatement","src":"5758:18:89"},{"nativeSrc":"5789:85:89","nodeType":"YulVariableDeclaration","src":"5789:85:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"5830:12:89","nodeType":"YulIdentifier","src":"5830:12:89"},{"name":"memberValue1","nativeSrc":"5844:12:89","nodeType":"YulIdentifier","src":"5844:12:89"},{"arguments":[{"name":"tail","nativeSrc":"5862:4:89","nodeType":"YulIdentifier","src":"5862:4:89"},{"kind":"number","nativeSrc":"5868:4:89","nodeType":"YulLiteral","src":"5868:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"5858:3:89","nodeType":"YulIdentifier","src":"5858:3:89"},"nativeSrc":"5858:15:89","nodeType":"YulFunctionCall","src":"5858:15:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"5803:26:89","nodeType":"YulIdentifier","src":"5803:26:89"},"nativeSrc":"5803:71:89","nodeType":"YulFunctionCall","src":"5803:71:89"},"variables":[{"name":"tail_1","nativeSrc":"5793:6:89","nodeType":"YulTypedName","src":"5793:6:89","type":""}]},{"nativeSrc":"5887:88:89","nodeType":"YulVariableDeclaration","src":"5887:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"5957:2:89","nodeType":"YulIdentifier","src":"5957:2:89"},{"arguments":[{"name":"_1","nativeSrc":"5965:2:89","nodeType":"YulIdentifier","src":"5965:2:89"},{"kind":"number","nativeSrc":"5969:4:89","nodeType":"YulLiteral","src":"5969:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5961:3:89","nodeType":"YulIdentifier","src":"5961:3:89"},"nativeSrc":"5961:13:89","nodeType":"YulFunctionCall","src":"5961:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"5925:31:89","nodeType":"YulIdentifier","src":"5925:31:89"},"nativeSrc":"5925:50:89","nodeType":"YulFunctionCall","src":"5925:50:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"5891:14:89","nodeType":"YulTypedName","src":"5891:14:89","type":""},{"name":"memberValue1_1","nativeSrc":"5907:14:89","nodeType":"YulTypedName","src":"5907:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"5999:4:89","nodeType":"YulIdentifier","src":"5999:4:89"},{"kind":"number","nativeSrc":"6005:4:89","nodeType":"YulLiteral","src":"6005:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5995:3:89","nodeType":"YulIdentifier","src":"5995:3:89"},"nativeSrc":"5995:15:89","nodeType":"YulFunctionCall","src":"5995:15:89"},{"arguments":[{"name":"tail_1","nativeSrc":"6016:6:89","nodeType":"YulIdentifier","src":"6016:6:89"},{"name":"tail","nativeSrc":"6024:4:89","nodeType":"YulIdentifier","src":"6024:4:89"}],"functionName":{"name":"sub","nativeSrc":"6012:3:89","nodeType":"YulIdentifier","src":"6012:3:89"},"nativeSrc":"6012:17:89","nodeType":"YulFunctionCall","src":"6012:17:89"}],"functionName":{"name":"mstore","nativeSrc":"5988:6:89","nodeType":"YulIdentifier","src":"5988:6:89"},"nativeSrc":"5988:42:89","nodeType":"YulFunctionCall","src":"5988:42:89"},"nativeSrc":"5988:42:89","nodeType":"YulExpressionStatement","src":"5988:42:89"},{"nativeSrc":"6043:80:89","nodeType":"YulVariableDeclaration","src":"6043:80:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"6084:14:89","nodeType":"YulIdentifier","src":"6084:14:89"},{"name":"memberValue1_1","nativeSrc":"6100:14:89","nodeType":"YulIdentifier","src":"6100:14:89"},{"name":"tail_1","nativeSrc":"6116:6:89","nodeType":"YulIdentifier","src":"6116:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"6057:26:89","nodeType":"YulIdentifier","src":"6057:26:89"},"nativeSrc":"6057:66:89","nodeType":"YulFunctionCall","src":"6057:66:89"},"variables":[{"name":"tail_2","nativeSrc":"6047:6:89","nodeType":"YulTypedName","src":"6047:6:89","type":""}]},{"nativeSrc":"6136:42:89","nodeType":"YulVariableDeclaration","src":"6136:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6168:2:89","nodeType":"YulIdentifier","src":"6168:2:89"},{"kind":"number","nativeSrc":"6172:4:89","nodeType":"YulLiteral","src":"6172:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"6164:3:89","nodeType":"YulIdentifier","src":"6164:3:89"},"nativeSrc":"6164:13:89","nodeType":"YulFunctionCall","src":"6164:13:89"}],"functionName":{"name":"calldataload","nativeSrc":"6151:12:89","nodeType":"YulIdentifier","src":"6151:12:89"},"nativeSrc":"6151:27:89","nodeType":"YulFunctionCall","src":"6151:27:89"},"variables":[{"name":"value_1","nativeSrc":"6140:7:89","nodeType":"YulTypedName","src":"6140:7:89","type":""}]},{"nativeSrc":"6191:28:89","nodeType":"YulVariableDeclaration","src":"6191:28:89","value":{"arguments":[{"name":"value_1","nativeSrc":"6205:7:89","nodeType":"YulIdentifier","src":"6205:7:89"},{"kind":"number","nativeSrc":"6214:4:89","nodeType":"YulLiteral","src":"6214:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"6201:3:89","nodeType":"YulIdentifier","src":"6201:3:89"},"nativeSrc":"6201:18:89","nodeType":"YulFunctionCall","src":"6201:18:89"},"variables":[{"name":"_2","nativeSrc":"6195:2:89","nodeType":"YulTypedName","src":"6195:2:89","type":""}]},{"body":{"nativeSrc":"6259:16:89","nodeType":"YulBlock","src":"6259:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6268:1:89","nodeType":"YulLiteral","src":"6268:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6271:1:89","nodeType":"YulLiteral","src":"6271:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6261:6:89","nodeType":"YulIdentifier","src":"6261:6:89"},"nativeSrc":"6261:12:89","nodeType":"YulFunctionCall","src":"6261:12:89"},"nativeSrc":"6261:12:89","nodeType":"YulExpressionStatement","src":"6261:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"6245:7:89","nodeType":"YulIdentifier","src":"6245:7:89"},{"name":"_2","nativeSrc":"6254:2:89","nodeType":"YulIdentifier","src":"6254:2:89"}],"functionName":{"name":"eq","nativeSrc":"6242:2:89","nodeType":"YulIdentifier","src":"6242:2:89"},"nativeSrc":"6242:15:89","nodeType":"YulFunctionCall","src":"6242:15:89"}],"functionName":{"name":"iszero","nativeSrc":"6235:6:89","nodeType":"YulIdentifier","src":"6235:6:89"},"nativeSrc":"6235:23:89","nodeType":"YulFunctionCall","src":"6235:23:89"},"nativeSrc":"6232:43:89","nodeType":"YulIf","src":"6232:43:89"},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"6299:4:89","nodeType":"YulIdentifier","src":"6299:4:89"},{"kind":"number","nativeSrc":"6305:4:89","nodeType":"YulLiteral","src":"6305:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"6295:3:89","nodeType":"YulIdentifier","src":"6295:3:89"},"nativeSrc":"6295:15:89","nodeType":"YulFunctionCall","src":"6295:15:89"},{"name":"_2","nativeSrc":"6312:2:89","nodeType":"YulIdentifier","src":"6312:2:89"}],"functionName":{"name":"mstore","nativeSrc":"6288:6:89","nodeType":"YulIdentifier","src":"6288:6:89"},"nativeSrc":"6288:27:89","nodeType":"YulFunctionCall","src":"6288:27:89"},"nativeSrc":"6288:27:89","nodeType":"YulExpressionStatement","src":"6288:27:89"},{"nativeSrc":"6328:88:89","nodeType":"YulVariableDeclaration","src":"6328:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"6398:2:89","nodeType":"YulIdentifier","src":"6398:2:89"},{"arguments":[{"name":"_1","nativeSrc":"6406:2:89","nodeType":"YulIdentifier","src":"6406:2:89"},{"kind":"number","nativeSrc":"6410:4:89","nodeType":"YulLiteral","src":"6410:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"6402:3:89","nodeType":"YulIdentifier","src":"6402:3:89"},"nativeSrc":"6402:13:89","nodeType":"YulFunctionCall","src":"6402:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"6366:31:89","nodeType":"YulIdentifier","src":"6366:31:89"},"nativeSrc":"6366:50:89","nodeType":"YulFunctionCall","src":"6366:50:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"6332:14:89","nodeType":"YulTypedName","src":"6332:14:89","type":""},{"name":"memberValue1_2","nativeSrc":"6348:14:89","nodeType":"YulTypedName","src":"6348:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"6440:4:89","nodeType":"YulIdentifier","src":"6440:4:89"},{"kind":"number","nativeSrc":"6446:4:89","nodeType":"YulLiteral","src":"6446:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"6436:3:89","nodeType":"YulIdentifier","src":"6436:3:89"},"nativeSrc":"6436:15:89","nodeType":"YulFunctionCall","src":"6436:15:89"},{"arguments":[{"name":"tail_2","nativeSrc":"6457:6:89","nodeType":"YulIdentifier","src":"6457:6:89"},{"name":"tail","nativeSrc":"6465:4:89","nodeType":"YulIdentifier","src":"6465:4:89"}],"functionName":{"name":"sub","nativeSrc":"6453:3:89","nodeType":"YulIdentifier","src":"6453:3:89"},"nativeSrc":"6453:17:89","nodeType":"YulFunctionCall","src":"6453:17:89"}],"functionName":{"name":"mstore","nativeSrc":"6429:6:89","nodeType":"YulIdentifier","src":"6429:6:89"},"nativeSrc":"6429:42:89","nodeType":"YulFunctionCall","src":"6429:42:89"},"nativeSrc":"6429:42:89","nodeType":"YulExpressionStatement","src":"6429:42:89"},{"nativeSrc":"6484:74:89","nodeType":"YulAssignment","src":"6484:74:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"6519:14:89","nodeType":"YulIdentifier","src":"6519:14:89"},{"name":"memberValue1_2","nativeSrc":"6535:14:89","nodeType":"YulIdentifier","src":"6535:14:89"},{"name":"tail_2","nativeSrc":"6551:6:89","nodeType":"YulIdentifier","src":"6551:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"6492:26:89","nodeType":"YulIdentifier","src":"6492:26:89"},"nativeSrc":"6492:66:89","nodeType":"YulFunctionCall","src":"6492:66:89"},"variableNames":[{"name":"tail","nativeSrc":"6484:4:89","nodeType":"YulIdentifier","src":"6484:4:89"}]},{"nativeSrc":"6571:27:89","nodeType":"YulAssignment","src":"6571:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"6585:6:89","nodeType":"YulIdentifier","src":"6585:6:89"},{"kind":"number","nativeSrc":"6593:4:89","nodeType":"YulLiteral","src":"6593:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6581:3:89","nodeType":"YulIdentifier","src":"6581:3:89"},"nativeSrc":"6581:17:89","nodeType":"YulFunctionCall","src":"6581:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"6571:6:89","nodeType":"YulIdentifier","src":"6571:6:89"}]},{"nativeSrc":"6611:21:89","nodeType":"YulAssignment","src":"6611:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"6622:3:89","nodeType":"YulIdentifier","src":"6622:3:89"},{"kind":"number","nativeSrc":"6627:4:89","nodeType":"YulLiteral","src":"6627:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6618:3:89","nodeType":"YulIdentifier","src":"6618:3:89"},"nativeSrc":"6618:14:89","nodeType":"YulFunctionCall","src":"6618:14:89"},"variableNames":[{"name":"pos","nativeSrc":"6611:3:89","nodeType":"YulIdentifier","src":"6611:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5485:1:89","nodeType":"YulIdentifier","src":"5485:1:89"},{"name":"length","nativeSrc":"5488:6:89","nodeType":"YulIdentifier","src":"5488:6:89"}],"functionName":{"name":"lt","nativeSrc":"5482:2:89","nodeType":"YulIdentifier","src":"5482:2:89"},"nativeSrc":"5482:13:89","nodeType":"YulFunctionCall","src":"5482:13:89"},"nativeSrc":"5474:1168:89","nodeType":"YulForLoop","post":{"nativeSrc":"5496:18:89","nodeType":"YulBlock","src":"5496:18:89","statements":[{"nativeSrc":"5498:14:89","nodeType":"YulAssignment","src":"5498:14:89","value":{"arguments":[{"name":"i","nativeSrc":"5507:1:89","nodeType":"YulIdentifier","src":"5507:1:89"},{"kind":"number","nativeSrc":"5510:1:89","nodeType":"YulLiteral","src":"5510:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5503:3:89","nodeType":"YulIdentifier","src":"5503:3:89"},"nativeSrc":"5503:9:89","nodeType":"YulFunctionCall","src":"5503:9:89"},"variableNames":[{"name":"i","nativeSrc":"5498:1:89","nodeType":"YulIdentifier","src":"5498:1:89"}]}]},"pre":{"nativeSrc":"5478:3:89","nodeType":"YulBlock","src":"5478:3:89","statements":[]},"src":"5474:1168:89"},{"nativeSrc":"6651:11:89","nodeType":"YulAssignment","src":"6651:11:89","value":{"name":"tail","nativeSrc":"6658:4:89","nodeType":"YulIdentifier","src":"6658:4:89"},"variableNames":[{"name":"end","nativeSrc":"6651:3:89","nodeType":"YulIdentifier","src":"6651:3:89"}]}]},"name":"abi_encode_array_struct_TokenInfo_calldata_dyn_calldata","nativeSrc":"5180:1488:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5245:5:89","nodeType":"YulTypedName","src":"5245:5:89","type":""},{"name":"length","nativeSrc":"5252:6:89","nodeType":"YulTypedName","src":"5252:6:89","type":""},{"name":"pos","nativeSrc":"5260:3:89","nodeType":"YulTypedName","src":"5260:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5268:3:89","nodeType":"YulTypedName","src":"5268:3:89","type":""}],"src":"5180:1488:89"},{"body":{"nativeSrc":"6779:435:89","nodeType":"YulBlock","src":"6779:435:89","statements":[{"nativeSrc":"6789:43:89","nodeType":"YulVariableDeclaration","src":"6789:43:89","value":{"arguments":[{"name":"ptr","nativeSrc":"6828:3:89","nodeType":"YulIdentifier","src":"6828:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"6815:12:89","nodeType":"YulIdentifier","src":"6815:12:89"},"nativeSrc":"6815:17:89","nodeType":"YulFunctionCall","src":"6815:17:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"6793:18:89","nodeType":"YulTypedName","src":"6793:18:89","type":""}]},{"body":{"nativeSrc":"6921:16:89","nodeType":"YulBlock","src":"6921:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6930:1:89","nodeType":"YulLiteral","src":"6930:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6933:1:89","nodeType":"YulLiteral","src":"6933:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6923:6:89","nodeType":"YulIdentifier","src":"6923:6:89"},"nativeSrc":"6923:12:89","nodeType":"YulFunctionCall","src":"6923:12:89"},"nativeSrc":"6923:12:89","nodeType":"YulExpressionStatement","src":"6923:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"6855:18:89","nodeType":"YulIdentifier","src":"6855:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"6883:12:89","nodeType":"YulIdentifier","src":"6883:12:89"},"nativeSrc":"6883:14:89","nodeType":"YulFunctionCall","src":"6883:14:89"},{"name":"base_ref","nativeSrc":"6899:8:89","nodeType":"YulIdentifier","src":"6899:8:89"}],"functionName":{"name":"sub","nativeSrc":"6879:3:89","nodeType":"YulIdentifier","src":"6879:3:89"},"nativeSrc":"6879:29:89","nodeType":"YulFunctionCall","src":"6879:29:89"},{"arguments":[{"kind":"number","nativeSrc":"6914:2:89","nodeType":"YulLiteral","src":"6914:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"6910:3:89","nodeType":"YulIdentifier","src":"6910:3:89"},"nativeSrc":"6910:7:89","nodeType":"YulFunctionCall","src":"6910:7:89"}],"functionName":{"name":"add","nativeSrc":"6875:3:89","nodeType":"YulIdentifier","src":"6875:3:89"},"nativeSrc":"6875:43:89","nodeType":"YulFunctionCall","src":"6875:43:89"}],"functionName":{"name":"slt","nativeSrc":"6851:3:89","nodeType":"YulIdentifier","src":"6851:3:89"},"nativeSrc":"6851:68:89","nodeType":"YulFunctionCall","src":"6851:68:89"}],"functionName":{"name":"iszero","nativeSrc":"6844:6:89","nodeType":"YulIdentifier","src":"6844:6:89"},"nativeSrc":"6844:76:89","nodeType":"YulFunctionCall","src":"6844:76:89"},"nativeSrc":"6841:96:89","nodeType":"YulIf","src":"6841:96:89"},{"nativeSrc":"6946:48:89","nodeType":"YulVariableDeclaration","src":"6946:48:89","value":{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"6965:18:89","nodeType":"YulIdentifier","src":"6965:18:89"},{"name":"base_ref","nativeSrc":"6985:8:89","nodeType":"YulIdentifier","src":"6985:8:89"}],"functionName":{"name":"add","nativeSrc":"6961:3:89","nodeType":"YulIdentifier","src":"6961:3:89"},"nativeSrc":"6961:33:89","nodeType":"YulFunctionCall","src":"6961:33:89"},"variables":[{"name":"value_1","nativeSrc":"6950:7:89","nodeType":"YulTypedName","src":"6950:7:89","type":""}]},{"nativeSrc":"7003:31:89","nodeType":"YulAssignment","src":"7003:31:89","value":{"arguments":[{"name":"value_1","nativeSrc":"7026:7:89","nodeType":"YulIdentifier","src":"7026:7:89"}],"functionName":{"name":"calldataload","nativeSrc":"7013:12:89","nodeType":"YulIdentifier","src":"7013:12:89"},"nativeSrc":"7013:21:89","nodeType":"YulFunctionCall","src":"7013:21:89"},"variableNames":[{"name":"length","nativeSrc":"7003:6:89","nodeType":"YulIdentifier","src":"7003:6:89"}]},{"nativeSrc":"7043:27:89","nodeType":"YulAssignment","src":"7043:27:89","value":{"arguments":[{"name":"value_1","nativeSrc":"7056:7:89","nodeType":"YulIdentifier","src":"7056:7:89"},{"kind":"number","nativeSrc":"7065:4:89","nodeType":"YulLiteral","src":"7065:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7052:3:89","nodeType":"YulIdentifier","src":"7052:3:89"},"nativeSrc":"7052:18:89","nodeType":"YulFunctionCall","src":"7052:18:89"},"variableNames":[{"name":"value","nativeSrc":"7043:5:89","nodeType":"YulIdentifier","src":"7043:5:89"}]},{"body":{"nativeSrc":"7113:16:89","nodeType":"YulBlock","src":"7113:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7122:1:89","nodeType":"YulLiteral","src":"7122:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7125:1:89","nodeType":"YulLiteral","src":"7125:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7115:6:89","nodeType":"YulIdentifier","src":"7115:6:89"},"nativeSrc":"7115:12:89","nodeType":"YulFunctionCall","src":"7115:12:89"},"nativeSrc":"7115:12:89","nodeType":"YulExpressionStatement","src":"7115:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7085:6:89","nodeType":"YulIdentifier","src":"7085:6:89"},{"kind":"number","nativeSrc":"7093:18:89","nodeType":"YulLiteral","src":"7093:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7082:2:89","nodeType":"YulIdentifier","src":"7082:2:89"},"nativeSrc":"7082:30:89","nodeType":"YulFunctionCall","src":"7082:30:89"},"nativeSrc":"7079:50:89","nodeType":"YulIf","src":"7079:50:89"},{"body":{"nativeSrc":"7192:16:89","nodeType":"YulBlock","src":"7192:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7201:1:89","nodeType":"YulLiteral","src":"7201:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7204:1:89","nodeType":"YulLiteral","src":"7204:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7194:6:89","nodeType":"YulIdentifier","src":"7194:6:89"},"nativeSrc":"7194:12:89","nodeType":"YulFunctionCall","src":"7194:12:89"},"nativeSrc":"7194:12:89","nodeType":"YulExpressionStatement","src":"7194:12:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"7145:5:89","nodeType":"YulIdentifier","src":"7145:5:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"7156:12:89","nodeType":"YulIdentifier","src":"7156:12:89"},"nativeSrc":"7156:14:89","nodeType":"YulFunctionCall","src":"7156:14:89"},{"arguments":[{"name":"length","nativeSrc":"7176:6:89","nodeType":"YulIdentifier","src":"7176:6:89"},{"kind":"number","nativeSrc":"7184:4:89","nodeType":"YulLiteral","src":"7184:4:89","type":"","value":"0x60"}],"functionName":{"name":"mul","nativeSrc":"7172:3:89","nodeType":"YulIdentifier","src":"7172:3:89"},"nativeSrc":"7172:17:89","nodeType":"YulFunctionCall","src":"7172:17:89"}],"functionName":{"name":"sub","nativeSrc":"7152:3:89","nodeType":"YulIdentifier","src":"7152:3:89"},"nativeSrc":"7152:38:89","nodeType":"YulFunctionCall","src":"7152:38:89"}],"functionName":{"name":"sgt","nativeSrc":"7141:3:89","nodeType":"YulIdentifier","src":"7141:3:89"},"nativeSrc":"7141:50:89","nodeType":"YulFunctionCall","src":"7141:50:89"},"nativeSrc":"7138:70:89","nodeType":"YulIf","src":"7138:70:89"}]},"name":"calldata_access_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"6673:541:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"6743:8:89","nodeType":"YulTypedName","src":"6743:8:89","type":""},{"name":"ptr","nativeSrc":"6753:3:89","nodeType":"YulTypedName","src":"6753:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6761:5:89","nodeType":"YulTypedName","src":"6761:5:89","type":""},{"name":"length","nativeSrc":"6768:6:89","nodeType":"YulTypedName","src":"6768:6:89","type":""}],"src":"6673:541:89"},{"body":{"nativeSrc":"7315:608:89","nodeType":"YulBlock","src":"7315:608:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7332:3:89","nodeType":"YulIdentifier","src":"7332:3:89"},{"name":"length","nativeSrc":"7337:6:89","nodeType":"YulIdentifier","src":"7337:6:89"}],"functionName":{"name":"mstore","nativeSrc":"7325:6:89","nodeType":"YulIdentifier","src":"7325:6:89"},"nativeSrc":"7325:19:89","nodeType":"YulFunctionCall","src":"7325:19:89"},"nativeSrc":"7325:19:89","nodeType":"YulExpressionStatement","src":"7325:19:89"},{"nativeSrc":"7353:21:89","nodeType":"YulAssignment","src":"7353:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"7364:3:89","nodeType":"YulIdentifier","src":"7364:3:89"},{"kind":"number","nativeSrc":"7369:4:89","nodeType":"YulLiteral","src":"7369:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7360:3:89","nodeType":"YulIdentifier","src":"7360:3:89"},"nativeSrc":"7360:14:89","nodeType":"YulFunctionCall","src":"7360:14:89"},"variableNames":[{"name":"pos","nativeSrc":"7353:3:89","nodeType":"YulIdentifier","src":"7353:3:89"}]},{"nativeSrc":"7383:19:89","nodeType":"YulVariableDeclaration","src":"7383:19:89","value":{"name":"value","nativeSrc":"7397:5:89","nodeType":"YulIdentifier","src":"7397:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"7387:6:89","nodeType":"YulTypedName","src":"7387:6:89","type":""}]},{"nativeSrc":"7411:10:89","nodeType":"YulVariableDeclaration","src":"7411:10:89","value":{"kind":"number","nativeSrc":"7420:1:89","nodeType":"YulLiteral","src":"7420:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"7415:1:89","nodeType":"YulTypedName","src":"7415:1:89","type":""}]},{"body":{"nativeSrc":"7479:419:89","nodeType":"YulBlock","src":"7479:419:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7500:3:89","nodeType":"YulIdentifier","src":"7500:3:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"7528:6:89","nodeType":"YulIdentifier","src":"7528:6:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"7509:18:89","nodeType":"YulIdentifier","src":"7509:18:89"},"nativeSrc":"7509:26:89","nodeType":"YulFunctionCall","src":"7509:26:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7545:3:89","nodeType":"YulLiteral","src":"7545:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"7550:1:89","nodeType":"YulLiteral","src":"7550:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7541:3:89","nodeType":"YulIdentifier","src":"7541:3:89"},"nativeSrc":"7541:11:89","nodeType":"YulFunctionCall","src":"7541:11:89"},{"kind":"number","nativeSrc":"7554:1:89","nodeType":"YulLiteral","src":"7554:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7537:3:89","nodeType":"YulIdentifier","src":"7537:3:89"},"nativeSrc":"7537:19:89","nodeType":"YulFunctionCall","src":"7537:19:89"}],"functionName":{"name":"and","nativeSrc":"7505:3:89","nodeType":"YulIdentifier","src":"7505:3:89"},"nativeSrc":"7505:52:89","nodeType":"YulFunctionCall","src":"7505:52:89"}],"functionName":{"name":"mstore","nativeSrc":"7493:6:89","nodeType":"YulIdentifier","src":"7493:6:89"},"nativeSrc":"7493:65:89","nodeType":"YulFunctionCall","src":"7493:65:89"},"nativeSrc":"7493:65:89","nodeType":"YulExpressionStatement","src":"7493:65:89"},{"nativeSrc":"7571:16:89","nodeType":"YulVariableDeclaration","src":"7571:16:89","value":{"kind":"number","nativeSrc":"7586:1:89","nodeType":"YulLiteral","src":"7586:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"7575:7:89","nodeType":"YulTypedName","src":"7575:7:89","type":""}]},{"nativeSrc":"7600:42:89","nodeType":"YulAssignment","src":"7600:42:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"7628:6:89","nodeType":"YulIdentifier","src":"7628:6:89"},{"kind":"number","nativeSrc":"7636:4:89","nodeType":"YulLiteral","src":"7636:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7624:3:89","nodeType":"YulIdentifier","src":"7624:3:89"},"nativeSrc":"7624:17:89","nodeType":"YulFunctionCall","src":"7624:17:89"}],"functionName":{"name":"calldataload","nativeSrc":"7611:12:89","nodeType":"YulIdentifier","src":"7611:12:89"},"nativeSrc":"7611:31:89","nodeType":"YulFunctionCall","src":"7611:31:89"},"variableNames":[{"name":"value_1","nativeSrc":"7600:7:89","nodeType":"YulIdentifier","src":"7600:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7666:3:89","nodeType":"YulIdentifier","src":"7666:3:89"},{"kind":"number","nativeSrc":"7671:4:89","nodeType":"YulLiteral","src":"7671:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7662:3:89","nodeType":"YulIdentifier","src":"7662:3:89"},"nativeSrc":"7662:14:89","nodeType":"YulFunctionCall","src":"7662:14:89"},{"name":"value_1","nativeSrc":"7678:7:89","nodeType":"YulIdentifier","src":"7678:7:89"}],"functionName":{"name":"mstore","nativeSrc":"7655:6:89","nodeType":"YulIdentifier","src":"7655:6:89"},"nativeSrc":"7655:31:89","nodeType":"YulFunctionCall","src":"7655:31:89"},"nativeSrc":"7655:31:89","nodeType":"YulExpressionStatement","src":"7655:31:89"},{"nativeSrc":"7699:16:89","nodeType":"YulVariableDeclaration","src":"7699:16:89","value":{"kind":"number","nativeSrc":"7714:1:89","nodeType":"YulLiteral","src":"7714:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"7703:7:89","nodeType":"YulTypedName","src":"7703:7:89","type":""}]},{"nativeSrc":"7728:42:89","nodeType":"YulAssignment","src":"7728:42:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"7756:6:89","nodeType":"YulIdentifier","src":"7756:6:89"},{"kind":"number","nativeSrc":"7764:4:89","nodeType":"YulLiteral","src":"7764:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"7752:3:89","nodeType":"YulIdentifier","src":"7752:3:89"},"nativeSrc":"7752:17:89","nodeType":"YulFunctionCall","src":"7752:17:89"}],"functionName":{"name":"calldataload","nativeSrc":"7739:12:89","nodeType":"YulIdentifier","src":"7739:12:89"},"nativeSrc":"7739:31:89","nodeType":"YulFunctionCall","src":"7739:31:89"},"variableNames":[{"name":"value_2","nativeSrc":"7728:7:89","nodeType":"YulIdentifier","src":"7728:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7794:3:89","nodeType":"YulIdentifier","src":"7794:3:89"},{"kind":"number","nativeSrc":"7799:4:89","nodeType":"YulLiteral","src":"7799:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"7790:3:89","nodeType":"YulIdentifier","src":"7790:3:89"},"nativeSrc":"7790:14:89","nodeType":"YulFunctionCall","src":"7790:14:89"},{"name":"value_2","nativeSrc":"7806:7:89","nodeType":"YulIdentifier","src":"7806:7:89"}],"functionName":{"name":"mstore","nativeSrc":"7783:6:89","nodeType":"YulIdentifier","src":"7783:6:89"},"nativeSrc":"7783:31:89","nodeType":"YulFunctionCall","src":"7783:31:89"},"nativeSrc":"7783:31:89","nodeType":"YulExpressionStatement","src":"7783:31:89"},{"nativeSrc":"7827:21:89","nodeType":"YulAssignment","src":"7827:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"7838:3:89","nodeType":"YulIdentifier","src":"7838:3:89"},{"kind":"number","nativeSrc":"7843:4:89","nodeType":"YulLiteral","src":"7843:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"7834:3:89","nodeType":"YulIdentifier","src":"7834:3:89"},"nativeSrc":"7834:14:89","nodeType":"YulFunctionCall","src":"7834:14:89"},"variableNames":[{"name":"pos","nativeSrc":"7827:3:89","nodeType":"YulIdentifier","src":"7827:3:89"}]},{"nativeSrc":"7861:27:89","nodeType":"YulAssignment","src":"7861:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"7875:6:89","nodeType":"YulIdentifier","src":"7875:6:89"},{"kind":"number","nativeSrc":"7883:4:89","nodeType":"YulLiteral","src":"7883:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"7871:3:89","nodeType":"YulIdentifier","src":"7871:3:89"},"nativeSrc":"7871:17:89","nodeType":"YulFunctionCall","src":"7871:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"7861:6:89","nodeType":"YulIdentifier","src":"7861:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"7441:1:89","nodeType":"YulIdentifier","src":"7441:1:89"},{"name":"length","nativeSrc":"7444:6:89","nodeType":"YulIdentifier","src":"7444:6:89"}],"functionName":{"name":"lt","nativeSrc":"7438:2:89","nodeType":"YulIdentifier","src":"7438:2:89"},"nativeSrc":"7438:13:89","nodeType":"YulFunctionCall","src":"7438:13:89"},"nativeSrc":"7430:468:89","nodeType":"YulForLoop","post":{"nativeSrc":"7452:18:89","nodeType":"YulBlock","src":"7452:18:89","statements":[{"nativeSrc":"7454:14:89","nodeType":"YulAssignment","src":"7454:14:89","value":{"arguments":[{"name":"i","nativeSrc":"7463:1:89","nodeType":"YulIdentifier","src":"7463:1:89"},{"kind":"number","nativeSrc":"7466:1:89","nodeType":"YulLiteral","src":"7466:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7459:3:89","nodeType":"YulIdentifier","src":"7459:3:89"},"nativeSrc":"7459:9:89","nodeType":"YulFunctionCall","src":"7459:9:89"},"variableNames":[{"name":"i","nativeSrc":"7454:1:89","nodeType":"YulIdentifier","src":"7454:1:89"}]}]},"pre":{"nativeSrc":"7434:3:89","nodeType":"YulBlock","src":"7434:3:89","statements":[]},"src":"7430:468:89"},{"nativeSrc":"7907:10:89","nodeType":"YulAssignment","src":"7907:10:89","value":{"name":"pos","nativeSrc":"7914:3:89","nodeType":"YulIdentifier","src":"7914:3:89"},"variableNames":[{"name":"end","nativeSrc":"7907:3:89","nodeType":"YulIdentifier","src":"7907:3:89"}]}]},"name":"abi_encode_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"7219:704:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7284:5:89","nodeType":"YulTypedName","src":"7284:5:89","type":""},{"name":"length","nativeSrc":"7291:6:89","nodeType":"YulTypedName","src":"7291:6:89","type":""},{"name":"pos","nativeSrc":"7299:3:89","nodeType":"YulTypedName","src":"7299:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7307:3:89","nodeType":"YulTypedName","src":"7307:3:89","type":""}],"src":"7219:704:89"},{"body":{"nativeSrc":"8022:1449:89","nodeType":"YulBlock","src":"8022:1449:89","statements":[{"nativeSrc":"8032:16:89","nodeType":"YulVariableDeclaration","src":"8032:16:89","value":{"name":"pos","nativeSrc":"8045:3:89","nodeType":"YulIdentifier","src":"8045:3:89"},"variables":[{"name":"pos_1","nativeSrc":"8036:5:89","nodeType":"YulTypedName","src":"8036:5:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8064:3:89","nodeType":"YulIdentifier","src":"8064:3:89"},{"name":"length","nativeSrc":"8069:6:89","nodeType":"YulIdentifier","src":"8069:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8057:6:89","nodeType":"YulIdentifier","src":"8057:6:89"},"nativeSrc":"8057:19:89","nodeType":"YulFunctionCall","src":"8057:19:89"},"nativeSrc":"8057:19:89","nodeType":"YulExpressionStatement","src":"8057:19:89"},{"nativeSrc":"8085:21:89","nodeType":"YulAssignment","src":"8085:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"8096:3:89","nodeType":"YulIdentifier","src":"8096:3:89"},{"kind":"number","nativeSrc":"8101:4:89","nodeType":"YulLiteral","src":"8101:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8092:3:89","nodeType":"YulIdentifier","src":"8092:3:89"},"nativeSrc":"8092:14:89","nodeType":"YulFunctionCall","src":"8092:14:89"},"variableNames":[{"name":"pos","nativeSrc":"8085:3:89","nodeType":"YulIdentifier","src":"8085:3:89"}]},{"nativeSrc":"8115:49:89","nodeType":"YulVariableDeclaration","src":"8115:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"8135:5:89","nodeType":"YulIdentifier","src":"8135:5:89"},{"arguments":[{"kind":"number","nativeSrc":"8146:1:89","nodeType":"YulLiteral","src":"8146:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"8149:6:89","nodeType":"YulIdentifier","src":"8149:6:89"}],"functionName":{"name":"shl","nativeSrc":"8142:3:89","nodeType":"YulIdentifier","src":"8142:3:89"},"nativeSrc":"8142:14:89","nodeType":"YulFunctionCall","src":"8142:14:89"}],"functionName":{"name":"add","nativeSrc":"8131:3:89","nodeType":"YulIdentifier","src":"8131:3:89"},"nativeSrc":"8131:26:89","nodeType":"YulFunctionCall","src":"8131:26:89"},{"kind":"number","nativeSrc":"8159:4:89","nodeType":"YulLiteral","src":"8159:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8127:3:89","nodeType":"YulIdentifier","src":"8127:3:89"},"nativeSrc":"8127:37:89","nodeType":"YulFunctionCall","src":"8127:37:89"},"variables":[{"name":"tail","nativeSrc":"8119:4:89","nodeType":"YulTypedName","src":"8119:4:89","type":""}]},{"nativeSrc":"8173:19:89","nodeType":"YulVariableDeclaration","src":"8173:19:89","value":{"name":"value","nativeSrc":"8187:5:89","nodeType":"YulIdentifier","src":"8187:5:89"},"variables":[{"name":"srcPtr","nativeSrc":"8177:6:89","nodeType":"YulTypedName","src":"8177:6:89","type":""}]},{"nativeSrc":"8201:10:89","nodeType":"YulVariableDeclaration","src":"8201:10:89","value":{"kind":"number","nativeSrc":"8210:1:89","nodeType":"YulLiteral","src":"8210:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8205:1:89","nodeType":"YulTypedName","src":"8205:1:89","type":""}]},{"body":{"nativeSrc":"8269:1176:89","nodeType":"YulBlock","src":"8269:1176:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8290:3:89","nodeType":"YulIdentifier","src":"8290:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"8303:4:89","nodeType":"YulIdentifier","src":"8303:4:89"},{"name":"pos_1","nativeSrc":"8309:5:89","nodeType":"YulIdentifier","src":"8309:5:89"}],"functionName":{"name":"sub","nativeSrc":"8299:3:89","nodeType":"YulIdentifier","src":"8299:3:89"},"nativeSrc":"8299:16:89","nodeType":"YulFunctionCall","src":"8299:16:89"},{"arguments":[{"kind":"number","nativeSrc":"8321:2:89","nodeType":"YulLiteral","src":"8321:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"8317:3:89","nodeType":"YulIdentifier","src":"8317:3:89"},"nativeSrc":"8317:7:89","nodeType":"YulFunctionCall","src":"8317:7:89"}],"functionName":{"name":"add","nativeSrc":"8295:3:89","nodeType":"YulIdentifier","src":"8295:3:89"},"nativeSrc":"8295:30:89","nodeType":"YulFunctionCall","src":"8295:30:89"}],"functionName":{"name":"mstore","nativeSrc":"8283:6:89","nodeType":"YulIdentifier","src":"8283:6:89"},"nativeSrc":"8283:43:89","nodeType":"YulFunctionCall","src":"8283:43:89"},"nativeSrc":"8283:43:89","nodeType":"YulExpressionStatement","src":"8283:43:89"},{"nativeSrc":"8339:66:89","nodeType":"YulVariableDeclaration","src":"8339:66:89","value":{"arguments":[{"name":"value","nativeSrc":"8391:5:89","nodeType":"YulIdentifier","src":"8391:5:89"},{"name":"srcPtr","nativeSrc":"8398:6:89","nodeType":"YulIdentifier","src":"8398:6:89"}],"functionName":{"name":"calldata_access_struct_TokenInfo_calldata","nativeSrc":"8349:41:89","nodeType":"YulIdentifier","src":"8349:41:89"},"nativeSrc":"8349:56:89","nodeType":"YulFunctionCall","src":"8349:56:89"},"variables":[{"name":"_1","nativeSrc":"8343:2:89","nodeType":"YulTypedName","src":"8343:2:89","type":""}]},{"nativeSrc":"8418:73:89","nodeType":"YulVariableDeclaration","src":"8418:73:89","value":{"arguments":[{"name":"_1","nativeSrc":"8484:2:89","nodeType":"YulIdentifier","src":"8484:2:89"},{"name":"_1","nativeSrc":"8488:2:89","nodeType":"YulIdentifier","src":"8488:2:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"8452:31:89","nodeType":"YulIdentifier","src":"8452:31:89"},"nativeSrc":"8452:39:89","nodeType":"YulFunctionCall","src":"8452:39:89"},"variables":[{"name":"memberValue0","nativeSrc":"8422:12:89","nodeType":"YulTypedName","src":"8422:12:89","type":""},{"name":"memberValue1","nativeSrc":"8436:12:89","nodeType":"YulTypedName","src":"8436:12:89","type":""}]},{"expression":{"arguments":[{"name":"tail","nativeSrc":"8511:4:89","nodeType":"YulIdentifier","src":"8511:4:89"},{"kind":"number","nativeSrc":"8517:4:89","nodeType":"YulLiteral","src":"8517:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"8504:6:89","nodeType":"YulIdentifier","src":"8504:6:89"},"nativeSrc":"8504:18:89","nodeType":"YulFunctionCall","src":"8504:18:89"},"nativeSrc":"8504:18:89","nodeType":"YulExpressionStatement","src":"8504:18:89"},{"nativeSrc":"8535:85:89","nodeType":"YulVariableDeclaration","src":"8535:85:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"8576:12:89","nodeType":"YulIdentifier","src":"8576:12:89"},{"name":"memberValue1","nativeSrc":"8590:12:89","nodeType":"YulIdentifier","src":"8590:12:89"},{"arguments":[{"name":"tail","nativeSrc":"8608:4:89","nodeType":"YulIdentifier","src":"8608:4:89"},{"kind":"number","nativeSrc":"8614:4:89","nodeType":"YulLiteral","src":"8614:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"8604:3:89","nodeType":"YulIdentifier","src":"8604:3:89"},"nativeSrc":"8604:15:89","nodeType":"YulFunctionCall","src":"8604:15:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8549:26:89","nodeType":"YulIdentifier","src":"8549:26:89"},"nativeSrc":"8549:71:89","nodeType":"YulFunctionCall","src":"8549:71:89"},"variables":[{"name":"tail_1","nativeSrc":"8539:6:89","nodeType":"YulTypedName","src":"8539:6:89","type":""}]},{"nativeSrc":"8633:88:89","nodeType":"YulVariableDeclaration","src":"8633:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"8703:2:89","nodeType":"YulIdentifier","src":"8703:2:89"},{"arguments":[{"name":"_1","nativeSrc":"8711:2:89","nodeType":"YulIdentifier","src":"8711:2:89"},{"kind":"number","nativeSrc":"8715:4:89","nodeType":"YulLiteral","src":"8715:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8707:3:89","nodeType":"YulIdentifier","src":"8707:3:89"},"nativeSrc":"8707:13:89","nodeType":"YulFunctionCall","src":"8707:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"8671:31:89","nodeType":"YulIdentifier","src":"8671:31:89"},"nativeSrc":"8671:50:89","nodeType":"YulFunctionCall","src":"8671:50:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"8637:14:89","nodeType":"YulTypedName","src":"8637:14:89","type":""},{"name":"memberValue1_1","nativeSrc":"8653:14:89","nodeType":"YulTypedName","src":"8653:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"8745:4:89","nodeType":"YulIdentifier","src":"8745:4:89"},{"kind":"number","nativeSrc":"8751:4:89","nodeType":"YulLiteral","src":"8751:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8741:3:89","nodeType":"YulIdentifier","src":"8741:3:89"},"nativeSrc":"8741:15:89","nodeType":"YulFunctionCall","src":"8741:15:89"},{"arguments":[{"name":"tail_1","nativeSrc":"8762:6:89","nodeType":"YulIdentifier","src":"8762:6:89"},{"name":"tail","nativeSrc":"8770:4:89","nodeType":"YulIdentifier","src":"8770:4:89"}],"functionName":{"name":"sub","nativeSrc":"8758:3:89","nodeType":"YulIdentifier","src":"8758:3:89"},"nativeSrc":"8758:17:89","nodeType":"YulFunctionCall","src":"8758:17:89"}],"functionName":{"name":"mstore","nativeSrc":"8734:6:89","nodeType":"YulIdentifier","src":"8734:6:89"},"nativeSrc":"8734:42:89","nodeType":"YulFunctionCall","src":"8734:42:89"},"nativeSrc":"8734:42:89","nodeType":"YulExpressionStatement","src":"8734:42:89"},{"nativeSrc":"8789:80:89","nodeType":"YulVariableDeclaration","src":"8789:80:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"8830:14:89","nodeType":"YulIdentifier","src":"8830:14:89"},{"name":"memberValue1_1","nativeSrc":"8846:14:89","nodeType":"YulIdentifier","src":"8846:14:89"},{"name":"tail_1","nativeSrc":"8862:6:89","nodeType":"YulIdentifier","src":"8862:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8803:26:89","nodeType":"YulIdentifier","src":"8803:26:89"},"nativeSrc":"8803:66:89","nodeType":"YulFunctionCall","src":"8803:66:89"},"variables":[{"name":"tail_2","nativeSrc":"8793:6:89","nodeType":"YulTypedName","src":"8793:6:89","type":""}]},{"nativeSrc":"8882:88:89","nodeType":"YulVariableDeclaration","src":"8882:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"8952:2:89","nodeType":"YulIdentifier","src":"8952:2:89"},{"arguments":[{"name":"_1","nativeSrc":"8960:2:89","nodeType":"YulIdentifier","src":"8960:2:89"},{"kind":"number","nativeSrc":"8964:4:89","nodeType":"YulLiteral","src":"8964:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8956:3:89","nodeType":"YulIdentifier","src":"8956:3:89"},"nativeSrc":"8956:13:89","nodeType":"YulFunctionCall","src":"8956:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"8920:31:89","nodeType":"YulIdentifier","src":"8920:31:89"},"nativeSrc":"8920:50:89","nodeType":"YulFunctionCall","src":"8920:50:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"8886:14:89","nodeType":"YulTypedName","src":"8886:14:89","type":""},{"name":"memberValue1_2","nativeSrc":"8902:14:89","nodeType":"YulTypedName","src":"8902:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"8994:4:89","nodeType":"YulIdentifier","src":"8994:4:89"},{"kind":"number","nativeSrc":"9000:4:89","nodeType":"YulLiteral","src":"9000:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8990:3:89","nodeType":"YulIdentifier","src":"8990:3:89"},"nativeSrc":"8990:15:89","nodeType":"YulFunctionCall","src":"8990:15:89"},{"arguments":[{"name":"tail_2","nativeSrc":"9011:6:89","nodeType":"YulIdentifier","src":"9011:6:89"},{"name":"tail","nativeSrc":"9019:4:89","nodeType":"YulIdentifier","src":"9019:4:89"}],"functionName":{"name":"sub","nativeSrc":"9007:3:89","nodeType":"YulIdentifier","src":"9007:3:89"},"nativeSrc":"9007:17:89","nodeType":"YulFunctionCall","src":"9007:17:89"}],"functionName":{"name":"mstore","nativeSrc":"8983:6:89","nodeType":"YulIdentifier","src":"8983:6:89"},"nativeSrc":"8983:42:89","nodeType":"YulFunctionCall","src":"8983:42:89"},"nativeSrc":"8983:42:89","nodeType":"YulExpressionStatement","src":"8983:42:89"},{"nativeSrc":"9038:80:89","nodeType":"YulVariableDeclaration","src":"9038:80:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"9079:14:89","nodeType":"YulIdentifier","src":"9079:14:89"},{"name":"memberValue1_2","nativeSrc":"9095:14:89","nodeType":"YulIdentifier","src":"9095:14:89"},{"name":"tail_2","nativeSrc":"9111:6:89","nodeType":"YulIdentifier","src":"9111:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"9052:26:89","nodeType":"YulIdentifier","src":"9052:26:89"},"nativeSrc":"9052:66:89","nodeType":"YulFunctionCall","src":"9052:66:89"},"variables":[{"name":"tail_3","nativeSrc":"9042:6:89","nodeType":"YulTypedName","src":"9042:6:89","type":""}]},{"nativeSrc":"9131:88:89","nodeType":"YulVariableDeclaration","src":"9131:88:89","value":{"arguments":[{"name":"_1","nativeSrc":"9201:2:89","nodeType":"YulIdentifier","src":"9201:2:89"},{"arguments":[{"name":"_1","nativeSrc":"9209:2:89","nodeType":"YulIdentifier","src":"9209:2:89"},{"kind":"number","nativeSrc":"9213:4:89","nodeType":"YulLiteral","src":"9213:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9205:3:89","nodeType":"YulIdentifier","src":"9205:3:89"},"nativeSrc":"9205:13:89","nodeType":"YulFunctionCall","src":"9205:13:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"9169:31:89","nodeType":"YulIdentifier","src":"9169:31:89"},"nativeSrc":"9169:50:89","nodeType":"YulFunctionCall","src":"9169:50:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"9135:14:89","nodeType":"YulTypedName","src":"9135:14:89","type":""},{"name":"memberValue1_3","nativeSrc":"9151:14:89","nodeType":"YulTypedName","src":"9151:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"9243:4:89","nodeType":"YulIdentifier","src":"9243:4:89"},{"kind":"number","nativeSrc":"9249:4:89","nodeType":"YulLiteral","src":"9249:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9239:3:89","nodeType":"YulIdentifier","src":"9239:3:89"},"nativeSrc":"9239:15:89","nodeType":"YulFunctionCall","src":"9239:15:89"},{"arguments":[{"name":"tail_3","nativeSrc":"9260:6:89","nodeType":"YulIdentifier","src":"9260:6:89"},{"name":"tail","nativeSrc":"9268:4:89","nodeType":"YulIdentifier","src":"9268:4:89"}],"functionName":{"name":"sub","nativeSrc":"9256:3:89","nodeType":"YulIdentifier","src":"9256:3:89"},"nativeSrc":"9256:17:89","nodeType":"YulFunctionCall","src":"9256:17:89"}],"functionName":{"name":"mstore","nativeSrc":"9232:6:89","nodeType":"YulIdentifier","src":"9232:6:89"},"nativeSrc":"9232:42:89","nodeType":"YulFunctionCall","src":"9232:42:89"},"nativeSrc":"9232:42:89","nodeType":"YulExpressionStatement","src":"9232:42:89"},{"nativeSrc":"9287:74:89","nodeType":"YulAssignment","src":"9287:74:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"9322:14:89","nodeType":"YulIdentifier","src":"9322:14:89"},{"name":"memberValue1_3","nativeSrc":"9338:14:89","nodeType":"YulIdentifier","src":"9338:14:89"},{"name":"tail_3","nativeSrc":"9354:6:89","nodeType":"YulIdentifier","src":"9354:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"9295:26:89","nodeType":"YulIdentifier","src":"9295:26:89"},"nativeSrc":"9295:66:89","nodeType":"YulFunctionCall","src":"9295:66:89"},"variableNames":[{"name":"tail","nativeSrc":"9287:4:89","nodeType":"YulIdentifier","src":"9287:4:89"}]},{"nativeSrc":"9374:27:89","nodeType":"YulAssignment","src":"9374:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"9388:6:89","nodeType":"YulIdentifier","src":"9388:6:89"},{"kind":"number","nativeSrc":"9396:4:89","nodeType":"YulLiteral","src":"9396:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9384:3:89","nodeType":"YulIdentifier","src":"9384:3:89"},"nativeSrc":"9384:17:89","nodeType":"YulFunctionCall","src":"9384:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"9374:6:89","nodeType":"YulIdentifier","src":"9374:6:89"}]},{"nativeSrc":"9414:21:89","nodeType":"YulAssignment","src":"9414:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"9425:3:89","nodeType":"YulIdentifier","src":"9425:3:89"},{"kind":"number","nativeSrc":"9430:4:89","nodeType":"YulLiteral","src":"9430:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9421:3:89","nodeType":"YulIdentifier","src":"9421:3:89"},"nativeSrc":"9421:14:89","nodeType":"YulFunctionCall","src":"9421:14:89"},"variableNames":[{"name":"pos","nativeSrc":"9414:3:89","nodeType":"YulIdentifier","src":"9414:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8231:1:89","nodeType":"YulIdentifier","src":"8231:1:89"},{"name":"length","nativeSrc":"8234:6:89","nodeType":"YulIdentifier","src":"8234:6:89"}],"functionName":{"name":"lt","nativeSrc":"8228:2:89","nodeType":"YulIdentifier","src":"8228:2:89"},"nativeSrc":"8228:13:89","nodeType":"YulFunctionCall","src":"8228:13:89"},"nativeSrc":"8220:1225:89","nodeType":"YulForLoop","post":{"nativeSrc":"8242:18:89","nodeType":"YulBlock","src":"8242:18:89","statements":[{"nativeSrc":"8244:14:89","nodeType":"YulAssignment","src":"8244:14:89","value":{"arguments":[{"name":"i","nativeSrc":"8253:1:89","nodeType":"YulIdentifier","src":"8253:1:89"},{"kind":"number","nativeSrc":"8256:1:89","nodeType":"YulLiteral","src":"8256:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8249:3:89","nodeType":"YulIdentifier","src":"8249:3:89"},"nativeSrc":"8249:9:89","nodeType":"YulFunctionCall","src":"8249:9:89"},"variableNames":[{"name":"i","nativeSrc":"8244:1:89","nodeType":"YulIdentifier","src":"8244:1:89"}]}]},"pre":{"nativeSrc":"8224:3:89","nodeType":"YulBlock","src":"8224:3:89","statements":[]},"src":"8220:1225:89"},{"nativeSrc":"9454:11:89","nodeType":"YulAssignment","src":"9454:11:89","value":{"name":"tail","nativeSrc":"9461:4:89","nodeType":"YulIdentifier","src":"9461:4:89"},"variableNames":[{"name":"end","nativeSrc":"9454:3:89","nodeType":"YulIdentifier","src":"9454:3:89"}]}]},"name":"abi_encode_array_struct_NFTInfo_calldata_dyn_calldata","nativeSrc":"7928:1543:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7991:5:89","nodeType":"YulTypedName","src":"7991:5:89","type":""},{"name":"length","nativeSrc":"7998:6:89","nodeType":"YulTypedName","src":"7998:6:89","type":""},{"name":"pos","nativeSrc":"8006:3:89","nodeType":"YulTypedName","src":"8006:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8014:3:89","nodeType":"YulTypedName","src":"8014:3:89","type":""}],"src":"7928:1543:89"},{"body":{"nativeSrc":"9639:3674:89","nodeType":"YulBlock","src":"9639:3674:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9656:9:89","nodeType":"YulIdentifier","src":"9656:9:89"},{"kind":"number","nativeSrc":"9667:2:89","nodeType":"YulLiteral","src":"9667:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9649:6:89","nodeType":"YulIdentifier","src":"9649:6:89"},"nativeSrc":"9649:21:89","nodeType":"YulFunctionCall","src":"9649:21:89"},"nativeSrc":"9649:21:89","nodeType":"YulExpressionStatement","src":"9649:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9715:6:89","nodeType":"YulIdentifier","src":"9715:6:89"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"9697:17:89","nodeType":"YulIdentifier","src":"9697:17:89"},"nativeSrc":"9697:25:89","nodeType":"YulFunctionCall","src":"9697:25:89"},{"arguments":[{"name":"headStart","nativeSrc":"9728:9:89","nodeType":"YulIdentifier","src":"9728:9:89"},{"kind":"number","nativeSrc":"9739:2:89","nodeType":"YulLiteral","src":"9739:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9724:3:89","nodeType":"YulIdentifier","src":"9724:3:89"},"nativeSrc":"9724:18:89","nodeType":"YulFunctionCall","src":"9724:18:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"9679:17:89","nodeType":"YulIdentifier","src":"9679:17:89"},"nativeSrc":"9679:64:89","nodeType":"YulFunctionCall","src":"9679:64:89"},"nativeSrc":"9679:64:89","nodeType":"YulExpressionStatement","src":"9679:64:89"},{"nativeSrc":"9752:54:89","nodeType":"YulVariableDeclaration","src":"9752:54:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9794:6:89","nodeType":"YulIdentifier","src":"9794:6:89"},{"kind":"number","nativeSrc":"9802:2:89","nodeType":"YulLiteral","src":"9802:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9790:3:89","nodeType":"YulIdentifier","src":"9790:3:89"},"nativeSrc":"9790:15:89","nodeType":"YulFunctionCall","src":"9790:15:89"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"9772:17:89","nodeType":"YulIdentifier","src":"9772:17:89"},"nativeSrc":"9772:34:89","nodeType":"YulFunctionCall","src":"9772:34:89"},"variables":[{"name":"memberValue0","nativeSrc":"9756:12:89","nodeType":"YulTypedName","src":"9756:12:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"9833:12:89","nodeType":"YulIdentifier","src":"9833:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"9851:9:89","nodeType":"YulIdentifier","src":"9851:9:89"},{"kind":"number","nativeSrc":"9862:2:89","nodeType":"YulLiteral","src":"9862:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9847:3:89","nodeType":"YulIdentifier","src":"9847:3:89"},"nativeSrc":"9847:18:89","nodeType":"YulFunctionCall","src":"9847:18:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"9815:17:89","nodeType":"YulIdentifier","src":"9815:17:89"},"nativeSrc":"9815:51:89","nodeType":"YulFunctionCall","src":"9815:51:89"},"nativeSrc":"9815:51:89","nodeType":"YulExpressionStatement","src":"9815:51:89"},{"nativeSrc":"9875:14:89","nodeType":"YulVariableDeclaration","src":"9875:14:89","value":{"kind":"number","nativeSrc":"9888:1:89","nodeType":"YulLiteral","src":"9888:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"9879:5:89","nodeType":"YulTypedName","src":"9879:5:89","type":""}]},{"nativeSrc":"9898:38:89","nodeType":"YulAssignment","src":"9898:38:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9924:6:89","nodeType":"YulIdentifier","src":"9924:6:89"},{"kind":"number","nativeSrc":"9932:2:89","nodeType":"YulLiteral","src":"9932:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9920:3:89","nodeType":"YulIdentifier","src":"9920:3:89"},"nativeSrc":"9920:15:89","nodeType":"YulFunctionCall","src":"9920:15:89"}],"functionName":{"name":"calldataload","nativeSrc":"9907:12:89","nodeType":"YulIdentifier","src":"9907:12:89"},"nativeSrc":"9907:29:89","nodeType":"YulFunctionCall","src":"9907:29:89"},"variableNames":[{"name":"value","nativeSrc":"9898:5:89","nodeType":"YulIdentifier","src":"9898:5:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9956:9:89","nodeType":"YulIdentifier","src":"9956:9:89"},{"kind":"number","nativeSrc":"9967:2:89","nodeType":"YulLiteral","src":"9967:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9952:3:89","nodeType":"YulIdentifier","src":"9952:3:89"},"nativeSrc":"9952:18:89","nodeType":"YulFunctionCall","src":"9952:18:89"},{"name":"value","nativeSrc":"9972:5:89","nodeType":"YulIdentifier","src":"9972:5:89"}],"functionName":{"name":"mstore","nativeSrc":"9945:6:89","nodeType":"YulIdentifier","src":"9945:6:89"},"nativeSrc":"9945:33:89","nodeType":"YulFunctionCall","src":"9945:33:89"},"nativeSrc":"9945:33:89","nodeType":"YulExpressionStatement","src":"9945:33:89"},{"nativeSrc":"9987:16:89","nodeType":"YulVariableDeclaration","src":"9987:16:89","value":{"kind":"number","nativeSrc":"10002:1:89","nodeType":"YulLiteral","src":"10002:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9991:7:89","nodeType":"YulTypedName","src":"9991:7:89","type":""}]},{"nativeSrc":"10012:40:89","nodeType":"YulAssignment","src":"10012:40:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10040:6:89","nodeType":"YulIdentifier","src":"10040:6:89"},{"kind":"number","nativeSrc":"10048:2:89","nodeType":"YulLiteral","src":"10048:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10036:3:89","nodeType":"YulIdentifier","src":"10036:3:89"},"nativeSrc":"10036:15:89","nodeType":"YulFunctionCall","src":"10036:15:89"}],"functionName":{"name":"calldataload","nativeSrc":"10023:12:89","nodeType":"YulIdentifier","src":"10023:12:89"},"nativeSrc":"10023:29:89","nodeType":"YulFunctionCall","src":"10023:29:89"},"variableNames":[{"name":"value_1","nativeSrc":"10012:7:89","nodeType":"YulIdentifier","src":"10012:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10072:9:89","nodeType":"YulIdentifier","src":"10072:9:89"},{"kind":"number","nativeSrc":"10083:3:89","nodeType":"YulLiteral","src":"10083:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10068:3:89","nodeType":"YulIdentifier","src":"10068:3:89"},"nativeSrc":"10068:19:89","nodeType":"YulFunctionCall","src":"10068:19:89"},{"name":"value_1","nativeSrc":"10089:7:89","nodeType":"YulIdentifier","src":"10089:7:89"}],"functionName":{"name":"mstore","nativeSrc":"10061:6:89","nodeType":"YulIdentifier","src":"10061:6:89"},"nativeSrc":"10061:36:89","nodeType":"YulFunctionCall","src":"10061:36:89"},"nativeSrc":"10061:36:89","nodeType":"YulExpressionStatement","src":"10061:36:89"},{"nativeSrc":"10106:58:89","nodeType":"YulVariableDeclaration","src":"10106:58:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10151:6:89","nodeType":"YulIdentifier","src":"10151:6:89"},{"kind":"number","nativeSrc":"10159:3:89","nodeType":"YulLiteral","src":"10159:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10147:3:89","nodeType":"YulIdentifier","src":"10147:3:89"},"nativeSrc":"10147:16:89","nodeType":"YulFunctionCall","src":"10147:16:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"10128:18:89","nodeType":"YulIdentifier","src":"10128:18:89"},"nativeSrc":"10128:36:89","nodeType":"YulFunctionCall","src":"10128:36:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"10110:14:89","nodeType":"YulTypedName","src":"10110:14:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"10192:14:89","nodeType":"YulIdentifier","src":"10192:14:89"},{"arguments":[{"name":"headStart","nativeSrc":"10212:9:89","nodeType":"YulIdentifier","src":"10212:9:89"},{"kind":"number","nativeSrc":"10223:3:89","nodeType":"YulLiteral","src":"10223:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"10208:3:89","nodeType":"YulIdentifier","src":"10208:3:89"},"nativeSrc":"10208:19:89","nodeType":"YulFunctionCall","src":"10208:19:89"}],"functionName":{"name":"abi_encode_address","nativeSrc":"10173:18:89","nodeType":"YulIdentifier","src":"10173:18:89"},"nativeSrc":"10173:55:89","nodeType":"YulFunctionCall","src":"10173:55:89"},"nativeSrc":"10173:55:89","nodeType":"YulExpressionStatement","src":"10173:55:89"},{"nativeSrc":"10237:93:89","nodeType":"YulVariableDeclaration","src":"10237:93:89","value":{"arguments":[{"name":"value0","nativeSrc":"10305:6:89","nodeType":"YulIdentifier","src":"10305:6:89"},{"arguments":[{"name":"value0","nativeSrc":"10317:6:89","nodeType":"YulIdentifier","src":"10317:6:89"},{"kind":"number","nativeSrc":"10325:3:89","nodeType":"YulLiteral","src":"10325:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"10313:3:89","nodeType":"YulIdentifier","src":"10313:3:89"},"nativeSrc":"10313:16:89","nodeType":"YulFunctionCall","src":"10313:16:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"10273:31:89","nodeType":"YulIdentifier","src":"10273:31:89"},"nativeSrc":"10273:57:89","nodeType":"YulFunctionCall","src":"10273:57:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"10241:14:89","nodeType":"YulTypedName","src":"10241:14:89","type":""},{"name":"memberValue1","nativeSrc":"10257:12:89","nodeType":"YulTypedName","src":"10257:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10350:9:89","nodeType":"YulIdentifier","src":"10350:9:89"},{"kind":"number","nativeSrc":"10361:3:89","nodeType":"YulLiteral","src":"10361:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"10346:3:89","nodeType":"YulIdentifier","src":"10346:3:89"},"nativeSrc":"10346:19:89","nodeType":"YulFunctionCall","src":"10346:19:89"},{"kind":"number","nativeSrc":"10367:6:89","nodeType":"YulLiteral","src":"10367:6:89","type":"","value":"0x0220"}],"functionName":{"name":"mstore","nativeSrc":"10339:6:89","nodeType":"YulIdentifier","src":"10339:6:89"},"nativeSrc":"10339:35:89","nodeType":"YulFunctionCall","src":"10339:35:89"},"nativeSrc":"10339:35:89","nodeType":"YulExpressionStatement","src":"10339:35:89"},{"nativeSrc":"10383:91:89","nodeType":"YulVariableDeclaration","src":"10383:91:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"10424:14:89","nodeType":"YulIdentifier","src":"10424:14:89"},{"name":"memberValue1","nativeSrc":"10440:12:89","nodeType":"YulIdentifier","src":"10440:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"10458:9:89","nodeType":"YulIdentifier","src":"10458:9:89"},{"kind":"number","nativeSrc":"10469:3:89","nodeType":"YulLiteral","src":"10469:3:89","type":"","value":"576"}],"functionName":{"name":"add","nativeSrc":"10454:3:89","nodeType":"YulIdentifier","src":"10454:3:89"},"nativeSrc":"10454:19:89","nodeType":"YulFunctionCall","src":"10454:19:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"10397:26:89","nodeType":"YulIdentifier","src":"10397:26:89"},"nativeSrc":"10397:77:89","nodeType":"YulFunctionCall","src":"10397:77:89"},"variables":[{"name":"tail_1","nativeSrc":"10387:6:89","nodeType":"YulTypedName","src":"10387:6:89","type":""}]},{"nativeSrc":"10483:95:89","nodeType":"YulVariableDeclaration","src":"10483:95:89","value":{"arguments":[{"name":"value0","nativeSrc":"10553:6:89","nodeType":"YulIdentifier","src":"10553:6:89"},{"arguments":[{"name":"value0","nativeSrc":"10565:6:89","nodeType":"YulIdentifier","src":"10565:6:89"},{"kind":"number","nativeSrc":"10573:3:89","nodeType":"YulLiteral","src":"10573:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"10561:3:89","nodeType":"YulIdentifier","src":"10561:3:89"},"nativeSrc":"10561:16:89","nodeType":"YulFunctionCall","src":"10561:16:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"10521:31:89","nodeType":"YulIdentifier","src":"10521:31:89"},"nativeSrc":"10521:57:89","nodeType":"YulFunctionCall","src":"10521:57:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"10487:14:89","nodeType":"YulTypedName","src":"10487:14:89","type":""},{"name":"memberValue1_1","nativeSrc":"10503:14:89","nodeType":"YulTypedName","src":"10503:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10598:9:89","nodeType":"YulIdentifier","src":"10598:9:89"},{"kind":"number","nativeSrc":"10609:3:89","nodeType":"YulLiteral","src":"10609:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"10594:3:89","nodeType":"YulIdentifier","src":"10594:3:89"},"nativeSrc":"10594:19:89","nodeType":"YulFunctionCall","src":"10594:19:89"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"10623:6:89","nodeType":"YulIdentifier","src":"10623:6:89"},{"name":"headStart","nativeSrc":"10631:9:89","nodeType":"YulIdentifier","src":"10631:9:89"}],"functionName":{"name":"sub","nativeSrc":"10619:3:89","nodeType":"YulIdentifier","src":"10619:3:89"},"nativeSrc":"10619:22:89","nodeType":"YulFunctionCall","src":"10619:22:89"},{"arguments":[{"kind":"number","nativeSrc":"10647:2:89","nodeType":"YulLiteral","src":"10647:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10643:3:89","nodeType":"YulIdentifier","src":"10643:3:89"},"nativeSrc":"10643:7:89","nodeType":"YulFunctionCall","src":"10643:7:89"}],"functionName":{"name":"add","nativeSrc":"10615:3:89","nodeType":"YulIdentifier","src":"10615:3:89"},"nativeSrc":"10615:36:89","nodeType":"YulFunctionCall","src":"10615:36:89"}],"functionName":{"name":"mstore","nativeSrc":"10587:6:89","nodeType":"YulIdentifier","src":"10587:6:89"},"nativeSrc":"10587:65:89","nodeType":"YulFunctionCall","src":"10587:65:89"},"nativeSrc":"10587:65:89","nodeType":"YulExpressionStatement","src":"10587:65:89"},{"nativeSrc":"10661:80:89","nodeType":"YulVariableDeclaration","src":"10661:80:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"10702:14:89","nodeType":"YulIdentifier","src":"10702:14:89"},{"name":"memberValue1_1","nativeSrc":"10718:14:89","nodeType":"YulIdentifier","src":"10718:14:89"},{"name":"tail_1","nativeSrc":"10734:6:89","nodeType":"YulIdentifier","src":"10734:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"10675:26:89","nodeType":"YulIdentifier","src":"10675:26:89"},"nativeSrc":"10675:66:89","nodeType":"YulFunctionCall","src":"10675:66:89"},"variables":[{"name":"tail_2","nativeSrc":"10665:6:89","nodeType":"YulTypedName","src":"10665:6:89","type":""}]},{"nativeSrc":"10750:95:89","nodeType":"YulVariableDeclaration","src":"10750:95:89","value":{"arguments":[{"name":"value0","nativeSrc":"10820:6:89","nodeType":"YulIdentifier","src":"10820:6:89"},{"arguments":[{"name":"value0","nativeSrc":"10832:6:89","nodeType":"YulIdentifier","src":"10832:6:89"},{"kind":"number","nativeSrc":"10840:3:89","nodeType":"YulLiteral","src":"10840:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"10828:3:89","nodeType":"YulIdentifier","src":"10828:3:89"},"nativeSrc":"10828:16:89","nodeType":"YulFunctionCall","src":"10828:16:89"}],"functionName":{"name":"calldata_access_string_calldata","nativeSrc":"10788:31:89","nodeType":"YulIdentifier","src":"10788:31:89"},"nativeSrc":"10788:57:89","nodeType":"YulFunctionCall","src":"10788:57:89"},"variables":[{"name":"memberValue0_4","nativeSrc":"10754:14:89","nodeType":"YulTypedName","src":"10754:14:89","type":""},{"name":"memberValue1_2","nativeSrc":"10770:14:89","nodeType":"YulTypedName","src":"10770:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10865:9:89","nodeType":"YulIdentifier","src":"10865:9:89"},{"kind":"number","nativeSrc":"10876:3:89","nodeType":"YulLiteral","src":"10876:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"10861:3:89","nodeType":"YulIdentifier","src":"10861:3:89"},"nativeSrc":"10861:19:89","nodeType":"YulFunctionCall","src":"10861:19:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"10890:6:89","nodeType":"YulIdentifier","src":"10890:6:89"},{"name":"headStart","nativeSrc":"10898:9:89","nodeType":"YulIdentifier","src":"10898:9:89"}],"functionName":{"name":"sub","nativeSrc":"10886:3:89","nodeType":"YulIdentifier","src":"10886:3:89"},"nativeSrc":"10886:22:89","nodeType":"YulFunctionCall","src":"10886:22:89"},{"arguments":[{"kind":"number","nativeSrc":"10914:2:89","nodeType":"YulLiteral","src":"10914:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10910:3:89","nodeType":"YulIdentifier","src":"10910:3:89"},"nativeSrc":"10910:7:89","nodeType":"YulFunctionCall","src":"10910:7:89"}],"functionName":{"name":"add","nativeSrc":"10882:3:89","nodeType":"YulIdentifier","src":"10882:3:89"},"nativeSrc":"10882:36:89","nodeType":"YulFunctionCall","src":"10882:36:89"}],"functionName":{"name":"mstore","nativeSrc":"10854:6:89","nodeType":"YulIdentifier","src":"10854:6:89"},"nativeSrc":"10854:65:89","nodeType":"YulFunctionCall","src":"10854:65:89"},"nativeSrc":"10854:65:89","nodeType":"YulExpressionStatement","src":"10854:65:89"},{"nativeSrc":"10928:80:89","nodeType":"YulVariableDeclaration","src":"10928:80:89","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"10969:14:89","nodeType":"YulIdentifier","src":"10969:14:89"},{"name":"memberValue1_2","nativeSrc":"10985:14:89","nodeType":"YulIdentifier","src":"10985:14:89"},{"name":"tail_2","nativeSrc":"11001:6:89","nodeType":"YulIdentifier","src":"11001:6:89"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"10942:26:89","nodeType":"YulIdentifier","src":"10942:26:89"},"nativeSrc":"10942:66:89","nodeType":"YulFunctionCall","src":"10942:66:89"},"variables":[{"name":"tail_3","nativeSrc":"10932:6:89","nodeType":"YulTypedName","src":"10932:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11060:6:89","nodeType":"YulIdentifier","src":"11060:6:89"},{"kind":"number","nativeSrc":"11068:3:89","nodeType":"YulLiteral","src":"11068:3:89","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"11056:3:89","nodeType":"YulIdentifier","src":"11056:3:89"},"nativeSrc":"11056:16:89","nodeType":"YulFunctionCall","src":"11056:16:89"},{"arguments":[{"name":"headStart","nativeSrc":"11078:9:89","nodeType":"YulIdentifier","src":"11078:9:89"},{"kind":"number","nativeSrc":"11089:3:89","nodeType":"YulLiteral","src":"11089:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"11074:3:89","nodeType":"YulIdentifier","src":"11074:3:89"},"nativeSrc":"11074:19:89","nodeType":"YulFunctionCall","src":"11074:19:89"}],"functionName":{"name":"abi_encode_struct_TokenAmount_calldata","nativeSrc":"11017:38:89","nodeType":"YulIdentifier","src":"11017:38:89"},"nativeSrc":"11017:77:89","nodeType":"YulFunctionCall","src":"11017:77:89"},"nativeSrc":"11017:77:89","nodeType":"YulExpressionStatement","src":"11017:77:89"},{"nativeSrc":"11103:109:89","nodeType":"YulVariableDeclaration","src":"11103:109:89","value":{"arguments":[{"name":"value0","nativeSrc":"11184:6:89","nodeType":"YulIdentifier","src":"11184:6:89"},{"arguments":[{"name":"value0","nativeSrc":"11196:6:89","nodeType":"YulIdentifier","src":"11196:6:89"},{"kind":"number","nativeSrc":"11204:6:89","nodeType":"YulLiteral","src":"11204:6:89","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"11192:3:89","nodeType":"YulIdentifier","src":"11192:3:89"},"nativeSrc":"11192:19:89","nodeType":"YulFunctionCall","src":"11192:19:89"}],"functionName":{"name":"calldata_access_array_address_dyn_calldata","nativeSrc":"11141:42:89","nodeType":"YulIdentifier","src":"11141:42:89"},"nativeSrc":"11141:71:89","nodeType":"YulFunctionCall","src":"11141:71:89"},"variables":[{"name":"memberValue0_5","nativeSrc":"11107:14:89","nodeType":"YulTypedName","src":"11107:14:89","type":""},{"name":"memberValue1_3","nativeSrc":"11123:14:89","nodeType":"YulTypedName","src":"11123:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11232:9:89","nodeType":"YulIdentifier","src":"11232:9:89"},{"kind":"number","nativeSrc":"11243:3:89","nodeType":"YulLiteral","src":"11243:3:89","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"11228:3:89","nodeType":"YulIdentifier","src":"11228:3:89"},"nativeSrc":"11228:19:89","nodeType":"YulFunctionCall","src":"11228:19:89"},{"arguments":[{"arguments":[{"name":"tail_3","nativeSrc":"11257:6:89","nodeType":"YulIdentifier","src":"11257:6:89"},{"name":"headStart","nativeSrc":"11265:9:89","nodeType":"YulIdentifier","src":"11265:9:89"}],"functionName":{"name":"sub","nativeSrc":"11253:3:89","nodeType":"YulIdentifier","src":"11253:3:89"},"nativeSrc":"11253:22:89","nodeType":"YulFunctionCall","src":"11253:22:89"},{"arguments":[{"kind":"number","nativeSrc":"11281:2:89","nodeType":"YulLiteral","src":"11281:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11277:3:89","nodeType":"YulIdentifier","src":"11277:3:89"},"nativeSrc":"11277:7:89","nodeType":"YulFunctionCall","src":"11277:7:89"}],"functionName":{"name":"add","nativeSrc":"11249:3:89","nodeType":"YulIdentifier","src":"11249:3:89"},"nativeSrc":"11249:36:89","nodeType":"YulFunctionCall","src":"11249:36:89"}],"functionName":{"name":"mstore","nativeSrc":"11221:6:89","nodeType":"YulIdentifier","src":"11221:6:89"},"nativeSrc":"11221:65:89","nodeType":"YulFunctionCall","src":"11221:65:89"},"nativeSrc":"11221:65:89","nodeType":"YulExpressionStatement","src":"11221:65:89"},{"nativeSrc":"11295:91:89","nodeType":"YulVariableDeclaration","src":"11295:91:89","value":{"arguments":[{"name":"memberValue0_5","nativeSrc":"11347:14:89","nodeType":"YulIdentifier","src":"11347:14:89"},{"name":"memberValue1_3","nativeSrc":"11363:14:89","nodeType":"YulIdentifier","src":"11363:14:89"},{"name":"tail_3","nativeSrc":"11379:6:89","nodeType":"YulIdentifier","src":"11379:6:89"}],"functionName":{"name":"abi_encode_array_address_dyn_calldata","nativeSrc":"11309:37:89","nodeType":"YulIdentifier","src":"11309:37:89"},"nativeSrc":"11309:77:89","nodeType":"YulFunctionCall","src":"11309:77:89"},"variables":[{"name":"tail_4","nativeSrc":"11299:6:89","nodeType":"YulTypedName","src":"11299:6:89","type":""}]},{"nativeSrc":"11395:126:89","nodeType":"YulVariableDeclaration","src":"11395:126:89","value":{"arguments":[{"name":"value0","nativeSrc":"11496:6:89","nodeType":"YulIdentifier","src":"11496:6:89"},{"arguments":[{"name":"value0","nativeSrc":"11508:6:89","nodeType":"YulIdentifier","src":"11508:6:89"},{"kind":"number","nativeSrc":"11516:3:89","nodeType":"YulLiteral","src":"11516:3:89","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"11504:3:89","nodeType":"YulIdentifier","src":"11504:3:89"},"nativeSrc":"11504:16:89","nodeType":"YulFunctionCall","src":"11504:16:89"}],"functionName":{"name":"calldata_access_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"11433:62:89","nodeType":"YulIdentifier","src":"11433:62:89"},"nativeSrc":"11433:88:89","nodeType":"YulFunctionCall","src":"11433:88:89"},"variables":[{"name":"memberValue0_6","nativeSrc":"11399:14:89","nodeType":"YulTypedName","src":"11399:14:89","type":""},{"name":"memberValue1_4","nativeSrc":"11415:14:89","nodeType":"YulTypedName","src":"11415:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11541:9:89","nodeType":"YulIdentifier","src":"11541:9:89"},{"kind":"number","nativeSrc":"11552:3:89","nodeType":"YulLiteral","src":"11552:3:89","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"11537:3:89","nodeType":"YulIdentifier","src":"11537:3:89"},"nativeSrc":"11537:19:89","nodeType":"YulFunctionCall","src":"11537:19:89"},{"arguments":[{"arguments":[{"name":"tail_4","nativeSrc":"11566:6:89","nodeType":"YulIdentifier","src":"11566:6:89"},{"name":"headStart","nativeSrc":"11574:9:89","nodeType":"YulIdentifier","src":"11574:9:89"}],"functionName":{"name":"sub","nativeSrc":"11562:3:89","nodeType":"YulIdentifier","src":"11562:3:89"},"nativeSrc":"11562:22:89","nodeType":"YulFunctionCall","src":"11562:22:89"},{"arguments":[{"kind":"number","nativeSrc":"11590:2:89","nodeType":"YulLiteral","src":"11590:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11586:3:89","nodeType":"YulIdentifier","src":"11586:3:89"},"nativeSrc":"11586:7:89","nodeType":"YulFunctionCall","src":"11586:7:89"}],"functionName":{"name":"add","nativeSrc":"11558:3:89","nodeType":"YulIdentifier","src":"11558:3:89"},"nativeSrc":"11558:36:89","nodeType":"YulFunctionCall","src":"11558:36:89"}],"functionName":{"name":"mstore","nativeSrc":"11530:6:89","nodeType":"YulIdentifier","src":"11530:6:89"},"nativeSrc":"11530:65:89","nodeType":"YulFunctionCall","src":"11530:65:89"},"nativeSrc":"11530:65:89","nodeType":"YulExpressionStatement","src":"11530:65:89"},{"nativeSrc":"11604:111:89","nodeType":"YulVariableDeclaration","src":"11604:111:89","value":{"arguments":[{"name":"memberValue0_6","nativeSrc":"11676:14:89","nodeType":"YulIdentifier","src":"11676:14:89"},{"name":"memberValue1_4","nativeSrc":"11692:14:89","nodeType":"YulIdentifier","src":"11692:14:89"},{"name":"tail_4","nativeSrc":"11708:6:89","nodeType":"YulIdentifier","src":"11708:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"11618:57:89","nodeType":"YulIdentifier","src":"11618:57:89"},"nativeSrc":"11618:97:89","nodeType":"YulFunctionCall","src":"11618:97:89"},"variables":[{"name":"tail_5","nativeSrc":"11608:6:89","nodeType":"YulTypedName","src":"11608:6:89","type":""}]},{"nativeSrc":"11724:126:89","nodeType":"YulVariableDeclaration","src":"11724:126:89","value":{"arguments":[{"name":"value0","nativeSrc":"11825:6:89","nodeType":"YulIdentifier","src":"11825:6:89"},{"arguments":[{"name":"value0","nativeSrc":"11837:6:89","nodeType":"YulIdentifier","src":"11837:6:89"},{"kind":"number","nativeSrc":"11845:3:89","nodeType":"YulLiteral","src":"11845:3:89","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"11833:3:89","nodeType":"YulIdentifier","src":"11833:3:89"},"nativeSrc":"11833:16:89","nodeType":"YulFunctionCall","src":"11833:16:89"}],"functionName":{"name":"calldata_access_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"11762:62:89","nodeType":"YulIdentifier","src":"11762:62:89"},"nativeSrc":"11762:88:89","nodeType":"YulFunctionCall","src":"11762:88:89"},"variables":[{"name":"memberValue0_7","nativeSrc":"11728:14:89","nodeType":"YulTypedName","src":"11728:14:89","type":""},{"name":"memberValue1_5","nativeSrc":"11744:14:89","nodeType":"YulTypedName","src":"11744:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11870:9:89","nodeType":"YulIdentifier","src":"11870:9:89"},{"kind":"number","nativeSrc":"11881:3:89","nodeType":"YulLiteral","src":"11881:3:89","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"11866:3:89","nodeType":"YulIdentifier","src":"11866:3:89"},"nativeSrc":"11866:19:89","nodeType":"YulFunctionCall","src":"11866:19:89"},{"arguments":[{"arguments":[{"name":"tail_5","nativeSrc":"11895:6:89","nodeType":"YulIdentifier","src":"11895:6:89"},{"name":"headStart","nativeSrc":"11903:9:89","nodeType":"YulIdentifier","src":"11903:9:89"}],"functionName":{"name":"sub","nativeSrc":"11891:3:89","nodeType":"YulIdentifier","src":"11891:3:89"},"nativeSrc":"11891:22:89","nodeType":"YulFunctionCall","src":"11891:22:89"},{"arguments":[{"kind":"number","nativeSrc":"11919:2:89","nodeType":"YulLiteral","src":"11919:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11915:3:89","nodeType":"YulIdentifier","src":"11915:3:89"},"nativeSrc":"11915:7:89","nodeType":"YulFunctionCall","src":"11915:7:89"}],"functionName":{"name":"add","nativeSrc":"11887:3:89","nodeType":"YulIdentifier","src":"11887:3:89"},"nativeSrc":"11887:36:89","nodeType":"YulFunctionCall","src":"11887:36:89"}],"functionName":{"name":"mstore","nativeSrc":"11859:6:89","nodeType":"YulIdentifier","src":"11859:6:89"},"nativeSrc":"11859:65:89","nodeType":"YulFunctionCall","src":"11859:65:89"},"nativeSrc":"11859:65:89","nodeType":"YulExpressionStatement","src":"11859:65:89"},{"nativeSrc":"11933:111:89","nodeType":"YulVariableDeclaration","src":"11933:111:89","value":{"arguments":[{"name":"memberValue0_7","nativeSrc":"12005:14:89","nodeType":"YulIdentifier","src":"12005:14:89"},{"name":"memberValue1_5","nativeSrc":"12021:14:89","nodeType":"YulIdentifier","src":"12021:14:89"},{"name":"tail_5","nativeSrc":"12037:6:89","nodeType":"YulIdentifier","src":"12037:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_calldata_dyn_calldata","nativeSrc":"11947:57:89","nodeType":"YulIdentifier","src":"11947:57:89"},"nativeSrc":"11947:97:89","nodeType":"YulFunctionCall","src":"11947:97:89"},"variables":[{"name":"tail_6","nativeSrc":"11937:6:89","nodeType":"YulTypedName","src":"11937:6:89","type":""}]},{"nativeSrc":"12053:106:89","nodeType":"YulVariableDeclaration","src":"12053:106:89","value":{"arguments":[{"name":"value0","nativeSrc":"12134:6:89","nodeType":"YulIdentifier","src":"12134:6:89"},{"arguments":[{"name":"value0","nativeSrc":"12146:6:89","nodeType":"YulIdentifier","src":"12146:6:89"},{"kind":"number","nativeSrc":"12154:3:89","nodeType":"YulLiteral","src":"12154:3:89","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"12142:3:89","nodeType":"YulIdentifier","src":"12142:3:89"},"nativeSrc":"12142:16:89","nodeType":"YulFunctionCall","src":"12142:16:89"}],"functionName":{"name":"calldata_access_array_address_dyn_calldata","nativeSrc":"12091:42:89","nodeType":"YulIdentifier","src":"12091:42:89"},"nativeSrc":"12091:68:89","nodeType":"YulFunctionCall","src":"12091:68:89"},"variables":[{"name":"memberValue0_8","nativeSrc":"12057:14:89","nodeType":"YulTypedName","src":"12057:14:89","type":""},{"name":"memberValue1_6","nativeSrc":"12073:14:89","nodeType":"YulTypedName","src":"12073:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12179:9:89","nodeType":"YulIdentifier","src":"12179:9:89"},{"kind":"number","nativeSrc":"12190:3:89","nodeType":"YulLiteral","src":"12190:3:89","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"12175:3:89","nodeType":"YulIdentifier","src":"12175:3:89"},"nativeSrc":"12175:19:89","nodeType":"YulFunctionCall","src":"12175:19:89"},{"arguments":[{"arguments":[{"name":"tail_6","nativeSrc":"12204:6:89","nodeType":"YulIdentifier","src":"12204:6:89"},{"name":"headStart","nativeSrc":"12212:9:89","nodeType":"YulIdentifier","src":"12212:9:89"}],"functionName":{"name":"sub","nativeSrc":"12200:3:89","nodeType":"YulIdentifier","src":"12200:3:89"},"nativeSrc":"12200:22:89","nodeType":"YulFunctionCall","src":"12200:22:89"},{"arguments":[{"kind":"number","nativeSrc":"12228:2:89","nodeType":"YulLiteral","src":"12228:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"12224:3:89","nodeType":"YulIdentifier","src":"12224:3:89"},"nativeSrc":"12224:7:89","nodeType":"YulFunctionCall","src":"12224:7:89"}],"functionName":{"name":"add","nativeSrc":"12196:3:89","nodeType":"YulIdentifier","src":"12196:3:89"},"nativeSrc":"12196:36:89","nodeType":"YulFunctionCall","src":"12196:36:89"}],"functionName":{"name":"mstore","nativeSrc":"12168:6:89","nodeType":"YulIdentifier","src":"12168:6:89"},"nativeSrc":"12168:65:89","nodeType":"YulFunctionCall","src":"12168:65:89"},"nativeSrc":"12168:65:89","nodeType":"YulExpressionStatement","src":"12168:65:89"},{"nativeSrc":"12242:109:89","nodeType":"YulVariableDeclaration","src":"12242:109:89","value":{"arguments":[{"name":"memberValue0_8","nativeSrc":"12312:14:89","nodeType":"YulIdentifier","src":"12312:14:89"},{"name":"memberValue1_6","nativeSrc":"12328:14:89","nodeType":"YulIdentifier","src":"12328:14:89"},{"name":"tail_6","nativeSrc":"12344:6:89","nodeType":"YulIdentifier","src":"12344:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenInfo_calldata_dyn_calldata","nativeSrc":"12256:55:89","nodeType":"YulIdentifier","src":"12256:55:89"},"nativeSrc":"12256:95:89","nodeType":"YulFunctionCall","src":"12256:95:89"},"variables":[{"name":"tail_7","nativeSrc":"12246:6:89","nodeType":"YulTypedName","src":"12246:6:89","type":""}]},{"nativeSrc":"12360:124:89","nodeType":"YulVariableDeclaration","src":"12360:124:89","value":{"arguments":[{"name":"value0","nativeSrc":"12459:6:89","nodeType":"YulIdentifier","src":"12459:6:89"},{"arguments":[{"name":"value0","nativeSrc":"12471:6:89","nodeType":"YulIdentifier","src":"12471:6:89"},{"kind":"number","nativeSrc":"12479:3:89","nodeType":"YulLiteral","src":"12479:3:89","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"12467:3:89","nodeType":"YulIdentifier","src":"12467:3:89"},"nativeSrc":"12467:16:89","nodeType":"YulFunctionCall","src":"12467:16:89"}],"functionName":{"name":"calldata_access_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"12398:60:89","nodeType":"YulIdentifier","src":"12398:60:89"},"nativeSrc":"12398:86:89","nodeType":"YulFunctionCall","src":"12398:86:89"},"variables":[{"name":"memberValue0_9","nativeSrc":"12364:14:89","nodeType":"YulTypedName","src":"12364:14:89","type":""},{"name":"memberValue1_7","nativeSrc":"12380:14:89","nodeType":"YulTypedName","src":"12380:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12504:9:89","nodeType":"YulIdentifier","src":"12504:9:89"},{"kind":"number","nativeSrc":"12515:3:89","nodeType":"YulLiteral","src":"12515:3:89","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"12500:3:89","nodeType":"YulIdentifier","src":"12500:3:89"},"nativeSrc":"12500:19:89","nodeType":"YulFunctionCall","src":"12500:19:89"},{"arguments":[{"arguments":[{"name":"tail_7","nativeSrc":"12529:6:89","nodeType":"YulIdentifier","src":"12529:6:89"},{"name":"headStart","nativeSrc":"12537:9:89","nodeType":"YulIdentifier","src":"12537:9:89"}],"functionName":{"name":"sub","nativeSrc":"12525:3:89","nodeType":"YulIdentifier","src":"12525:3:89"},"nativeSrc":"12525:22:89","nodeType":"YulFunctionCall","src":"12525:22:89"},{"arguments":[{"kind":"number","nativeSrc":"12553:2:89","nodeType":"YulLiteral","src":"12553:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"12549:3:89","nodeType":"YulIdentifier","src":"12549:3:89"},"nativeSrc":"12549:7:89","nodeType":"YulFunctionCall","src":"12549:7:89"}],"functionName":{"name":"add","nativeSrc":"12521:3:89","nodeType":"YulIdentifier","src":"12521:3:89"},"nativeSrc":"12521:36:89","nodeType":"YulFunctionCall","src":"12521:36:89"}],"functionName":{"name":"mstore","nativeSrc":"12493:6:89","nodeType":"YulIdentifier","src":"12493:6:89"},"nativeSrc":"12493:65:89","nodeType":"YulFunctionCall","src":"12493:65:89"},"nativeSrc":"12493:65:89","nodeType":"YulExpressionStatement","src":"12493:65:89"},{"nativeSrc":"12567:109:89","nodeType":"YulVariableDeclaration","src":"12567:109:89","value":{"arguments":[{"name":"memberValue0_9","nativeSrc":"12637:14:89","nodeType":"YulIdentifier","src":"12637:14:89"},{"name":"memberValue1_7","nativeSrc":"12653:14:89","nodeType":"YulIdentifier","src":"12653:14:89"},{"name":"tail_7","nativeSrc":"12669:6:89","nodeType":"YulIdentifier","src":"12669:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"12581:55:89","nodeType":"YulIdentifier","src":"12581:55:89"},"nativeSrc":"12581:95:89","nodeType":"YulFunctionCall","src":"12581:95:89"},"variables":[{"name":"tail_8","nativeSrc":"12571:6:89","nodeType":"YulTypedName","src":"12571:6:89","type":""}]},{"nativeSrc":"12685:125:89","nodeType":"YulVariableDeclaration","src":"12685:125:89","value":{"arguments":[{"name":"value0","nativeSrc":"12785:6:89","nodeType":"YulIdentifier","src":"12785:6:89"},{"arguments":[{"name":"value0","nativeSrc":"12797:6:89","nodeType":"YulIdentifier","src":"12797:6:89"},{"kind":"number","nativeSrc":"12805:3:89","nodeType":"YulLiteral","src":"12805:3:89","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"12793:3:89","nodeType":"YulIdentifier","src":"12793:3:89"},"nativeSrc":"12793:16:89","nodeType":"YulFunctionCall","src":"12793:16:89"}],"functionName":{"name":"calldata_access_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"12724:60:89","nodeType":"YulIdentifier","src":"12724:60:89"},"nativeSrc":"12724:86:89","nodeType":"YulFunctionCall","src":"12724:86:89"},"variables":[{"name":"memberValue0_10","nativeSrc":"12689:15:89","nodeType":"YulTypedName","src":"12689:15:89","type":""},{"name":"memberValue1_8","nativeSrc":"12706:14:89","nodeType":"YulTypedName","src":"12706:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12830:9:89","nodeType":"YulIdentifier","src":"12830:9:89"},{"kind":"number","nativeSrc":"12841:3:89","nodeType":"YulLiteral","src":"12841:3:89","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"12826:3:89","nodeType":"YulIdentifier","src":"12826:3:89"},"nativeSrc":"12826:19:89","nodeType":"YulFunctionCall","src":"12826:19:89"},{"arguments":[{"arguments":[{"name":"tail_8","nativeSrc":"12855:6:89","nodeType":"YulIdentifier","src":"12855:6:89"},{"name":"headStart","nativeSrc":"12863:9:89","nodeType":"YulIdentifier","src":"12863:9:89"}],"functionName":{"name":"sub","nativeSrc":"12851:3:89","nodeType":"YulIdentifier","src":"12851:3:89"},"nativeSrc":"12851:22:89","nodeType":"YulFunctionCall","src":"12851:22:89"},{"arguments":[{"kind":"number","nativeSrc":"12879:2:89","nodeType":"YulLiteral","src":"12879:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"12875:3:89","nodeType":"YulIdentifier","src":"12875:3:89"},"nativeSrc":"12875:7:89","nodeType":"YulFunctionCall","src":"12875:7:89"}],"functionName":{"name":"add","nativeSrc":"12847:3:89","nodeType":"YulIdentifier","src":"12847:3:89"},"nativeSrc":"12847:36:89","nodeType":"YulFunctionCall","src":"12847:36:89"}],"functionName":{"name":"mstore","nativeSrc":"12819:6:89","nodeType":"YulIdentifier","src":"12819:6:89"},"nativeSrc":"12819:65:89","nodeType":"YulFunctionCall","src":"12819:65:89"},"nativeSrc":"12819:65:89","nodeType":"YulExpressionStatement","src":"12819:65:89"},{"nativeSrc":"12893:110:89","nodeType":"YulVariableDeclaration","src":"12893:110:89","value":{"arguments":[{"name":"memberValue0_10","nativeSrc":"12963:15:89","nodeType":"YulIdentifier","src":"12963:15:89"},{"name":"memberValue1_8","nativeSrc":"12980:14:89","nodeType":"YulIdentifier","src":"12980:14:89"},{"name":"tail_8","nativeSrc":"12996:6:89","nodeType":"YulIdentifier","src":"12996:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_calldata_dyn_calldata","nativeSrc":"12907:55:89","nodeType":"YulIdentifier","src":"12907:55:89"},"nativeSrc":"12907:96:89","nodeType":"YulFunctionCall","src":"12907:96:89"},"variables":[{"name":"tail_9","nativeSrc":"12897:6:89","nodeType":"YulTypedName","src":"12897:6:89","type":""}]},{"nativeSrc":"13012:107:89","nodeType":"YulVariableDeclaration","src":"13012:107:89","value":{"arguments":[{"name":"value0","nativeSrc":"13094:6:89","nodeType":"YulIdentifier","src":"13094:6:89"},{"arguments":[{"name":"value0","nativeSrc":"13106:6:89","nodeType":"YulIdentifier","src":"13106:6:89"},{"kind":"number","nativeSrc":"13114:3:89","nodeType":"YulLiteral","src":"13114:3:89","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"13102:3:89","nodeType":"YulIdentifier","src":"13102:3:89"},"nativeSrc":"13102:16:89","nodeType":"YulFunctionCall","src":"13102:16:89"}],"functionName":{"name":"calldata_access_array_address_dyn_calldata","nativeSrc":"13051:42:89","nodeType":"YulIdentifier","src":"13051:42:89"},"nativeSrc":"13051:68:89","nodeType":"YulFunctionCall","src":"13051:68:89"},"variables":[{"name":"memberValue0_11","nativeSrc":"13016:15:89","nodeType":"YulTypedName","src":"13016:15:89","type":""},{"name":"memberValue1_9","nativeSrc":"13033:14:89","nodeType":"YulTypedName","src":"13033:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13139:9:89","nodeType":"YulIdentifier","src":"13139:9:89"},{"kind":"number","nativeSrc":"13150:6:89","nodeType":"YulLiteral","src":"13150:6:89","type":"","value":"0x0220"}],"functionName":{"name":"add","nativeSrc":"13135:3:89","nodeType":"YulIdentifier","src":"13135:3:89"},"nativeSrc":"13135:22:89","nodeType":"YulFunctionCall","src":"13135:22:89"},{"arguments":[{"arguments":[{"name":"tail_9","nativeSrc":"13167:6:89","nodeType":"YulIdentifier","src":"13167:6:89"},{"name":"headStart","nativeSrc":"13175:9:89","nodeType":"YulIdentifier","src":"13175:9:89"}],"functionName":{"name":"sub","nativeSrc":"13163:3:89","nodeType":"YulIdentifier","src":"13163:3:89"},"nativeSrc":"13163:22:89","nodeType":"YulFunctionCall","src":"13163:22:89"},{"arguments":[{"kind":"number","nativeSrc":"13191:2:89","nodeType":"YulLiteral","src":"13191:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"13187:3:89","nodeType":"YulIdentifier","src":"13187:3:89"},"nativeSrc":"13187:7:89","nodeType":"YulFunctionCall","src":"13187:7:89"}],"functionName":{"name":"add","nativeSrc":"13159:3:89","nodeType":"YulIdentifier","src":"13159:3:89"},"nativeSrc":"13159:36:89","nodeType":"YulFunctionCall","src":"13159:36:89"}],"functionName":{"name":"mstore","nativeSrc":"13128:6:89","nodeType":"YulIdentifier","src":"13128:6:89"},"nativeSrc":"13128:68:89","nodeType":"YulFunctionCall","src":"13128:68:89"},"nativeSrc":"13128:68:89","nodeType":"YulExpressionStatement","src":"13128:68:89"},{"nativeSrc":"13205:102:89","nodeType":"YulAssignment","src":"13205:102:89","value":{"arguments":[{"name":"memberValue0_11","nativeSrc":"13267:15:89","nodeType":"YulIdentifier","src":"13267:15:89"},{"name":"memberValue1_9","nativeSrc":"13284:14:89","nodeType":"YulIdentifier","src":"13284:14:89"},{"name":"tail_9","nativeSrc":"13300:6:89","nodeType":"YulIdentifier","src":"13300:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTInfo_calldata_dyn_calldata","nativeSrc":"13213:53:89","nodeType":"YulIdentifier","src":"13213:53:89"},"nativeSrc":"13213:94:89","nodeType":"YulFunctionCall","src":"13213:94:89"},"variableNames":[{"name":"tail","nativeSrc":"13205:4:89","nodeType":"YulIdentifier","src":"13205:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_InMessageV1_$16055_calldata_ptr__to_t_struct$_InMessageV1_$16055_memory_ptr__fromStack_reversed","nativeSrc":"9476:3837:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9608:9:89","nodeType":"YulTypedName","src":"9608:9:89","type":""},{"name":"value0","nativeSrc":"9619:6:89","nodeType":"YulTypedName","src":"9619:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9630:4:89","nodeType":"YulTypedName","src":"9630:4:89","type":""}],"src":"9476:3837:89"},{"body":{"nativeSrc":"13437:63:89","nodeType":"YulBlock","src":"13437:63:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13454:3:89","nodeType":"YulIdentifier","src":"13454:3:89"},{"name":"value0","nativeSrc":"13459:6:89","nodeType":"YulIdentifier","src":"13459:6:89"}],"functionName":{"name":"mstore","nativeSrc":"13447:6:89","nodeType":"YulIdentifier","src":"13447:6:89"},"nativeSrc":"13447:19:89","nodeType":"YulFunctionCall","src":"13447:19:89"},"nativeSrc":"13447:19:89","nodeType":"YulExpressionStatement","src":"13447:19:89"},{"nativeSrc":"13475:19:89","nodeType":"YulAssignment","src":"13475:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"13486:3:89","nodeType":"YulIdentifier","src":"13486:3:89"},{"kind":"number","nativeSrc":"13491:2:89","nodeType":"YulLiteral","src":"13491:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13482:3:89","nodeType":"YulIdentifier","src":"13482:3:89"},"nativeSrc":"13482:12:89","nodeType":"YulFunctionCall","src":"13482:12:89"},"variableNames":[{"name":"end","nativeSrc":"13475:3:89","nodeType":"YulIdentifier","src":"13475:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"13318:182:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13413:3:89","nodeType":"YulTypedName","src":"13413:3:89","type":""},{"name":"value0","nativeSrc":"13418:6:89","nodeType":"YulTypedName","src":"13418:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13429:3:89","nodeType":"YulTypedName","src":"13429:3:89","type":""}],"src":"13318:182:89"},{"body":{"nativeSrc":"13537:95:89","nodeType":"YulBlock","src":"13537:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13554:1:89","nodeType":"YulLiteral","src":"13554:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"13561:3:89","nodeType":"YulLiteral","src":"13561:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"13566:10:89","nodeType":"YulLiteral","src":"13566:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"13557:3:89","nodeType":"YulIdentifier","src":"13557:3:89"},"nativeSrc":"13557:20:89","nodeType":"YulFunctionCall","src":"13557:20:89"}],"functionName":{"name":"mstore","nativeSrc":"13547:6:89","nodeType":"YulIdentifier","src":"13547:6:89"},"nativeSrc":"13547:31:89","nodeType":"YulFunctionCall","src":"13547:31:89"},"nativeSrc":"13547:31:89","nodeType":"YulExpressionStatement","src":"13547:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13594:1:89","nodeType":"YulLiteral","src":"13594:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"13597:4:89","nodeType":"YulLiteral","src":"13597:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"13587:6:89","nodeType":"YulIdentifier","src":"13587:6:89"},"nativeSrc":"13587:15:89","nodeType":"YulFunctionCall","src":"13587:15:89"},"nativeSrc":"13587:15:89","nodeType":"YulExpressionStatement","src":"13587:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13618:1:89","nodeType":"YulLiteral","src":"13618:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13621:4:89","nodeType":"YulLiteral","src":"13621:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"13611:6:89","nodeType":"YulIdentifier","src":"13611:6:89"},"nativeSrc":"13611:15:89","nodeType":"YulFunctionCall","src":"13611:15:89"},"nativeSrc":"13611:15:89","nodeType":"YulExpressionStatement","src":"13611:15:89"}]},"name":"panic_error_0x32","nativeSrc":"13505:127:89","nodeType":"YulFunctionDefinition","src":"13505:127:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_struct$_InMessageV1_$16055_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 544) { revert(0, 0) }\n        value0 := _1\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bytes32t_array$_t_bytes32_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if gt(add(add(_1, shl(5, length)), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_1, 32)\n        value2 := length\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_encode_uint64(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffff))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_encode_address(value, pos)\n    {\n        mstore(pos, and(value, sub(shl(160, 1), 1)))\n    }\n    function calldata_access_string_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(value, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_struct_TokenAmount_calldata(value, pos)\n    {\n        mstore(pos, and(abi_decode_address(value), sub(shl(160, 1), 1)))\n        let value_1 := 0\n        value_1 := calldataload(add(value, 0x20))\n        mstore(add(pos, 0x20), value_1)\n    }\n    function calldata_access_array_address_dyn_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(value, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n    }\n    function abi_encode_array_address_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(abi_decode_address(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, 0x20)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function calldata_access_array_struct_TokenAmount_calldata_dyn_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(value, sub(calldatasize(), shl(6, length))) { revert(0, 0) }\n    }\n    function abi_encode_array_struct_TokenAmount_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            abi_encode_struct_TokenAmount_calldata(srcPtr, pos)\n            pos := add(pos, 0x40)\n            srcPtr := add(srcPtr, 0x40)\n        }\n        end := pos\n    }\n    function calldata_access_struct_TokenInfo_calldata(base_ref, ptr) -> value\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(126)))) { revert(0, 0) }\n        value := add(rel_offset_of_tail, base_ref)\n    }\n    function abi_encode_array_struct_TokenInfo_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        let pos_1 := pos\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            let _1 := calldata_access_struct_TokenInfo_calldata(value, srcPtr)\n            let memberValue0, memberValue1 := calldata_access_string_calldata(_1, _1)\n            mstore(tail, 0x80)\n            let tail_1 := abi_encode_string_calldata(memberValue0, memberValue1, add(tail, 0x80))\n            let memberValue0_1, memberValue1_1 := calldata_access_string_calldata(_1, add(_1, 0x20))\n            mstore(add(tail, 0x20), sub(tail_1, tail))\n            let tail_2 := abi_encode_string_calldata(memberValue0_1, memberValue1_1, tail_1)\n            let value_1 := calldataload(add(_1, 0x40))\n            let _2 := and(value_1, 0xff)\n            if iszero(eq(value_1, _2)) { revert(0, 0) }\n            mstore(add(tail, 0x40), _2)\n            let memberValue0_2, memberValue1_2 := calldata_access_string_calldata(_1, add(_1, 0x60))\n            mstore(add(tail, 0x60), sub(tail_2, tail))\n            tail := abi_encode_string_calldata(memberValue0_2, memberValue1_2, tail_2)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function calldata_access_array_struct_NFTAmount_calldata_dyn_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(value, sub(calldatasize(), mul(length, 0x60))) { revert(0, 0) }\n    }\n    function abi_encode_array_struct_NFTAmount_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(abi_decode_address(srcPtr), sub(shl(160, 1), 1)))\n            let value_1 := 0\n            value_1 := calldataload(add(srcPtr, 0x20))\n            mstore(add(pos, 0x20), value_1)\n            let value_2 := 0\n            value_2 := calldataload(add(srcPtr, 0x40))\n            mstore(add(pos, 0x40), value_2)\n            pos := add(pos, 0x60)\n            srcPtr := add(srcPtr, 0x60)\n        }\n        end := pos\n    }\n    function abi_encode_array_struct_NFTInfo_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        let pos_1 := pos\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            let _1 := calldata_access_struct_TokenInfo_calldata(value, srcPtr)\n            let memberValue0, memberValue1 := calldata_access_string_calldata(_1, _1)\n            mstore(tail, 0x80)\n            let tail_1 := abi_encode_string_calldata(memberValue0, memberValue1, add(tail, 0x80))\n            let memberValue0_1, memberValue1_1 := calldata_access_string_calldata(_1, add(_1, 0x20))\n            mstore(add(tail, 0x20), sub(tail_1, tail))\n            let tail_2 := abi_encode_string_calldata(memberValue0_1, memberValue1_1, tail_1)\n            let memberValue0_2, memberValue1_2 := calldata_access_string_calldata(_1, add(_1, 0x40))\n            mstore(add(tail, 0x40), sub(tail_2, tail))\n            let tail_3 := abi_encode_string_calldata(memberValue0_2, memberValue1_2, tail_2)\n            let memberValue0_3, memberValue1_3 := calldata_access_string_calldata(_1, add(_1, 0x60))\n            mstore(add(tail, 0x60), sub(tail_3, tail))\n            tail := abi_encode_string_calldata(memberValue0_3, memberValue1_3, tail_3)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_struct$_InMessageV1_$16055_calldata_ptr__to_t_struct$_InMessageV1_$16055_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        abi_encode_uint64(abi_decode_uint64(value0), add(headStart, 32))\n        let memberValue0 := abi_decode_uint64(add(value0, 32))\n        abi_encode_uint64(memberValue0, add(headStart, 64))\n        let value := 0\n        value := calldataload(add(value0, 64))\n        mstore(add(headStart, 96), value)\n        let value_1 := 0\n        value_1 := calldataload(add(value0, 96))\n        mstore(add(headStart, 128), value_1)\n        let memberValue0_1 := abi_decode_address(add(value0, 128))\n        abi_encode_address(memberValue0_1, add(headStart, 160))\n        let memberValue0_2, memberValue1 := calldata_access_string_calldata(value0, add(value0, 160))\n        mstore(add(headStart, 192), 0x0220)\n        let tail_1 := abi_encode_string_calldata(memberValue0_2, memberValue1, add(headStart, 576))\n        let memberValue0_3, memberValue1_1 := calldata_access_string_calldata(value0, add(value0, 192))\n        mstore(add(headStart, 224), add(sub(tail_1, headStart), not(31)))\n        let tail_2 := abi_encode_string_calldata(memberValue0_3, memberValue1_1, tail_1)\n        let memberValue0_4, memberValue1_2 := calldata_access_string_calldata(value0, add(value0, 224))\n        mstore(add(headStart, 256), add(sub(tail_2, headStart), not(31)))\n        let tail_3 := abi_encode_string_calldata(memberValue0_4, memberValue1_2, tail_2)\n        abi_encode_struct_TokenAmount_calldata(add(value0, 256), add(headStart, 288))\n        let memberValue0_5, memberValue1_3 := calldata_access_array_address_dyn_calldata(value0, add(value0, 0x0140))\n        mstore(add(headStart, 352), add(sub(tail_3, headStart), not(31)))\n        let tail_4 := abi_encode_array_address_dyn_calldata(memberValue0_5, memberValue1_3, tail_3)\n        let memberValue0_6, memberValue1_4 := calldata_access_array_struct_TokenAmount_calldata_dyn_calldata(value0, add(value0, 352))\n        mstore(add(headStart, 384), add(sub(tail_4, headStart), not(31)))\n        let tail_5 := abi_encode_array_struct_TokenAmount_calldata_dyn_calldata(memberValue0_6, memberValue1_4, tail_4)\n        let memberValue0_7, memberValue1_5 := calldata_access_array_struct_TokenAmount_calldata_dyn_calldata(value0, add(value0, 384))\n        mstore(add(headStart, 416), add(sub(tail_5, headStart), not(31)))\n        let tail_6 := abi_encode_array_struct_TokenAmount_calldata_dyn_calldata(memberValue0_7, memberValue1_5, tail_5)\n        let memberValue0_8, memberValue1_6 := calldata_access_array_address_dyn_calldata(value0, add(value0, 416))\n        mstore(add(headStart, 448), add(sub(tail_6, headStart), not(31)))\n        let tail_7 := abi_encode_array_struct_TokenInfo_calldata_dyn_calldata(memberValue0_8, memberValue1_6, tail_6)\n        let memberValue0_9, memberValue1_7 := calldata_access_array_struct_NFTAmount_calldata_dyn_calldata(value0, add(value0, 448))\n        mstore(add(headStart, 480), add(sub(tail_7, headStart), not(31)))\n        let tail_8 := abi_encode_array_struct_NFTAmount_calldata_dyn_calldata(memberValue0_9, memberValue1_7, tail_7)\n        let memberValue0_10, memberValue1_8 := calldata_access_array_struct_NFTAmount_calldata_dyn_calldata(value0, add(value0, 480))\n        mstore(add(headStart, 512), add(sub(tail_8, headStart), not(31)))\n        let tail_9 := abi_encode_array_struct_NFTAmount_calldata_dyn_calldata(memberValue0_10, memberValue1_8, tail_8)\n        let memberValue0_11, memberValue1_9 := calldata_access_array_address_dyn_calldata(value0, add(value0, 512))\n        mstore(add(headStart, 0x0220), add(sub(tail_9, headStart), not(31)))\n        tail := abi_encode_array_struct_NFTInfo_calldata_dyn_calldata(memberValue0_11, memberValue1_9, tail_9)\n    }\n    function abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, value0)\n        end := add(pos, 32)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c806358f5b6451461003b5780639507c26014610060575b600080fd5b61004e610049366004610149565b610073565b60405190815260200160405180910390f35b61004e61006e366004610185565b6100c0565b6000816040516020016100869190610645565b60408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052805190602001209050919050565b60006100cd8383866100d5565b949350505050565b600081815b8481101561010e57610104828787848181106100f8576100f8610871565b90506020020135610117565b91506001016100da565b50949350505050565b6000818310610133576000828152602084905260409020610142565b60008381526020839052604090205b9392505050565b60006020828403121561015b57600080fd5b813567ffffffffffffffff81111561017257600080fd5b8201610220818503121561014257600080fd5b60008060006040848603121561019a57600080fd5b83359250602084013567ffffffffffffffff8111156101b857600080fd5b8401601f810186136101c957600080fd5b803567ffffffffffffffff8111156101e057600080fd5b8660208260051b84010111156101f557600080fd5b939660209190910195509293505050565b803567ffffffffffffffff8116811461021e57600080fd5b919050565b80356001600160a01b038116811461021e57600080fd5b6000808335601e1984360301811261025157600080fd5b830160208101925035905067ffffffffffffffff81111561027157600080fd5b80360382131561028057600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b036102c182610223565b168252602090810135910152565b6000808335601e198436030181126102e657600080fd5b830160208101925035905067ffffffffffffffff81111561030657600080fd5b8060051b360382131561028057600080fd5b81835260208301925060008160005b84811015610356576001600160a01b0361034083610223565b1686526020958601959190910190600101610327565b5093949350505050565b6000808335601e1984360301811261037757600080fd5b830160208101925035905067ffffffffffffffff81111561039757600080fd5b8060061b360382131561028057600080fd5b81835260208301925060008160005b84811015610356576103ca86836102b0565b60409586019591909101906001016103b8565b60008235607e198336030181126103f357600080fd5b90910192915050565b60008383855260208501945060208460051b8201018360005b868110156104c957838303601f1901885261043082876103dd565b61043a818261023a565b6080865261044c608087018284610287565b91505061045c602083018361023a565b868303602088015261046f838284610287565b92505050604082013560ff811680821461048857600080fd5b60408701525061049b606083018361023a565b925085820360608701526104b0828483610287565b60209b8c019b9096509490940193505050600101610415565b50909695505050505050565b6000808335601e198436030181126104ec57600080fd5b830160208101925035905067ffffffffffffffff81111561050c57600080fd5b60608102360382131561028057600080fd5b81835260208301925060008160005b84811015610356576001600160a01b0361054683610223565b16865260208281013590870152604080830135908701526060958601959091019060010161052d565b60008383855260208501945060208460051b8201018360005b868110156104c957838303601f190188526105a382876103dd565b6105ad818261023a565b608086526105bf608087018284610287565b9150506105cf602083018361023a565b86830360208801526105e2838284610287565b925050506105f3604083018361023a565b8683036040880152610606838284610287565b92505050610617606083018361023a565b9250858203606087015261062c828483610287565b60209b8c019b9096509490940193505050600101610588565b602081526106676020820161065984610206565b67ffffffffffffffff169052565b600061067560208401610206565b67ffffffffffffffff811660408401525060408301356060838101919091528301356080808401919091526106ab908401610223565b6001600160a01b03811660a0840152506106c860a084018461023a565b61022060c08501526106df61024085018284610287565b9150506106ef60c085018561023a565b848303601f190160e0860152610706838284610287565b9250505061071760e085018561023a565b848303601f190161010086015261072f838284610287565b92505050610745610120840161010086016102b0565b6107536101408501856102cf565b848303601f190161016086015261076b838284610318565b9250505061077d610160850185610360565b848303601f19016101808601526107958382846103a9565b925050506107a7610180850185610360565b848303601f19016101a08601526107bf8382846103a9565b925050506107d16101a08501856102cf565b848303601f19016101c08601526107e98382846103fc565b925050506107fb6101c08501856104d5565b848303601f19016101e086015261081383828461051e565b925050506108256101e08501856104d5565b848303601f190161020086015261083d83828461051e565b9250505061084f6102008501856102cf565b848303601f190161022086015261086783828461056f565b9695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220c0a49435af5dfcd47d97220bd9e2b3784e228e8af3db28a04ee81ff88ceddb5e64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x58F5B645 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x9507C260 EQ PUSH2 0x60 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x149 JUMP JUMPDEST PUSH2 0x73 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH2 0x6E CALLDATASIZE PUSH1 0x4 PUSH2 0x185 JUMP JUMPDEST PUSH2 0xC0 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x86 SWAP2 SWAP1 PUSH2 0x645 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 SWAP1 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD DUP4 DUP4 DUP7 PUSH2 0xD5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x10E JUMPI PUSH2 0x104 DUP3 DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0xF8 JUMPI PUSH2 0xF8 PUSH2 0x871 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x117 JUMP JUMPDEST SWAP2 POP PUSH1 0x1 ADD PUSH2 0xDA JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x133 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x142 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x220 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x142 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x1C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD GT ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP7 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 POP SWAP3 SWAP4 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x2C1 DUP3 PUSH2 0x223 JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD CALLDATALOAD SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x5 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x340 DUP4 PUSH2 0x223 JUMP JUMPDEST AND DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x327 JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x397 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x6 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH2 0x3CA DUP7 DUP4 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 SWAP6 DUP7 ADD SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3B8 JUMP JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x7E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP3 ADD ADD DUP4 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x4C9 JUMPI DUP4 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x430 DUP3 DUP8 PUSH2 0x3DD JUMP JUMPDEST PUSH2 0x43A DUP2 DUP3 PUSH2 0x23A JUMP JUMPDEST PUSH1 0x80 DUP7 MSTORE PUSH2 0x44C PUSH1 0x80 DUP8 ADD DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x45C PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x20 DUP9 ADD MSTORE PUSH2 0x46F DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP1 DUP3 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP8 ADD MSTORE POP PUSH2 0x49B PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST SWAP3 POP DUP6 DUP3 SUB PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x4B0 DUP3 DUP5 DUP4 PUSH2 0x287 JUMP JUMPDEST PUSH1 0x20 SWAP12 DUP13 ADD SWAP12 SWAP1 SWAP7 POP SWAP5 SWAP1 SWAP5 ADD SWAP4 POP POP POP PUSH1 0x1 ADD PUSH2 0x415 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP2 MUL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 DUP2 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x546 DUP4 PUSH2 0x223 JUMP JUMPDEST AND DUP7 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP8 ADD MSTORE PUSH1 0x60 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x52D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP3 ADD ADD DUP4 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x4C9 JUMPI DUP4 DUP4 SUB PUSH1 0x1F NOT ADD DUP9 MSTORE PUSH2 0x5A3 DUP3 DUP8 PUSH2 0x3DD JUMP JUMPDEST PUSH2 0x5AD DUP2 DUP3 PUSH2 0x23A JUMP JUMPDEST PUSH1 0x80 DUP7 MSTORE PUSH2 0x5BF PUSH1 0x80 DUP8 ADD DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5CF PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x20 DUP9 ADD MSTORE PUSH2 0x5E2 DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x5F3 PUSH1 0x40 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST DUP7 DUP4 SUB PUSH1 0x40 DUP9 ADD MSTORE PUSH2 0x606 DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x617 PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x23A JUMP JUMPDEST SWAP3 POP DUP6 DUP3 SUB PUSH1 0x60 DUP8 ADD MSTORE PUSH2 0x62C DUP3 DUP5 DUP4 PUSH2 0x287 JUMP JUMPDEST PUSH1 0x20 SWAP12 DUP13 ADD SWAP12 SWAP1 SWAP7 POP SWAP5 SWAP1 SWAP5 ADD SWAP4 POP POP POP PUSH1 0x1 ADD PUSH2 0x588 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x667 PUSH1 0x20 DUP3 ADD PUSH2 0x659 DUP5 PUSH2 0x206 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 PUSH1 0x20 DUP5 ADD PUSH2 0x206 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x40 DUP5 ADD MSTORE POP PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x60 DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 ADD CALLDATALOAD PUSH1 0x80 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x6AB SWAP1 DUP5 ADD PUSH2 0x223 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE POP PUSH2 0x6C8 PUSH1 0xA0 DUP5 ADD DUP5 PUSH2 0x23A JUMP JUMPDEST PUSH2 0x220 PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x6DF PUSH2 0x240 DUP6 ADD DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6EF PUSH1 0xC0 DUP6 ADD DUP6 PUSH2 0x23A JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH1 0xE0 DUP7 ADD MSTORE PUSH2 0x706 DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x717 PUSH1 0xE0 DUP6 ADD DUP6 PUSH2 0x23A JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x72F DUP4 DUP3 DUP5 PUSH2 0x287 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x745 PUSH2 0x120 DUP5 ADD PUSH2 0x100 DUP7 ADD PUSH2 0x2B0 JUMP JUMPDEST PUSH2 0x753 PUSH2 0x140 DUP6 ADD DUP6 PUSH2 0x2CF JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x160 DUP7 ADD MSTORE PUSH2 0x76B DUP4 DUP3 DUP5 PUSH2 0x318 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x77D PUSH2 0x160 DUP6 ADD DUP6 PUSH2 0x360 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x180 DUP7 ADD MSTORE PUSH2 0x795 DUP4 DUP3 DUP5 PUSH2 0x3A9 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x7A7 PUSH2 0x180 DUP6 ADD DUP6 PUSH2 0x360 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x1A0 DUP7 ADD MSTORE PUSH2 0x7BF DUP4 DUP3 DUP5 PUSH2 0x3A9 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x7D1 PUSH2 0x1A0 DUP6 ADD DUP6 PUSH2 0x2CF JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x1C0 DUP7 ADD MSTORE PUSH2 0x7E9 DUP4 DUP3 DUP5 PUSH2 0x3FC JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x7FB PUSH2 0x1C0 DUP6 ADD DUP6 PUSH2 0x4D5 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x1E0 DUP7 ADD MSTORE PUSH2 0x813 DUP4 DUP3 DUP5 PUSH2 0x51E JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x825 PUSH2 0x1E0 DUP6 ADD DUP6 PUSH2 0x4D5 JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x200 DUP7 ADD MSTORE PUSH2 0x83D DUP4 DUP3 DUP5 PUSH2 0x51E JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x84F PUSH2 0x200 DUP6 ADD DUP6 PUSH2 0x2CF JUMP JUMPDEST DUP5 DUP4 SUB PUSH1 0x1F NOT ADD PUSH2 0x220 DUP7 ADD MSTORE PUSH2 0x867 DUP4 DUP3 DUP5 PUSH2 0x56F JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 LOG4 SWAP5 CALLDATALOAD 0xAF TSTORE 0xFC 0xD4 PUSH30 0x97220BD9E2B3784E228E8AF3DB28A04EE81FF88CEDDB5E64736F6C634300 ADDMOD SHR STOP CALLER ","sourceMap":"353:700:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;494:166;;;;;;:::i;:::-;;:::i;:::-;;;557:25:89;;;545:2;530:18;494:166:81;;;;;;;860:191;;;;;;:::i;:::-;;:::i;494:166::-;572:7;642;631:19;;;;;;;;:::i;:::-;;;;-1:-1:-1;;631:19:81;;;;;;;;;621:30;;631:19;621:30;;;;608:44;;;13447:19:89;13482:12;608:44:81;;;;;;;;;;;;598:55;;;;;;591:62;;494:166;;;:::o;860:191::-;961:7;987:57;1020:11;;1033:10;987:32;:57::i;:::-;980:64;860:191;-1:-1:-1;;;;860:191:81:o;5212:318:41:-;5305:7;5347:4;5305:7;5361:134;5381:16;;;5361:134;;;5433:51;5461:12;5475:5;;5481:1;5475:8;;;;;;;:::i;:::-;;;;;;;5433:27;:51::i;:::-;5418:66;-1:-1:-1;5399:3:41;;5361:134;;;-1:-1:-1;5511:12:41;5212:318;-1:-1:-1;;;;5212:318:41:o;504:169:40:-;579:7;609:1;605;:5;:61;;866:13;930:15;;;965:4;958:15;;;1011:4;995:21;;605:61;;;866:13;930:15;;;965:4;958:15;;;1011:4;995:21;;613:25;598:68;504:169;-1:-1:-1;;;504:169:40:o;14:392:89:-;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;214:9;201:23;247:18;239:6;236:30;233:50;;;279:1;276;269:12;233:50;302:22;;358:3;340:16;;;336:26;333:46;;;375:1;372;365:12;593:724;688:6;696;704;757:2;745:9;736:7;732:23;728:32;725:52;;;773:1;770;763:12;725:52;818:23;;;-1:-1:-1;916:2:89;901:18;;888:32;943:18;932:30;;929:50;;;975:1;972;965:12;929:50;998:22;;1051:4;1043:13;;1039:27;-1:-1:-1;1029:55:89;;1080:1;1077;1070:12;1029:55;1120:2;1107:16;1146:18;1138:6;1135:30;1132:50;;;1178:1;1175;1168:12;1132:50;1231:7;1226:2;1216:6;1213:1;1209:14;1205:2;1201:23;1197:32;1194:45;1191:65;;;1252:1;1249;1242:12;1191:65;593:724;;1283:2;1275:11;;;;;-1:-1:-1;1305:6:89;;-1:-1:-1;;;593:724:89:o;1322:171::-;1389:20;;1449:18;1438:30;;1428:41;;1418:69;;1483:1;1480;1473:12;1418:69;1322:171;;;:::o;1605:173::-;1673:20;;-1:-1:-1;;;;;1722:31:89;;1712:42;;1702:70;;1768:1;1765;1758:12;1892:501;1951:5;1958:6;2018:3;2005:17;2104:2;2100:7;2089:8;2073:14;2069:29;2065:43;2045:18;2041:68;2031:96;;2123:1;2120;2113:12;2031:96;2151:33;;2255:4;2242:18;;;-1:-1:-1;2203:21:89;;-1:-1:-1;2283:18:89;2272:30;;2269:50;;;2315:1;2312;2305:12;2269:50;2362:6;2346:14;2342:27;2335:5;2331:39;2328:59;;;2383:1;2380;2373:12;2328:59;1892:501;;;;;:::o;2398:267::-;2487:6;2482:3;2475:19;2539:6;2532:5;2525:4;2520:3;2516:14;2503:43;-1:-1:-1;2591:1:89;2566:16;;;2584:4;2562:27;;;2555:38;;;;2647:2;2626:15;;;-1:-1:-1;;2622:29:89;2613:39;;;2609:50;;2398:267::o;2670:259::-;-1:-1:-1;;;;;2760:25:89;2779:5;2760:25;:::i;:::-;2756:51;2744:64;;2877:4;2866:16;;;2853:30;2899:14;;2892:31;2670:259::o;2934:520::-;3004:5;3011:6;3071:3;3058:17;3157:2;3153:7;3142:8;3126:14;3122:29;3118:43;3098:18;3094:68;3084:96;;3176:1;3173;3166:12;3084:96;3204:33;;3308:4;3295:18;;;-1:-1:-1;3256:21:89;;-1:-1:-1;3336:18:89;3325:30;;3322:50;;;3368:1;3365;3358:12;3322:50;3422:6;3419:1;3415:14;3399;3395:35;3388:5;3384:47;3381:67;;;3444:1;3441;3434:12;3459:430;3559:6;3554:3;3547:19;3591:4;3586:3;3582:14;3575:21;;3529:3;3619:5;3642:1;3652:212;3666:6;3663:1;3660:13;3652:212;;;-1:-1:-1;;;;;3731:26:89;3750:6;3731:26;:::i;:::-;3727:52;3715:65;;3809:4;3800:14;;;;3837:17;;;;;3688:1;3681:9;3652:212;;;-1:-1:-1;3880:3:89;;3459:430;-1:-1:-1;;;;3459:430:89:o;3894:540::-;3984:5;3991:6;4051:3;4038:17;4137:2;4133:7;4122:8;4106:14;4102:29;4098:43;4078:18;4074:68;4064:96;;4156:1;4153;4146:12;4064:96;4184:33;;4288:4;4275:18;;;-1:-1:-1;4236:21:89;;-1:-1:-1;4316:18:89;4305:30;;4302:50;;;4348:1;4345;4338:12;4302:50;4402:6;4399:1;4395:14;4379;4375:35;4368:5;4364:47;4361:67;;;4424:1;4421;4414:12;4439:436;4559:6;4554:3;4547:19;4591:4;4586:3;4582:14;4575:21;;4529:3;4619:5;4642:1;4652:198;4666:6;4663:1;4660:13;4652:198;;;4715:51;4762:3;4754:6;4715:51;:::i;:::-;4795:4;4786:14;;;;4823:17;;;;;4688:1;4681:9;4652:198;;4880:295;4949:5;5008:3;4995:17;5094:3;5090:8;5079;5063:14;5059:29;5055:44;5035:18;5031:69;5021:97;;5114:1;5111;5104:12;5021:97;5136:33;;;;4880:295;-1:-1:-1;;4880:295:89:o;5180:1488::-;5268:3;5299;5323:6;5318:3;5311:19;5355:4;5350:3;5346:14;5339:21;;5413:4;5403:6;5400:1;5396:14;5389:5;5385:26;5381:37;5441:5;5464:1;5474:1168;5488:6;5485:1;5482:13;5474:1168;;;5553:16;;;-1:-1:-1;;5549:30:89;5537:43;;5603:56;5652:6;5645:5;5603:56;:::i;:::-;5706:39;5742:2;5738;5706:39;:::i;:::-;5771:4;5765;5758:18;5803:71;5868:4;5862;5858:15;5844:12;5830;5803:71;:::i;:::-;5789:85;;;5925:50;5969:4;5965:2;5961:13;5957:2;5925:50;:::i;:::-;6024:4;6016:6;6012:17;6005:4;5999;5995:15;5988:42;6057:66;6116:6;6100:14;6084;6057:66;:::i;:::-;6043:80;;;;6172:4;6168:2;6164:13;6151:27;6214:4;6205:7;6201:18;6254:2;6245:7;6242:15;6232:43;;6271:1;6268;6261:12;6232:43;6305:4;6295:15;;6288:27;-1:-1:-1;6366:50:89;6410:4;6402:13;;6406:2;6366:50;:::i;:::-;6328:88;;6465:4;6457:6;6453:17;6446:4;6440;6436:15;6429:42;6492:66;6551:6;6535:14;6519;6492:66;:::i;:::-;6593:4;6618:14;;;;6484:74;;-1:-1:-1;6581:17:89;;;;;-1:-1:-1;;;5510:1:89;5503:9;5474:1168;;;-1:-1:-1;6658:4:89;;5180:1488;-1:-1:-1;;;;;;5180:1488:89:o;6673:541::-;6761:5;6768:6;6828:3;6815:17;6914:2;6910:7;6899:8;6883:14;6879:29;6875:43;6855:18;6851:68;6841:96;;6933:1;6930;6923:12;6841:96;6961:33;;7065:4;7052:18;;;-1:-1:-1;7013:21:89;;-1:-1:-1;7093:18:89;7082:30;;7079:50;;;7125:1;7122;7115:12;7079:50;7184:4;7176:6;7172:17;7156:14;7152:38;7145:5;7141:50;7138:70;;;7204:1;7201;7194:12;7219:704;7337:6;7332:3;7325:19;7369:4;7364:3;7360:14;7353:21;;7307:3;7397:5;7420:1;7430:468;7444:6;7441:1;7438:13;7430:468;;;-1:-1:-1;;;;;7509:26:89;7528:6;7509:26;:::i;:::-;7505:52;7493:65;;7636:4;7624:17;;;7611:31;7662:14;;;7655:31;7764:4;7752:17;;;7739:31;7790:14;;;7783:31;7843:4;7834:14;;;;7871:17;;;;7466:1;7459:9;7430:468;;7928:1543;8014:3;8045;8069:6;8064:3;8057:19;8101:4;8096:3;8092:14;8085:21;;8159:4;8149:6;8146:1;8142:14;8135:5;8131:26;8127:37;8187:5;8210:1;8220:1225;8234:6;8231:1;8228:13;8220:1225;;;8299:16;;;-1:-1:-1;;8295:30:89;8283:43;;8349:56;8398:6;8391:5;8349:56;:::i;:::-;8452:39;8488:2;8484;8452:39;:::i;:::-;8517:4;8511;8504:18;8549:71;8614:4;8608;8604:15;8590:12;8576;8549:71;:::i;:::-;8535:85;;;8671:50;8715:4;8711:2;8707:13;8703:2;8671:50;:::i;:::-;8770:4;8762:6;8758:17;8751:4;8745;8741:15;8734:42;8803:66;8862:6;8846:14;8830;8803:66;:::i;:::-;8789:80;;;;8920:50;8964:4;8960:2;8956:13;8952:2;8920:50;:::i;:::-;9019:4;9011:6;9007:17;9000:4;8994;8990:15;8983:42;9052:66;9111:6;9095:14;9079;9052:66;:::i;:::-;9038:80;;;;9169:50;9213:4;9209:2;9205:13;9201:2;9169:50;:::i;:::-;9131:88;;9268:4;9260:6;9256:17;9249:4;9243;9239:15;9232:42;9295:66;9354:6;9338:14;9322;9295:66;:::i;:::-;9396:4;9421:14;;;;9287:74;;-1:-1:-1;9384:17:89;;;;;-1:-1:-1;;;8256:1:89;8249:9;8220:1225;;9476:3837;9667:2;9656:9;9649:21;9679:64;9739:2;9728:9;9724:18;9697:25;9715:6;9697:25;:::i;:::-;1574:18;1563:30;1551:43;;1498:102;9679:64;9630:4;9772:34;9802:2;9794:6;9790:15;9772:34;:::i;:::-;1574:18;1563:30;;9862:2;9847:18;;1551:43;-1:-1:-1;9932:2:89;9920:15;;9907:29;9967:2;9952:18;;;9945:33;;;;10036:15;;10023:29;10083:3;10068:19;;;10061:36;;;;10128;;10147:16;;10128:36;:::i;:::-;-1:-1:-1;;;;;1849:31:89;;10223:3;10208:19;;1837:44;10173:55;10273:57;10325:3;10317:6;10313:16;10305:6;10273:57;:::i;:::-;10367:6;10361:3;10350:9;10346:19;10339:35;10397:77;10469:3;10458:9;10454:19;10440:12;10424:14;10397:77;:::i;:::-;10383:91;;;10521:57;10573:3;10565:6;10561:16;10553:6;10521:57;:::i;:::-;10619:22;;;-1:-1:-1;;10615:36:89;10609:3;10594:19;;10587:65;10675:66;10623:6;10718:14;10702;10675:66;:::i;:::-;10661:80;;;;10788:57;10840:3;10832:6;10828:16;10820:6;10788:57;:::i;:::-;10886:22;;;-1:-1:-1;;10882:36:89;10876:3;10861:19;;10854:65;10942:66;10890:6;10985:14;10969;10942:66;:::i;:::-;10928:80;;;;11017:77;11089:3;11078:9;11074:19;11068:3;11060:6;11056:16;11017:77;:::i;:::-;11141:71;11204:6;11196;11192:19;11184:6;11141:71;:::i;:::-;11253:22;;;-1:-1:-1;;11249:36:89;11243:3;11228:19;;11221:65;11309:77;11257:6;11363:14;11347;11309:77;:::i;:::-;11295:91;;;;11433:88;11516:3;11508:6;11504:16;11496:6;11433:88;:::i;:::-;11562:22;;;-1:-1:-1;;11558:36:89;11552:3;11537:19;;11530:65;11618:97;11566:6;11692:14;11676;11618:97;:::i;:::-;11604:111;;;;11762:88;11845:3;11837:6;11833:16;11825:6;11762:88;:::i;:::-;11891:22;;;-1:-1:-1;;11887:36:89;11881:3;11866:19;;11859:65;11947:97;11895:6;12021:14;12005;11947:97;:::i;:::-;11933:111;;;;12091:68;12154:3;12146:6;12142:16;12134:6;12091:68;:::i;:::-;12200:22;;;-1:-1:-1;;12196:36:89;12190:3;12175:19;;12168:65;12256:95;12204:6;12328:14;12312;12256:95;:::i;:::-;12242:109;;;;12398:86;12479:3;12471:6;12467:16;12459:6;12398:86;:::i;:::-;12525:22;;;-1:-1:-1;;12521:36:89;12515:3;12500:19;;12493:65;12581:95;12529:6;12653:14;12637;12581:95;:::i;:::-;12567:109;;;;12724:86;12805:3;12797:6;12793:16;12785:6;12724:86;:::i;:::-;12851:22;;;-1:-1:-1;;12847:36:89;12841:3;12826:19;;12819:65;12907:96;12855:6;12980:14;12963:15;12907:96;:::i;:::-;12893:110;;;;13051:68;13114:3;13106:6;13102:16;13094:6;13051:68;:::i;:::-;13163:22;;;-1:-1:-1;;13159:36:89;13150:6;13135:22;;13128:68;13213:94;13167:6;13284:14;13267:15;13213:94;:::i;:::-;13205:102;9476:3837;-1:-1:-1;;;;;;9476:3837:89:o;13505:127::-;13566:10;13561:3;13557:20;13554:1;13547:31;13597:4;13594:1;13587:15;13621:4;13618:1;13611:15"},"methodIdentifiers":{"checkMerkleProof(bytes32,bytes32[])":"9507c260","hashInMessageV1((uint64,uint64,bytes32,uint256,address,string,bytes,string,(address,uint256),address[],(address,uint256)[],(address,uint256)[],(string,string,uint8,string)[],(address,uint256,uint256)[],(address,uint256,uint256)[],(string,string,string,string)[]))":"58f5b645"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"objectHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"}],\"name\":\"checkMerkleProof\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"caller\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount\",\"name\":\"evmExecutorFee\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"evmValidExecutors\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"mint\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"unlock\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct TokenInfo[]\",\"name\":\"meta\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"mintNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"unlockNFT\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmAddress\",\"type\":\"string\"}],\"internalType\":\"struct NFTInfo[]\",\"name\":\"metaNFT\",\"type\":\"tuple[]\"}],\"internalType\":\"struct InMessageV1\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"hashInMessageV1\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A contract testing merkle tree utils.\",\"kind\":\"dev\",\"methods\":{\"checkMerkleProof(bytes32,bytes32[])\":{\"details\":\"Function to calculate the Merkle root from the message hash and proof.\",\"params\":{\"merkleProof\":\"Merkle proof.\",\"objectHash\":\"Leaf object hash to validate.\"}},\"hashInMessageV1((uint64,uint64,bytes32,uint256,address,string,bytes,string,(address,uint256),address[],(address,uint256)[],(address,uint256)[],(string,string,uint8,string)[],(address,uint256,uint256)[],(address,uint256,uint256)[],(string,string,string,string)[]))\":{\"details\":\"Calculates message v1 hash.\",\"params\":{\"message\":\"Message v1.\"}}},\"title\":\"MerkleTreeUtils\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MerkleTreeUtils.sol\":\"MerkleTreeUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x631dc1958d5308bd2d9f91190bbcde4f9ffb9d9401ce8d358c17b35f1a942bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7ef16d9a6f57eae9ab275116eaba1e8de70efd3d0e3682b1585b8f069d9c3f9\",\"dweb:/ipfs/QmR3JQHAyv4sNWnRHeiC6oaz8Bqn8rtzu5sdAqAJRtBqpj\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/IMerkleTreeUtils.sol\":{\"keccak256\":\"0x7c1e15c361ef686b8f6d92ab23fa29f2d5e4358cc50515ce416ab9b065486500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e8e0796a1b4ea750a31d218982bfb83559aa7b075831c990ae48ffe32c9710c\",\"dweb:/ipfs/QmdZjQGwMjs3mYCFQsZXpC7PMxn76FYn6iTuRt3kvda2SP\"]},\"contracts/test/MerkleTreeUtils.sol\":{\"keccak256\":\"0xffc319dcfa03f3711363b4598d742aa7ae89751bd06edfbe055469161116b9e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce2012baaa7cc07b8089a3f4193eebbb525de6a8fc676a97c2d8c48901e42bc1\",\"dweb:/ipfs/QmQqtxbk15H2KrMnd7eAjnWYRgUthP6kKUPVQs5BYj53Ze\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/test/MockBluePrint.sol":{"MockBluePrint":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"AccessDenied","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"ExecutionFailed","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Executed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"createOneTimeTicket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"delegatecall","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"executeUnsafe","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"oneTimeTickets","outputs":[{"internalType":"bool","name":"ticket","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"revokeOneTimeTicket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradedToMockBluePrint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_20017":{"entryPoint":null,"id":20017,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_4110":{"entryPoint":26,"id":4110,"parameterSlots":0,"returnSlots":0},"@_getInitializableStorage_4141":{"entryPoint":null,"id":4141,"parameterSlots":0,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:216:89","nodeType":"YulBlock","src":"0:216:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"113:101:89","nodeType":"YulBlock","src":"113:101:89","statements":[{"nativeSrc":"123:26:89","nodeType":"YulAssignment","src":"123:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"135:9:89","nodeType":"YulIdentifier","src":"135:9:89"},{"kind":"number","nativeSrc":"146:2:89","nodeType":"YulLiteral","src":"146:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"131:3:89","nodeType":"YulIdentifier","src":"131:3:89"},"nativeSrc":"131:18:89","nodeType":"YulFunctionCall","src":"131:18:89"},"variableNames":[{"name":"tail","nativeSrc":"123:4:89","nodeType":"YulIdentifier","src":"123:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"165:9:89","nodeType":"YulIdentifier","src":"165:9:89"},{"arguments":[{"name":"value0","nativeSrc":"180:6:89","nodeType":"YulIdentifier","src":"180:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"196:2:89","nodeType":"YulLiteral","src":"196:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"200:1:89","nodeType":"YulLiteral","src":"200:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"192:3:89","nodeType":"YulIdentifier","src":"192:3:89"},"nativeSrc":"192:10:89","nodeType":"YulFunctionCall","src":"192:10:89"},{"kind":"number","nativeSrc":"204:1:89","nodeType":"YulLiteral","src":"204:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"188:3:89","nodeType":"YulIdentifier","src":"188:3:89"},"nativeSrc":"188:18:89","nodeType":"YulFunctionCall","src":"188:18:89"}],"functionName":{"name":"and","nativeSrc":"176:3:89","nodeType":"YulIdentifier","src":"176:3:89"},"nativeSrc":"176:31:89","nodeType":"YulFunctionCall","src":"176:31:89"}],"functionName":{"name":"mstore","nativeSrc":"158:6:89","nodeType":"YulIdentifier","src":"158:6:89"},"nativeSrc":"158:50:89","nodeType":"YulFunctionCall","src":"158:50:89"},"nativeSrc":"158:50:89","nodeType":"YulExpressionStatement","src":"158:50:89"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"14:200:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"82:9:89","nodeType":"YulTypedName","src":"82:9:89","type":""},{"name":"value0","nativeSrc":"93:6:89","nodeType":"YulTypedName","src":"93:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"104:4:89","nodeType":"YulTypedName","src":"104:4:89","type":""}],"src":"14:200:89"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(64, 1), 1)))\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611096806100d96000396000f3fe6080604052600436106100a05760003560e01c80638da5cb5b116100645780638da5cb5b14610161578063b61d27f614610199578063c4d66de8146101b9578063c72c901a146101d9578063dc40af1f146101f9578063e1f21c671461022957600080fd5b806341e15ea0146100ac57806345670295146100d157806345f67ac7146100f25780636e0aacf71461011f5780637e383a751461013f57600080fd5b366100a757005b600080fd5b3480156100b857600080fd5b5060015b60405190151581526020015b60405180910390f35b6100e46100df366004610c2b565b610249565b6040516100c8929190610cd5565b3480156100fe57600080fd5b5061011261010d366004610d3d565b610373565b6040516100c89190610de3565b34801561012b57600080fd5b506100e461013a366004610e48565b6105cc565b34801561014b57600080fd5b5061015f61015a366004610e9b565b6106e6565b005b34801561016d57600080fd5b50600054610181906001600160a01b031681565b6040516001600160a01b0390911681526020016100c8565b6101ac6101a7366004610c2b565b610741565b6040516100c89190610ebd565b3480156101c557600080fd5b5061015f6101d4366004610e9b565b610895565b3480156101e557600080fd5b5061015f6101f4366004610e9b565b6109b7565b34801561020557600080fd5b506100bc610214366004610e9b565b60016020526000908152604090205460ff1681565b34801561023557600080fd5b5061015f610244366004610ed0565b610a18565b3360009081526001602052604081205460609060ff161561028057336000908152600160205260409020805460ff191690556102c0565b60005433906001600160a01b031681146102be57604051630504a20d60e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b505b856001600160a01b03168585856040516102db929190610f0d565b60006040518083038185875af1925050503d8060008114610318576040519150601f19603f3d011682016040523d82523d6000602084013e61031d565b606091505b5060405191935091506001600160a01b038716907fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9061036290889088908890610f46565b60405180910390a294509492505050565b3360009081526001602052604090205460609060ff16156103aa57336000908152600160205260409020805460ff191690556103e5565b60005433906001600160a01b031681146103e357604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b505b60008667ffffffffffffffff81111561040057610400610f69565b60405190808252806020026020018201604052801561043357816020015b606081526020019060019003908161041e5790505b50905060005b878110156105c0576000808a8a8481811061045657610456610f7f565b905060200201602081019061046b9190610e9b565b6001600160a01b031689898581811061048657610486610f7f565b9050602002013588888681811061049f5761049f610f7f565b90506020028101906104b19190610f95565b6040516104bf929190610f0d565b60006040518083038185875af1925050503d80600081146104fc576040519150601f19603f3d011682016040523d82523d6000602084013e610501565b606091505b5091509150818b8b8581811061051957610519610f7f565b905060200201602081019061052e9190610e9b565b8a8a8681811061054057610540610f7f565b9050602002013589898781811061055957610559610f7f565b905060200281019061056b9190610f95565b85909192939461059357604051630717adb560e21b81526004016102b5959493929190610fdc565b5050505050808484815181106105ab576105ab610f7f565b60209081029190910101525050600101610439565b50979650505050505050565b6000805460609033906001600160a01b0316811461060957604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b50846001600160a01b03168484604051610624929190610f0d565b600060405180830381855af49150503d806000811461065f576040519150601f19603f3d011682016040523d82523d6000602084013e610664565b606091505b5090925090508460008585848661069357604051630717adb560e21b81526004016102b5959493929190610fdc565b5050505050846001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f600086866040516106d693929190610f46565b60405180910390a2935093915050565b60005433906001600160a01b0316811461071f57604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b506001600160a01b03166000908152600160205260409020805460ff19169055565b3360009081526001602052604090205460609060ff161561077857336000908152600160205260409020805460ff191690556107b3565b60005433906001600160a01b031681146107b157604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b505b600080866001600160a01b03168686866040516107d1929190610f0d565b60006040518083038185875af1925050503d806000811461080e576040519150601f19603f3d011682016040523d82523d6000602084013e610813565b606091505b50909250905086868686848661084157604051630717adb560e21b81526004016102b5959493929190610fdc565b5050505050866001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f87878760405161088393929190610f46565b60405180910390a29695505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156108db5750825b905060008267ffffffffffffffff1660011480156108f85750303b155b905081158015610906575080155b156109245760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561094e57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156109af57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60005433906001600160a01b031681146109f057604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b506001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526001602052604090205460ff1615610a4c57336000908152600160205260409020805460ff19169055610a87565b60005433906001600160a01b03168114610a8557604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b505b610a92838383610a97565b505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691610af39190611022565b6000604051808303816000865af19150503d8060008114610b30576040519150601f19603f3d011682016040523d82523d6000602084013e610b35565b606091505b5091509150818015610b5f575080511580610b5f575080806020019051810190610b5f919061103e565b610bbf5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b60648201526084016102b5565b5050505050565b80356001600160a01b0381168114610bdd57600080fd5b919050565b60008083601f840112610bf457600080fd5b50813567ffffffffffffffff811115610c0c57600080fd5b602083019150836020828501011115610c2457600080fd5b9250929050565b60008060008060608587031215610c4157600080fd5b610c4a85610bc6565b935060208501359250604085013567ffffffffffffffff811115610c6d57600080fd5b610c7987828801610be2565b95989497509550505050565b60005b83811015610ca0578181015183820152602001610c88565b50506000910152565b60008151808452610cc1816020860160208601610c85565b601f01601f19169290920160200192915050565b8215158152604060208201526000610cf06040830184610ca9565b949350505050565b60008083601f840112610d0a57600080fd5b50813567ffffffffffffffff811115610d2257600080fd5b6020830191508360208260051b8501011115610c2457600080fd5b60008060008060008060608789031215610d5657600080fd5b863567ffffffffffffffff811115610d6d57600080fd5b610d7989828a01610cf8565b909750955050602087013567ffffffffffffffff811115610d9957600080fd5b610da589828a01610cf8565b909550935050604087013567ffffffffffffffff811115610dc557600080fd5b610dd189828a01610cf8565b979a9699509497509295939492505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610e3c57603f19878603018452610e27858351610ca9565b94506020938401939190910190600101610e0b565b50929695505050505050565b600080600060408486031215610e5d57600080fd5b610e6684610bc6565b9250602084013567ffffffffffffffff811115610e8257600080fd5b610e8e86828701610be2565b9497909650939450505050565b600060208284031215610ead57600080fd5b610eb682610bc6565b9392505050565b602081526000610eb66020830184610ca9565b600080600060608486031215610ee557600080fd5b610eee84610bc6565b9250610efc60208501610bc6565b929592945050506040919091013590565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b838152604060208201526000610f60604083018486610f1d565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610fac57600080fd5b83018035915067ffffffffffffffff821115610fc757600080fd5b602001915036819003821315610c2457600080fd5b60018060a01b0386168152846020820152608060408201526000611004608083018587610f1d565b82810360608401526110168185610ca9565b98975050505050505050565b60008251611034818460208701610c85565b9190910192915050565b60006020828403121561105057600080fd5b81518015158114610eb657600080fdfea26469706673582212200b526636d0ecf7b395f66bfd52858d8333e5a1cb0b047f9800b61711aa9cf6a064736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 PUSH1 0x1A JUMP JUMPDEST PUSH1 0xCA JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH1 0x69 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH1 0xC7 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x1096 DUP1 PUSH2 0xD9 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0xB61D27F6 EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0xC72C901A EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xDC40AF1F EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0xE1F21C67 EQ PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x41E15EA0 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x45670295 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x45F67AC7 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x6E0AACF7 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x7E383A75 EQ PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xA7 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE4 PUSH2 0xDF CALLDATASIZE PUSH1 0x4 PUSH2 0xC2B JUMP JUMPDEST PUSH2 0x249 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP3 SWAP2 SWAP1 PUSH2 0xCD5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x10D CALLDATASIZE PUSH1 0x4 PUSH2 0xD3D JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0xDE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE4 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xE48 JUMP JUMPDEST PUSH2 0x5CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15F PUSH2 0x15A CALLDATASIZE PUSH1 0x4 PUSH2 0xE9B JUMP JUMPDEST PUSH2 0x6E6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x181 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC8 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1A7 CALLDATASIZE PUSH1 0x4 PUSH2 0xC2B JUMP JUMPDEST PUSH2 0x741 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0xEBD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9B JUMP JUMPDEST PUSH2 0x895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15F PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9B JUMP JUMPDEST PUSH2 0x9B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBC PUSH2 0x214 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15F PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0xED0 JUMP JUMPDEST PUSH2 0xA18 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x280 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x2BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DB SWAP3 SWAP2 SWAP1 PUSH2 0xF0D 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 0x318 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 0x31D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F SWAP1 PUSH2 0x362 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x3AA JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x3E5 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x3E3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP7 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x400 JUMPI PUSH2 0x400 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x433 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x41E JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0x456 JUMPI PUSH2 0x456 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x46B SWAP2 SWAP1 PUSH2 0xE9B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x486 JUMPI PUSH2 0x486 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x49F JUMPI PUSH2 0x49F PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x4B1 SWAP2 SWAP1 PUSH2 0xF95 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BF SWAP3 SWAP2 SWAP1 PUSH2 0xF0D 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 0x4FC 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 0x501 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP12 DUP12 DUP6 DUP2 DUP2 LT PUSH2 0x519 JUMPI PUSH2 0x519 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x52E SWAP2 SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x540 JUMPI PUSH2 0x540 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP10 DUP10 DUP8 DUP2 DUP2 LT PUSH2 0x559 JUMPI PUSH2 0x559 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x56B SWAP2 SWAP1 PUSH2 0xF95 JUMP JUMPDEST DUP6 SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 PUSH2 0x593 JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST POP POP POP POP POP DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x5AB JUMPI PUSH2 0x5AB PUSH2 0xF7F JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x439 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x609 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x624 SWAP3 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x65F 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 0x664 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP DUP5 PUSH1 0x0 DUP6 DUP6 DUP5 DUP7 PUSH2 0x693 JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST POP POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x6D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x778 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x7B3 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x7B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x7D1 SWAP3 SWAP2 SWAP1 PUSH2 0xF0D 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 0x80E 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 0x813 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP DUP7 DUP7 DUP7 DUP7 DUP5 DUP7 PUSH2 0x841 JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x883 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x8DB JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x8F8 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x906 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x924 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x94E JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x9AF JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA4C JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0xA87 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0xA85 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP JUMPDEST PUSH2 0xA92 DUP4 DUP4 DUP4 PUSH2 0xA97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0xAF3 SWAP2 SWAP1 PUSH2 0x1022 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB30 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 0xB35 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0xB5F JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0xB5F JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xB5F SWAP2 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH2 0xBBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A73616665417070726F76653A20617070 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x1C9BDD994819985A5B1959 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC4A DUP6 PUSH2 0xBC6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC79 DUP8 DUP3 DUP9 ADD PUSH2 0xBE2 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xCA0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC88 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xCC1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xC85 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xCF0 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xCA9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xD0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xC24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xD56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD79 DUP10 DUP3 DUP11 ADD PUSH2 0xCF8 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA5 DUP10 DUP3 DUP11 ADD PUSH2 0xCF8 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDD1 DUP10 DUP3 DUP11 ADD PUSH2 0xCF8 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xE3C JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0xE27 DUP6 DUP4 MLOAD PUSH2 0xCA9 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xE0B JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xE5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE66 DUP5 PUSH2 0xBC6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE8E DUP7 DUP3 DUP8 ADD PUSH2 0xBE2 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB6 DUP3 PUSH2 0xBC6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEB6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCA9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xEE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEEE DUP5 PUSH2 0xBC6 JUMP JUMPDEST SWAP3 POP PUSH2 0xEFC PUSH1 0x20 DUP6 ADD PUSH2 0xBC6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF60 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0xF1D JUMP JUMPDEST SWAP6 SWAP5 POP 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0xFAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xFC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0xC24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1004 PUSH1 0x80 DUP4 ADD DUP6 DUP8 PUSH2 0xF1D JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x1016 DUP2 DUP6 PUSH2 0xCA9 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1034 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xC85 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1050 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEB6 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND MSTORE PUSH7 0x36D0ECF7B395F6 PUSH12 0xFD52858D8333E5A1CB0B047F SWAP9 STOP 0xB6 OR GT 0xAA SWAP13 0xF6 LOG0 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"299:2850:82:-:0;;;987:53;;;;;;;;;-1:-1:-1;1011:22:82;:20;:22::i;:::-;299:2850;;7711:422:22;8870:21;7900:15;;;;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:22;;;;;;;;;;;7896:76;7985:14;;-1:-1:-1;;;;;7985:14:22;;;:34;7981:146;;8035:33;;-1:-1:-1;;;;;;8035:33:22;-1:-1:-1;;;;;8035:33:22;;;;;8087:29;;158:50:89;;;8087:29:22;;146:2:89;131:18;8087:29:22;;;;;;;7981:146;7760:373;7711:422::o;14:200:89:-;299:2850:82;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_20288":{"entryPoint":null,"id":20288,"parameterSlots":0,"returnSlots":0},"@_getInitializableStorage_4141":{"entryPoint":null,"id":4141,"parameterSlots":0,"returnSlots":1},"@approve_20192":{"entryPoint":2584,"id":20192,"parameterSlots":3,"returnSlots":0},"@createOneTimeTicket_20158":{"entryPoint":2487,"id":20158,"parameterSlots":1,"returnSlots":0},"@delegatecall_20144":{"entryPoint":1484,"id":20144,"parameterSlots":3,"returnSlots":2},"@executeUnsafe_20105":{"entryPoint":585,"id":20105,"parameterSlots":4,"returnSlots":2},"@execute_20072":{"entryPoint":1857,"id":20072,"parameterSlots":4,"returnSlots":1},"@initialize_20029":{"entryPoint":2197,"id":20029,"parameterSlots":1,"returnSlots":0},"@multicall_20276":{"entryPoint":883,"id":20276,"parameterSlots":6,"returnSlots":1},"@oneTimeTickets_19952":{"entryPoint":null,"id":19952,"parameterSlots":0,"returnSlots":0},"@owner_19940":{"entryPoint":null,"id":19940,"parameterSlots":0,"returnSlots":0},"@revokeOneTimeTicket_20172":{"entryPoint":1766,"id":20172,"parameterSlots":1,"returnSlots":0},"@safeApprove_12053":{"entryPoint":2711,"id":12053,"parameterSlots":3,"returnSlots":0},"@upgradedToMockBluePrint_20284":{"entryPoint":null,"id":20284,"parameterSlots":0,"returnSlots":1},"abi_decode_address":{"entryPoint":3014,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn_calldata":{"entryPoint":3320,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_bytes_calldata":{"entryPoint":3042,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":3739,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3792,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":3656,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr":{"entryPoint":3115,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":3389,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4158,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":3241,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":3869,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3853,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4130,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_rational_0_by_1_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4060,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":3555,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3285,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3773,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_0_by_1_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3910,"id":null,"parameterSlots":4,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":3989,"id":null,"parameterSlots":2,"returnSlots":2},"copy_memory_to_memory_with_cleanup":{"entryPoint":3205,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x32":{"entryPoint":3967,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3945,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10557:89","nodeType":"YulBlock","src":"0:10557:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"109:92:89","nodeType":"YulBlock","src":"109:92:89","statements":[{"nativeSrc":"119:26:89","nodeType":"YulAssignment","src":"119:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"131:9:89","nodeType":"YulIdentifier","src":"131:9:89"},{"kind":"number","nativeSrc":"142:2:89","nodeType":"YulLiteral","src":"142:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"127:3:89","nodeType":"YulIdentifier","src":"127:3:89"},"nativeSrc":"127:18:89","nodeType":"YulFunctionCall","src":"127:18:89"},"variableNames":[{"name":"tail","nativeSrc":"119:4:89","nodeType":"YulIdentifier","src":"119:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"161:9:89","nodeType":"YulIdentifier","src":"161:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"186:6:89","nodeType":"YulIdentifier","src":"186:6:89"}],"functionName":{"name":"iszero","nativeSrc":"179:6:89","nodeType":"YulIdentifier","src":"179:6:89"},"nativeSrc":"179:14:89","nodeType":"YulFunctionCall","src":"179:14:89"}],"functionName":{"name":"iszero","nativeSrc":"172:6:89","nodeType":"YulIdentifier","src":"172:6:89"},"nativeSrc":"172:22:89","nodeType":"YulFunctionCall","src":"172:22:89"}],"functionName":{"name":"mstore","nativeSrc":"154:6:89","nodeType":"YulIdentifier","src":"154:6:89"},"nativeSrc":"154:41:89","nodeType":"YulFunctionCall","src":"154:41:89"},"nativeSrc":"154:41:89","nodeType":"YulExpressionStatement","src":"154:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"14:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"78:9:89","nodeType":"YulTypedName","src":"78:9:89","type":""},{"name":"value0","nativeSrc":"89:6:89","nodeType":"YulTypedName","src":"89:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"100:4:89","nodeType":"YulTypedName","src":"100:4:89","type":""}],"src":"14:187:89"},{"body":{"nativeSrc":"255:124:89","nodeType":"YulBlock","src":"255:124:89","statements":[{"nativeSrc":"265:29:89","nodeType":"YulAssignment","src":"265:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"287:6:89","nodeType":"YulIdentifier","src":"287:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"274:12:89","nodeType":"YulIdentifier","src":"274:12:89"},"nativeSrc":"274:20:89","nodeType":"YulFunctionCall","src":"274:20:89"},"variableNames":[{"name":"value","nativeSrc":"265:5:89","nodeType":"YulIdentifier","src":"265:5:89"}]},{"body":{"nativeSrc":"357:16:89","nodeType":"YulBlock","src":"357:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"366:1:89","nodeType":"YulLiteral","src":"366:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"369:1:89","nodeType":"YulLiteral","src":"369:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"359:6:89","nodeType":"YulIdentifier","src":"359:6:89"},"nativeSrc":"359:12:89","nodeType":"YulFunctionCall","src":"359:12:89"},"nativeSrc":"359:12:89","nodeType":"YulExpressionStatement","src":"359:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"316:5:89","nodeType":"YulIdentifier","src":"316:5:89"},{"arguments":[{"name":"value","nativeSrc":"327:5:89","nodeType":"YulIdentifier","src":"327:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"342:3:89","nodeType":"YulLiteral","src":"342:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"347:1:89","nodeType":"YulLiteral","src":"347:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"338:3:89","nodeType":"YulIdentifier","src":"338:3:89"},"nativeSrc":"338:11:89","nodeType":"YulFunctionCall","src":"338:11:89"},{"kind":"number","nativeSrc":"351:1:89","nodeType":"YulLiteral","src":"351:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"334:3:89","nodeType":"YulIdentifier","src":"334:3:89"},"nativeSrc":"334:19:89","nodeType":"YulFunctionCall","src":"334:19:89"}],"functionName":{"name":"and","nativeSrc":"323:3:89","nodeType":"YulIdentifier","src":"323:3:89"},"nativeSrc":"323:31:89","nodeType":"YulFunctionCall","src":"323:31:89"}],"functionName":{"name":"eq","nativeSrc":"313:2:89","nodeType":"YulIdentifier","src":"313:2:89"},"nativeSrc":"313:42:89","nodeType":"YulFunctionCall","src":"313:42:89"}],"functionName":{"name":"iszero","nativeSrc":"306:6:89","nodeType":"YulIdentifier","src":"306:6:89"},"nativeSrc":"306:50:89","nodeType":"YulFunctionCall","src":"306:50:89"},"nativeSrc":"303:70:89","nodeType":"YulIf","src":"303:70:89"}]},"name":"abi_decode_address","nativeSrc":"206:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"234:6:89","nodeType":"YulTypedName","src":"234:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"245:5:89","nodeType":"YulTypedName","src":"245:5:89","type":""}],"src":"206:173:89"},{"body":{"nativeSrc":"456:275:89","nodeType":"YulBlock","src":"456:275:89","statements":[{"body":{"nativeSrc":"505:16:89","nodeType":"YulBlock","src":"505:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"514:1:89","nodeType":"YulLiteral","src":"514:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"517:1:89","nodeType":"YulLiteral","src":"517:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"507:6:89","nodeType":"YulIdentifier","src":"507:6:89"},"nativeSrc":"507:12:89","nodeType":"YulFunctionCall","src":"507:12:89"},"nativeSrc":"507:12:89","nodeType":"YulExpressionStatement","src":"507:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"484:6:89","nodeType":"YulIdentifier","src":"484:6:89"},{"kind":"number","nativeSrc":"492:4:89","nodeType":"YulLiteral","src":"492:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"480:3:89","nodeType":"YulIdentifier","src":"480:3:89"},"nativeSrc":"480:17:89","nodeType":"YulFunctionCall","src":"480:17:89"},{"name":"end","nativeSrc":"499:3:89","nodeType":"YulIdentifier","src":"499:3:89"}],"functionName":{"name":"slt","nativeSrc":"476:3:89","nodeType":"YulIdentifier","src":"476:3:89"},"nativeSrc":"476:27:89","nodeType":"YulFunctionCall","src":"476:27:89"}],"functionName":{"name":"iszero","nativeSrc":"469:6:89","nodeType":"YulIdentifier","src":"469:6:89"},"nativeSrc":"469:35:89","nodeType":"YulFunctionCall","src":"469:35:89"},"nativeSrc":"466:55:89","nodeType":"YulIf","src":"466:55:89"},{"nativeSrc":"530:30:89","nodeType":"YulAssignment","src":"530:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"553:6:89","nodeType":"YulIdentifier","src":"553:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"540:12:89","nodeType":"YulIdentifier","src":"540:12:89"},"nativeSrc":"540:20:89","nodeType":"YulFunctionCall","src":"540:20:89"},"variableNames":[{"name":"length","nativeSrc":"530:6:89","nodeType":"YulIdentifier","src":"530:6:89"}]},{"body":{"nativeSrc":"603:16:89","nodeType":"YulBlock","src":"603:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"612:1:89","nodeType":"YulLiteral","src":"612:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"615:1:89","nodeType":"YulLiteral","src":"615:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"605:6:89","nodeType":"YulIdentifier","src":"605:6:89"},"nativeSrc":"605:12:89","nodeType":"YulFunctionCall","src":"605:12:89"},"nativeSrc":"605:12:89","nodeType":"YulExpressionStatement","src":"605:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"575:6:89","nodeType":"YulIdentifier","src":"575:6:89"},{"kind":"number","nativeSrc":"583:18:89","nodeType":"YulLiteral","src":"583:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"572:2:89","nodeType":"YulIdentifier","src":"572:2:89"},"nativeSrc":"572:30:89","nodeType":"YulFunctionCall","src":"572:30:89"},"nativeSrc":"569:50:89","nodeType":"YulIf","src":"569:50:89"},{"nativeSrc":"628:29:89","nodeType":"YulAssignment","src":"628:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"644:6:89","nodeType":"YulIdentifier","src":"644:6:89"},{"kind":"number","nativeSrc":"652:4:89","nodeType":"YulLiteral","src":"652:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"640:3:89","nodeType":"YulIdentifier","src":"640:3:89"},"nativeSrc":"640:17:89","nodeType":"YulFunctionCall","src":"640:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"628:8:89","nodeType":"YulIdentifier","src":"628:8:89"}]},{"body":{"nativeSrc":"709:16:89","nodeType":"YulBlock","src":"709:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"718:1:89","nodeType":"YulLiteral","src":"718:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"721:1:89","nodeType":"YulLiteral","src":"721:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"711:6:89","nodeType":"YulIdentifier","src":"711:6:89"},"nativeSrc":"711:12:89","nodeType":"YulFunctionCall","src":"711:12:89"},"nativeSrc":"711:12:89","nodeType":"YulExpressionStatement","src":"711:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"680:6:89","nodeType":"YulIdentifier","src":"680:6:89"},{"name":"length","nativeSrc":"688:6:89","nodeType":"YulIdentifier","src":"688:6:89"}],"functionName":{"name":"add","nativeSrc":"676:3:89","nodeType":"YulIdentifier","src":"676:3:89"},"nativeSrc":"676:19:89","nodeType":"YulFunctionCall","src":"676:19:89"},{"kind":"number","nativeSrc":"697:4:89","nodeType":"YulLiteral","src":"697:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"672:3:89","nodeType":"YulIdentifier","src":"672:3:89"},"nativeSrc":"672:30:89","nodeType":"YulFunctionCall","src":"672:30:89"},{"name":"end","nativeSrc":"704:3:89","nodeType":"YulIdentifier","src":"704:3:89"}],"functionName":{"name":"gt","nativeSrc":"669:2:89","nodeType":"YulIdentifier","src":"669:2:89"},"nativeSrc":"669:39:89","nodeType":"YulFunctionCall","src":"669:39:89"},"nativeSrc":"666:59:89","nodeType":"YulIf","src":"666:59:89"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"384:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"419:6:89","nodeType":"YulTypedName","src":"419:6:89","type":""},{"name":"end","nativeSrc":"427:3:89","nodeType":"YulTypedName","src":"427:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"435:8:89","nodeType":"YulTypedName","src":"435:8:89","type":""},{"name":"length","nativeSrc":"445:6:89","nodeType":"YulTypedName","src":"445:6:89","type":""}],"src":"384:347:89"},{"body":{"nativeSrc":"859:474:89","nodeType":"YulBlock","src":"859:474:89","statements":[{"body":{"nativeSrc":"905:16:89","nodeType":"YulBlock","src":"905:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"914:1:89","nodeType":"YulLiteral","src":"914:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"917:1:89","nodeType":"YulLiteral","src":"917:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"907:6:89","nodeType":"YulIdentifier","src":"907:6:89"},"nativeSrc":"907:12:89","nodeType":"YulFunctionCall","src":"907:12:89"},"nativeSrc":"907:12:89","nodeType":"YulExpressionStatement","src":"907:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"880:7:89","nodeType":"YulIdentifier","src":"880:7:89"},{"name":"headStart","nativeSrc":"889:9:89","nodeType":"YulIdentifier","src":"889:9:89"}],"functionName":{"name":"sub","nativeSrc":"876:3:89","nodeType":"YulIdentifier","src":"876:3:89"},"nativeSrc":"876:23:89","nodeType":"YulFunctionCall","src":"876:23:89"},{"kind":"number","nativeSrc":"901:2:89","nodeType":"YulLiteral","src":"901:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"872:3:89","nodeType":"YulIdentifier","src":"872:3:89"},"nativeSrc":"872:32:89","nodeType":"YulFunctionCall","src":"872:32:89"},"nativeSrc":"869:52:89","nodeType":"YulIf","src":"869:52:89"},{"nativeSrc":"930:39:89","nodeType":"YulAssignment","src":"930:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"959:9:89","nodeType":"YulIdentifier","src":"959:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"940:18:89","nodeType":"YulIdentifier","src":"940:18:89"},"nativeSrc":"940:29:89","nodeType":"YulFunctionCall","src":"940:29:89"},"variableNames":[{"name":"value0","nativeSrc":"930:6:89","nodeType":"YulIdentifier","src":"930:6:89"}]},{"nativeSrc":"978:14:89","nodeType":"YulVariableDeclaration","src":"978:14:89","value":{"kind":"number","nativeSrc":"991:1:89","nodeType":"YulLiteral","src":"991:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"982:5:89","nodeType":"YulTypedName","src":"982:5:89","type":""}]},{"nativeSrc":"1001:41:89","nodeType":"YulAssignment","src":"1001:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1027:9:89","nodeType":"YulIdentifier","src":"1027:9:89"},{"kind":"number","nativeSrc":"1038:2:89","nodeType":"YulLiteral","src":"1038:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1023:3:89","nodeType":"YulIdentifier","src":"1023:3:89"},"nativeSrc":"1023:18:89","nodeType":"YulFunctionCall","src":"1023:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1010:12:89","nodeType":"YulIdentifier","src":"1010:12:89"},"nativeSrc":"1010:32:89","nodeType":"YulFunctionCall","src":"1010:32:89"},"variableNames":[{"name":"value","nativeSrc":"1001:5:89","nodeType":"YulIdentifier","src":"1001:5:89"}]},{"nativeSrc":"1051:15:89","nodeType":"YulAssignment","src":"1051:15:89","value":{"name":"value","nativeSrc":"1061:5:89","nodeType":"YulIdentifier","src":"1061:5:89"},"variableNames":[{"name":"value1","nativeSrc":"1051:6:89","nodeType":"YulIdentifier","src":"1051:6:89"}]},{"nativeSrc":"1075:46:89","nodeType":"YulVariableDeclaration","src":"1075:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1106:9:89","nodeType":"YulIdentifier","src":"1106:9:89"},{"kind":"number","nativeSrc":"1117:2:89","nodeType":"YulLiteral","src":"1117:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1102:3:89","nodeType":"YulIdentifier","src":"1102:3:89"},"nativeSrc":"1102:18:89","nodeType":"YulFunctionCall","src":"1102:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1089:12:89","nodeType":"YulIdentifier","src":"1089:12:89"},"nativeSrc":"1089:32:89","nodeType":"YulFunctionCall","src":"1089:32:89"},"variables":[{"name":"offset","nativeSrc":"1079:6:89","nodeType":"YulTypedName","src":"1079:6:89","type":""}]},{"body":{"nativeSrc":"1164:16:89","nodeType":"YulBlock","src":"1164:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1173:1:89","nodeType":"YulLiteral","src":"1173:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1176:1:89","nodeType":"YulLiteral","src":"1176:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1166:6:89","nodeType":"YulIdentifier","src":"1166:6:89"},"nativeSrc":"1166:12:89","nodeType":"YulFunctionCall","src":"1166:12:89"},"nativeSrc":"1166:12:89","nodeType":"YulExpressionStatement","src":"1166:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1136:6:89","nodeType":"YulIdentifier","src":"1136:6:89"},{"kind":"number","nativeSrc":"1144:18:89","nodeType":"YulLiteral","src":"1144:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1133:2:89","nodeType":"YulIdentifier","src":"1133:2:89"},"nativeSrc":"1133:30:89","nodeType":"YulFunctionCall","src":"1133:30:89"},"nativeSrc":"1130:50:89","nodeType":"YulIf","src":"1130:50:89"},{"nativeSrc":"1189:84:89","nodeType":"YulVariableDeclaration","src":"1189:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1245:9:89","nodeType":"YulIdentifier","src":"1245:9:89"},{"name":"offset","nativeSrc":"1256:6:89","nodeType":"YulIdentifier","src":"1256:6:89"}],"functionName":{"name":"add","nativeSrc":"1241:3:89","nodeType":"YulIdentifier","src":"1241:3:89"},"nativeSrc":"1241:22:89","nodeType":"YulFunctionCall","src":"1241:22:89"},{"name":"dataEnd","nativeSrc":"1265:7:89","nodeType":"YulIdentifier","src":"1265:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1215:25:89","nodeType":"YulIdentifier","src":"1215:25:89"},"nativeSrc":"1215:58:89","nodeType":"YulFunctionCall","src":"1215:58:89"},"variables":[{"name":"value2_1","nativeSrc":"1193:8:89","nodeType":"YulTypedName","src":"1193:8:89","type":""},{"name":"value3_1","nativeSrc":"1203:8:89","nodeType":"YulTypedName","src":"1203:8:89","type":""}]},{"nativeSrc":"1282:18:89","nodeType":"YulAssignment","src":"1282:18:89","value":{"name":"value2_1","nativeSrc":"1292:8:89","nodeType":"YulIdentifier","src":"1292:8:89"},"variableNames":[{"name":"value2","nativeSrc":"1282:6:89","nodeType":"YulIdentifier","src":"1282:6:89"}]},{"nativeSrc":"1309:18:89","nodeType":"YulAssignment","src":"1309:18:89","value":{"name":"value3_1","nativeSrc":"1319:8:89","nodeType":"YulIdentifier","src":"1319:8:89"},"variableNames":[{"name":"value3","nativeSrc":"1309:6:89","nodeType":"YulIdentifier","src":"1309:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr","nativeSrc":"736:597:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"801:9:89","nodeType":"YulTypedName","src":"801:9:89","type":""},{"name":"dataEnd","nativeSrc":"812:7:89","nodeType":"YulTypedName","src":"812:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"824:6:89","nodeType":"YulTypedName","src":"824:6:89","type":""},{"name":"value1","nativeSrc":"832:6:89","nodeType":"YulTypedName","src":"832:6:89","type":""},{"name":"value2","nativeSrc":"840:6:89","nodeType":"YulTypedName","src":"840:6:89","type":""},{"name":"value3","nativeSrc":"848:6:89","nodeType":"YulTypedName","src":"848:6:89","type":""}],"src":"736:597:89"},{"body":{"nativeSrc":"1404:184:89","nodeType":"YulBlock","src":"1404:184:89","statements":[{"nativeSrc":"1414:10:89","nodeType":"YulVariableDeclaration","src":"1414:10:89","value":{"kind":"number","nativeSrc":"1423:1:89","nodeType":"YulLiteral","src":"1423:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"1418:1:89","nodeType":"YulTypedName","src":"1418:1:89","type":""}]},{"body":{"nativeSrc":"1483:63:89","nodeType":"YulBlock","src":"1483:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1508:3:89","nodeType":"YulIdentifier","src":"1508:3:89"},{"name":"i","nativeSrc":"1513:1:89","nodeType":"YulIdentifier","src":"1513:1:89"}],"functionName":{"name":"add","nativeSrc":"1504:3:89","nodeType":"YulIdentifier","src":"1504:3:89"},"nativeSrc":"1504:11:89","nodeType":"YulFunctionCall","src":"1504:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"1527:3:89","nodeType":"YulIdentifier","src":"1527:3:89"},{"name":"i","nativeSrc":"1532:1:89","nodeType":"YulIdentifier","src":"1532:1:89"}],"functionName":{"name":"add","nativeSrc":"1523:3:89","nodeType":"YulIdentifier","src":"1523:3:89"},"nativeSrc":"1523:11:89","nodeType":"YulFunctionCall","src":"1523:11:89"}],"functionName":{"name":"mload","nativeSrc":"1517:5:89","nodeType":"YulIdentifier","src":"1517:5:89"},"nativeSrc":"1517:18:89","nodeType":"YulFunctionCall","src":"1517:18:89"}],"functionName":{"name":"mstore","nativeSrc":"1497:6:89","nodeType":"YulIdentifier","src":"1497:6:89"},"nativeSrc":"1497:39:89","nodeType":"YulFunctionCall","src":"1497:39:89"},"nativeSrc":"1497:39:89","nodeType":"YulExpressionStatement","src":"1497:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"1444:1:89","nodeType":"YulIdentifier","src":"1444:1:89"},{"name":"length","nativeSrc":"1447:6:89","nodeType":"YulIdentifier","src":"1447:6:89"}],"functionName":{"name":"lt","nativeSrc":"1441:2:89","nodeType":"YulIdentifier","src":"1441:2:89"},"nativeSrc":"1441:13:89","nodeType":"YulFunctionCall","src":"1441:13:89"},"nativeSrc":"1433:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"1455:19:89","nodeType":"YulBlock","src":"1455:19:89","statements":[{"nativeSrc":"1457:15:89","nodeType":"YulAssignment","src":"1457:15:89","value":{"arguments":[{"name":"i","nativeSrc":"1466:1:89","nodeType":"YulIdentifier","src":"1466:1:89"},{"kind":"number","nativeSrc":"1469:2:89","nodeType":"YulLiteral","src":"1469:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1462:3:89","nodeType":"YulIdentifier","src":"1462:3:89"},"nativeSrc":"1462:10:89","nodeType":"YulFunctionCall","src":"1462:10:89"},"variableNames":[{"name":"i","nativeSrc":"1457:1:89","nodeType":"YulIdentifier","src":"1457:1:89"}]}]},"pre":{"nativeSrc":"1437:3:89","nodeType":"YulBlock","src":"1437:3:89","statements":[]},"src":"1433:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1566:3:89","nodeType":"YulIdentifier","src":"1566:3:89"},{"name":"length","nativeSrc":"1571:6:89","nodeType":"YulIdentifier","src":"1571:6:89"}],"functionName":{"name":"add","nativeSrc":"1562:3:89","nodeType":"YulIdentifier","src":"1562:3:89"},"nativeSrc":"1562:16:89","nodeType":"YulFunctionCall","src":"1562:16:89"},{"kind":"number","nativeSrc":"1580:1:89","nodeType":"YulLiteral","src":"1580:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1555:6:89","nodeType":"YulIdentifier","src":"1555:6:89"},"nativeSrc":"1555:27:89","nodeType":"YulFunctionCall","src":"1555:27:89"},"nativeSrc":"1555:27:89","nodeType":"YulExpressionStatement","src":"1555:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1338:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1382:3:89","nodeType":"YulTypedName","src":"1382:3:89","type":""},{"name":"dst","nativeSrc":"1387:3:89","nodeType":"YulTypedName","src":"1387:3:89","type":""},{"name":"length","nativeSrc":"1392:6:89","nodeType":"YulTypedName","src":"1392:6:89","type":""}],"src":"1338:250:89"},{"body":{"nativeSrc":"1642:221:89","nodeType":"YulBlock","src":"1642:221:89","statements":[{"nativeSrc":"1652:26:89","nodeType":"YulVariableDeclaration","src":"1652:26:89","value":{"arguments":[{"name":"value","nativeSrc":"1672:5:89","nodeType":"YulIdentifier","src":"1672:5:89"}],"functionName":{"name":"mload","nativeSrc":"1666:5:89","nodeType":"YulIdentifier","src":"1666:5:89"},"nativeSrc":"1666:12:89","nodeType":"YulFunctionCall","src":"1666:12:89"},"variables":[{"name":"length","nativeSrc":"1656:6:89","nodeType":"YulTypedName","src":"1656:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"1694:3:89","nodeType":"YulIdentifier","src":"1694:3:89"},{"name":"length","nativeSrc":"1699:6:89","nodeType":"YulIdentifier","src":"1699:6:89"}],"functionName":{"name":"mstore","nativeSrc":"1687:6:89","nodeType":"YulIdentifier","src":"1687:6:89"},"nativeSrc":"1687:19:89","nodeType":"YulFunctionCall","src":"1687:19:89"},"nativeSrc":"1687:19:89","nodeType":"YulExpressionStatement","src":"1687:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1754:5:89","nodeType":"YulIdentifier","src":"1754:5:89"},{"kind":"number","nativeSrc":"1761:4:89","nodeType":"YulLiteral","src":"1761:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1750:3:89","nodeType":"YulIdentifier","src":"1750:3:89"},"nativeSrc":"1750:16:89","nodeType":"YulFunctionCall","src":"1750:16:89"},{"arguments":[{"name":"pos","nativeSrc":"1772:3:89","nodeType":"YulIdentifier","src":"1772:3:89"},{"kind":"number","nativeSrc":"1777:4:89","nodeType":"YulLiteral","src":"1777:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1768:3:89","nodeType":"YulIdentifier","src":"1768:3:89"},"nativeSrc":"1768:14:89","nodeType":"YulFunctionCall","src":"1768:14:89"},{"name":"length","nativeSrc":"1784:6:89","nodeType":"YulIdentifier","src":"1784:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1715:34:89","nodeType":"YulIdentifier","src":"1715:34:89"},"nativeSrc":"1715:76:89","nodeType":"YulFunctionCall","src":"1715:76:89"},"nativeSrc":"1715:76:89","nodeType":"YulExpressionStatement","src":"1715:76:89"},{"nativeSrc":"1800:57:89","nodeType":"YulAssignment","src":"1800:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"1815:3:89","nodeType":"YulIdentifier","src":"1815:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1828:6:89","nodeType":"YulIdentifier","src":"1828:6:89"},{"kind":"number","nativeSrc":"1836:2:89","nodeType":"YulLiteral","src":"1836:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1824:3:89","nodeType":"YulIdentifier","src":"1824:3:89"},"nativeSrc":"1824:15:89","nodeType":"YulFunctionCall","src":"1824:15:89"},{"arguments":[{"kind":"number","nativeSrc":"1845:2:89","nodeType":"YulLiteral","src":"1845:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1841:3:89","nodeType":"YulIdentifier","src":"1841:3:89"},"nativeSrc":"1841:7:89","nodeType":"YulFunctionCall","src":"1841:7:89"}],"functionName":{"name":"and","nativeSrc":"1820:3:89","nodeType":"YulIdentifier","src":"1820:3:89"},"nativeSrc":"1820:29:89","nodeType":"YulFunctionCall","src":"1820:29:89"}],"functionName":{"name":"add","nativeSrc":"1811:3:89","nodeType":"YulIdentifier","src":"1811:3:89"},"nativeSrc":"1811:39:89","nodeType":"YulFunctionCall","src":"1811:39:89"},{"kind":"number","nativeSrc":"1852:4:89","nodeType":"YulLiteral","src":"1852:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1807:3:89","nodeType":"YulIdentifier","src":"1807:3:89"},"nativeSrc":"1807:50:89","nodeType":"YulFunctionCall","src":"1807:50:89"},"variableNames":[{"name":"end","nativeSrc":"1800:3:89","nodeType":"YulIdentifier","src":"1800:3:89"}]}]},"name":"abi_encode_bytes","nativeSrc":"1593:270:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1619:5:89","nodeType":"YulTypedName","src":"1619:5:89","type":""},{"name":"pos","nativeSrc":"1626:3:89","nodeType":"YulTypedName","src":"1626:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1634:3:89","nodeType":"YulTypedName","src":"1634:3:89","type":""}],"src":"1593:270:89"},{"body":{"nativeSrc":"2009:157:89","nodeType":"YulBlock","src":"2009:157:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2026:9:89","nodeType":"YulIdentifier","src":"2026:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2051:6:89","nodeType":"YulIdentifier","src":"2051:6:89"}],"functionName":{"name":"iszero","nativeSrc":"2044:6:89","nodeType":"YulIdentifier","src":"2044:6:89"},"nativeSrc":"2044:14:89","nodeType":"YulFunctionCall","src":"2044:14:89"}],"functionName":{"name":"iszero","nativeSrc":"2037:6:89","nodeType":"YulIdentifier","src":"2037:6:89"},"nativeSrc":"2037:22:89","nodeType":"YulFunctionCall","src":"2037:22:89"}],"functionName":{"name":"mstore","nativeSrc":"2019:6:89","nodeType":"YulIdentifier","src":"2019:6:89"},"nativeSrc":"2019:41:89","nodeType":"YulFunctionCall","src":"2019:41:89"},"nativeSrc":"2019:41:89","nodeType":"YulExpressionStatement","src":"2019:41:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2080:9:89","nodeType":"YulIdentifier","src":"2080:9:89"},{"kind":"number","nativeSrc":"2091:2:89","nodeType":"YulLiteral","src":"2091:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2076:3:89","nodeType":"YulIdentifier","src":"2076:3:89"},"nativeSrc":"2076:18:89","nodeType":"YulFunctionCall","src":"2076:18:89"},{"kind":"number","nativeSrc":"2096:2:89","nodeType":"YulLiteral","src":"2096:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"2069:6:89","nodeType":"YulIdentifier","src":"2069:6:89"},"nativeSrc":"2069:30:89","nodeType":"YulFunctionCall","src":"2069:30:89"},"nativeSrc":"2069:30:89","nodeType":"YulExpressionStatement","src":"2069:30:89"},{"nativeSrc":"2108:52:89","nodeType":"YulAssignment","src":"2108:52:89","value":{"arguments":[{"name":"value1","nativeSrc":"2133:6:89","nodeType":"YulIdentifier","src":"2133:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"2145:9:89","nodeType":"YulIdentifier","src":"2145:9:89"},{"kind":"number","nativeSrc":"2156:2:89","nodeType":"YulLiteral","src":"2156:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2141:3:89","nodeType":"YulIdentifier","src":"2141:3:89"},"nativeSrc":"2141:18:89","nodeType":"YulFunctionCall","src":"2141:18:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"2116:16:89","nodeType":"YulIdentifier","src":"2116:16:89"},"nativeSrc":"2116:44:89","nodeType":"YulFunctionCall","src":"2116:44:89"},"variableNames":[{"name":"tail","nativeSrc":"2108:4:89","nodeType":"YulIdentifier","src":"2108:4:89"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"1868:298:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1970:9:89","nodeType":"YulTypedName","src":"1970:9:89","type":""},{"name":"value1","nativeSrc":"1981:6:89","nodeType":"YulTypedName","src":"1981:6:89","type":""},{"name":"value0","nativeSrc":"1989:6:89","nodeType":"YulTypedName","src":"1989:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2000:4:89","nodeType":"YulTypedName","src":"2000:4:89","type":""}],"src":"1868:298:89"},{"body":{"nativeSrc":"2255:283:89","nodeType":"YulBlock","src":"2255:283:89","statements":[{"body":{"nativeSrc":"2304:16:89","nodeType":"YulBlock","src":"2304:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2313:1:89","nodeType":"YulLiteral","src":"2313:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2316:1:89","nodeType":"YulLiteral","src":"2316:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2306:6:89","nodeType":"YulIdentifier","src":"2306:6:89"},"nativeSrc":"2306:12:89","nodeType":"YulFunctionCall","src":"2306:12:89"},"nativeSrc":"2306:12:89","nodeType":"YulExpressionStatement","src":"2306:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2283:6:89","nodeType":"YulIdentifier","src":"2283:6:89"},{"kind":"number","nativeSrc":"2291:4:89","nodeType":"YulLiteral","src":"2291:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2279:3:89","nodeType":"YulIdentifier","src":"2279:3:89"},"nativeSrc":"2279:17:89","nodeType":"YulFunctionCall","src":"2279:17:89"},{"name":"end","nativeSrc":"2298:3:89","nodeType":"YulIdentifier","src":"2298:3:89"}],"functionName":{"name":"slt","nativeSrc":"2275:3:89","nodeType":"YulIdentifier","src":"2275:3:89"},"nativeSrc":"2275:27:89","nodeType":"YulFunctionCall","src":"2275:27:89"}],"functionName":{"name":"iszero","nativeSrc":"2268:6:89","nodeType":"YulIdentifier","src":"2268:6:89"},"nativeSrc":"2268:35:89","nodeType":"YulFunctionCall","src":"2268:35:89"},"nativeSrc":"2265:55:89","nodeType":"YulIf","src":"2265:55:89"},{"nativeSrc":"2329:30:89","nodeType":"YulAssignment","src":"2329:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"2352:6:89","nodeType":"YulIdentifier","src":"2352:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"2339:12:89","nodeType":"YulIdentifier","src":"2339:12:89"},"nativeSrc":"2339:20:89","nodeType":"YulFunctionCall","src":"2339:20:89"},"variableNames":[{"name":"length","nativeSrc":"2329:6:89","nodeType":"YulIdentifier","src":"2329:6:89"}]},{"body":{"nativeSrc":"2402:16:89","nodeType":"YulBlock","src":"2402:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2411:1:89","nodeType":"YulLiteral","src":"2411:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2414:1:89","nodeType":"YulLiteral","src":"2414:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2404:6:89","nodeType":"YulIdentifier","src":"2404:6:89"},"nativeSrc":"2404:12:89","nodeType":"YulFunctionCall","src":"2404:12:89"},"nativeSrc":"2404:12:89","nodeType":"YulExpressionStatement","src":"2404:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2374:6:89","nodeType":"YulIdentifier","src":"2374:6:89"},{"kind":"number","nativeSrc":"2382:18:89","nodeType":"YulLiteral","src":"2382:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2371:2:89","nodeType":"YulIdentifier","src":"2371:2:89"},"nativeSrc":"2371:30:89","nodeType":"YulFunctionCall","src":"2371:30:89"},"nativeSrc":"2368:50:89","nodeType":"YulIf","src":"2368:50:89"},{"nativeSrc":"2427:29:89","nodeType":"YulAssignment","src":"2427:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"2443:6:89","nodeType":"YulIdentifier","src":"2443:6:89"},{"kind":"number","nativeSrc":"2451:4:89","nodeType":"YulLiteral","src":"2451:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2439:3:89","nodeType":"YulIdentifier","src":"2439:3:89"},"nativeSrc":"2439:17:89","nodeType":"YulFunctionCall","src":"2439:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"2427:8:89","nodeType":"YulIdentifier","src":"2427:8:89"}]},{"body":{"nativeSrc":"2516:16:89","nodeType":"YulBlock","src":"2516:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2525:1:89","nodeType":"YulLiteral","src":"2525:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2528:1:89","nodeType":"YulLiteral","src":"2528:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2518:6:89","nodeType":"YulIdentifier","src":"2518:6:89"},"nativeSrc":"2518:12:89","nodeType":"YulFunctionCall","src":"2518:12:89"},"nativeSrc":"2518:12:89","nodeType":"YulExpressionStatement","src":"2518:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2479:6:89","nodeType":"YulIdentifier","src":"2479:6:89"},{"arguments":[{"kind":"number","nativeSrc":"2491:1:89","nodeType":"YulLiteral","src":"2491:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"2494:6:89","nodeType":"YulIdentifier","src":"2494:6:89"}],"functionName":{"name":"shl","nativeSrc":"2487:3:89","nodeType":"YulIdentifier","src":"2487:3:89"},"nativeSrc":"2487:14:89","nodeType":"YulFunctionCall","src":"2487:14:89"}],"functionName":{"name":"add","nativeSrc":"2475:3:89","nodeType":"YulIdentifier","src":"2475:3:89"},"nativeSrc":"2475:27:89","nodeType":"YulFunctionCall","src":"2475:27:89"},{"kind":"number","nativeSrc":"2504:4:89","nodeType":"YulLiteral","src":"2504:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2471:3:89","nodeType":"YulIdentifier","src":"2471:3:89"},"nativeSrc":"2471:38:89","nodeType":"YulFunctionCall","src":"2471:38:89"},{"name":"end","nativeSrc":"2511:3:89","nodeType":"YulIdentifier","src":"2511:3:89"}],"functionName":{"name":"gt","nativeSrc":"2468:2:89","nodeType":"YulIdentifier","src":"2468:2:89"},"nativeSrc":"2468:47:89","nodeType":"YulFunctionCall","src":"2468:47:89"},"nativeSrc":"2465:67:89","nodeType":"YulIf","src":"2465:67:89"}]},"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"2171:367:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2218:6:89","nodeType":"YulTypedName","src":"2218:6:89","type":""},{"name":"end","nativeSrc":"2226:3:89","nodeType":"YulTypedName","src":"2226:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2234:8:89","nodeType":"YulTypedName","src":"2234:8:89","type":""},{"name":"length","nativeSrc":"2244:6:89","nodeType":"YulTypedName","src":"2244:6:89","type":""}],"src":"2171:367:89"},{"body":{"nativeSrc":"2763:890:89","nodeType":"YulBlock","src":"2763:890:89","statements":[{"body":{"nativeSrc":"2809:16:89","nodeType":"YulBlock","src":"2809:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2818:1:89","nodeType":"YulLiteral","src":"2818:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2821:1:89","nodeType":"YulLiteral","src":"2821:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2811:6:89","nodeType":"YulIdentifier","src":"2811:6:89"},"nativeSrc":"2811:12:89","nodeType":"YulFunctionCall","src":"2811:12:89"},"nativeSrc":"2811:12:89","nodeType":"YulExpressionStatement","src":"2811:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2784:7:89","nodeType":"YulIdentifier","src":"2784:7:89"},{"name":"headStart","nativeSrc":"2793:9:89","nodeType":"YulIdentifier","src":"2793:9:89"}],"functionName":{"name":"sub","nativeSrc":"2780:3:89","nodeType":"YulIdentifier","src":"2780:3:89"},"nativeSrc":"2780:23:89","nodeType":"YulFunctionCall","src":"2780:23:89"},{"kind":"number","nativeSrc":"2805:2:89","nodeType":"YulLiteral","src":"2805:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2776:3:89","nodeType":"YulIdentifier","src":"2776:3:89"},"nativeSrc":"2776:32:89","nodeType":"YulFunctionCall","src":"2776:32:89"},"nativeSrc":"2773:52:89","nodeType":"YulIf","src":"2773:52:89"},{"nativeSrc":"2834:37:89","nodeType":"YulVariableDeclaration","src":"2834:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2861:9:89","nodeType":"YulIdentifier","src":"2861:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"2848:12:89","nodeType":"YulIdentifier","src":"2848:12:89"},"nativeSrc":"2848:23:89","nodeType":"YulFunctionCall","src":"2848:23:89"},"variables":[{"name":"offset","nativeSrc":"2838:6:89","nodeType":"YulTypedName","src":"2838:6:89","type":""}]},{"body":{"nativeSrc":"2914:16:89","nodeType":"YulBlock","src":"2914:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2923:1:89","nodeType":"YulLiteral","src":"2923:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2926:1:89","nodeType":"YulLiteral","src":"2926:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2916:6:89","nodeType":"YulIdentifier","src":"2916:6:89"},"nativeSrc":"2916:12:89","nodeType":"YulFunctionCall","src":"2916:12:89"},"nativeSrc":"2916:12:89","nodeType":"YulExpressionStatement","src":"2916:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2886:6:89","nodeType":"YulIdentifier","src":"2886:6:89"},{"kind":"number","nativeSrc":"2894:18:89","nodeType":"YulLiteral","src":"2894:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2883:2:89","nodeType":"YulIdentifier","src":"2883:2:89"},"nativeSrc":"2883:30:89","nodeType":"YulFunctionCall","src":"2883:30:89"},"nativeSrc":"2880:50:89","nodeType":"YulIf","src":"2880:50:89"},{"nativeSrc":"2939:96:89","nodeType":"YulVariableDeclaration","src":"2939:96:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3007:9:89","nodeType":"YulIdentifier","src":"3007:9:89"},{"name":"offset","nativeSrc":"3018:6:89","nodeType":"YulIdentifier","src":"3018:6:89"}],"functionName":{"name":"add","nativeSrc":"3003:3:89","nodeType":"YulIdentifier","src":"3003:3:89"},"nativeSrc":"3003:22:89","nodeType":"YulFunctionCall","src":"3003:22:89"},{"name":"dataEnd","nativeSrc":"3027:7:89","nodeType":"YulIdentifier","src":"3027:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"2965:37:89","nodeType":"YulIdentifier","src":"2965:37:89"},"nativeSrc":"2965:70:89","nodeType":"YulFunctionCall","src":"2965:70:89"},"variables":[{"name":"value0_1","nativeSrc":"2943:8:89","nodeType":"YulTypedName","src":"2943:8:89","type":""},{"name":"value1_1","nativeSrc":"2953:8:89","nodeType":"YulTypedName","src":"2953:8:89","type":""}]},{"nativeSrc":"3044:18:89","nodeType":"YulAssignment","src":"3044:18:89","value":{"name":"value0_1","nativeSrc":"3054:8:89","nodeType":"YulIdentifier","src":"3054:8:89"},"variableNames":[{"name":"value0","nativeSrc":"3044:6:89","nodeType":"YulIdentifier","src":"3044:6:89"}]},{"nativeSrc":"3071:18:89","nodeType":"YulAssignment","src":"3071:18:89","value":{"name":"value1_1","nativeSrc":"3081:8:89","nodeType":"YulIdentifier","src":"3081:8:89"},"variableNames":[{"name":"value1","nativeSrc":"3071:6:89","nodeType":"YulIdentifier","src":"3071:6:89"}]},{"nativeSrc":"3098:48:89","nodeType":"YulVariableDeclaration","src":"3098:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3131:9:89","nodeType":"YulIdentifier","src":"3131:9:89"},{"kind":"number","nativeSrc":"3142:2:89","nodeType":"YulLiteral","src":"3142:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3127:3:89","nodeType":"YulIdentifier","src":"3127:3:89"},"nativeSrc":"3127:18:89","nodeType":"YulFunctionCall","src":"3127:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3114:12:89","nodeType":"YulIdentifier","src":"3114:12:89"},"nativeSrc":"3114:32:89","nodeType":"YulFunctionCall","src":"3114:32:89"},"variables":[{"name":"offset_1","nativeSrc":"3102:8:89","nodeType":"YulTypedName","src":"3102:8:89","type":""}]},{"body":{"nativeSrc":"3191:16:89","nodeType":"YulBlock","src":"3191:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3200:1:89","nodeType":"YulLiteral","src":"3200:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3203:1:89","nodeType":"YulLiteral","src":"3203:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3193:6:89","nodeType":"YulIdentifier","src":"3193:6:89"},"nativeSrc":"3193:12:89","nodeType":"YulFunctionCall","src":"3193:12:89"},"nativeSrc":"3193:12:89","nodeType":"YulExpressionStatement","src":"3193:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3161:8:89","nodeType":"YulIdentifier","src":"3161:8:89"},{"kind":"number","nativeSrc":"3171:18:89","nodeType":"YulLiteral","src":"3171:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3158:2:89","nodeType":"YulIdentifier","src":"3158:2:89"},"nativeSrc":"3158:32:89","nodeType":"YulFunctionCall","src":"3158:32:89"},"nativeSrc":"3155:52:89","nodeType":"YulIf","src":"3155:52:89"},{"nativeSrc":"3216:98:89","nodeType":"YulVariableDeclaration","src":"3216:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3284:9:89","nodeType":"YulIdentifier","src":"3284:9:89"},{"name":"offset_1","nativeSrc":"3295:8:89","nodeType":"YulIdentifier","src":"3295:8:89"}],"functionName":{"name":"add","nativeSrc":"3280:3:89","nodeType":"YulIdentifier","src":"3280:3:89"},"nativeSrc":"3280:24:89","nodeType":"YulFunctionCall","src":"3280:24:89"},{"name":"dataEnd","nativeSrc":"3306:7:89","nodeType":"YulIdentifier","src":"3306:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"3242:37:89","nodeType":"YulIdentifier","src":"3242:37:89"},"nativeSrc":"3242:72:89","nodeType":"YulFunctionCall","src":"3242:72:89"},"variables":[{"name":"value2_1","nativeSrc":"3220:8:89","nodeType":"YulTypedName","src":"3220:8:89","type":""},{"name":"value3_1","nativeSrc":"3230:8:89","nodeType":"YulTypedName","src":"3230:8:89","type":""}]},{"nativeSrc":"3323:18:89","nodeType":"YulAssignment","src":"3323:18:89","value":{"name":"value2_1","nativeSrc":"3333:8:89","nodeType":"YulIdentifier","src":"3333:8:89"},"variableNames":[{"name":"value2","nativeSrc":"3323:6:89","nodeType":"YulIdentifier","src":"3323:6:89"}]},{"nativeSrc":"3350:18:89","nodeType":"YulAssignment","src":"3350:18:89","value":{"name":"value3_1","nativeSrc":"3360:8:89","nodeType":"YulIdentifier","src":"3360:8:89"},"variableNames":[{"name":"value3","nativeSrc":"3350:6:89","nodeType":"YulIdentifier","src":"3350:6:89"}]},{"nativeSrc":"3377:48:89","nodeType":"YulVariableDeclaration","src":"3377:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3410:9:89","nodeType":"YulIdentifier","src":"3410:9:89"},{"kind":"number","nativeSrc":"3421:2:89","nodeType":"YulLiteral","src":"3421:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3406:3:89","nodeType":"YulIdentifier","src":"3406:3:89"},"nativeSrc":"3406:18:89","nodeType":"YulFunctionCall","src":"3406:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3393:12:89","nodeType":"YulIdentifier","src":"3393:12:89"},"nativeSrc":"3393:32:89","nodeType":"YulFunctionCall","src":"3393:32:89"},"variables":[{"name":"offset_2","nativeSrc":"3381:8:89","nodeType":"YulTypedName","src":"3381:8:89","type":""}]},{"body":{"nativeSrc":"3470:16:89","nodeType":"YulBlock","src":"3470:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3479:1:89","nodeType":"YulLiteral","src":"3479:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3482:1:89","nodeType":"YulLiteral","src":"3482:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3472:6:89","nodeType":"YulIdentifier","src":"3472:6:89"},"nativeSrc":"3472:12:89","nodeType":"YulFunctionCall","src":"3472:12:89"},"nativeSrc":"3472:12:89","nodeType":"YulExpressionStatement","src":"3472:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"3440:8:89","nodeType":"YulIdentifier","src":"3440:8:89"},{"kind":"number","nativeSrc":"3450:18:89","nodeType":"YulLiteral","src":"3450:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3437:2:89","nodeType":"YulIdentifier","src":"3437:2:89"},"nativeSrc":"3437:32:89","nodeType":"YulFunctionCall","src":"3437:32:89"},"nativeSrc":"3434:52:89","nodeType":"YulIf","src":"3434:52:89"},{"nativeSrc":"3495:98:89","nodeType":"YulVariableDeclaration","src":"3495:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3563:9:89","nodeType":"YulIdentifier","src":"3563:9:89"},{"name":"offset_2","nativeSrc":"3574:8:89","nodeType":"YulIdentifier","src":"3574:8:89"}],"functionName":{"name":"add","nativeSrc":"3559:3:89","nodeType":"YulIdentifier","src":"3559:3:89"},"nativeSrc":"3559:24:89","nodeType":"YulFunctionCall","src":"3559:24:89"},{"name":"dataEnd","nativeSrc":"3585:7:89","nodeType":"YulIdentifier","src":"3585:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"3521:37:89","nodeType":"YulIdentifier","src":"3521:37:89"},"nativeSrc":"3521:72:89","nodeType":"YulFunctionCall","src":"3521:72:89"},"variables":[{"name":"value4_1","nativeSrc":"3499:8:89","nodeType":"YulTypedName","src":"3499:8:89","type":""},{"name":"value5_1","nativeSrc":"3509:8:89","nodeType":"YulTypedName","src":"3509:8:89","type":""}]},{"nativeSrc":"3602:18:89","nodeType":"YulAssignment","src":"3602:18:89","value":{"name":"value4_1","nativeSrc":"3612:8:89","nodeType":"YulIdentifier","src":"3612:8:89"},"variableNames":[{"name":"value4","nativeSrc":"3602:6:89","nodeType":"YulIdentifier","src":"3602:6:89"}]},{"nativeSrc":"3629:18:89","nodeType":"YulAssignment","src":"3629:18:89","value":{"name":"value5_1","nativeSrc":"3639:8:89","nodeType":"YulIdentifier","src":"3639:8:89"},"variableNames":[{"name":"value5","nativeSrc":"3629:6:89","nodeType":"YulIdentifier","src":"3629:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"2543:1110:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2689:9:89","nodeType":"YulTypedName","src":"2689:9:89","type":""},{"name":"dataEnd","nativeSrc":"2700:7:89","nodeType":"YulTypedName","src":"2700:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2712:6:89","nodeType":"YulTypedName","src":"2712:6:89","type":""},{"name":"value1","nativeSrc":"2720:6:89","nodeType":"YulTypedName","src":"2720:6:89","type":""},{"name":"value2","nativeSrc":"2728:6:89","nodeType":"YulTypedName","src":"2728:6:89","type":""},{"name":"value3","nativeSrc":"2736:6:89","nodeType":"YulTypedName","src":"2736:6:89","type":""},{"name":"value4","nativeSrc":"2744:6:89","nodeType":"YulTypedName","src":"2744:6:89","type":""},{"name":"value5","nativeSrc":"2752:6:89","nodeType":"YulTypedName","src":"2752:6:89","type":""}],"src":"2543:1110:89"},{"body":{"nativeSrc":"3827:610:89","nodeType":"YulBlock","src":"3827:610:89","statements":[{"nativeSrc":"3837:32:89","nodeType":"YulVariableDeclaration","src":"3837:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3855:9:89","nodeType":"YulIdentifier","src":"3855:9:89"},{"kind":"number","nativeSrc":"3866:2:89","nodeType":"YulLiteral","src":"3866:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3851:3:89","nodeType":"YulIdentifier","src":"3851:3:89"},"nativeSrc":"3851:18:89","nodeType":"YulFunctionCall","src":"3851:18:89"},"variables":[{"name":"tail_1","nativeSrc":"3841:6:89","nodeType":"YulTypedName","src":"3841:6:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3885:9:89","nodeType":"YulIdentifier","src":"3885:9:89"},{"kind":"number","nativeSrc":"3896:2:89","nodeType":"YulLiteral","src":"3896:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3878:6:89","nodeType":"YulIdentifier","src":"3878:6:89"},"nativeSrc":"3878:21:89","nodeType":"YulFunctionCall","src":"3878:21:89"},"nativeSrc":"3878:21:89","nodeType":"YulExpressionStatement","src":"3878:21:89"},{"nativeSrc":"3908:17:89","nodeType":"YulVariableDeclaration","src":"3908:17:89","value":{"name":"tail_1","nativeSrc":"3919:6:89","nodeType":"YulIdentifier","src":"3919:6:89"},"variables":[{"name":"pos","nativeSrc":"3912:3:89","nodeType":"YulTypedName","src":"3912:3:89","type":""}]},{"nativeSrc":"3934:27:89","nodeType":"YulVariableDeclaration","src":"3934:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"3954:6:89","nodeType":"YulIdentifier","src":"3954:6:89"}],"functionName":{"name":"mload","nativeSrc":"3948:5:89","nodeType":"YulIdentifier","src":"3948:5:89"},"nativeSrc":"3948:13:89","nodeType":"YulFunctionCall","src":"3948:13:89"},"variables":[{"name":"length","nativeSrc":"3938:6:89","nodeType":"YulTypedName","src":"3938:6:89","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"3977:6:89","nodeType":"YulIdentifier","src":"3977:6:89"},{"name":"length","nativeSrc":"3985:6:89","nodeType":"YulIdentifier","src":"3985:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3970:6:89","nodeType":"YulIdentifier","src":"3970:6:89"},"nativeSrc":"3970:22:89","nodeType":"YulFunctionCall","src":"3970:22:89"},"nativeSrc":"3970:22:89","nodeType":"YulExpressionStatement","src":"3970:22:89"},{"nativeSrc":"4001:25:89","nodeType":"YulAssignment","src":"4001:25:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4012:9:89","nodeType":"YulIdentifier","src":"4012:9:89"},{"kind":"number","nativeSrc":"4023:2:89","nodeType":"YulLiteral","src":"4023:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4008:3:89","nodeType":"YulIdentifier","src":"4008:3:89"},"nativeSrc":"4008:18:89","nodeType":"YulFunctionCall","src":"4008:18:89"},"variableNames":[{"name":"pos","nativeSrc":"4001:3:89","nodeType":"YulIdentifier","src":"4001:3:89"}]},{"nativeSrc":"4035:53:89","nodeType":"YulVariableDeclaration","src":"4035:53:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4057:9:89","nodeType":"YulIdentifier","src":"4057:9:89"},{"arguments":[{"kind":"number","nativeSrc":"4072:1:89","nodeType":"YulLiteral","src":"4072:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"4075:6:89","nodeType":"YulIdentifier","src":"4075:6:89"}],"functionName":{"name":"shl","nativeSrc":"4068:3:89","nodeType":"YulIdentifier","src":"4068:3:89"},"nativeSrc":"4068:14:89","nodeType":"YulFunctionCall","src":"4068:14:89"}],"functionName":{"name":"add","nativeSrc":"4053:3:89","nodeType":"YulIdentifier","src":"4053:3:89"},"nativeSrc":"4053:30:89","nodeType":"YulFunctionCall","src":"4053:30:89"},{"kind":"number","nativeSrc":"4085:2:89","nodeType":"YulLiteral","src":"4085:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4049:3:89","nodeType":"YulIdentifier","src":"4049:3:89"},"nativeSrc":"4049:39:89","nodeType":"YulFunctionCall","src":"4049:39:89"},"variables":[{"name":"tail_2","nativeSrc":"4039:6:89","nodeType":"YulTypedName","src":"4039:6:89","type":""}]},{"nativeSrc":"4097:29:89","nodeType":"YulVariableDeclaration","src":"4097:29:89","value":{"arguments":[{"name":"value0","nativeSrc":"4115:6:89","nodeType":"YulIdentifier","src":"4115:6:89"},{"kind":"number","nativeSrc":"4123:2:89","nodeType":"YulLiteral","src":"4123:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4111:3:89","nodeType":"YulIdentifier","src":"4111:3:89"},"nativeSrc":"4111:15:89","nodeType":"YulFunctionCall","src":"4111:15:89"},"variables":[{"name":"srcPtr","nativeSrc":"4101:6:89","nodeType":"YulTypedName","src":"4101:6:89","type":""}]},{"nativeSrc":"4135:10:89","nodeType":"YulVariableDeclaration","src":"4135:10:89","value":{"kind":"number","nativeSrc":"4144:1:89","nodeType":"YulLiteral","src":"4144:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4139:1:89","nodeType":"YulTypedName","src":"4139:1:89","type":""}]},{"body":{"nativeSrc":"4203:205:89","nodeType":"YulBlock","src":"4203:205:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4224:3:89","nodeType":"YulIdentifier","src":"4224:3:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"4237:6:89","nodeType":"YulIdentifier","src":"4237:6:89"},{"name":"headStart","nativeSrc":"4245:9:89","nodeType":"YulIdentifier","src":"4245:9:89"}],"functionName":{"name":"sub","nativeSrc":"4233:3:89","nodeType":"YulIdentifier","src":"4233:3:89"},"nativeSrc":"4233:22:89","nodeType":"YulFunctionCall","src":"4233:22:89"},{"arguments":[{"kind":"number","nativeSrc":"4261:2:89","nodeType":"YulLiteral","src":"4261:2:89","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"4257:3:89","nodeType":"YulIdentifier","src":"4257:3:89"},"nativeSrc":"4257:7:89","nodeType":"YulFunctionCall","src":"4257:7:89"}],"functionName":{"name":"add","nativeSrc":"4229:3:89","nodeType":"YulIdentifier","src":"4229:3:89"},"nativeSrc":"4229:36:89","nodeType":"YulFunctionCall","src":"4229:36:89"}],"functionName":{"name":"mstore","nativeSrc":"4217:6:89","nodeType":"YulIdentifier","src":"4217:6:89"},"nativeSrc":"4217:49:89","nodeType":"YulFunctionCall","src":"4217:49:89"},"nativeSrc":"4217:49:89","nodeType":"YulExpressionStatement","src":"4217:49:89"},{"nativeSrc":"4279:49:89","nodeType":"YulAssignment","src":"4279:49:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"4312:6:89","nodeType":"YulIdentifier","src":"4312:6:89"}],"functionName":{"name":"mload","nativeSrc":"4306:5:89","nodeType":"YulIdentifier","src":"4306:5:89"},"nativeSrc":"4306:13:89","nodeType":"YulFunctionCall","src":"4306:13:89"},{"name":"tail_2","nativeSrc":"4321:6:89","nodeType":"YulIdentifier","src":"4321:6:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"4289:16:89","nodeType":"YulIdentifier","src":"4289:16:89"},"nativeSrc":"4289:39:89","nodeType":"YulFunctionCall","src":"4289:39:89"},"variableNames":[{"name":"tail_2","nativeSrc":"4279:6:89","nodeType":"YulIdentifier","src":"4279:6:89"}]},{"nativeSrc":"4341:25:89","nodeType":"YulAssignment","src":"4341:25:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4355:6:89","nodeType":"YulIdentifier","src":"4355:6:89"},{"kind":"number","nativeSrc":"4363:2:89","nodeType":"YulLiteral","src":"4363:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4351:3:89","nodeType":"YulIdentifier","src":"4351:3:89"},"nativeSrc":"4351:15:89","nodeType":"YulFunctionCall","src":"4351:15:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"4341:6:89","nodeType":"YulIdentifier","src":"4341:6:89"}]},{"nativeSrc":"4379:19:89","nodeType":"YulAssignment","src":"4379:19:89","value":{"arguments":[{"name":"pos","nativeSrc":"4390:3:89","nodeType":"YulIdentifier","src":"4390:3:89"},{"kind":"number","nativeSrc":"4395:2:89","nodeType":"YulLiteral","src":"4395:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4386:3:89","nodeType":"YulIdentifier","src":"4386:3:89"},"nativeSrc":"4386:12:89","nodeType":"YulFunctionCall","src":"4386:12:89"},"variableNames":[{"name":"pos","nativeSrc":"4379:3:89","nodeType":"YulIdentifier","src":"4379:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4165:1:89","nodeType":"YulIdentifier","src":"4165:1:89"},{"name":"length","nativeSrc":"4168:6:89","nodeType":"YulIdentifier","src":"4168:6:89"}],"functionName":{"name":"lt","nativeSrc":"4162:2:89","nodeType":"YulIdentifier","src":"4162:2:89"},"nativeSrc":"4162:13:89","nodeType":"YulFunctionCall","src":"4162:13:89"},"nativeSrc":"4154:254:89","nodeType":"YulForLoop","post":{"nativeSrc":"4176:18:89","nodeType":"YulBlock","src":"4176:18:89","statements":[{"nativeSrc":"4178:14:89","nodeType":"YulAssignment","src":"4178:14:89","value":{"arguments":[{"name":"i","nativeSrc":"4187:1:89","nodeType":"YulIdentifier","src":"4187:1:89"},{"kind":"number","nativeSrc":"4190:1:89","nodeType":"YulLiteral","src":"4190:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4183:3:89","nodeType":"YulIdentifier","src":"4183:3:89"},"nativeSrc":"4183:9:89","nodeType":"YulFunctionCall","src":"4183:9:89"},"variableNames":[{"name":"i","nativeSrc":"4178:1:89","nodeType":"YulIdentifier","src":"4178:1:89"}]}]},"pre":{"nativeSrc":"4158:3:89","nodeType":"YulBlock","src":"4158:3:89","statements":[]},"src":"4154:254:89"},{"nativeSrc":"4417:14:89","nodeType":"YulAssignment","src":"4417:14:89","value":{"name":"tail_2","nativeSrc":"4425:6:89","nodeType":"YulIdentifier","src":"4425:6:89"},"variableNames":[{"name":"tail","nativeSrc":"4417:4:89","nodeType":"YulIdentifier","src":"4417:4:89"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"3658:779:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3796:9:89","nodeType":"YulTypedName","src":"3796:9:89","type":""},{"name":"value0","nativeSrc":"3807:6:89","nodeType":"YulTypedName","src":"3807:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3818:4:89","nodeType":"YulTypedName","src":"3818:4:89","type":""}],"src":"3658:779:89"},{"body":{"nativeSrc":"4548:377:89","nodeType":"YulBlock","src":"4548:377:89","statements":[{"body":{"nativeSrc":"4594:16:89","nodeType":"YulBlock","src":"4594:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4603:1:89","nodeType":"YulLiteral","src":"4603:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4606:1:89","nodeType":"YulLiteral","src":"4606:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4596:6:89","nodeType":"YulIdentifier","src":"4596:6:89"},"nativeSrc":"4596:12:89","nodeType":"YulFunctionCall","src":"4596:12:89"},"nativeSrc":"4596:12:89","nodeType":"YulExpressionStatement","src":"4596:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4569:7:89","nodeType":"YulIdentifier","src":"4569:7:89"},{"name":"headStart","nativeSrc":"4578:9:89","nodeType":"YulIdentifier","src":"4578:9:89"}],"functionName":{"name":"sub","nativeSrc":"4565:3:89","nodeType":"YulIdentifier","src":"4565:3:89"},"nativeSrc":"4565:23:89","nodeType":"YulFunctionCall","src":"4565:23:89"},{"kind":"number","nativeSrc":"4590:2:89","nodeType":"YulLiteral","src":"4590:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4561:3:89","nodeType":"YulIdentifier","src":"4561:3:89"},"nativeSrc":"4561:32:89","nodeType":"YulFunctionCall","src":"4561:32:89"},"nativeSrc":"4558:52:89","nodeType":"YulIf","src":"4558:52:89"},{"nativeSrc":"4619:39:89","nodeType":"YulAssignment","src":"4619:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4648:9:89","nodeType":"YulIdentifier","src":"4648:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4629:18:89","nodeType":"YulIdentifier","src":"4629:18:89"},"nativeSrc":"4629:29:89","nodeType":"YulFunctionCall","src":"4629:29:89"},"variableNames":[{"name":"value0","nativeSrc":"4619:6:89","nodeType":"YulIdentifier","src":"4619:6:89"}]},{"nativeSrc":"4667:46:89","nodeType":"YulVariableDeclaration","src":"4667:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4698:9:89","nodeType":"YulIdentifier","src":"4698:9:89"},{"kind":"number","nativeSrc":"4709:2:89","nodeType":"YulLiteral","src":"4709:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4694:3:89","nodeType":"YulIdentifier","src":"4694:3:89"},"nativeSrc":"4694:18:89","nodeType":"YulFunctionCall","src":"4694:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4681:12:89","nodeType":"YulIdentifier","src":"4681:12:89"},"nativeSrc":"4681:32:89","nodeType":"YulFunctionCall","src":"4681:32:89"},"variables":[{"name":"offset","nativeSrc":"4671:6:89","nodeType":"YulTypedName","src":"4671:6:89","type":""}]},{"body":{"nativeSrc":"4756:16:89","nodeType":"YulBlock","src":"4756:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4765:1:89","nodeType":"YulLiteral","src":"4765:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4768:1:89","nodeType":"YulLiteral","src":"4768:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4758:6:89","nodeType":"YulIdentifier","src":"4758:6:89"},"nativeSrc":"4758:12:89","nodeType":"YulFunctionCall","src":"4758:12:89"},"nativeSrc":"4758:12:89","nodeType":"YulExpressionStatement","src":"4758:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4728:6:89","nodeType":"YulIdentifier","src":"4728:6:89"},{"kind":"number","nativeSrc":"4736:18:89","nodeType":"YulLiteral","src":"4736:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4725:2:89","nodeType":"YulIdentifier","src":"4725:2:89"},"nativeSrc":"4725:30:89","nodeType":"YulFunctionCall","src":"4725:30:89"},"nativeSrc":"4722:50:89","nodeType":"YulIf","src":"4722:50:89"},{"nativeSrc":"4781:84:89","nodeType":"YulVariableDeclaration","src":"4781:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4837:9:89","nodeType":"YulIdentifier","src":"4837:9:89"},{"name":"offset","nativeSrc":"4848:6:89","nodeType":"YulIdentifier","src":"4848:6:89"}],"functionName":{"name":"add","nativeSrc":"4833:3:89","nodeType":"YulIdentifier","src":"4833:3:89"},"nativeSrc":"4833:22:89","nodeType":"YulFunctionCall","src":"4833:22:89"},{"name":"dataEnd","nativeSrc":"4857:7:89","nodeType":"YulIdentifier","src":"4857:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"4807:25:89","nodeType":"YulIdentifier","src":"4807:25:89"},"nativeSrc":"4807:58:89","nodeType":"YulFunctionCall","src":"4807:58:89"},"variables":[{"name":"value1_1","nativeSrc":"4785:8:89","nodeType":"YulTypedName","src":"4785:8:89","type":""},{"name":"value2_1","nativeSrc":"4795:8:89","nodeType":"YulTypedName","src":"4795:8:89","type":""}]},{"nativeSrc":"4874:18:89","nodeType":"YulAssignment","src":"4874:18:89","value":{"name":"value1_1","nativeSrc":"4884:8:89","nodeType":"YulIdentifier","src":"4884:8:89"},"variableNames":[{"name":"value1","nativeSrc":"4874:6:89","nodeType":"YulIdentifier","src":"4874:6:89"}]},{"nativeSrc":"4901:18:89","nodeType":"YulAssignment","src":"4901:18:89","value":{"name":"value2_1","nativeSrc":"4911:8:89","nodeType":"YulIdentifier","src":"4911:8:89"},"variableNames":[{"name":"value2","nativeSrc":"4901:6:89","nodeType":"YulIdentifier","src":"4901:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"4442:483:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4498:9:89","nodeType":"YulTypedName","src":"4498:9:89","type":""},{"name":"dataEnd","nativeSrc":"4509:7:89","nodeType":"YulTypedName","src":"4509:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4521:6:89","nodeType":"YulTypedName","src":"4521:6:89","type":""},{"name":"value1","nativeSrc":"4529:6:89","nodeType":"YulTypedName","src":"4529:6:89","type":""},{"name":"value2","nativeSrc":"4537:6:89","nodeType":"YulTypedName","src":"4537:6:89","type":""}],"src":"4442:483:89"},{"body":{"nativeSrc":"5000:116:89","nodeType":"YulBlock","src":"5000:116:89","statements":[{"body":{"nativeSrc":"5046:16:89","nodeType":"YulBlock","src":"5046:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5055:1:89","nodeType":"YulLiteral","src":"5055:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5058:1:89","nodeType":"YulLiteral","src":"5058:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5048:6:89","nodeType":"YulIdentifier","src":"5048:6:89"},"nativeSrc":"5048:12:89","nodeType":"YulFunctionCall","src":"5048:12:89"},"nativeSrc":"5048:12:89","nodeType":"YulExpressionStatement","src":"5048:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5021:7:89","nodeType":"YulIdentifier","src":"5021:7:89"},{"name":"headStart","nativeSrc":"5030:9:89","nodeType":"YulIdentifier","src":"5030:9:89"}],"functionName":{"name":"sub","nativeSrc":"5017:3:89","nodeType":"YulIdentifier","src":"5017:3:89"},"nativeSrc":"5017:23:89","nodeType":"YulFunctionCall","src":"5017:23:89"},{"kind":"number","nativeSrc":"5042:2:89","nodeType":"YulLiteral","src":"5042:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5013:3:89","nodeType":"YulIdentifier","src":"5013:3:89"},"nativeSrc":"5013:32:89","nodeType":"YulFunctionCall","src":"5013:32:89"},"nativeSrc":"5010:52:89","nodeType":"YulIf","src":"5010:52:89"},{"nativeSrc":"5071:39:89","nodeType":"YulAssignment","src":"5071:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5100:9:89","nodeType":"YulIdentifier","src":"5100:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5081:18:89","nodeType":"YulIdentifier","src":"5081:18:89"},"nativeSrc":"5081:29:89","nodeType":"YulFunctionCall","src":"5081:29:89"},"variableNames":[{"name":"value0","nativeSrc":"5071:6:89","nodeType":"YulIdentifier","src":"5071:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4930:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4966:9:89","nodeType":"YulTypedName","src":"4966:9:89","type":""},{"name":"dataEnd","nativeSrc":"4977:7:89","nodeType":"YulTypedName","src":"4977:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4989:6:89","nodeType":"YulTypedName","src":"4989:6:89","type":""}],"src":"4930:186:89"},{"body":{"nativeSrc":"5222:102:89","nodeType":"YulBlock","src":"5222:102:89","statements":[{"nativeSrc":"5232:26:89","nodeType":"YulAssignment","src":"5232:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5244:9:89","nodeType":"YulIdentifier","src":"5244:9:89"},{"kind":"number","nativeSrc":"5255:2:89","nodeType":"YulLiteral","src":"5255:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5240:3:89","nodeType":"YulIdentifier","src":"5240:3:89"},"nativeSrc":"5240:18:89","nodeType":"YulFunctionCall","src":"5240:18:89"},"variableNames":[{"name":"tail","nativeSrc":"5232:4:89","nodeType":"YulIdentifier","src":"5232:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5274:9:89","nodeType":"YulIdentifier","src":"5274:9:89"},{"arguments":[{"name":"value0","nativeSrc":"5289:6:89","nodeType":"YulIdentifier","src":"5289:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5305:3:89","nodeType":"YulLiteral","src":"5305:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"5310:1:89","nodeType":"YulLiteral","src":"5310:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5301:3:89","nodeType":"YulIdentifier","src":"5301:3:89"},"nativeSrc":"5301:11:89","nodeType":"YulFunctionCall","src":"5301:11:89"},{"kind":"number","nativeSrc":"5314:1:89","nodeType":"YulLiteral","src":"5314:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5297:3:89","nodeType":"YulIdentifier","src":"5297:3:89"},"nativeSrc":"5297:19:89","nodeType":"YulFunctionCall","src":"5297:19:89"}],"functionName":{"name":"and","nativeSrc":"5285:3:89","nodeType":"YulIdentifier","src":"5285:3:89"},"nativeSrc":"5285:32:89","nodeType":"YulFunctionCall","src":"5285:32:89"}],"functionName":{"name":"mstore","nativeSrc":"5267:6:89","nodeType":"YulIdentifier","src":"5267:6:89"},"nativeSrc":"5267:51:89","nodeType":"YulFunctionCall","src":"5267:51:89"},"nativeSrc":"5267:51:89","nodeType":"YulExpressionStatement","src":"5267:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5121:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5191:9:89","nodeType":"YulTypedName","src":"5191:9:89","type":""},{"name":"value0","nativeSrc":"5202:6:89","nodeType":"YulTypedName","src":"5202:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5213:4:89","nodeType":"YulTypedName","src":"5213:4:89","type":""}],"src":"5121:203:89"},{"body":{"nativeSrc":"5448:98:89","nodeType":"YulBlock","src":"5448:98:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5465:9:89","nodeType":"YulIdentifier","src":"5465:9:89"},{"kind":"number","nativeSrc":"5476:2:89","nodeType":"YulLiteral","src":"5476:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5458:6:89","nodeType":"YulIdentifier","src":"5458:6:89"},"nativeSrc":"5458:21:89","nodeType":"YulFunctionCall","src":"5458:21:89"},"nativeSrc":"5458:21:89","nodeType":"YulExpressionStatement","src":"5458:21:89"},{"nativeSrc":"5488:52:89","nodeType":"YulAssignment","src":"5488:52:89","value":{"arguments":[{"name":"value0","nativeSrc":"5513:6:89","nodeType":"YulIdentifier","src":"5513:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"5525:9:89","nodeType":"YulIdentifier","src":"5525:9:89"},{"kind":"number","nativeSrc":"5536:2:89","nodeType":"YulLiteral","src":"5536:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5521:3:89","nodeType":"YulIdentifier","src":"5521:3:89"},"nativeSrc":"5521:18:89","nodeType":"YulFunctionCall","src":"5521:18:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"5496:16:89","nodeType":"YulIdentifier","src":"5496:16:89"},"nativeSrc":"5496:44:89","nodeType":"YulFunctionCall","src":"5496:44:89"},"variableNames":[{"name":"tail","nativeSrc":"5488:4:89","nodeType":"YulIdentifier","src":"5488:4:89"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"5329:217:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5417:9:89","nodeType":"YulTypedName","src":"5417:9:89","type":""},{"name":"value0","nativeSrc":"5428:6:89","nodeType":"YulTypedName","src":"5428:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5439:4:89","nodeType":"YulTypedName","src":"5439:4:89","type":""}],"src":"5329:217:89"},{"body":{"nativeSrc":"5655:270:89","nodeType":"YulBlock","src":"5655:270:89","statements":[{"body":{"nativeSrc":"5701:16:89","nodeType":"YulBlock","src":"5701:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5710:1:89","nodeType":"YulLiteral","src":"5710:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5713:1:89","nodeType":"YulLiteral","src":"5713:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5703:6:89","nodeType":"YulIdentifier","src":"5703:6:89"},"nativeSrc":"5703:12:89","nodeType":"YulFunctionCall","src":"5703:12:89"},"nativeSrc":"5703:12:89","nodeType":"YulExpressionStatement","src":"5703:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5676:7:89","nodeType":"YulIdentifier","src":"5676:7:89"},{"name":"headStart","nativeSrc":"5685:9:89","nodeType":"YulIdentifier","src":"5685:9:89"}],"functionName":{"name":"sub","nativeSrc":"5672:3:89","nodeType":"YulIdentifier","src":"5672:3:89"},"nativeSrc":"5672:23:89","nodeType":"YulFunctionCall","src":"5672:23:89"},{"kind":"number","nativeSrc":"5697:2:89","nodeType":"YulLiteral","src":"5697:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5668:3:89","nodeType":"YulIdentifier","src":"5668:3:89"},"nativeSrc":"5668:32:89","nodeType":"YulFunctionCall","src":"5668:32:89"},"nativeSrc":"5665:52:89","nodeType":"YulIf","src":"5665:52:89"},{"nativeSrc":"5726:39:89","nodeType":"YulAssignment","src":"5726:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5755:9:89","nodeType":"YulIdentifier","src":"5755:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5736:18:89","nodeType":"YulIdentifier","src":"5736:18:89"},"nativeSrc":"5736:29:89","nodeType":"YulFunctionCall","src":"5736:29:89"},"variableNames":[{"name":"value0","nativeSrc":"5726:6:89","nodeType":"YulIdentifier","src":"5726:6:89"}]},{"nativeSrc":"5774:48:89","nodeType":"YulAssignment","src":"5774:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5807:9:89","nodeType":"YulIdentifier","src":"5807:9:89"},{"kind":"number","nativeSrc":"5818:2:89","nodeType":"YulLiteral","src":"5818:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5803:3:89","nodeType":"YulIdentifier","src":"5803:3:89"},"nativeSrc":"5803:18:89","nodeType":"YulFunctionCall","src":"5803:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5784:18:89","nodeType":"YulIdentifier","src":"5784:18:89"},"nativeSrc":"5784:38:89","nodeType":"YulFunctionCall","src":"5784:38:89"},"variableNames":[{"name":"value1","nativeSrc":"5774:6:89","nodeType":"YulIdentifier","src":"5774:6:89"}]},{"nativeSrc":"5831:14:89","nodeType":"YulVariableDeclaration","src":"5831:14:89","value":{"kind":"number","nativeSrc":"5844:1:89","nodeType":"YulLiteral","src":"5844:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5835:5:89","nodeType":"YulTypedName","src":"5835:5:89","type":""}]},{"nativeSrc":"5854:41:89","nodeType":"YulAssignment","src":"5854:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5880:9:89","nodeType":"YulIdentifier","src":"5880:9:89"},{"kind":"number","nativeSrc":"5891:2:89","nodeType":"YulLiteral","src":"5891:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5876:3:89","nodeType":"YulIdentifier","src":"5876:3:89"},"nativeSrc":"5876:18:89","nodeType":"YulFunctionCall","src":"5876:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"5863:12:89","nodeType":"YulIdentifier","src":"5863:12:89"},"nativeSrc":"5863:32:89","nodeType":"YulFunctionCall","src":"5863:32:89"},"variableNames":[{"name":"value","nativeSrc":"5854:5:89","nodeType":"YulIdentifier","src":"5854:5:89"}]},{"nativeSrc":"5904:15:89","nodeType":"YulAssignment","src":"5904:15:89","value":{"name":"value","nativeSrc":"5914:5:89","nodeType":"YulIdentifier","src":"5914:5:89"},"variableNames":[{"name":"value2","nativeSrc":"5904:6:89","nodeType":"YulIdentifier","src":"5904:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"5551:374:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5605:9:89","nodeType":"YulTypedName","src":"5605:9:89","type":""},{"name":"dataEnd","nativeSrc":"5616:7:89","nodeType":"YulTypedName","src":"5616:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5628:6:89","nodeType":"YulTypedName","src":"5628:6:89","type":""},{"name":"value1","nativeSrc":"5636:6:89","nodeType":"YulTypedName","src":"5636:6:89","type":""},{"name":"value2","nativeSrc":"5644:6:89","nodeType":"YulTypedName","src":"5644:6:89","type":""}],"src":"5551:374:89"},{"body":{"nativeSrc":"6077:124:89","nodeType":"YulBlock","src":"6077:124:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6100:3:89","nodeType":"YulIdentifier","src":"6100:3:89"},{"name":"value0","nativeSrc":"6105:6:89","nodeType":"YulIdentifier","src":"6105:6:89"},{"name":"value1","nativeSrc":"6113:6:89","nodeType":"YulIdentifier","src":"6113:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"6087:12:89","nodeType":"YulIdentifier","src":"6087:12:89"},"nativeSrc":"6087:33:89","nodeType":"YulFunctionCall","src":"6087:33:89"},"nativeSrc":"6087:33:89","nodeType":"YulExpressionStatement","src":"6087:33:89"},{"nativeSrc":"6129:26:89","nodeType":"YulVariableDeclaration","src":"6129:26:89","value":{"arguments":[{"name":"pos","nativeSrc":"6143:3:89","nodeType":"YulIdentifier","src":"6143:3:89"},{"name":"value1","nativeSrc":"6148:6:89","nodeType":"YulIdentifier","src":"6148:6:89"}],"functionName":{"name":"add","nativeSrc":"6139:3:89","nodeType":"YulIdentifier","src":"6139:3:89"},"nativeSrc":"6139:16:89","nodeType":"YulFunctionCall","src":"6139:16:89"},"variables":[{"name":"_1","nativeSrc":"6133:2:89","nodeType":"YulTypedName","src":"6133:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"6171:2:89","nodeType":"YulIdentifier","src":"6171:2:89"},{"kind":"number","nativeSrc":"6175:1:89","nodeType":"YulLiteral","src":"6175:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6164:6:89","nodeType":"YulIdentifier","src":"6164:6:89"},"nativeSrc":"6164:13:89","nodeType":"YulFunctionCall","src":"6164:13:89"},"nativeSrc":"6164:13:89","nodeType":"YulExpressionStatement","src":"6164:13:89"},{"nativeSrc":"6186:9:89","nodeType":"YulAssignment","src":"6186:9:89","value":{"name":"_1","nativeSrc":"6193:2:89","nodeType":"YulIdentifier","src":"6193:2:89"},"variableNames":[{"name":"end","nativeSrc":"6186:3:89","nodeType":"YulIdentifier","src":"6186:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5930:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6045:3:89","nodeType":"YulTypedName","src":"6045:3:89","type":""},{"name":"value1","nativeSrc":"6050:6:89","nodeType":"YulTypedName","src":"6050:6:89","type":""},{"name":"value0","nativeSrc":"6058:6:89","nodeType":"YulTypedName","src":"6058:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6069:3:89","nodeType":"YulTypedName","src":"6069:3:89","type":""}],"src":"5930:271:89"},{"body":{"nativeSrc":"6272:200:89","nodeType":"YulBlock","src":"6272:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6289:3:89","nodeType":"YulIdentifier","src":"6289:3:89"},{"name":"length","nativeSrc":"6294:6:89","nodeType":"YulIdentifier","src":"6294:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6282:6:89","nodeType":"YulIdentifier","src":"6282:6:89"},"nativeSrc":"6282:19:89","nodeType":"YulFunctionCall","src":"6282:19:89"},"nativeSrc":"6282:19:89","nodeType":"YulExpressionStatement","src":"6282:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6327:3:89","nodeType":"YulIdentifier","src":"6327:3:89"},{"kind":"number","nativeSrc":"6332:4:89","nodeType":"YulLiteral","src":"6332:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6323:3:89","nodeType":"YulIdentifier","src":"6323:3:89"},"nativeSrc":"6323:14:89","nodeType":"YulFunctionCall","src":"6323:14:89"},{"name":"start","nativeSrc":"6339:5:89","nodeType":"YulIdentifier","src":"6339:5:89"},{"name":"length","nativeSrc":"6346:6:89","nodeType":"YulIdentifier","src":"6346:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"6310:12:89","nodeType":"YulIdentifier","src":"6310:12:89"},"nativeSrc":"6310:43:89","nodeType":"YulFunctionCall","src":"6310:43:89"},"nativeSrc":"6310:43:89","nodeType":"YulExpressionStatement","src":"6310:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6377:3:89","nodeType":"YulIdentifier","src":"6377:3:89"},{"name":"length","nativeSrc":"6382:6:89","nodeType":"YulIdentifier","src":"6382:6:89"}],"functionName":{"name":"add","nativeSrc":"6373:3:89","nodeType":"YulIdentifier","src":"6373:3:89"},"nativeSrc":"6373:16:89","nodeType":"YulFunctionCall","src":"6373:16:89"},{"kind":"number","nativeSrc":"6391:4:89","nodeType":"YulLiteral","src":"6391:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6369:3:89","nodeType":"YulIdentifier","src":"6369:3:89"},"nativeSrc":"6369:27:89","nodeType":"YulFunctionCall","src":"6369:27:89"},{"kind":"number","nativeSrc":"6398:1:89","nodeType":"YulLiteral","src":"6398:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6362:6:89","nodeType":"YulIdentifier","src":"6362:6:89"},"nativeSrc":"6362:38:89","nodeType":"YulFunctionCall","src":"6362:38:89"},"nativeSrc":"6362:38:89","nodeType":"YulExpressionStatement","src":"6362:38:89"},{"nativeSrc":"6409:57:89","nodeType":"YulAssignment","src":"6409:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6424:3:89","nodeType":"YulIdentifier","src":"6424:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6437:6:89","nodeType":"YulIdentifier","src":"6437:6:89"},{"kind":"number","nativeSrc":"6445:2:89","nodeType":"YulLiteral","src":"6445:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6433:3:89","nodeType":"YulIdentifier","src":"6433:3:89"},"nativeSrc":"6433:15:89","nodeType":"YulFunctionCall","src":"6433:15:89"},{"arguments":[{"kind":"number","nativeSrc":"6454:2:89","nodeType":"YulLiteral","src":"6454:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"6450:3:89","nodeType":"YulIdentifier","src":"6450:3:89"},"nativeSrc":"6450:7:89","nodeType":"YulFunctionCall","src":"6450:7:89"}],"functionName":{"name":"and","nativeSrc":"6429:3:89","nodeType":"YulIdentifier","src":"6429:3:89"},"nativeSrc":"6429:29:89","nodeType":"YulFunctionCall","src":"6429:29:89"}],"functionName":{"name":"add","nativeSrc":"6420:3:89","nodeType":"YulIdentifier","src":"6420:3:89"},"nativeSrc":"6420:39:89","nodeType":"YulFunctionCall","src":"6420:39:89"},{"kind":"number","nativeSrc":"6461:4:89","nodeType":"YulLiteral","src":"6461:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6416:3:89","nodeType":"YulIdentifier","src":"6416:3:89"},"nativeSrc":"6416:50:89","nodeType":"YulFunctionCall","src":"6416:50:89"},"variableNames":[{"name":"end","nativeSrc":"6409:3:89","nodeType":"YulIdentifier","src":"6409:3:89"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"6206:266:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"6241:5:89","nodeType":"YulTypedName","src":"6241:5:89","type":""},{"name":"length","nativeSrc":"6248:6:89","nodeType":"YulTypedName","src":"6248:6:89","type":""},{"name":"pos","nativeSrc":"6256:3:89","nodeType":"YulTypedName","src":"6256:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6264:3:89","nodeType":"YulTypedName","src":"6264:3:89","type":""}],"src":"6206:266:89"},{"body":{"nativeSrc":"6634:158:89","nodeType":"YulBlock","src":"6634:158:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6651:9:89","nodeType":"YulIdentifier","src":"6651:9:89"},{"name":"value0","nativeSrc":"6662:6:89","nodeType":"YulIdentifier","src":"6662:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6644:6:89","nodeType":"YulIdentifier","src":"6644:6:89"},"nativeSrc":"6644:25:89","nodeType":"YulFunctionCall","src":"6644:25:89"},"nativeSrc":"6644:25:89","nodeType":"YulExpressionStatement","src":"6644:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6689:9:89","nodeType":"YulIdentifier","src":"6689:9:89"},{"kind":"number","nativeSrc":"6700:2:89","nodeType":"YulLiteral","src":"6700:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6685:3:89","nodeType":"YulIdentifier","src":"6685:3:89"},"nativeSrc":"6685:18:89","nodeType":"YulFunctionCall","src":"6685:18:89"},{"kind":"number","nativeSrc":"6705:2:89","nodeType":"YulLiteral","src":"6705:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"6678:6:89","nodeType":"YulIdentifier","src":"6678:6:89"},"nativeSrc":"6678:30:89","nodeType":"YulFunctionCall","src":"6678:30:89"},"nativeSrc":"6678:30:89","nodeType":"YulExpressionStatement","src":"6678:30:89"},{"nativeSrc":"6717:69:89","nodeType":"YulAssignment","src":"6717:69:89","value":{"arguments":[{"name":"value1","nativeSrc":"6751:6:89","nodeType":"YulIdentifier","src":"6751:6:89"},{"name":"value2","nativeSrc":"6759:6:89","nodeType":"YulIdentifier","src":"6759:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"6771:9:89","nodeType":"YulIdentifier","src":"6771:9:89"},{"kind":"number","nativeSrc":"6782:2:89","nodeType":"YulLiteral","src":"6782:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6767:3:89","nodeType":"YulIdentifier","src":"6767:3:89"},"nativeSrc":"6767:18:89","nodeType":"YulFunctionCall","src":"6767:18:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"6725:25:89","nodeType":"YulIdentifier","src":"6725:25:89"},"nativeSrc":"6725:61:89","nodeType":"YulFunctionCall","src":"6725:61:89"},"variableNames":[{"name":"tail","nativeSrc":"6717:4:89","nodeType":"YulIdentifier","src":"6717:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"6477:315:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6587:9:89","nodeType":"YulTypedName","src":"6587:9:89","type":""},{"name":"value2","nativeSrc":"6598:6:89","nodeType":"YulTypedName","src":"6598:6:89","type":""},{"name":"value1","nativeSrc":"6606:6:89","nodeType":"YulTypedName","src":"6606:6:89","type":""},{"name":"value0","nativeSrc":"6614:6:89","nodeType":"YulTypedName","src":"6614:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6625:4:89","nodeType":"YulTypedName","src":"6625:4:89","type":""}],"src":"6477:315:89"},{"body":{"nativeSrc":"6829:95:89","nodeType":"YulBlock","src":"6829:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6846:1:89","nodeType":"YulLiteral","src":"6846:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"6853:3:89","nodeType":"YulLiteral","src":"6853:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"6858:10:89","nodeType":"YulLiteral","src":"6858:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"6849:3:89","nodeType":"YulIdentifier","src":"6849:3:89"},"nativeSrc":"6849:20:89","nodeType":"YulFunctionCall","src":"6849:20:89"}],"functionName":{"name":"mstore","nativeSrc":"6839:6:89","nodeType":"YulIdentifier","src":"6839:6:89"},"nativeSrc":"6839:31:89","nodeType":"YulFunctionCall","src":"6839:31:89"},"nativeSrc":"6839:31:89","nodeType":"YulExpressionStatement","src":"6839:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6886:1:89","nodeType":"YulLiteral","src":"6886:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"6889:4:89","nodeType":"YulLiteral","src":"6889:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"6879:6:89","nodeType":"YulIdentifier","src":"6879:6:89"},"nativeSrc":"6879:15:89","nodeType":"YulFunctionCall","src":"6879:15:89"},"nativeSrc":"6879:15:89","nodeType":"YulExpressionStatement","src":"6879:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6910:1:89","nodeType":"YulLiteral","src":"6910:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6913:4:89","nodeType":"YulLiteral","src":"6913:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6903:6:89","nodeType":"YulIdentifier","src":"6903:6:89"},"nativeSrc":"6903:15:89","nodeType":"YulFunctionCall","src":"6903:15:89"},"nativeSrc":"6903:15:89","nodeType":"YulExpressionStatement","src":"6903:15:89"}]},"name":"panic_error_0x41","nativeSrc":"6797:127:89","nodeType":"YulFunctionDefinition","src":"6797:127:89"},{"body":{"nativeSrc":"6961:95:89","nodeType":"YulBlock","src":"6961:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6978:1:89","nodeType":"YulLiteral","src":"6978:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"6985:3:89","nodeType":"YulLiteral","src":"6985:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"6990:10:89","nodeType":"YulLiteral","src":"6990:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"6981:3:89","nodeType":"YulIdentifier","src":"6981:3:89"},"nativeSrc":"6981:20:89","nodeType":"YulFunctionCall","src":"6981:20:89"}],"functionName":{"name":"mstore","nativeSrc":"6971:6:89","nodeType":"YulIdentifier","src":"6971:6:89"},"nativeSrc":"6971:31:89","nodeType":"YulFunctionCall","src":"6971:31:89"},"nativeSrc":"6971:31:89","nodeType":"YulExpressionStatement","src":"6971:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7018:1:89","nodeType":"YulLiteral","src":"7018:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"7021:4:89","nodeType":"YulLiteral","src":"7021:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7011:6:89","nodeType":"YulIdentifier","src":"7011:6:89"},"nativeSrc":"7011:15:89","nodeType":"YulFunctionCall","src":"7011:15:89"},"nativeSrc":"7011:15:89","nodeType":"YulExpressionStatement","src":"7011:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7042:1:89","nodeType":"YulLiteral","src":"7042:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7045:4:89","nodeType":"YulLiteral","src":"7045:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7035:6:89","nodeType":"YulIdentifier","src":"7035:6:89"},"nativeSrc":"7035:15:89","nodeType":"YulFunctionCall","src":"7035:15:89"},"nativeSrc":"7035:15:89","nodeType":"YulExpressionStatement","src":"7035:15:89"}]},"name":"panic_error_0x32","nativeSrc":"6929:127:89","nodeType":"YulFunctionDefinition","src":"6929:127:89"},{"body":{"nativeSrc":"7155:427:89","nodeType":"YulBlock","src":"7155:427:89","statements":[{"nativeSrc":"7165:51:89","nodeType":"YulVariableDeclaration","src":"7165:51:89","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"7204:11:89","nodeType":"YulIdentifier","src":"7204:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"7191:12:89","nodeType":"YulIdentifier","src":"7191:12:89"},"nativeSrc":"7191:25:89","nodeType":"YulFunctionCall","src":"7191:25:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"7169:18:89","nodeType":"YulTypedName","src":"7169:18:89","type":""}]},{"body":{"nativeSrc":"7305:16:89","nodeType":"YulBlock","src":"7305:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7314:1:89","nodeType":"YulLiteral","src":"7314:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7317:1:89","nodeType":"YulLiteral","src":"7317:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7307:6:89","nodeType":"YulIdentifier","src":"7307:6:89"},"nativeSrc":"7307:12:89","nodeType":"YulFunctionCall","src":"7307:12:89"},"nativeSrc":"7307:12:89","nodeType":"YulExpressionStatement","src":"7307:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"7239:18:89","nodeType":"YulIdentifier","src":"7239:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"7267:12:89","nodeType":"YulIdentifier","src":"7267:12:89"},"nativeSrc":"7267:14:89","nodeType":"YulFunctionCall","src":"7267:14:89"},{"name":"base_ref","nativeSrc":"7283:8:89","nodeType":"YulIdentifier","src":"7283:8:89"}],"functionName":{"name":"sub","nativeSrc":"7263:3:89","nodeType":"YulIdentifier","src":"7263:3:89"},"nativeSrc":"7263:29:89","nodeType":"YulFunctionCall","src":"7263:29:89"},{"arguments":[{"kind":"number","nativeSrc":"7298:2:89","nodeType":"YulLiteral","src":"7298:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"7294:3:89","nodeType":"YulIdentifier","src":"7294:3:89"},"nativeSrc":"7294:7:89","nodeType":"YulFunctionCall","src":"7294:7:89"}],"functionName":{"name":"add","nativeSrc":"7259:3:89","nodeType":"YulIdentifier","src":"7259:3:89"},"nativeSrc":"7259:43:89","nodeType":"YulFunctionCall","src":"7259:43:89"}],"functionName":{"name":"slt","nativeSrc":"7235:3:89","nodeType":"YulIdentifier","src":"7235:3:89"},"nativeSrc":"7235:68:89","nodeType":"YulFunctionCall","src":"7235:68:89"}],"functionName":{"name":"iszero","nativeSrc":"7228:6:89","nodeType":"YulIdentifier","src":"7228:6:89"},"nativeSrc":"7228:76:89","nodeType":"YulFunctionCall","src":"7228:76:89"},"nativeSrc":"7225:96:89","nodeType":"YulIf","src":"7225:96:89"},{"nativeSrc":"7330:47:89","nodeType":"YulVariableDeclaration","src":"7330:47:89","value":{"arguments":[{"name":"base_ref","nativeSrc":"7348:8:89","nodeType":"YulIdentifier","src":"7348:8:89"},{"name":"rel_offset_of_tail","nativeSrc":"7358:18:89","nodeType":"YulIdentifier","src":"7358:18:89"}],"functionName":{"name":"add","nativeSrc":"7344:3:89","nodeType":"YulIdentifier","src":"7344:3:89"},"nativeSrc":"7344:33:89","nodeType":"YulFunctionCall","src":"7344:33:89"},"variables":[{"name":"addr_1","nativeSrc":"7334:6:89","nodeType":"YulTypedName","src":"7334:6:89","type":""}]},{"nativeSrc":"7386:30:89","nodeType":"YulAssignment","src":"7386:30:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"7409:6:89","nodeType":"YulIdentifier","src":"7409:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"7396:12:89","nodeType":"YulIdentifier","src":"7396:12:89"},"nativeSrc":"7396:20:89","nodeType":"YulFunctionCall","src":"7396:20:89"},"variableNames":[{"name":"length","nativeSrc":"7386:6:89","nodeType":"YulIdentifier","src":"7386:6:89"}]},{"body":{"nativeSrc":"7459:16:89","nodeType":"YulBlock","src":"7459:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7468:1:89","nodeType":"YulLiteral","src":"7468:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7471:1:89","nodeType":"YulLiteral","src":"7471:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7461:6:89","nodeType":"YulIdentifier","src":"7461:6:89"},"nativeSrc":"7461:12:89","nodeType":"YulFunctionCall","src":"7461:12:89"},"nativeSrc":"7461:12:89","nodeType":"YulExpressionStatement","src":"7461:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7431:6:89","nodeType":"YulIdentifier","src":"7431:6:89"},{"kind":"number","nativeSrc":"7439:18:89","nodeType":"YulLiteral","src":"7439:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7428:2:89","nodeType":"YulIdentifier","src":"7428:2:89"},"nativeSrc":"7428:30:89","nodeType":"YulFunctionCall","src":"7428:30:89"},"nativeSrc":"7425:50:89","nodeType":"YulIf","src":"7425:50:89"},{"nativeSrc":"7484:25:89","nodeType":"YulAssignment","src":"7484:25:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"7496:6:89","nodeType":"YulIdentifier","src":"7496:6:89"},{"kind":"number","nativeSrc":"7504:4:89","nodeType":"YulLiteral","src":"7504:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7492:3:89","nodeType":"YulIdentifier","src":"7492:3:89"},"nativeSrc":"7492:17:89","nodeType":"YulFunctionCall","src":"7492:17:89"},"variableNames":[{"name":"addr","nativeSrc":"7484:4:89","nodeType":"YulIdentifier","src":"7484:4:89"}]},{"body":{"nativeSrc":"7560:16:89","nodeType":"YulBlock","src":"7560:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7569:1:89","nodeType":"YulLiteral","src":"7569:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7572:1:89","nodeType":"YulLiteral","src":"7572:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7562:6:89","nodeType":"YulIdentifier","src":"7562:6:89"},"nativeSrc":"7562:12:89","nodeType":"YulFunctionCall","src":"7562:12:89"},"nativeSrc":"7562:12:89","nodeType":"YulExpressionStatement","src":"7562:12:89"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"7525:4:89","nodeType":"YulIdentifier","src":"7525:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"7535:12:89","nodeType":"YulIdentifier","src":"7535:12:89"},"nativeSrc":"7535:14:89","nodeType":"YulFunctionCall","src":"7535:14:89"},{"name":"length","nativeSrc":"7551:6:89","nodeType":"YulIdentifier","src":"7551:6:89"}],"functionName":{"name":"sub","nativeSrc":"7531:3:89","nodeType":"YulIdentifier","src":"7531:3:89"},"nativeSrc":"7531:27:89","nodeType":"YulFunctionCall","src":"7531:27:89"}],"functionName":{"name":"sgt","nativeSrc":"7521:3:89","nodeType":"YulIdentifier","src":"7521:3:89"},"nativeSrc":"7521:38:89","nodeType":"YulFunctionCall","src":"7521:38:89"},"nativeSrc":"7518:58:89","nodeType":"YulIf","src":"7518:58:89"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"7061:521:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"7112:8:89","nodeType":"YulTypedName","src":"7112:8:89","type":""},{"name":"ptr_to_tail","nativeSrc":"7122:11:89","nodeType":"YulTypedName","src":"7122:11:89","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"7138:4:89","nodeType":"YulTypedName","src":"7138:4:89","type":""},{"name":"length","nativeSrc":"7144:6:89","nodeType":"YulTypedName","src":"7144:6:89","type":""}],"src":"7061:521:89"},{"body":{"nativeSrc":"7818:343:89","nodeType":"YulBlock","src":"7818:343:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7835:9:89","nodeType":"YulIdentifier","src":"7835:9:89"},{"arguments":[{"name":"value0","nativeSrc":"7850:6:89","nodeType":"YulIdentifier","src":"7850:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7866:3:89","nodeType":"YulLiteral","src":"7866:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"7871:1:89","nodeType":"YulLiteral","src":"7871:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7862:3:89","nodeType":"YulIdentifier","src":"7862:3:89"},"nativeSrc":"7862:11:89","nodeType":"YulFunctionCall","src":"7862:11:89"},{"kind":"number","nativeSrc":"7875:1:89","nodeType":"YulLiteral","src":"7875:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7858:3:89","nodeType":"YulIdentifier","src":"7858:3:89"},"nativeSrc":"7858:19:89","nodeType":"YulFunctionCall","src":"7858:19:89"}],"functionName":{"name":"and","nativeSrc":"7846:3:89","nodeType":"YulIdentifier","src":"7846:3:89"},"nativeSrc":"7846:32:89","nodeType":"YulFunctionCall","src":"7846:32:89"}],"functionName":{"name":"mstore","nativeSrc":"7828:6:89","nodeType":"YulIdentifier","src":"7828:6:89"},"nativeSrc":"7828:51:89","nodeType":"YulFunctionCall","src":"7828:51:89"},"nativeSrc":"7828:51:89","nodeType":"YulExpressionStatement","src":"7828:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7899:9:89","nodeType":"YulIdentifier","src":"7899:9:89"},{"kind":"number","nativeSrc":"7910:2:89","nodeType":"YulLiteral","src":"7910:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7895:3:89","nodeType":"YulIdentifier","src":"7895:3:89"},"nativeSrc":"7895:18:89","nodeType":"YulFunctionCall","src":"7895:18:89"},{"name":"value1","nativeSrc":"7915:6:89","nodeType":"YulIdentifier","src":"7915:6:89"}],"functionName":{"name":"mstore","nativeSrc":"7888:6:89","nodeType":"YulIdentifier","src":"7888:6:89"},"nativeSrc":"7888:34:89","nodeType":"YulFunctionCall","src":"7888:34:89"},"nativeSrc":"7888:34:89","nodeType":"YulExpressionStatement","src":"7888:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7942:9:89","nodeType":"YulIdentifier","src":"7942:9:89"},{"kind":"number","nativeSrc":"7953:2:89","nodeType":"YulLiteral","src":"7953:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7938:3:89","nodeType":"YulIdentifier","src":"7938:3:89"},"nativeSrc":"7938:18:89","nodeType":"YulFunctionCall","src":"7938:18:89"},{"kind":"number","nativeSrc":"7958:3:89","nodeType":"YulLiteral","src":"7958:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"7931:6:89","nodeType":"YulIdentifier","src":"7931:6:89"},"nativeSrc":"7931:31:89","nodeType":"YulFunctionCall","src":"7931:31:89"},"nativeSrc":"7931:31:89","nodeType":"YulExpressionStatement","src":"7931:31:89"},{"nativeSrc":"7971:76:89","nodeType":"YulVariableDeclaration","src":"7971:76:89","value":{"arguments":[{"name":"value2","nativeSrc":"8011:6:89","nodeType":"YulIdentifier","src":"8011:6:89"},{"name":"value3","nativeSrc":"8019:6:89","nodeType":"YulIdentifier","src":"8019:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"8031:9:89","nodeType":"YulIdentifier","src":"8031:9:89"},{"kind":"number","nativeSrc":"8042:3:89","nodeType":"YulLiteral","src":"8042:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8027:3:89","nodeType":"YulIdentifier","src":"8027:3:89"},"nativeSrc":"8027:19:89","nodeType":"YulFunctionCall","src":"8027:19:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"7985:25:89","nodeType":"YulIdentifier","src":"7985:25:89"},"nativeSrc":"7985:62:89","nodeType":"YulFunctionCall","src":"7985:62:89"},"variables":[{"name":"tail_1","nativeSrc":"7975:6:89","nodeType":"YulTypedName","src":"7975:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8067:9:89","nodeType":"YulIdentifier","src":"8067:9:89"},{"kind":"number","nativeSrc":"8078:2:89","nodeType":"YulLiteral","src":"8078:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8063:3:89","nodeType":"YulIdentifier","src":"8063:3:89"},"nativeSrc":"8063:18:89","nodeType":"YulFunctionCall","src":"8063:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"8087:6:89","nodeType":"YulIdentifier","src":"8087:6:89"},{"name":"headStart","nativeSrc":"8095:9:89","nodeType":"YulIdentifier","src":"8095:9:89"}],"functionName":{"name":"sub","nativeSrc":"8083:3:89","nodeType":"YulIdentifier","src":"8083:3:89"},"nativeSrc":"8083:22:89","nodeType":"YulFunctionCall","src":"8083:22:89"}],"functionName":{"name":"mstore","nativeSrc":"8056:6:89","nodeType":"YulIdentifier","src":"8056:6:89"},"nativeSrc":"8056:50:89","nodeType":"YulFunctionCall","src":"8056:50:89"},"nativeSrc":"8056:50:89","nodeType":"YulExpressionStatement","src":"8056:50:89"},{"nativeSrc":"8115:40:89","nodeType":"YulAssignment","src":"8115:40:89","value":{"arguments":[{"name":"value4","nativeSrc":"8140:6:89","nodeType":"YulIdentifier","src":"8140:6:89"},{"name":"tail_1","nativeSrc":"8148:6:89","nodeType":"YulIdentifier","src":"8148:6:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"8123:16:89","nodeType":"YulIdentifier","src":"8123:16:89"},"nativeSrc":"8123:32:89","nodeType":"YulFunctionCall","src":"8123:32:89"},"variableNames":[{"name":"tail","nativeSrc":"8115:4:89","nodeType":"YulIdentifier","src":"8115:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7587:574:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7755:9:89","nodeType":"YulTypedName","src":"7755:9:89","type":""},{"name":"value4","nativeSrc":"7766:6:89","nodeType":"YulTypedName","src":"7766:6:89","type":""},{"name":"value3","nativeSrc":"7774:6:89","nodeType":"YulTypedName","src":"7774:6:89","type":""},{"name":"value2","nativeSrc":"7782:6:89","nodeType":"YulTypedName","src":"7782:6:89","type":""},{"name":"value1","nativeSrc":"7790:6:89","nodeType":"YulTypedName","src":"7790:6:89","type":""},{"name":"value0","nativeSrc":"7798:6:89","nodeType":"YulTypedName","src":"7798:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7809:4:89","nodeType":"YulTypedName","src":"7809:4:89","type":""}],"src":"7587:574:89"},{"body":{"nativeSrc":"8405:343:89","nodeType":"YulBlock","src":"8405:343:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8422:9:89","nodeType":"YulIdentifier","src":"8422:9:89"},{"arguments":[{"name":"value0","nativeSrc":"8437:6:89","nodeType":"YulIdentifier","src":"8437:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8453:3:89","nodeType":"YulLiteral","src":"8453:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"8458:1:89","nodeType":"YulLiteral","src":"8458:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8449:3:89","nodeType":"YulIdentifier","src":"8449:3:89"},"nativeSrc":"8449:11:89","nodeType":"YulFunctionCall","src":"8449:11:89"},{"kind":"number","nativeSrc":"8462:1:89","nodeType":"YulLiteral","src":"8462:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8445:3:89","nodeType":"YulIdentifier","src":"8445:3:89"},"nativeSrc":"8445:19:89","nodeType":"YulFunctionCall","src":"8445:19:89"}],"functionName":{"name":"and","nativeSrc":"8433:3:89","nodeType":"YulIdentifier","src":"8433:3:89"},"nativeSrc":"8433:32:89","nodeType":"YulFunctionCall","src":"8433:32:89"}],"functionName":{"name":"mstore","nativeSrc":"8415:6:89","nodeType":"YulIdentifier","src":"8415:6:89"},"nativeSrc":"8415:51:89","nodeType":"YulFunctionCall","src":"8415:51:89"},"nativeSrc":"8415:51:89","nodeType":"YulExpressionStatement","src":"8415:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8486:9:89","nodeType":"YulIdentifier","src":"8486:9:89"},{"kind":"number","nativeSrc":"8497:2:89","nodeType":"YulLiteral","src":"8497:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8482:3:89","nodeType":"YulIdentifier","src":"8482:3:89"},"nativeSrc":"8482:18:89","nodeType":"YulFunctionCall","src":"8482:18:89"},{"name":"value1","nativeSrc":"8502:6:89","nodeType":"YulIdentifier","src":"8502:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8475:6:89","nodeType":"YulIdentifier","src":"8475:6:89"},"nativeSrc":"8475:34:89","nodeType":"YulFunctionCall","src":"8475:34:89"},"nativeSrc":"8475:34:89","nodeType":"YulExpressionStatement","src":"8475:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8529:9:89","nodeType":"YulIdentifier","src":"8529:9:89"},{"kind":"number","nativeSrc":"8540:2:89","nodeType":"YulLiteral","src":"8540:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8525:3:89","nodeType":"YulIdentifier","src":"8525:3:89"},"nativeSrc":"8525:18:89","nodeType":"YulFunctionCall","src":"8525:18:89"},{"kind":"number","nativeSrc":"8545:3:89","nodeType":"YulLiteral","src":"8545:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"8518:6:89","nodeType":"YulIdentifier","src":"8518:6:89"},"nativeSrc":"8518:31:89","nodeType":"YulFunctionCall","src":"8518:31:89"},"nativeSrc":"8518:31:89","nodeType":"YulExpressionStatement","src":"8518:31:89"},{"nativeSrc":"8558:76:89","nodeType":"YulVariableDeclaration","src":"8558:76:89","value":{"arguments":[{"name":"value2","nativeSrc":"8598:6:89","nodeType":"YulIdentifier","src":"8598:6:89"},{"name":"value3","nativeSrc":"8606:6:89","nodeType":"YulIdentifier","src":"8606:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"8618:9:89","nodeType":"YulIdentifier","src":"8618:9:89"},{"kind":"number","nativeSrc":"8629:3:89","nodeType":"YulLiteral","src":"8629:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8614:3:89","nodeType":"YulIdentifier","src":"8614:3:89"},"nativeSrc":"8614:19:89","nodeType":"YulFunctionCall","src":"8614:19:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"8572:25:89","nodeType":"YulIdentifier","src":"8572:25:89"},"nativeSrc":"8572:62:89","nodeType":"YulFunctionCall","src":"8572:62:89"},"variables":[{"name":"tail_1","nativeSrc":"8562:6:89","nodeType":"YulTypedName","src":"8562:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8654:9:89","nodeType":"YulIdentifier","src":"8654:9:89"},{"kind":"number","nativeSrc":"8665:2:89","nodeType":"YulLiteral","src":"8665:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8650:3:89","nodeType":"YulIdentifier","src":"8650:3:89"},"nativeSrc":"8650:18:89","nodeType":"YulFunctionCall","src":"8650:18:89"},{"arguments":[{"name":"tail_1","nativeSrc":"8674:6:89","nodeType":"YulIdentifier","src":"8674:6:89"},{"name":"headStart","nativeSrc":"8682:9:89","nodeType":"YulIdentifier","src":"8682:9:89"}],"functionName":{"name":"sub","nativeSrc":"8670:3:89","nodeType":"YulIdentifier","src":"8670:3:89"},"nativeSrc":"8670:22:89","nodeType":"YulFunctionCall","src":"8670:22:89"}],"functionName":{"name":"mstore","nativeSrc":"8643:6:89","nodeType":"YulIdentifier","src":"8643:6:89"},"nativeSrc":"8643:50:89","nodeType":"YulFunctionCall","src":"8643:50:89"},"nativeSrc":"8643:50:89","nodeType":"YulExpressionStatement","src":"8643:50:89"},{"nativeSrc":"8702:40:89","nodeType":"YulAssignment","src":"8702:40:89","value":{"arguments":[{"name":"value4","nativeSrc":"8727:6:89","nodeType":"YulIdentifier","src":"8727:6:89"},{"name":"tail_1","nativeSrc":"8735:6:89","nodeType":"YulIdentifier","src":"8735:6:89"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"8710:16:89","nodeType":"YulIdentifier","src":"8710:16:89"},"nativeSrc":"8710:32:89","nodeType":"YulFunctionCall","src":"8710:32:89"},"variableNames":[{"name":"tail","nativeSrc":"8702:4:89","nodeType":"YulIdentifier","src":"8702:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_rational_0_by_1_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"8166:582:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8342:9:89","nodeType":"YulTypedName","src":"8342:9:89","type":""},{"name":"value4","nativeSrc":"8353:6:89","nodeType":"YulTypedName","src":"8353:6:89","type":""},{"name":"value3","nativeSrc":"8361:6:89","nodeType":"YulTypedName","src":"8361:6:89","type":""},{"name":"value2","nativeSrc":"8369:6:89","nodeType":"YulTypedName","src":"8369:6:89","type":""},{"name":"value1","nativeSrc":"8377:6:89","nodeType":"YulTypedName","src":"8377:6:89","type":""},{"name":"value0","nativeSrc":"8385:6:89","nodeType":"YulTypedName","src":"8385:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8396:4:89","nodeType":"YulTypedName","src":"8396:4:89","type":""}],"src":"8166:582:89"},{"body":{"nativeSrc":"8918:158:89","nodeType":"YulBlock","src":"8918:158:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8935:9:89","nodeType":"YulIdentifier","src":"8935:9:89"},{"name":"value0","nativeSrc":"8946:6:89","nodeType":"YulIdentifier","src":"8946:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8928:6:89","nodeType":"YulIdentifier","src":"8928:6:89"},"nativeSrc":"8928:25:89","nodeType":"YulFunctionCall","src":"8928:25:89"},"nativeSrc":"8928:25:89","nodeType":"YulExpressionStatement","src":"8928:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8973:9:89","nodeType":"YulIdentifier","src":"8973:9:89"},{"kind":"number","nativeSrc":"8984:2:89","nodeType":"YulLiteral","src":"8984:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8969:3:89","nodeType":"YulIdentifier","src":"8969:3:89"},"nativeSrc":"8969:18:89","nodeType":"YulFunctionCall","src":"8969:18:89"},{"kind":"number","nativeSrc":"8989:2:89","nodeType":"YulLiteral","src":"8989:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"8962:6:89","nodeType":"YulIdentifier","src":"8962:6:89"},"nativeSrc":"8962:30:89","nodeType":"YulFunctionCall","src":"8962:30:89"},"nativeSrc":"8962:30:89","nodeType":"YulExpressionStatement","src":"8962:30:89"},{"nativeSrc":"9001:69:89","nodeType":"YulAssignment","src":"9001:69:89","value":{"arguments":[{"name":"value1","nativeSrc":"9035:6:89","nodeType":"YulIdentifier","src":"9035:6:89"},{"name":"value2","nativeSrc":"9043:6:89","nodeType":"YulIdentifier","src":"9043:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"9055:9:89","nodeType":"YulIdentifier","src":"9055:9:89"},{"kind":"number","nativeSrc":"9066:2:89","nodeType":"YulLiteral","src":"9066:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9051:3:89","nodeType":"YulIdentifier","src":"9051:3:89"},"nativeSrc":"9051:18:89","nodeType":"YulFunctionCall","src":"9051:18:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"9009:25:89","nodeType":"YulIdentifier","src":"9009:25:89"},"nativeSrc":"9009:61:89","nodeType":"YulFunctionCall","src":"9009:61:89"},"variableNames":[{"name":"tail","nativeSrc":"9001:4:89","nodeType":"YulIdentifier","src":"9001:4:89"}]}]},"name":"abi_encode_tuple_t_rational_0_by_1_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"8753:323:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8871:9:89","nodeType":"YulTypedName","src":"8871:9:89","type":""},{"name":"value2","nativeSrc":"8882:6:89","nodeType":"YulTypedName","src":"8882:6:89","type":""},{"name":"value1","nativeSrc":"8890:6:89","nodeType":"YulTypedName","src":"8890:6:89","type":""},{"name":"value0","nativeSrc":"8898:6:89","nodeType":"YulTypedName","src":"8898:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8909:4:89","nodeType":"YulTypedName","src":"8909:4:89","type":""}],"src":"8753:323:89"},{"body":{"nativeSrc":"9189:101:89","nodeType":"YulBlock","src":"9189:101:89","statements":[{"nativeSrc":"9199:26:89","nodeType":"YulAssignment","src":"9199:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9211:9:89","nodeType":"YulIdentifier","src":"9211:9:89"},{"kind":"number","nativeSrc":"9222:2:89","nodeType":"YulLiteral","src":"9222:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9207:3:89","nodeType":"YulIdentifier","src":"9207:3:89"},"nativeSrc":"9207:18:89","nodeType":"YulFunctionCall","src":"9207:18:89"},"variableNames":[{"name":"tail","nativeSrc":"9199:4:89","nodeType":"YulIdentifier","src":"9199:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9241:9:89","nodeType":"YulIdentifier","src":"9241:9:89"},{"arguments":[{"name":"value0","nativeSrc":"9256:6:89","nodeType":"YulIdentifier","src":"9256:6:89"},{"kind":"number","nativeSrc":"9264:18:89","nodeType":"YulLiteral","src":"9264:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9252:3:89","nodeType":"YulIdentifier","src":"9252:3:89"},"nativeSrc":"9252:31:89","nodeType":"YulFunctionCall","src":"9252:31:89"}],"functionName":{"name":"mstore","nativeSrc":"9234:6:89","nodeType":"YulIdentifier","src":"9234:6:89"},"nativeSrc":"9234:50:89","nodeType":"YulFunctionCall","src":"9234:50:89"},"nativeSrc":"9234:50:89","nodeType":"YulExpressionStatement","src":"9234:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"9081:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9158:9:89","nodeType":"YulTypedName","src":"9158:9:89","type":""},{"name":"value0","nativeSrc":"9169:6:89","nodeType":"YulTypedName","src":"9169:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9180:4:89","nodeType":"YulTypedName","src":"9180:4:89","type":""}],"src":"9081:209:89"},{"body":{"nativeSrc":"9424:145:89","nodeType":"YulBlock","src":"9424:145:89","statements":[{"nativeSrc":"9434:26:89","nodeType":"YulAssignment","src":"9434:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9446:9:89","nodeType":"YulIdentifier","src":"9446:9:89"},{"kind":"number","nativeSrc":"9457:2:89","nodeType":"YulLiteral","src":"9457:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9442:3:89","nodeType":"YulIdentifier","src":"9442:3:89"},"nativeSrc":"9442:18:89","nodeType":"YulFunctionCall","src":"9442:18:89"},"variableNames":[{"name":"tail","nativeSrc":"9434:4:89","nodeType":"YulIdentifier","src":"9434:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9476:9:89","nodeType":"YulIdentifier","src":"9476:9:89"},{"arguments":[{"name":"value0","nativeSrc":"9491:6:89","nodeType":"YulIdentifier","src":"9491:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9507:3:89","nodeType":"YulLiteral","src":"9507:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"9512:1:89","nodeType":"YulLiteral","src":"9512:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9503:3:89","nodeType":"YulIdentifier","src":"9503:3:89"},"nativeSrc":"9503:11:89","nodeType":"YulFunctionCall","src":"9503:11:89"},{"kind":"number","nativeSrc":"9516:1:89","nodeType":"YulLiteral","src":"9516:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9499:3:89","nodeType":"YulIdentifier","src":"9499:3:89"},"nativeSrc":"9499:19:89","nodeType":"YulFunctionCall","src":"9499:19:89"}],"functionName":{"name":"and","nativeSrc":"9487:3:89","nodeType":"YulIdentifier","src":"9487:3:89"},"nativeSrc":"9487:32:89","nodeType":"YulFunctionCall","src":"9487:32:89"}],"functionName":{"name":"mstore","nativeSrc":"9469:6:89","nodeType":"YulIdentifier","src":"9469:6:89"},"nativeSrc":"9469:51:89","nodeType":"YulFunctionCall","src":"9469:51:89"},"nativeSrc":"9469:51:89","nodeType":"YulExpressionStatement","src":"9469:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9540:9:89","nodeType":"YulIdentifier","src":"9540:9:89"},{"kind":"number","nativeSrc":"9551:2:89","nodeType":"YulLiteral","src":"9551:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9536:3:89","nodeType":"YulIdentifier","src":"9536:3:89"},"nativeSrc":"9536:18:89","nodeType":"YulFunctionCall","src":"9536:18:89"},{"name":"value1","nativeSrc":"9556:6:89","nodeType":"YulIdentifier","src":"9556:6:89"}],"functionName":{"name":"mstore","nativeSrc":"9529:6:89","nodeType":"YulIdentifier","src":"9529:6:89"},"nativeSrc":"9529:34:89","nodeType":"YulFunctionCall","src":"9529:34:89"},"nativeSrc":"9529:34:89","nodeType":"YulExpressionStatement","src":"9529:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"9295:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9385:9:89","nodeType":"YulTypedName","src":"9385:9:89","type":""},{"name":"value1","nativeSrc":"9396:6:89","nodeType":"YulTypedName","src":"9396:6:89","type":""},{"name":"value0","nativeSrc":"9404:6:89","nodeType":"YulTypedName","src":"9404:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9415:4:89","nodeType":"YulTypedName","src":"9415:4:89","type":""}],"src":"9295:274:89"},{"body":{"nativeSrc":"9711:150:89","nodeType":"YulBlock","src":"9711:150:89","statements":[{"nativeSrc":"9721:27:89","nodeType":"YulVariableDeclaration","src":"9721:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"9741:6:89","nodeType":"YulIdentifier","src":"9741:6:89"}],"functionName":{"name":"mload","nativeSrc":"9735:5:89","nodeType":"YulIdentifier","src":"9735:5:89"},"nativeSrc":"9735:13:89","nodeType":"YulFunctionCall","src":"9735:13:89"},"variables":[{"name":"length","nativeSrc":"9725:6:89","nodeType":"YulTypedName","src":"9725:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9796:6:89","nodeType":"YulIdentifier","src":"9796:6:89"},{"kind":"number","nativeSrc":"9804:4:89","nodeType":"YulLiteral","src":"9804:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9792:3:89","nodeType":"YulIdentifier","src":"9792:3:89"},"nativeSrc":"9792:17:89","nodeType":"YulFunctionCall","src":"9792:17:89"},{"name":"pos","nativeSrc":"9811:3:89","nodeType":"YulIdentifier","src":"9811:3:89"},{"name":"length","nativeSrc":"9816:6:89","nodeType":"YulIdentifier","src":"9816:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9757:34:89","nodeType":"YulIdentifier","src":"9757:34:89"},"nativeSrc":"9757:66:89","nodeType":"YulFunctionCall","src":"9757:66:89"},"nativeSrc":"9757:66:89","nodeType":"YulExpressionStatement","src":"9757:66:89"},{"nativeSrc":"9832:23:89","nodeType":"YulAssignment","src":"9832:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"9843:3:89","nodeType":"YulIdentifier","src":"9843:3:89"},{"name":"length","nativeSrc":"9848:6:89","nodeType":"YulIdentifier","src":"9848:6:89"}],"functionName":{"name":"add","nativeSrc":"9839:3:89","nodeType":"YulIdentifier","src":"9839:3:89"},"nativeSrc":"9839:16:89","nodeType":"YulFunctionCall","src":"9839:16:89"},"variableNames":[{"name":"end","nativeSrc":"9832:3:89","nodeType":"YulIdentifier","src":"9832:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"9574:287:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9687:3:89","nodeType":"YulTypedName","src":"9687:3:89","type":""},{"name":"value0","nativeSrc":"9692:6:89","nodeType":"YulTypedName","src":"9692:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9703:3:89","nodeType":"YulTypedName","src":"9703:3:89","type":""}],"src":"9574:287:89"},{"body":{"nativeSrc":"9944:199:89","nodeType":"YulBlock","src":"9944:199:89","statements":[{"body":{"nativeSrc":"9990:16:89","nodeType":"YulBlock","src":"9990:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9999:1:89","nodeType":"YulLiteral","src":"9999:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10002:1:89","nodeType":"YulLiteral","src":"10002:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9992:6:89","nodeType":"YulIdentifier","src":"9992:6:89"},"nativeSrc":"9992:12:89","nodeType":"YulFunctionCall","src":"9992:12:89"},"nativeSrc":"9992:12:89","nodeType":"YulExpressionStatement","src":"9992:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9965:7:89","nodeType":"YulIdentifier","src":"9965:7:89"},{"name":"headStart","nativeSrc":"9974:9:89","nodeType":"YulIdentifier","src":"9974:9:89"}],"functionName":{"name":"sub","nativeSrc":"9961:3:89","nodeType":"YulIdentifier","src":"9961:3:89"},"nativeSrc":"9961:23:89","nodeType":"YulFunctionCall","src":"9961:23:89"},{"kind":"number","nativeSrc":"9986:2:89","nodeType":"YulLiteral","src":"9986:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9957:3:89","nodeType":"YulIdentifier","src":"9957:3:89"},"nativeSrc":"9957:32:89","nodeType":"YulFunctionCall","src":"9957:32:89"},"nativeSrc":"9954:52:89","nodeType":"YulIf","src":"9954:52:89"},{"nativeSrc":"10015:29:89","nodeType":"YulVariableDeclaration","src":"10015:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"10034:9:89","nodeType":"YulIdentifier","src":"10034:9:89"}],"functionName":{"name":"mload","nativeSrc":"10028:5:89","nodeType":"YulIdentifier","src":"10028:5:89"},"nativeSrc":"10028:16:89","nodeType":"YulFunctionCall","src":"10028:16:89"},"variables":[{"name":"value","nativeSrc":"10019:5:89","nodeType":"YulTypedName","src":"10019:5:89","type":""}]},{"body":{"nativeSrc":"10097:16:89","nodeType":"YulBlock","src":"10097:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10106:1:89","nodeType":"YulLiteral","src":"10106:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10109:1:89","nodeType":"YulLiteral","src":"10109:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10099:6:89","nodeType":"YulIdentifier","src":"10099:6:89"},"nativeSrc":"10099:12:89","nodeType":"YulFunctionCall","src":"10099:12:89"},"nativeSrc":"10099:12:89","nodeType":"YulExpressionStatement","src":"10099:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10066:5:89","nodeType":"YulIdentifier","src":"10066:5:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10087:5:89","nodeType":"YulIdentifier","src":"10087:5:89"}],"functionName":{"name":"iszero","nativeSrc":"10080:6:89","nodeType":"YulIdentifier","src":"10080:6:89"},"nativeSrc":"10080:13:89","nodeType":"YulFunctionCall","src":"10080:13:89"}],"functionName":{"name":"iszero","nativeSrc":"10073:6:89","nodeType":"YulIdentifier","src":"10073:6:89"},"nativeSrc":"10073:21:89","nodeType":"YulFunctionCall","src":"10073:21:89"}],"functionName":{"name":"eq","nativeSrc":"10063:2:89","nodeType":"YulIdentifier","src":"10063:2:89"},"nativeSrc":"10063:32:89","nodeType":"YulFunctionCall","src":"10063:32:89"}],"functionName":{"name":"iszero","nativeSrc":"10056:6:89","nodeType":"YulIdentifier","src":"10056:6:89"},"nativeSrc":"10056:40:89","nodeType":"YulFunctionCall","src":"10056:40:89"},"nativeSrc":"10053:60:89","nodeType":"YulIf","src":"10053:60:89"},{"nativeSrc":"10122:15:89","nodeType":"YulAssignment","src":"10122:15:89","value":{"name":"value","nativeSrc":"10132:5:89","nodeType":"YulIdentifier","src":"10132:5:89"},"variableNames":[{"name":"value0","nativeSrc":"10122:6:89","nodeType":"YulIdentifier","src":"10122:6:89"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"9866:277:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9910:9:89","nodeType":"YulTypedName","src":"9910:9:89","type":""},{"name":"dataEnd","nativeSrc":"9921:7:89","nodeType":"YulTypedName","src":"9921:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9933:6:89","nodeType":"YulTypedName","src":"9933:6:89","type":""}],"src":"9866:277:89"},{"body":{"nativeSrc":"10322:233:89","nodeType":"YulBlock","src":"10322:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10339:9:89","nodeType":"YulIdentifier","src":"10339:9:89"},{"kind":"number","nativeSrc":"10350:2:89","nodeType":"YulLiteral","src":"10350:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10332:6:89","nodeType":"YulIdentifier","src":"10332:6:89"},"nativeSrc":"10332:21:89","nodeType":"YulFunctionCall","src":"10332:21:89"},"nativeSrc":"10332:21:89","nodeType":"YulExpressionStatement","src":"10332:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10373:9:89","nodeType":"YulIdentifier","src":"10373:9:89"},{"kind":"number","nativeSrc":"10384:2:89","nodeType":"YulLiteral","src":"10384:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10369:3:89","nodeType":"YulIdentifier","src":"10369:3:89"},"nativeSrc":"10369:18:89","nodeType":"YulFunctionCall","src":"10369:18:89"},{"kind":"number","nativeSrc":"10389:2:89","nodeType":"YulLiteral","src":"10389:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"10362:6:89","nodeType":"YulIdentifier","src":"10362:6:89"},"nativeSrc":"10362:30:89","nodeType":"YulFunctionCall","src":"10362:30:89"},"nativeSrc":"10362:30:89","nodeType":"YulExpressionStatement","src":"10362:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10412:9:89","nodeType":"YulIdentifier","src":"10412:9:89"},{"kind":"number","nativeSrc":"10423:2:89","nodeType":"YulLiteral","src":"10423:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10408:3:89","nodeType":"YulIdentifier","src":"10408:3:89"},"nativeSrc":"10408:18:89","nodeType":"YulFunctionCall","src":"10408:18:89"},{"hexValue":"5472616e7366657248656c7065723a3a73616665417070726f76653a20617070","kind":"string","nativeSrc":"10428:34:89","nodeType":"YulLiteral","src":"10428:34:89","type":"","value":"TransferHelper::safeApprove: app"}],"functionName":{"name":"mstore","nativeSrc":"10401:6:89","nodeType":"YulIdentifier","src":"10401:6:89"},"nativeSrc":"10401:62:89","nodeType":"YulFunctionCall","src":"10401:62:89"},"nativeSrc":"10401:62:89","nodeType":"YulExpressionStatement","src":"10401:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10483:9:89","nodeType":"YulIdentifier","src":"10483:9:89"},{"kind":"number","nativeSrc":"10494:2:89","nodeType":"YulLiteral","src":"10494:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10479:3:89","nodeType":"YulIdentifier","src":"10479:3:89"},"nativeSrc":"10479:18:89","nodeType":"YulFunctionCall","src":"10479:18:89"},{"hexValue":"726f7665206661696c6564","kind":"string","nativeSrc":"10499:13:89","nodeType":"YulLiteral","src":"10499:13:89","type":"","value":"rove failed"}],"functionName":{"name":"mstore","nativeSrc":"10472:6:89","nodeType":"YulIdentifier","src":"10472:6:89"},"nativeSrc":"10472:41:89","nodeType":"YulFunctionCall","src":"10472:41:89"},"nativeSrc":"10472:41:89","nodeType":"YulExpressionStatement","src":"10472:41:89"},{"nativeSrc":"10522:27:89","nodeType":"YulAssignment","src":"10522:27:89","value":{"arguments":[{"name":"headStart","nativeSrc":"10534:9:89","nodeType":"YulIdentifier","src":"10534:9:89"},{"kind":"number","nativeSrc":"10545:3:89","nodeType":"YulLiteral","src":"10545:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10530:3:89","nodeType":"YulIdentifier","src":"10530:3:89"},"nativeSrc":"10530:19:89","nodeType":"YulFunctionCall","src":"10530:19:89"},"variableNames":[{"name":"tail","nativeSrc":"10522:4:89","nodeType":"YulIdentifier","src":"10522:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10148:407:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10299:9:89","nodeType":"YulTypedName","src":"10299:9:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10313:4:89","nodeType":"YulTypedName","src":"10313:4:89","type":""}],"src":"10148:407:89"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let tail_2 := add(add(headStart, shl(5, length)), 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, headStart), not(63)))\n            tail_2 := abi_encode_bytes(mload(srcPtr), tail_2)\n            srcPtr := add(srcPtr, 32)\n            pos := add(pos, 32)\n        }\n        tail := tail_2\n    }\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 128)\n        let tail_1 := abi_encode_bytes_calldata(value2, value3, add(headStart, 128))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value4, tail_1)\n    }\n    function abi_encode_tuple_t_address_t_rational_0_by_1_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 128)\n        let tail_1 := abi_encode_bytes_calldata(value2, value3, add(headStart, 128))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value4, tail_1)\n    }\n    function abi_encode_tuple_t_rational_0_by_1_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"TransferHelper::safeApprove: app\")\n        mstore(add(headStart, 96), \"rove failed\")\n        tail := add(headStart, 128)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100a05760003560e01c80638da5cb5b116100645780638da5cb5b14610161578063b61d27f614610199578063c4d66de8146101b9578063c72c901a146101d9578063dc40af1f146101f9578063e1f21c671461022957600080fd5b806341e15ea0146100ac57806345670295146100d157806345f67ac7146100f25780636e0aacf71461011f5780637e383a751461013f57600080fd5b366100a757005b600080fd5b3480156100b857600080fd5b5060015b60405190151581526020015b60405180910390f35b6100e46100df366004610c2b565b610249565b6040516100c8929190610cd5565b3480156100fe57600080fd5b5061011261010d366004610d3d565b610373565b6040516100c89190610de3565b34801561012b57600080fd5b506100e461013a366004610e48565b6105cc565b34801561014b57600080fd5b5061015f61015a366004610e9b565b6106e6565b005b34801561016d57600080fd5b50600054610181906001600160a01b031681565b6040516001600160a01b0390911681526020016100c8565b6101ac6101a7366004610c2b565b610741565b6040516100c89190610ebd565b3480156101c557600080fd5b5061015f6101d4366004610e9b565b610895565b3480156101e557600080fd5b5061015f6101f4366004610e9b565b6109b7565b34801561020557600080fd5b506100bc610214366004610e9b565b60016020526000908152604090205460ff1681565b34801561023557600080fd5b5061015f610244366004610ed0565b610a18565b3360009081526001602052604081205460609060ff161561028057336000908152600160205260409020805460ff191690556102c0565b60005433906001600160a01b031681146102be57604051630504a20d60e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b505b856001600160a01b03168585856040516102db929190610f0d565b60006040518083038185875af1925050503d8060008114610318576040519150601f19603f3d011682016040523d82523d6000602084013e61031d565b606091505b5060405191935091506001600160a01b038716907fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9061036290889088908890610f46565b60405180910390a294509492505050565b3360009081526001602052604090205460609060ff16156103aa57336000908152600160205260409020805460ff191690556103e5565b60005433906001600160a01b031681146103e357604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b505b60008667ffffffffffffffff81111561040057610400610f69565b60405190808252806020026020018201604052801561043357816020015b606081526020019060019003908161041e5790505b50905060005b878110156105c0576000808a8a8481811061045657610456610f7f565b905060200201602081019061046b9190610e9b565b6001600160a01b031689898581811061048657610486610f7f565b9050602002013588888681811061049f5761049f610f7f565b90506020028101906104b19190610f95565b6040516104bf929190610f0d565b60006040518083038185875af1925050503d80600081146104fc576040519150601f19603f3d011682016040523d82523d6000602084013e610501565b606091505b5091509150818b8b8581811061051957610519610f7f565b905060200201602081019061052e9190610e9b565b8a8a8681811061054057610540610f7f565b9050602002013589898781811061055957610559610f7f565b905060200281019061056b9190610f95565b85909192939461059357604051630717adb560e21b81526004016102b5959493929190610fdc565b5050505050808484815181106105ab576105ab610f7f565b60209081029190910101525050600101610439565b50979650505050505050565b6000805460609033906001600160a01b0316811461060957604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b50846001600160a01b03168484604051610624929190610f0d565b600060405180830381855af49150503d806000811461065f576040519150601f19603f3d011682016040523d82523d6000602084013e610664565b606091505b5090925090508460008585848661069357604051630717adb560e21b81526004016102b5959493929190610fdc565b5050505050846001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f600086866040516106d693929190610f46565b60405180910390a2935093915050565b60005433906001600160a01b0316811461071f57604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b506001600160a01b03166000908152600160205260409020805460ff19169055565b3360009081526001602052604090205460609060ff161561077857336000908152600160205260409020805460ff191690556107b3565b60005433906001600160a01b031681146107b157604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b505b600080866001600160a01b03168686866040516107d1929190610f0d565b60006040518083038185875af1925050503d806000811461080e576040519150601f19603f3d011682016040523d82523d6000602084013e610813565b606091505b50909250905086868686848661084157604051630717adb560e21b81526004016102b5959493929190610fdc565b5050505050866001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f87878760405161088393929190610f46565b60405180910390a29695505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156108db5750825b905060008267ffffffffffffffff1660011480156108f85750303b155b905081158015610906575080155b156109245760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561094e57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156109af57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60005433906001600160a01b031681146109f057604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b506001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526001602052604090205460ff1615610a4c57336000908152600160205260409020805460ff19169055610a87565b60005433906001600160a01b03168114610a8557604051630504a20d60e01b81526001600160a01b0390911660048201526024016102b5565b505b610a92838383610a97565b505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691610af39190611022565b6000604051808303816000865af19150503d8060008114610b30576040519150601f19603f3d011682016040523d82523d6000602084013e610b35565b606091505b5091509150818015610b5f575080511580610b5f575080806020019051810190610b5f919061103e565b610bbf5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b60648201526084016102b5565b5050505050565b80356001600160a01b0381168114610bdd57600080fd5b919050565b60008083601f840112610bf457600080fd5b50813567ffffffffffffffff811115610c0c57600080fd5b602083019150836020828501011115610c2457600080fd5b9250929050565b60008060008060608587031215610c4157600080fd5b610c4a85610bc6565b935060208501359250604085013567ffffffffffffffff811115610c6d57600080fd5b610c7987828801610be2565b95989497509550505050565b60005b83811015610ca0578181015183820152602001610c88565b50506000910152565b60008151808452610cc1816020860160208601610c85565b601f01601f19169290920160200192915050565b8215158152604060208201526000610cf06040830184610ca9565b949350505050565b60008083601f840112610d0a57600080fd5b50813567ffffffffffffffff811115610d2257600080fd5b6020830191508360208260051b8501011115610c2457600080fd5b60008060008060008060608789031215610d5657600080fd5b863567ffffffffffffffff811115610d6d57600080fd5b610d7989828a01610cf8565b909750955050602087013567ffffffffffffffff811115610d9957600080fd5b610da589828a01610cf8565b909550935050604087013567ffffffffffffffff811115610dc557600080fd5b610dd189828a01610cf8565b979a9699509497509295939492505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610e3c57603f19878603018452610e27858351610ca9565b94506020938401939190910190600101610e0b565b50929695505050505050565b600080600060408486031215610e5d57600080fd5b610e6684610bc6565b9250602084013567ffffffffffffffff811115610e8257600080fd5b610e8e86828701610be2565b9497909650939450505050565b600060208284031215610ead57600080fd5b610eb682610bc6565b9392505050565b602081526000610eb66020830184610ca9565b600080600060608486031215610ee557600080fd5b610eee84610bc6565b9250610efc60208501610bc6565b929592945050506040919091013590565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b838152604060208201526000610f60604083018486610f1d565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610fac57600080fd5b83018035915067ffffffffffffffff821115610fc757600080fd5b602001915036819003821315610c2457600080fd5b60018060a01b0386168152846020820152608060408201526000611004608083018587610f1d565b82810360608401526110168185610ca9565b98975050505050505050565b60008251611034818460208701610c85565b9190910192915050565b60006020828403121561105057600080fd5b81518015158114610eb657600080fdfea26469706673582212200b526636d0ecf7b395f66bfd52858d8333e5a1cb0b047f9800b61711aa9cf6a064736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0xB61D27F6 EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0xC72C901A EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xDC40AF1F EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0xE1F21C67 EQ PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x41E15EA0 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x45670295 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x45F67AC7 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x6E0AACF7 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x7E383A75 EQ PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xA7 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE4 PUSH2 0xDF CALLDATASIZE PUSH1 0x4 PUSH2 0xC2B JUMP JUMPDEST PUSH2 0x249 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP3 SWAP2 SWAP1 PUSH2 0xCD5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x10D CALLDATASIZE PUSH1 0x4 PUSH2 0xD3D JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0xDE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE4 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xE48 JUMP JUMPDEST PUSH2 0x5CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15F PUSH2 0x15A CALLDATASIZE PUSH1 0x4 PUSH2 0xE9B JUMP JUMPDEST PUSH2 0x6E6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x181 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC8 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1A7 CALLDATASIZE PUSH1 0x4 PUSH2 0xC2B JUMP JUMPDEST PUSH2 0x741 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0xEBD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9B JUMP JUMPDEST PUSH2 0x895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15F PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9B JUMP JUMPDEST PUSH2 0x9B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBC PUSH2 0x214 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15F PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0xED0 JUMP JUMPDEST PUSH2 0xA18 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x280 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x2BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DB SWAP3 SWAP2 SWAP1 PUSH2 0xF0D 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 0x318 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 0x31D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD SWAP2 SWAP4 POP SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F SWAP1 PUSH2 0x362 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x3AA JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x3E5 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x3E3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP7 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x400 JUMPI PUSH2 0x400 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x433 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x41E JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0x456 JUMPI PUSH2 0x456 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x46B SWAP2 SWAP1 PUSH2 0xE9B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x486 JUMPI PUSH2 0x486 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x49F JUMPI PUSH2 0x49F PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x4B1 SWAP2 SWAP1 PUSH2 0xF95 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BF SWAP3 SWAP2 SWAP1 PUSH2 0xF0D 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 0x4FC 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 0x501 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP12 DUP12 DUP6 DUP2 DUP2 LT PUSH2 0x519 JUMPI PUSH2 0x519 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x52E SWAP2 SWAP1 PUSH2 0xE9B JUMP JUMPDEST DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x540 JUMPI PUSH2 0x540 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP10 DUP10 DUP8 DUP2 DUP2 LT PUSH2 0x559 JUMPI PUSH2 0x559 PUSH2 0xF7F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x56B SWAP2 SWAP1 PUSH2 0xF95 JUMP JUMPDEST DUP6 SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 PUSH2 0x593 JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST POP POP POP POP POP DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x5AB JUMPI PUSH2 0x5AB PUSH2 0xF7F JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP POP PUSH1 0x1 ADD PUSH2 0x439 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x609 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x624 SWAP3 SWAP2 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x65F 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 0x664 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP DUP5 PUSH1 0x0 DUP6 DUP6 DUP5 DUP7 PUSH2 0x693 JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST POP POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x6D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x778 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x7B3 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x7B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x7D1 SWAP3 SWAP2 SWAP1 PUSH2 0xF0D 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 0x80E 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 0x813 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP DUP7 DUP7 DUP7 DUP7 DUP5 DUP7 PUSH2 0x841 JUMPI PUSH1 0x40 MLOAD PUSH4 0x717ADB5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCAF938DE11C367272220BFD1D2BAA99CA46665E7BC4D85F00ADB51B90FE1FA9F DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x883 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x8DB JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x8F8 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x906 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x924 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x94E JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x9AF JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA4C JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0xA87 JUMP JUMPDEST PUSH1 0x0 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0xA85 JUMPI PUSH1 0x40 MLOAD PUSH4 0x504A20D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x2B5 JUMP JUMPDEST POP JUMPDEST PUSH2 0xA92 DUP4 DUP4 DUP4 PUSH2 0xA97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0xAF3 SWAP2 SWAP1 PUSH2 0x1022 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB30 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 0xB35 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0xB5F JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0xB5F JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xB5F SWAP2 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH2 0xBBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A73616665417070726F76653A20617070 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x1C9BDD994819985A5B1959 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B5 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC4A DUP6 PUSH2 0xBC6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC79 DUP8 DUP3 DUP9 ADD PUSH2 0xBE2 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xCA0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC88 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xCC1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xC85 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xCF0 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xCA9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xD0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xC24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xD56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD79 DUP10 DUP3 DUP11 ADD PUSH2 0xCF8 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA5 DUP10 DUP3 DUP11 ADD PUSH2 0xCF8 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDD1 DUP10 DUP3 DUP11 ADD PUSH2 0xCF8 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xE3C JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0xE27 DUP6 DUP4 MLOAD PUSH2 0xCA9 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xE0B JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xE5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE66 DUP5 PUSH2 0xBC6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE8E DUP7 DUP3 DUP8 ADD PUSH2 0xBE2 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEB6 DUP3 PUSH2 0xBC6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEB6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCA9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xEE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEEE DUP5 PUSH2 0xBC6 JUMP JUMPDEST SWAP3 POP PUSH2 0xEFC PUSH1 0x20 DUP6 ADD PUSH2 0xBC6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF60 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0xF1D JUMP JUMPDEST SWAP6 SWAP5 POP 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0xFAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xFC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0xC24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1004 PUSH1 0x80 DUP4 ADD DUP6 DUP8 PUSH2 0xF1D JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x1016 DUP2 DUP6 PUSH2 0xCA9 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1034 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xC85 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1050 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEB6 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND MSTORE PUSH7 0x36D0ECF7B395F6 PUSH12 0xFD52858D8333E5A1CB0B047F SWAP9 STOP 0xB6 OR GT 0xAA SWAP13 0xF6 LOG0 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"299:2850:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3021:91;;;;;;;;;;-1:-1:-1;3101:4:82;3021:91;;;179:14:89;;172:22;154:41;;142:2;127:18;3021:91:82;;;;;;;;1507:274;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2483:532::-;;;;;;;;;;-1:-1:-1;2483:532:82;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1787:303::-;;;;;;;;;;-1:-1:-1;1787:303:82;;;;;:::i;:::-;;:::i;2212:111::-;;;;;;;;;;-1:-1:-1;2212:111:82;;;;;:::i;:::-;;:::i;:::-;;345:20;;;;;;;;;;-1:-1:-1;345:20:82;;;;-1:-1:-1;;;;;345:20:82;;;;;;-1:-1:-1;;;;;5285:32:89;;;5267:51;;5255:2;5240:18;345:20:82;5121:203:89;1138:363:82;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1046:86::-;;;;;;;;;;-1:-1:-1;1046:86:82;;;;;:::i;:::-;;:::i;2096:110::-;;;;;;;;;;-1:-1:-1;2096:110:82;;;;;:::i;:::-;;:::i;444:60::-;;;;;;;;;;-1:-1:-1;444:60:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;2329:148;;;;;;;;;;-1:-1:-1;2329:148:82;;;;;:::i;:::-;;:::i;1507:274::-;698:10;1625:12;683:26;;;:14;:26;;;;;;1639:23;;683:26;;679:176;;;740:10;754:5;725:26;;;:14;:26;;;;;:34;;-1:-1:-1;;725:34:82;;;679:176;;;812:5;;798:10;;-1:-1:-1;;;;;812:5:82;798:19;;790:54;;;;-1:-1:-1;;;790:54:82;;-1:-1:-1;;;;;5285:32:89;;;790:54:82;;;5267:51:89;5240:18;;790:54:82;;;;;;;;;;679:176;1699:6:::1;-1:-1:-1::0;;;;;1699:11:82::1;1718:5;1725:4;;1699:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;1745:29:82::1;::::0;1675:55;;-1:-1:-1;1675:55:82;-1:-1:-1;;;;;;1745:29:82;::::1;::::0;::::1;::::0;::::1;::::0;1762:5;;1769:4;;;;1745:29:::1;:::i;:::-;;;;;;;;1507:274:::0;;;;;;;:::o;2483:532::-;698:10;683:26;;;;:14;:26;;;;;;2615:14;;683:26;;679:176;;;740:10;754:5;725:26;;;:14;:26;;;;;:34;;-1:-1:-1;;725:34:82;;;679:176;;;812:5;;798:10;;-1:-1:-1;;;;;812:5:82;798:19;;790:54;;;;-1:-1:-1;;;790:54:82;;-1:-1:-1;;;;;5285:32:89;;;790:54:82;;;5267:51:89;5240:18;;790:54:82;5121:203:89;790:54:82;;679:176;2641:22:::1;2678:7:::0;2666:27:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2641:52;;2708:9;2703:282;2723:18:::0;;::::1;2703:282;;;2763:12;2777:23:::0;2804:7:::1;;2812:1;2804:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2804:15:82::1;2827:6;;2834:1;2827:9;;;;;;;:::i;:::-;;;;;;;2838:4;;2843:1;2838:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2804:42;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2762:84;;;;2868:7;2893;;2901:1;2893:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2905:6;;2912:1;2905:9;;;;;;;:::i;:::-;;;;;;;2916:4;;2921:1;2916:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2925:10;2860:77;;;;;;;;;-1:-1:-1::0;;;2860:77:82::1;;;;;;;;;;;;:::i;:::-;;;;;;2964:10;2951:7;2959:1;2951:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:23;-1:-1:-1;;2743:3:82::1;;2703:282;;;-1:-1:-1::0;3001:7:82;2483:532;-1:-1:-1;;;;;;;2483:532:82:o;1787:303::-;1873:12;931:5;;1887:23;;917:10;;-1:-1:-1;;;;;931:5:82;917:19;;909:54;;;;-1:-1:-1;;;909:54:82;;-1:-1:-1;;;;;5285:32:89;;;909:54:82;;;5267:51:89;5240:18;;909:54:82;5121:203:89;909:54:82;;1946:6:::1;-1:-1:-1::0;;;;;1946:19:82::1;1966:4;;1946:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;1922:49:82;;-1:-1:-1;1922:49:82;-1:-1:-1;2014:6:82;2022:1:::1;2025:4:::0;;1922:49;;1981:62:::1;;;;-1:-1:-1::0;;;1981:62:82::1;;;;;;;;;;;;:::i;:::-;;;;;;2067:6;-1:-1:-1::0;;;;;2058:25:82::1;;2075:1;2078:4;;2058:25;;;;;;;;:::i;:::-;;;;;;;;1787:303:::0;;;;;;:::o;2212:111::-;931:5;;917:10;;-1:-1:-1;;;;;931:5:82;917:19;;909:54;;;;-1:-1:-1;;;909:54:82;;-1:-1:-1;;;;;5285:32:89;;;909:54:82;;;5267:51:89;5240:18;;909:54:82;5121:203:89;909:54:82;-1:-1:-1;;;;;;2286:22:82::1;2311:5;2286:22:::0;;;:14:::1;:22;::::0;;;;:30;;-1:-1:-1;;2286:30:82::1;::::0;;2212:111::o;1138:363::-;698:10;683:26;;;;:14;:26;;;;;;1250:12;;683:26;;679:176;;;740:10;754:5;725:26;;;:14;:26;;;;;:34;;-1:-1:-1;;725:34:82;;;679:176;;;812:5;;798:10;;-1:-1:-1;;;;;812:5:82;798:19;;790:54;;;;-1:-1:-1;;;790:54:82;;-1:-1:-1;;;;;5285:32:89;;;790:54:82;;;5267:51:89;5240:18;;790:54:82;5121:203:89;790:54:82;;679:176;1275:12:::1;1289:23:::0;1316:6:::1;-1:-1:-1::0;;;;;1316:11:82::1;1335:5;1342:4;;1316:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;1274:73:82;;-1:-1:-1;1274:73:82;-1:-1:-1;1390:6:82;1398:5;1405:4;;1274:73;;1357:66:::1;;;;-1:-1:-1::0;;;1357:66:82::1;;;;;;;;;;;;:::i;:::-;;;;;;1447:6;-1:-1:-1::0;;;;;1438:29:82::1;;1455:5;1462:4;;1438:29;;;;;;;;:::i;:::-;;;;;;;;1484:10:::0;1138:363;-1:-1:-1;;;;;;1138:363:82:o;1046:86::-;8870:21:22;4302:15;;-1:-1:-1;;;4302:15:22;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:22;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:22;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:22;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:22;-1:-1:-1;;;5013:22:22;;;4979:67;1111:5:82::1;:14:::0;;-1:-1:-1;;;;;;1111:14:82::1;-1:-1:-1::0;;;;;1111:14:82;::::1;;::::0;;5066:101:22;;;;5100:23;;-1:-1:-1;;;;5100:23:22;;;5142:14;;-1:-1:-1;9234:50:89;;5142:14:22;;9222:2:89;9207:18;5142:14:22;;;;;;;5066:101;4092:1081;;;;;1046:86:82;:::o;2096:110::-;931:5;;917:10;;-1:-1:-1;;;;;931:5:82;917:19;;909:54;;;;-1:-1:-1;;;909:54:82;;-1:-1:-1;;;;;5285:32:89;;;909:54:82;;;5267:51:89;5240:18;;909:54:82;5121:203:89;909:54:82;-1:-1:-1;;;;;;2170:22:82::1;;::::0;;;2195:4:::1;2170:22;::::0;;;;;;;:29;;-1:-1:-1;;2170:29:82::1;::::0;;::::1;::::0;;2096:110::o;2329:148::-;698:10;683:26;;;;:14;:26;;;;;;;;679:176;;;740:10;754:5;725:26;;;:14;:26;;;;;:34;;-1:-1:-1;;725:34:82;;;679:176;;;812:5;;798:10;;-1:-1:-1;;;;;812:5:82;798:19;;790:54;;;;-1:-1:-1;;;790:54:82;;-1:-1:-1;;;;;5285:32:89;;;790:54:82;;;5267:51:89;5240:18;;790:54:82;5121:203:89;790:54:82;;679:176;2425:45:::1;2452:5;2459:2;2463:6;2425:26;:45::i;:::-;2329:148:::0;;;:::o;212:434:47:-;436:45;;;-1:-1:-1;;;;;9487:32:89;;;436:45:47;;;9469:51:89;9536:18;;;;9529:34;;;436:45:47;;;;;;;;;;9442:18:89;;;;436:45:47;;;;;;;-1:-1:-1;;;;;436:45:47;-1:-1:-1;;;436:45:47;;;425:57;;-1:-1:-1;;;;425:10:47;;;;:57;;436:45;425:57;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;389:93;;;;513:7;:57;;;;-1:-1:-1;525:11:47;;:16;;:44;;;556:4;545:24;;;;;;;;;;;;:::i;:::-;492:147;;;;-1:-1:-1;;;492:147:47;;10350:2:89;492:147:47;;;10332:21:89;10389:2;10369:18;;;10362:30;10428:34;10408:18;;;10401:62;-1:-1:-1;;;10479:18:89;;;10472:41;10530:19;;492:147:47;10148:407:89;492:147:47;314:332;;212:434;;;:::o;206:173:89:-;274:20;;-1:-1:-1;;;;;323:31:89;;313:42;;303:70;;369:1;366;359:12;303:70;206:173;;;:::o;384:347::-;435:8;445:6;499:3;492:4;484:6;480:17;476:27;466:55;;517:1;514;507:12;466:55;-1:-1:-1;540:20:89;;583:18;572:30;;569:50;;;615:1;612;605:12;569:50;652:4;644:6;640:17;628:29;;704:3;697:4;688:6;680;676:19;672:30;669:39;666:59;;;721:1;718;711:12;666:59;384:347;;;;;:::o;736:597::-;824:6;832;840;848;901:2;889:9;880:7;876:23;872:32;869:52;;;917:1;914;907:12;869:52;940:29;959:9;940:29;:::i;:::-;930:39;-1:-1:-1;1038:2:89;1023:18;;1010:32;;-1:-1:-1;1117:2:89;1102:18;;1089:32;1144:18;1133:30;;1130:50;;;1176:1;1173;1166:12;1130:50;1215:58;1265:7;1256:6;1245:9;1241:22;1215:58;:::i;:::-;736:597;;;;-1:-1:-1;1292:8:89;-1:-1:-1;;;;736:597:89:o;1338:250::-;1423:1;1433:113;1447:6;1444:1;1441:13;1433:113;;;1523:11;;;1517:18;1504:11;;;1497:39;1469:2;1462:10;1433:113;;;-1:-1:-1;;1580:1:89;1562:16;;1555:27;1338:250::o;1593:270::-;1634:3;1672:5;1666:12;1699:6;1694:3;1687:19;1715:76;1784:6;1777:4;1772:3;1768:14;1761:4;1754:5;1750:16;1715:76;:::i;:::-;1845:2;1824:15;-1:-1:-1;;1820:29:89;1811:39;;;;1852:4;1807:50;;1593:270;-1:-1:-1;;1593:270:89:o;1868:298::-;2051:6;2044:14;2037:22;2026:9;2019:41;2096:2;2091;2080:9;2076:18;2069:30;2000:4;2116:44;2156:2;2145:9;2141:18;2133:6;2116:44;:::i;:::-;2108:52;1868:298;-1:-1:-1;;;;1868:298:89:o;2171:367::-;2234:8;2244:6;2298:3;2291:4;2283:6;2279:17;2275:27;2265:55;;2316:1;2313;2306:12;2265:55;-1:-1:-1;2339:20:89;;2382:18;2371:30;;2368:50;;;2414:1;2411;2404:12;2368:50;2451:4;2443:6;2439:17;2427:29;;2511:3;2504:4;2494:6;2491:1;2487:14;2479:6;2475:27;2471:38;2468:47;2465:67;;;2528:1;2525;2518:12;2543:1110;2712:6;2720;2728;2736;2744;2752;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2861:9;2848:23;2894:18;2886:6;2883:30;2880:50;;;2926:1;2923;2916:12;2880:50;2965:70;3027:7;3018:6;3007:9;3003:22;2965:70;:::i;:::-;3054:8;;-1:-1:-1;2939:96:89;-1:-1:-1;;3142:2:89;3127:18;;3114:32;3171:18;3158:32;;3155:52;;;3203:1;3200;3193:12;3155:52;3242:72;3306:7;3295:8;3284:9;3280:24;3242:72;:::i;:::-;3333:8;;-1:-1:-1;3216:98:89;-1:-1:-1;;3421:2:89;3406:18;;3393:32;3450:18;3437:32;;3434:52;;;3482:1;3479;3472:12;3434:52;3521:72;3585:7;3574:8;3563:9;3559:24;3521:72;:::i;:::-;2543:1110;;;;-1:-1:-1;2543:1110:89;;-1:-1:-1;2543:1110:89;;3612:8;;2543:1110;-1:-1:-1;;;2543:1110:89:o;3658:779::-;3818:4;3866:2;3855:9;3851:18;3896:2;3885:9;3878:21;3919:6;3954;3948:13;3985:6;3977;3970:22;4023:2;4012:9;4008:18;4001:25;;4085:2;4075:6;4072:1;4068:14;4057:9;4053:30;4049:39;4035:53;;4123:2;4115:6;4111:15;4144:1;4154:254;4168:6;4165:1;4162:13;4154:254;;;4261:2;4257:7;4245:9;4237:6;4233:22;4229:36;4224:3;4217:49;4289:39;4321:6;4312;4306:13;4289:39;:::i;:::-;4279:49;-1:-1:-1;4363:2:89;4386:12;;;;4351:15;;;;;4190:1;4183:9;4154:254;;;-1:-1:-1;4425:6:89;;3658:779;-1:-1:-1;;;;;;3658:779:89:o;4442:483::-;4521:6;4529;4537;4590:2;4578:9;4569:7;4565:23;4561:32;4558:52;;;4606:1;4603;4596:12;4558:52;4629:29;4648:9;4629:29;:::i;:::-;4619:39;;4709:2;4698:9;4694:18;4681:32;4736:18;4728:6;4725:30;4722:50;;;4768:1;4765;4758:12;4722:50;4807:58;4857:7;4848:6;4837:9;4833:22;4807:58;:::i;:::-;4442:483;;4884:8;;-1:-1:-1;4781:84:89;;-1:-1:-1;;;;4442:483:89:o;4930:186::-;4989:6;5042:2;5030:9;5021:7;5017:23;5013:32;5010:52;;;5058:1;5055;5048:12;5010:52;5081:29;5100:9;5081:29;:::i;:::-;5071:39;4930:186;-1:-1:-1;;;4930:186:89:o;5329:217::-;5476:2;5465:9;5458:21;5439:4;5496:44;5536:2;5525:9;5521:18;5513:6;5496:44;:::i;5551:374::-;5628:6;5636;5644;5697:2;5685:9;5676:7;5672:23;5668:32;5665:52;;;5713:1;5710;5703:12;5665:52;5736:29;5755:9;5736:29;:::i;:::-;5726:39;;5784:38;5818:2;5807:9;5803:18;5784:38;:::i;:::-;5551:374;;5774:48;;-1:-1:-1;;;5891:2:89;5876:18;;;;5863:32;;5551:374::o;5930:271::-;6113:6;6105;6100:3;6087:33;6069:3;6139:16;;6164:13;;;6139:16;5930:271;-1:-1:-1;5930:271:89:o;6206:266::-;6294:6;6289:3;6282:19;6346:6;6339:5;6332:4;6327:3;6323:14;6310:43;-1:-1:-1;6398:1:89;6373:16;;;6391:4;6369:27;;;6362:38;;;;6454:2;6433:15;;;-1:-1:-1;;6429:29:89;6420:39;;;6416:50;;6206:266::o;6477:315::-;6662:6;6651:9;6644:25;6705:2;6700;6689:9;6685:18;6678:30;6625:4;6725:61;6782:2;6771:9;6767:18;6759:6;6751;6725:61;:::i;:::-;6717:69;6477:315;-1:-1:-1;;;;;6477:315:89:o;6797:127::-;6858:10;6853:3;6849:20;6846:1;6839:31;6889:4;6886:1;6879:15;6913:4;6910:1;6903:15;6929:127;6990:10;6985:3;6981:20;6978:1;6971:31;7021:4;7018:1;7011:15;7045:4;7042:1;7035:15;7061:521;7138:4;7144:6;7204:11;7191:25;7298:2;7294:7;7283:8;7267:14;7263:29;7259:43;7239:18;7235:68;7225:96;;7317:1;7314;7307:12;7225:96;7344:33;;7396:20;;;-1:-1:-1;7439:18:89;7428:30;;7425:50;;;7471:1;7468;7461:12;7425:50;7504:4;7492:17;;-1:-1:-1;7535:14:89;7531:27;;;7521:38;;7518:58;;;7572:1;7569;7562:12;7587:574;7875:1;7871;7866:3;7862:11;7858:19;7850:6;7846:32;7835:9;7828:51;7915:6;7910:2;7899:9;7895:18;7888:34;7958:3;7953:2;7942:9;7938:18;7931:31;7809:4;7985:62;8042:3;8031:9;8027:19;8019:6;8011;7985:62;:::i;:::-;8095:9;8087:6;8083:22;8078:2;8067:9;8063:18;8056:50;8123:32;8148:6;8140;8123:32;:::i;:::-;8115:40;7587:574;-1:-1:-1;;;;;;;;7587:574:89:o;9574:287::-;9703:3;9741:6;9735:13;9757:66;9816:6;9811:3;9804:4;9796:6;9792:17;9757:66;:::i;:::-;9839:16;;;;;9574:287;-1:-1:-1;;9574:287:89:o;9866:277::-;9933:6;9986:2;9974:9;9965:7;9961:23;9957:32;9954:52;;;10002:1;9999;9992:12;9954:52;10034:9;10028:16;10087:5;10080:13;10073:21;10066:5;10063:32;10053:60;;10109:1;10106;10099:12"},"methodIdentifiers":{"approve(address,address,uint256)":"e1f21c67","createOneTimeTicket(address)":"c72c901a","delegatecall(address,bytes)":"6e0aacf7","execute(address,uint256,bytes)":"b61d27f6","executeUnsafe(address,uint256,bytes)":"45670295","initialize(address)":"c4d66de8","multicall(address[],uint256[],bytes[])":"45f67ac7","oneTimeTickets(address)":"dc40af1f","owner()":"8da5cb5b","revokeOneTimeTicket(address)":"7e383a75","upgradedToMockBluePrint()":"41e15ea0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"createOneTimeTicket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegatecall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeUnsafe\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"oneTimeTickets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ticket\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"revokeOneTimeTicket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"upgradedToMockBluePrint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockBluePrint.sol\":\"MockBluePrint\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@uniswap/lib/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595\",\"dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j\"]},\"contracts/test/MockBluePrint.sol\":{\"keccak256\":\"0xd3b776dc4fb63841e59c69c5f71882fef15a3e945ccbba7ae953f6e4848dafb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9867f8273583d51a7e9fb23d3f5514e200f8a1988150d69ba6193c43ca299de\",\"dweb:/ipfs/QmZrPz77YuH4jUDJh69zFSZx45LhmLzXwFKfzE3MtPZhin\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":19940,"contract":"contracts/test/MockBluePrint.sol:MockBluePrint","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":19952,"contract":"contracts/test/MockBluePrint.sol:MockBluePrint","label":"oneTimeTickets","offset":0,"slot":"1","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"}}}}},"contracts/test/MyProxyUpgradeable.sol":{"MyProxyUpgradeable":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"OnlyCrossChainLayer","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"crossChainLayer","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"tacHeader","type":"bytes"},{"internalType":"bytes","name":"arguments","type":"bytes"}],"name":"myProxyFunction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a060405230608052348015601357600080fd5b506080516112fe61003d600039600081816106ef01528181610718015261084701526112fe6000f3fe6080604052600436106100865760003560e01c806352d1902d1161005957806352d1902d14610103578063715018a6146101185780638da5cb5b1461012d578063ad3cb1cc14610174578063f2fde38b146101b257600080fd5b80630d8e6e2c1461008b57806331cd5675146100ae578063485cc955146100d05780634f1ef286146100f0575b600080fd5b34801561009757600080fd5b5060015b6040519081526020015b60405180910390f35b3480156100ba57600080fd5b506100ce6100c9366004610c1e565b6101d2565b005b3480156100dc57600080fd5b506100ce6100eb366004610ca9565b610414565b6100ce6100fe366004610de2565b610534565b34801561010f57600080fd5b5061009b610553565b34801561012457600080fd5b506100ce610570565b34801561013957600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100a5565b34801561018057600080fd5b506101a5604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100a59190610e7f565b3480156101be57600080fd5b506100ce6101cd366004610e92565b610584565b6101da6105c7565b6001600160a01b0316336001600160a01b03161461020b576040516367ab7efd60e01b815260040160405180910390fd5b600061021785856105fa565b9050600061022783850185610ead565b905060005b81518110156103045781818151811061024757610247610f89565b6020026020010151600001516001600160a01b031663095ea7b36102696105c7565b84848151811061027b5761027b610f89565b6020026020010151602001516040518363ffffffff1660e01b81526004016102b89291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af11580156102d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fb9190610f9f565b5060010161022c565b5061040c60405180610100016040528084600001516001600160401b0316815260200184606001518152602001604051806020016040528060008152508152602001600081526020016000815260200160006001600160401b0381111561036d5761036d610cdc565b6040519080825280602002602001820160405280156103a057816020015b606081526020019060019003908161038b5790505b5081526020808201859052604080516000808252928101825292019190610402565b6103ef604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816103c25790505b5090526000610637565b505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156104595750825b90506000826001600160401b031660011480156104755750303b155b905081158015610483575080155b156104a15760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156104cb57845460ff60401b1916600160401b1785555b6104d36106ba565b6104dc876106c2565b6104e5866106d3565b831561052b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b61053c6106e4565b61054582610772565b61054f828261077a565b5050565b600061055d61083c565b506000805160206112a983398151915290565b610578610885565b61058260006108e0565b565b61058c610885565b6001600160a01b0381166105bb57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6105c4816108e0565b50565b60007f9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d1005b546001600160a01b0316919050565b6040805160a081018252600080825260208201819052918101919091526060808201819052608082015261063082840184610fc1565b9392505050565b61063f6105c7565b6001600160a01b031663e289adcd82600185604051602001610661919061118f565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161068d929190611252565b6000604051808303818588803b1580156106a657600080fd5b505af115801561052b573d6000803e3d6000fd5b610582610951565b6106ca610951565b6105c48161099a565b6106db610951565b6105c4816109a2565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061075457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107486109eb565b6001600160a01b031614155b156105825760405163703e46dd60e11b815260040160405180910390fd5b6105c4610885565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156107d4575060408051601f3d908101601f191682019092526107d191810190611273565b60015b6107fc57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016105b2565b6000805160206112a9833981519152811461082d57604051632a87526960e21b8152600481018290526024016105b2565b6108378383610a01565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105825760405163703e46dd60e11b815260040160405180910390fd5b336108b77f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146105825760405163118cdaa760e01b81523360048201526024016105b2565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661058257604051631afcd79f60e31b815260040160405180910390fd5b61058c610951565b6109aa610951565b7f9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d10080546001600160a01b0319166001600160a01b0392909216919091179055565b60006000805160206112a98339815191526105eb565b610a0a82610a57565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a4f576108378282610abc565b61054f610b32565b806001600160a01b03163b600003610a8d57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016105b2565b6000805160206112a983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610ad9919061128c565b600060405180830381855af49150503d8060008114610b14576040519150601f19603f3d011682016040523d82523d6000602084013e610b19565b606091505b5091509150610b29858383610b51565b95945050505050565b34156105825760405163b398979f60e01b815260040160405180910390fd5b606082610b6657610b6182610bad565b610630565b8151158015610b7d57506001600160a01b0384163b155b15610ba657604051639996b31560e01b81526001600160a01b03851660048201526024016105b2565b5092915050565b805115610bbd5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60008083601f840112610be857600080fd5b5081356001600160401b03811115610bff57600080fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b60008060008060408587031215610c3457600080fd5b84356001600160401b03811115610c4a57600080fd5b610c5687828801610bd6565b90955093505060208501356001600160401b03811115610c7557600080fd5b610c8187828801610bd6565b95989497509550505050565b80356001600160a01b0381168114610ca457600080fd5b919050565b60008060408385031215610cbc57600080fd5b610cc583610c8d565b9150610cd360208401610c8d565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610d1457610d14610cdc565b60405290565b60405160a081016001600160401b0381118282101715610d1457610d14610cdc565b604051601f8201601f191681016001600160401b0381118282101715610d6457610d64610cdc565b604052919050565b600082601f830112610d7d57600080fd5b8135602083016000806001600160401b03841115610d9d57610d9d610cdc565b50601f8301601f1916602001610db281610d3c565b915050828152858383011115610dc757600080fd5b82826020830137600092810160200192909252509392505050565b60008060408385031215610df557600080fd5b610dfe83610c8d565b915060208301356001600160401b03811115610e1957600080fd5b610e2585828601610d6c565b9150509250929050565b60005b83811015610e4a578181015183820152602001610e32565b50506000910152565b60008151808452610e6b816020860160208601610e2f565b601f01601f19169290920160200192915050565b6020815260006106306020830184610e53565b600060208284031215610ea457600080fd5b61063082610c8d565b600060208284031215610ebf57600080fd5b81356001600160401b03811115610ed557600080fd5b8201601f81018413610ee657600080fd5b80356001600160401b03811115610eff57610eff610cdc565b610f0e60208260051b01610d3c565b8082825260208201915060208360061b850101925086831115610f3057600080fd5b6020840193505b82841015610f7f5760408488031215610f4f57600080fd5b610f57610cf2565b610f6085610c8d565b8152602085810135818301529083526040909401939190910190610f37565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610fb157600080fd5b8151801515811461063057600080fd5b600060208284031215610fd357600080fd5b81356001600160401b03811115610fe957600080fd5b820160a08185031215610ffb57600080fd5b611003610d1a565b81356001600160401b038116811461101a57600080fd5b8152602082810135908201526040808301359082015260608201356001600160401b0381111561104957600080fd5b61105586828501610d6c565b60608301525060808201356001600160401b0381111561107457600080fd5b61108086828501610d6c565b608083015250949350505050565b600082825180855260208501945060208160051b8301016020850160005b838110156110de57601f198584030188526110c8838351610e53565b60209889019890935091909101906001016110ac565b50909695505050505050565b600081518084526020840193506020830160005b8281101561113157815180516001600160a01b0316875260209081015181880152604090960195909101906001016110fe565b5093949350505050565b600081518084526020840193506020830160005b8281101561113157815180516001600160a01b0316875260208082015181890152604091820151918801919091526060909601959091019060010161114f565b602081526111a96020820183516001600160401b03169052565b6000602083015161010060408401526111c6610120840182610e53565b90506040840151601f198483030160608501526111e38282610e53565b91505060608401516080840152608084015160a084015260a0840151601f198483030160c0850152611215828261108e565b91505060c0840151601f198483030160e085015261123382826110ea565b91505060e0840151601f1984830301610100850152610b29828261113b565b82815260406020820152600061126b6040830184610e53565b949350505050565b60006020828403121561128557600080fd5b5051919050565b6000825161129e818460208701610e2f565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca264697066735822122090e474717efe8053dba69c3efd59d6638aff28a8fd9536e850878a1a76d8bbaf64736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x12FE PUSH2 0x3D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x6EF ADD MSTORE DUP2 DUP2 PUSH2 0x718 ADD MSTORE PUSH2 0x847 ADD MSTORE PUSH2 0x12FE PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD8E6E2C EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0x31CD5675 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0xF0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0xC9 CALLDATASIZE PUSH1 0x4 PUSH2 0xC1E JUMP JUMPDEST PUSH2 0x1D2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0xEB CALLDATASIZE PUSH1 0x4 PUSH2 0xCA9 JUMP JUMPDEST PUSH2 0x414 JUMP JUMPDEST PUSH2 0xCE PUSH2 0xFE CALLDATASIZE PUSH1 0x4 PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0x534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH2 0x553 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0x570 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5 SWAP2 SWAP1 PUSH2 0xE7F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0x1CD CALLDATASIZE PUSH1 0x4 PUSH2 0xE92 JUMP JUMPDEST PUSH2 0x584 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x20B JUMPI PUSH1 0x40 MLOAD PUSH4 0x67AB7EFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x217 DUP6 DUP6 PUSH2 0x5FA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x227 DUP4 DUP6 ADD DUP6 PUSH2 0xEAD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x304 JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x247 JUMPI PUSH2 0x247 PUSH2 0xF89 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x269 PUSH2 0x5C7 JUMP JUMPDEST DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x27B JUMPI PUSH2 0x27B PUSH2 0xF89 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B8 SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 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 0x2FB SWAP2 SWAP1 PUSH2 0xF9F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x22C JUMP JUMPDEST POP PUSH2 0x40C PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x36D JUMPI PUSH2 0x36D PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3A0 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x38B JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE SWAP3 DUP2 ADD DUP3 MSTORE SWAP3 ADD SWAP2 SWAP1 PUSH2 0x402 JUMP JUMPDEST PUSH2 0x3EF PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x3C2 JUMPI SWAP1 POP JUMPDEST POP SWAP1 MSTORE PUSH1 0x0 PUSH2 0x637 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x459 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x475 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x483 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x4CB JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x4D3 PUSH2 0x6BA JUMP JUMPDEST PUSH2 0x4DC DUP8 PUSH2 0x6C2 JUMP JUMPDEST PUSH2 0x4E5 DUP7 PUSH2 0x6D3 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x52B JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x53C PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x545 DUP3 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x54F DUP3 DUP3 PUSH2 0x77A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55D PUSH2 0x83C JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x12A9 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x578 PUSH2 0x885 JUMP JUMPDEST PUSH2 0x582 PUSH1 0x0 PUSH2 0x8E0 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x58C PUSH2 0x885 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C4 DUP2 PUSH2 0x8E0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x9B777D7F09CA6843192B146EE41249650756FB313CBC428AA2DD37D610F1D100 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x630 DUP3 DUP5 ADD DUP5 PUSH2 0xFC1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x63F PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE289ADCD DUP3 PUSH1 0x1 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x661 SWAP2 SWAP1 PUSH2 0x118F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x68D SWAP3 SWAP2 SWAP1 PUSH2 0x1252 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x52B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x582 PUSH2 0x951 JUMP JUMPDEST PUSH2 0x6CA PUSH2 0x951 JUMP JUMPDEST PUSH2 0x5C4 DUP2 PUSH2 0x99A JUMP JUMPDEST PUSH2 0x6DB PUSH2 0x951 JUMP JUMPDEST PUSH2 0x5C4 DUP2 PUSH2 0x9A2 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x754 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x748 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C4 PUSH2 0x885 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x7D4 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x7D1 SWAP2 DUP2 ADD SWAP1 PUSH2 0x1273 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x7FC JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x12A9 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x82D JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST PUSH2 0x837 DUP4 DUP4 PUSH2 0xA01 JUMP JUMPDEST POP POP POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH2 0x8B7 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x58C PUSH2 0x951 JUMP JUMPDEST PUSH2 0x9AA PUSH2 0x951 JUMP JUMPDEST PUSH32 0x9B777D7F09CA6843192B146EE41249650756FB313CBC428AA2DD37D610F1D100 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x12A9 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x5EB JUMP JUMPDEST PUSH2 0xA0A DUP3 PUSH2 0xA57 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0xA4F JUMPI PUSH2 0x837 DUP3 DUP3 PUSH2 0xABC JUMP JUMPDEST PUSH2 0x54F PUSH2 0xB32 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xA8D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x12A9 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0xAD9 SWAP2 SWAP1 PUSH2 0x128C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB14 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 0xB19 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0xB29 DUP6 DUP4 DUP4 PUSH2 0xB51 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0xB66 JUMPI PUSH2 0xB61 DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH2 0x630 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0xB7D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0xBA6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0xBBD JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xBFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xC4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC56 DUP8 DUP3 DUP9 ADD PUSH2 0xBD6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xC75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC81 DUP8 DUP3 DUP9 ADD PUSH2 0xBD6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xCA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCC5 DUP4 PUSH2 0xC8D JUMP JUMPDEST SWAP2 POP PUSH2 0xCD3 PUSH1 0x20 DUP5 ADD PUSH2 0xC8D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xD14 JUMPI PUSH2 0xD14 PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xD14 JUMPI PUSH2 0xD14 PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xD64 JUMPI PUSH2 0xD64 PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0xD9D JUMPI PUSH2 0xD9D PUSH2 0xCDC JUMP JUMPDEST POP PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0xDB2 DUP2 PUSH2 0xD3C JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0xDC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDFE DUP4 PUSH2 0xC8D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xE19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE25 DUP6 DUP3 DUP7 ADD PUSH2 0xD6C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE4A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xE32 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE6B DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE2F JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x630 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x630 DUP3 PUSH2 0xC8D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xED5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xEE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xEFF JUMPI PUSH2 0xEFF PUSH2 0xCDC JUMP JUMPDEST PUSH2 0xF0E PUSH1 0x20 DUP3 PUSH1 0x5 SHL ADD PUSH2 0xD3C JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x6 SHL DUP6 ADD ADD SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0xF30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0xF7F JUMPI PUSH1 0x40 DUP5 DUP9 SUB SLT ISZERO PUSH2 0xF4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF57 PUSH2 0xCF2 JUMP JUMPDEST PUSH2 0xF60 DUP6 PUSH2 0xC8D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP6 DUP2 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xF37 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x630 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xFE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xA0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0xFFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1003 PUSH2 0xD1A JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x101A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1055 DUP7 DUP3 DUP6 ADD PUSH2 0xD6C JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1074 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1080 DUP7 DUP3 DUP6 ADD PUSH2 0xD6C JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10DE JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x10C8 DUP4 DUP4 MLOAD PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x10AC JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1131 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD DUP2 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x10FE JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1131 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x40 SWAP2 DUP3 ADD MLOAD SWAP2 DUP9 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x114F JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x11A9 PUSH1 0x20 DUP3 ADD DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x100 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x11C6 PUSH2 0x120 DUP5 ADD DUP3 PUSH2 0xE53 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x11E3 DUP3 DUP3 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x1215 DUP3 DUP3 PUSH2 0x108E JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x1233 DUP3 DUP3 PUSH2 0x10EA JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0xB29 DUP3 DUP3 PUSH2 0x113B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x126B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xE53 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x129E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xE2F JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCA264697066735822122090 0xE4 PUSH21 0x717EFE8053DBA69C3EFD59D6638AFF28A8FD9536E8 POP DUP8 DUP11 BYTE PUSH23 0xD8BBAF64736F6C634300081C0033000000000000000000 ","sourceMap":"690:1478:83:-:0;;;1171:4:4;1128:48;;690:1478:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@UPGRADE_INTERFACE_VERSION_972":{"entryPoint":null,"id":972,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_554":{"entryPoint":1730,"id":554,"parameterSlots":1,"returnSlots":0},"@__Ownable_init_unchained_581":{"entryPoint":2458,"id":581,"parameterSlots":1,"returnSlots":0},"@__TacProxyV1Upgradeable_init_18590":{"entryPoint":1747,"id":18590,"parameterSlots":1,"returnSlots":0},"@__TacProxyV1Upgradeable_init_unchained_18610":{"entryPoint":2466,"id":18610,"parameterSlots":1,"returnSlots":0},"@__UUPSUpgradeable_init_1002":{"entryPoint":1722,"id":1002,"parameterSlots":0,"returnSlots":0},"@_authorizeUpgrade_20347":{"entryPoint":1906,"id":20347,"parameterSlots":1,"returnSlots":0},"@_checkInitializing_870":{"entryPoint":2385,"id":870,"parameterSlots":0,"returnSlots":0},"@_checkNonPayable_3695":{"entryPoint":2866,"id":3695,"parameterSlots":0,"returnSlots":0},"@_checkNotDelegated_1078":{"entryPoint":2108,"id":1078,"parameterSlots":0,"returnSlots":0},"@_checkOwner_622":{"entryPoint":2181,"id":622,"parameterSlots":0,"returnSlots":0},"@_checkProxy_1062":{"entryPoint":1764,"id":1062,"parameterSlots":0,"returnSlots":0},"@_decodeTacHeader_18660":{"entryPoint":1530,"id":18660,"parameterSlots":2,"returnSlots":1},"@_getCrossChainLayerAddress_18643":{"entryPoint":1479,"id":18643,"parameterSlots":0,"returnSlots":1},"@_getInitializableStorage_947":{"entryPoint":null,"id":947,"parameterSlots":0,"returnSlots":1},"@_getOwnableStorage_525":{"entryPoint":null,"id":525,"parameterSlots":0,"returnSlots":1},"@_getTacProxyV1UpgradeableStorage_18633":{"entryPoint":null,"id":18633,"parameterSlots":0,"returnSlots":1},"@_isInitializing_938":{"entryPoint":null,"id":938,"parameterSlots":0,"returnSlots":1},"@_msgSender_2855":{"entryPoint":null,"id":2855,"parameterSlots":0,"returnSlots":1},"@_revert_6627":{"entryPoint":2989,"id":6627,"parameterSlots":1,"returnSlots":0},"@_sendMessageV1_18684":{"entryPoint":1591,"id":18684,"parameterSlots":2,"returnSlots":0},"@_setImplementation_3475":{"entryPoint":2647,"id":3475,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_693":{"entryPoint":2272,"id":693,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCallUUPS_1129":{"entryPoint":1914,"id":1129,"parameterSlots":2,"returnSlots":0},"@functionDelegateCall_6545":{"entryPoint":2748,"id":6545,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_6935":{"entryPoint":null,"id":6935,"parameterSlots":1,"returnSlots":1},"@getImplementation_3448":{"entryPoint":2539,"id":3448,"parameterSlots":0,"returnSlots":1},"@getVersion_18694":{"entryPoint":null,"id":18694,"parameterSlots":0,"returnSlots":1},"@initialize_20338":{"entryPoint":1044,"id":20338,"parameterSlots":2,"returnSlots":0},"@myProxyFunction_20430":{"entryPoint":466,"id":20430,"parameterSlots":4,"returnSlots":0},"@owner_605":{"entryPoint":null,"id":605,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1020":{"entryPoint":1363,"id":1020,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_636":{"entryPoint":1392,"id":636,"parameterSlots":0,"returnSlots":0},"@transferOwnership_664":{"entryPoint":1412,"id":664,"parameterSlots":1,"returnSlots":0},"@upgradeToAndCall_1040":{"entryPoint":1332,"id":1040,"parameterSlots":2,"returnSlots":0},"@upgradeToAndCall_3511":{"entryPoint":2561,"id":3511,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_6585":{"entryPoint":2897,"id":6585,"parameterSlots":3,"returnSlots":1},"abi_decode_address":{"entryPoint":3213,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes":{"entryPoint":3436,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":3030,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":3730,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3241,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":3554,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr":{"entryPoint":3757,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3999,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":4723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":3102,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr":{"entryPoint":4033,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_string_dyn":{"entryPoint":4238,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_NFTAmount_dyn":{"entryPoint":4411,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_TokenAmount_dyn":{"entryPoint":4330,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_rational_by":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":3667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4748,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3711,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr__to_t_struct$_OutMessageV1_$16084_memory_ptr__fromStack_reversed":{"entryPoint":4495,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4690,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":3388,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_1758":{"entryPoint":3314,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_1760":{"entryPoint":3354,"id":null,"parameterSlots":0,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3631,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x32":{"entryPoint":3977,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3292,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12353:89","nodeType":"YulBlock","src":"0:12353:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"115:76:89","nodeType":"YulBlock","src":"115:76:89","statements":[{"nativeSrc":"125:26:89","nodeType":"YulAssignment","src":"125:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"137:9:89","nodeType":"YulIdentifier","src":"137:9:89"},{"kind":"number","nativeSrc":"148:2:89","nodeType":"YulLiteral","src":"148:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"133:3:89","nodeType":"YulIdentifier","src":"133:3:89"},"nativeSrc":"133:18:89","nodeType":"YulFunctionCall","src":"133:18:89"},"variableNames":[{"name":"tail","nativeSrc":"125:4:89","nodeType":"YulIdentifier","src":"125:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"167:9:89","nodeType":"YulIdentifier","src":"167:9:89"},{"name":"value0","nativeSrc":"178:6:89","nodeType":"YulIdentifier","src":"178:6:89"}],"functionName":{"name":"mstore","nativeSrc":"160:6:89","nodeType":"YulIdentifier","src":"160:6:89"},"nativeSrc":"160:25:89","nodeType":"YulFunctionCall","src":"160:25:89"},"nativeSrc":"160:25:89","nodeType":"YulExpressionStatement","src":"160:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"14:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"84:9:89","nodeType":"YulTypedName","src":"84:9:89","type":""},{"name":"value0","nativeSrc":"95:6:89","nodeType":"YulTypedName","src":"95:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"106:4:89","nodeType":"YulTypedName","src":"106:4:89","type":""}],"src":"14:177:89"},{"body":{"nativeSrc":"268:275:89","nodeType":"YulBlock","src":"268:275:89","statements":[{"body":{"nativeSrc":"317:16:89","nodeType":"YulBlock","src":"317:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"326:1:89","nodeType":"YulLiteral","src":"326:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"329:1:89","nodeType":"YulLiteral","src":"329:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"319:6:89","nodeType":"YulIdentifier","src":"319:6:89"},"nativeSrc":"319:12:89","nodeType":"YulFunctionCall","src":"319:12:89"},"nativeSrc":"319:12:89","nodeType":"YulExpressionStatement","src":"319:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"296:6:89","nodeType":"YulIdentifier","src":"296:6:89"},{"kind":"number","nativeSrc":"304:4:89","nodeType":"YulLiteral","src":"304:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"292:3:89","nodeType":"YulIdentifier","src":"292:3:89"},"nativeSrc":"292:17:89","nodeType":"YulFunctionCall","src":"292:17:89"},{"name":"end","nativeSrc":"311:3:89","nodeType":"YulIdentifier","src":"311:3:89"}],"functionName":{"name":"slt","nativeSrc":"288:3:89","nodeType":"YulIdentifier","src":"288:3:89"},"nativeSrc":"288:27:89","nodeType":"YulFunctionCall","src":"288:27:89"}],"functionName":{"name":"iszero","nativeSrc":"281:6:89","nodeType":"YulIdentifier","src":"281:6:89"},"nativeSrc":"281:35:89","nodeType":"YulFunctionCall","src":"281:35:89"},"nativeSrc":"278:55:89","nodeType":"YulIf","src":"278:55:89"},{"nativeSrc":"342:30:89","nodeType":"YulAssignment","src":"342:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"365:6:89","nodeType":"YulIdentifier","src":"365:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"352:12:89","nodeType":"YulIdentifier","src":"352:12:89"},"nativeSrc":"352:20:89","nodeType":"YulFunctionCall","src":"352:20:89"},"variableNames":[{"name":"length","nativeSrc":"342:6:89","nodeType":"YulIdentifier","src":"342:6:89"}]},{"body":{"nativeSrc":"415:16:89","nodeType":"YulBlock","src":"415:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"424:1:89","nodeType":"YulLiteral","src":"424:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"427:1:89","nodeType":"YulLiteral","src":"427:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"417:6:89","nodeType":"YulIdentifier","src":"417:6:89"},"nativeSrc":"417:12:89","nodeType":"YulFunctionCall","src":"417:12:89"},"nativeSrc":"417:12:89","nodeType":"YulExpressionStatement","src":"417:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"387:6:89","nodeType":"YulIdentifier","src":"387:6:89"},{"kind":"number","nativeSrc":"395:18:89","nodeType":"YulLiteral","src":"395:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"384:2:89","nodeType":"YulIdentifier","src":"384:2:89"},"nativeSrc":"384:30:89","nodeType":"YulFunctionCall","src":"384:30:89"},"nativeSrc":"381:50:89","nodeType":"YulIf","src":"381:50:89"},{"nativeSrc":"440:29:89","nodeType":"YulAssignment","src":"440:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"456:6:89","nodeType":"YulIdentifier","src":"456:6:89"},{"kind":"number","nativeSrc":"464:4:89","nodeType":"YulLiteral","src":"464:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"452:3:89","nodeType":"YulIdentifier","src":"452:3:89"},"nativeSrc":"452:17:89","nodeType":"YulFunctionCall","src":"452:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"440:8:89","nodeType":"YulIdentifier","src":"440:8:89"}]},{"body":{"nativeSrc":"521:16:89","nodeType":"YulBlock","src":"521:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"530:1:89","nodeType":"YulLiteral","src":"530:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"533:1:89","nodeType":"YulLiteral","src":"533:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"523:6:89","nodeType":"YulIdentifier","src":"523:6:89"},"nativeSrc":"523:12:89","nodeType":"YulFunctionCall","src":"523:12:89"},"nativeSrc":"523:12:89","nodeType":"YulExpressionStatement","src":"523:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"492:6:89","nodeType":"YulIdentifier","src":"492:6:89"},{"name":"length","nativeSrc":"500:6:89","nodeType":"YulIdentifier","src":"500:6:89"}],"functionName":{"name":"add","nativeSrc":"488:3:89","nodeType":"YulIdentifier","src":"488:3:89"},"nativeSrc":"488:19:89","nodeType":"YulFunctionCall","src":"488:19:89"},{"kind":"number","nativeSrc":"509:4:89","nodeType":"YulLiteral","src":"509:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"484:3:89","nodeType":"YulIdentifier","src":"484:3:89"},"nativeSrc":"484:30:89","nodeType":"YulFunctionCall","src":"484:30:89"},{"name":"end","nativeSrc":"516:3:89","nodeType":"YulIdentifier","src":"516:3:89"}],"functionName":{"name":"gt","nativeSrc":"481:2:89","nodeType":"YulIdentifier","src":"481:2:89"},"nativeSrc":"481:39:89","nodeType":"YulFunctionCall","src":"481:39:89"},"nativeSrc":"478:59:89","nodeType":"YulIf","src":"478:59:89"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"196:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"231:6:89","nodeType":"YulTypedName","src":"231:6:89","type":""},{"name":"end","nativeSrc":"239:3:89","nodeType":"YulTypedName","src":"239:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"247:8:89","nodeType":"YulTypedName","src":"247:8:89","type":""},{"name":"length","nativeSrc":"257:6:89","nodeType":"YulTypedName","src":"257:6:89","type":""}],"src":"196:347:89"},{"body":{"nativeSrc":"673:587:89","nodeType":"YulBlock","src":"673:587:89","statements":[{"body":{"nativeSrc":"719:16:89","nodeType":"YulBlock","src":"719:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"728:1:89","nodeType":"YulLiteral","src":"728:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"731:1:89","nodeType":"YulLiteral","src":"731:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"721:6:89","nodeType":"YulIdentifier","src":"721:6:89"},"nativeSrc":"721:12:89","nodeType":"YulFunctionCall","src":"721:12:89"},"nativeSrc":"721:12:89","nodeType":"YulExpressionStatement","src":"721:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"694:7:89","nodeType":"YulIdentifier","src":"694:7:89"},{"name":"headStart","nativeSrc":"703:9:89","nodeType":"YulIdentifier","src":"703:9:89"}],"functionName":{"name":"sub","nativeSrc":"690:3:89","nodeType":"YulIdentifier","src":"690:3:89"},"nativeSrc":"690:23:89","nodeType":"YulFunctionCall","src":"690:23:89"},{"kind":"number","nativeSrc":"715:2:89","nodeType":"YulLiteral","src":"715:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"686:3:89","nodeType":"YulIdentifier","src":"686:3:89"},"nativeSrc":"686:32:89","nodeType":"YulFunctionCall","src":"686:32:89"},"nativeSrc":"683:52:89","nodeType":"YulIf","src":"683:52:89"},{"nativeSrc":"744:37:89","nodeType":"YulVariableDeclaration","src":"744:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"771:9:89","nodeType":"YulIdentifier","src":"771:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"758:12:89","nodeType":"YulIdentifier","src":"758:12:89"},"nativeSrc":"758:23:89","nodeType":"YulFunctionCall","src":"758:23:89"},"variables":[{"name":"offset","nativeSrc":"748:6:89","nodeType":"YulTypedName","src":"748:6:89","type":""}]},{"body":{"nativeSrc":"824:16:89","nodeType":"YulBlock","src":"824:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"833:1:89","nodeType":"YulLiteral","src":"833:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"836:1:89","nodeType":"YulLiteral","src":"836:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"826:6:89","nodeType":"YulIdentifier","src":"826:6:89"},"nativeSrc":"826:12:89","nodeType":"YulFunctionCall","src":"826:12:89"},"nativeSrc":"826:12:89","nodeType":"YulExpressionStatement","src":"826:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"796:6:89","nodeType":"YulIdentifier","src":"796:6:89"},{"kind":"number","nativeSrc":"804:18:89","nodeType":"YulLiteral","src":"804:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"793:2:89","nodeType":"YulIdentifier","src":"793:2:89"},"nativeSrc":"793:30:89","nodeType":"YulFunctionCall","src":"793:30:89"},"nativeSrc":"790:50:89","nodeType":"YulIf","src":"790:50:89"},{"nativeSrc":"849:84:89","nodeType":"YulVariableDeclaration","src":"849:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"905:9:89","nodeType":"YulIdentifier","src":"905:9:89"},{"name":"offset","nativeSrc":"916:6:89","nodeType":"YulIdentifier","src":"916:6:89"}],"functionName":{"name":"add","nativeSrc":"901:3:89","nodeType":"YulIdentifier","src":"901:3:89"},"nativeSrc":"901:22:89","nodeType":"YulFunctionCall","src":"901:22:89"},{"name":"dataEnd","nativeSrc":"925:7:89","nodeType":"YulIdentifier","src":"925:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"875:25:89","nodeType":"YulIdentifier","src":"875:25:89"},"nativeSrc":"875:58:89","nodeType":"YulFunctionCall","src":"875:58:89"},"variables":[{"name":"value0_1","nativeSrc":"853:8:89","nodeType":"YulTypedName","src":"853:8:89","type":""},{"name":"value1_1","nativeSrc":"863:8:89","nodeType":"YulTypedName","src":"863:8:89","type":""}]},{"nativeSrc":"942:18:89","nodeType":"YulAssignment","src":"942:18:89","value":{"name":"value0_1","nativeSrc":"952:8:89","nodeType":"YulIdentifier","src":"952:8:89"},"variableNames":[{"name":"value0","nativeSrc":"942:6:89","nodeType":"YulIdentifier","src":"942:6:89"}]},{"nativeSrc":"969:18:89","nodeType":"YulAssignment","src":"969:18:89","value":{"name":"value1_1","nativeSrc":"979:8:89","nodeType":"YulIdentifier","src":"979:8:89"},"variableNames":[{"name":"value1","nativeSrc":"969:6:89","nodeType":"YulIdentifier","src":"969:6:89"}]},{"nativeSrc":"996:48:89","nodeType":"YulVariableDeclaration","src":"996:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1029:9:89","nodeType":"YulIdentifier","src":"1029:9:89"},{"kind":"number","nativeSrc":"1040:2:89","nodeType":"YulLiteral","src":"1040:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1025:3:89","nodeType":"YulIdentifier","src":"1025:3:89"},"nativeSrc":"1025:18:89","nodeType":"YulFunctionCall","src":"1025:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1012:12:89","nodeType":"YulIdentifier","src":"1012:12:89"},"nativeSrc":"1012:32:89","nodeType":"YulFunctionCall","src":"1012:32:89"},"variables":[{"name":"offset_1","nativeSrc":"1000:8:89","nodeType":"YulTypedName","src":"1000:8:89","type":""}]},{"body":{"nativeSrc":"1089:16:89","nodeType":"YulBlock","src":"1089:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1098:1:89","nodeType":"YulLiteral","src":"1098:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1101:1:89","nodeType":"YulLiteral","src":"1101:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1091:6:89","nodeType":"YulIdentifier","src":"1091:6:89"},"nativeSrc":"1091:12:89","nodeType":"YulFunctionCall","src":"1091:12:89"},"nativeSrc":"1091:12:89","nodeType":"YulExpressionStatement","src":"1091:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1059:8:89","nodeType":"YulIdentifier","src":"1059:8:89"},{"kind":"number","nativeSrc":"1069:18:89","nodeType":"YulLiteral","src":"1069:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1056:2:89","nodeType":"YulIdentifier","src":"1056:2:89"},"nativeSrc":"1056:32:89","nodeType":"YulFunctionCall","src":"1056:32:89"},"nativeSrc":"1053:52:89","nodeType":"YulIf","src":"1053:52:89"},{"nativeSrc":"1114:86:89","nodeType":"YulVariableDeclaration","src":"1114:86:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1170:9:89","nodeType":"YulIdentifier","src":"1170:9:89"},{"name":"offset_1","nativeSrc":"1181:8:89","nodeType":"YulIdentifier","src":"1181:8:89"}],"functionName":{"name":"add","nativeSrc":"1166:3:89","nodeType":"YulIdentifier","src":"1166:3:89"},"nativeSrc":"1166:24:89","nodeType":"YulFunctionCall","src":"1166:24:89"},{"name":"dataEnd","nativeSrc":"1192:7:89","nodeType":"YulIdentifier","src":"1192:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1140:25:89","nodeType":"YulIdentifier","src":"1140:25:89"},"nativeSrc":"1140:60:89","nodeType":"YulFunctionCall","src":"1140:60:89"},"variables":[{"name":"value2_1","nativeSrc":"1118:8:89","nodeType":"YulTypedName","src":"1118:8:89","type":""},{"name":"value3_1","nativeSrc":"1128:8:89","nodeType":"YulTypedName","src":"1128:8:89","type":""}]},{"nativeSrc":"1209:18:89","nodeType":"YulAssignment","src":"1209:18:89","value":{"name":"value2_1","nativeSrc":"1219:8:89","nodeType":"YulIdentifier","src":"1219:8:89"},"variableNames":[{"name":"value2","nativeSrc":"1209:6:89","nodeType":"YulIdentifier","src":"1209:6:89"}]},{"nativeSrc":"1236:18:89","nodeType":"YulAssignment","src":"1236:18:89","value":{"name":"value3_1","nativeSrc":"1246:8:89","nodeType":"YulIdentifier","src":"1246:8:89"},"variableNames":[{"name":"value3","nativeSrc":"1236:6:89","nodeType":"YulIdentifier","src":"1236:6:89"}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"548:712:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"615:9:89","nodeType":"YulTypedName","src":"615:9:89","type":""},{"name":"dataEnd","nativeSrc":"626:7:89","nodeType":"YulTypedName","src":"626:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"638:6:89","nodeType":"YulTypedName","src":"638:6:89","type":""},{"name":"value1","nativeSrc":"646:6:89","nodeType":"YulTypedName","src":"646:6:89","type":""},{"name":"value2","nativeSrc":"654:6:89","nodeType":"YulTypedName","src":"654:6:89","type":""},{"name":"value3","nativeSrc":"662:6:89","nodeType":"YulTypedName","src":"662:6:89","type":""}],"src":"548:712:89"},{"body":{"nativeSrc":"1314:124:89","nodeType":"YulBlock","src":"1314:124:89","statements":[{"nativeSrc":"1324:29:89","nodeType":"YulAssignment","src":"1324:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"1346:6:89","nodeType":"YulIdentifier","src":"1346:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"1333:12:89","nodeType":"YulIdentifier","src":"1333:12:89"},"nativeSrc":"1333:20:89","nodeType":"YulFunctionCall","src":"1333:20:89"},"variableNames":[{"name":"value","nativeSrc":"1324:5:89","nodeType":"YulIdentifier","src":"1324:5:89"}]},{"body":{"nativeSrc":"1416:16:89","nodeType":"YulBlock","src":"1416:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1425:1:89","nodeType":"YulLiteral","src":"1425:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1428:1:89","nodeType":"YulLiteral","src":"1428:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1418:6:89","nodeType":"YulIdentifier","src":"1418:6:89"},"nativeSrc":"1418:12:89","nodeType":"YulFunctionCall","src":"1418:12:89"},"nativeSrc":"1418:12:89","nodeType":"YulExpressionStatement","src":"1418:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1375:5:89","nodeType":"YulIdentifier","src":"1375:5:89"},{"arguments":[{"name":"value","nativeSrc":"1386:5:89","nodeType":"YulIdentifier","src":"1386:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1401:3:89","nodeType":"YulLiteral","src":"1401:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1406:1:89","nodeType":"YulLiteral","src":"1406:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1397:3:89","nodeType":"YulIdentifier","src":"1397:3:89"},"nativeSrc":"1397:11:89","nodeType":"YulFunctionCall","src":"1397:11:89"},{"kind":"number","nativeSrc":"1410:1:89","nodeType":"YulLiteral","src":"1410:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1393:3:89","nodeType":"YulIdentifier","src":"1393:3:89"},"nativeSrc":"1393:19:89","nodeType":"YulFunctionCall","src":"1393:19:89"}],"functionName":{"name":"and","nativeSrc":"1382:3:89","nodeType":"YulIdentifier","src":"1382:3:89"},"nativeSrc":"1382:31:89","nodeType":"YulFunctionCall","src":"1382:31:89"}],"functionName":{"name":"eq","nativeSrc":"1372:2:89","nodeType":"YulIdentifier","src":"1372:2:89"},"nativeSrc":"1372:42:89","nodeType":"YulFunctionCall","src":"1372:42:89"}],"functionName":{"name":"iszero","nativeSrc":"1365:6:89","nodeType":"YulIdentifier","src":"1365:6:89"},"nativeSrc":"1365:50:89","nodeType":"YulFunctionCall","src":"1365:50:89"},"nativeSrc":"1362:70:89","nodeType":"YulIf","src":"1362:70:89"}]},"name":"abi_decode_address","nativeSrc":"1265:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1293:6:89","nodeType":"YulTypedName","src":"1293:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1304:5:89","nodeType":"YulTypedName","src":"1304:5:89","type":""}],"src":"1265:173:89"},{"body":{"nativeSrc":"1530:173:89","nodeType":"YulBlock","src":"1530:173:89","statements":[{"body":{"nativeSrc":"1576:16:89","nodeType":"YulBlock","src":"1576:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1585:1:89","nodeType":"YulLiteral","src":"1585:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1588:1:89","nodeType":"YulLiteral","src":"1588:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1578:6:89","nodeType":"YulIdentifier","src":"1578:6:89"},"nativeSrc":"1578:12:89","nodeType":"YulFunctionCall","src":"1578:12:89"},"nativeSrc":"1578:12:89","nodeType":"YulExpressionStatement","src":"1578:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1551:7:89","nodeType":"YulIdentifier","src":"1551:7:89"},{"name":"headStart","nativeSrc":"1560:9:89","nodeType":"YulIdentifier","src":"1560:9:89"}],"functionName":{"name":"sub","nativeSrc":"1547:3:89","nodeType":"YulIdentifier","src":"1547:3:89"},"nativeSrc":"1547:23:89","nodeType":"YulFunctionCall","src":"1547:23:89"},{"kind":"number","nativeSrc":"1572:2:89","nodeType":"YulLiteral","src":"1572:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1543:3:89","nodeType":"YulIdentifier","src":"1543:3:89"},"nativeSrc":"1543:32:89","nodeType":"YulFunctionCall","src":"1543:32:89"},"nativeSrc":"1540:52:89","nodeType":"YulIf","src":"1540:52:89"},{"nativeSrc":"1601:39:89","nodeType":"YulAssignment","src":"1601:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1630:9:89","nodeType":"YulIdentifier","src":"1630:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1611:18:89","nodeType":"YulIdentifier","src":"1611:18:89"},"nativeSrc":"1611:29:89","nodeType":"YulFunctionCall","src":"1611:29:89"},"variableNames":[{"name":"value0","nativeSrc":"1601:6:89","nodeType":"YulIdentifier","src":"1601:6:89"}]},{"nativeSrc":"1649:48:89","nodeType":"YulAssignment","src":"1649:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1682:9:89","nodeType":"YulIdentifier","src":"1682:9:89"},{"kind":"number","nativeSrc":"1693:2:89","nodeType":"YulLiteral","src":"1693:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1678:3:89","nodeType":"YulIdentifier","src":"1678:3:89"},"nativeSrc":"1678:18:89","nodeType":"YulFunctionCall","src":"1678:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1659:18:89","nodeType":"YulIdentifier","src":"1659:18:89"},"nativeSrc":"1659:38:89","nodeType":"YulFunctionCall","src":"1659:38:89"},"variableNames":[{"name":"value1","nativeSrc":"1649:6:89","nodeType":"YulIdentifier","src":"1649:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"1443:260:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1488:9:89","nodeType":"YulTypedName","src":"1488:9:89","type":""},{"name":"dataEnd","nativeSrc":"1499:7:89","nodeType":"YulTypedName","src":"1499:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1511:6:89","nodeType":"YulTypedName","src":"1511:6:89","type":""},{"name":"value1","nativeSrc":"1519:6:89","nodeType":"YulTypedName","src":"1519:6:89","type":""}],"src":"1443:260:89"},{"body":{"nativeSrc":"1740:95:89","nodeType":"YulBlock","src":"1740:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1757:1:89","nodeType":"YulLiteral","src":"1757:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1764:3:89","nodeType":"YulLiteral","src":"1764:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"1769:10:89","nodeType":"YulLiteral","src":"1769:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1760:3:89","nodeType":"YulIdentifier","src":"1760:3:89"},"nativeSrc":"1760:20:89","nodeType":"YulFunctionCall","src":"1760:20:89"}],"functionName":{"name":"mstore","nativeSrc":"1750:6:89","nodeType":"YulIdentifier","src":"1750:6:89"},"nativeSrc":"1750:31:89","nodeType":"YulFunctionCall","src":"1750:31:89"},"nativeSrc":"1750:31:89","nodeType":"YulExpressionStatement","src":"1750:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1797:1:89","nodeType":"YulLiteral","src":"1797:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"1800:4:89","nodeType":"YulLiteral","src":"1800:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1790:6:89","nodeType":"YulIdentifier","src":"1790:6:89"},"nativeSrc":"1790:15:89","nodeType":"YulFunctionCall","src":"1790:15:89"},"nativeSrc":"1790:15:89","nodeType":"YulExpressionStatement","src":"1790:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1821:1:89","nodeType":"YulLiteral","src":"1821:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1824:4:89","nodeType":"YulLiteral","src":"1824:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1814:6:89","nodeType":"YulIdentifier","src":"1814:6:89"},"nativeSrc":"1814:15:89","nodeType":"YulFunctionCall","src":"1814:15:89"},"nativeSrc":"1814:15:89","nodeType":"YulExpressionStatement","src":"1814:15:89"}]},"name":"panic_error_0x41","nativeSrc":"1708:127:89","nodeType":"YulFunctionDefinition","src":"1708:127:89"},{"body":{"nativeSrc":"1886:211:89","nodeType":"YulBlock","src":"1886:211:89","statements":[{"nativeSrc":"1896:21:89","nodeType":"YulAssignment","src":"1896:21:89","value":{"arguments":[{"kind":"number","nativeSrc":"1912:4:89","nodeType":"YulLiteral","src":"1912:4:89","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"1906:5:89","nodeType":"YulIdentifier","src":"1906:5:89"},"nativeSrc":"1906:11:89","nodeType":"YulFunctionCall","src":"1906:11:89"},"variableNames":[{"name":"memPtr","nativeSrc":"1896:6:89","nodeType":"YulIdentifier","src":"1896:6:89"}]},{"nativeSrc":"1926:35:89","nodeType":"YulVariableDeclaration","src":"1926:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"1948:6:89","nodeType":"YulIdentifier","src":"1948:6:89"},{"kind":"number","nativeSrc":"1956:4:89","nodeType":"YulLiteral","src":"1956:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"1944:3:89","nodeType":"YulIdentifier","src":"1944:3:89"},"nativeSrc":"1944:17:89","nodeType":"YulFunctionCall","src":"1944:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"1930:10:89","nodeType":"YulTypedName","src":"1930:10:89","type":""}]},{"body":{"nativeSrc":"2036:22:89","nodeType":"YulBlock","src":"2036:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2038:16:89","nodeType":"YulIdentifier","src":"2038:16:89"},"nativeSrc":"2038:18:89","nodeType":"YulFunctionCall","src":"2038:18:89"},"nativeSrc":"2038:18:89","nodeType":"YulExpressionStatement","src":"2038:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1979:10:89","nodeType":"YulIdentifier","src":"1979:10:89"},{"kind":"number","nativeSrc":"1991:18:89","nodeType":"YulLiteral","src":"1991:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1976:2:89","nodeType":"YulIdentifier","src":"1976:2:89"},"nativeSrc":"1976:34:89","nodeType":"YulFunctionCall","src":"1976:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2015:10:89","nodeType":"YulIdentifier","src":"2015:10:89"},{"name":"memPtr","nativeSrc":"2027:6:89","nodeType":"YulIdentifier","src":"2027:6:89"}],"functionName":{"name":"lt","nativeSrc":"2012:2:89","nodeType":"YulIdentifier","src":"2012:2:89"},"nativeSrc":"2012:22:89","nodeType":"YulFunctionCall","src":"2012:22:89"}],"functionName":{"name":"or","nativeSrc":"1973:2:89","nodeType":"YulIdentifier","src":"1973:2:89"},"nativeSrc":"1973:62:89","nodeType":"YulFunctionCall","src":"1973:62:89"},"nativeSrc":"1970:88:89","nodeType":"YulIf","src":"1970:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2074:4:89","nodeType":"YulLiteral","src":"2074:4:89","type":"","value":"0x40"},{"name":"newFreePtr","nativeSrc":"2080:10:89","nodeType":"YulIdentifier","src":"2080:10:89"}],"functionName":{"name":"mstore","nativeSrc":"2067:6:89","nodeType":"YulIdentifier","src":"2067:6:89"},"nativeSrc":"2067:24:89","nodeType":"YulFunctionCall","src":"2067:24:89"},"nativeSrc":"2067:24:89","nodeType":"YulExpressionStatement","src":"2067:24:89"}]},"name":"allocate_memory_1758","nativeSrc":"1840:257:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1875:6:89","nodeType":"YulTypedName","src":"1875:6:89","type":""}],"src":"1840:257:89"},{"body":{"nativeSrc":"2148:207:89","nodeType":"YulBlock","src":"2148:207:89","statements":[{"nativeSrc":"2158:19:89","nodeType":"YulAssignment","src":"2158:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"2174:2:89","nodeType":"YulLiteral","src":"2174:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2168:5:89","nodeType":"YulIdentifier","src":"2168:5:89"},"nativeSrc":"2168:9:89","nodeType":"YulFunctionCall","src":"2168:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"2158:6:89","nodeType":"YulIdentifier","src":"2158:6:89"}]},{"nativeSrc":"2186:35:89","nodeType":"YulVariableDeclaration","src":"2186:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"2208:6:89","nodeType":"YulIdentifier","src":"2208:6:89"},{"kind":"number","nativeSrc":"2216:4:89","nodeType":"YulLiteral","src":"2216:4:89","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"2204:3:89","nodeType":"YulIdentifier","src":"2204:3:89"},"nativeSrc":"2204:17:89","nodeType":"YulFunctionCall","src":"2204:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"2190:10:89","nodeType":"YulTypedName","src":"2190:10:89","type":""}]},{"body":{"nativeSrc":"2296:22:89","nodeType":"YulBlock","src":"2296:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2298:16:89","nodeType":"YulIdentifier","src":"2298:16:89"},"nativeSrc":"2298:18:89","nodeType":"YulFunctionCall","src":"2298:18:89"},"nativeSrc":"2298:18:89","nodeType":"YulExpressionStatement","src":"2298:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2239:10:89","nodeType":"YulIdentifier","src":"2239:10:89"},{"kind":"number","nativeSrc":"2251:18:89","nodeType":"YulLiteral","src":"2251:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2236:2:89","nodeType":"YulIdentifier","src":"2236:2:89"},"nativeSrc":"2236:34:89","nodeType":"YulFunctionCall","src":"2236:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2275:10:89","nodeType":"YulIdentifier","src":"2275:10:89"},{"name":"memPtr","nativeSrc":"2287:6:89","nodeType":"YulIdentifier","src":"2287:6:89"}],"functionName":{"name":"lt","nativeSrc":"2272:2:89","nodeType":"YulIdentifier","src":"2272:2:89"},"nativeSrc":"2272:22:89","nodeType":"YulFunctionCall","src":"2272:22:89"}],"functionName":{"name":"or","nativeSrc":"2233:2:89","nodeType":"YulIdentifier","src":"2233:2:89"},"nativeSrc":"2233:62:89","nodeType":"YulFunctionCall","src":"2233:62:89"},"nativeSrc":"2230:88:89","nodeType":"YulIf","src":"2230:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2334:2:89","nodeType":"YulLiteral","src":"2334:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2338:10:89","nodeType":"YulIdentifier","src":"2338:10:89"}],"functionName":{"name":"mstore","nativeSrc":"2327:6:89","nodeType":"YulIdentifier","src":"2327:6:89"},"nativeSrc":"2327:22:89","nodeType":"YulFunctionCall","src":"2327:22:89"},"nativeSrc":"2327:22:89","nodeType":"YulExpressionStatement","src":"2327:22:89"}]},"name":"allocate_memory_1760","nativeSrc":"2102:253:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"2137:6:89","nodeType":"YulTypedName","src":"2137:6:89","type":""}],"src":"2102:253:89"},{"body":{"nativeSrc":"2405:230:89","nodeType":"YulBlock","src":"2405:230:89","statements":[{"nativeSrc":"2415:19:89","nodeType":"YulAssignment","src":"2415:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"2431:2:89","nodeType":"YulLiteral","src":"2431:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2425:5:89","nodeType":"YulIdentifier","src":"2425:5:89"},"nativeSrc":"2425:9:89","nodeType":"YulFunctionCall","src":"2425:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"2415:6:89","nodeType":"YulIdentifier","src":"2415:6:89"}]},{"nativeSrc":"2443:58:89","nodeType":"YulVariableDeclaration","src":"2443:58:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"2465:6:89","nodeType":"YulIdentifier","src":"2465:6:89"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"2481:4:89","nodeType":"YulIdentifier","src":"2481:4:89"},{"kind":"number","nativeSrc":"2487:2:89","nodeType":"YulLiteral","src":"2487:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2477:3:89","nodeType":"YulIdentifier","src":"2477:3:89"},"nativeSrc":"2477:13:89","nodeType":"YulFunctionCall","src":"2477:13:89"},{"arguments":[{"kind":"number","nativeSrc":"2496:2:89","nodeType":"YulLiteral","src":"2496:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2492:3:89","nodeType":"YulIdentifier","src":"2492:3:89"},"nativeSrc":"2492:7:89","nodeType":"YulFunctionCall","src":"2492:7:89"}],"functionName":{"name":"and","nativeSrc":"2473:3:89","nodeType":"YulIdentifier","src":"2473:3:89"},"nativeSrc":"2473:27:89","nodeType":"YulFunctionCall","src":"2473:27:89"}],"functionName":{"name":"add","nativeSrc":"2461:3:89","nodeType":"YulIdentifier","src":"2461:3:89"},"nativeSrc":"2461:40:89","nodeType":"YulFunctionCall","src":"2461:40:89"},"variables":[{"name":"newFreePtr","nativeSrc":"2447:10:89","nodeType":"YulTypedName","src":"2447:10:89","type":""}]},{"body":{"nativeSrc":"2576:22:89","nodeType":"YulBlock","src":"2576:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2578:16:89","nodeType":"YulIdentifier","src":"2578:16:89"},"nativeSrc":"2578:18:89","nodeType":"YulFunctionCall","src":"2578:18:89"},"nativeSrc":"2578:18:89","nodeType":"YulExpressionStatement","src":"2578:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2519:10:89","nodeType":"YulIdentifier","src":"2519:10:89"},{"kind":"number","nativeSrc":"2531:18:89","nodeType":"YulLiteral","src":"2531:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2516:2:89","nodeType":"YulIdentifier","src":"2516:2:89"},"nativeSrc":"2516:34:89","nodeType":"YulFunctionCall","src":"2516:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2555:10:89","nodeType":"YulIdentifier","src":"2555:10:89"},{"name":"memPtr","nativeSrc":"2567:6:89","nodeType":"YulIdentifier","src":"2567:6:89"}],"functionName":{"name":"lt","nativeSrc":"2552:2:89","nodeType":"YulIdentifier","src":"2552:2:89"},"nativeSrc":"2552:22:89","nodeType":"YulFunctionCall","src":"2552:22:89"}],"functionName":{"name":"or","nativeSrc":"2513:2:89","nodeType":"YulIdentifier","src":"2513:2:89"},"nativeSrc":"2513:62:89","nodeType":"YulFunctionCall","src":"2513:62:89"},"nativeSrc":"2510:88:89","nodeType":"YulIf","src":"2510:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2614:2:89","nodeType":"YulLiteral","src":"2614:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2618:10:89","nodeType":"YulIdentifier","src":"2618:10:89"}],"functionName":{"name":"mstore","nativeSrc":"2607:6:89","nodeType":"YulIdentifier","src":"2607:6:89"},"nativeSrc":"2607:22:89","nodeType":"YulFunctionCall","src":"2607:22:89"},"nativeSrc":"2607:22:89","nodeType":"YulExpressionStatement","src":"2607:22:89"}]},"name":"allocate_memory","nativeSrc":"2360:275:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"2385:4:89","nodeType":"YulTypedName","src":"2385:4:89","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"2394:6:89","nodeType":"YulTypedName","src":"2394:6:89","type":""}],"src":"2360:275:89"},{"body":{"nativeSrc":"2692:583:89","nodeType":"YulBlock","src":"2692:583:89","statements":[{"body":{"nativeSrc":"2741:16:89","nodeType":"YulBlock","src":"2741:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2750:1:89","nodeType":"YulLiteral","src":"2750:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2753:1:89","nodeType":"YulLiteral","src":"2753:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2743:6:89","nodeType":"YulIdentifier","src":"2743:6:89"},"nativeSrc":"2743:12:89","nodeType":"YulFunctionCall","src":"2743:12:89"},"nativeSrc":"2743:12:89","nodeType":"YulExpressionStatement","src":"2743:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2720:6:89","nodeType":"YulIdentifier","src":"2720:6:89"},{"kind":"number","nativeSrc":"2728:4:89","nodeType":"YulLiteral","src":"2728:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2716:3:89","nodeType":"YulIdentifier","src":"2716:3:89"},"nativeSrc":"2716:17:89","nodeType":"YulFunctionCall","src":"2716:17:89"},{"name":"end","nativeSrc":"2735:3:89","nodeType":"YulIdentifier","src":"2735:3:89"}],"functionName":{"name":"slt","nativeSrc":"2712:3:89","nodeType":"YulIdentifier","src":"2712:3:89"},"nativeSrc":"2712:27:89","nodeType":"YulFunctionCall","src":"2712:27:89"}],"functionName":{"name":"iszero","nativeSrc":"2705:6:89","nodeType":"YulIdentifier","src":"2705:6:89"},"nativeSrc":"2705:35:89","nodeType":"YulFunctionCall","src":"2705:35:89"},"nativeSrc":"2702:55:89","nodeType":"YulIf","src":"2702:55:89"},{"nativeSrc":"2766:34:89","nodeType":"YulVariableDeclaration","src":"2766:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"2793:6:89","nodeType":"YulIdentifier","src":"2793:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"2780:12:89","nodeType":"YulIdentifier","src":"2780:12:89"},"nativeSrc":"2780:20:89","nodeType":"YulFunctionCall","src":"2780:20:89"},"variables":[{"name":"length","nativeSrc":"2770:6:89","nodeType":"YulTypedName","src":"2770:6:89","type":""}]},{"nativeSrc":"2809:28:89","nodeType":"YulVariableDeclaration","src":"2809:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"2824:6:89","nodeType":"YulIdentifier","src":"2824:6:89"},{"kind":"number","nativeSrc":"2832:4:89","nodeType":"YulLiteral","src":"2832:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2820:3:89","nodeType":"YulIdentifier","src":"2820:3:89"},"nativeSrc":"2820:17:89","nodeType":"YulFunctionCall","src":"2820:17:89"},"variables":[{"name":"src","nativeSrc":"2813:3:89","nodeType":"YulTypedName","src":"2813:3:89","type":""}]},{"nativeSrc":"2846:16:89","nodeType":"YulVariableDeclaration","src":"2846:16:89","value":{"kind":"number","nativeSrc":"2861:1:89","nodeType":"YulLiteral","src":"2861:1:89","type":"","value":"0"},"variables":[{"name":"array_1","nativeSrc":"2850:7:89","nodeType":"YulTypedName","src":"2850:7:89","type":""}]},{"nativeSrc":"2871:19:89","nodeType":"YulVariableDeclaration","src":"2871:19:89","value":{"name":"array_1","nativeSrc":"2883:7:89","nodeType":"YulIdentifier","src":"2883:7:89"},"variables":[{"name":"size","nativeSrc":"2875:4:89","nodeType":"YulTypedName","src":"2875:4:89","type":""}]},{"body":{"nativeSrc":"2933:22:89","nodeType":"YulBlock","src":"2933:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2935:16:89","nodeType":"YulIdentifier","src":"2935:16:89"},"nativeSrc":"2935:18:89","nodeType":"YulFunctionCall","src":"2935:18:89"},"nativeSrc":"2935:18:89","nodeType":"YulExpressionStatement","src":"2935:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2905:6:89","nodeType":"YulIdentifier","src":"2905:6:89"},{"kind":"number","nativeSrc":"2913:18:89","nodeType":"YulLiteral","src":"2913:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2902:2:89","nodeType":"YulIdentifier","src":"2902:2:89"},"nativeSrc":"2902:30:89","nodeType":"YulFunctionCall","src":"2902:30:89"},"nativeSrc":"2899:56:89","nodeType":"YulIf","src":"2899:56:89"},{"nativeSrc":"2964:48:89","nodeType":"YulAssignment","src":"2964:48:89","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2984:6:89","nodeType":"YulIdentifier","src":"2984:6:89"},{"kind":"number","nativeSrc":"2992:2:89","nodeType":"YulLiteral","src":"2992:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2980:3:89","nodeType":"YulIdentifier","src":"2980:3:89"},"nativeSrc":"2980:15:89","nodeType":"YulFunctionCall","src":"2980:15:89"},{"arguments":[{"kind":"number","nativeSrc":"3001:2:89","nodeType":"YulLiteral","src":"3001:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2997:3:89","nodeType":"YulIdentifier","src":"2997:3:89"},"nativeSrc":"2997:7:89","nodeType":"YulFunctionCall","src":"2997:7:89"}],"functionName":{"name":"and","nativeSrc":"2976:3:89","nodeType":"YulIdentifier","src":"2976:3:89"},"nativeSrc":"2976:29:89","nodeType":"YulFunctionCall","src":"2976:29:89"},{"kind":"number","nativeSrc":"3007:4:89","nodeType":"YulLiteral","src":"3007:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2972:3:89","nodeType":"YulIdentifier","src":"2972:3:89"},"nativeSrc":"2972:40:89","nodeType":"YulFunctionCall","src":"2972:40:89"},"variableNames":[{"name":"size","nativeSrc":"2964:4:89","nodeType":"YulIdentifier","src":"2964:4:89"}]},{"nativeSrc":"3021:32:89","nodeType":"YulAssignment","src":"3021:32:89","value":{"arguments":[{"name":"size","nativeSrc":"3048:4:89","nodeType":"YulIdentifier","src":"3048:4:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"3032:15:89","nodeType":"YulIdentifier","src":"3032:15:89"},"nativeSrc":"3032:21:89","nodeType":"YulFunctionCall","src":"3032:21:89"},"variableNames":[{"name":"array_1","nativeSrc":"3021:7:89","nodeType":"YulIdentifier","src":"3021:7:89"}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"3069:7:89","nodeType":"YulIdentifier","src":"3069:7:89"},{"name":"length","nativeSrc":"3078:6:89","nodeType":"YulIdentifier","src":"3078:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3062:6:89","nodeType":"YulIdentifier","src":"3062:6:89"},"nativeSrc":"3062:23:89","nodeType":"YulFunctionCall","src":"3062:23:89"},"nativeSrc":"3062:23:89","nodeType":"YulExpressionStatement","src":"3062:23:89"},{"body":{"nativeSrc":"3123:16:89","nodeType":"YulBlock","src":"3123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3132:1:89","nodeType":"YulLiteral","src":"3132:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3135:1:89","nodeType":"YulLiteral","src":"3135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3125:6:89","nodeType":"YulIdentifier","src":"3125:6:89"},"nativeSrc":"3125:12:89","nodeType":"YulFunctionCall","src":"3125:12:89"},"nativeSrc":"3125:12:89","nodeType":"YulExpressionStatement","src":"3125:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3104:3:89","nodeType":"YulIdentifier","src":"3104:3:89"},{"name":"length","nativeSrc":"3109:6:89","nodeType":"YulIdentifier","src":"3109:6:89"}],"functionName":{"name":"add","nativeSrc":"3100:3:89","nodeType":"YulIdentifier","src":"3100:3:89"},"nativeSrc":"3100:16:89","nodeType":"YulFunctionCall","src":"3100:16:89"},{"name":"end","nativeSrc":"3118:3:89","nodeType":"YulIdentifier","src":"3118:3:89"}],"functionName":{"name":"gt","nativeSrc":"3097:2:89","nodeType":"YulIdentifier","src":"3097:2:89"},"nativeSrc":"3097:25:89","nodeType":"YulFunctionCall","src":"3097:25:89"},"nativeSrc":"3094:45:89","nodeType":"YulIf","src":"3094:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"3165:7:89","nodeType":"YulIdentifier","src":"3165:7:89"},{"kind":"number","nativeSrc":"3174:4:89","nodeType":"YulLiteral","src":"3174:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3161:3:89","nodeType":"YulIdentifier","src":"3161:3:89"},"nativeSrc":"3161:18:89","nodeType":"YulFunctionCall","src":"3161:18:89"},{"name":"src","nativeSrc":"3181:3:89","nodeType":"YulIdentifier","src":"3181:3:89"},{"name":"length","nativeSrc":"3186:6:89","nodeType":"YulIdentifier","src":"3186:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"3148:12:89","nodeType":"YulIdentifier","src":"3148:12:89"},"nativeSrc":"3148:45:89","nodeType":"YulFunctionCall","src":"3148:45:89"},"nativeSrc":"3148:45:89","nodeType":"YulExpressionStatement","src":"3148:45:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"3217:7:89","nodeType":"YulIdentifier","src":"3217:7:89"},{"name":"length","nativeSrc":"3226:6:89","nodeType":"YulIdentifier","src":"3226:6:89"}],"functionName":{"name":"add","nativeSrc":"3213:3:89","nodeType":"YulIdentifier","src":"3213:3:89"},"nativeSrc":"3213:20:89","nodeType":"YulFunctionCall","src":"3213:20:89"},{"kind":"number","nativeSrc":"3235:4:89","nodeType":"YulLiteral","src":"3235:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3209:3:89","nodeType":"YulIdentifier","src":"3209:3:89"},"nativeSrc":"3209:31:89","nodeType":"YulFunctionCall","src":"3209:31:89"},{"kind":"number","nativeSrc":"3242:1:89","nodeType":"YulLiteral","src":"3242:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3202:6:89","nodeType":"YulIdentifier","src":"3202:6:89"},"nativeSrc":"3202:42:89","nodeType":"YulFunctionCall","src":"3202:42:89"},"nativeSrc":"3202:42:89","nodeType":"YulExpressionStatement","src":"3202:42:89"},{"nativeSrc":"3253:16:89","nodeType":"YulAssignment","src":"3253:16:89","value":{"name":"array_1","nativeSrc":"3262:7:89","nodeType":"YulIdentifier","src":"3262:7:89"},"variableNames":[{"name":"array","nativeSrc":"3253:5:89","nodeType":"YulIdentifier","src":"3253:5:89"}]}]},"name":"abi_decode_bytes","nativeSrc":"2640:635:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2666:6:89","nodeType":"YulTypedName","src":"2666:6:89","type":""},{"name":"end","nativeSrc":"2674:3:89","nodeType":"YulTypedName","src":"2674:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2682:5:89","nodeType":"YulTypedName","src":"2682:5:89","type":""}],"src":"2640:635:89"},{"body":{"nativeSrc":"3376:298:89","nodeType":"YulBlock","src":"3376:298:89","statements":[{"body":{"nativeSrc":"3422:16:89","nodeType":"YulBlock","src":"3422:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3431:1:89","nodeType":"YulLiteral","src":"3431:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3434:1:89","nodeType":"YulLiteral","src":"3434:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3424:6:89","nodeType":"YulIdentifier","src":"3424:6:89"},"nativeSrc":"3424:12:89","nodeType":"YulFunctionCall","src":"3424:12:89"},"nativeSrc":"3424:12:89","nodeType":"YulExpressionStatement","src":"3424:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3397:7:89","nodeType":"YulIdentifier","src":"3397:7:89"},{"name":"headStart","nativeSrc":"3406:9:89","nodeType":"YulIdentifier","src":"3406:9:89"}],"functionName":{"name":"sub","nativeSrc":"3393:3:89","nodeType":"YulIdentifier","src":"3393:3:89"},"nativeSrc":"3393:23:89","nodeType":"YulFunctionCall","src":"3393:23:89"},{"kind":"number","nativeSrc":"3418:2:89","nodeType":"YulLiteral","src":"3418:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3389:3:89","nodeType":"YulIdentifier","src":"3389:3:89"},"nativeSrc":"3389:32:89","nodeType":"YulFunctionCall","src":"3389:32:89"},"nativeSrc":"3386:52:89","nodeType":"YulIf","src":"3386:52:89"},{"nativeSrc":"3447:39:89","nodeType":"YulAssignment","src":"3447:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3476:9:89","nodeType":"YulIdentifier","src":"3476:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3457:18:89","nodeType":"YulIdentifier","src":"3457:18:89"},"nativeSrc":"3457:29:89","nodeType":"YulFunctionCall","src":"3457:29:89"},"variableNames":[{"name":"value0","nativeSrc":"3447:6:89","nodeType":"YulIdentifier","src":"3447:6:89"}]},{"nativeSrc":"3495:46:89","nodeType":"YulVariableDeclaration","src":"3495:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3526:9:89","nodeType":"YulIdentifier","src":"3526:9:89"},{"kind":"number","nativeSrc":"3537:2:89","nodeType":"YulLiteral","src":"3537:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3522:3:89","nodeType":"YulIdentifier","src":"3522:3:89"},"nativeSrc":"3522:18:89","nodeType":"YulFunctionCall","src":"3522:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3509:12:89","nodeType":"YulIdentifier","src":"3509:12:89"},"nativeSrc":"3509:32:89","nodeType":"YulFunctionCall","src":"3509:32:89"},"variables":[{"name":"offset","nativeSrc":"3499:6:89","nodeType":"YulTypedName","src":"3499:6:89","type":""}]},{"body":{"nativeSrc":"3584:16:89","nodeType":"YulBlock","src":"3584:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3593:1:89","nodeType":"YulLiteral","src":"3593:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3596:1:89","nodeType":"YulLiteral","src":"3596:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3586:6:89","nodeType":"YulIdentifier","src":"3586:6:89"},"nativeSrc":"3586:12:89","nodeType":"YulFunctionCall","src":"3586:12:89"},"nativeSrc":"3586:12:89","nodeType":"YulExpressionStatement","src":"3586:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3556:6:89","nodeType":"YulIdentifier","src":"3556:6:89"},{"kind":"number","nativeSrc":"3564:18:89","nodeType":"YulLiteral","src":"3564:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3553:2:89","nodeType":"YulIdentifier","src":"3553:2:89"},"nativeSrc":"3553:30:89","nodeType":"YulFunctionCall","src":"3553:30:89"},"nativeSrc":"3550:50:89","nodeType":"YulIf","src":"3550:50:89"},{"nativeSrc":"3609:59:89","nodeType":"YulAssignment","src":"3609:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3640:9:89","nodeType":"YulIdentifier","src":"3640:9:89"},{"name":"offset","nativeSrc":"3651:6:89","nodeType":"YulIdentifier","src":"3651:6:89"}],"functionName":{"name":"add","nativeSrc":"3636:3:89","nodeType":"YulIdentifier","src":"3636:3:89"},"nativeSrc":"3636:22:89","nodeType":"YulFunctionCall","src":"3636:22:89"},{"name":"dataEnd","nativeSrc":"3660:7:89","nodeType":"YulIdentifier","src":"3660:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"3619:16:89","nodeType":"YulIdentifier","src":"3619:16:89"},"nativeSrc":"3619:49:89","nodeType":"YulFunctionCall","src":"3619:49:89"},"variableNames":[{"name":"value1","nativeSrc":"3609:6:89","nodeType":"YulIdentifier","src":"3609:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"3280:394:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3334:9:89","nodeType":"YulTypedName","src":"3334:9:89","type":""},{"name":"dataEnd","nativeSrc":"3345:7:89","nodeType":"YulTypedName","src":"3345:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3357:6:89","nodeType":"YulTypedName","src":"3357:6:89","type":""},{"name":"value1","nativeSrc":"3365:6:89","nodeType":"YulTypedName","src":"3365:6:89","type":""}],"src":"3280:394:89"},{"body":{"nativeSrc":"3780:76:89","nodeType":"YulBlock","src":"3780:76:89","statements":[{"nativeSrc":"3790:26:89","nodeType":"YulAssignment","src":"3790:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3802:9:89","nodeType":"YulIdentifier","src":"3802:9:89"},{"kind":"number","nativeSrc":"3813:2:89","nodeType":"YulLiteral","src":"3813:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3798:3:89","nodeType":"YulIdentifier","src":"3798:3:89"},"nativeSrc":"3798:18:89","nodeType":"YulFunctionCall","src":"3798:18:89"},"variableNames":[{"name":"tail","nativeSrc":"3790:4:89","nodeType":"YulIdentifier","src":"3790:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3832:9:89","nodeType":"YulIdentifier","src":"3832:9:89"},{"name":"value0","nativeSrc":"3843:6:89","nodeType":"YulIdentifier","src":"3843:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3825:6:89","nodeType":"YulIdentifier","src":"3825:6:89"},"nativeSrc":"3825:25:89","nodeType":"YulFunctionCall","src":"3825:25:89"},"nativeSrc":"3825:25:89","nodeType":"YulExpressionStatement","src":"3825:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"3679:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3749:9:89","nodeType":"YulTypedName","src":"3749:9:89","type":""},{"name":"value0","nativeSrc":"3760:6:89","nodeType":"YulTypedName","src":"3760:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3771:4:89","nodeType":"YulTypedName","src":"3771:4:89","type":""}],"src":"3679:177:89"},{"body":{"nativeSrc":"3962:102:89","nodeType":"YulBlock","src":"3962:102:89","statements":[{"nativeSrc":"3972:26:89","nodeType":"YulAssignment","src":"3972:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3984:9:89","nodeType":"YulIdentifier","src":"3984:9:89"},{"kind":"number","nativeSrc":"3995:2:89","nodeType":"YulLiteral","src":"3995:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3980:3:89","nodeType":"YulIdentifier","src":"3980:3:89"},"nativeSrc":"3980:18:89","nodeType":"YulFunctionCall","src":"3980:18:89"},"variableNames":[{"name":"tail","nativeSrc":"3972:4:89","nodeType":"YulIdentifier","src":"3972:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4014:9:89","nodeType":"YulIdentifier","src":"4014:9:89"},{"arguments":[{"name":"value0","nativeSrc":"4029:6:89","nodeType":"YulIdentifier","src":"4029:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4045:3:89","nodeType":"YulLiteral","src":"4045:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"4050:1:89","nodeType":"YulLiteral","src":"4050:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4041:3:89","nodeType":"YulIdentifier","src":"4041:3:89"},"nativeSrc":"4041:11:89","nodeType":"YulFunctionCall","src":"4041:11:89"},{"kind":"number","nativeSrc":"4054:1:89","nodeType":"YulLiteral","src":"4054:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4037:3:89","nodeType":"YulIdentifier","src":"4037:3:89"},"nativeSrc":"4037:19:89","nodeType":"YulFunctionCall","src":"4037:19:89"}],"functionName":{"name":"and","nativeSrc":"4025:3:89","nodeType":"YulIdentifier","src":"4025:3:89"},"nativeSrc":"4025:32:89","nodeType":"YulFunctionCall","src":"4025:32:89"}],"functionName":{"name":"mstore","nativeSrc":"4007:6:89","nodeType":"YulIdentifier","src":"4007:6:89"},"nativeSrc":"4007:51:89","nodeType":"YulFunctionCall","src":"4007:51:89"},"nativeSrc":"4007:51:89","nodeType":"YulExpressionStatement","src":"4007:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3861:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3931:9:89","nodeType":"YulTypedName","src":"3931:9:89","type":""},{"name":"value0","nativeSrc":"3942:6:89","nodeType":"YulTypedName","src":"3942:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3953:4:89","nodeType":"YulTypedName","src":"3953:4:89","type":""}],"src":"3861:203:89"},{"body":{"nativeSrc":"4135:184:89","nodeType":"YulBlock","src":"4135:184:89","statements":[{"nativeSrc":"4145:10:89","nodeType":"YulVariableDeclaration","src":"4145:10:89","value":{"kind":"number","nativeSrc":"4154:1:89","nodeType":"YulLiteral","src":"4154:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4149:1:89","nodeType":"YulTypedName","src":"4149:1:89","type":""}]},{"body":{"nativeSrc":"4214:63:89","nodeType":"YulBlock","src":"4214:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4239:3:89","nodeType":"YulIdentifier","src":"4239:3:89"},{"name":"i","nativeSrc":"4244:1:89","nodeType":"YulIdentifier","src":"4244:1:89"}],"functionName":{"name":"add","nativeSrc":"4235:3:89","nodeType":"YulIdentifier","src":"4235:3:89"},"nativeSrc":"4235:11:89","nodeType":"YulFunctionCall","src":"4235:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4258:3:89","nodeType":"YulIdentifier","src":"4258:3:89"},{"name":"i","nativeSrc":"4263:1:89","nodeType":"YulIdentifier","src":"4263:1:89"}],"functionName":{"name":"add","nativeSrc":"4254:3:89","nodeType":"YulIdentifier","src":"4254:3:89"},"nativeSrc":"4254:11:89","nodeType":"YulFunctionCall","src":"4254:11:89"}],"functionName":{"name":"mload","nativeSrc":"4248:5:89","nodeType":"YulIdentifier","src":"4248:5:89"},"nativeSrc":"4248:18:89","nodeType":"YulFunctionCall","src":"4248:18:89"}],"functionName":{"name":"mstore","nativeSrc":"4228:6:89","nodeType":"YulIdentifier","src":"4228:6:89"},"nativeSrc":"4228:39:89","nodeType":"YulFunctionCall","src":"4228:39:89"},"nativeSrc":"4228:39:89","nodeType":"YulExpressionStatement","src":"4228:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4175:1:89","nodeType":"YulIdentifier","src":"4175:1:89"},{"name":"length","nativeSrc":"4178:6:89","nodeType":"YulIdentifier","src":"4178:6:89"}],"functionName":{"name":"lt","nativeSrc":"4172:2:89","nodeType":"YulIdentifier","src":"4172:2:89"},"nativeSrc":"4172:13:89","nodeType":"YulFunctionCall","src":"4172:13:89"},"nativeSrc":"4164:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"4186:19:89","nodeType":"YulBlock","src":"4186:19:89","statements":[{"nativeSrc":"4188:15:89","nodeType":"YulAssignment","src":"4188:15:89","value":{"arguments":[{"name":"i","nativeSrc":"4197:1:89","nodeType":"YulIdentifier","src":"4197:1:89"},{"kind":"number","nativeSrc":"4200:2:89","nodeType":"YulLiteral","src":"4200:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4193:3:89","nodeType":"YulIdentifier","src":"4193:3:89"},"nativeSrc":"4193:10:89","nodeType":"YulFunctionCall","src":"4193:10:89"},"variableNames":[{"name":"i","nativeSrc":"4188:1:89","nodeType":"YulIdentifier","src":"4188:1:89"}]}]},"pre":{"nativeSrc":"4168:3:89","nodeType":"YulBlock","src":"4168:3:89","statements":[]},"src":"4164:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4297:3:89","nodeType":"YulIdentifier","src":"4297:3:89"},{"name":"length","nativeSrc":"4302:6:89","nodeType":"YulIdentifier","src":"4302:6:89"}],"functionName":{"name":"add","nativeSrc":"4293:3:89","nodeType":"YulIdentifier","src":"4293:3:89"},"nativeSrc":"4293:16:89","nodeType":"YulFunctionCall","src":"4293:16:89"},{"kind":"number","nativeSrc":"4311:1:89","nodeType":"YulLiteral","src":"4311:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4286:6:89","nodeType":"YulIdentifier","src":"4286:6:89"},"nativeSrc":"4286:27:89","nodeType":"YulFunctionCall","src":"4286:27:89"},"nativeSrc":"4286:27:89","nodeType":"YulExpressionStatement","src":"4286:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4069:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4113:3:89","nodeType":"YulTypedName","src":"4113:3:89","type":""},{"name":"dst","nativeSrc":"4118:3:89","nodeType":"YulTypedName","src":"4118:3:89","type":""},{"name":"length","nativeSrc":"4123:6:89","nodeType":"YulTypedName","src":"4123:6:89","type":""}],"src":"4069:250:89"},{"body":{"nativeSrc":"4374:221:89","nodeType":"YulBlock","src":"4374:221:89","statements":[{"nativeSrc":"4384:26:89","nodeType":"YulVariableDeclaration","src":"4384:26:89","value":{"arguments":[{"name":"value","nativeSrc":"4404:5:89","nodeType":"YulIdentifier","src":"4404:5:89"}],"functionName":{"name":"mload","nativeSrc":"4398:5:89","nodeType":"YulIdentifier","src":"4398:5:89"},"nativeSrc":"4398:12:89","nodeType":"YulFunctionCall","src":"4398:12:89"},"variables":[{"name":"length","nativeSrc":"4388:6:89","nodeType":"YulTypedName","src":"4388:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4426:3:89","nodeType":"YulIdentifier","src":"4426:3:89"},{"name":"length","nativeSrc":"4431:6:89","nodeType":"YulIdentifier","src":"4431:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4419:6:89","nodeType":"YulIdentifier","src":"4419:6:89"},"nativeSrc":"4419:19:89","nodeType":"YulFunctionCall","src":"4419:19:89"},"nativeSrc":"4419:19:89","nodeType":"YulExpressionStatement","src":"4419:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4486:5:89","nodeType":"YulIdentifier","src":"4486:5:89"},{"kind":"number","nativeSrc":"4493:4:89","nodeType":"YulLiteral","src":"4493:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4482:3:89","nodeType":"YulIdentifier","src":"4482:3:89"},"nativeSrc":"4482:16:89","nodeType":"YulFunctionCall","src":"4482:16:89"},{"arguments":[{"name":"pos","nativeSrc":"4504:3:89","nodeType":"YulIdentifier","src":"4504:3:89"},{"kind":"number","nativeSrc":"4509:4:89","nodeType":"YulLiteral","src":"4509:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4500:3:89","nodeType":"YulIdentifier","src":"4500:3:89"},"nativeSrc":"4500:14:89","nodeType":"YulFunctionCall","src":"4500:14:89"},{"name":"length","nativeSrc":"4516:6:89","nodeType":"YulIdentifier","src":"4516:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4447:34:89","nodeType":"YulIdentifier","src":"4447:34:89"},"nativeSrc":"4447:76:89","nodeType":"YulFunctionCall","src":"4447:76:89"},"nativeSrc":"4447:76:89","nodeType":"YulExpressionStatement","src":"4447:76:89"},{"nativeSrc":"4532:57:89","nodeType":"YulAssignment","src":"4532:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4547:3:89","nodeType":"YulIdentifier","src":"4547:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4560:6:89","nodeType":"YulIdentifier","src":"4560:6:89"},{"kind":"number","nativeSrc":"4568:2:89","nodeType":"YulLiteral","src":"4568:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4556:3:89","nodeType":"YulIdentifier","src":"4556:3:89"},"nativeSrc":"4556:15:89","nodeType":"YulFunctionCall","src":"4556:15:89"},{"arguments":[{"kind":"number","nativeSrc":"4577:2:89","nodeType":"YulLiteral","src":"4577:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4573:3:89","nodeType":"YulIdentifier","src":"4573:3:89"},"nativeSrc":"4573:7:89","nodeType":"YulFunctionCall","src":"4573:7:89"}],"functionName":{"name":"and","nativeSrc":"4552:3:89","nodeType":"YulIdentifier","src":"4552:3:89"},"nativeSrc":"4552:29:89","nodeType":"YulFunctionCall","src":"4552:29:89"}],"functionName":{"name":"add","nativeSrc":"4543:3:89","nodeType":"YulIdentifier","src":"4543:3:89"},"nativeSrc":"4543:39:89","nodeType":"YulFunctionCall","src":"4543:39:89"},{"kind":"number","nativeSrc":"4584:4:89","nodeType":"YulLiteral","src":"4584:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4539:3:89","nodeType":"YulIdentifier","src":"4539:3:89"},"nativeSrc":"4539:50:89","nodeType":"YulFunctionCall","src":"4539:50:89"},"variableNames":[{"name":"end","nativeSrc":"4532:3:89","nodeType":"YulIdentifier","src":"4532:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"4324:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4351:5:89","nodeType":"YulTypedName","src":"4351:5:89","type":""},{"name":"pos","nativeSrc":"4358:3:89","nodeType":"YulTypedName","src":"4358:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4366:3:89","nodeType":"YulTypedName","src":"4366:3:89","type":""}],"src":"4324:271:89"},{"body":{"nativeSrc":"4721:99:89","nodeType":"YulBlock","src":"4721:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4738:9:89","nodeType":"YulIdentifier","src":"4738:9:89"},{"kind":"number","nativeSrc":"4749:2:89","nodeType":"YulLiteral","src":"4749:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4731:6:89","nodeType":"YulIdentifier","src":"4731:6:89"},"nativeSrc":"4731:21:89","nodeType":"YulFunctionCall","src":"4731:21:89"},"nativeSrc":"4731:21:89","nodeType":"YulExpressionStatement","src":"4731:21:89"},{"nativeSrc":"4761:53:89","nodeType":"YulAssignment","src":"4761:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"4787:6:89","nodeType":"YulIdentifier","src":"4787:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"4799:9:89","nodeType":"YulIdentifier","src":"4799:9:89"},{"kind":"number","nativeSrc":"4810:2:89","nodeType":"YulLiteral","src":"4810:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4795:3:89","nodeType":"YulIdentifier","src":"4795:3:89"},"nativeSrc":"4795:18:89","nodeType":"YulFunctionCall","src":"4795:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"4769:17:89","nodeType":"YulIdentifier","src":"4769:17:89"},"nativeSrc":"4769:45:89","nodeType":"YulFunctionCall","src":"4769:45:89"},"variableNames":[{"name":"tail","nativeSrc":"4761:4:89","nodeType":"YulIdentifier","src":"4761:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4600:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4690:9:89","nodeType":"YulTypedName","src":"4690:9:89","type":""},{"name":"value0","nativeSrc":"4701:6:89","nodeType":"YulTypedName","src":"4701:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4712:4:89","nodeType":"YulTypedName","src":"4712:4:89","type":""}],"src":"4600:220:89"},{"body":{"nativeSrc":"4895:116:89","nodeType":"YulBlock","src":"4895:116:89","statements":[{"body":{"nativeSrc":"4941:16:89","nodeType":"YulBlock","src":"4941:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4950:1:89","nodeType":"YulLiteral","src":"4950:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4953:1:89","nodeType":"YulLiteral","src":"4953:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4943:6:89","nodeType":"YulIdentifier","src":"4943:6:89"},"nativeSrc":"4943:12:89","nodeType":"YulFunctionCall","src":"4943:12:89"},"nativeSrc":"4943:12:89","nodeType":"YulExpressionStatement","src":"4943:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4916:7:89","nodeType":"YulIdentifier","src":"4916:7:89"},{"name":"headStart","nativeSrc":"4925:9:89","nodeType":"YulIdentifier","src":"4925:9:89"}],"functionName":{"name":"sub","nativeSrc":"4912:3:89","nodeType":"YulIdentifier","src":"4912:3:89"},"nativeSrc":"4912:23:89","nodeType":"YulFunctionCall","src":"4912:23:89"},{"kind":"number","nativeSrc":"4937:2:89","nodeType":"YulLiteral","src":"4937:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4908:3:89","nodeType":"YulIdentifier","src":"4908:3:89"},"nativeSrc":"4908:32:89","nodeType":"YulFunctionCall","src":"4908:32:89"},"nativeSrc":"4905:52:89","nodeType":"YulIf","src":"4905:52:89"},{"nativeSrc":"4966:39:89","nodeType":"YulAssignment","src":"4966:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4995:9:89","nodeType":"YulIdentifier","src":"4995:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4976:18:89","nodeType":"YulIdentifier","src":"4976:18:89"},"nativeSrc":"4976:29:89","nodeType":"YulFunctionCall","src":"4976:29:89"},"variableNames":[{"name":"value0","nativeSrc":"4966:6:89","nodeType":"YulIdentifier","src":"4966:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4825:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4861:9:89","nodeType":"YulTypedName","src":"4861:9:89","type":""},{"name":"dataEnd","nativeSrc":"4872:7:89","nodeType":"YulTypedName","src":"4872:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4884:6:89","nodeType":"YulTypedName","src":"4884:6:89","type":""}],"src":"4825:186:89"},{"body":{"nativeSrc":"5141:1105:89","nodeType":"YulBlock","src":"5141:1105:89","statements":[{"body":{"nativeSrc":"5187:16:89","nodeType":"YulBlock","src":"5187:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5196:1:89","nodeType":"YulLiteral","src":"5196:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5199:1:89","nodeType":"YulLiteral","src":"5199:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5189:6:89","nodeType":"YulIdentifier","src":"5189:6:89"},"nativeSrc":"5189:12:89","nodeType":"YulFunctionCall","src":"5189:12:89"},"nativeSrc":"5189:12:89","nodeType":"YulExpressionStatement","src":"5189:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5162:7:89","nodeType":"YulIdentifier","src":"5162:7:89"},{"name":"headStart","nativeSrc":"5171:9:89","nodeType":"YulIdentifier","src":"5171:9:89"}],"functionName":{"name":"sub","nativeSrc":"5158:3:89","nodeType":"YulIdentifier","src":"5158:3:89"},"nativeSrc":"5158:23:89","nodeType":"YulFunctionCall","src":"5158:23:89"},{"kind":"number","nativeSrc":"5183:2:89","nodeType":"YulLiteral","src":"5183:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5154:3:89","nodeType":"YulIdentifier","src":"5154:3:89"},"nativeSrc":"5154:32:89","nodeType":"YulFunctionCall","src":"5154:32:89"},"nativeSrc":"5151:52:89","nodeType":"YulIf","src":"5151:52:89"},{"nativeSrc":"5212:37:89","nodeType":"YulVariableDeclaration","src":"5212:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5239:9:89","nodeType":"YulIdentifier","src":"5239:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"5226:12:89","nodeType":"YulIdentifier","src":"5226:12:89"},"nativeSrc":"5226:23:89","nodeType":"YulFunctionCall","src":"5226:23:89"},"variables":[{"name":"offset","nativeSrc":"5216:6:89","nodeType":"YulTypedName","src":"5216:6:89","type":""}]},{"body":{"nativeSrc":"5292:16:89","nodeType":"YulBlock","src":"5292:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5301:1:89","nodeType":"YulLiteral","src":"5301:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5304:1:89","nodeType":"YulLiteral","src":"5304:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5294:6:89","nodeType":"YulIdentifier","src":"5294:6:89"},"nativeSrc":"5294:12:89","nodeType":"YulFunctionCall","src":"5294:12:89"},"nativeSrc":"5294:12:89","nodeType":"YulExpressionStatement","src":"5294:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5264:6:89","nodeType":"YulIdentifier","src":"5264:6:89"},{"kind":"number","nativeSrc":"5272:18:89","nodeType":"YulLiteral","src":"5272:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5261:2:89","nodeType":"YulIdentifier","src":"5261:2:89"},"nativeSrc":"5261:30:89","nodeType":"YulFunctionCall","src":"5261:30:89"},"nativeSrc":"5258:50:89","nodeType":"YulIf","src":"5258:50:89"},{"nativeSrc":"5317:32:89","nodeType":"YulVariableDeclaration","src":"5317:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5331:9:89","nodeType":"YulIdentifier","src":"5331:9:89"},{"name":"offset","nativeSrc":"5342:6:89","nodeType":"YulIdentifier","src":"5342:6:89"}],"functionName":{"name":"add","nativeSrc":"5327:3:89","nodeType":"YulIdentifier","src":"5327:3:89"},"nativeSrc":"5327:22:89","nodeType":"YulFunctionCall","src":"5327:22:89"},"variables":[{"name":"_1","nativeSrc":"5321:2:89","nodeType":"YulTypedName","src":"5321:2:89","type":""}]},{"body":{"nativeSrc":"5397:16:89","nodeType":"YulBlock","src":"5397:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5406:1:89","nodeType":"YulLiteral","src":"5406:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5409:1:89","nodeType":"YulLiteral","src":"5409:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5399:6:89","nodeType":"YulIdentifier","src":"5399:6:89"},"nativeSrc":"5399:12:89","nodeType":"YulFunctionCall","src":"5399:12:89"},"nativeSrc":"5399:12:89","nodeType":"YulExpressionStatement","src":"5399:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5376:2:89","nodeType":"YulIdentifier","src":"5376:2:89"},{"kind":"number","nativeSrc":"5380:4:89","nodeType":"YulLiteral","src":"5380:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5372:3:89","nodeType":"YulIdentifier","src":"5372:3:89"},"nativeSrc":"5372:13:89","nodeType":"YulFunctionCall","src":"5372:13:89"},{"name":"dataEnd","nativeSrc":"5387:7:89","nodeType":"YulIdentifier","src":"5387:7:89"}],"functionName":{"name":"slt","nativeSrc":"5368:3:89","nodeType":"YulIdentifier","src":"5368:3:89"},"nativeSrc":"5368:27:89","nodeType":"YulFunctionCall","src":"5368:27:89"}],"functionName":{"name":"iszero","nativeSrc":"5361:6:89","nodeType":"YulIdentifier","src":"5361:6:89"},"nativeSrc":"5361:35:89","nodeType":"YulFunctionCall","src":"5361:35:89"},"nativeSrc":"5358:55:89","nodeType":"YulIf","src":"5358:55:89"},{"nativeSrc":"5422:30:89","nodeType":"YulVariableDeclaration","src":"5422:30:89","value":{"arguments":[{"name":"_1","nativeSrc":"5449:2:89","nodeType":"YulIdentifier","src":"5449:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"5436:12:89","nodeType":"YulIdentifier","src":"5436:12:89"},"nativeSrc":"5436:16:89","nodeType":"YulFunctionCall","src":"5436:16:89"},"variables":[{"name":"length","nativeSrc":"5426:6:89","nodeType":"YulTypedName","src":"5426:6:89","type":""}]},{"body":{"nativeSrc":"5495:22:89","nodeType":"YulBlock","src":"5495:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5497:16:89","nodeType":"YulIdentifier","src":"5497:16:89"},"nativeSrc":"5497:18:89","nodeType":"YulFunctionCall","src":"5497:18:89"},"nativeSrc":"5497:18:89","nodeType":"YulExpressionStatement","src":"5497:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5467:6:89","nodeType":"YulIdentifier","src":"5467:6:89"},{"kind":"number","nativeSrc":"5475:18:89","nodeType":"YulLiteral","src":"5475:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5464:2:89","nodeType":"YulIdentifier","src":"5464:2:89"},"nativeSrc":"5464:30:89","nodeType":"YulFunctionCall","src":"5464:30:89"},"nativeSrc":"5461:56:89","nodeType":"YulIf","src":"5461:56:89"},{"nativeSrc":"5526:51:89","nodeType":"YulVariableDeclaration","src":"5526:51:89","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5561:1:89","nodeType":"YulLiteral","src":"5561:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"5564:6:89","nodeType":"YulIdentifier","src":"5564:6:89"}],"functionName":{"name":"shl","nativeSrc":"5557:3:89","nodeType":"YulIdentifier","src":"5557:3:89"},"nativeSrc":"5557:14:89","nodeType":"YulFunctionCall","src":"5557:14:89"},{"kind":"number","nativeSrc":"5573:2:89","nodeType":"YulLiteral","src":"5573:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5553:3:89","nodeType":"YulIdentifier","src":"5553:3:89"},"nativeSrc":"5553:23:89","nodeType":"YulFunctionCall","src":"5553:23:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"5537:15:89","nodeType":"YulIdentifier","src":"5537:15:89"},"nativeSrc":"5537:40:89","nodeType":"YulFunctionCall","src":"5537:40:89"},"variables":[{"name":"dst","nativeSrc":"5530:3:89","nodeType":"YulTypedName","src":"5530:3:89","type":""}]},{"nativeSrc":"5586:16:89","nodeType":"YulVariableDeclaration","src":"5586:16:89","value":{"name":"dst","nativeSrc":"5599:3:89","nodeType":"YulIdentifier","src":"5599:3:89"},"variables":[{"name":"array","nativeSrc":"5590:5:89","nodeType":"YulTypedName","src":"5590:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"5618:3:89","nodeType":"YulIdentifier","src":"5618:3:89"},{"name":"length","nativeSrc":"5623:6:89","nodeType":"YulIdentifier","src":"5623:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5611:6:89","nodeType":"YulIdentifier","src":"5611:6:89"},"nativeSrc":"5611:19:89","nodeType":"YulFunctionCall","src":"5611:19:89"},"nativeSrc":"5611:19:89","nodeType":"YulExpressionStatement","src":"5611:19:89"},{"nativeSrc":"5639:19:89","nodeType":"YulAssignment","src":"5639:19:89","value":{"arguments":[{"name":"dst","nativeSrc":"5650:3:89","nodeType":"YulIdentifier","src":"5650:3:89"},{"kind":"number","nativeSrc":"5655:2:89","nodeType":"YulLiteral","src":"5655:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5646:3:89","nodeType":"YulIdentifier","src":"5646:3:89"},"nativeSrc":"5646:12:89","nodeType":"YulFunctionCall","src":"5646:12:89"},"variableNames":[{"name":"dst","nativeSrc":"5639:3:89","nodeType":"YulIdentifier","src":"5639:3:89"}]},{"nativeSrc":"5667:46:89","nodeType":"YulVariableDeclaration","src":"5667:46:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5689:2:89","nodeType":"YulIdentifier","src":"5689:2:89"},{"arguments":[{"kind":"number","nativeSrc":"5697:1:89","nodeType":"YulLiteral","src":"5697:1:89","type":"","value":"6"},{"name":"length","nativeSrc":"5700:6:89","nodeType":"YulIdentifier","src":"5700:6:89"}],"functionName":{"name":"shl","nativeSrc":"5693:3:89","nodeType":"YulIdentifier","src":"5693:3:89"},"nativeSrc":"5693:14:89","nodeType":"YulFunctionCall","src":"5693:14:89"}],"functionName":{"name":"add","nativeSrc":"5685:3:89","nodeType":"YulIdentifier","src":"5685:3:89"},"nativeSrc":"5685:23:89","nodeType":"YulFunctionCall","src":"5685:23:89"},{"kind":"number","nativeSrc":"5710:2:89","nodeType":"YulLiteral","src":"5710:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5681:3:89","nodeType":"YulIdentifier","src":"5681:3:89"},"nativeSrc":"5681:32:89","nodeType":"YulFunctionCall","src":"5681:32:89"},"variables":[{"name":"srcEnd","nativeSrc":"5671:6:89","nodeType":"YulTypedName","src":"5671:6:89","type":""}]},{"body":{"nativeSrc":"5745:16:89","nodeType":"YulBlock","src":"5745:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5754:1:89","nodeType":"YulLiteral","src":"5754:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5757:1:89","nodeType":"YulLiteral","src":"5757:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5747:6:89","nodeType":"YulIdentifier","src":"5747:6:89"},"nativeSrc":"5747:12:89","nodeType":"YulFunctionCall","src":"5747:12:89"},"nativeSrc":"5747:12:89","nodeType":"YulExpressionStatement","src":"5747:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"5728:6:89","nodeType":"YulIdentifier","src":"5728:6:89"},{"name":"dataEnd","nativeSrc":"5736:7:89","nodeType":"YulIdentifier","src":"5736:7:89"}],"functionName":{"name":"gt","nativeSrc":"5725:2:89","nodeType":"YulIdentifier","src":"5725:2:89"},"nativeSrc":"5725:19:89","nodeType":"YulFunctionCall","src":"5725:19:89"},"nativeSrc":"5722:39:89","nodeType":"YulIf","src":"5722:39:89"},{"nativeSrc":"5770:22:89","nodeType":"YulVariableDeclaration","src":"5770:22:89","value":{"arguments":[{"name":"_1","nativeSrc":"5785:2:89","nodeType":"YulIdentifier","src":"5785:2:89"},{"kind":"number","nativeSrc":"5789:2:89","nodeType":"YulLiteral","src":"5789:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5781:3:89","nodeType":"YulIdentifier","src":"5781:3:89"},"nativeSrc":"5781:11:89","nodeType":"YulFunctionCall","src":"5781:11:89"},"variables":[{"name":"src","nativeSrc":"5774:3:89","nodeType":"YulTypedName","src":"5774:3:89","type":""}]},{"body":{"nativeSrc":"5859:357:89","nodeType":"YulBlock","src":"5859:357:89","statements":[{"body":{"nativeSrc":"5905:16:89","nodeType":"YulBlock","src":"5905:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5914:1:89","nodeType":"YulLiteral","src":"5914:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5917:1:89","nodeType":"YulLiteral","src":"5917:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5907:6:89","nodeType":"YulIdentifier","src":"5907:6:89"},"nativeSrc":"5907:12:89","nodeType":"YulFunctionCall","src":"5907:12:89"},"nativeSrc":"5907:12:89","nodeType":"YulExpressionStatement","src":"5907:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5884:7:89","nodeType":"YulIdentifier","src":"5884:7:89"},{"name":"src","nativeSrc":"5893:3:89","nodeType":"YulIdentifier","src":"5893:3:89"}],"functionName":{"name":"sub","nativeSrc":"5880:3:89","nodeType":"YulIdentifier","src":"5880:3:89"},"nativeSrc":"5880:17:89","nodeType":"YulFunctionCall","src":"5880:17:89"},{"kind":"number","nativeSrc":"5899:4:89","nodeType":"YulLiteral","src":"5899:4:89","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"5876:3:89","nodeType":"YulIdentifier","src":"5876:3:89"},"nativeSrc":"5876:28:89","nodeType":"YulFunctionCall","src":"5876:28:89"},"nativeSrc":"5873:48:89","nodeType":"YulIf","src":"5873:48:89"},{"nativeSrc":"5934:35:89","nodeType":"YulVariableDeclaration","src":"5934:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_1758","nativeSrc":"5947:20:89","nodeType":"YulIdentifier","src":"5947:20:89"},"nativeSrc":"5947:22:89","nodeType":"YulFunctionCall","src":"5947:22:89"},"variables":[{"name":"value","nativeSrc":"5938:5:89","nodeType":"YulTypedName","src":"5938:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5989:5:89","nodeType":"YulIdentifier","src":"5989:5:89"},{"arguments":[{"name":"src","nativeSrc":"6015:3:89","nodeType":"YulIdentifier","src":"6015:3:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5996:18:89","nodeType":"YulIdentifier","src":"5996:18:89"},"nativeSrc":"5996:23:89","nodeType":"YulFunctionCall","src":"5996:23:89"}],"functionName":{"name":"mstore","nativeSrc":"5982:6:89","nodeType":"YulIdentifier","src":"5982:6:89"},"nativeSrc":"5982:38:89","nodeType":"YulFunctionCall","src":"5982:38:89"},"nativeSrc":"5982:38:89","nodeType":"YulExpressionStatement","src":"5982:38:89"},{"nativeSrc":"6033:16:89","nodeType":"YulVariableDeclaration","src":"6033:16:89","value":{"kind":"number","nativeSrc":"6048:1:89","nodeType":"YulLiteral","src":"6048:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"6037:7:89","nodeType":"YulTypedName","src":"6037:7:89","type":""}]},{"nativeSrc":"6062:37:89","nodeType":"YulAssignment","src":"6062:37:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6090:3:89","nodeType":"YulIdentifier","src":"6090:3:89"},{"kind":"number","nativeSrc":"6095:2:89","nodeType":"YulLiteral","src":"6095:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6086:3:89","nodeType":"YulIdentifier","src":"6086:3:89"},"nativeSrc":"6086:12:89","nodeType":"YulFunctionCall","src":"6086:12:89"}],"functionName":{"name":"calldataload","nativeSrc":"6073:12:89","nodeType":"YulIdentifier","src":"6073:12:89"},"nativeSrc":"6073:26:89","nodeType":"YulFunctionCall","src":"6073:26:89"},"variableNames":[{"name":"value_1","nativeSrc":"6062:7:89","nodeType":"YulIdentifier","src":"6062:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6123:5:89","nodeType":"YulIdentifier","src":"6123:5:89"},{"kind":"number","nativeSrc":"6130:2:89","nodeType":"YulLiteral","src":"6130:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6119:3:89","nodeType":"YulIdentifier","src":"6119:3:89"},"nativeSrc":"6119:14:89","nodeType":"YulFunctionCall","src":"6119:14:89"},{"name":"value_1","nativeSrc":"6135:7:89","nodeType":"YulIdentifier","src":"6135:7:89"}],"functionName":{"name":"mstore","nativeSrc":"6112:6:89","nodeType":"YulIdentifier","src":"6112:6:89"},"nativeSrc":"6112:31:89","nodeType":"YulFunctionCall","src":"6112:31:89"},"nativeSrc":"6112:31:89","nodeType":"YulExpressionStatement","src":"6112:31:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"6163:3:89","nodeType":"YulIdentifier","src":"6163:3:89"},{"name":"value","nativeSrc":"6168:5:89","nodeType":"YulIdentifier","src":"6168:5:89"}],"functionName":{"name":"mstore","nativeSrc":"6156:6:89","nodeType":"YulIdentifier","src":"6156:6:89"},"nativeSrc":"6156:18:89","nodeType":"YulFunctionCall","src":"6156:18:89"},"nativeSrc":"6156:18:89","nodeType":"YulExpressionStatement","src":"6156:18:89"},{"nativeSrc":"6187:19:89","nodeType":"YulAssignment","src":"6187:19:89","value":{"arguments":[{"name":"dst","nativeSrc":"6198:3:89","nodeType":"YulIdentifier","src":"6198:3:89"},{"kind":"number","nativeSrc":"6203:2:89","nodeType":"YulLiteral","src":"6203:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6194:3:89","nodeType":"YulIdentifier","src":"6194:3:89"},"nativeSrc":"6194:12:89","nodeType":"YulFunctionCall","src":"6194:12:89"},"variableNames":[{"name":"dst","nativeSrc":"6187:3:89","nodeType":"YulIdentifier","src":"6187:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"5812:3:89","nodeType":"YulIdentifier","src":"5812:3:89"},{"name":"srcEnd","nativeSrc":"5817:6:89","nodeType":"YulIdentifier","src":"5817:6:89"}],"functionName":{"name":"lt","nativeSrc":"5809:2:89","nodeType":"YulIdentifier","src":"5809:2:89"},"nativeSrc":"5809:15:89","nodeType":"YulFunctionCall","src":"5809:15:89"},"nativeSrc":"5801:415:89","nodeType":"YulForLoop","post":{"nativeSrc":"5825:25:89","nodeType":"YulBlock","src":"5825:25:89","statements":[{"nativeSrc":"5827:21:89","nodeType":"YulAssignment","src":"5827:21:89","value":{"arguments":[{"name":"src","nativeSrc":"5838:3:89","nodeType":"YulIdentifier","src":"5838:3:89"},{"kind":"number","nativeSrc":"5843:4:89","nodeType":"YulLiteral","src":"5843:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5834:3:89","nodeType":"YulIdentifier","src":"5834:3:89"},"nativeSrc":"5834:14:89","nodeType":"YulFunctionCall","src":"5834:14:89"},"variableNames":[{"name":"src","nativeSrc":"5827:3:89","nodeType":"YulIdentifier","src":"5827:3:89"}]}]},"pre":{"nativeSrc":"5805:3:89","nodeType":"YulBlock","src":"5805:3:89","statements":[]},"src":"5801:415:89"},{"nativeSrc":"6225:15:89","nodeType":"YulAssignment","src":"6225:15:89","value":{"name":"array","nativeSrc":"6235:5:89","nodeType":"YulIdentifier","src":"6235:5:89"},"variableNames":[{"name":"value0","nativeSrc":"6225:6:89","nodeType":"YulIdentifier","src":"6225:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","nativeSrc":"5016:1230:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5107:9:89","nodeType":"YulTypedName","src":"5107:9:89","type":""},{"name":"dataEnd","nativeSrc":"5118:7:89","nodeType":"YulTypedName","src":"5118:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5130:6:89","nodeType":"YulTypedName","src":"5130:6:89","type":""}],"src":"5016:1230:89"},{"body":{"nativeSrc":"6283:95:89","nodeType":"YulBlock","src":"6283:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6300:1:89","nodeType":"YulLiteral","src":"6300:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"6307:3:89","nodeType":"YulLiteral","src":"6307:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"6312:10:89","nodeType":"YulLiteral","src":"6312:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"6303:3:89","nodeType":"YulIdentifier","src":"6303:3:89"},"nativeSrc":"6303:20:89","nodeType":"YulFunctionCall","src":"6303:20:89"}],"functionName":{"name":"mstore","nativeSrc":"6293:6:89","nodeType":"YulIdentifier","src":"6293:6:89"},"nativeSrc":"6293:31:89","nodeType":"YulFunctionCall","src":"6293:31:89"},"nativeSrc":"6293:31:89","nodeType":"YulExpressionStatement","src":"6293:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6340:1:89","nodeType":"YulLiteral","src":"6340:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"6343:4:89","nodeType":"YulLiteral","src":"6343:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"6333:6:89","nodeType":"YulIdentifier","src":"6333:6:89"},"nativeSrc":"6333:15:89","nodeType":"YulFunctionCall","src":"6333:15:89"},"nativeSrc":"6333:15:89","nodeType":"YulExpressionStatement","src":"6333:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6364:1:89","nodeType":"YulLiteral","src":"6364:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6367:4:89","nodeType":"YulLiteral","src":"6367:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6357:6:89","nodeType":"YulIdentifier","src":"6357:6:89"},"nativeSrc":"6357:15:89","nodeType":"YulFunctionCall","src":"6357:15:89"},"nativeSrc":"6357:15:89","nodeType":"YulExpressionStatement","src":"6357:15:89"}]},"name":"panic_error_0x32","nativeSrc":"6251:127:89","nodeType":"YulFunctionDefinition","src":"6251:127:89"},{"body":{"nativeSrc":"6512:145:89","nodeType":"YulBlock","src":"6512:145:89","statements":[{"nativeSrc":"6522:26:89","nodeType":"YulAssignment","src":"6522:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6534:9:89","nodeType":"YulIdentifier","src":"6534:9:89"},{"kind":"number","nativeSrc":"6545:2:89","nodeType":"YulLiteral","src":"6545:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6530:3:89","nodeType":"YulIdentifier","src":"6530:3:89"},"nativeSrc":"6530:18:89","nodeType":"YulFunctionCall","src":"6530:18:89"},"variableNames":[{"name":"tail","nativeSrc":"6522:4:89","nodeType":"YulIdentifier","src":"6522:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6564:9:89","nodeType":"YulIdentifier","src":"6564:9:89"},{"arguments":[{"name":"value0","nativeSrc":"6579:6:89","nodeType":"YulIdentifier","src":"6579:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6595:3:89","nodeType":"YulLiteral","src":"6595:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"6600:1:89","nodeType":"YulLiteral","src":"6600:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6591:3:89","nodeType":"YulIdentifier","src":"6591:3:89"},"nativeSrc":"6591:11:89","nodeType":"YulFunctionCall","src":"6591:11:89"},{"kind":"number","nativeSrc":"6604:1:89","nodeType":"YulLiteral","src":"6604:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6587:3:89","nodeType":"YulIdentifier","src":"6587:3:89"},"nativeSrc":"6587:19:89","nodeType":"YulFunctionCall","src":"6587:19:89"}],"functionName":{"name":"and","nativeSrc":"6575:3:89","nodeType":"YulIdentifier","src":"6575:3:89"},"nativeSrc":"6575:32:89","nodeType":"YulFunctionCall","src":"6575:32:89"}],"functionName":{"name":"mstore","nativeSrc":"6557:6:89","nodeType":"YulIdentifier","src":"6557:6:89"},"nativeSrc":"6557:51:89","nodeType":"YulFunctionCall","src":"6557:51:89"},"nativeSrc":"6557:51:89","nodeType":"YulExpressionStatement","src":"6557:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6628:9:89","nodeType":"YulIdentifier","src":"6628:9:89"},{"kind":"number","nativeSrc":"6639:2:89","nodeType":"YulLiteral","src":"6639:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6624:3:89","nodeType":"YulIdentifier","src":"6624:3:89"},"nativeSrc":"6624:18:89","nodeType":"YulFunctionCall","src":"6624:18:89"},{"name":"value1","nativeSrc":"6644:6:89","nodeType":"YulIdentifier","src":"6644:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6617:6:89","nodeType":"YulIdentifier","src":"6617:6:89"},"nativeSrc":"6617:34:89","nodeType":"YulFunctionCall","src":"6617:34:89"},"nativeSrc":"6617:34:89","nodeType":"YulExpressionStatement","src":"6617:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"6383:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6473:9:89","nodeType":"YulTypedName","src":"6473:9:89","type":""},{"name":"value1","nativeSrc":"6484:6:89","nodeType":"YulTypedName","src":"6484:6:89","type":""},{"name":"value0","nativeSrc":"6492:6:89","nodeType":"YulTypedName","src":"6492:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6503:4:89","nodeType":"YulTypedName","src":"6503:4:89","type":""}],"src":"6383:274:89"},{"body":{"nativeSrc":"6740:199:89","nodeType":"YulBlock","src":"6740:199:89","statements":[{"body":{"nativeSrc":"6786:16:89","nodeType":"YulBlock","src":"6786:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6795:1:89","nodeType":"YulLiteral","src":"6795:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6798:1:89","nodeType":"YulLiteral","src":"6798:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6788:6:89","nodeType":"YulIdentifier","src":"6788:6:89"},"nativeSrc":"6788:12:89","nodeType":"YulFunctionCall","src":"6788:12:89"},"nativeSrc":"6788:12:89","nodeType":"YulExpressionStatement","src":"6788:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6761:7:89","nodeType":"YulIdentifier","src":"6761:7:89"},{"name":"headStart","nativeSrc":"6770:9:89","nodeType":"YulIdentifier","src":"6770:9:89"}],"functionName":{"name":"sub","nativeSrc":"6757:3:89","nodeType":"YulIdentifier","src":"6757:3:89"},"nativeSrc":"6757:23:89","nodeType":"YulFunctionCall","src":"6757:23:89"},{"kind":"number","nativeSrc":"6782:2:89","nodeType":"YulLiteral","src":"6782:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6753:3:89","nodeType":"YulIdentifier","src":"6753:3:89"},"nativeSrc":"6753:32:89","nodeType":"YulFunctionCall","src":"6753:32:89"},"nativeSrc":"6750:52:89","nodeType":"YulIf","src":"6750:52:89"},{"nativeSrc":"6811:29:89","nodeType":"YulVariableDeclaration","src":"6811:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6830:9:89","nodeType":"YulIdentifier","src":"6830:9:89"}],"functionName":{"name":"mload","nativeSrc":"6824:5:89","nodeType":"YulIdentifier","src":"6824:5:89"},"nativeSrc":"6824:16:89","nodeType":"YulFunctionCall","src":"6824:16:89"},"variables":[{"name":"value","nativeSrc":"6815:5:89","nodeType":"YulTypedName","src":"6815:5:89","type":""}]},{"body":{"nativeSrc":"6893:16:89","nodeType":"YulBlock","src":"6893:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6902:1:89","nodeType":"YulLiteral","src":"6902:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6905:1:89","nodeType":"YulLiteral","src":"6905:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6895:6:89","nodeType":"YulIdentifier","src":"6895:6:89"},"nativeSrc":"6895:12:89","nodeType":"YulFunctionCall","src":"6895:12:89"},"nativeSrc":"6895:12:89","nodeType":"YulExpressionStatement","src":"6895:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6862:5:89","nodeType":"YulIdentifier","src":"6862:5:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6883:5:89","nodeType":"YulIdentifier","src":"6883:5:89"}],"functionName":{"name":"iszero","nativeSrc":"6876:6:89","nodeType":"YulIdentifier","src":"6876:6:89"},"nativeSrc":"6876:13:89","nodeType":"YulFunctionCall","src":"6876:13:89"}],"functionName":{"name":"iszero","nativeSrc":"6869:6:89","nodeType":"YulIdentifier","src":"6869:6:89"},"nativeSrc":"6869:21:89","nodeType":"YulFunctionCall","src":"6869:21:89"}],"functionName":{"name":"eq","nativeSrc":"6859:2:89","nodeType":"YulIdentifier","src":"6859:2:89"},"nativeSrc":"6859:32:89","nodeType":"YulFunctionCall","src":"6859:32:89"}],"functionName":{"name":"iszero","nativeSrc":"6852:6:89","nodeType":"YulIdentifier","src":"6852:6:89"},"nativeSrc":"6852:40:89","nodeType":"YulFunctionCall","src":"6852:40:89"},"nativeSrc":"6849:60:89","nodeType":"YulIf","src":"6849:60:89"},{"nativeSrc":"6918:15:89","nodeType":"YulAssignment","src":"6918:15:89","value":{"name":"value","nativeSrc":"6928:5:89","nodeType":"YulIdentifier","src":"6928:5:89"},"variableNames":[{"name":"value0","nativeSrc":"6918:6:89","nodeType":"YulIdentifier","src":"6918:6:89"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"6662:277:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6706:9:89","nodeType":"YulTypedName","src":"6706:9:89","type":""},{"name":"dataEnd","nativeSrc":"6717:7:89","nodeType":"YulTypedName","src":"6717:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6729:6:89","nodeType":"YulTypedName","src":"6729:6:89","type":""}],"src":"6662:277:89"},{"body":{"nativeSrc":"6992:59:89","nodeType":"YulBlock","src":"6992:59:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7009:3:89","nodeType":"YulIdentifier","src":"7009:3:89"},{"arguments":[{"name":"value","nativeSrc":"7018:5:89","nodeType":"YulIdentifier","src":"7018:5:89"},{"kind":"number","nativeSrc":"7025:18:89","nodeType":"YulLiteral","src":"7025:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7014:3:89","nodeType":"YulIdentifier","src":"7014:3:89"},"nativeSrc":"7014:30:89","nodeType":"YulFunctionCall","src":"7014:30:89"}],"functionName":{"name":"mstore","nativeSrc":"7002:6:89","nodeType":"YulIdentifier","src":"7002:6:89"},"nativeSrc":"7002:43:89","nodeType":"YulFunctionCall","src":"7002:43:89"},"nativeSrc":"7002:43:89","nodeType":"YulExpressionStatement","src":"7002:43:89"}]},"name":"abi_encode_rational_by","nativeSrc":"6944:107:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6976:5:89","nodeType":"YulTypedName","src":"6976:5:89","type":""},{"name":"pos","nativeSrc":"6983:3:89","nodeType":"YulTypedName","src":"6983:3:89","type":""}],"src":"6944:107:89"},{"body":{"nativeSrc":"7164:101:89","nodeType":"YulBlock","src":"7164:101:89","statements":[{"nativeSrc":"7174:26:89","nodeType":"YulAssignment","src":"7174:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7186:9:89","nodeType":"YulIdentifier","src":"7186:9:89"},{"kind":"number","nativeSrc":"7197:2:89","nodeType":"YulLiteral","src":"7197:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7182:3:89","nodeType":"YulIdentifier","src":"7182:3:89"},"nativeSrc":"7182:18:89","nodeType":"YulFunctionCall","src":"7182:18:89"},"variableNames":[{"name":"tail","nativeSrc":"7174:4:89","nodeType":"YulIdentifier","src":"7174:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7216:9:89","nodeType":"YulIdentifier","src":"7216:9:89"},{"arguments":[{"name":"value0","nativeSrc":"7231:6:89","nodeType":"YulIdentifier","src":"7231:6:89"},{"kind":"number","nativeSrc":"7239:18:89","nodeType":"YulLiteral","src":"7239:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7227:3:89","nodeType":"YulIdentifier","src":"7227:3:89"},"nativeSrc":"7227:31:89","nodeType":"YulFunctionCall","src":"7227:31:89"}],"functionName":{"name":"mstore","nativeSrc":"7209:6:89","nodeType":"YulIdentifier","src":"7209:6:89"},"nativeSrc":"7209:50:89","nodeType":"YulFunctionCall","src":"7209:50:89"},"nativeSrc":"7209:50:89","nodeType":"YulExpressionStatement","src":"7209:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"7056:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7133:9:89","nodeType":"YulTypedName","src":"7133:9:89","type":""},{"name":"value0","nativeSrc":"7144:6:89","nodeType":"YulTypedName","src":"7144:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7155:4:89","nodeType":"YulTypedName","src":"7155:4:89","type":""}],"src":"7056:209:89"},{"body":{"nativeSrc":"7370:1089:89","nodeType":"YulBlock","src":"7370:1089:89","statements":[{"body":{"nativeSrc":"7416:16:89","nodeType":"YulBlock","src":"7416:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7425:1:89","nodeType":"YulLiteral","src":"7425:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7428:1:89","nodeType":"YulLiteral","src":"7428:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7418:6:89","nodeType":"YulIdentifier","src":"7418:6:89"},"nativeSrc":"7418:12:89","nodeType":"YulFunctionCall","src":"7418:12:89"},"nativeSrc":"7418:12:89","nodeType":"YulExpressionStatement","src":"7418:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7391:7:89","nodeType":"YulIdentifier","src":"7391:7:89"},{"name":"headStart","nativeSrc":"7400:9:89","nodeType":"YulIdentifier","src":"7400:9:89"}],"functionName":{"name":"sub","nativeSrc":"7387:3:89","nodeType":"YulIdentifier","src":"7387:3:89"},"nativeSrc":"7387:23:89","nodeType":"YulFunctionCall","src":"7387:23:89"},{"kind":"number","nativeSrc":"7412:2:89","nodeType":"YulLiteral","src":"7412:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7383:3:89","nodeType":"YulIdentifier","src":"7383:3:89"},"nativeSrc":"7383:32:89","nodeType":"YulFunctionCall","src":"7383:32:89"},"nativeSrc":"7380:52:89","nodeType":"YulIf","src":"7380:52:89"},{"nativeSrc":"7441:37:89","nodeType":"YulVariableDeclaration","src":"7441:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7468:9:89","nodeType":"YulIdentifier","src":"7468:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"7455:12:89","nodeType":"YulIdentifier","src":"7455:12:89"},"nativeSrc":"7455:23:89","nodeType":"YulFunctionCall","src":"7455:23:89"},"variables":[{"name":"offset","nativeSrc":"7445:6:89","nodeType":"YulTypedName","src":"7445:6:89","type":""}]},{"body":{"nativeSrc":"7521:16:89","nodeType":"YulBlock","src":"7521:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7530:1:89","nodeType":"YulLiteral","src":"7530:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7533:1:89","nodeType":"YulLiteral","src":"7533:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7523:6:89","nodeType":"YulIdentifier","src":"7523:6:89"},"nativeSrc":"7523:12:89","nodeType":"YulFunctionCall","src":"7523:12:89"},"nativeSrc":"7523:12:89","nodeType":"YulExpressionStatement","src":"7523:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7493:6:89","nodeType":"YulIdentifier","src":"7493:6:89"},{"kind":"number","nativeSrc":"7501:18:89","nodeType":"YulLiteral","src":"7501:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7490:2:89","nodeType":"YulIdentifier","src":"7490:2:89"},"nativeSrc":"7490:30:89","nodeType":"YulFunctionCall","src":"7490:30:89"},"nativeSrc":"7487:50:89","nodeType":"YulIf","src":"7487:50:89"},{"nativeSrc":"7546:32:89","nodeType":"YulVariableDeclaration","src":"7546:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7560:9:89","nodeType":"YulIdentifier","src":"7560:9:89"},{"name":"offset","nativeSrc":"7571:6:89","nodeType":"YulIdentifier","src":"7571:6:89"}],"functionName":{"name":"add","nativeSrc":"7556:3:89","nodeType":"YulIdentifier","src":"7556:3:89"},"nativeSrc":"7556:22:89","nodeType":"YulFunctionCall","src":"7556:22:89"},"variables":[{"name":"_1","nativeSrc":"7550:2:89","nodeType":"YulTypedName","src":"7550:2:89","type":""}]},{"body":{"nativeSrc":"7618:16:89","nodeType":"YulBlock","src":"7618:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7627:1:89","nodeType":"YulLiteral","src":"7627:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7630:1:89","nodeType":"YulLiteral","src":"7630:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7620:6:89","nodeType":"YulIdentifier","src":"7620:6:89"},"nativeSrc":"7620:12:89","nodeType":"YulFunctionCall","src":"7620:12:89"},"nativeSrc":"7620:12:89","nodeType":"YulExpressionStatement","src":"7620:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7598:7:89","nodeType":"YulIdentifier","src":"7598:7:89"},{"name":"_1","nativeSrc":"7607:2:89","nodeType":"YulIdentifier","src":"7607:2:89"}],"functionName":{"name":"sub","nativeSrc":"7594:3:89","nodeType":"YulIdentifier","src":"7594:3:89"},"nativeSrc":"7594:16:89","nodeType":"YulFunctionCall","src":"7594:16:89"},{"kind":"number","nativeSrc":"7612:4:89","nodeType":"YulLiteral","src":"7612:4:89","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"7590:3:89","nodeType":"YulIdentifier","src":"7590:3:89"},"nativeSrc":"7590:27:89","nodeType":"YulFunctionCall","src":"7590:27:89"},"nativeSrc":"7587:47:89","nodeType":"YulIf","src":"7587:47:89"},{"nativeSrc":"7643:35:89","nodeType":"YulVariableDeclaration","src":"7643:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_1760","nativeSrc":"7656:20:89","nodeType":"YulIdentifier","src":"7656:20:89"},"nativeSrc":"7656:22:89","nodeType":"YulFunctionCall","src":"7656:22:89"},"variables":[{"name":"value","nativeSrc":"7647:5:89","nodeType":"YulTypedName","src":"7647:5:89","type":""}]},{"nativeSrc":"7687:31:89","nodeType":"YulVariableDeclaration","src":"7687:31:89","value":{"arguments":[{"name":"_1","nativeSrc":"7715:2:89","nodeType":"YulIdentifier","src":"7715:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"7702:12:89","nodeType":"YulIdentifier","src":"7702:12:89"},"nativeSrc":"7702:16:89","nodeType":"YulFunctionCall","src":"7702:16:89"},"variables":[{"name":"value_1","nativeSrc":"7691:7:89","nodeType":"YulTypedName","src":"7691:7:89","type":""}]},{"body":{"nativeSrc":"7784:16:89","nodeType":"YulBlock","src":"7784:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7793:1:89","nodeType":"YulLiteral","src":"7793:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7796:1:89","nodeType":"YulLiteral","src":"7796:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7786:6:89","nodeType":"YulIdentifier","src":"7786:6:89"},"nativeSrc":"7786:12:89","nodeType":"YulFunctionCall","src":"7786:12:89"},"nativeSrc":"7786:12:89","nodeType":"YulExpressionStatement","src":"7786:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"7740:7:89","nodeType":"YulIdentifier","src":"7740:7:89"},{"arguments":[{"name":"value_1","nativeSrc":"7753:7:89","nodeType":"YulIdentifier","src":"7753:7:89"},{"kind":"number","nativeSrc":"7762:18:89","nodeType":"YulLiteral","src":"7762:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7749:3:89","nodeType":"YulIdentifier","src":"7749:3:89"},"nativeSrc":"7749:32:89","nodeType":"YulFunctionCall","src":"7749:32:89"}],"functionName":{"name":"eq","nativeSrc":"7737:2:89","nodeType":"YulIdentifier","src":"7737:2:89"},"nativeSrc":"7737:45:89","nodeType":"YulFunctionCall","src":"7737:45:89"}],"functionName":{"name":"iszero","nativeSrc":"7730:6:89","nodeType":"YulIdentifier","src":"7730:6:89"},"nativeSrc":"7730:53:89","nodeType":"YulFunctionCall","src":"7730:53:89"},"nativeSrc":"7727:73:89","nodeType":"YulIf","src":"7727:73:89"},{"expression":{"arguments":[{"name":"value","nativeSrc":"7816:5:89","nodeType":"YulIdentifier","src":"7816:5:89"},{"name":"value_1","nativeSrc":"7823:7:89","nodeType":"YulIdentifier","src":"7823:7:89"}],"functionName":{"name":"mstore","nativeSrc":"7809:6:89","nodeType":"YulIdentifier","src":"7809:6:89"},"nativeSrc":"7809:22:89","nodeType":"YulFunctionCall","src":"7809:22:89"},"nativeSrc":"7809:22:89","nodeType":"YulExpressionStatement","src":"7809:22:89"},{"nativeSrc":"7840:16:89","nodeType":"YulVariableDeclaration","src":"7840:16:89","value":{"kind":"number","nativeSrc":"7855:1:89","nodeType":"YulLiteral","src":"7855:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"7844:7:89","nodeType":"YulTypedName","src":"7844:7:89","type":""}]},{"nativeSrc":"7865:36:89","nodeType":"YulAssignment","src":"7865:36:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"7893:2:89","nodeType":"YulIdentifier","src":"7893:2:89"},{"kind":"number","nativeSrc":"7897:2:89","nodeType":"YulLiteral","src":"7897:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7889:3:89","nodeType":"YulIdentifier","src":"7889:3:89"},"nativeSrc":"7889:11:89","nodeType":"YulFunctionCall","src":"7889:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"7876:12:89","nodeType":"YulIdentifier","src":"7876:12:89"},"nativeSrc":"7876:25:89","nodeType":"YulFunctionCall","src":"7876:25:89"},"variableNames":[{"name":"value_2","nativeSrc":"7865:7:89","nodeType":"YulIdentifier","src":"7865:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7921:5:89","nodeType":"YulIdentifier","src":"7921:5:89"},{"kind":"number","nativeSrc":"7928:2:89","nodeType":"YulLiteral","src":"7928:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7917:3:89","nodeType":"YulIdentifier","src":"7917:3:89"},"nativeSrc":"7917:14:89","nodeType":"YulFunctionCall","src":"7917:14:89"},{"name":"value_2","nativeSrc":"7933:7:89","nodeType":"YulIdentifier","src":"7933:7:89"}],"functionName":{"name":"mstore","nativeSrc":"7910:6:89","nodeType":"YulIdentifier","src":"7910:6:89"},"nativeSrc":"7910:31:89","nodeType":"YulFunctionCall","src":"7910:31:89"},"nativeSrc":"7910:31:89","nodeType":"YulExpressionStatement","src":"7910:31:89"},{"nativeSrc":"7950:16:89","nodeType":"YulVariableDeclaration","src":"7950:16:89","value":{"kind":"number","nativeSrc":"7965:1:89","nodeType":"YulLiteral","src":"7965:1:89","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"7954:7:89","nodeType":"YulTypedName","src":"7954:7:89","type":""}]},{"nativeSrc":"7975:36:89","nodeType":"YulAssignment","src":"7975:36:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"8003:2:89","nodeType":"YulIdentifier","src":"8003:2:89"},{"kind":"number","nativeSrc":"8007:2:89","nodeType":"YulLiteral","src":"8007:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7999:3:89","nodeType":"YulIdentifier","src":"7999:3:89"},"nativeSrc":"7999:11:89","nodeType":"YulFunctionCall","src":"7999:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"7986:12:89","nodeType":"YulIdentifier","src":"7986:12:89"},"nativeSrc":"7986:25:89","nodeType":"YulFunctionCall","src":"7986:25:89"},"variableNames":[{"name":"value_3","nativeSrc":"7975:7:89","nodeType":"YulIdentifier","src":"7975:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8031:5:89","nodeType":"YulIdentifier","src":"8031:5:89"},{"kind":"number","nativeSrc":"8038:2:89","nodeType":"YulLiteral","src":"8038:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8027:3:89","nodeType":"YulIdentifier","src":"8027:3:89"},"nativeSrc":"8027:14:89","nodeType":"YulFunctionCall","src":"8027:14:89"},{"name":"value_3","nativeSrc":"8043:7:89","nodeType":"YulIdentifier","src":"8043:7:89"}],"functionName":{"name":"mstore","nativeSrc":"8020:6:89","nodeType":"YulIdentifier","src":"8020:6:89"},"nativeSrc":"8020:31:89","nodeType":"YulFunctionCall","src":"8020:31:89"},"nativeSrc":"8020:31:89","nodeType":"YulExpressionStatement","src":"8020:31:89"},{"nativeSrc":"8060:41:89","nodeType":"YulVariableDeclaration","src":"8060:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"8093:2:89","nodeType":"YulIdentifier","src":"8093:2:89"},{"kind":"number","nativeSrc":"8097:2:89","nodeType":"YulLiteral","src":"8097:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8089:3:89","nodeType":"YulIdentifier","src":"8089:3:89"},"nativeSrc":"8089:11:89","nodeType":"YulFunctionCall","src":"8089:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"8076:12:89","nodeType":"YulIdentifier","src":"8076:12:89"},"nativeSrc":"8076:25:89","nodeType":"YulFunctionCall","src":"8076:25:89"},"variables":[{"name":"offset_1","nativeSrc":"8064:8:89","nodeType":"YulTypedName","src":"8064:8:89","type":""}]},{"body":{"nativeSrc":"8146:16:89","nodeType":"YulBlock","src":"8146:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8155:1:89","nodeType":"YulLiteral","src":"8155:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8158:1:89","nodeType":"YulLiteral","src":"8158:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8148:6:89","nodeType":"YulIdentifier","src":"8148:6:89"},"nativeSrc":"8148:12:89","nodeType":"YulFunctionCall","src":"8148:12:89"},"nativeSrc":"8148:12:89","nodeType":"YulExpressionStatement","src":"8148:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"8116:8:89","nodeType":"YulIdentifier","src":"8116:8:89"},{"kind":"number","nativeSrc":"8126:18:89","nodeType":"YulLiteral","src":"8126:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8113:2:89","nodeType":"YulIdentifier","src":"8113:2:89"},"nativeSrc":"8113:32:89","nodeType":"YulFunctionCall","src":"8113:32:89"},"nativeSrc":"8110:52:89","nodeType":"YulIf","src":"8110:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8182:5:89","nodeType":"YulIdentifier","src":"8182:5:89"},{"kind":"number","nativeSrc":"8189:2:89","nodeType":"YulLiteral","src":"8189:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8178:3:89","nodeType":"YulIdentifier","src":"8178:3:89"},"nativeSrc":"8178:14:89","nodeType":"YulFunctionCall","src":"8178:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"8215:2:89","nodeType":"YulIdentifier","src":"8215:2:89"},{"name":"offset_1","nativeSrc":"8219:8:89","nodeType":"YulIdentifier","src":"8219:8:89"}],"functionName":{"name":"add","nativeSrc":"8211:3:89","nodeType":"YulIdentifier","src":"8211:3:89"},"nativeSrc":"8211:17:89","nodeType":"YulFunctionCall","src":"8211:17:89"},{"name":"dataEnd","nativeSrc":"8230:7:89","nodeType":"YulIdentifier","src":"8230:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"8194:16:89","nodeType":"YulIdentifier","src":"8194:16:89"},"nativeSrc":"8194:44:89","nodeType":"YulFunctionCall","src":"8194:44:89"}],"functionName":{"name":"mstore","nativeSrc":"8171:6:89","nodeType":"YulIdentifier","src":"8171:6:89"},"nativeSrc":"8171:68:89","nodeType":"YulFunctionCall","src":"8171:68:89"},"nativeSrc":"8171:68:89","nodeType":"YulExpressionStatement","src":"8171:68:89"},{"nativeSrc":"8248:42:89","nodeType":"YulVariableDeclaration","src":"8248:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"8281:2:89","nodeType":"YulIdentifier","src":"8281:2:89"},{"kind":"number","nativeSrc":"8285:3:89","nodeType":"YulLiteral","src":"8285:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8277:3:89","nodeType":"YulIdentifier","src":"8277:3:89"},"nativeSrc":"8277:12:89","nodeType":"YulFunctionCall","src":"8277:12:89"}],"functionName":{"name":"calldataload","nativeSrc":"8264:12:89","nodeType":"YulIdentifier","src":"8264:12:89"},"nativeSrc":"8264:26:89","nodeType":"YulFunctionCall","src":"8264:26:89"},"variables":[{"name":"offset_2","nativeSrc":"8252:8:89","nodeType":"YulTypedName","src":"8252:8:89","type":""}]},{"body":{"nativeSrc":"8335:16:89","nodeType":"YulBlock","src":"8335:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8344:1:89","nodeType":"YulLiteral","src":"8344:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8347:1:89","nodeType":"YulLiteral","src":"8347:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8337:6:89","nodeType":"YulIdentifier","src":"8337:6:89"},"nativeSrc":"8337:12:89","nodeType":"YulFunctionCall","src":"8337:12:89"},"nativeSrc":"8337:12:89","nodeType":"YulExpressionStatement","src":"8337:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"8305:8:89","nodeType":"YulIdentifier","src":"8305:8:89"},{"kind":"number","nativeSrc":"8315:18:89","nodeType":"YulLiteral","src":"8315:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8302:2:89","nodeType":"YulIdentifier","src":"8302:2:89"},"nativeSrc":"8302:32:89","nodeType":"YulFunctionCall","src":"8302:32:89"},"nativeSrc":"8299:52:89","nodeType":"YulIf","src":"8299:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8371:5:89","nodeType":"YulIdentifier","src":"8371:5:89"},{"kind":"number","nativeSrc":"8378:3:89","nodeType":"YulLiteral","src":"8378:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8367:3:89","nodeType":"YulIdentifier","src":"8367:3:89"},"nativeSrc":"8367:15:89","nodeType":"YulFunctionCall","src":"8367:15:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"8405:2:89","nodeType":"YulIdentifier","src":"8405:2:89"},{"name":"offset_2","nativeSrc":"8409:8:89","nodeType":"YulIdentifier","src":"8409:8:89"}],"functionName":{"name":"add","nativeSrc":"8401:3:89","nodeType":"YulIdentifier","src":"8401:3:89"},"nativeSrc":"8401:17:89","nodeType":"YulFunctionCall","src":"8401:17:89"},{"name":"dataEnd","nativeSrc":"8420:7:89","nodeType":"YulIdentifier","src":"8420:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"8384:16:89","nodeType":"YulIdentifier","src":"8384:16:89"},"nativeSrc":"8384:44:89","nodeType":"YulFunctionCall","src":"8384:44:89"}],"functionName":{"name":"mstore","nativeSrc":"8360:6:89","nodeType":"YulIdentifier","src":"8360:6:89"},"nativeSrc":"8360:69:89","nodeType":"YulFunctionCall","src":"8360:69:89"},"nativeSrc":"8360:69:89","nodeType":"YulExpressionStatement","src":"8360:69:89"},{"nativeSrc":"8438:15:89","nodeType":"YulAssignment","src":"8438:15:89","value":{"name":"value","nativeSrc":"8448:5:89","nodeType":"YulIdentifier","src":"8448:5:89"},"variableNames":[{"name":"value0","nativeSrc":"8438:6:89","nodeType":"YulIdentifier","src":"8438:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr","nativeSrc":"7270:1189:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7336:9:89","nodeType":"YulTypedName","src":"7336:9:89","type":""},{"name":"dataEnd","nativeSrc":"7347:7:89","nodeType":"YulTypedName","src":"7347:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7359:6:89","nodeType":"YulTypedName","src":"7359:6:89","type":""}],"src":"7270:1189:89"},{"body":{"nativeSrc":"8524:519:89","nodeType":"YulBlock","src":"8524:519:89","statements":[{"nativeSrc":"8534:16:89","nodeType":"YulVariableDeclaration","src":"8534:16:89","value":{"name":"pos","nativeSrc":"8547:3:89","nodeType":"YulIdentifier","src":"8547:3:89"},"variables":[{"name":"pos_1","nativeSrc":"8538:5:89","nodeType":"YulTypedName","src":"8538:5:89","type":""}]},{"nativeSrc":"8559:26:89","nodeType":"YulVariableDeclaration","src":"8559:26:89","value":{"arguments":[{"name":"value","nativeSrc":"8579:5:89","nodeType":"YulIdentifier","src":"8579:5:89"}],"functionName":{"name":"mload","nativeSrc":"8573:5:89","nodeType":"YulIdentifier","src":"8573:5:89"},"nativeSrc":"8573:12:89","nodeType":"YulFunctionCall","src":"8573:12:89"},"variables":[{"name":"length","nativeSrc":"8563:6:89","nodeType":"YulTypedName","src":"8563:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8601:3:89","nodeType":"YulIdentifier","src":"8601:3:89"},{"name":"length","nativeSrc":"8606:6:89","nodeType":"YulIdentifier","src":"8606:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8594:6:89","nodeType":"YulIdentifier","src":"8594:6:89"},"nativeSrc":"8594:19:89","nodeType":"YulFunctionCall","src":"8594:19:89"},"nativeSrc":"8594:19:89","nodeType":"YulExpressionStatement","src":"8594:19:89"},{"nativeSrc":"8622:21:89","nodeType":"YulAssignment","src":"8622:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"8633:3:89","nodeType":"YulIdentifier","src":"8633:3:89"},{"kind":"number","nativeSrc":"8638:4:89","nodeType":"YulLiteral","src":"8638:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8629:3:89","nodeType":"YulIdentifier","src":"8629:3:89"},"nativeSrc":"8629:14:89","nodeType":"YulFunctionCall","src":"8629:14:89"},"variableNames":[{"name":"pos","nativeSrc":"8622:3:89","nodeType":"YulIdentifier","src":"8622:3:89"}]},{"nativeSrc":"8652:49:89","nodeType":"YulVariableDeclaration","src":"8652:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"8672:5:89","nodeType":"YulIdentifier","src":"8672:5:89"},{"arguments":[{"kind":"number","nativeSrc":"8683:1:89","nodeType":"YulLiteral","src":"8683:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"8686:6:89","nodeType":"YulIdentifier","src":"8686:6:89"}],"functionName":{"name":"shl","nativeSrc":"8679:3:89","nodeType":"YulIdentifier","src":"8679:3:89"},"nativeSrc":"8679:14:89","nodeType":"YulFunctionCall","src":"8679:14:89"}],"functionName":{"name":"add","nativeSrc":"8668:3:89","nodeType":"YulIdentifier","src":"8668:3:89"},"nativeSrc":"8668:26:89","nodeType":"YulFunctionCall","src":"8668:26:89"},{"kind":"number","nativeSrc":"8696:4:89","nodeType":"YulLiteral","src":"8696:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8664:3:89","nodeType":"YulIdentifier","src":"8664:3:89"},"nativeSrc":"8664:37:89","nodeType":"YulFunctionCall","src":"8664:37:89"},"variables":[{"name":"tail","nativeSrc":"8656:4:89","nodeType":"YulTypedName","src":"8656:4:89","type":""}]},{"nativeSrc":"8710:30:89","nodeType":"YulVariableDeclaration","src":"8710:30:89","value":{"arguments":[{"name":"value","nativeSrc":"8728:5:89","nodeType":"YulIdentifier","src":"8728:5:89"},{"kind":"number","nativeSrc":"8735:4:89","nodeType":"YulLiteral","src":"8735:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8724:3:89","nodeType":"YulIdentifier","src":"8724:3:89"},"nativeSrc":"8724:16:89","nodeType":"YulFunctionCall","src":"8724:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"8714:6:89","nodeType":"YulTypedName","src":"8714:6:89","type":""}]},{"nativeSrc":"8749:10:89","nodeType":"YulVariableDeclaration","src":"8749:10:89","value":{"kind":"number","nativeSrc":"8758:1:89","nodeType":"YulLiteral","src":"8758:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8753:1:89","nodeType":"YulTypedName","src":"8753:1:89","type":""}]},{"body":{"nativeSrc":"8817:200:89","nodeType":"YulBlock","src":"8817:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8838:3:89","nodeType":"YulIdentifier","src":"8838:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"8851:4:89","nodeType":"YulIdentifier","src":"8851:4:89"},{"name":"pos_1","nativeSrc":"8857:5:89","nodeType":"YulIdentifier","src":"8857:5:89"}],"functionName":{"name":"sub","nativeSrc":"8847:3:89","nodeType":"YulIdentifier","src":"8847:3:89"},"nativeSrc":"8847:16:89","nodeType":"YulFunctionCall","src":"8847:16:89"},{"arguments":[{"kind":"number","nativeSrc":"8869:2:89","nodeType":"YulLiteral","src":"8869:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"8865:3:89","nodeType":"YulIdentifier","src":"8865:3:89"},"nativeSrc":"8865:7:89","nodeType":"YulFunctionCall","src":"8865:7:89"}],"functionName":{"name":"add","nativeSrc":"8843:3:89","nodeType":"YulIdentifier","src":"8843:3:89"},"nativeSrc":"8843:30:89","nodeType":"YulFunctionCall","src":"8843:30:89"}],"functionName":{"name":"mstore","nativeSrc":"8831:6:89","nodeType":"YulIdentifier","src":"8831:6:89"},"nativeSrc":"8831:43:89","nodeType":"YulFunctionCall","src":"8831:43:89"},"nativeSrc":"8831:43:89","nodeType":"YulExpressionStatement","src":"8831:43:89"},{"nativeSrc":"8887:46:89","nodeType":"YulAssignment","src":"8887:46:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"8919:6:89","nodeType":"YulIdentifier","src":"8919:6:89"}],"functionName":{"name":"mload","nativeSrc":"8913:5:89","nodeType":"YulIdentifier","src":"8913:5:89"},"nativeSrc":"8913:13:89","nodeType":"YulFunctionCall","src":"8913:13:89"},{"name":"tail","nativeSrc":"8928:4:89","nodeType":"YulIdentifier","src":"8928:4:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"8895:17:89","nodeType":"YulIdentifier","src":"8895:17:89"},"nativeSrc":"8895:38:89","nodeType":"YulFunctionCall","src":"8895:38:89"},"variableNames":[{"name":"tail","nativeSrc":"8887:4:89","nodeType":"YulIdentifier","src":"8887:4:89"}]},{"nativeSrc":"8946:27:89","nodeType":"YulAssignment","src":"8946:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"8960:6:89","nodeType":"YulIdentifier","src":"8960:6:89"},{"kind":"number","nativeSrc":"8968:4:89","nodeType":"YulLiteral","src":"8968:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8956:3:89","nodeType":"YulIdentifier","src":"8956:3:89"},"nativeSrc":"8956:17:89","nodeType":"YulFunctionCall","src":"8956:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"8946:6:89","nodeType":"YulIdentifier","src":"8946:6:89"}]},{"nativeSrc":"8986:21:89","nodeType":"YulAssignment","src":"8986:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"8997:3:89","nodeType":"YulIdentifier","src":"8997:3:89"},{"kind":"number","nativeSrc":"9002:4:89","nodeType":"YulLiteral","src":"9002:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8993:3:89","nodeType":"YulIdentifier","src":"8993:3:89"},"nativeSrc":"8993:14:89","nodeType":"YulFunctionCall","src":"8993:14:89"},"variableNames":[{"name":"pos","nativeSrc":"8986:3:89","nodeType":"YulIdentifier","src":"8986:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8779:1:89","nodeType":"YulIdentifier","src":"8779:1:89"},{"name":"length","nativeSrc":"8782:6:89","nodeType":"YulIdentifier","src":"8782:6:89"}],"functionName":{"name":"lt","nativeSrc":"8776:2:89","nodeType":"YulIdentifier","src":"8776:2:89"},"nativeSrc":"8776:13:89","nodeType":"YulFunctionCall","src":"8776:13:89"},"nativeSrc":"8768:249:89","nodeType":"YulForLoop","post":{"nativeSrc":"8790:18:89","nodeType":"YulBlock","src":"8790:18:89","statements":[{"nativeSrc":"8792:14:89","nodeType":"YulAssignment","src":"8792:14:89","value":{"arguments":[{"name":"i","nativeSrc":"8801:1:89","nodeType":"YulIdentifier","src":"8801:1:89"},{"kind":"number","nativeSrc":"8804:1:89","nodeType":"YulLiteral","src":"8804:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8797:3:89","nodeType":"YulIdentifier","src":"8797:3:89"},"nativeSrc":"8797:9:89","nodeType":"YulFunctionCall","src":"8797:9:89"},"variableNames":[{"name":"i","nativeSrc":"8792:1:89","nodeType":"YulIdentifier","src":"8792:1:89"}]}]},"pre":{"nativeSrc":"8772:3:89","nodeType":"YulBlock","src":"8772:3:89","statements":[]},"src":"8768:249:89"},{"nativeSrc":"9026:11:89","nodeType":"YulAssignment","src":"9026:11:89","value":{"name":"tail","nativeSrc":"9033:4:89","nodeType":"YulIdentifier","src":"9033:4:89"},"variableNames":[{"name":"end","nativeSrc":"9026:3:89","nodeType":"YulIdentifier","src":"9026:3:89"}]}]},"name":"abi_encode_array_string_dyn","nativeSrc":"8464:579:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8501:5:89","nodeType":"YulTypedName","src":"8501:5:89","type":""},{"name":"pos","nativeSrc":"8508:3:89","nodeType":"YulTypedName","src":"8508:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8516:3:89","nodeType":"YulTypedName","src":"8516:3:89","type":""}],"src":"8464:579:89"},{"body":{"nativeSrc":"9120:474:89","nodeType":"YulBlock","src":"9120:474:89","statements":[{"nativeSrc":"9130:26:89","nodeType":"YulVariableDeclaration","src":"9130:26:89","value":{"arguments":[{"name":"value","nativeSrc":"9150:5:89","nodeType":"YulIdentifier","src":"9150:5:89"}],"functionName":{"name":"mload","nativeSrc":"9144:5:89","nodeType":"YulIdentifier","src":"9144:5:89"},"nativeSrc":"9144:12:89","nodeType":"YulFunctionCall","src":"9144:12:89"},"variables":[{"name":"length","nativeSrc":"9134:6:89","nodeType":"YulTypedName","src":"9134:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9172:3:89","nodeType":"YulIdentifier","src":"9172:3:89"},{"name":"length","nativeSrc":"9177:6:89","nodeType":"YulIdentifier","src":"9177:6:89"}],"functionName":{"name":"mstore","nativeSrc":"9165:6:89","nodeType":"YulIdentifier","src":"9165:6:89"},"nativeSrc":"9165:19:89","nodeType":"YulFunctionCall","src":"9165:19:89"},"nativeSrc":"9165:19:89","nodeType":"YulExpressionStatement","src":"9165:19:89"},{"nativeSrc":"9193:21:89","nodeType":"YulAssignment","src":"9193:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"9204:3:89","nodeType":"YulIdentifier","src":"9204:3:89"},{"kind":"number","nativeSrc":"9209:4:89","nodeType":"YulLiteral","src":"9209:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9200:3:89","nodeType":"YulIdentifier","src":"9200:3:89"},"nativeSrc":"9200:14:89","nodeType":"YulFunctionCall","src":"9200:14:89"},"variableNames":[{"name":"pos","nativeSrc":"9193:3:89","nodeType":"YulIdentifier","src":"9193:3:89"}]},{"nativeSrc":"9223:30:89","nodeType":"YulVariableDeclaration","src":"9223:30:89","value":{"arguments":[{"name":"value","nativeSrc":"9241:5:89","nodeType":"YulIdentifier","src":"9241:5:89"},{"kind":"number","nativeSrc":"9248:4:89","nodeType":"YulLiteral","src":"9248:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9237:3:89","nodeType":"YulIdentifier","src":"9237:3:89"},"nativeSrc":"9237:16:89","nodeType":"YulFunctionCall","src":"9237:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"9227:6:89","nodeType":"YulTypedName","src":"9227:6:89","type":""}]},{"nativeSrc":"9262:10:89","nodeType":"YulVariableDeclaration","src":"9262:10:89","value":{"kind":"number","nativeSrc":"9271:1:89","nodeType":"YulLiteral","src":"9271:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"9266:1:89","nodeType":"YulTypedName","src":"9266:1:89","type":""}]},{"body":{"nativeSrc":"9330:239:89","nodeType":"YulBlock","src":"9330:239:89","statements":[{"nativeSrc":"9344:23:89","nodeType":"YulVariableDeclaration","src":"9344:23:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"9360:6:89","nodeType":"YulIdentifier","src":"9360:6:89"}],"functionName":{"name":"mload","nativeSrc":"9354:5:89","nodeType":"YulIdentifier","src":"9354:5:89"},"nativeSrc":"9354:13:89","nodeType":"YulFunctionCall","src":"9354:13:89"},"variables":[{"name":"_1","nativeSrc":"9348:2:89","nodeType":"YulTypedName","src":"9348:2:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9387:3:89","nodeType":"YulIdentifier","src":"9387:3:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"9402:2:89","nodeType":"YulIdentifier","src":"9402:2:89"}],"functionName":{"name":"mload","nativeSrc":"9396:5:89","nodeType":"YulIdentifier","src":"9396:5:89"},"nativeSrc":"9396:9:89","nodeType":"YulFunctionCall","src":"9396:9:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9415:3:89","nodeType":"YulLiteral","src":"9415:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"9420:1:89","nodeType":"YulLiteral","src":"9420:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9411:3:89","nodeType":"YulIdentifier","src":"9411:3:89"},"nativeSrc":"9411:11:89","nodeType":"YulFunctionCall","src":"9411:11:89"},{"kind":"number","nativeSrc":"9424:1:89","nodeType":"YulLiteral","src":"9424:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9407:3:89","nodeType":"YulIdentifier","src":"9407:3:89"},"nativeSrc":"9407:19:89","nodeType":"YulFunctionCall","src":"9407:19:89"}],"functionName":{"name":"and","nativeSrc":"9392:3:89","nodeType":"YulIdentifier","src":"9392:3:89"},"nativeSrc":"9392:35:89","nodeType":"YulFunctionCall","src":"9392:35:89"}],"functionName":{"name":"mstore","nativeSrc":"9380:6:89","nodeType":"YulIdentifier","src":"9380:6:89"},"nativeSrc":"9380:48:89","nodeType":"YulFunctionCall","src":"9380:48:89"},"nativeSrc":"9380:48:89","nodeType":"YulExpressionStatement","src":"9380:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"9452:3:89","nodeType":"YulIdentifier","src":"9452:3:89"},{"kind":"number","nativeSrc":"9457:4:89","nodeType":"YulLiteral","src":"9457:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9448:3:89","nodeType":"YulIdentifier","src":"9448:3:89"},"nativeSrc":"9448:14:89","nodeType":"YulFunctionCall","src":"9448:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"9474:2:89","nodeType":"YulIdentifier","src":"9474:2:89"},{"kind":"number","nativeSrc":"9478:4:89","nodeType":"YulLiteral","src":"9478:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9470:3:89","nodeType":"YulIdentifier","src":"9470:3:89"},"nativeSrc":"9470:13:89","nodeType":"YulFunctionCall","src":"9470:13:89"}],"functionName":{"name":"mload","nativeSrc":"9464:5:89","nodeType":"YulIdentifier","src":"9464:5:89"},"nativeSrc":"9464:20:89","nodeType":"YulFunctionCall","src":"9464:20:89"}],"functionName":{"name":"mstore","nativeSrc":"9441:6:89","nodeType":"YulIdentifier","src":"9441:6:89"},"nativeSrc":"9441:44:89","nodeType":"YulFunctionCall","src":"9441:44:89"},"nativeSrc":"9441:44:89","nodeType":"YulExpressionStatement","src":"9441:44:89"},{"nativeSrc":"9498:21:89","nodeType":"YulAssignment","src":"9498:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"9509:3:89","nodeType":"YulIdentifier","src":"9509:3:89"},{"kind":"number","nativeSrc":"9514:4:89","nodeType":"YulLiteral","src":"9514:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9505:3:89","nodeType":"YulIdentifier","src":"9505:3:89"},"nativeSrc":"9505:14:89","nodeType":"YulFunctionCall","src":"9505:14:89"},"variableNames":[{"name":"pos","nativeSrc":"9498:3:89","nodeType":"YulIdentifier","src":"9498:3:89"}]},{"nativeSrc":"9532:27:89","nodeType":"YulAssignment","src":"9532:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"9546:6:89","nodeType":"YulIdentifier","src":"9546:6:89"},{"kind":"number","nativeSrc":"9554:4:89","nodeType":"YulLiteral","src":"9554:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9542:3:89","nodeType":"YulIdentifier","src":"9542:3:89"},"nativeSrc":"9542:17:89","nodeType":"YulFunctionCall","src":"9542:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"9532:6:89","nodeType":"YulIdentifier","src":"9532:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"9292:1:89","nodeType":"YulIdentifier","src":"9292:1:89"},{"name":"length","nativeSrc":"9295:6:89","nodeType":"YulIdentifier","src":"9295:6:89"}],"functionName":{"name":"lt","nativeSrc":"9289:2:89","nodeType":"YulIdentifier","src":"9289:2:89"},"nativeSrc":"9289:13:89","nodeType":"YulFunctionCall","src":"9289:13:89"},"nativeSrc":"9281:288:89","nodeType":"YulForLoop","post":{"nativeSrc":"9303:18:89","nodeType":"YulBlock","src":"9303:18:89","statements":[{"nativeSrc":"9305:14:89","nodeType":"YulAssignment","src":"9305:14:89","value":{"arguments":[{"name":"i","nativeSrc":"9314:1:89","nodeType":"YulIdentifier","src":"9314:1:89"},{"kind":"number","nativeSrc":"9317:1:89","nodeType":"YulLiteral","src":"9317:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9310:3:89","nodeType":"YulIdentifier","src":"9310:3:89"},"nativeSrc":"9310:9:89","nodeType":"YulFunctionCall","src":"9310:9:89"},"variableNames":[{"name":"i","nativeSrc":"9305:1:89","nodeType":"YulIdentifier","src":"9305:1:89"}]}]},"pre":{"nativeSrc":"9285:3:89","nodeType":"YulBlock","src":"9285:3:89","statements":[]},"src":"9281:288:89"},{"nativeSrc":"9578:10:89","nodeType":"YulAssignment","src":"9578:10:89","value":{"name":"pos","nativeSrc":"9585:3:89","nodeType":"YulIdentifier","src":"9585:3:89"},"variableNames":[{"name":"end","nativeSrc":"9578:3:89","nodeType":"YulIdentifier","src":"9578:3:89"}]}]},"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"9048:546:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9097:5:89","nodeType":"YulTypedName","src":"9097:5:89","type":""},{"name":"pos","nativeSrc":"9104:3:89","nodeType":"YulTypedName","src":"9104:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9112:3:89","nodeType":"YulTypedName","src":"9112:3:89","type":""}],"src":"9048:546:89"},{"body":{"nativeSrc":"9669:531:89","nodeType":"YulBlock","src":"9669:531:89","statements":[{"nativeSrc":"9679:26:89","nodeType":"YulVariableDeclaration","src":"9679:26:89","value":{"arguments":[{"name":"value","nativeSrc":"9699:5:89","nodeType":"YulIdentifier","src":"9699:5:89"}],"functionName":{"name":"mload","nativeSrc":"9693:5:89","nodeType":"YulIdentifier","src":"9693:5:89"},"nativeSrc":"9693:12:89","nodeType":"YulFunctionCall","src":"9693:12:89"},"variables":[{"name":"length","nativeSrc":"9683:6:89","nodeType":"YulTypedName","src":"9683:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9721:3:89","nodeType":"YulIdentifier","src":"9721:3:89"},{"name":"length","nativeSrc":"9726:6:89","nodeType":"YulIdentifier","src":"9726:6:89"}],"functionName":{"name":"mstore","nativeSrc":"9714:6:89","nodeType":"YulIdentifier","src":"9714:6:89"},"nativeSrc":"9714:19:89","nodeType":"YulFunctionCall","src":"9714:19:89"},"nativeSrc":"9714:19:89","nodeType":"YulExpressionStatement","src":"9714:19:89"},{"nativeSrc":"9742:21:89","nodeType":"YulAssignment","src":"9742:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"9753:3:89","nodeType":"YulIdentifier","src":"9753:3:89"},{"kind":"number","nativeSrc":"9758:4:89","nodeType":"YulLiteral","src":"9758:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9749:3:89","nodeType":"YulIdentifier","src":"9749:3:89"},"nativeSrc":"9749:14:89","nodeType":"YulFunctionCall","src":"9749:14:89"},"variableNames":[{"name":"pos","nativeSrc":"9742:3:89","nodeType":"YulIdentifier","src":"9742:3:89"}]},{"nativeSrc":"9772:30:89","nodeType":"YulVariableDeclaration","src":"9772:30:89","value":{"arguments":[{"name":"value","nativeSrc":"9790:5:89","nodeType":"YulIdentifier","src":"9790:5:89"},{"kind":"number","nativeSrc":"9797:4:89","nodeType":"YulLiteral","src":"9797:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9786:3:89","nodeType":"YulIdentifier","src":"9786:3:89"},"nativeSrc":"9786:16:89","nodeType":"YulFunctionCall","src":"9786:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"9776:6:89","nodeType":"YulTypedName","src":"9776:6:89","type":""}]},{"nativeSrc":"9811:10:89","nodeType":"YulVariableDeclaration","src":"9811:10:89","value":{"kind":"number","nativeSrc":"9820:1:89","nodeType":"YulLiteral","src":"9820:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"9815:1:89","nodeType":"YulTypedName","src":"9815:1:89","type":""}]},{"body":{"nativeSrc":"9879:296:89","nodeType":"YulBlock","src":"9879:296:89","statements":[{"nativeSrc":"9893:23:89","nodeType":"YulVariableDeclaration","src":"9893:23:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"9909:6:89","nodeType":"YulIdentifier","src":"9909:6:89"}],"functionName":{"name":"mload","nativeSrc":"9903:5:89","nodeType":"YulIdentifier","src":"9903:5:89"},"nativeSrc":"9903:13:89","nodeType":"YulFunctionCall","src":"9903:13:89"},"variables":[{"name":"_1","nativeSrc":"9897:2:89","nodeType":"YulTypedName","src":"9897:2:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9936:3:89","nodeType":"YulIdentifier","src":"9936:3:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"9951:2:89","nodeType":"YulIdentifier","src":"9951:2:89"}],"functionName":{"name":"mload","nativeSrc":"9945:5:89","nodeType":"YulIdentifier","src":"9945:5:89"},"nativeSrc":"9945:9:89","nodeType":"YulFunctionCall","src":"9945:9:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9964:3:89","nodeType":"YulLiteral","src":"9964:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"9969:1:89","nodeType":"YulLiteral","src":"9969:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9960:3:89","nodeType":"YulIdentifier","src":"9960:3:89"},"nativeSrc":"9960:11:89","nodeType":"YulFunctionCall","src":"9960:11:89"},{"kind":"number","nativeSrc":"9973:1:89","nodeType":"YulLiteral","src":"9973:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9956:3:89","nodeType":"YulIdentifier","src":"9956:3:89"},"nativeSrc":"9956:19:89","nodeType":"YulFunctionCall","src":"9956:19:89"}],"functionName":{"name":"and","nativeSrc":"9941:3:89","nodeType":"YulIdentifier","src":"9941:3:89"},"nativeSrc":"9941:35:89","nodeType":"YulFunctionCall","src":"9941:35:89"}],"functionName":{"name":"mstore","nativeSrc":"9929:6:89","nodeType":"YulIdentifier","src":"9929:6:89"},"nativeSrc":"9929:48:89","nodeType":"YulFunctionCall","src":"9929:48:89"},"nativeSrc":"9929:48:89","nodeType":"YulExpressionStatement","src":"9929:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10001:3:89","nodeType":"YulIdentifier","src":"10001:3:89"},{"kind":"number","nativeSrc":"10006:4:89","nodeType":"YulLiteral","src":"10006:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9997:3:89","nodeType":"YulIdentifier","src":"9997:3:89"},"nativeSrc":"9997:14:89","nodeType":"YulFunctionCall","src":"9997:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"10023:2:89","nodeType":"YulIdentifier","src":"10023:2:89"},{"kind":"number","nativeSrc":"10027:4:89","nodeType":"YulLiteral","src":"10027:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10019:3:89","nodeType":"YulIdentifier","src":"10019:3:89"},"nativeSrc":"10019:13:89","nodeType":"YulFunctionCall","src":"10019:13:89"}],"functionName":{"name":"mload","nativeSrc":"10013:5:89","nodeType":"YulIdentifier","src":"10013:5:89"},"nativeSrc":"10013:20:89","nodeType":"YulFunctionCall","src":"10013:20:89"}],"functionName":{"name":"mstore","nativeSrc":"9990:6:89","nodeType":"YulIdentifier","src":"9990:6:89"},"nativeSrc":"9990:44:89","nodeType":"YulFunctionCall","src":"9990:44:89"},"nativeSrc":"9990:44:89","nodeType":"YulExpressionStatement","src":"9990:44:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10058:3:89","nodeType":"YulIdentifier","src":"10058:3:89"},{"kind":"number","nativeSrc":"10063:4:89","nodeType":"YulLiteral","src":"10063:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10054:3:89","nodeType":"YulIdentifier","src":"10054:3:89"},"nativeSrc":"10054:14:89","nodeType":"YulFunctionCall","src":"10054:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"10080:2:89","nodeType":"YulIdentifier","src":"10080:2:89"},{"kind":"number","nativeSrc":"10084:4:89","nodeType":"YulLiteral","src":"10084:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10076:3:89","nodeType":"YulIdentifier","src":"10076:3:89"},"nativeSrc":"10076:13:89","nodeType":"YulFunctionCall","src":"10076:13:89"}],"functionName":{"name":"mload","nativeSrc":"10070:5:89","nodeType":"YulIdentifier","src":"10070:5:89"},"nativeSrc":"10070:20:89","nodeType":"YulFunctionCall","src":"10070:20:89"}],"functionName":{"name":"mstore","nativeSrc":"10047:6:89","nodeType":"YulIdentifier","src":"10047:6:89"},"nativeSrc":"10047:44:89","nodeType":"YulFunctionCall","src":"10047:44:89"},"nativeSrc":"10047:44:89","nodeType":"YulExpressionStatement","src":"10047:44:89"},{"nativeSrc":"10104:21:89","nodeType":"YulAssignment","src":"10104:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"10115:3:89","nodeType":"YulIdentifier","src":"10115:3:89"},{"kind":"number","nativeSrc":"10120:4:89","nodeType":"YulLiteral","src":"10120:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10111:3:89","nodeType":"YulIdentifier","src":"10111:3:89"},"nativeSrc":"10111:14:89","nodeType":"YulFunctionCall","src":"10111:14:89"},"variableNames":[{"name":"pos","nativeSrc":"10104:3:89","nodeType":"YulIdentifier","src":"10104:3:89"}]},{"nativeSrc":"10138:27:89","nodeType":"YulAssignment","src":"10138:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"10152:6:89","nodeType":"YulIdentifier","src":"10152:6:89"},{"kind":"number","nativeSrc":"10160:4:89","nodeType":"YulLiteral","src":"10160:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10148:3:89","nodeType":"YulIdentifier","src":"10148:3:89"},"nativeSrc":"10148:17:89","nodeType":"YulFunctionCall","src":"10148:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"10138:6:89","nodeType":"YulIdentifier","src":"10138:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"9841:1:89","nodeType":"YulIdentifier","src":"9841:1:89"},{"name":"length","nativeSrc":"9844:6:89","nodeType":"YulIdentifier","src":"9844:6:89"}],"functionName":{"name":"lt","nativeSrc":"9838:2:89","nodeType":"YulIdentifier","src":"9838:2:89"},"nativeSrc":"9838:13:89","nodeType":"YulFunctionCall","src":"9838:13:89"},"nativeSrc":"9830:345:89","nodeType":"YulForLoop","post":{"nativeSrc":"9852:18:89","nodeType":"YulBlock","src":"9852:18:89","statements":[{"nativeSrc":"9854:14:89","nodeType":"YulAssignment","src":"9854:14:89","value":{"arguments":[{"name":"i","nativeSrc":"9863:1:89","nodeType":"YulIdentifier","src":"9863:1:89"},{"kind":"number","nativeSrc":"9866:1:89","nodeType":"YulLiteral","src":"9866:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9859:3:89","nodeType":"YulIdentifier","src":"9859:3:89"},"nativeSrc":"9859:9:89","nodeType":"YulFunctionCall","src":"9859:9:89"},"variableNames":[{"name":"i","nativeSrc":"9854:1:89","nodeType":"YulIdentifier","src":"9854:1:89"}]}]},"pre":{"nativeSrc":"9834:3:89","nodeType":"YulBlock","src":"9834:3:89","statements":[]},"src":"9830:345:89"},{"nativeSrc":"10184:10:89","nodeType":"YulAssignment","src":"10184:10:89","value":{"name":"pos","nativeSrc":"10191:3:89","nodeType":"YulIdentifier","src":"10191:3:89"},"variableNames":[{"name":"end","nativeSrc":"10184:3:89","nodeType":"YulIdentifier","src":"10184:3:89"}]}]},"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"9599:601:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9646:5:89","nodeType":"YulTypedName","src":"9646:5:89","type":""},{"name":"pos","nativeSrc":"9653:3:89","nodeType":"YulTypedName","src":"9653:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9661:3:89","nodeType":"YulTypedName","src":"9661:3:89","type":""}],"src":"9599:601:89"},{"body":{"nativeSrc":"10368:1208:89","nodeType":"YulBlock","src":"10368:1208:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10385:9:89","nodeType":"YulIdentifier","src":"10385:9:89"},{"kind":"number","nativeSrc":"10396:2:89","nodeType":"YulLiteral","src":"10396:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10378:6:89","nodeType":"YulIdentifier","src":"10378:6:89"},"nativeSrc":"10378:21:89","nodeType":"YulFunctionCall","src":"10378:21:89"},"nativeSrc":"10378:21:89","nodeType":"YulExpressionStatement","src":"10378:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10437:6:89","nodeType":"YulIdentifier","src":"10437:6:89"}],"functionName":{"name":"mload","nativeSrc":"10431:5:89","nodeType":"YulIdentifier","src":"10431:5:89"},"nativeSrc":"10431:13:89","nodeType":"YulFunctionCall","src":"10431:13:89"},{"arguments":[{"name":"headStart","nativeSrc":"10450:9:89","nodeType":"YulIdentifier","src":"10450:9:89"},{"kind":"number","nativeSrc":"10461:2:89","nodeType":"YulLiteral","src":"10461:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10446:3:89","nodeType":"YulIdentifier","src":"10446:3:89"},"nativeSrc":"10446:18:89","nodeType":"YulFunctionCall","src":"10446:18:89"}],"functionName":{"name":"abi_encode_rational_by","nativeSrc":"10408:22:89","nodeType":"YulIdentifier","src":"10408:22:89"},"nativeSrc":"10408:57:89","nodeType":"YulFunctionCall","src":"10408:57:89"},"nativeSrc":"10408:57:89","nodeType":"YulExpressionStatement","src":"10408:57:89"},{"nativeSrc":"10474:42:89","nodeType":"YulVariableDeclaration","src":"10474:42:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10504:6:89","nodeType":"YulIdentifier","src":"10504:6:89"},{"kind":"number","nativeSrc":"10512:2:89","nodeType":"YulLiteral","src":"10512:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10500:3:89","nodeType":"YulIdentifier","src":"10500:3:89"},"nativeSrc":"10500:15:89","nodeType":"YulFunctionCall","src":"10500:15:89"}],"functionName":{"name":"mload","nativeSrc":"10494:5:89","nodeType":"YulIdentifier","src":"10494:5:89"},"nativeSrc":"10494:22:89","nodeType":"YulFunctionCall","src":"10494:22:89"},"variables":[{"name":"memberValue0","nativeSrc":"10478:12:89","nodeType":"YulTypedName","src":"10478:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10536:9:89","nodeType":"YulIdentifier","src":"10536:9:89"},{"kind":"number","nativeSrc":"10547:2:89","nodeType":"YulLiteral","src":"10547:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10532:3:89","nodeType":"YulIdentifier","src":"10532:3:89"},"nativeSrc":"10532:18:89","nodeType":"YulFunctionCall","src":"10532:18:89"},{"kind":"number","nativeSrc":"10552:6:89","nodeType":"YulLiteral","src":"10552:6:89","type":"","value":"0x0100"}],"functionName":{"name":"mstore","nativeSrc":"10525:6:89","nodeType":"YulIdentifier","src":"10525:6:89"},"nativeSrc":"10525:34:89","nodeType":"YulFunctionCall","src":"10525:34:89"},"nativeSrc":"10525:34:89","nodeType":"YulExpressionStatement","src":"10525:34:89"},{"nativeSrc":"10568:66:89","nodeType":"YulVariableDeclaration","src":"10568:66:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"10600:12:89","nodeType":"YulIdentifier","src":"10600:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"10618:9:89","nodeType":"YulIdentifier","src":"10618:9:89"},{"kind":"number","nativeSrc":"10629:3:89","nodeType":"YulLiteral","src":"10629:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"10614:3:89","nodeType":"YulIdentifier","src":"10614:3:89"},"nativeSrc":"10614:19:89","nodeType":"YulFunctionCall","src":"10614:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"10582:17:89","nodeType":"YulIdentifier","src":"10582:17:89"},"nativeSrc":"10582:52:89","nodeType":"YulFunctionCall","src":"10582:52:89"},"variables":[{"name":"tail_1","nativeSrc":"10572:6:89","nodeType":"YulTypedName","src":"10572:6:89","type":""}]},{"nativeSrc":"10643:44:89","nodeType":"YulVariableDeclaration","src":"10643:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10675:6:89","nodeType":"YulIdentifier","src":"10675:6:89"},{"kind":"number","nativeSrc":"10683:2:89","nodeType":"YulLiteral","src":"10683:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10671:3:89","nodeType":"YulIdentifier","src":"10671:3:89"},"nativeSrc":"10671:15:89","nodeType":"YulFunctionCall","src":"10671:15:89"}],"functionName":{"name":"mload","nativeSrc":"10665:5:89","nodeType":"YulIdentifier","src":"10665:5:89"},"nativeSrc":"10665:22:89","nodeType":"YulFunctionCall","src":"10665:22:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"10647:14:89","nodeType":"YulTypedName","src":"10647:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10707:9:89","nodeType":"YulIdentifier","src":"10707:9:89"},{"kind":"number","nativeSrc":"10718:2:89","nodeType":"YulLiteral","src":"10718:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10703:3:89","nodeType":"YulIdentifier","src":"10703:3:89"},"nativeSrc":"10703:18:89","nodeType":"YulFunctionCall","src":"10703:18:89"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"10731:6:89","nodeType":"YulIdentifier","src":"10731:6:89"},{"name":"headStart","nativeSrc":"10739:9:89","nodeType":"YulIdentifier","src":"10739:9:89"}],"functionName":{"name":"sub","nativeSrc":"10727:3:89","nodeType":"YulIdentifier","src":"10727:3:89"},"nativeSrc":"10727:22:89","nodeType":"YulFunctionCall","src":"10727:22:89"},{"arguments":[{"kind":"number","nativeSrc":"10755:2:89","nodeType":"YulLiteral","src":"10755:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10751:3:89","nodeType":"YulIdentifier","src":"10751:3:89"},"nativeSrc":"10751:7:89","nodeType":"YulFunctionCall","src":"10751:7:89"}],"functionName":{"name":"add","nativeSrc":"10723:3:89","nodeType":"YulIdentifier","src":"10723:3:89"},"nativeSrc":"10723:36:89","nodeType":"YulFunctionCall","src":"10723:36:89"}],"functionName":{"name":"mstore","nativeSrc":"10696:6:89","nodeType":"YulIdentifier","src":"10696:6:89"},"nativeSrc":"10696:64:89","nodeType":"YulFunctionCall","src":"10696:64:89"},"nativeSrc":"10696:64:89","nodeType":"YulExpressionStatement","src":"10696:64:89"},{"nativeSrc":"10769:55:89","nodeType":"YulVariableDeclaration","src":"10769:55:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"10801:14:89","nodeType":"YulIdentifier","src":"10801:14:89"},{"name":"tail_1","nativeSrc":"10817:6:89","nodeType":"YulIdentifier","src":"10817:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"10783:17:89","nodeType":"YulIdentifier","src":"10783:17:89"},"nativeSrc":"10783:41:89","nodeType":"YulFunctionCall","src":"10783:41:89"},"variables":[{"name":"tail_2","nativeSrc":"10773:6:89","nodeType":"YulTypedName","src":"10773:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10844:9:89","nodeType":"YulIdentifier","src":"10844:9:89"},{"kind":"number","nativeSrc":"10855:3:89","nodeType":"YulLiteral","src":"10855:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10840:3:89","nodeType":"YulIdentifier","src":"10840:3:89"},"nativeSrc":"10840:19:89","nodeType":"YulFunctionCall","src":"10840:19:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10871:6:89","nodeType":"YulIdentifier","src":"10871:6:89"},{"kind":"number","nativeSrc":"10879:2:89","nodeType":"YulLiteral","src":"10879:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10867:3:89","nodeType":"YulIdentifier","src":"10867:3:89"},"nativeSrc":"10867:15:89","nodeType":"YulFunctionCall","src":"10867:15:89"}],"functionName":{"name":"mload","nativeSrc":"10861:5:89","nodeType":"YulIdentifier","src":"10861:5:89"},"nativeSrc":"10861:22:89","nodeType":"YulFunctionCall","src":"10861:22:89"}],"functionName":{"name":"mstore","nativeSrc":"10833:6:89","nodeType":"YulIdentifier","src":"10833:6:89"},"nativeSrc":"10833:51:89","nodeType":"YulFunctionCall","src":"10833:51:89"},"nativeSrc":"10833:51:89","nodeType":"YulExpressionStatement","src":"10833:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10904:9:89","nodeType":"YulIdentifier","src":"10904:9:89"},{"kind":"number","nativeSrc":"10915:3:89","nodeType":"YulLiteral","src":"10915:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"10900:3:89","nodeType":"YulIdentifier","src":"10900:3:89"},"nativeSrc":"10900:19:89","nodeType":"YulFunctionCall","src":"10900:19:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10931:6:89","nodeType":"YulIdentifier","src":"10931:6:89"},{"kind":"number","nativeSrc":"10939:3:89","nodeType":"YulLiteral","src":"10939:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10927:3:89","nodeType":"YulIdentifier","src":"10927:3:89"},"nativeSrc":"10927:16:89","nodeType":"YulFunctionCall","src":"10927:16:89"}],"functionName":{"name":"mload","nativeSrc":"10921:5:89","nodeType":"YulIdentifier","src":"10921:5:89"},"nativeSrc":"10921:23:89","nodeType":"YulFunctionCall","src":"10921:23:89"}],"functionName":{"name":"mstore","nativeSrc":"10893:6:89","nodeType":"YulIdentifier","src":"10893:6:89"},"nativeSrc":"10893:52:89","nodeType":"YulFunctionCall","src":"10893:52:89"},"nativeSrc":"10893:52:89","nodeType":"YulExpressionStatement","src":"10893:52:89"},{"nativeSrc":"10954:45:89","nodeType":"YulVariableDeclaration","src":"10954:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10986:6:89","nodeType":"YulIdentifier","src":"10986:6:89"},{"kind":"number","nativeSrc":"10994:3:89","nodeType":"YulLiteral","src":"10994:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"10982:3:89","nodeType":"YulIdentifier","src":"10982:3:89"},"nativeSrc":"10982:16:89","nodeType":"YulFunctionCall","src":"10982:16:89"}],"functionName":{"name":"mload","nativeSrc":"10976:5:89","nodeType":"YulIdentifier","src":"10976:5:89"},"nativeSrc":"10976:23:89","nodeType":"YulFunctionCall","src":"10976:23:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"10958:14:89","nodeType":"YulTypedName","src":"10958:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11019:9:89","nodeType":"YulIdentifier","src":"11019:9:89"},{"kind":"number","nativeSrc":"11030:3:89","nodeType":"YulLiteral","src":"11030:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"11015:3:89","nodeType":"YulIdentifier","src":"11015:3:89"},"nativeSrc":"11015:19:89","nodeType":"YulFunctionCall","src":"11015:19:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"11044:6:89","nodeType":"YulIdentifier","src":"11044:6:89"},{"name":"headStart","nativeSrc":"11052:9:89","nodeType":"YulIdentifier","src":"11052:9:89"}],"functionName":{"name":"sub","nativeSrc":"11040:3:89","nodeType":"YulIdentifier","src":"11040:3:89"},"nativeSrc":"11040:22:89","nodeType":"YulFunctionCall","src":"11040:22:89"},{"arguments":[{"kind":"number","nativeSrc":"11068:2:89","nodeType":"YulLiteral","src":"11068:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11064:3:89","nodeType":"YulIdentifier","src":"11064:3:89"},"nativeSrc":"11064:7:89","nodeType":"YulFunctionCall","src":"11064:7:89"}],"functionName":{"name":"add","nativeSrc":"11036:3:89","nodeType":"YulIdentifier","src":"11036:3:89"},"nativeSrc":"11036:36:89","nodeType":"YulFunctionCall","src":"11036:36:89"}],"functionName":{"name":"mstore","nativeSrc":"11008:6:89","nodeType":"YulIdentifier","src":"11008:6:89"},"nativeSrc":"11008:65:89","nodeType":"YulFunctionCall","src":"11008:65:89"},"nativeSrc":"11008:65:89","nodeType":"YulExpressionStatement","src":"11008:65:89"},{"nativeSrc":"11082:65:89","nodeType":"YulVariableDeclaration","src":"11082:65:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"11124:14:89","nodeType":"YulIdentifier","src":"11124:14:89"},{"name":"tail_2","nativeSrc":"11140:6:89","nodeType":"YulIdentifier","src":"11140:6:89"}],"functionName":{"name":"abi_encode_array_string_dyn","nativeSrc":"11096:27:89","nodeType":"YulIdentifier","src":"11096:27:89"},"nativeSrc":"11096:51:89","nodeType":"YulFunctionCall","src":"11096:51:89"},"variables":[{"name":"tail_3","nativeSrc":"11086:6:89","nodeType":"YulTypedName","src":"11086:6:89","type":""}]},{"nativeSrc":"11156:45:89","nodeType":"YulVariableDeclaration","src":"11156:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11188:6:89","nodeType":"YulIdentifier","src":"11188:6:89"},{"kind":"number","nativeSrc":"11196:3:89","nodeType":"YulLiteral","src":"11196:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"11184:3:89","nodeType":"YulIdentifier","src":"11184:3:89"},"nativeSrc":"11184:16:89","nodeType":"YulFunctionCall","src":"11184:16:89"}],"functionName":{"name":"mload","nativeSrc":"11178:5:89","nodeType":"YulIdentifier","src":"11178:5:89"},"nativeSrc":"11178:23:89","nodeType":"YulFunctionCall","src":"11178:23:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"11160:14:89","nodeType":"YulTypedName","src":"11160:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11221:9:89","nodeType":"YulIdentifier","src":"11221:9:89"},{"kind":"number","nativeSrc":"11232:3:89","nodeType":"YulLiteral","src":"11232:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"11217:3:89","nodeType":"YulIdentifier","src":"11217:3:89"},"nativeSrc":"11217:19:89","nodeType":"YulFunctionCall","src":"11217:19:89"},{"arguments":[{"arguments":[{"name":"tail_3","nativeSrc":"11246:6:89","nodeType":"YulIdentifier","src":"11246:6:89"},{"name":"headStart","nativeSrc":"11254:9:89","nodeType":"YulIdentifier","src":"11254:9:89"}],"functionName":{"name":"sub","nativeSrc":"11242:3:89","nodeType":"YulIdentifier","src":"11242:3:89"},"nativeSrc":"11242:22:89","nodeType":"YulFunctionCall","src":"11242:22:89"},{"arguments":[{"kind":"number","nativeSrc":"11270:2:89","nodeType":"YulLiteral","src":"11270:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11266:3:89","nodeType":"YulIdentifier","src":"11266:3:89"},"nativeSrc":"11266:7:89","nodeType":"YulFunctionCall","src":"11266:7:89"}],"functionName":{"name":"add","nativeSrc":"11238:3:89","nodeType":"YulIdentifier","src":"11238:3:89"},"nativeSrc":"11238:36:89","nodeType":"YulFunctionCall","src":"11238:36:89"}],"functionName":{"name":"mstore","nativeSrc":"11210:6:89","nodeType":"YulIdentifier","src":"11210:6:89"},"nativeSrc":"11210:65:89","nodeType":"YulFunctionCall","src":"11210:65:89"},"nativeSrc":"11210:65:89","nodeType":"YulExpressionStatement","src":"11210:65:89"},{"nativeSrc":"11284:77:89","nodeType":"YulVariableDeclaration","src":"11284:77:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"11338:14:89","nodeType":"YulIdentifier","src":"11338:14:89"},{"name":"tail_3","nativeSrc":"11354:6:89","nodeType":"YulIdentifier","src":"11354:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"11298:39:89","nodeType":"YulIdentifier","src":"11298:39:89"},"nativeSrc":"11298:63:89","nodeType":"YulFunctionCall","src":"11298:63:89"},"variables":[{"name":"tail_4","nativeSrc":"11288:6:89","nodeType":"YulTypedName","src":"11288:6:89","type":""}]},{"nativeSrc":"11370:45:89","nodeType":"YulVariableDeclaration","src":"11370:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11402:6:89","nodeType":"YulIdentifier","src":"11402:6:89"},{"kind":"number","nativeSrc":"11410:3:89","nodeType":"YulLiteral","src":"11410:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"11398:3:89","nodeType":"YulIdentifier","src":"11398:3:89"},"nativeSrc":"11398:16:89","nodeType":"YulFunctionCall","src":"11398:16:89"}],"functionName":{"name":"mload","nativeSrc":"11392:5:89","nodeType":"YulIdentifier","src":"11392:5:89"},"nativeSrc":"11392:23:89","nodeType":"YulFunctionCall","src":"11392:23:89"},"variables":[{"name":"memberValue0_4","nativeSrc":"11374:14:89","nodeType":"YulTypedName","src":"11374:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11435:9:89","nodeType":"YulIdentifier","src":"11435:9:89"},{"kind":"number","nativeSrc":"11446:6:89","nodeType":"YulLiteral","src":"11446:6:89","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"11431:3:89","nodeType":"YulIdentifier","src":"11431:3:89"},"nativeSrc":"11431:22:89","nodeType":"YulFunctionCall","src":"11431:22:89"},{"arguments":[{"arguments":[{"name":"tail_4","nativeSrc":"11463:6:89","nodeType":"YulIdentifier","src":"11463:6:89"},{"name":"headStart","nativeSrc":"11471:9:89","nodeType":"YulIdentifier","src":"11471:9:89"}],"functionName":{"name":"sub","nativeSrc":"11459:3:89","nodeType":"YulIdentifier","src":"11459:3:89"},"nativeSrc":"11459:22:89","nodeType":"YulFunctionCall","src":"11459:22:89"},{"arguments":[{"kind":"number","nativeSrc":"11487:2:89","nodeType":"YulLiteral","src":"11487:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11483:3:89","nodeType":"YulIdentifier","src":"11483:3:89"},"nativeSrc":"11483:7:89","nodeType":"YulFunctionCall","src":"11483:7:89"}],"functionName":{"name":"add","nativeSrc":"11455:3:89","nodeType":"YulIdentifier","src":"11455:3:89"},"nativeSrc":"11455:36:89","nodeType":"YulFunctionCall","src":"11455:36:89"}],"functionName":{"name":"mstore","nativeSrc":"11424:6:89","nodeType":"YulIdentifier","src":"11424:6:89"},"nativeSrc":"11424:68:89","nodeType":"YulFunctionCall","src":"11424:68:89"},"nativeSrc":"11424:68:89","nodeType":"YulExpressionStatement","src":"11424:68:89"},{"nativeSrc":"11501:69:89","nodeType":"YulAssignment","src":"11501:69:89","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"11547:14:89","nodeType":"YulIdentifier","src":"11547:14:89"},{"name":"tail_4","nativeSrc":"11563:6:89","nodeType":"YulIdentifier","src":"11563:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"11509:37:89","nodeType":"YulIdentifier","src":"11509:37:89"},"nativeSrc":"11509:61:89","nodeType":"YulFunctionCall","src":"11509:61:89"},"variableNames":[{"name":"tail","nativeSrc":"11501:4:89","nodeType":"YulIdentifier","src":"11501:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr__to_t_struct$_OutMessageV1_$16084_memory_ptr__fromStack_reversed","nativeSrc":"10205:1371:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10337:9:89","nodeType":"YulTypedName","src":"10337:9:89","type":""},{"name":"value0","nativeSrc":"10348:6:89","nodeType":"YulTypedName","src":"10348:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10359:4:89","nodeType":"YulTypedName","src":"10359:4:89","type":""}],"src":"10205:1371:89"},{"body":{"nativeSrc":"11728:142:89","nodeType":"YulBlock","src":"11728:142:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11745:9:89","nodeType":"YulIdentifier","src":"11745:9:89"},{"name":"value0","nativeSrc":"11756:6:89","nodeType":"YulIdentifier","src":"11756:6:89"}],"functionName":{"name":"mstore","nativeSrc":"11738:6:89","nodeType":"YulIdentifier","src":"11738:6:89"},"nativeSrc":"11738:25:89","nodeType":"YulFunctionCall","src":"11738:25:89"},"nativeSrc":"11738:25:89","nodeType":"YulExpressionStatement","src":"11738:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11783:9:89","nodeType":"YulIdentifier","src":"11783:9:89"},{"kind":"number","nativeSrc":"11794:2:89","nodeType":"YulLiteral","src":"11794:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11779:3:89","nodeType":"YulIdentifier","src":"11779:3:89"},"nativeSrc":"11779:18:89","nodeType":"YulFunctionCall","src":"11779:18:89"},{"kind":"number","nativeSrc":"11799:2:89","nodeType":"YulLiteral","src":"11799:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"11772:6:89","nodeType":"YulIdentifier","src":"11772:6:89"},"nativeSrc":"11772:30:89","nodeType":"YulFunctionCall","src":"11772:30:89"},"nativeSrc":"11772:30:89","nodeType":"YulExpressionStatement","src":"11772:30:89"},{"nativeSrc":"11811:53:89","nodeType":"YulAssignment","src":"11811:53:89","value":{"arguments":[{"name":"value1","nativeSrc":"11837:6:89","nodeType":"YulIdentifier","src":"11837:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"11849:9:89","nodeType":"YulIdentifier","src":"11849:9:89"},{"kind":"number","nativeSrc":"11860:2:89","nodeType":"YulLiteral","src":"11860:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11845:3:89","nodeType":"YulIdentifier","src":"11845:3:89"},"nativeSrc":"11845:18:89","nodeType":"YulFunctionCall","src":"11845:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"11819:17:89","nodeType":"YulIdentifier","src":"11819:17:89"},"nativeSrc":"11819:45:89","nodeType":"YulFunctionCall","src":"11819:45:89"},"variableNames":[{"name":"tail","nativeSrc":"11811:4:89","nodeType":"YulIdentifier","src":"11811:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"11581:289:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11689:9:89","nodeType":"YulTypedName","src":"11689:9:89","type":""},{"name":"value1","nativeSrc":"11700:6:89","nodeType":"YulTypedName","src":"11700:6:89","type":""},{"name":"value0","nativeSrc":"11708:6:89","nodeType":"YulTypedName","src":"11708:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11719:4:89","nodeType":"YulTypedName","src":"11719:4:89","type":""}],"src":"11581:289:89"},{"body":{"nativeSrc":"11956:103:89","nodeType":"YulBlock","src":"11956:103:89","statements":[{"body":{"nativeSrc":"12002:16:89","nodeType":"YulBlock","src":"12002:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12011:1:89","nodeType":"YulLiteral","src":"12011:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12014:1:89","nodeType":"YulLiteral","src":"12014:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12004:6:89","nodeType":"YulIdentifier","src":"12004:6:89"},"nativeSrc":"12004:12:89","nodeType":"YulFunctionCall","src":"12004:12:89"},"nativeSrc":"12004:12:89","nodeType":"YulExpressionStatement","src":"12004:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11977:7:89","nodeType":"YulIdentifier","src":"11977:7:89"},{"name":"headStart","nativeSrc":"11986:9:89","nodeType":"YulIdentifier","src":"11986:9:89"}],"functionName":{"name":"sub","nativeSrc":"11973:3:89","nodeType":"YulIdentifier","src":"11973:3:89"},"nativeSrc":"11973:23:89","nodeType":"YulFunctionCall","src":"11973:23:89"},{"kind":"number","nativeSrc":"11998:2:89","nodeType":"YulLiteral","src":"11998:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11969:3:89","nodeType":"YulIdentifier","src":"11969:3:89"},"nativeSrc":"11969:32:89","nodeType":"YulFunctionCall","src":"11969:32:89"},"nativeSrc":"11966:52:89","nodeType":"YulIf","src":"11966:52:89"},{"nativeSrc":"12027:26:89","nodeType":"YulAssignment","src":"12027:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"12043:9:89","nodeType":"YulIdentifier","src":"12043:9:89"}],"functionName":{"name":"mload","nativeSrc":"12037:5:89","nodeType":"YulIdentifier","src":"12037:5:89"},"nativeSrc":"12037:16:89","nodeType":"YulFunctionCall","src":"12037:16:89"},"variableNames":[{"name":"value0","nativeSrc":"12027:6:89","nodeType":"YulIdentifier","src":"12027:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"11875:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11922:9:89","nodeType":"YulTypedName","src":"11922:9:89","type":""},{"name":"dataEnd","nativeSrc":"11933:7:89","nodeType":"YulTypedName","src":"11933:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11945:6:89","nodeType":"YulTypedName","src":"11945:6:89","type":""}],"src":"11875:184:89"},{"body":{"nativeSrc":"12201:150:89","nodeType":"YulBlock","src":"12201:150:89","statements":[{"nativeSrc":"12211:27:89","nodeType":"YulVariableDeclaration","src":"12211:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"12231:6:89","nodeType":"YulIdentifier","src":"12231:6:89"}],"functionName":{"name":"mload","nativeSrc":"12225:5:89","nodeType":"YulIdentifier","src":"12225:5:89"},"nativeSrc":"12225:13:89","nodeType":"YulFunctionCall","src":"12225:13:89"},"variables":[{"name":"length","nativeSrc":"12215:6:89","nodeType":"YulTypedName","src":"12215:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"12286:6:89","nodeType":"YulIdentifier","src":"12286:6:89"},{"kind":"number","nativeSrc":"12294:4:89","nodeType":"YulLiteral","src":"12294:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12282:3:89","nodeType":"YulIdentifier","src":"12282:3:89"},"nativeSrc":"12282:17:89","nodeType":"YulFunctionCall","src":"12282:17:89"},{"name":"pos","nativeSrc":"12301:3:89","nodeType":"YulIdentifier","src":"12301:3:89"},{"name":"length","nativeSrc":"12306:6:89","nodeType":"YulIdentifier","src":"12306:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"12247:34:89","nodeType":"YulIdentifier","src":"12247:34:89"},"nativeSrc":"12247:66:89","nodeType":"YulFunctionCall","src":"12247:66:89"},"nativeSrc":"12247:66:89","nodeType":"YulExpressionStatement","src":"12247:66:89"},{"nativeSrc":"12322:23:89","nodeType":"YulAssignment","src":"12322:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"12333:3:89","nodeType":"YulIdentifier","src":"12333:3:89"},{"name":"length","nativeSrc":"12338:6:89","nodeType":"YulIdentifier","src":"12338:6:89"}],"functionName":{"name":"add","nativeSrc":"12329:3:89","nodeType":"YulIdentifier","src":"12329:3:89"},"nativeSrc":"12329:16:89","nodeType":"YulFunctionCall","src":"12329:16:89"},"variableNames":[{"name":"end","nativeSrc":"12322:3:89","nodeType":"YulIdentifier","src":"12322:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12064:287:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12177:3:89","nodeType":"YulTypedName","src":"12177:3:89","type":""},{"name":"value0","nativeSrc":"12182:6:89","nodeType":"YulTypedName","src":"12182:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12193:3:89","nodeType":"YulTypedName","src":"12193:3:89","type":""}],"src":"12064:287:89"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_1758() -> memPtr\n    {\n        memPtr := mload(0x40)\n        let newFreePtr := add(memPtr, 0x40)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(0x40, newFreePtr)\n    }\n    function allocate_memory_1760() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xa0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let src := add(offset, 0x20)\n        let array_1 := 0\n        let size := array_1\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n        array_1 := allocate_memory(size)\n        mstore(array_1, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), src, length)\n        mstore(add(add(array_1, length), 0x20), 0)\n        array := array_1\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let dst := allocate_memory(add(shl(5, length), 32))\n        let array := dst\n        mstore(dst, length)\n        dst := add(dst, 32)\n        let srcEnd := add(add(_1, shl(6, length)), 32)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_1, 32)\n        for { } lt(src, srcEnd) { src := add(src, 0x40) }\n        {\n            if slt(sub(dataEnd, src), 0x40) { revert(0, 0) }\n            let value := allocate_memory_1758()\n            mstore(value, abi_decode_address(src))\n            let value_1 := 0\n            value_1 := calldataload(add(src, 32))\n            mstore(add(value, 32), value_1)\n            mstore(dst, value)\n            dst := add(dst, 32)\n        }\n        value0 := array\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_rational_by(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_decode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 0xa0) { revert(0, 0) }\n        let value := allocate_memory_1760()\n        let value_1 := calldataload(_1)\n        if iszero(eq(value_1, and(value_1, 0xffffffffffffffff))) { revert(0, 0) }\n        mstore(value, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(_1, 32))\n        mstore(add(value, 32), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(_1, 64))\n        mstore(add(value, 64), value_3)\n        let offset_1 := calldataload(add(_1, 96))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 96), abi_decode_bytes(add(_1, offset_1), dataEnd))\n        let offset_2 := calldataload(add(_1, 128))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 128), abi_decode_bytes(add(_1, offset_2), dataEnd))\n        value0 := value\n    }\n    function abi_encode_array_string_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            tail := abi_encode_string(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_array_struct_TokenAmount_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let _1 := mload(srcPtr)\n            mstore(pos, and(mload(_1), sub(shl(160, 1), 1)))\n            mstore(add(pos, 0x20), mload(add(_1, 0x20)))\n            pos := add(pos, 0x40)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function abi_encode_array_struct_NFTAmount_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let _1 := mload(srcPtr)\n            mstore(pos, and(mload(_1), sub(shl(160, 1), 1)))\n            mstore(add(pos, 0x20), mload(add(_1, 0x20)))\n            mstore(add(pos, 0x40), mload(add(_1, 0x40)))\n            pos := add(pos, 0x60)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr__to_t_struct$_OutMessageV1_$16084_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        abi_encode_rational_by(mload(value0), add(headStart, 32))\n        let memberValue0 := mload(add(value0, 32))\n        mstore(add(headStart, 64), 0x0100)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 288))\n        let memberValue0_1 := mload(add(value0, 64))\n        mstore(add(headStart, 96), add(sub(tail_1, headStart), not(31)))\n        let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n        mstore(add(headStart, 128), mload(add(value0, 96)))\n        mstore(add(headStart, 160), mload(add(value0, 128)))\n        let memberValue0_2 := mload(add(value0, 160))\n        mstore(add(headStart, 192), add(sub(tail_2, headStart), not(31)))\n        let tail_3 := abi_encode_array_string_dyn(memberValue0_2, tail_2)\n        let memberValue0_3 := mload(add(value0, 192))\n        mstore(add(headStart, 224), add(sub(tail_3, headStart), not(31)))\n        let tail_4 := abi_encode_array_struct_TokenAmount_dyn(memberValue0_3, tail_3)\n        let memberValue0_4 := mload(add(value0, 224))\n        mstore(add(headStart, 0x0100), add(sub(tail_4, headStart), not(31)))\n        tail := abi_encode_array_struct_NFTAmount_dyn(memberValue0_4, tail_4)\n    }\n    function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"968":[{"length":32,"start":1775},{"length":32,"start":1816},{"length":32,"start":2119}]},"linkReferences":{},"object":"6080604052600436106100865760003560e01c806352d1902d1161005957806352d1902d14610103578063715018a6146101185780638da5cb5b1461012d578063ad3cb1cc14610174578063f2fde38b146101b257600080fd5b80630d8e6e2c1461008b57806331cd5675146100ae578063485cc955146100d05780634f1ef286146100f0575b600080fd5b34801561009757600080fd5b5060015b6040519081526020015b60405180910390f35b3480156100ba57600080fd5b506100ce6100c9366004610c1e565b6101d2565b005b3480156100dc57600080fd5b506100ce6100eb366004610ca9565b610414565b6100ce6100fe366004610de2565b610534565b34801561010f57600080fd5b5061009b610553565b34801561012457600080fd5b506100ce610570565b34801561013957600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100a5565b34801561018057600080fd5b506101a5604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100a59190610e7f565b3480156101be57600080fd5b506100ce6101cd366004610e92565b610584565b6101da6105c7565b6001600160a01b0316336001600160a01b03161461020b576040516367ab7efd60e01b815260040160405180910390fd5b600061021785856105fa565b9050600061022783850185610ead565b905060005b81518110156103045781818151811061024757610247610f89565b6020026020010151600001516001600160a01b031663095ea7b36102696105c7565b84848151811061027b5761027b610f89565b6020026020010151602001516040518363ffffffff1660e01b81526004016102b89291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af11580156102d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fb9190610f9f565b5060010161022c565b5061040c60405180610100016040528084600001516001600160401b0316815260200184606001518152602001604051806020016040528060008152508152602001600081526020016000815260200160006001600160401b0381111561036d5761036d610cdc565b6040519080825280602002602001820160405280156103a057816020015b606081526020019060019003908161038b5790505b5081526020808201859052604080516000808252928101825292019190610402565b6103ef604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816103c25790505b5090526000610637565b505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156104595750825b90506000826001600160401b031660011480156104755750303b155b905081158015610483575080155b156104a15760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156104cb57845460ff60401b1916600160401b1785555b6104d36106ba565b6104dc876106c2565b6104e5866106d3565b831561052b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b61053c6106e4565b61054582610772565b61054f828261077a565b5050565b600061055d61083c565b506000805160206112a983398151915290565b610578610885565b61058260006108e0565b565b61058c610885565b6001600160a01b0381166105bb57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6105c4816108e0565b50565b60007f9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d1005b546001600160a01b0316919050565b6040805160a081018252600080825260208201819052918101919091526060808201819052608082015261063082840184610fc1565b9392505050565b61063f6105c7565b6001600160a01b031663e289adcd82600185604051602001610661919061118f565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161068d929190611252565b6000604051808303818588803b1580156106a657600080fd5b505af115801561052b573d6000803e3d6000fd5b610582610951565b6106ca610951565b6105c48161099a565b6106db610951565b6105c4816109a2565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061075457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107486109eb565b6001600160a01b031614155b156105825760405163703e46dd60e11b815260040160405180910390fd5b6105c4610885565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156107d4575060408051601f3d908101601f191682019092526107d191810190611273565b60015b6107fc57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016105b2565b6000805160206112a9833981519152811461082d57604051632a87526960e21b8152600481018290526024016105b2565b6108378383610a01565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105825760405163703e46dd60e11b815260040160405180910390fd5b336108b77f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146105825760405163118cdaa760e01b81523360048201526024016105b2565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661058257604051631afcd79f60e31b815260040160405180910390fd5b61058c610951565b6109aa610951565b7f9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d10080546001600160a01b0319166001600160a01b0392909216919091179055565b60006000805160206112a98339815191526105eb565b610a0a82610a57565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a4f576108378282610abc565b61054f610b32565b806001600160a01b03163b600003610a8d57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016105b2565b6000805160206112a983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610ad9919061128c565b600060405180830381855af49150503d8060008114610b14576040519150601f19603f3d011682016040523d82523d6000602084013e610b19565b606091505b5091509150610b29858383610b51565b95945050505050565b34156105825760405163b398979f60e01b815260040160405180910390fd5b606082610b6657610b6182610bad565b610630565b8151158015610b7d57506001600160a01b0384163b155b15610ba657604051639996b31560e01b81526001600160a01b03851660048201526024016105b2565b5092915050565b805115610bbd5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60008083601f840112610be857600080fd5b5081356001600160401b03811115610bff57600080fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b60008060008060408587031215610c3457600080fd5b84356001600160401b03811115610c4a57600080fd5b610c5687828801610bd6565b90955093505060208501356001600160401b03811115610c7557600080fd5b610c8187828801610bd6565b95989497509550505050565b80356001600160a01b0381168114610ca457600080fd5b919050565b60008060408385031215610cbc57600080fd5b610cc583610c8d565b9150610cd360208401610c8d565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610d1457610d14610cdc565b60405290565b60405160a081016001600160401b0381118282101715610d1457610d14610cdc565b604051601f8201601f191681016001600160401b0381118282101715610d6457610d64610cdc565b604052919050565b600082601f830112610d7d57600080fd5b8135602083016000806001600160401b03841115610d9d57610d9d610cdc565b50601f8301601f1916602001610db281610d3c565b915050828152858383011115610dc757600080fd5b82826020830137600092810160200192909252509392505050565b60008060408385031215610df557600080fd5b610dfe83610c8d565b915060208301356001600160401b03811115610e1957600080fd5b610e2585828601610d6c565b9150509250929050565b60005b83811015610e4a578181015183820152602001610e32565b50506000910152565b60008151808452610e6b816020860160208601610e2f565b601f01601f19169290920160200192915050565b6020815260006106306020830184610e53565b600060208284031215610ea457600080fd5b61063082610c8d565b600060208284031215610ebf57600080fd5b81356001600160401b03811115610ed557600080fd5b8201601f81018413610ee657600080fd5b80356001600160401b03811115610eff57610eff610cdc565b610f0e60208260051b01610d3c565b8082825260208201915060208360061b850101925086831115610f3057600080fd5b6020840193505b82841015610f7f5760408488031215610f4f57600080fd5b610f57610cf2565b610f6085610c8d565b8152602085810135818301529083526040909401939190910190610f37565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610fb157600080fd5b8151801515811461063057600080fd5b600060208284031215610fd357600080fd5b81356001600160401b03811115610fe957600080fd5b820160a08185031215610ffb57600080fd5b611003610d1a565b81356001600160401b038116811461101a57600080fd5b8152602082810135908201526040808301359082015260608201356001600160401b0381111561104957600080fd5b61105586828501610d6c565b60608301525060808201356001600160401b0381111561107457600080fd5b61108086828501610d6c565b608083015250949350505050565b600082825180855260208501945060208160051b8301016020850160005b838110156110de57601f198584030188526110c8838351610e53565b60209889019890935091909101906001016110ac565b50909695505050505050565b600081518084526020840193506020830160005b8281101561113157815180516001600160a01b0316875260209081015181880152604090960195909101906001016110fe565b5093949350505050565b600081518084526020840193506020830160005b8281101561113157815180516001600160a01b0316875260208082015181890152604091820151918801919091526060909601959091019060010161114f565b602081526111a96020820183516001600160401b03169052565b6000602083015161010060408401526111c6610120840182610e53565b90506040840151601f198483030160608501526111e38282610e53565b91505060608401516080840152608084015160a084015260a0840151601f198483030160c0850152611215828261108e565b91505060c0840151601f198483030160e085015261123382826110ea565b91505060e0840151601f1984830301610100850152610b29828261113b565b82815260406020820152600061126b6040830184610e53565b949350505050565b60006020828403121561128557600080fd5b5051919050565b6000825161129e818460208701610e2f565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca264697066735822122090e474717efe8053dba69c3efd59d6638aff28a8fd9536e850878a1a76d8bbaf64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD8E6E2C EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0x31CD5675 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0xF0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0xC9 CALLDATASIZE PUSH1 0x4 PUSH2 0xC1E JUMP JUMPDEST PUSH2 0x1D2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0xEB CALLDATASIZE PUSH1 0x4 PUSH2 0xCA9 JUMP JUMPDEST PUSH2 0x414 JUMP JUMPDEST PUSH2 0xCE PUSH2 0xFE CALLDATASIZE PUSH1 0x4 PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0x534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH2 0x553 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0x570 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5 SWAP2 SWAP1 PUSH2 0xE7F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0x1CD CALLDATASIZE PUSH1 0x4 PUSH2 0xE92 JUMP JUMPDEST PUSH2 0x584 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x20B JUMPI PUSH1 0x40 MLOAD PUSH4 0x67AB7EFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x217 DUP6 DUP6 PUSH2 0x5FA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x227 DUP4 DUP6 ADD DUP6 PUSH2 0xEAD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x304 JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x247 JUMPI PUSH2 0x247 PUSH2 0xF89 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x269 PUSH2 0x5C7 JUMP JUMPDEST DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x27B JUMPI PUSH2 0x27B PUSH2 0xF89 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B8 SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 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 0x2FB SWAP2 SWAP1 PUSH2 0xF9F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x22C JUMP JUMPDEST POP PUSH2 0x40C PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x36D JUMPI PUSH2 0x36D PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3A0 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x38B JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE SWAP3 DUP2 ADD DUP3 MSTORE SWAP3 ADD SWAP2 SWAP1 PUSH2 0x402 JUMP JUMPDEST PUSH2 0x3EF PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x3C2 JUMPI SWAP1 POP JUMPDEST POP SWAP1 MSTORE PUSH1 0x0 PUSH2 0x637 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x459 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x475 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x483 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x4CB JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x4D3 PUSH2 0x6BA JUMP JUMPDEST PUSH2 0x4DC DUP8 PUSH2 0x6C2 JUMP JUMPDEST PUSH2 0x4E5 DUP7 PUSH2 0x6D3 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x52B JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x53C PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x545 DUP3 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x54F DUP3 DUP3 PUSH2 0x77A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55D PUSH2 0x83C JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x12A9 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x578 PUSH2 0x885 JUMP JUMPDEST PUSH2 0x582 PUSH1 0x0 PUSH2 0x8E0 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x58C PUSH2 0x885 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C4 DUP2 PUSH2 0x8E0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x9B777D7F09CA6843192B146EE41249650756FB313CBC428AA2DD37D610F1D100 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x630 DUP3 DUP5 ADD DUP5 PUSH2 0xFC1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x63F PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE289ADCD DUP3 PUSH1 0x1 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x661 SWAP2 SWAP1 PUSH2 0x118F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x68D SWAP3 SWAP2 SWAP1 PUSH2 0x1252 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x52B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x582 PUSH2 0x951 JUMP JUMPDEST PUSH2 0x6CA PUSH2 0x951 JUMP JUMPDEST PUSH2 0x5C4 DUP2 PUSH2 0x99A JUMP JUMPDEST PUSH2 0x6DB PUSH2 0x951 JUMP JUMPDEST PUSH2 0x5C4 DUP2 PUSH2 0x9A2 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x754 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x748 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5C4 PUSH2 0x885 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x7D4 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x7D1 SWAP2 DUP2 ADD SWAP1 PUSH2 0x1273 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x7FC JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x12A9 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x82D JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST PUSH2 0x837 DUP4 DUP4 PUSH2 0xA01 JUMP JUMPDEST POP POP POP JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH2 0x8B7 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x58C PUSH2 0x951 JUMP JUMPDEST PUSH2 0x9AA PUSH2 0x951 JUMP JUMPDEST PUSH32 0x9B777D7F09CA6843192B146EE41249650756FB313CBC428AA2DD37D610F1D100 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x12A9 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x5EB JUMP JUMPDEST PUSH2 0xA0A DUP3 PUSH2 0xA57 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0xA4F JUMPI PUSH2 0x837 DUP3 DUP3 PUSH2 0xABC JUMP JUMPDEST PUSH2 0x54F PUSH2 0xB32 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xA8D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x12A9 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0xAD9 SWAP2 SWAP1 PUSH2 0x128C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB14 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 0xB19 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0xB29 DUP6 DUP4 DUP4 PUSH2 0xB51 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x582 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0xB66 JUMPI PUSH2 0xB61 DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH2 0x630 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0xB7D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0xBA6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x5B2 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0xBBD JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xBFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xC4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC56 DUP8 DUP3 DUP9 ADD PUSH2 0xBD6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xC75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC81 DUP8 DUP3 DUP9 ADD PUSH2 0xBD6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xCA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCC5 DUP4 PUSH2 0xC8D JUMP JUMPDEST SWAP2 POP PUSH2 0xCD3 PUSH1 0x20 DUP5 ADD PUSH2 0xC8D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xD14 JUMPI PUSH2 0xD14 PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xD14 JUMPI PUSH2 0xD14 PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xD64 JUMPI PUSH2 0xD64 PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0xD9D JUMPI PUSH2 0xD9D PUSH2 0xCDC JUMP JUMPDEST POP PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0xDB2 DUP2 PUSH2 0xD3C JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0xDC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDFE DUP4 PUSH2 0xC8D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xE19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE25 DUP6 DUP3 DUP7 ADD PUSH2 0xD6C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE4A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xE32 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE6B DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE2F JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x630 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x630 DUP3 PUSH2 0xC8D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xED5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xEE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xEFF JUMPI PUSH2 0xEFF PUSH2 0xCDC JUMP JUMPDEST PUSH2 0xF0E PUSH1 0x20 DUP3 PUSH1 0x5 SHL ADD PUSH2 0xD3C JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x6 SHL DUP6 ADD ADD SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0xF30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0xF7F JUMPI PUSH1 0x40 DUP5 DUP9 SUB SLT ISZERO PUSH2 0xF4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF57 PUSH2 0xCF2 JUMP JUMPDEST PUSH2 0xF60 DUP6 PUSH2 0xC8D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP6 DUP2 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xF37 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x630 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xFE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xA0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0xFFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1003 PUSH2 0xD1A JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x101A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1055 DUP7 DUP3 DUP6 ADD PUSH2 0xD6C JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1074 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1080 DUP7 DUP3 DUP6 ADD PUSH2 0xD6C JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10DE JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x10C8 DUP4 DUP4 MLOAD PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x10AC JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1131 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD DUP2 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x10FE JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1131 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x40 SWAP2 DUP3 ADD MLOAD SWAP2 DUP9 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x114F JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x11A9 PUSH1 0x20 DUP3 ADD DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x100 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x11C6 PUSH2 0x120 DUP5 ADD DUP3 PUSH2 0xE53 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x11E3 DUP3 DUP3 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x1215 DUP3 DUP3 PUSH2 0x108E JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x1233 DUP3 DUP3 PUSH2 0x10EA JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0xB29 DUP3 DUP3 PUSH2 0x113B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x126B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xE53 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x129E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xE2F JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCA264697066735822122090 0xE4 PUSH21 0x717EFE8053DBA69C3EFD59D6638AFF28A8FD9536E8 POP DUP8 DUP11 BYTE PUSH23 0xD8BBAF64736F6C634300081C0033000000000000000000 ","sourceMap":"690:1478:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3052:103:74;;;;;;;;;;-1:-1:-1;712:1:74;3052:103;;;160:25:89;;;148:2;133:18;3052:103:74;;;;;;;;1086:1080:83;;;;;;;;;;-1:-1:-1;1086:1080:83;;;;;:::i;:::-;;:::i;:::-;;802:206;;;;;;;;;;-1:-1:-1;802:206:83;;;;;:::i;:::-;;:::i;4161:214:4:-;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;3155:101:2:-;;;;;;;;;;;;;:::i;2441:144::-;;;;;;;;;;-1:-1:-1;1313:22:2;2570:8;2441:144;;-1:-1:-1;;;;;2570:8:2;;;4007:51:89;;3995:2;3980:18;2441:144:2;3861:203:89;1819:58:4;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:4;;;;;;;;;;;;:::i;3405:215:2:-;;;;;;;;;;-1:-1:-1;3405:215:2;;;;;:::i;:::-;;:::i;1086:1080:83:-;1749:28:74;:26;:28::i;:::-;-1:-1:-1;;;;;1735:42:74;:10;-1:-1:-1;;;;;1735:42:74;;1731:101;;1800:21;;-1:-1:-1;;;1800:21:74;;;;;;;;;;;1731:101;1234:25:83::1;1262:27;1279:9;;1262:16;:27::i;:::-;1234:55:::0;-1:-1:-1;1333:35:83::1;1371:38;::::0;;::::1;1382:9:::0;1371:38:::1;:::i;:::-;1333:76;;1592:6;1587:220;1608:14;:21;1604:1;:25;1587:220;;;1657:14;1672:1;1657:17;;;;;;;;:::i;:::-;;;;;;;:28;;;-1:-1:-1::0;;;;;1650:44:83::1;;1712:28;:26;:28::i;:::-;1758:14;1773:1;1758:17;;;;;;;;:::i;:::-;;;;;;;:24;;;1650:146;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6575:32:89;;;;6557:51;;6639:2;6624:18;;6617:34;6545:2;6530:18;;6383:274;1650:146:83::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;1631:3:83::1;;1587:220;;;;1852:307;1880:254;;;;;;;;1910:6;:16;;;-1:-1:-1::0;;;;;1880:254:83::1;;;;;1944:6;:16;;;1880:254;;;;;;;;;;;;;;;::::0;::::1;;;;1998:1;1880:254;;;;2018:1;1880:254;;;;2050:1;-1:-1:-1::0;;;;;2037:15:83::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;1880:254:83;;::::1;::::0;;::::1;::::0;;;;2102:18;;-1:-1:-1;2102:18:83;;;;;::::1;::::0;;1880:254;;;2102:18;::::1;::::0;::::1;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2102:18:83::1;;;;;;;;;;;;;;;;-1:-1:-1::0;1880:254:83;;2148:1:::1;1852:14;:307::i;:::-;1195:971;;1086:1080:::0;;;;:::o;802:206::-;8870:21:3;4302:15;;-1:-1:-1;;;4302:15:3;;;;4301:16;;-1:-1:-1;;;;;4348:14:3;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:3;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:3;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:3;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:3;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:3;-1:-1:-1;;;5013:22:3;;;4979:67;891:24:83::1;:22;:24::i;:::-;925:21;940:5;925:14;:21::i;:::-;956:45;985:15;956:28;:45::i;:::-;5070:14:3::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:3;;;5142:14;;-1:-1:-1;7209:50:89;;5142:14:3;;7197:2:89;7182:18;5142:14:3;;;;;;;5066:101;4092:1081;;;;;802:206:83;;:::o;4161:214:4:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;3708:134::-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:4;:::o;3155:101:2:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;3405:215::-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:2;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:2;;3562:1:::1;3534:31;::::0;::::1;4007:51:89::0;3980:18;;3534:31:2::1;;;;;;;;3485:91;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;2134:145:74:-;2195:7;2076:36;2221:34;:51;-1:-1:-1;;;;;2221:51:74;;2134:145;-1:-1:-1;2134:145:74:o;2423:155::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2535:36:74;;;;2546:9;2535:36;:::i;:::-;2528:43;2423:155;-1:-1:-1;;;2423:155:74:o;2725:228::-;2836:28;:26;:28::i;:::-;-1:-1:-1;;;;;2819:58:74;;2885:9;772:1;2934:10;2923:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;2819:127;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:67:4;6931:20:3;:18;:20::i;1847:127:2:-;6931:20:3;:18;:20::i;:::-;1929:38:2::1;1954:12;1929:24;:38::i;1279:161:74:-:0;6931:20:3;:18;:20::i;:::-;1378:55:74::1;1417:15;1378:38;:55::i;4603:312:4:-:0;4683:4;-1:-1:-1;;;;;4692:6:4;4675:23;;;:120;;;4789:6;-1:-1:-1;;;;;4753:42:4;:32;:30;:32::i;:::-;-1:-1:-1;;;;;4753:42:4;;;4675:120;4658:251;;;4869:29;;-1:-1:-1;;;4869:29:4;;;;;;;;;;;1014:66:83;2334:13:2;:11;:13::i;6057:538:4:-;6174:17;-1:-1:-1;;;;;6156:50:4;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6156:52:4;;;;;;;;-1:-1:-1;;6156:52:4;;;;;;;;;;;;:::i;:::-;;;6152:437;;6518:60;;-1:-1:-1;;;6518:60:4;;-1:-1:-1;;;;;4025:32:89;;6518:60:4;;;4007:51:89;3980:18;;6518:60:4;3861:203:89;6152:437:4;-1:-1:-1;;;;;;;;;;;6250:40:4;;6246:120;;6317:34;;-1:-1:-1;;;6317:34:4;;;;;160:25:89;;;133:18;;6317:34:4;14:177:89;6246:120:4;6379:54;6409:17;6428:4;6379:29;:54::i;:::-;6209:235;6057:538;;:::o;5032:213::-;5106:4;-1:-1:-1;;;;;5115:6:4;5098:23;;5094:145;;5199:29;;-1:-1:-1;;;5199:29:4;;;;;;;;;;;2658:162:2;966:10:7;2717:7:2;1313:22;2570:8;-1:-1:-1;;;;;2570:8:2;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:2;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:2;;966:10:7;2763:40:2;;;4007:51:89;3980:18;;2763:40:2;3861:203:89;3774:248:2;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:2;;-1:-1:-1;;;;;3941:19:2;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;7084:141:3:-;8870:21;8560:40;-1:-1:-1;;;8560:40:3;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:3;;;;;;;;;;;1980:235:2;6931:20:3;:18;:20::i;1446:237:74:-;6931:20:3;:18;:20::i;:::-;2076:36:74;1640;;-1:-1:-1;;;;;;1640:36:74::1;-1:-1:-1::0;;;;;1640:36:74;;;::::1;::::0;;;::::1;::::0;;1446:237::o;1441:138:17:-;1493:7;-1:-1:-1;;;;;;;;;;;1519:47:17;1899:163:38;2264:344:17;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:17;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;1671:281::-;1748:17;-1:-1:-1;;;;;1748:29:17;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:17;;-1:-1:-1;;;;;4025:32:89;;1805:47:17;;;4007:51:89;3980:18;;1805:47:17;3861:203:89;1744:119:17;-1:-1:-1;;;;;;;;;;;1872:73:17;;-1:-1:-1;;;;;;1872:73:17;-1:-1:-1;;;;;1872:73:17;;;;;;;;;;1671:281::o;3900:253:32:-;3983:12;4008;4022:23;4049:6;-1:-1:-1;;;;;4049:19:32;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;3900:253;-1:-1:-1;;;;;3900:253:32:o;6113:122:17:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:17;;;;;;;;;;;4421:582:32;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4841:17;;:22;:49;;;;-1:-1:-1;;;;;;4867:18:32;;;:23;4841:49;4837:119;;;4917:24;;-1:-1:-1;;;4917:24:32;;-1:-1:-1;;;;;4025:32:89;;4917:24:32;;;4007:51:89;3980:18;;4917:24:32;3861:203:89;4837:119:32;-1:-1:-1;4976:10:32;4421:582;-1:-1:-1;;4421:582:32:o;5543:487::-;5674:17;;:21;5670:354;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;-1:-1:-1;;;5994:19:32;;;;;;;;;;;196:347:89;247:8;257:6;311:3;304:4;296:6;292:17;288:27;278:55;;329:1;326;319:12;278:55;-1:-1:-1;352:20:89;;-1:-1:-1;;;;;384:30:89;;381:50;;;427:1;424;417:12;381:50;464:4;456:6;452:17;440:29;;516:3;509:4;500:6;492;488:19;484:30;481:39;478:59;;;533:1;530;523:12;478:59;196:347;;;;;:::o;548:712::-;638:6;646;654;662;715:2;703:9;694:7;690:23;686:32;683:52;;;731:1;728;721:12;683:52;771:9;758:23;-1:-1:-1;;;;;796:6:89;793:30;790:50;;;836:1;833;826:12;790:50;875:58;925:7;916:6;905:9;901:22;875:58;:::i;:::-;952:8;;-1:-1:-1;849:84:89;-1:-1:-1;;1040:2:89;1025:18;;1012:32;-1:-1:-1;;;;;1056:32:89;;1053:52;;;1101:1;1098;1091:12;1053:52;1140:60;1192:7;1181:8;1170:9;1166:24;1140:60;:::i;:::-;548:712;;;;-1:-1:-1;1219:8:89;-1:-1:-1;;;;548:712:89:o;1265:173::-;1333:20;;-1:-1:-1;;;;;1382:31:89;;1372:42;;1362:70;;1428:1;1425;1418:12;1362:70;1265:173;;;:::o;1443:260::-;1511:6;1519;1572:2;1560:9;1551:7;1547:23;1543:32;1540:52;;;1588:1;1585;1578:12;1540:52;1611:29;1630:9;1611:29;:::i;:::-;1601:39;;1659:38;1693:2;1682:9;1678:18;1659:38;:::i;:::-;1649:48;;1443:260;;;;;:::o;1708:127::-;1769:10;1764:3;1760:20;1757:1;1750:31;1800:4;1797:1;1790:15;1824:4;1821:1;1814:15;1840:257;1912:4;1906:11;;;1944:17;;-1:-1:-1;;;;;1976:34:89;;2012:22;;;1973:62;1970:88;;;2038:18;;:::i;:::-;2074:4;2067:24;1840:257;:::o;2102:253::-;2174:2;2168:9;2216:4;2204:17;;-1:-1:-1;;;;;2236:34:89;;2272:22;;;2233:62;2230:88;;;2298:18;;:::i;2360:275::-;2431:2;2425:9;2496:2;2477:13;;-1:-1:-1;;2473:27:89;2461:40;;-1:-1:-1;;;;;2516:34:89;;2552:22;;;2513:62;2510:88;;;2578:18;;:::i;:::-;2614:2;2607:22;2360:275;;-1:-1:-1;2360:275:89:o;2640:635::-;2682:5;2735:3;2728:4;2720:6;2716:17;2712:27;2702:55;;2753:1;2750;2743:12;2702:55;2793:6;2780:20;2832:4;2824:6;2820:17;2861:1;2883:7;-1:-1:-1;;;;;2905:6:89;2902:30;2899:56;;;2935:18;;:::i;:::-;-1:-1:-1;3001:2:89;2980:15;;-1:-1:-1;;2976:29:89;3007:4;2972:40;3032:21;2972:40;3032:21;:::i;:::-;3021:32;;;3078:6;3069:7;3062:23;3118:3;3109:6;3104:3;3100:16;3097:25;3094:45;;;3135:1;3132;3125:12;3094:45;3186:6;3181:3;3174:4;3165:7;3161:18;3148:45;3242:1;3213:20;;;3235:4;3209:31;3202:42;;;;-1:-1:-1;3217:7:89;2640:635;-1:-1:-1;;;2640:635:89:o;3280:394::-;3357:6;3365;3418:2;3406:9;3397:7;3393:23;3389:32;3386:52;;;3434:1;3431;3424:12;3386:52;3457:29;3476:9;3457:29;:::i;:::-;3447:39;;3537:2;3526:9;3522:18;3509:32;-1:-1:-1;;;;;3556:6:89;3553:30;3550:50;;;3596:1;3593;3586:12;3550:50;3619:49;3660:7;3651:6;3640:9;3636:22;3619:49;:::i;:::-;3609:59;;;3280:394;;;;;:::o;4069:250::-;4154:1;4164:113;4178:6;4175:1;4172:13;4164:113;;;4254:11;;;4248:18;4235:11;;;4228:39;4200:2;4193:10;4164:113;;;-1:-1:-1;;4311:1:89;4293:16;;4286:27;4069:250::o;4324:271::-;4366:3;4404:5;4398:12;4431:6;4426:3;4419:19;4447:76;4516:6;4509:4;4504:3;4500:14;4493:4;4486:5;4482:16;4447:76;:::i;:::-;4577:2;4556:15;-1:-1:-1;;4552:29:89;4543:39;;;;4584:4;4539:50;;4324:271;-1:-1:-1;;4324:271:89:o;4600:220::-;4749:2;4738:9;4731:21;4712:4;4769:45;4810:2;4799:9;4795:18;4787:6;4769:45;:::i;4825:186::-;4884:6;4937:2;4925:9;4916:7;4912:23;4908:32;4905:52;;;4953:1;4950;4943:12;4905:52;4976:29;4995:9;4976:29;:::i;5016:1230::-;5130:6;5183:2;5171:9;5162:7;5158:23;5154:32;5151:52;;;5199:1;5196;5189:12;5151:52;5239:9;5226:23;-1:-1:-1;;;;;5264:6:89;5261:30;5258:50;;;5304:1;5301;5294:12;5258:50;5327:22;;5380:4;5372:13;;5368:27;-1:-1:-1;5358:55:89;;5409:1;5406;5399:12;5358:55;5449:2;5436:16;-1:-1:-1;;;;;5467:6:89;5464:30;5461:56;;;5497:18;;:::i;:::-;5537:40;5573:2;5564:6;5561:1;5557:14;5553:23;5537:40;:::i;:::-;5599:3;5623:6;5618:3;5611:19;5655:2;5650:3;5646:12;5639:19;;5710:2;5700:6;5697:1;5693:14;5689:2;5685:23;5681:32;5667:46;;5736:7;5728:6;5725:19;5722:39;;;5757:1;5754;5747:12;5722:39;5789:2;5785;5781:11;5770:22;;5801:415;5817:6;5812:3;5809:15;5801:415;;;5899:4;5893:3;5884:7;5880:17;5876:28;5873:48;;;5917:1;5914;5907:12;5873:48;5947:22;;:::i;:::-;5996:23;6015:3;5996:23;:::i;:::-;5982:38;;6095:2;6086:12;;;6073:26;6119:14;;;6112:31;6156:18;;;5843:4;5834:14;;;;6194:12;;;;;5801:415;;;6235:5;5016:1230;-1:-1:-1;;;;;;5016:1230:89:o;6251:127::-;6312:10;6307:3;6303:20;6300:1;6293:31;6343:4;6340:1;6333:15;6367:4;6364:1;6357:15;6662:277;6729:6;6782:2;6770:9;6761:7;6757:23;6753:32;6750:52;;;6798:1;6795;6788:12;6750:52;6830:9;6824:16;6883:5;6876:13;6869:21;6862:5;6859:32;6849:60;;6905:1;6902;6895:12;7270:1189;7359:6;7412:2;7400:9;7391:7;7387:23;7383:32;7380:52;;;7428:1;7425;7418:12;7380:52;7468:9;7455:23;-1:-1:-1;;;;;7493:6:89;7490:30;7487:50;;;7533:1;7530;7523:12;7487:50;7556:22;;7612:4;7594:16;;;7590:27;7587:47;;;7630:1;7627;7620:12;7587:47;7656:22;;:::i;:::-;7715:2;7702:16;-1:-1:-1;;;;;7753:7:89;7749:32;7740:7;7737:45;7727:73;;7796:1;7793;7786:12;7727:73;7809:22;;7897:2;7889:11;;;7876:25;7917:14;;;7910:31;8007:2;7999:11;;;7986:25;8027:14;;;8020:31;8097:2;8089:11;;8076:25;-1:-1:-1;;;;;8113:32:89;;8110:52;;;8158:1;8155;8148:12;8110:52;8194:44;8230:7;8219:8;8215:2;8211:17;8194:44;:::i;:::-;8189:2;8182:5;8178:14;8171:68;;8285:3;8281:2;8277:12;8264:26;-1:-1:-1;;;;;8305:8:89;8302:32;8299:52;;;8347:1;8344;8337:12;8299:52;8384:44;8420:7;8409:8;8405:2;8401:17;8384:44;:::i;:::-;8378:3;8367:15;;8360:69;-1:-1:-1;8371:5:89;7270:1189;-1:-1:-1;;;;7270:1189:89:o;8464:579::-;8516:3;8547;8579:5;8573:12;8606:6;8601:3;8594:19;8638:4;8633:3;8629:14;8622:21;;8696:4;8686:6;8683:1;8679:14;8672:5;8668:26;8664:37;8735:4;8728:5;8724:16;8758:1;8768:249;8782:6;8779:1;8776:13;8768:249;;;8869:2;8865:7;8857:5;8851:4;8847:16;8843:30;8838:3;8831:43;8895:38;8928:4;8919:6;8913:13;8895:38;:::i;:::-;8968:4;8993:14;;;;8887:46;;-1:-1:-1;8956:17:89;;;;;8804:1;8797:9;8768:249;;;-1:-1:-1;9033:4:89;;8464:579;-1:-1:-1;;;;;;8464:579:89:o;9048:546::-;9112:3;9150:5;9144:12;9177:6;9172:3;9165:19;9209:4;9204:3;9200:14;9193:21;;9248:4;9241:5;9237:16;9271:1;9281:288;9295:6;9292:1;9289:13;9281:288;;;9354:13;;9396:9;;-1:-1:-1;;;;;9392:35:89;9380:48;;9478:4;9470:13;;;9464:20;9448:14;;;9441:44;9514:4;9505:14;;;;9542:17;;;;9424:1;9310:9;9281:288;;;-1:-1:-1;9585:3:89;;9048:546;-1:-1:-1;;;;9048:546:89:o;9599:601::-;9661:3;9699:5;9693:12;9726:6;9721:3;9714:19;9758:4;9753:3;9749:14;9742:21;;9797:4;9790:5;9786:16;9820:1;9830:345;9844:6;9841:1;9838:13;9830:345;;;9903:13;;9945:9;;-1:-1:-1;;;;;9941:35:89;9929:48;;10027:4;10019:13;;;10013:20;9997:14;;;9990:44;10084:4;10076:13;;;10070:20;10054:14;;;10047:44;;;;10120:4;10111:14;;;;10148:17;;;;9973:1;9859:9;9830:345;;10205:1371;10396:2;10385:9;10378:21;10408:57;10461:2;10450:9;10446:18;10437:6;10431:13;-1:-1:-1;;;;;7014:30:89;7002:43;;6944:107;10408:57;10359:4;10512:2;10504:6;10500:15;10494:22;10552:6;10547:2;10536:9;10532:18;10525:34;10582:52;10629:3;10618:9;10614:19;10600:12;10582:52;:::i;:::-;10568:66;;10683:2;10675:6;10671:15;10665:22;10755:2;10751:7;10739:9;10731:6;10727:22;10723:36;10718:2;10707:9;10703:18;10696:64;10783:41;10817:6;10801:14;10783:41;:::i;:::-;10769:55;;;10879:2;10871:6;10867:15;10861:22;10855:3;10844:9;10840:19;10833:51;10939:3;10931:6;10927:16;10921:23;10915:3;10904:9;10900:19;10893:52;10994:3;10986:6;10982:16;10976:23;11068:2;11064:7;11052:9;11044:6;11040:22;11036:36;11030:3;11019:9;11015:19;11008:65;11096:51;11140:6;11124:14;11096:51;:::i;:::-;11082:65;;;11196:3;11188:6;11184:16;11178:23;11270:2;11266:7;11254:9;11246:6;11242:22;11238:36;11232:3;11221:9;11217:19;11210:65;11298:63;11354:6;11338:14;11298:63;:::i;:::-;11284:77;;;11410:3;11402:6;11398:16;11392:23;11487:2;11483:7;11471:9;11463:6;11459:22;11455:36;11446:6;11435:9;11431:22;11424:68;11509:61;11563:6;11547:14;11509:61;:::i;11581:289::-;11756:6;11745:9;11738:25;11799:2;11794;11783:9;11779:18;11772:30;11719:4;11819:45;11860:2;11849:9;11845:18;11837:6;11819:45;:::i;:::-;11811:53;11581:289;-1:-1:-1;;;;11581:289:89:o;11875:184::-;11945:6;11998:2;11986:9;11977:7;11973:23;11969:32;11966:52;;;12014:1;12011;12004:12;11966:52;-1:-1:-1;12037:16:89;;11875:184;-1:-1:-1;11875:184:89:o;12064:287::-;12193:3;12231:6;12225:13;12247:66;12306:6;12301:3;12294:4;12286:6;12282:17;12247:66;:::i;:::-;12329:16;;;;;12064:287;-1:-1:-1;;12064:287:89:o"},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","getVersion()":"0d8e6e2c","initialize(address,address)":"485cc955","myProxyFunction(bytes,bytes)":"31cd5675","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCrossChainLayer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"crossChainLayer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"tacHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"}],\"name\":\"myProxyFunction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"getVersion()\":{\"details\":\"Get Tac Proxy contract version.\",\"returns\":{\"_0\":\"Contract version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"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.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MyProxyUpgradeable.sol\":\"MyProxyUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/ICrossChainLayer.sol\":{\"keccak256\":\"0x435aeb361378447362b2bfc59de69237ec85706d9755e53b46b48c84a0ea186c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9d91e1e5c1b2a4b0df3ea28cd7ef3956147f082873d8abf03d9963aaa13a60\",\"dweb:/ipfs/QmVFL9rUScnu5XKk9ZioWZbyqq4sdFPz19dowWsfzE3fUM\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/proxies/TacProxy.sol\":{\"keccak256\":\"0xbc37790a2523ad054248c90df15a3e8855afabaabf26e90c43a4d23e9cacd962\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee86fe6c1d7dec9068d88059f27aa62e40e7f8ae89ba00c077ed8eafac7edea1\",\"dweb:/ipfs/QmXDMLLkphX2a2jmvvFTmN1TqgtEroefKLpoFmFXNZbu56\"]},\"contracts/proxies/TacProxyV1Upgradeable.sol\":{\"keccak256\":\"0x64f9792d830341316893d6a19d4264aca33e39cba0a1ef72f70d430c3d3a4abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c8bcb432c68eb0d56e2e4944df26a749853d4b7501403c3e08ce91de12006bd\",\"dweb:/ipfs/QmRzp2cPtB1YWEcae4fp8TFtJJE4JhgupeET35c5SboRgn\"]},\"contracts/test/MyProxyUpgradeable.sol\":{\"keccak256\":\"0xbba60f566ce05910517a1b12326ab6e10b7f4f1fec58ecf7d4983806c5e93370\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830801b6664a5a2de80087e68b72cfdfd4c8a87a2f17772a34eb3237639a9602\",\"dweb:/ipfs/QmVRN55YmqJcAXL7H4ARwgevFwoTgHRSXx9rQ7eCPVtAnX\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/test/TestERC721Token.sol":{"TestERC721Token":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_20457":{"entryPoint":null,"id":20457,"parameterSlots":3,"returnSlots":0},"@_5242":{"entryPoint":null,"id":5242,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":122,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":285,"id":null,"parameterSlots":2,"returnSlots":3},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":492,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":571,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":434,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":100,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4273:89","nodeType":"YulBlock","src":"0:4273:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"46:95:89","nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:89","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:89","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:89","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:89","nodeType":"YulIdentifier","src":"66:3:89"},"nativeSrc":"66:20:89","nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nativeSrc":"56:6:89","nodeType":"YulIdentifier","src":"56:6:89"},"nativeSrc":"56:31:89","nodeType":"YulFunctionCall","src":"56:31:89"},"nativeSrc":"56:31:89","nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:89","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:89","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:89","nodeType":"YulIdentifier","src":"96:6:89"},"nativeSrc":"96:15:89","nodeType":"YulFunctionCall","src":"96:15:89"},"nativeSrc":"96:15:89","nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:89","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:89","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:89","nodeType":"YulIdentifier","src":"120:6:89"},"nativeSrc":"120:15:89","nodeType":"YulFunctionCall","src":"120:15:89"},"nativeSrc":"120:15:89","nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nativeSrc":"14:127:89","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nativeSrc":"210:770:89","nodeType":"YulBlock","src":"210:770:89","statements":[{"body":{"nativeSrc":"259:16:89","nodeType":"YulBlock","src":"259:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"268:1:89","nodeType":"YulLiteral","src":"268:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"271:1:89","nodeType":"YulLiteral","src":"271:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"261:6:89","nodeType":"YulIdentifier","src":"261:6:89"},"nativeSrc":"261:12:89","nodeType":"YulFunctionCall","src":"261:12:89"},"nativeSrc":"261:12:89","nodeType":"YulExpressionStatement","src":"261:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"238:6:89","nodeType":"YulIdentifier","src":"238:6:89"},{"kind":"number","nativeSrc":"246:4:89","nodeType":"YulLiteral","src":"246:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"234:3:89","nodeType":"YulIdentifier","src":"234:3:89"},"nativeSrc":"234:17:89","nodeType":"YulFunctionCall","src":"234:17:89"},{"name":"end","nativeSrc":"253:3:89","nodeType":"YulIdentifier","src":"253:3:89"}],"functionName":{"name":"slt","nativeSrc":"230:3:89","nodeType":"YulIdentifier","src":"230:3:89"},"nativeSrc":"230:27:89","nodeType":"YulFunctionCall","src":"230:27:89"}],"functionName":{"name":"iszero","nativeSrc":"223:6:89","nodeType":"YulIdentifier","src":"223:6:89"},"nativeSrc":"223:35:89","nodeType":"YulFunctionCall","src":"223:35:89"},"nativeSrc":"220:55:89","nodeType":"YulIf","src":"220:55:89"},{"nativeSrc":"284:27:89","nodeType":"YulVariableDeclaration","src":"284:27:89","value":{"arguments":[{"name":"offset","nativeSrc":"304:6:89","nodeType":"YulIdentifier","src":"304:6:89"}],"functionName":{"name":"mload","nativeSrc":"298:5:89","nodeType":"YulIdentifier","src":"298:5:89"},"nativeSrc":"298:13:89","nodeType":"YulFunctionCall","src":"298:13:89"},"variables":[{"name":"length","nativeSrc":"288:6:89","nodeType":"YulTypedName","src":"288:6:89","type":""}]},{"body":{"nativeSrc":"354:22:89","nodeType":"YulBlock","src":"354:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"356:16:89","nodeType":"YulIdentifier","src":"356:16:89"},"nativeSrc":"356:18:89","nodeType":"YulFunctionCall","src":"356:18:89"},"nativeSrc":"356:18:89","nodeType":"YulExpressionStatement","src":"356:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"326:6:89","nodeType":"YulIdentifier","src":"326:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"342:2:89","nodeType":"YulLiteral","src":"342:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"346:1:89","nodeType":"YulLiteral","src":"346:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"338:3:89","nodeType":"YulIdentifier","src":"338:3:89"},"nativeSrc":"338:10:89","nodeType":"YulFunctionCall","src":"338:10:89"},{"kind":"number","nativeSrc":"350:1:89","nodeType":"YulLiteral","src":"350:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"334:3:89","nodeType":"YulIdentifier","src":"334:3:89"},"nativeSrc":"334:18:89","nodeType":"YulFunctionCall","src":"334:18:89"}],"functionName":{"name":"gt","nativeSrc":"323:2:89","nodeType":"YulIdentifier","src":"323:2:89"},"nativeSrc":"323:30:89","nodeType":"YulFunctionCall","src":"323:30:89"},"nativeSrc":"320:56:89","nodeType":"YulIf","src":"320:56:89"},{"nativeSrc":"385:23:89","nodeType":"YulVariableDeclaration","src":"385:23:89","value":{"arguments":[{"kind":"number","nativeSrc":"405:2:89","nodeType":"YulLiteral","src":"405:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"399:5:89","nodeType":"YulIdentifier","src":"399:5:89"},"nativeSrc":"399:9:89","nodeType":"YulFunctionCall","src":"399:9:89"},"variables":[{"name":"memPtr","nativeSrc":"389:6:89","nodeType":"YulTypedName","src":"389:6:89","type":""}]},{"nativeSrc":"417:85:89","nodeType":"YulVariableDeclaration","src":"417:85:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"439:6:89","nodeType":"YulIdentifier","src":"439:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"463:6:89","nodeType":"YulIdentifier","src":"463:6:89"},{"kind":"number","nativeSrc":"471:4:89","nodeType":"YulLiteral","src":"471:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"459:3:89","nodeType":"YulIdentifier","src":"459:3:89"},"nativeSrc":"459:17:89","nodeType":"YulFunctionCall","src":"459:17:89"},{"arguments":[{"kind":"number","nativeSrc":"482:2:89","nodeType":"YulLiteral","src":"482:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"478:3:89","nodeType":"YulIdentifier","src":"478:3:89"},"nativeSrc":"478:7:89","nodeType":"YulFunctionCall","src":"478:7:89"}],"functionName":{"name":"and","nativeSrc":"455:3:89","nodeType":"YulIdentifier","src":"455:3:89"},"nativeSrc":"455:31:89","nodeType":"YulFunctionCall","src":"455:31:89"},{"kind":"number","nativeSrc":"488:2:89","nodeType":"YulLiteral","src":"488:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"451:3:89","nodeType":"YulIdentifier","src":"451:3:89"},"nativeSrc":"451:40:89","nodeType":"YulFunctionCall","src":"451:40:89"},{"arguments":[{"kind":"number","nativeSrc":"497:2:89","nodeType":"YulLiteral","src":"497:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"493:3:89","nodeType":"YulIdentifier","src":"493:3:89"},"nativeSrc":"493:7:89","nodeType":"YulFunctionCall","src":"493:7:89"}],"functionName":{"name":"and","nativeSrc":"447:3:89","nodeType":"YulIdentifier","src":"447:3:89"},"nativeSrc":"447:54:89","nodeType":"YulFunctionCall","src":"447:54:89"}],"functionName":{"name":"add","nativeSrc":"435:3:89","nodeType":"YulIdentifier","src":"435:3:89"},"nativeSrc":"435:67:89","nodeType":"YulFunctionCall","src":"435:67:89"},"variables":[{"name":"newFreePtr","nativeSrc":"421:10:89","nodeType":"YulTypedName","src":"421:10:89","type":""}]},{"body":{"nativeSrc":"577:22:89","nodeType":"YulBlock","src":"577:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"579:16:89","nodeType":"YulIdentifier","src":"579:16:89"},"nativeSrc":"579:18:89","nodeType":"YulFunctionCall","src":"579:18:89"},"nativeSrc":"579:18:89","nodeType":"YulExpressionStatement","src":"579:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"520:10:89","nodeType":"YulIdentifier","src":"520:10:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"540:2:89","nodeType":"YulLiteral","src":"540:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"544:1:89","nodeType":"YulLiteral","src":"544:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"536:3:89","nodeType":"YulIdentifier","src":"536:3:89"},"nativeSrc":"536:10:89","nodeType":"YulFunctionCall","src":"536:10:89"},{"kind":"number","nativeSrc":"548:1:89","nodeType":"YulLiteral","src":"548:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"532:3:89","nodeType":"YulIdentifier","src":"532:3:89"},"nativeSrc":"532:18:89","nodeType":"YulFunctionCall","src":"532:18:89"}],"functionName":{"name":"gt","nativeSrc":"517:2:89","nodeType":"YulIdentifier","src":"517:2:89"},"nativeSrc":"517:34:89","nodeType":"YulFunctionCall","src":"517:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"556:10:89","nodeType":"YulIdentifier","src":"556:10:89"},{"name":"memPtr","nativeSrc":"568:6:89","nodeType":"YulIdentifier","src":"568:6:89"}],"functionName":{"name":"lt","nativeSrc":"553:2:89","nodeType":"YulIdentifier","src":"553:2:89"},"nativeSrc":"553:22:89","nodeType":"YulFunctionCall","src":"553:22:89"}],"functionName":{"name":"or","nativeSrc":"514:2:89","nodeType":"YulIdentifier","src":"514:2:89"},"nativeSrc":"514:62:89","nodeType":"YulFunctionCall","src":"514:62:89"},"nativeSrc":"511:88:89","nodeType":"YulIf","src":"511:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"615:2:89","nodeType":"YulLiteral","src":"615:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"619:10:89","nodeType":"YulIdentifier","src":"619:10:89"}],"functionName":{"name":"mstore","nativeSrc":"608:6:89","nodeType":"YulIdentifier","src":"608:6:89"},"nativeSrc":"608:22:89","nodeType":"YulFunctionCall","src":"608:22:89"},"nativeSrc":"608:22:89","nodeType":"YulExpressionStatement","src":"608:22:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"646:6:89","nodeType":"YulIdentifier","src":"646:6:89"},{"name":"length","nativeSrc":"654:6:89","nodeType":"YulIdentifier","src":"654:6:89"}],"functionName":{"name":"mstore","nativeSrc":"639:6:89","nodeType":"YulIdentifier","src":"639:6:89"},"nativeSrc":"639:22:89","nodeType":"YulFunctionCall","src":"639:22:89"},"nativeSrc":"639:22:89","nodeType":"YulExpressionStatement","src":"639:22:89"},{"body":{"nativeSrc":"713:16:89","nodeType":"YulBlock","src":"713:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"722:1:89","nodeType":"YulLiteral","src":"722:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"725:1:89","nodeType":"YulLiteral","src":"725:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"715:6:89","nodeType":"YulIdentifier","src":"715:6:89"},"nativeSrc":"715:12:89","nodeType":"YulFunctionCall","src":"715:12:89"},"nativeSrc":"715:12:89","nodeType":"YulExpressionStatement","src":"715:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"684:6:89","nodeType":"YulIdentifier","src":"684:6:89"},{"name":"length","nativeSrc":"692:6:89","nodeType":"YulIdentifier","src":"692:6:89"}],"functionName":{"name":"add","nativeSrc":"680:3:89","nodeType":"YulIdentifier","src":"680:3:89"},"nativeSrc":"680:19:89","nodeType":"YulFunctionCall","src":"680:19:89"},{"kind":"number","nativeSrc":"701:4:89","nodeType":"YulLiteral","src":"701:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"676:3:89","nodeType":"YulIdentifier","src":"676:3:89"},"nativeSrc":"676:30:89","nodeType":"YulFunctionCall","src":"676:30:89"},{"name":"end","nativeSrc":"708:3:89","nodeType":"YulIdentifier","src":"708:3:89"}],"functionName":{"name":"gt","nativeSrc":"673:2:89","nodeType":"YulIdentifier","src":"673:2:89"},"nativeSrc":"673:39:89","nodeType":"YulFunctionCall","src":"673:39:89"},"nativeSrc":"670:59:89","nodeType":"YulIf","src":"670:59:89"},{"nativeSrc":"738:10:89","nodeType":"YulVariableDeclaration","src":"738:10:89","value":{"kind":"number","nativeSrc":"747:1:89","nodeType":"YulLiteral","src":"747:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"742:1:89","nodeType":"YulTypedName","src":"742:1:89","type":""}]},{"body":{"nativeSrc":"809:91:89","nodeType":"YulBlock","src":"809:91:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"838:6:89","nodeType":"YulIdentifier","src":"838:6:89"},{"name":"i","nativeSrc":"846:1:89","nodeType":"YulIdentifier","src":"846:1:89"}],"functionName":{"name":"add","nativeSrc":"834:3:89","nodeType":"YulIdentifier","src":"834:3:89"},"nativeSrc":"834:14:89","nodeType":"YulFunctionCall","src":"834:14:89"},{"kind":"number","nativeSrc":"850:4:89","nodeType":"YulLiteral","src":"850:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"830:3:89","nodeType":"YulIdentifier","src":"830:3:89"},"nativeSrc":"830:25:89","nodeType":"YulFunctionCall","src":"830:25:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"871:6:89","nodeType":"YulIdentifier","src":"871:6:89"},{"name":"i","nativeSrc":"879:1:89","nodeType":"YulIdentifier","src":"879:1:89"}],"functionName":{"name":"add","nativeSrc":"867:3:89","nodeType":"YulIdentifier","src":"867:3:89"},"nativeSrc":"867:14:89","nodeType":"YulFunctionCall","src":"867:14:89"},{"kind":"number","nativeSrc":"883:4:89","nodeType":"YulLiteral","src":"883:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"863:3:89","nodeType":"YulIdentifier","src":"863:3:89"},"nativeSrc":"863:25:89","nodeType":"YulFunctionCall","src":"863:25:89"}],"functionName":{"name":"mload","nativeSrc":"857:5:89","nodeType":"YulIdentifier","src":"857:5:89"},"nativeSrc":"857:32:89","nodeType":"YulFunctionCall","src":"857:32:89"}],"functionName":{"name":"mstore","nativeSrc":"823:6:89","nodeType":"YulIdentifier","src":"823:6:89"},"nativeSrc":"823:67:89","nodeType":"YulFunctionCall","src":"823:67:89"},"nativeSrc":"823:67:89","nodeType":"YulExpressionStatement","src":"823:67:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"768:1:89","nodeType":"YulIdentifier","src":"768:1:89"},{"name":"length","nativeSrc":"771:6:89","nodeType":"YulIdentifier","src":"771:6:89"}],"functionName":{"name":"lt","nativeSrc":"765:2:89","nodeType":"YulIdentifier","src":"765:2:89"},"nativeSrc":"765:13:89","nodeType":"YulFunctionCall","src":"765:13:89"},"nativeSrc":"757:143:89","nodeType":"YulForLoop","post":{"nativeSrc":"779:21:89","nodeType":"YulBlock","src":"779:21:89","statements":[{"nativeSrc":"781:17:89","nodeType":"YulAssignment","src":"781:17:89","value":{"arguments":[{"name":"i","nativeSrc":"790:1:89","nodeType":"YulIdentifier","src":"790:1:89"},{"kind":"number","nativeSrc":"793:4:89","nodeType":"YulLiteral","src":"793:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"786:3:89","nodeType":"YulIdentifier","src":"786:3:89"},"nativeSrc":"786:12:89","nodeType":"YulFunctionCall","src":"786:12:89"},"variableNames":[{"name":"i","nativeSrc":"781:1:89","nodeType":"YulIdentifier","src":"781:1:89"}]}]},"pre":{"nativeSrc":"761:3:89","nodeType":"YulBlock","src":"761:3:89","statements":[]},"src":"757:143:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"924:6:89","nodeType":"YulIdentifier","src":"924:6:89"},{"name":"length","nativeSrc":"932:6:89","nodeType":"YulIdentifier","src":"932:6:89"}],"functionName":{"name":"add","nativeSrc":"920:3:89","nodeType":"YulIdentifier","src":"920:3:89"},"nativeSrc":"920:19:89","nodeType":"YulFunctionCall","src":"920:19:89"},{"kind":"number","nativeSrc":"941:4:89","nodeType":"YulLiteral","src":"941:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"916:3:89","nodeType":"YulIdentifier","src":"916:3:89"},"nativeSrc":"916:30:89","nodeType":"YulFunctionCall","src":"916:30:89"},{"kind":"number","nativeSrc":"948:1:89","nodeType":"YulLiteral","src":"948:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"909:6:89","nodeType":"YulIdentifier","src":"909:6:89"},"nativeSrc":"909:41:89","nodeType":"YulFunctionCall","src":"909:41:89"},"nativeSrc":"909:41:89","nodeType":"YulExpressionStatement","src":"909:41:89"},{"nativeSrc":"959:15:89","nodeType":"YulAssignment","src":"959:15:89","value":{"name":"memPtr","nativeSrc":"968:6:89","nodeType":"YulIdentifier","src":"968:6:89"},"variableNames":[{"name":"array","nativeSrc":"959:5:89","nodeType":"YulIdentifier","src":"959:5:89"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"146:834:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"184:6:89","nodeType":"YulTypedName","src":"184:6:89","type":""},{"name":"end","nativeSrc":"192:3:89","nodeType":"YulTypedName","src":"192:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"200:5:89","nodeType":"YulTypedName","src":"200:5:89","type":""}],"src":"146:834:89"},{"body":{"nativeSrc":"1130:632:89","nodeType":"YulBlock","src":"1130:632:89","statements":[{"body":{"nativeSrc":"1176:16:89","nodeType":"YulBlock","src":"1176:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1185:1:89","nodeType":"YulLiteral","src":"1185:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1188:1:89","nodeType":"YulLiteral","src":"1188:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1178:6:89","nodeType":"YulIdentifier","src":"1178:6:89"},"nativeSrc":"1178:12:89","nodeType":"YulFunctionCall","src":"1178:12:89"},"nativeSrc":"1178:12:89","nodeType":"YulExpressionStatement","src":"1178:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1151:7:89","nodeType":"YulIdentifier","src":"1151:7:89"},{"name":"headStart","nativeSrc":"1160:9:89","nodeType":"YulIdentifier","src":"1160:9:89"}],"functionName":{"name":"sub","nativeSrc":"1147:3:89","nodeType":"YulIdentifier","src":"1147:3:89"},"nativeSrc":"1147:23:89","nodeType":"YulFunctionCall","src":"1147:23:89"},{"kind":"number","nativeSrc":"1172:2:89","nodeType":"YulLiteral","src":"1172:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1143:3:89","nodeType":"YulIdentifier","src":"1143:3:89"},"nativeSrc":"1143:32:89","nodeType":"YulFunctionCall","src":"1143:32:89"},"nativeSrc":"1140:52:89","nodeType":"YulIf","src":"1140:52:89"},{"nativeSrc":"1201:30:89","nodeType":"YulVariableDeclaration","src":"1201:30:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1221:9:89","nodeType":"YulIdentifier","src":"1221:9:89"}],"functionName":{"name":"mload","nativeSrc":"1215:5:89","nodeType":"YulIdentifier","src":"1215:5:89"},"nativeSrc":"1215:16:89","nodeType":"YulFunctionCall","src":"1215:16:89"},"variables":[{"name":"offset","nativeSrc":"1205:6:89","nodeType":"YulTypedName","src":"1205:6:89","type":""}]},{"body":{"nativeSrc":"1274:16:89","nodeType":"YulBlock","src":"1274:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1283:1:89","nodeType":"YulLiteral","src":"1283:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1286:1:89","nodeType":"YulLiteral","src":"1286:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1276:6:89","nodeType":"YulIdentifier","src":"1276:6:89"},"nativeSrc":"1276:12:89","nodeType":"YulFunctionCall","src":"1276:12:89"},"nativeSrc":"1276:12:89","nodeType":"YulExpressionStatement","src":"1276:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1246:6:89","nodeType":"YulIdentifier","src":"1246:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1262:2:89","nodeType":"YulLiteral","src":"1262:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"1266:1:89","nodeType":"YulLiteral","src":"1266:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1258:3:89","nodeType":"YulIdentifier","src":"1258:3:89"},"nativeSrc":"1258:10:89","nodeType":"YulFunctionCall","src":"1258:10:89"},{"kind":"number","nativeSrc":"1270:1:89","nodeType":"YulLiteral","src":"1270:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1254:3:89","nodeType":"YulIdentifier","src":"1254:3:89"},"nativeSrc":"1254:18:89","nodeType":"YulFunctionCall","src":"1254:18:89"}],"functionName":{"name":"gt","nativeSrc":"1243:2:89","nodeType":"YulIdentifier","src":"1243:2:89"},"nativeSrc":"1243:30:89","nodeType":"YulFunctionCall","src":"1243:30:89"},"nativeSrc":"1240:50:89","nodeType":"YulIf","src":"1240:50:89"},{"nativeSrc":"1299:71:89","nodeType":"YulAssignment","src":"1299:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1342:9:89","nodeType":"YulIdentifier","src":"1342:9:89"},{"name":"offset","nativeSrc":"1353:6:89","nodeType":"YulIdentifier","src":"1353:6:89"}],"functionName":{"name":"add","nativeSrc":"1338:3:89","nodeType":"YulIdentifier","src":"1338:3:89"},"nativeSrc":"1338:22:89","nodeType":"YulFunctionCall","src":"1338:22:89"},{"name":"dataEnd","nativeSrc":"1362:7:89","nodeType":"YulIdentifier","src":"1362:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1309:28:89","nodeType":"YulIdentifier","src":"1309:28:89"},"nativeSrc":"1309:61:89","nodeType":"YulFunctionCall","src":"1309:61:89"},"variableNames":[{"name":"value0","nativeSrc":"1299:6:89","nodeType":"YulIdentifier","src":"1299:6:89"}]},{"nativeSrc":"1379:41:89","nodeType":"YulVariableDeclaration","src":"1379:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1405:9:89","nodeType":"YulIdentifier","src":"1405:9:89"},{"kind":"number","nativeSrc":"1416:2:89","nodeType":"YulLiteral","src":"1416:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1401:3:89","nodeType":"YulIdentifier","src":"1401:3:89"},"nativeSrc":"1401:18:89","nodeType":"YulFunctionCall","src":"1401:18:89"}],"functionName":{"name":"mload","nativeSrc":"1395:5:89","nodeType":"YulIdentifier","src":"1395:5:89"},"nativeSrc":"1395:25:89","nodeType":"YulFunctionCall","src":"1395:25:89"},"variables":[{"name":"offset_1","nativeSrc":"1383:8:89","nodeType":"YulTypedName","src":"1383:8:89","type":""}]},{"body":{"nativeSrc":"1465:16:89","nodeType":"YulBlock","src":"1465:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1474:1:89","nodeType":"YulLiteral","src":"1474:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1477:1:89","nodeType":"YulLiteral","src":"1477:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1467:6:89","nodeType":"YulIdentifier","src":"1467:6:89"},"nativeSrc":"1467:12:89","nodeType":"YulFunctionCall","src":"1467:12:89"},"nativeSrc":"1467:12:89","nodeType":"YulExpressionStatement","src":"1467:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1435:8:89","nodeType":"YulIdentifier","src":"1435:8:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1453:2:89","nodeType":"YulLiteral","src":"1453:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"1457:1:89","nodeType":"YulLiteral","src":"1457:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1449:3:89","nodeType":"YulIdentifier","src":"1449:3:89"},"nativeSrc":"1449:10:89","nodeType":"YulFunctionCall","src":"1449:10:89"},{"kind":"number","nativeSrc":"1461:1:89","nodeType":"YulLiteral","src":"1461:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1445:3:89","nodeType":"YulIdentifier","src":"1445:3:89"},"nativeSrc":"1445:18:89","nodeType":"YulFunctionCall","src":"1445:18:89"}],"functionName":{"name":"gt","nativeSrc":"1432:2:89","nodeType":"YulIdentifier","src":"1432:2:89"},"nativeSrc":"1432:32:89","nodeType":"YulFunctionCall","src":"1432:32:89"},"nativeSrc":"1429:52:89","nodeType":"YulIf","src":"1429:52:89"},{"nativeSrc":"1490:73:89","nodeType":"YulAssignment","src":"1490:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1533:9:89","nodeType":"YulIdentifier","src":"1533:9:89"},{"name":"offset_1","nativeSrc":"1544:8:89","nodeType":"YulIdentifier","src":"1544:8:89"}],"functionName":{"name":"add","nativeSrc":"1529:3:89","nodeType":"YulIdentifier","src":"1529:3:89"},"nativeSrc":"1529:24:89","nodeType":"YulFunctionCall","src":"1529:24:89"},{"name":"dataEnd","nativeSrc":"1555:7:89","nodeType":"YulIdentifier","src":"1555:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1500:28:89","nodeType":"YulIdentifier","src":"1500:28:89"},"nativeSrc":"1500:63:89","nodeType":"YulFunctionCall","src":"1500:63:89"},"variableNames":[{"name":"value1","nativeSrc":"1490:6:89","nodeType":"YulIdentifier","src":"1490:6:89"}]},{"nativeSrc":"1572:41:89","nodeType":"YulVariableDeclaration","src":"1572:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1598:9:89","nodeType":"YulIdentifier","src":"1598:9:89"},{"kind":"number","nativeSrc":"1609:2:89","nodeType":"YulLiteral","src":"1609:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1594:3:89","nodeType":"YulIdentifier","src":"1594:3:89"},"nativeSrc":"1594:18:89","nodeType":"YulFunctionCall","src":"1594:18:89"}],"functionName":{"name":"mload","nativeSrc":"1588:5:89","nodeType":"YulIdentifier","src":"1588:5:89"},"nativeSrc":"1588:25:89","nodeType":"YulFunctionCall","src":"1588:25:89"},"variables":[{"name":"offset_2","nativeSrc":"1576:8:89","nodeType":"YulTypedName","src":"1576:8:89","type":""}]},{"body":{"nativeSrc":"1658:16:89","nodeType":"YulBlock","src":"1658:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1667:1:89","nodeType":"YulLiteral","src":"1667:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1670:1:89","nodeType":"YulLiteral","src":"1670:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1660:6:89","nodeType":"YulIdentifier","src":"1660:6:89"},"nativeSrc":"1660:12:89","nodeType":"YulFunctionCall","src":"1660:12:89"},"nativeSrc":"1660:12:89","nodeType":"YulExpressionStatement","src":"1660:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"1628:8:89","nodeType":"YulIdentifier","src":"1628:8:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1646:2:89","nodeType":"YulLiteral","src":"1646:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"1650:1:89","nodeType":"YulLiteral","src":"1650:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1642:3:89","nodeType":"YulIdentifier","src":"1642:3:89"},"nativeSrc":"1642:10:89","nodeType":"YulFunctionCall","src":"1642:10:89"},{"kind":"number","nativeSrc":"1654:1:89","nodeType":"YulLiteral","src":"1654:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1638:3:89","nodeType":"YulIdentifier","src":"1638:3:89"},"nativeSrc":"1638:18:89","nodeType":"YulFunctionCall","src":"1638:18:89"}],"functionName":{"name":"gt","nativeSrc":"1625:2:89","nodeType":"YulIdentifier","src":"1625:2:89"},"nativeSrc":"1625:32:89","nodeType":"YulFunctionCall","src":"1625:32:89"},"nativeSrc":"1622:52:89","nodeType":"YulIf","src":"1622:52:89"},{"nativeSrc":"1683:73:89","nodeType":"YulAssignment","src":"1683:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1726:9:89","nodeType":"YulIdentifier","src":"1726:9:89"},{"name":"offset_2","nativeSrc":"1737:8:89","nodeType":"YulIdentifier","src":"1737:8:89"}],"functionName":{"name":"add","nativeSrc":"1722:3:89","nodeType":"YulIdentifier","src":"1722:3:89"},"nativeSrc":"1722:24:89","nodeType":"YulFunctionCall","src":"1722:24:89"},{"name":"dataEnd","nativeSrc":"1748:7:89","nodeType":"YulIdentifier","src":"1748:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1693:28:89","nodeType":"YulIdentifier","src":"1693:28:89"},"nativeSrc":"1693:63:89","nodeType":"YulFunctionCall","src":"1693:63:89"},"variableNames":[{"name":"value2","nativeSrc":"1683:6:89","nodeType":"YulIdentifier","src":"1683:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr_fromMemory","nativeSrc":"985:777:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1080:9:89","nodeType":"YulTypedName","src":"1080:9:89","type":""},{"name":"dataEnd","nativeSrc":"1091:7:89","nodeType":"YulTypedName","src":"1091:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1103:6:89","nodeType":"YulTypedName","src":"1103:6:89","type":""},{"name":"value1","nativeSrc":"1111:6:89","nodeType":"YulTypedName","src":"1111:6:89","type":""},{"name":"value2","nativeSrc":"1119:6:89","nodeType":"YulTypedName","src":"1119:6:89","type":""}],"src":"985:777:89"},{"body":{"nativeSrc":"1822:325:89","nodeType":"YulBlock","src":"1822:325:89","statements":[{"nativeSrc":"1832:22:89","nodeType":"YulAssignment","src":"1832:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"1846:1:89","nodeType":"YulLiteral","src":"1846:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"1849:4:89","nodeType":"YulIdentifier","src":"1849:4:89"}],"functionName":{"name":"shr","nativeSrc":"1842:3:89","nodeType":"YulIdentifier","src":"1842:3:89"},"nativeSrc":"1842:12:89","nodeType":"YulFunctionCall","src":"1842:12:89"},"variableNames":[{"name":"length","nativeSrc":"1832:6:89","nodeType":"YulIdentifier","src":"1832:6:89"}]},{"nativeSrc":"1863:38:89","nodeType":"YulVariableDeclaration","src":"1863:38:89","value":{"arguments":[{"name":"data","nativeSrc":"1893:4:89","nodeType":"YulIdentifier","src":"1893:4:89"},{"kind":"number","nativeSrc":"1899:1:89","nodeType":"YulLiteral","src":"1899:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1889:3:89","nodeType":"YulIdentifier","src":"1889:3:89"},"nativeSrc":"1889:12:89","nodeType":"YulFunctionCall","src":"1889:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"1867:18:89","nodeType":"YulTypedName","src":"1867:18:89","type":""}]},{"body":{"nativeSrc":"1940:31:89","nodeType":"YulBlock","src":"1940:31:89","statements":[{"nativeSrc":"1942:27:89","nodeType":"YulAssignment","src":"1942:27:89","value":{"arguments":[{"name":"length","nativeSrc":"1956:6:89","nodeType":"YulIdentifier","src":"1956:6:89"},{"kind":"number","nativeSrc":"1964:4:89","nodeType":"YulLiteral","src":"1964:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"1952:3:89","nodeType":"YulIdentifier","src":"1952:3:89"},"nativeSrc":"1952:17:89","nodeType":"YulFunctionCall","src":"1952:17:89"},"variableNames":[{"name":"length","nativeSrc":"1942:6:89","nodeType":"YulIdentifier","src":"1942:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1920:18:89","nodeType":"YulIdentifier","src":"1920:18:89"}],"functionName":{"name":"iszero","nativeSrc":"1913:6:89","nodeType":"YulIdentifier","src":"1913:6:89"},"nativeSrc":"1913:26:89","nodeType":"YulFunctionCall","src":"1913:26:89"},"nativeSrc":"1910:61:89","nodeType":"YulIf","src":"1910:61:89"},{"body":{"nativeSrc":"2030:111:89","nodeType":"YulBlock","src":"2030:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2051:1:89","nodeType":"YulLiteral","src":"2051:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2058:3:89","nodeType":"YulLiteral","src":"2058:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"2063:10:89","nodeType":"YulLiteral","src":"2063:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2054:3:89","nodeType":"YulIdentifier","src":"2054:3:89"},"nativeSrc":"2054:20:89","nodeType":"YulFunctionCall","src":"2054:20:89"}],"functionName":{"name":"mstore","nativeSrc":"2044:6:89","nodeType":"YulIdentifier","src":"2044:6:89"},"nativeSrc":"2044:31:89","nodeType":"YulFunctionCall","src":"2044:31:89"},"nativeSrc":"2044:31:89","nodeType":"YulExpressionStatement","src":"2044:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2095:1:89","nodeType":"YulLiteral","src":"2095:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"2098:4:89","nodeType":"YulLiteral","src":"2098:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"2088:6:89","nodeType":"YulIdentifier","src":"2088:6:89"},"nativeSrc":"2088:15:89","nodeType":"YulFunctionCall","src":"2088:15:89"},"nativeSrc":"2088:15:89","nodeType":"YulExpressionStatement","src":"2088:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2123:1:89","nodeType":"YulLiteral","src":"2123:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2126:4:89","nodeType":"YulLiteral","src":"2126:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2116:6:89","nodeType":"YulIdentifier","src":"2116:6:89"},"nativeSrc":"2116:15:89","nodeType":"YulFunctionCall","src":"2116:15:89"},"nativeSrc":"2116:15:89","nodeType":"YulExpressionStatement","src":"2116:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1986:18:89","nodeType":"YulIdentifier","src":"1986:18:89"},{"arguments":[{"name":"length","nativeSrc":"2009:6:89","nodeType":"YulIdentifier","src":"2009:6:89"},{"kind":"number","nativeSrc":"2017:2:89","nodeType":"YulLiteral","src":"2017:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2006:2:89","nodeType":"YulIdentifier","src":"2006:2:89"},"nativeSrc":"2006:14:89","nodeType":"YulFunctionCall","src":"2006:14:89"}],"functionName":{"name":"eq","nativeSrc":"1983:2:89","nodeType":"YulIdentifier","src":"1983:2:89"},"nativeSrc":"1983:38:89","nodeType":"YulFunctionCall","src":"1983:38:89"},"nativeSrc":"1980:161:89","nodeType":"YulIf","src":"1980:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"1767:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1802:4:89","nodeType":"YulTypedName","src":"1802:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1811:6:89","nodeType":"YulTypedName","src":"1811:6:89","type":""}],"src":"1767:380:89"},{"body":{"nativeSrc":"2208:65:89","nodeType":"YulBlock","src":"2208:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2225:1:89","nodeType":"YulLiteral","src":"2225:1:89","type":"","value":"0"},{"name":"ptr","nativeSrc":"2228:3:89","nodeType":"YulIdentifier","src":"2228:3:89"}],"functionName":{"name":"mstore","nativeSrc":"2218:6:89","nodeType":"YulIdentifier","src":"2218:6:89"},"nativeSrc":"2218:14:89","nodeType":"YulFunctionCall","src":"2218:14:89"},"nativeSrc":"2218:14:89","nodeType":"YulExpressionStatement","src":"2218:14:89"},{"nativeSrc":"2241:26:89","nodeType":"YulAssignment","src":"2241:26:89","value":{"arguments":[{"kind":"number","nativeSrc":"2259:1:89","nodeType":"YulLiteral","src":"2259:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2262:4:89","nodeType":"YulLiteral","src":"2262:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2249:9:89","nodeType":"YulIdentifier","src":"2249:9:89"},"nativeSrc":"2249:18:89","nodeType":"YulFunctionCall","src":"2249:18:89"},"variableNames":[{"name":"data","nativeSrc":"2241:4:89","nodeType":"YulIdentifier","src":"2241:4:89"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"2152:121:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"2191:3:89","nodeType":"YulTypedName","src":"2191:3:89","type":""}],"returnVariables":[{"name":"data","nativeSrc":"2199:4:89","nodeType":"YulTypedName","src":"2199:4:89","type":""}],"src":"2152:121:89"},{"body":{"nativeSrc":"2359:437:89","nodeType":"YulBlock","src":"2359:437:89","statements":[{"body":{"nativeSrc":"2392:398:89","nodeType":"YulBlock","src":"2392:398:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2413:1:89","nodeType":"YulLiteral","src":"2413:1:89","type":"","value":"0"},{"name":"array","nativeSrc":"2416:5:89","nodeType":"YulIdentifier","src":"2416:5:89"}],"functionName":{"name":"mstore","nativeSrc":"2406:6:89","nodeType":"YulIdentifier","src":"2406:6:89"},"nativeSrc":"2406:16:89","nodeType":"YulFunctionCall","src":"2406:16:89"},"nativeSrc":"2406:16:89","nodeType":"YulExpressionStatement","src":"2406:16:89"},{"nativeSrc":"2435:30:89","nodeType":"YulVariableDeclaration","src":"2435:30:89","value":{"arguments":[{"kind":"number","nativeSrc":"2457:1:89","nodeType":"YulLiteral","src":"2457:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2460:4:89","nodeType":"YulLiteral","src":"2460:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2447:9:89","nodeType":"YulIdentifier","src":"2447:9:89"},"nativeSrc":"2447:18:89","nodeType":"YulFunctionCall","src":"2447:18:89"},"variables":[{"name":"data","nativeSrc":"2439:4:89","nodeType":"YulTypedName","src":"2439:4:89","type":""}]},{"nativeSrc":"2478:57:89","nodeType":"YulVariableDeclaration","src":"2478:57:89","value":{"arguments":[{"name":"data","nativeSrc":"2501:4:89","nodeType":"YulIdentifier","src":"2501:4:89"},{"arguments":[{"kind":"number","nativeSrc":"2511:1:89","nodeType":"YulLiteral","src":"2511:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"2518:10:89","nodeType":"YulIdentifier","src":"2518:10:89"},{"kind":"number","nativeSrc":"2530:2:89","nodeType":"YulLiteral","src":"2530:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2514:3:89","nodeType":"YulIdentifier","src":"2514:3:89"},"nativeSrc":"2514:19:89","nodeType":"YulFunctionCall","src":"2514:19:89"}],"functionName":{"name":"shr","nativeSrc":"2507:3:89","nodeType":"YulIdentifier","src":"2507:3:89"},"nativeSrc":"2507:27:89","nodeType":"YulFunctionCall","src":"2507:27:89"}],"functionName":{"name":"add","nativeSrc":"2497:3:89","nodeType":"YulIdentifier","src":"2497:3:89"},"nativeSrc":"2497:38:89","nodeType":"YulFunctionCall","src":"2497:38:89"},"variables":[{"name":"deleteStart","nativeSrc":"2482:11:89","nodeType":"YulTypedName","src":"2482:11:89","type":""}]},{"body":{"nativeSrc":"2572:23:89","nodeType":"YulBlock","src":"2572:23:89","statements":[{"nativeSrc":"2574:19:89","nodeType":"YulAssignment","src":"2574:19:89","value":{"name":"data","nativeSrc":"2589:4:89","nodeType":"YulIdentifier","src":"2589:4:89"},"variableNames":[{"name":"deleteStart","nativeSrc":"2574:11:89","nodeType":"YulIdentifier","src":"2574:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"2554:10:89","nodeType":"YulIdentifier","src":"2554:10:89"},{"kind":"number","nativeSrc":"2566:4:89","nodeType":"YulLiteral","src":"2566:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"2551:2:89","nodeType":"YulIdentifier","src":"2551:2:89"},"nativeSrc":"2551:20:89","nodeType":"YulFunctionCall","src":"2551:20:89"},"nativeSrc":"2548:47:89","nodeType":"YulIf","src":"2548:47:89"},{"nativeSrc":"2608:41:89","nodeType":"YulVariableDeclaration","src":"2608:41:89","value":{"arguments":[{"name":"data","nativeSrc":"2622:4:89","nodeType":"YulIdentifier","src":"2622:4:89"},{"arguments":[{"kind":"number","nativeSrc":"2632:1:89","nodeType":"YulLiteral","src":"2632:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"2639:3:89","nodeType":"YulIdentifier","src":"2639:3:89"},{"kind":"number","nativeSrc":"2644:2:89","nodeType":"YulLiteral","src":"2644:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2635:3:89","nodeType":"YulIdentifier","src":"2635:3:89"},"nativeSrc":"2635:12:89","nodeType":"YulFunctionCall","src":"2635:12:89"}],"functionName":{"name":"shr","nativeSrc":"2628:3:89","nodeType":"YulIdentifier","src":"2628:3:89"},"nativeSrc":"2628:20:89","nodeType":"YulFunctionCall","src":"2628:20:89"}],"functionName":{"name":"add","nativeSrc":"2618:3:89","nodeType":"YulIdentifier","src":"2618:3:89"},"nativeSrc":"2618:31:89","nodeType":"YulFunctionCall","src":"2618:31:89"},"variables":[{"name":"_1","nativeSrc":"2612:2:89","nodeType":"YulTypedName","src":"2612:2:89","type":""}]},{"nativeSrc":"2662:24:89","nodeType":"YulVariableDeclaration","src":"2662:24:89","value":{"name":"deleteStart","nativeSrc":"2675:11:89","nodeType":"YulIdentifier","src":"2675:11:89"},"variables":[{"name":"start","nativeSrc":"2666:5:89","nodeType":"YulTypedName","src":"2666:5:89","type":""}]},{"body":{"nativeSrc":"2760:20:89","nodeType":"YulBlock","src":"2760:20:89","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"2769:5:89","nodeType":"YulIdentifier","src":"2769:5:89"},{"kind":"number","nativeSrc":"2776:1:89","nodeType":"YulLiteral","src":"2776:1:89","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"2762:6:89","nodeType":"YulIdentifier","src":"2762:6:89"},"nativeSrc":"2762:16:89","nodeType":"YulFunctionCall","src":"2762:16:89"},"nativeSrc":"2762:16:89","nodeType":"YulExpressionStatement","src":"2762:16:89"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"2710:5:89","nodeType":"YulIdentifier","src":"2710:5:89"},{"name":"_1","nativeSrc":"2717:2:89","nodeType":"YulIdentifier","src":"2717:2:89"}],"functionName":{"name":"lt","nativeSrc":"2707:2:89","nodeType":"YulIdentifier","src":"2707:2:89"},"nativeSrc":"2707:13:89","nodeType":"YulFunctionCall","src":"2707:13:89"},"nativeSrc":"2699:81:89","nodeType":"YulForLoop","post":{"nativeSrc":"2721:26:89","nodeType":"YulBlock","src":"2721:26:89","statements":[{"nativeSrc":"2723:22:89","nodeType":"YulAssignment","src":"2723:22:89","value":{"arguments":[{"name":"start","nativeSrc":"2736:5:89","nodeType":"YulIdentifier","src":"2736:5:89"},{"kind":"number","nativeSrc":"2743:1:89","nodeType":"YulLiteral","src":"2743:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2732:3:89","nodeType":"YulIdentifier","src":"2732:3:89"},"nativeSrc":"2732:13:89","nodeType":"YulFunctionCall","src":"2732:13:89"},"variableNames":[{"name":"start","nativeSrc":"2723:5:89","nodeType":"YulIdentifier","src":"2723:5:89"}]}]},"pre":{"nativeSrc":"2703:3:89","nodeType":"YulBlock","src":"2703:3:89","statements":[]},"src":"2699:81:89"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2375:3:89","nodeType":"YulIdentifier","src":"2375:3:89"},{"kind":"number","nativeSrc":"2380:2:89","nodeType":"YulLiteral","src":"2380:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2372:2:89","nodeType":"YulIdentifier","src":"2372:2:89"},"nativeSrc":"2372:11:89","nodeType":"YulFunctionCall","src":"2372:11:89"},"nativeSrc":"2369:421:89","nodeType":"YulIf","src":"2369:421:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2278:518:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2331:5:89","nodeType":"YulTypedName","src":"2331:5:89","type":""},{"name":"len","nativeSrc":"2338:3:89","nodeType":"YulTypedName","src":"2338:3:89","type":""},{"name":"startIndex","nativeSrc":"2343:10:89","nodeType":"YulTypedName","src":"2343:10:89","type":""}],"src":"2278:518:89"},{"body":{"nativeSrc":"2886:81:89","nodeType":"YulBlock","src":"2886:81:89","statements":[{"nativeSrc":"2896:65:89","nodeType":"YulAssignment","src":"2896:65:89","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"2911:4:89","nodeType":"YulIdentifier","src":"2911:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2929:1:89","nodeType":"YulLiteral","src":"2929:1:89","type":"","value":"3"},{"name":"len","nativeSrc":"2932:3:89","nodeType":"YulIdentifier","src":"2932:3:89"}],"functionName":{"name":"shl","nativeSrc":"2925:3:89","nodeType":"YulIdentifier","src":"2925:3:89"},"nativeSrc":"2925:11:89","nodeType":"YulFunctionCall","src":"2925:11:89"},{"arguments":[{"kind":"number","nativeSrc":"2942:1:89","nodeType":"YulLiteral","src":"2942:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2938:3:89","nodeType":"YulIdentifier","src":"2938:3:89"},"nativeSrc":"2938:6:89","nodeType":"YulFunctionCall","src":"2938:6:89"}],"functionName":{"name":"shr","nativeSrc":"2921:3:89","nodeType":"YulIdentifier","src":"2921:3:89"},"nativeSrc":"2921:24:89","nodeType":"YulFunctionCall","src":"2921:24:89"}],"functionName":{"name":"not","nativeSrc":"2917:3:89","nodeType":"YulIdentifier","src":"2917:3:89"},"nativeSrc":"2917:29:89","nodeType":"YulFunctionCall","src":"2917:29:89"}],"functionName":{"name":"and","nativeSrc":"2907:3:89","nodeType":"YulIdentifier","src":"2907:3:89"},"nativeSrc":"2907:40:89","nodeType":"YulFunctionCall","src":"2907:40:89"},{"arguments":[{"kind":"number","nativeSrc":"2953:1:89","nodeType":"YulLiteral","src":"2953:1:89","type":"","value":"1"},{"name":"len","nativeSrc":"2956:3:89","nodeType":"YulIdentifier","src":"2956:3:89"}],"functionName":{"name":"shl","nativeSrc":"2949:3:89","nodeType":"YulIdentifier","src":"2949:3:89"},"nativeSrc":"2949:11:89","nodeType":"YulFunctionCall","src":"2949:11:89"}],"functionName":{"name":"or","nativeSrc":"2904:2:89","nodeType":"YulIdentifier","src":"2904:2:89"},"nativeSrc":"2904:57:89","nodeType":"YulFunctionCall","src":"2904:57:89"},"variableNames":[{"name":"used","nativeSrc":"2896:4:89","nodeType":"YulIdentifier","src":"2896:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2801:166:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2863:4:89","nodeType":"YulTypedName","src":"2863:4:89","type":""},{"name":"len","nativeSrc":"2869:3:89","nodeType":"YulTypedName","src":"2869:3:89","type":""}],"returnVariables":[{"name":"used","nativeSrc":"2877:4:89","nodeType":"YulTypedName","src":"2877:4:89","type":""}],"src":"2801:166:89"},{"body":{"nativeSrc":"3068:1203:89","nodeType":"YulBlock","src":"3068:1203:89","statements":[{"nativeSrc":"3078:24:89","nodeType":"YulVariableDeclaration","src":"3078:24:89","value":{"arguments":[{"name":"src","nativeSrc":"3098:3:89","nodeType":"YulIdentifier","src":"3098:3:89"}],"functionName":{"name":"mload","nativeSrc":"3092:5:89","nodeType":"YulIdentifier","src":"3092:5:89"},"nativeSrc":"3092:10:89","nodeType":"YulFunctionCall","src":"3092:10:89"},"variables":[{"name":"newLen","nativeSrc":"3082:6:89","nodeType":"YulTypedName","src":"3082:6:89","type":""}]},{"body":{"nativeSrc":"3145:22:89","nodeType":"YulBlock","src":"3145:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3147:16:89","nodeType":"YulIdentifier","src":"3147:16:89"},"nativeSrc":"3147:18:89","nodeType":"YulFunctionCall","src":"3147:18:89"},"nativeSrc":"3147:18:89","nodeType":"YulExpressionStatement","src":"3147:18:89"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"3117:6:89","nodeType":"YulIdentifier","src":"3117:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3133:2:89","nodeType":"YulLiteral","src":"3133:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"3137:1:89","nodeType":"YulLiteral","src":"3137:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3129:3:89","nodeType":"YulIdentifier","src":"3129:3:89"},"nativeSrc":"3129:10:89","nodeType":"YulFunctionCall","src":"3129:10:89"},{"kind":"number","nativeSrc":"3141:1:89","nodeType":"YulLiteral","src":"3141:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3125:3:89","nodeType":"YulIdentifier","src":"3125:3:89"},"nativeSrc":"3125:18:89","nodeType":"YulFunctionCall","src":"3125:18:89"}],"functionName":{"name":"gt","nativeSrc":"3114:2:89","nodeType":"YulIdentifier","src":"3114:2:89"},"nativeSrc":"3114:30:89","nodeType":"YulFunctionCall","src":"3114:30:89"},"nativeSrc":"3111:56:89","nodeType":"YulIf","src":"3111:56:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3220:4:89","nodeType":"YulIdentifier","src":"3220:4:89"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3258:4:89","nodeType":"YulIdentifier","src":"3258:4:89"}],"functionName":{"name":"sload","nativeSrc":"3252:5:89","nodeType":"YulIdentifier","src":"3252:5:89"},"nativeSrc":"3252:11:89","nodeType":"YulFunctionCall","src":"3252:11:89"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"3226:25:89","nodeType":"YulIdentifier","src":"3226:25:89"},"nativeSrc":"3226:38:89","nodeType":"YulFunctionCall","src":"3226:38:89"},{"name":"newLen","nativeSrc":"3266:6:89","nodeType":"YulIdentifier","src":"3266:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"3176:43:89","nodeType":"YulIdentifier","src":"3176:43:89"},"nativeSrc":"3176:97:89","nodeType":"YulFunctionCall","src":"3176:97:89"},"nativeSrc":"3176:97:89","nodeType":"YulExpressionStatement","src":"3176:97:89"},{"nativeSrc":"3282:18:89","nodeType":"YulVariableDeclaration","src":"3282:18:89","value":{"kind":"number","nativeSrc":"3299:1:89","nodeType":"YulLiteral","src":"3299:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"3286:9:89","nodeType":"YulTypedName","src":"3286:9:89","type":""}]},{"nativeSrc":"3309:17:89","nodeType":"YulAssignment","src":"3309:17:89","value":{"kind":"number","nativeSrc":"3322:4:89","nodeType":"YulLiteral","src":"3322:4:89","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"3309:9:89","nodeType":"YulIdentifier","src":"3309:9:89"}]},{"cases":[{"body":{"nativeSrc":"3372:642:89","nodeType":"YulBlock","src":"3372:642:89","statements":[{"nativeSrc":"3386:35:89","nodeType":"YulVariableDeclaration","src":"3386:35:89","value":{"arguments":[{"name":"newLen","nativeSrc":"3405:6:89","nodeType":"YulIdentifier","src":"3405:6:89"},{"arguments":[{"kind":"number","nativeSrc":"3417:2:89","nodeType":"YulLiteral","src":"3417:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3413:3:89","nodeType":"YulIdentifier","src":"3413:3:89"},"nativeSrc":"3413:7:89","nodeType":"YulFunctionCall","src":"3413:7:89"}],"functionName":{"name":"and","nativeSrc":"3401:3:89","nodeType":"YulIdentifier","src":"3401:3:89"},"nativeSrc":"3401:20:89","nodeType":"YulFunctionCall","src":"3401:20:89"},"variables":[{"name":"loopEnd","nativeSrc":"3390:7:89","nodeType":"YulTypedName","src":"3390:7:89","type":""}]},{"nativeSrc":"3434:49:89","nodeType":"YulVariableDeclaration","src":"3434:49:89","value":{"arguments":[{"name":"slot","nativeSrc":"3478:4:89","nodeType":"YulIdentifier","src":"3478:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"3448:29:89","nodeType":"YulIdentifier","src":"3448:29:89"},"nativeSrc":"3448:35:89","nodeType":"YulFunctionCall","src":"3448:35:89"},"variables":[{"name":"dstPtr","nativeSrc":"3438:6:89","nodeType":"YulTypedName","src":"3438:6:89","type":""}]},{"nativeSrc":"3496:10:89","nodeType":"YulVariableDeclaration","src":"3496:10:89","value":{"kind":"number","nativeSrc":"3505:1:89","nodeType":"YulLiteral","src":"3505:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3500:1:89","nodeType":"YulTypedName","src":"3500:1:89","type":""}]},{"body":{"nativeSrc":"3576:165:89","nodeType":"YulBlock","src":"3576:165:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3601:6:89","nodeType":"YulIdentifier","src":"3601:6:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3619:3:89","nodeType":"YulIdentifier","src":"3619:3:89"},{"name":"srcOffset","nativeSrc":"3624:9:89","nodeType":"YulIdentifier","src":"3624:9:89"}],"functionName":{"name":"add","nativeSrc":"3615:3:89","nodeType":"YulIdentifier","src":"3615:3:89"},"nativeSrc":"3615:19:89","nodeType":"YulFunctionCall","src":"3615:19:89"}],"functionName":{"name":"mload","nativeSrc":"3609:5:89","nodeType":"YulIdentifier","src":"3609:5:89"},"nativeSrc":"3609:26:89","nodeType":"YulFunctionCall","src":"3609:26:89"}],"functionName":{"name":"sstore","nativeSrc":"3594:6:89","nodeType":"YulIdentifier","src":"3594:6:89"},"nativeSrc":"3594:42:89","nodeType":"YulFunctionCall","src":"3594:42:89"},"nativeSrc":"3594:42:89","nodeType":"YulExpressionStatement","src":"3594:42:89"},{"nativeSrc":"3653:24:89","nodeType":"YulAssignment","src":"3653:24:89","value":{"arguments":[{"name":"dstPtr","nativeSrc":"3667:6:89","nodeType":"YulIdentifier","src":"3667:6:89"},{"kind":"number","nativeSrc":"3675:1:89","nodeType":"YulLiteral","src":"3675:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3663:3:89","nodeType":"YulIdentifier","src":"3663:3:89"},"nativeSrc":"3663:14:89","nodeType":"YulFunctionCall","src":"3663:14:89"},"variableNames":[{"name":"dstPtr","nativeSrc":"3653:6:89","nodeType":"YulIdentifier","src":"3653:6:89"}]},{"nativeSrc":"3694:33:89","nodeType":"YulAssignment","src":"3694:33:89","value":{"arguments":[{"name":"srcOffset","nativeSrc":"3711:9:89","nodeType":"YulIdentifier","src":"3711:9:89"},{"kind":"number","nativeSrc":"3722:4:89","nodeType":"YulLiteral","src":"3722:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3707:3:89","nodeType":"YulIdentifier","src":"3707:3:89"},"nativeSrc":"3707:20:89","nodeType":"YulFunctionCall","src":"3707:20:89"},"variableNames":[{"name":"srcOffset","nativeSrc":"3694:9:89","nodeType":"YulIdentifier","src":"3694:9:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3530:1:89","nodeType":"YulIdentifier","src":"3530:1:89"},{"name":"loopEnd","nativeSrc":"3533:7:89","nodeType":"YulIdentifier","src":"3533:7:89"}],"functionName":{"name":"lt","nativeSrc":"3527:2:89","nodeType":"YulIdentifier","src":"3527:2:89"},"nativeSrc":"3527:14:89","nodeType":"YulFunctionCall","src":"3527:14:89"},"nativeSrc":"3519:222:89","nodeType":"YulForLoop","post":{"nativeSrc":"3542:21:89","nodeType":"YulBlock","src":"3542:21:89","statements":[{"nativeSrc":"3544:17:89","nodeType":"YulAssignment","src":"3544:17:89","value":{"arguments":[{"name":"i","nativeSrc":"3553:1:89","nodeType":"YulIdentifier","src":"3553:1:89"},{"kind":"number","nativeSrc":"3556:4:89","nodeType":"YulLiteral","src":"3556:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3549:3:89","nodeType":"YulIdentifier","src":"3549:3:89"},"nativeSrc":"3549:12:89","nodeType":"YulFunctionCall","src":"3549:12:89"},"variableNames":[{"name":"i","nativeSrc":"3544:1:89","nodeType":"YulIdentifier","src":"3544:1:89"}]}]},"pre":{"nativeSrc":"3523:3:89","nodeType":"YulBlock","src":"3523:3:89","statements":[]},"src":"3519:222:89"},{"body":{"nativeSrc":"3789:166:89","nodeType":"YulBlock","src":"3789:166:89","statements":[{"nativeSrc":"3807:43:89","nodeType":"YulVariableDeclaration","src":"3807:43:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3834:3:89","nodeType":"YulIdentifier","src":"3834:3:89"},{"name":"srcOffset","nativeSrc":"3839:9:89","nodeType":"YulIdentifier","src":"3839:9:89"}],"functionName":{"name":"add","nativeSrc":"3830:3:89","nodeType":"YulIdentifier","src":"3830:3:89"},"nativeSrc":"3830:19:89","nodeType":"YulFunctionCall","src":"3830:19:89"}],"functionName":{"name":"mload","nativeSrc":"3824:5:89","nodeType":"YulIdentifier","src":"3824:5:89"},"nativeSrc":"3824:26:89","nodeType":"YulFunctionCall","src":"3824:26:89"},"variables":[{"name":"lastValue","nativeSrc":"3811:9:89","nodeType":"YulTypedName","src":"3811:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3874:6:89","nodeType":"YulIdentifier","src":"3874:6:89"},{"arguments":[{"name":"lastValue","nativeSrc":"3886:9:89","nodeType":"YulIdentifier","src":"3886:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3913:1:89","nodeType":"YulLiteral","src":"3913:1:89","type":"","value":"3"},{"name":"newLen","nativeSrc":"3916:6:89","nodeType":"YulIdentifier","src":"3916:6:89"}],"functionName":{"name":"shl","nativeSrc":"3909:3:89","nodeType":"YulIdentifier","src":"3909:3:89"},"nativeSrc":"3909:14:89","nodeType":"YulFunctionCall","src":"3909:14:89"},{"kind":"number","nativeSrc":"3925:3:89","nodeType":"YulLiteral","src":"3925:3:89","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"3905:3:89","nodeType":"YulIdentifier","src":"3905:3:89"},"nativeSrc":"3905:24:89","nodeType":"YulFunctionCall","src":"3905:24:89"},{"arguments":[{"kind":"number","nativeSrc":"3935:1:89","nodeType":"YulLiteral","src":"3935:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3931:3:89","nodeType":"YulIdentifier","src":"3931:3:89"},"nativeSrc":"3931:6:89","nodeType":"YulFunctionCall","src":"3931:6:89"}],"functionName":{"name":"shr","nativeSrc":"3901:3:89","nodeType":"YulIdentifier","src":"3901:3:89"},"nativeSrc":"3901:37:89","nodeType":"YulFunctionCall","src":"3901:37:89"}],"functionName":{"name":"not","nativeSrc":"3897:3:89","nodeType":"YulIdentifier","src":"3897:3:89"},"nativeSrc":"3897:42:89","nodeType":"YulFunctionCall","src":"3897:42:89"}],"functionName":{"name":"and","nativeSrc":"3882:3:89","nodeType":"YulIdentifier","src":"3882:3:89"},"nativeSrc":"3882:58:89","nodeType":"YulFunctionCall","src":"3882:58:89"}],"functionName":{"name":"sstore","nativeSrc":"3867:6:89","nodeType":"YulIdentifier","src":"3867:6:89"},"nativeSrc":"3867:74:89","nodeType":"YulFunctionCall","src":"3867:74:89"},"nativeSrc":"3867:74:89","nodeType":"YulExpressionStatement","src":"3867:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"3760:7:89","nodeType":"YulIdentifier","src":"3760:7:89"},{"name":"newLen","nativeSrc":"3769:6:89","nodeType":"YulIdentifier","src":"3769:6:89"}],"functionName":{"name":"lt","nativeSrc":"3757:2:89","nodeType":"YulIdentifier","src":"3757:2:89"},"nativeSrc":"3757:19:89","nodeType":"YulFunctionCall","src":"3757:19:89"},"nativeSrc":"3754:201:89","nodeType":"YulIf","src":"3754:201:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3975:4:89","nodeType":"YulIdentifier","src":"3975:4:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3989:1:89","nodeType":"YulLiteral","src":"3989:1:89","type":"","value":"1"},{"name":"newLen","nativeSrc":"3992:6:89","nodeType":"YulIdentifier","src":"3992:6:89"}],"functionName":{"name":"shl","nativeSrc":"3985:3:89","nodeType":"YulIdentifier","src":"3985:3:89"},"nativeSrc":"3985:14:89","nodeType":"YulFunctionCall","src":"3985:14:89"},{"kind":"number","nativeSrc":"4001:1:89","nodeType":"YulLiteral","src":"4001:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3981:3:89","nodeType":"YulIdentifier","src":"3981:3:89"},"nativeSrc":"3981:22:89","nodeType":"YulFunctionCall","src":"3981:22:89"}],"functionName":{"name":"sstore","nativeSrc":"3968:6:89","nodeType":"YulIdentifier","src":"3968:6:89"},"nativeSrc":"3968:36:89","nodeType":"YulFunctionCall","src":"3968:36:89"},"nativeSrc":"3968:36:89","nodeType":"YulExpressionStatement","src":"3968:36:89"}]},"nativeSrc":"3365:649:89","nodeType":"YulCase","src":"3365:649:89","value":{"kind":"number","nativeSrc":"3370:1:89","nodeType":"YulLiteral","src":"3370:1:89","type":"","value":"1"}},{"body":{"nativeSrc":"4031:234:89","nodeType":"YulBlock","src":"4031:234:89","statements":[{"nativeSrc":"4045:14:89","nodeType":"YulVariableDeclaration","src":"4045:14:89","value":{"kind":"number","nativeSrc":"4058:1:89","nodeType":"YulLiteral","src":"4058:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4049:5:89","nodeType":"YulTypedName","src":"4049:5:89","type":""}]},{"body":{"nativeSrc":"4094:67:89","nodeType":"YulBlock","src":"4094:67:89","statements":[{"nativeSrc":"4112:35:89","nodeType":"YulAssignment","src":"4112:35:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4131:3:89","nodeType":"YulIdentifier","src":"4131:3:89"},{"name":"srcOffset","nativeSrc":"4136:9:89","nodeType":"YulIdentifier","src":"4136:9:89"}],"functionName":{"name":"add","nativeSrc":"4127:3:89","nodeType":"YulIdentifier","src":"4127:3:89"},"nativeSrc":"4127:19:89","nodeType":"YulFunctionCall","src":"4127:19:89"}],"functionName":{"name":"mload","nativeSrc":"4121:5:89","nodeType":"YulIdentifier","src":"4121:5:89"},"nativeSrc":"4121:26:89","nodeType":"YulFunctionCall","src":"4121:26:89"},"variableNames":[{"name":"value","nativeSrc":"4112:5:89","nodeType":"YulIdentifier","src":"4112:5:89"}]}]},"condition":{"name":"newLen","nativeSrc":"4075:6:89","nodeType":"YulIdentifier","src":"4075:6:89"},"nativeSrc":"4072:89:89","nodeType":"YulIf","src":"4072:89:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4181:4:89","nodeType":"YulIdentifier","src":"4181:4:89"},{"arguments":[{"name":"value","nativeSrc":"4240:5:89","nodeType":"YulIdentifier","src":"4240:5:89"},{"name":"newLen","nativeSrc":"4247:6:89","nodeType":"YulIdentifier","src":"4247:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"4187:52:89","nodeType":"YulIdentifier","src":"4187:52:89"},"nativeSrc":"4187:67:89","nodeType":"YulFunctionCall","src":"4187:67:89"}],"functionName":{"name":"sstore","nativeSrc":"4174:6:89","nodeType":"YulIdentifier","src":"4174:6:89"},"nativeSrc":"4174:81:89","nodeType":"YulFunctionCall","src":"4174:81:89"},"nativeSrc":"4174:81:89","nodeType":"YulExpressionStatement","src":"4174:81:89"}]},"nativeSrc":"4023:242:89","nodeType":"YulCase","src":"4023:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"3345:6:89","nodeType":"YulIdentifier","src":"3345:6:89"},{"kind":"number","nativeSrc":"3353:2:89","nodeType":"YulLiteral","src":"3353:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3342:2:89","nodeType":"YulIdentifier","src":"3342:2:89"},"nativeSrc":"3342:14:89","nodeType":"YulFunctionCall","src":"3342:14:89"},"nativeSrc":"3335:930:89","nodeType":"YulSwitch","src":"3335:930:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"2972:1299:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3053:4:89","nodeType":"YulTypedName","src":"3053:4:89","type":""},{"name":"src","nativeSrc":"3059:3:89","nodeType":"YulTypedName","src":"3059:3:89","type":""}],"src":"2972:1299:89"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := mload(offset)\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(add(memPtr, i), 0x20), mload(add(add(offset, i), 0x20)))\n        }\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n        let offset_2 := mload(add(headStart, 64))\n        if gt(offset_2, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value2 := abi_decode_string_fromMemory(add(headStart, offset_2), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161129038038061129083398101604081905261002f9161011d565b8282600061003d838261023b565b50600161004a828261023b565b506006915061005b9050828261023b565b505050506102f9565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261008b57600080fd5b81516001600160401b038111156100a4576100a4610064565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d2576100d2610064565b6040528181528382016020018510156100ea57600080fd5b60005b82811015610109576020818601810151838301820152016100ed565b506000918101602001919091529392505050565b60008060006060848603121561013257600080fd5b83516001600160401b0381111561014857600080fd5b6101548682870161007a565b602086015190945090506001600160401b0381111561017257600080fd5b61017e8682870161007a565b604086015190935090506001600160401b0381111561019c57600080fd5b6101a88682870161007a565b9150509250925092565b600181811c908216806101c657607f821691505b6020821081036101e657634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561023657806000526020600020601f840160051c810160208510156102135750805b601f840160051c820191505b81811015610233576000815560010161021f565b50505b505050565b81516001600160401b0381111561025457610254610064565b6102688161026284546101b2565b846101ec565b6020601f82116001811461029c57600083156102845750848201515b600019600385901b1c1916600184901b178455610233565b600084815260208120601f198516915b828110156102cc57878501518255602094850194600190920191016102ac565b50848210156102ea5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610f88806103086000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806340c10f191461017f57806342842e0e1461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610bef565b61022d565b60405190151581526020015b60405180910390f35b61011f61027f565b60405161010e9190610c5c565b61013f61013a366004610c6f565b610311565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610ca4565b61033a565b005b61016a61017a366004610cce565b610349565b61016a61018d366004610ca4565b6103d9565b61016a6101a0366004610cce565b6103e3565b61013f6101b3366004610c6f565b610403565b6101cb6101c6366004610d0b565b61040e565b60405190815260200161010e565b61011f610456565b61016a6101ef366004610d26565b610465565b61016a610202366004610d78565b610470565b61011f610215366004610c6f565b610488565b610102610228366004610e5c565b6104f0565b60006001600160e01b031982166380ac58cd60e01b148061025e57506001600160e01b03198216635b5e139f60e01b145b8061027957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461028e90610e8f565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba90610e8f565b80156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505050905090565b600061031c8261051e565b506000828152600460205260409020546001600160a01b0316610279565b610345828233610557565b5050565b6001600160a01b03821661037857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610385838333610564565b9050836001600160a01b0316816001600160a01b0316146103d3576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161036f565b50505050565b610345828261065d565b6103fe83838360405180602001604052806000815250610470565b505050565b60006102798261051e565b60006001600160a01b03821661043a576040516322718ad960e21b81526000600482015260240161036f565b506001600160a01b031660009081526003602052604090205490565b60606001805461028e90610e8f565b6103453383836106c2565b61047b848484610349565b6103d33385858585610761565b60606104938261051e565b50600061049e61088c565b905060008151116104be57604051806020016040528060008152506104e9565b806104c88461089b565b6040516020016104d9929190610ec9565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260408120546001600160a01b03168061027957604051637e27328960e01b81526004810184905260240161036f565b6103fe838383600161092e565b6000828152600260205260408120546001600160a01b039081169083161561059157610591818486610a34565b6001600160a01b038116156105cf576105ae60008560008061092e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b038516156105fe576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661068757604051633250574960e11b81526000600482015260240161036f565b600061069583836000610564565b90506001600160a01b038116156103fe576040516339e3563760e11b81526000600482015260240161036f565b6001600160a01b0382166106f457604051630b61174360e31b81526001600160a01b038316600482015260240161036f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561088557604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906107a3908890889087908790600401610ef8565b6020604051808303816000875af19250505080156107de575060408051601f3d908101601f191682019092526107db91810190610f35565b60015b610847573d80801561080c576040519150601f19603f3d011682016040523d82523d6000602084013e610811565b606091505b50805160000361083f57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461088357604051633250574960e11b81526001600160a01b038516600482015260240161036f565b505b5050505050565b60606006805461028e90610e8f565b606060006108a883610a98565b600101905060008167ffffffffffffffff8111156108c8576108c8610d62565b6040519080825280601f01601f1916602001820160405280156108f2576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846108fc57509392505050565b808061094257506001600160a01b03821615155b15610a045760006109528461051e565b90506001600160a01b0383161580159061097e5750826001600160a01b0316816001600160a01b031614155b8015610991575061098f81846104f0565b155b156109ba5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161036f565b8115610a025783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a3f838383610b70565b6103fe576001600160a01b038316610a6d57604051637e27328960e01b81526004810182905260240161036f565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161036f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ad75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610b03576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610b2157662386f26fc10000830492506010015b6305f5e1008310610b39576305f5e100830492506008015b6127108310610b4d57612710830492506004015b60648310610b5f576064830492506002015b600a83106102795760010192915050565b60006001600160a01b03831615801590610bce5750826001600160a01b0316846001600160a01b03161480610baa5750610baa84846104f0565b80610bce57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610bec57600080fd5b50565b600060208284031215610c0157600080fd5b81356104e981610bd6565b60005b83811015610c27578181015183820152602001610c0f565b50506000910152565b60008151808452610c48816020860160208601610c0c565b601f01601f19169290920160200192915050565b6020815260006104e96020830184610c30565b600060208284031215610c8157600080fd5b5035919050565b80356001600160a01b0381168114610c9f57600080fd5b919050565b60008060408385031215610cb757600080fd5b610cc083610c88565b946020939093013593505050565b600080600060608486031215610ce357600080fd5b610cec84610c88565b9250610cfa60208501610c88565b929592945050506040919091013590565b600060208284031215610d1d57600080fd5b6104e982610c88565b60008060408385031215610d3957600080fd5b610d4283610c88565b915060208301358015158114610d5757600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610d8e57600080fd5b610d9785610c88565b9350610da560208601610c88565b925060408501359150606085013567ffffffffffffffff811115610dc857600080fd5b8501601f81018713610dd957600080fd5b803567ffffffffffffffff811115610df357610df3610d62565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610e2257610e22610d62565b604052818152828201602001891015610e3a57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60008060408385031215610e6f57600080fd5b610e7883610c88565b9150610e8660208401610c88565b90509250929050565b600181811c90821680610ea357607f821691505b602082108103610ec357634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610edb818460208801610c0c565b835190830190610eef818360208801610c0c565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f2b90830184610c30565b9695505050505050565b600060208284031215610f4757600080fd5b81516104e981610bd656fea2646970667358221220d1afabb7672a6403ae91ee82a23e7497331bc37c4e184be3cb269b8a1702fae564736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1290 CODESIZE SUB DUP1 PUSH2 0x1290 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x11D JUMP JUMPDEST DUP3 DUP3 PUSH1 0x0 PUSH2 0x3D DUP4 DUP3 PUSH2 0x23B JUMP JUMPDEST POP PUSH1 0x1 PUSH2 0x4A DUP3 DUP3 PUSH2 0x23B JUMP JUMPDEST POP PUSH1 0x6 SWAP2 POP PUSH2 0x5B SWAP1 POP DUP3 DUP3 PUSH2 0x23B JUMP JUMPDEST POP POP POP POP PUSH2 0x2F9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xA4 JUMPI PUSH2 0xA4 PUSH2 0x64 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xD2 JUMPI PUSH2 0xD2 PUSH2 0x64 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x109 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP4 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xED JUMP JUMPDEST POP PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x148 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x154 DUP7 DUP3 DUP8 ADD PUSH2 0x7A JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD SWAP1 SWAP5 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E DUP7 DUP3 DUP8 ADD PUSH2 0x7A JUMP JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD SWAP1 SWAP4 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x19C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A8 DUP7 DUP3 DUP8 ADD PUSH2 0x7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1C6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1E6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x236 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x213 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21F JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x254 JUMPI PUSH2 0x254 PUSH2 0x64 JUMP JUMPDEST PUSH2 0x268 DUP2 PUSH2 0x262 DUP5 SLOAD PUSH2 0x1B2 JUMP JUMPDEST DUP5 PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x29C JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x284 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x233 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2CC JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x2AC JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x2EA JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xF88 DUP1 PUSH2 0x308 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 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0xBEF JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11F PUSH2 0x27F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xC5C JUMP JUMPDEST PUSH2 0x13F PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x311 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x16A PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0xCA4 JUMP JUMPDEST PUSH2 0x33A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16A PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0xCCE JUMP JUMPDEST PUSH2 0x349 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0xCA4 JUMP JUMPDEST PUSH2 0x3D9 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0xCCE JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x403 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xD0B JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x11F PUSH2 0x456 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xD26 JUMP JUMPDEST PUSH2 0x465 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0xD78 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x488 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x228 CALLDATASIZE PUSH1 0x4 PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x25E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x279 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x28E SWAP1 PUSH2 0xE8F 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 0x2BA SWAP1 PUSH2 0xE8F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x307 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x307 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 0x2EA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31C DUP3 PUSH2 0x51E JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x279 JUMP JUMPDEST PUSH2 0x345 DUP3 DUP3 CALLER PUSH2 0x557 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x378 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x385 DUP4 DUP4 CALLER PUSH2 0x564 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x345 DUP3 DUP3 PUSH2 0x65D JUMP JUMPDEST PUSH2 0x3FE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x470 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x279 DUP3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x43A JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x28E SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH2 0x345 CALLER DUP4 DUP4 PUSH2 0x6C2 JUMP JUMPDEST PUSH2 0x47B DUP5 DUP5 DUP5 PUSH2 0x349 JUMP JUMPDEST PUSH2 0x3D3 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x493 DUP3 PUSH2 0x51E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x49E PUSH2 0x88C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x4BE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x4E9 JUMP JUMPDEST DUP1 PUSH2 0x4C8 DUP5 PUSH2 0x89B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4D9 SWAP3 SWAP2 SWAP1 PUSH2 0xEC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x279 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH2 0x3FE DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x591 JUMPI PUSH2 0x591 DUP2 DUP5 DUP7 PUSH2 0xA34 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x5CF JUMPI PUSH2 0x5AE PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x92E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x5FE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x687 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x695 DUP4 DUP4 PUSH1 0x0 PUSH2 0x564 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x3FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6F4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x885 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x7A3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x7DE JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x7DB SWAP2 DUP2 ADD SWAP1 PUSH2 0xF35 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x847 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x80C 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 0x811 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x83F JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x883 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 DUP1 SLOAD PUSH2 0x28E SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x8A8 DUP4 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH2 0x8C8 PUSH2 0xD62 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x8FC JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x942 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xA04 JUMPI PUSH1 0x0 PUSH2 0x952 DUP5 PUSH2 0x51E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x97E JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x991 JUMPI POP PUSH2 0x98F DUP2 DUP5 PUSH2 0x4F0 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x9BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST DUP2 ISZERO PUSH2 0xA02 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA3F DUP4 DUP4 DUP4 PUSH2 0xB70 JUMP JUMPDEST PUSH2 0x3FE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xA6D JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xAD7 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xB03 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xB21 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xB39 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xB4D JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xB5F JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x279 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xBCE JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xBAA JUMPI POP PUSH2 0xBAA DUP5 DUP5 PUSH2 0x4F0 JUMP JUMPDEST DUP1 PUSH2 0xBCE JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xBEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E9 DUP2 PUSH2 0xBD6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC27 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC0F JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xC48 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xC0C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4E9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xC30 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCC0 DUP4 PUSH2 0xC88 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCEC DUP5 PUSH2 0xC88 JUMP JUMPDEST SWAP3 POP PUSH2 0xCFA PUSH1 0x20 DUP6 ADD PUSH2 0xC88 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD42 DUP4 PUSH2 0xC88 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD97 DUP6 PUSH2 0xC88 JUMP JUMPDEST SWAP4 POP PUSH2 0xDA5 PUSH1 0x20 DUP7 ADD PUSH2 0xC88 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0xDD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDF3 JUMPI PUSH2 0xDF3 PUSH2 0xD62 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE22 JUMPI PUSH2 0xE22 PUSH2 0xD62 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP10 LT ISZERO PUSH2 0xE3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE78 DUP4 PUSH2 0xC88 JUMP JUMPDEST SWAP2 POP PUSH2 0xE86 PUSH1 0x20 DUP5 ADD PUSH2 0xC88 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xEA3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEC3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0xEDB DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xC0C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xEEF DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xC0C JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF2B SWAP1 DUP4 ADD DUP5 PUSH2 0xC30 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4E9 DUP2 PUSH2 0xBD6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 0xAF 0xAB 0xB7 PUSH8 0x2A6403AE91EE82A2 RETURNDATACOPY PUSH21 0x97331BC37C4E184BE3CB269B8A1702FAE564736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"133:416:84:-:0;;;206:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;292:5;299:7;1446:5:27;:13;292:5:84;1446::27;:13;:::i;:::-;-1:-1:-1;1469:7:27;:17;1479:7;1469;:17;:::i;:::-;-1:-1:-1;318:9:84::1;::::0;-1:-1:-1;318:19:84::1;::::0;-1:-1:-1;330:7:84;318:9;:19:::1;:::i;:::-;;206:138:::0;;;133:416;;14:127:89;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:834;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;298:13;;-1:-1:-1;;;;;323:30:89;;320:56;;;356:18;;:::i;:::-;405:2;399:9;497:2;459:17;;-1:-1:-1;;455:31:89;;;488:2;451:40;447:54;435:67;;-1:-1:-1;;;;;517:34:89;;553:22;;;514:62;511:88;;;579:18;;:::i;:::-;615:2;608:22;639;;;680:19;;;701:4;676:30;673:39;-1:-1:-1;670:59:89;;;725:1;722;715:12;670:59;747:1;757:143;771:6;768:1;765:13;757:143;;;883:4;867:14;;;863:25;;857:32;834:14;;;830:25;;823:67;786:12;757:143;;;-1:-1:-1;948:1:89;920:19;;;941:4;916:30;909:41;;;;924:6;146:834;-1:-1:-1;;;146:834:89:o;985:777::-;1103:6;1111;1119;1172:2;1160:9;1151:7;1147:23;1143:32;1140:52;;;1188:1;1185;1178:12;1140:52;1215:16;;-1:-1:-1;;;;;1243:30:89;;1240:50;;;1286:1;1283;1276:12;1240:50;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1416:2;1401:18;;1395:25;1299:71;;-1:-1:-1;1395:25:89;-1:-1:-1;;;;;;1432:32:89;;1429:52;;;1477:1;1474;1467:12;1429:52;1500:63;1555:7;1544:8;1533:9;1529:24;1500:63;:::i;:::-;1609:2;1594:18;;1588:25;1490:73;;-1:-1:-1;1588:25:89;-1:-1:-1;;;;;;1625:32:89;;1622:52;;;1670:1;1667;1660:12;1622:52;1693:63;1748:7;1737:8;1726:9;1722:24;1693:63;:::i;:::-;1683:73;;;985:777;;;;;:::o;1767:380::-;1846:1;1842:12;;;;1889;;;1910:61;;1964:4;1956:6;1952:17;1942:27;;1910:61;2017:2;2009:6;2006:14;1986:18;1983:38;1980:161;;2063:10;2058:3;2054:20;2051:1;2044:31;2098:4;2095:1;2088:15;2126:4;2123:1;2116:15;1980:161;;1767:380;;;:::o;2278:518::-;2380:2;2375:3;2372:11;2369:421;;;2416:5;2413:1;2406:16;2460:4;2457:1;2447:18;2530:2;2518:10;2514:19;2511:1;2507:27;2501:4;2497:38;2566:4;2554:10;2551:20;2548:47;;;-1:-1:-1;2589:4:89;2548:47;2644:2;2639:3;2635:12;2632:1;2628:20;2622:4;2618:31;2608:41;;2699:81;2717:2;2710:5;2707:13;2699:81;;;2776:1;2762:16;;2743:1;2732:13;2699:81;;;2703:3;;2369:421;2278:518;;;:::o;2972:1299::-;3092:10;;-1:-1:-1;;;;;3114:30:89;;3111:56;;;3147:18;;:::i;:::-;3176:97;3266:6;3226:38;3258:4;3252:11;3226:38;:::i;:::-;3220:4;3176:97;:::i;:::-;3322:4;3353:2;3342:14;;3370:1;3365:649;;;;4058:1;4075:6;4072:89;;;-1:-1:-1;4127:19:89;;;4121:26;4072:89;-1:-1:-1;;2929:1:89;2925:11;;;2921:24;2917:29;2907:40;2953:1;2949:11;;;2904:57;4174:81;;3335:930;;3365:649;2225:1;2218:14;;;2262:4;2249:18;;-1:-1:-1;;3401:20:89;;;3519:222;3533:7;3530:1;3527:14;3519:222;;;3615:19;;;3609:26;3594:42;;3722:4;3707:20;;;;3675:1;3663:14;;;;3549:12;3519:222;;;3523:3;3769:6;3760:7;3757:19;3754:201;;;3830:19;;;3824:26;-1:-1:-1;;3913:1:89;3909:14;;;3925:3;3905:24;3901:37;3897:42;3882:58;3867:74;;3754:201;-1:-1:-1;;;;4001:1:89;3985:14;;;3981:22;3968:36;;-1:-1:-1;2972:1299:89:o;:::-;133:416:84;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_5996":{"entryPoint":1367,"id":5996,"parameterSlots":3,"returnSlots":0},"@_approve_6062":{"entryPoint":2350,"id":6062,"parameterSlots":4,"returnSlots":0},"@_baseURI_20479":{"entryPoint":2188,"id":20479,"parameterSlots":0,"returnSlots":1},"@_checkAuthorized_5636":{"entryPoint":2612,"id":5636,"parameterSlots":3,"returnSlots":0},"@_getApproved_5563":{"entryPoint":null,"id":5563,"parameterSlots":1,"returnSlots":1},"@_isAuthorized_5599":{"entryPoint":2928,"id":5599,"parameterSlots":3,"returnSlots":1},"@_mint_5792":{"entryPoint":1629,"id":5792,"parameterSlots":2,"returnSlots":0},"@_msgSender_6640":{"entryPoint":null,"id":6640,"parameterSlots":0,"returnSlots":1},"@_ownerOf_5550":{"entryPoint":null,"id":5550,"parameterSlots":1,"returnSlots":1},"@_requireOwned_6128":{"entryPoint":1310,"id":6128,"parameterSlots":1,"returnSlots":1},"@_setApprovalForAll_6099":{"entryPoint":1730,"id":6099,"parameterSlots":3,"returnSlots":0},"@_update_5742":{"entryPoint":1380,"id":5742,"parameterSlots":3,"returnSlots":1},"@approve_5393":{"entryPoint":826,"id":5393,"parameterSlots":2,"returnSlots":0},"@balanceOf_5301":{"entryPoint":1038,"id":5301,"parameterSlots":1,"returnSlots":1},"@checkOnERC721Received_6368":{"entryPoint":1889,"id":6368,"parameterSlots":5,"returnSlots":0},"@getApproved_5410":{"entryPoint":785,"id":5410,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_5443":{"entryPoint":1264,"id":5443,"parameterSlots":2,"returnSlots":1},"@log10_9871":{"entryPoint":2712,"id":9871,"parameterSlots":1,"returnSlots":1},"@mint_20470":{"entryPoint":985,"id":20470,"parameterSlots":2,"returnSlots":0},"@name_5323":{"entryPoint":639,"id":5323,"parameterSlots":0,"returnSlots":1},"@ownerOf_5314":{"entryPoint":1027,"id":5314,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_5507":{"entryPoint":995,"id":5507,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_5537":{"entryPoint":1136,"id":5537,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_5426":{"entryPoint":1125,"id":5426,"parameterSlots":2,"returnSlots":0},"@supportsInterface_5273":{"entryPoint":557,"id":5273,"parameterSlots":1,"returnSlots":1},"@supportsInterface_8480":{"entryPoint":null,"id":8480,"parameterSlots":1,"returnSlots":1},"@symbol_5332":{"entryPoint":1110,"id":5332,"parameterSlots":0,"returnSlots":1},"@toString_7092":{"entryPoint":2203,"id":7092,"parameterSlots":1,"returnSlots":1},"@tokenURI_5368":{"entryPoint":1160,"id":5368,"parameterSlots":1,"returnSlots":1},"@transferFrom_5489":{"entryPoint":841,"id":5489,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":3208,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3339,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3676,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3278,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":3448,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":3366,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3236,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":3055,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":3893,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3183,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":3120,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3785,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3832,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3164,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3084,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":3727,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3426,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":3030,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7397:89","nodeType":"YulBlock","src":"0:7397:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"58:87:89","nodeType":"YulBlock","src":"58:87:89","statements":[{"body":{"nativeSrc":"123:16:89","nodeType":"YulBlock","src":"123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"132:1:89","nodeType":"YulLiteral","src":"132:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"135:1:89","nodeType":"YulLiteral","src":"135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"125:6:89","nodeType":"YulIdentifier","src":"125:6:89"},"nativeSrc":"125:12:89","nodeType":"YulFunctionCall","src":"125:12:89"},"nativeSrc":"125:12:89","nodeType":"YulExpressionStatement","src":"125:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:89","nodeType":"YulIdentifier","src":"81:5:89"},{"arguments":[{"name":"value","nativeSrc":"92:5:89","nodeType":"YulIdentifier","src":"92:5:89"},{"arguments":[{"kind":"number","nativeSrc":"103:3:89","nodeType":"YulLiteral","src":"103:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"108:10:89","nodeType":"YulLiteral","src":"108:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"99:3:89","nodeType":"YulIdentifier","src":"99:3:89"},"nativeSrc":"99:20:89","nodeType":"YulFunctionCall","src":"99:20:89"}],"functionName":{"name":"and","nativeSrc":"88:3:89","nodeType":"YulIdentifier","src":"88:3:89"},"nativeSrc":"88:32:89","nodeType":"YulFunctionCall","src":"88:32:89"}],"functionName":{"name":"eq","nativeSrc":"78:2:89","nodeType":"YulIdentifier","src":"78:2:89"},"nativeSrc":"78:43:89","nodeType":"YulFunctionCall","src":"78:43:89"}],"functionName":{"name":"iszero","nativeSrc":"71:6:89","nodeType":"YulIdentifier","src":"71:6:89"},"nativeSrc":"71:51:89","nodeType":"YulFunctionCall","src":"71:51:89"},"nativeSrc":"68:71:89","nodeType":"YulIf","src":"68:71:89"}]},"name":"validator_revert_bytes4","nativeSrc":"14:131:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:89","nodeType":"YulTypedName","src":"47:5:89","type":""}],"src":"14:131:89"},{"body":{"nativeSrc":"219:176:89","nodeType":"YulBlock","src":"219:176:89","statements":[{"body":{"nativeSrc":"265:16:89","nodeType":"YulBlock","src":"265:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"274:1:89","nodeType":"YulLiteral","src":"274:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"277:1:89","nodeType":"YulLiteral","src":"277:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"267:6:89","nodeType":"YulIdentifier","src":"267:6:89"},"nativeSrc":"267:12:89","nodeType":"YulFunctionCall","src":"267:12:89"},"nativeSrc":"267:12:89","nodeType":"YulExpressionStatement","src":"267:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"240:7:89","nodeType":"YulIdentifier","src":"240:7:89"},{"name":"headStart","nativeSrc":"249:9:89","nodeType":"YulIdentifier","src":"249:9:89"}],"functionName":{"name":"sub","nativeSrc":"236:3:89","nodeType":"YulIdentifier","src":"236:3:89"},"nativeSrc":"236:23:89","nodeType":"YulFunctionCall","src":"236:23:89"},{"kind":"number","nativeSrc":"261:2:89","nodeType":"YulLiteral","src":"261:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"232:3:89","nodeType":"YulIdentifier","src":"232:3:89"},"nativeSrc":"232:32:89","nodeType":"YulFunctionCall","src":"232:32:89"},"nativeSrc":"229:52:89","nodeType":"YulIf","src":"229:52:89"},{"nativeSrc":"290:36:89","nodeType":"YulVariableDeclaration","src":"290:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"316:9:89","nodeType":"YulIdentifier","src":"316:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"303:12:89","nodeType":"YulIdentifier","src":"303:12:89"},"nativeSrc":"303:23:89","nodeType":"YulFunctionCall","src":"303:23:89"},"variables":[{"name":"value","nativeSrc":"294:5:89","nodeType":"YulTypedName","src":"294:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"359:5:89","nodeType":"YulIdentifier","src":"359:5:89"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"335:23:89","nodeType":"YulIdentifier","src":"335:23:89"},"nativeSrc":"335:30:89","nodeType":"YulFunctionCall","src":"335:30:89"},"nativeSrc":"335:30:89","nodeType":"YulExpressionStatement","src":"335:30:89"},{"nativeSrc":"374:15:89","nodeType":"YulAssignment","src":"374:15:89","value":{"name":"value","nativeSrc":"384:5:89","nodeType":"YulIdentifier","src":"384:5:89"},"variableNames":[{"name":"value0","nativeSrc":"374:6:89","nodeType":"YulIdentifier","src":"374:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"150:245:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"185:9:89","nodeType":"YulTypedName","src":"185:9:89","type":""},{"name":"dataEnd","nativeSrc":"196:7:89","nodeType":"YulTypedName","src":"196:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"208:6:89","nodeType":"YulTypedName","src":"208:6:89","type":""}],"src":"150:245:89"},{"body":{"nativeSrc":"495:92:89","nodeType":"YulBlock","src":"495:92:89","statements":[{"nativeSrc":"505:26:89","nodeType":"YulAssignment","src":"505:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"517:9:89","nodeType":"YulIdentifier","src":"517:9:89"},{"kind":"number","nativeSrc":"528:2:89","nodeType":"YulLiteral","src":"528:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"513:3:89","nodeType":"YulIdentifier","src":"513:3:89"},"nativeSrc":"513:18:89","nodeType":"YulFunctionCall","src":"513:18:89"},"variableNames":[{"name":"tail","nativeSrc":"505:4:89","nodeType":"YulIdentifier","src":"505:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"547:9:89","nodeType":"YulIdentifier","src":"547:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"572:6:89","nodeType":"YulIdentifier","src":"572:6:89"}],"functionName":{"name":"iszero","nativeSrc":"565:6:89","nodeType":"YulIdentifier","src":"565:6:89"},"nativeSrc":"565:14:89","nodeType":"YulFunctionCall","src":"565:14:89"}],"functionName":{"name":"iszero","nativeSrc":"558:6:89","nodeType":"YulIdentifier","src":"558:6:89"},"nativeSrc":"558:22:89","nodeType":"YulFunctionCall","src":"558:22:89"}],"functionName":{"name":"mstore","nativeSrc":"540:6:89","nodeType":"YulIdentifier","src":"540:6:89"},"nativeSrc":"540:41:89","nodeType":"YulFunctionCall","src":"540:41:89"},"nativeSrc":"540:41:89","nodeType":"YulExpressionStatement","src":"540:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"400:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:89","nodeType":"YulTypedName","src":"464:9:89","type":""},{"name":"value0","nativeSrc":"475:6:89","nodeType":"YulTypedName","src":"475:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"486:4:89","nodeType":"YulTypedName","src":"486:4:89","type":""}],"src":"400:187:89"},{"body":{"nativeSrc":"658:184:89","nodeType":"YulBlock","src":"658:184:89","statements":[{"nativeSrc":"668:10:89","nodeType":"YulVariableDeclaration","src":"668:10:89","value":{"kind":"number","nativeSrc":"677:1:89","nodeType":"YulLiteral","src":"677:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"672:1:89","nodeType":"YulTypedName","src":"672:1:89","type":""}]},{"body":{"nativeSrc":"737:63:89","nodeType":"YulBlock","src":"737:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"762:3:89","nodeType":"YulIdentifier","src":"762:3:89"},{"name":"i","nativeSrc":"767:1:89","nodeType":"YulIdentifier","src":"767:1:89"}],"functionName":{"name":"add","nativeSrc":"758:3:89","nodeType":"YulIdentifier","src":"758:3:89"},"nativeSrc":"758:11:89","nodeType":"YulFunctionCall","src":"758:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"781:3:89","nodeType":"YulIdentifier","src":"781:3:89"},{"name":"i","nativeSrc":"786:1:89","nodeType":"YulIdentifier","src":"786:1:89"}],"functionName":{"name":"add","nativeSrc":"777:3:89","nodeType":"YulIdentifier","src":"777:3:89"},"nativeSrc":"777:11:89","nodeType":"YulFunctionCall","src":"777:11:89"}],"functionName":{"name":"mload","nativeSrc":"771:5:89","nodeType":"YulIdentifier","src":"771:5:89"},"nativeSrc":"771:18:89","nodeType":"YulFunctionCall","src":"771:18:89"}],"functionName":{"name":"mstore","nativeSrc":"751:6:89","nodeType":"YulIdentifier","src":"751:6:89"},"nativeSrc":"751:39:89","nodeType":"YulFunctionCall","src":"751:39:89"},"nativeSrc":"751:39:89","nodeType":"YulExpressionStatement","src":"751:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"698:1:89","nodeType":"YulIdentifier","src":"698:1:89"},{"name":"length","nativeSrc":"701:6:89","nodeType":"YulIdentifier","src":"701:6:89"}],"functionName":{"name":"lt","nativeSrc":"695:2:89","nodeType":"YulIdentifier","src":"695:2:89"},"nativeSrc":"695:13:89","nodeType":"YulFunctionCall","src":"695:13:89"},"nativeSrc":"687:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"709:19:89","nodeType":"YulBlock","src":"709:19:89","statements":[{"nativeSrc":"711:15:89","nodeType":"YulAssignment","src":"711:15:89","value":{"arguments":[{"name":"i","nativeSrc":"720:1:89","nodeType":"YulIdentifier","src":"720:1:89"},{"kind":"number","nativeSrc":"723:2:89","nodeType":"YulLiteral","src":"723:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"716:3:89","nodeType":"YulIdentifier","src":"716:3:89"},"nativeSrc":"716:10:89","nodeType":"YulFunctionCall","src":"716:10:89"},"variableNames":[{"name":"i","nativeSrc":"711:1:89","nodeType":"YulIdentifier","src":"711:1:89"}]}]},"pre":{"nativeSrc":"691:3:89","nodeType":"YulBlock","src":"691:3:89","statements":[]},"src":"687:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"820:3:89","nodeType":"YulIdentifier","src":"820:3:89"},{"name":"length","nativeSrc":"825:6:89","nodeType":"YulIdentifier","src":"825:6:89"}],"functionName":{"name":"add","nativeSrc":"816:3:89","nodeType":"YulIdentifier","src":"816:3:89"},"nativeSrc":"816:16:89","nodeType":"YulFunctionCall","src":"816:16:89"},{"kind":"number","nativeSrc":"834:1:89","nodeType":"YulLiteral","src":"834:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"809:6:89","nodeType":"YulIdentifier","src":"809:6:89"},"nativeSrc":"809:27:89","nodeType":"YulFunctionCall","src":"809:27:89"},"nativeSrc":"809:27:89","nodeType":"YulExpressionStatement","src":"809:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"592:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"636:3:89","nodeType":"YulTypedName","src":"636:3:89","type":""},{"name":"dst","nativeSrc":"641:3:89","nodeType":"YulTypedName","src":"641:3:89","type":""},{"name":"length","nativeSrc":"646:6:89","nodeType":"YulTypedName","src":"646:6:89","type":""}],"src":"592:250:89"},{"body":{"nativeSrc":"897:221:89","nodeType":"YulBlock","src":"897:221:89","statements":[{"nativeSrc":"907:26:89","nodeType":"YulVariableDeclaration","src":"907:26:89","value":{"arguments":[{"name":"value","nativeSrc":"927:5:89","nodeType":"YulIdentifier","src":"927:5:89"}],"functionName":{"name":"mload","nativeSrc":"921:5:89","nodeType":"YulIdentifier","src":"921:5:89"},"nativeSrc":"921:12:89","nodeType":"YulFunctionCall","src":"921:12:89"},"variables":[{"name":"length","nativeSrc":"911:6:89","nodeType":"YulTypedName","src":"911:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"949:3:89","nodeType":"YulIdentifier","src":"949:3:89"},{"name":"length","nativeSrc":"954:6:89","nodeType":"YulIdentifier","src":"954:6:89"}],"functionName":{"name":"mstore","nativeSrc":"942:6:89","nodeType":"YulIdentifier","src":"942:6:89"},"nativeSrc":"942:19:89","nodeType":"YulFunctionCall","src":"942:19:89"},"nativeSrc":"942:19:89","nodeType":"YulExpressionStatement","src":"942:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1009:5:89","nodeType":"YulIdentifier","src":"1009:5:89"},{"kind":"number","nativeSrc":"1016:4:89","nodeType":"YulLiteral","src":"1016:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1005:3:89","nodeType":"YulIdentifier","src":"1005:3:89"},"nativeSrc":"1005:16:89","nodeType":"YulFunctionCall","src":"1005:16:89"},{"arguments":[{"name":"pos","nativeSrc":"1027:3:89","nodeType":"YulIdentifier","src":"1027:3:89"},{"kind":"number","nativeSrc":"1032:4:89","nodeType":"YulLiteral","src":"1032:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1023:3:89","nodeType":"YulIdentifier","src":"1023:3:89"},"nativeSrc":"1023:14:89","nodeType":"YulFunctionCall","src":"1023:14:89"},{"name":"length","nativeSrc":"1039:6:89","nodeType":"YulIdentifier","src":"1039:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"970:34:89","nodeType":"YulIdentifier","src":"970:34:89"},"nativeSrc":"970:76:89","nodeType":"YulFunctionCall","src":"970:76:89"},"nativeSrc":"970:76:89","nodeType":"YulExpressionStatement","src":"970:76:89"},{"nativeSrc":"1055:57:89","nodeType":"YulAssignment","src":"1055:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"1070:3:89","nodeType":"YulIdentifier","src":"1070:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1083:6:89","nodeType":"YulIdentifier","src":"1083:6:89"},{"kind":"number","nativeSrc":"1091:2:89","nodeType":"YulLiteral","src":"1091:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1079:3:89","nodeType":"YulIdentifier","src":"1079:3:89"},"nativeSrc":"1079:15:89","nodeType":"YulFunctionCall","src":"1079:15:89"},{"arguments":[{"kind":"number","nativeSrc":"1100:2:89","nodeType":"YulLiteral","src":"1100:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1096:3:89","nodeType":"YulIdentifier","src":"1096:3:89"},"nativeSrc":"1096:7:89","nodeType":"YulFunctionCall","src":"1096:7:89"}],"functionName":{"name":"and","nativeSrc":"1075:3:89","nodeType":"YulIdentifier","src":"1075:3:89"},"nativeSrc":"1075:29:89","nodeType":"YulFunctionCall","src":"1075:29:89"}],"functionName":{"name":"add","nativeSrc":"1066:3:89","nodeType":"YulIdentifier","src":"1066:3:89"},"nativeSrc":"1066:39:89","nodeType":"YulFunctionCall","src":"1066:39:89"},{"kind":"number","nativeSrc":"1107:4:89","nodeType":"YulLiteral","src":"1107:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1062:3:89","nodeType":"YulIdentifier","src":"1062:3:89"},"nativeSrc":"1062:50:89","nodeType":"YulFunctionCall","src":"1062:50:89"},"variableNames":[{"name":"end","nativeSrc":"1055:3:89","nodeType":"YulIdentifier","src":"1055:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"847:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"874:5:89","nodeType":"YulTypedName","src":"874:5:89","type":""},{"name":"pos","nativeSrc":"881:3:89","nodeType":"YulTypedName","src":"881:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"889:3:89","nodeType":"YulTypedName","src":"889:3:89","type":""}],"src":"847:271:89"},{"body":{"nativeSrc":"1244:99:89","nodeType":"YulBlock","src":"1244:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1261:9:89","nodeType":"YulIdentifier","src":"1261:9:89"},{"kind":"number","nativeSrc":"1272:2:89","nodeType":"YulLiteral","src":"1272:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1254:6:89","nodeType":"YulIdentifier","src":"1254:6:89"},"nativeSrc":"1254:21:89","nodeType":"YulFunctionCall","src":"1254:21:89"},"nativeSrc":"1254:21:89","nodeType":"YulExpressionStatement","src":"1254:21:89"},{"nativeSrc":"1284:53:89","nodeType":"YulAssignment","src":"1284:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"1310:6:89","nodeType":"YulIdentifier","src":"1310:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"1322:9:89","nodeType":"YulIdentifier","src":"1322:9:89"},{"kind":"number","nativeSrc":"1333:2:89","nodeType":"YulLiteral","src":"1333:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1318:3:89","nodeType":"YulIdentifier","src":"1318:3:89"},"nativeSrc":"1318:18:89","nodeType":"YulFunctionCall","src":"1318:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"1292:17:89","nodeType":"YulIdentifier","src":"1292:17:89"},"nativeSrc":"1292:45:89","nodeType":"YulFunctionCall","src":"1292:45:89"},"variableNames":[{"name":"tail","nativeSrc":"1284:4:89","nodeType":"YulIdentifier","src":"1284:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1123:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1213:9:89","nodeType":"YulTypedName","src":"1213:9:89","type":""},{"name":"value0","nativeSrc":"1224:6:89","nodeType":"YulTypedName","src":"1224:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1235:4:89","nodeType":"YulTypedName","src":"1235:4:89","type":""}],"src":"1123:220:89"},{"body":{"nativeSrc":"1418:156:89","nodeType":"YulBlock","src":"1418:156:89","statements":[{"body":{"nativeSrc":"1464:16:89","nodeType":"YulBlock","src":"1464:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1473:1:89","nodeType":"YulLiteral","src":"1473:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1476:1:89","nodeType":"YulLiteral","src":"1476:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1466:6:89","nodeType":"YulIdentifier","src":"1466:6:89"},"nativeSrc":"1466:12:89","nodeType":"YulFunctionCall","src":"1466:12:89"},"nativeSrc":"1466:12:89","nodeType":"YulExpressionStatement","src":"1466:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:89","nodeType":"YulIdentifier","src":"1439:7:89"},{"name":"headStart","nativeSrc":"1448:9:89","nodeType":"YulIdentifier","src":"1448:9:89"}],"functionName":{"name":"sub","nativeSrc":"1435:3:89","nodeType":"YulIdentifier","src":"1435:3:89"},"nativeSrc":"1435:23:89","nodeType":"YulFunctionCall","src":"1435:23:89"},{"kind":"number","nativeSrc":"1460:2:89","nodeType":"YulLiteral","src":"1460:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1431:3:89","nodeType":"YulIdentifier","src":"1431:3:89"},"nativeSrc":"1431:32:89","nodeType":"YulFunctionCall","src":"1431:32:89"},"nativeSrc":"1428:52:89","nodeType":"YulIf","src":"1428:52:89"},{"nativeSrc":"1489:14:89","nodeType":"YulVariableDeclaration","src":"1489:14:89","value":{"kind":"number","nativeSrc":"1502:1:89","nodeType":"YulLiteral","src":"1502:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1493:5:89","nodeType":"YulTypedName","src":"1493:5:89","type":""}]},{"nativeSrc":"1512:32:89","nodeType":"YulAssignment","src":"1512:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1534:9:89","nodeType":"YulIdentifier","src":"1534:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1521:12:89","nodeType":"YulIdentifier","src":"1521:12:89"},"nativeSrc":"1521:23:89","nodeType":"YulFunctionCall","src":"1521:23:89"},"variableNames":[{"name":"value","nativeSrc":"1512:5:89","nodeType":"YulIdentifier","src":"1512:5:89"}]},{"nativeSrc":"1553:15:89","nodeType":"YulAssignment","src":"1553:15:89","value":{"name":"value","nativeSrc":"1563:5:89","nodeType":"YulIdentifier","src":"1563:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1553:6:89","nodeType":"YulIdentifier","src":"1553:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1348:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1384:9:89","nodeType":"YulTypedName","src":"1384:9:89","type":""},{"name":"dataEnd","nativeSrc":"1395:7:89","nodeType":"YulTypedName","src":"1395:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1407:6:89","nodeType":"YulTypedName","src":"1407:6:89","type":""}],"src":"1348:226:89"},{"body":{"nativeSrc":"1680:102:89","nodeType":"YulBlock","src":"1680:102:89","statements":[{"nativeSrc":"1690:26:89","nodeType":"YulAssignment","src":"1690:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1702:9:89","nodeType":"YulIdentifier","src":"1702:9:89"},{"kind":"number","nativeSrc":"1713:2:89","nodeType":"YulLiteral","src":"1713:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1698:3:89","nodeType":"YulIdentifier","src":"1698:3:89"},"nativeSrc":"1698:18:89","nodeType":"YulFunctionCall","src":"1698:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1690:4:89","nodeType":"YulIdentifier","src":"1690:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1732:9:89","nodeType":"YulIdentifier","src":"1732:9:89"},{"arguments":[{"name":"value0","nativeSrc":"1747:6:89","nodeType":"YulIdentifier","src":"1747:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1763:3:89","nodeType":"YulLiteral","src":"1763:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1768:1:89","nodeType":"YulLiteral","src":"1768:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1759:3:89","nodeType":"YulIdentifier","src":"1759:3:89"},"nativeSrc":"1759:11:89","nodeType":"YulFunctionCall","src":"1759:11:89"},{"kind":"number","nativeSrc":"1772:1:89","nodeType":"YulLiteral","src":"1772:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1755:3:89","nodeType":"YulIdentifier","src":"1755:3:89"},"nativeSrc":"1755:19:89","nodeType":"YulFunctionCall","src":"1755:19:89"}],"functionName":{"name":"and","nativeSrc":"1743:3:89","nodeType":"YulIdentifier","src":"1743:3:89"},"nativeSrc":"1743:32:89","nodeType":"YulFunctionCall","src":"1743:32:89"}],"functionName":{"name":"mstore","nativeSrc":"1725:6:89","nodeType":"YulIdentifier","src":"1725:6:89"},"nativeSrc":"1725:51:89","nodeType":"YulFunctionCall","src":"1725:51:89"},"nativeSrc":"1725:51:89","nodeType":"YulExpressionStatement","src":"1725:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1579:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1649:9:89","nodeType":"YulTypedName","src":"1649:9:89","type":""},{"name":"value0","nativeSrc":"1660:6:89","nodeType":"YulTypedName","src":"1660:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1671:4:89","nodeType":"YulTypedName","src":"1671:4:89","type":""}],"src":"1579:203:89"},{"body":{"nativeSrc":"1836:124:89","nodeType":"YulBlock","src":"1836:124:89","statements":[{"nativeSrc":"1846:29:89","nodeType":"YulAssignment","src":"1846:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"1868:6:89","nodeType":"YulIdentifier","src":"1868:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"1855:12:89","nodeType":"YulIdentifier","src":"1855:12:89"},"nativeSrc":"1855:20:89","nodeType":"YulFunctionCall","src":"1855:20:89"},"variableNames":[{"name":"value","nativeSrc":"1846:5:89","nodeType":"YulIdentifier","src":"1846:5:89"}]},{"body":{"nativeSrc":"1938:16:89","nodeType":"YulBlock","src":"1938:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1947:1:89","nodeType":"YulLiteral","src":"1947:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1950:1:89","nodeType":"YulLiteral","src":"1950:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1940:6:89","nodeType":"YulIdentifier","src":"1940:6:89"},"nativeSrc":"1940:12:89","nodeType":"YulFunctionCall","src":"1940:12:89"},"nativeSrc":"1940:12:89","nodeType":"YulExpressionStatement","src":"1940:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1897:5:89","nodeType":"YulIdentifier","src":"1897:5:89"},{"arguments":[{"name":"value","nativeSrc":"1908:5:89","nodeType":"YulIdentifier","src":"1908:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1923:3:89","nodeType":"YulLiteral","src":"1923:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1928:1:89","nodeType":"YulLiteral","src":"1928:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1919:3:89","nodeType":"YulIdentifier","src":"1919:3:89"},"nativeSrc":"1919:11:89","nodeType":"YulFunctionCall","src":"1919:11:89"},{"kind":"number","nativeSrc":"1932:1:89","nodeType":"YulLiteral","src":"1932:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1915:3:89","nodeType":"YulIdentifier","src":"1915:3:89"},"nativeSrc":"1915:19:89","nodeType":"YulFunctionCall","src":"1915:19:89"}],"functionName":{"name":"and","nativeSrc":"1904:3:89","nodeType":"YulIdentifier","src":"1904:3:89"},"nativeSrc":"1904:31:89","nodeType":"YulFunctionCall","src":"1904:31:89"}],"functionName":{"name":"eq","nativeSrc":"1894:2:89","nodeType":"YulIdentifier","src":"1894:2:89"},"nativeSrc":"1894:42:89","nodeType":"YulFunctionCall","src":"1894:42:89"}],"functionName":{"name":"iszero","nativeSrc":"1887:6:89","nodeType":"YulIdentifier","src":"1887:6:89"},"nativeSrc":"1887:50:89","nodeType":"YulFunctionCall","src":"1887:50:89"},"nativeSrc":"1884:70:89","nodeType":"YulIf","src":"1884:70:89"}]},"name":"abi_decode_address","nativeSrc":"1787:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1815:6:89","nodeType":"YulTypedName","src":"1815:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1826:5:89","nodeType":"YulTypedName","src":"1826:5:89","type":""}],"src":"1787:173:89"},{"body":{"nativeSrc":"2052:213:89","nodeType":"YulBlock","src":"2052:213:89","statements":[{"body":{"nativeSrc":"2098:16:89","nodeType":"YulBlock","src":"2098:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2107:1:89","nodeType":"YulLiteral","src":"2107:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2110:1:89","nodeType":"YulLiteral","src":"2110:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2100:6:89","nodeType":"YulIdentifier","src":"2100:6:89"},"nativeSrc":"2100:12:89","nodeType":"YulFunctionCall","src":"2100:12:89"},"nativeSrc":"2100:12:89","nodeType":"YulExpressionStatement","src":"2100:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2073:7:89","nodeType":"YulIdentifier","src":"2073:7:89"},{"name":"headStart","nativeSrc":"2082:9:89","nodeType":"YulIdentifier","src":"2082:9:89"}],"functionName":{"name":"sub","nativeSrc":"2069:3:89","nodeType":"YulIdentifier","src":"2069:3:89"},"nativeSrc":"2069:23:89","nodeType":"YulFunctionCall","src":"2069:23:89"},{"kind":"number","nativeSrc":"2094:2:89","nodeType":"YulLiteral","src":"2094:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2065:3:89","nodeType":"YulIdentifier","src":"2065:3:89"},"nativeSrc":"2065:32:89","nodeType":"YulFunctionCall","src":"2065:32:89"},"nativeSrc":"2062:52:89","nodeType":"YulIf","src":"2062:52:89"},{"nativeSrc":"2123:39:89","nodeType":"YulAssignment","src":"2123:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2152:9:89","nodeType":"YulIdentifier","src":"2152:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2133:18:89","nodeType":"YulIdentifier","src":"2133:18:89"},"nativeSrc":"2133:29:89","nodeType":"YulFunctionCall","src":"2133:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2123:6:89","nodeType":"YulIdentifier","src":"2123:6:89"}]},{"nativeSrc":"2171:14:89","nodeType":"YulVariableDeclaration","src":"2171:14:89","value":{"kind":"number","nativeSrc":"2184:1:89","nodeType":"YulLiteral","src":"2184:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2175:5:89","nodeType":"YulTypedName","src":"2175:5:89","type":""}]},{"nativeSrc":"2194:41:89","nodeType":"YulAssignment","src":"2194:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2220:9:89","nodeType":"YulIdentifier","src":"2220:9:89"},{"kind":"number","nativeSrc":"2231:2:89","nodeType":"YulLiteral","src":"2231:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2216:3:89","nodeType":"YulIdentifier","src":"2216:3:89"},"nativeSrc":"2216:18:89","nodeType":"YulFunctionCall","src":"2216:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"2203:12:89","nodeType":"YulIdentifier","src":"2203:12:89"},"nativeSrc":"2203:32:89","nodeType":"YulFunctionCall","src":"2203:32:89"},"variableNames":[{"name":"value","nativeSrc":"2194:5:89","nodeType":"YulIdentifier","src":"2194:5:89"}]},{"nativeSrc":"2244:15:89","nodeType":"YulAssignment","src":"2244:15:89","value":{"name":"value","nativeSrc":"2254:5:89","nodeType":"YulIdentifier","src":"2254:5:89"},"variableNames":[{"name":"value1","nativeSrc":"2244:6:89","nodeType":"YulIdentifier","src":"2244:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1965:300:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2010:9:89","nodeType":"YulTypedName","src":"2010:9:89","type":""},{"name":"dataEnd","nativeSrc":"2021:7:89","nodeType":"YulTypedName","src":"2021:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2033:6:89","nodeType":"YulTypedName","src":"2033:6:89","type":""},{"name":"value1","nativeSrc":"2041:6:89","nodeType":"YulTypedName","src":"2041:6:89","type":""}],"src":"1965:300:89"},{"body":{"nativeSrc":"2374:270:89","nodeType":"YulBlock","src":"2374:270:89","statements":[{"body":{"nativeSrc":"2420:16:89","nodeType":"YulBlock","src":"2420:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2429:1:89","nodeType":"YulLiteral","src":"2429:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2432:1:89","nodeType":"YulLiteral","src":"2432:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2422:6:89","nodeType":"YulIdentifier","src":"2422:6:89"},"nativeSrc":"2422:12:89","nodeType":"YulFunctionCall","src":"2422:12:89"},"nativeSrc":"2422:12:89","nodeType":"YulExpressionStatement","src":"2422:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2395:7:89","nodeType":"YulIdentifier","src":"2395:7:89"},{"name":"headStart","nativeSrc":"2404:9:89","nodeType":"YulIdentifier","src":"2404:9:89"}],"functionName":{"name":"sub","nativeSrc":"2391:3:89","nodeType":"YulIdentifier","src":"2391:3:89"},"nativeSrc":"2391:23:89","nodeType":"YulFunctionCall","src":"2391:23:89"},{"kind":"number","nativeSrc":"2416:2:89","nodeType":"YulLiteral","src":"2416:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2387:3:89","nodeType":"YulIdentifier","src":"2387:3:89"},"nativeSrc":"2387:32:89","nodeType":"YulFunctionCall","src":"2387:32:89"},"nativeSrc":"2384:52:89","nodeType":"YulIf","src":"2384:52:89"},{"nativeSrc":"2445:39:89","nodeType":"YulAssignment","src":"2445:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2474:9:89","nodeType":"YulIdentifier","src":"2474:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2455:18:89","nodeType":"YulIdentifier","src":"2455:18:89"},"nativeSrc":"2455:29:89","nodeType":"YulFunctionCall","src":"2455:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2445:6:89","nodeType":"YulIdentifier","src":"2445:6:89"}]},{"nativeSrc":"2493:48:89","nodeType":"YulAssignment","src":"2493:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2526:9:89","nodeType":"YulIdentifier","src":"2526:9:89"},{"kind":"number","nativeSrc":"2537:2:89","nodeType":"YulLiteral","src":"2537:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2522:3:89","nodeType":"YulIdentifier","src":"2522:3:89"},"nativeSrc":"2522:18:89","nodeType":"YulFunctionCall","src":"2522:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2503:18:89","nodeType":"YulIdentifier","src":"2503:18:89"},"nativeSrc":"2503:38:89","nodeType":"YulFunctionCall","src":"2503:38:89"},"variableNames":[{"name":"value1","nativeSrc":"2493:6:89","nodeType":"YulIdentifier","src":"2493:6:89"}]},{"nativeSrc":"2550:14:89","nodeType":"YulVariableDeclaration","src":"2550:14:89","value":{"kind":"number","nativeSrc":"2563:1:89","nodeType":"YulLiteral","src":"2563:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2554:5:89","nodeType":"YulTypedName","src":"2554:5:89","type":""}]},{"nativeSrc":"2573:41:89","nodeType":"YulAssignment","src":"2573:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2599:9:89","nodeType":"YulIdentifier","src":"2599:9:89"},{"kind":"number","nativeSrc":"2610:2:89","nodeType":"YulLiteral","src":"2610:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2595:3:89","nodeType":"YulIdentifier","src":"2595:3:89"},"nativeSrc":"2595:18:89","nodeType":"YulFunctionCall","src":"2595:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"2582:12:89","nodeType":"YulIdentifier","src":"2582:12:89"},"nativeSrc":"2582:32:89","nodeType":"YulFunctionCall","src":"2582:32:89"},"variableNames":[{"name":"value","nativeSrc":"2573:5:89","nodeType":"YulIdentifier","src":"2573:5:89"}]},{"nativeSrc":"2623:15:89","nodeType":"YulAssignment","src":"2623:15:89","value":{"name":"value","nativeSrc":"2633:5:89","nodeType":"YulIdentifier","src":"2633:5:89"},"variableNames":[{"name":"value2","nativeSrc":"2623:6:89","nodeType":"YulIdentifier","src":"2623:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"2270:374:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2324:9:89","nodeType":"YulTypedName","src":"2324:9:89","type":""},{"name":"dataEnd","nativeSrc":"2335:7:89","nodeType":"YulTypedName","src":"2335:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2347:6:89","nodeType":"YulTypedName","src":"2347:6:89","type":""},{"name":"value1","nativeSrc":"2355:6:89","nodeType":"YulTypedName","src":"2355:6:89","type":""},{"name":"value2","nativeSrc":"2363:6:89","nodeType":"YulTypedName","src":"2363:6:89","type":""}],"src":"2270:374:89"},{"body":{"nativeSrc":"2719:116:89","nodeType":"YulBlock","src":"2719:116:89","statements":[{"body":{"nativeSrc":"2765:16:89","nodeType":"YulBlock","src":"2765:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2774:1:89","nodeType":"YulLiteral","src":"2774:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2777:1:89","nodeType":"YulLiteral","src":"2777:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2767:6:89","nodeType":"YulIdentifier","src":"2767:6:89"},"nativeSrc":"2767:12:89","nodeType":"YulFunctionCall","src":"2767:12:89"},"nativeSrc":"2767:12:89","nodeType":"YulExpressionStatement","src":"2767:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2740:7:89","nodeType":"YulIdentifier","src":"2740:7:89"},{"name":"headStart","nativeSrc":"2749:9:89","nodeType":"YulIdentifier","src":"2749:9:89"}],"functionName":{"name":"sub","nativeSrc":"2736:3:89","nodeType":"YulIdentifier","src":"2736:3:89"},"nativeSrc":"2736:23:89","nodeType":"YulFunctionCall","src":"2736:23:89"},{"kind":"number","nativeSrc":"2761:2:89","nodeType":"YulLiteral","src":"2761:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2732:3:89","nodeType":"YulIdentifier","src":"2732:3:89"},"nativeSrc":"2732:32:89","nodeType":"YulFunctionCall","src":"2732:32:89"},"nativeSrc":"2729:52:89","nodeType":"YulIf","src":"2729:52:89"},{"nativeSrc":"2790:39:89","nodeType":"YulAssignment","src":"2790:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2819:9:89","nodeType":"YulIdentifier","src":"2819:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2800:18:89","nodeType":"YulIdentifier","src":"2800:18:89"},"nativeSrc":"2800:29:89","nodeType":"YulFunctionCall","src":"2800:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2790:6:89","nodeType":"YulIdentifier","src":"2790:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2649:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2685:9:89","nodeType":"YulTypedName","src":"2685:9:89","type":""},{"name":"dataEnd","nativeSrc":"2696:7:89","nodeType":"YulTypedName","src":"2696:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2708:6:89","nodeType":"YulTypedName","src":"2708:6:89","type":""}],"src":"2649:186:89"},{"body":{"nativeSrc":"2941:76:89","nodeType":"YulBlock","src":"2941:76:89","statements":[{"nativeSrc":"2951:26:89","nodeType":"YulAssignment","src":"2951:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2963:9:89","nodeType":"YulIdentifier","src":"2963:9:89"},{"kind":"number","nativeSrc":"2974:2:89","nodeType":"YulLiteral","src":"2974:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2959:3:89","nodeType":"YulIdentifier","src":"2959:3:89"},"nativeSrc":"2959:18:89","nodeType":"YulFunctionCall","src":"2959:18:89"},"variableNames":[{"name":"tail","nativeSrc":"2951:4:89","nodeType":"YulIdentifier","src":"2951:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2993:9:89","nodeType":"YulIdentifier","src":"2993:9:89"},{"name":"value0","nativeSrc":"3004:6:89","nodeType":"YulIdentifier","src":"3004:6:89"}],"functionName":{"name":"mstore","nativeSrc":"2986:6:89","nodeType":"YulIdentifier","src":"2986:6:89"},"nativeSrc":"2986:25:89","nodeType":"YulFunctionCall","src":"2986:25:89"},"nativeSrc":"2986:25:89","nodeType":"YulExpressionStatement","src":"2986:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2840:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2910:9:89","nodeType":"YulTypedName","src":"2910:9:89","type":""},{"name":"value0","nativeSrc":"2921:6:89","nodeType":"YulTypedName","src":"2921:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2932:4:89","nodeType":"YulTypedName","src":"2932:4:89","type":""}],"src":"2840:177:89"},{"body":{"nativeSrc":"3106:263:89","nodeType":"YulBlock","src":"3106:263:89","statements":[{"body":{"nativeSrc":"3152:16:89","nodeType":"YulBlock","src":"3152:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3161:1:89","nodeType":"YulLiteral","src":"3161:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3164:1:89","nodeType":"YulLiteral","src":"3164:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3154:6:89","nodeType":"YulIdentifier","src":"3154:6:89"},"nativeSrc":"3154:12:89","nodeType":"YulFunctionCall","src":"3154:12:89"},"nativeSrc":"3154:12:89","nodeType":"YulExpressionStatement","src":"3154:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3127:7:89","nodeType":"YulIdentifier","src":"3127:7:89"},{"name":"headStart","nativeSrc":"3136:9:89","nodeType":"YulIdentifier","src":"3136:9:89"}],"functionName":{"name":"sub","nativeSrc":"3123:3:89","nodeType":"YulIdentifier","src":"3123:3:89"},"nativeSrc":"3123:23:89","nodeType":"YulFunctionCall","src":"3123:23:89"},{"kind":"number","nativeSrc":"3148:2:89","nodeType":"YulLiteral","src":"3148:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3119:3:89","nodeType":"YulIdentifier","src":"3119:3:89"},"nativeSrc":"3119:32:89","nodeType":"YulFunctionCall","src":"3119:32:89"},"nativeSrc":"3116:52:89","nodeType":"YulIf","src":"3116:52:89"},{"nativeSrc":"3177:39:89","nodeType":"YulAssignment","src":"3177:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3206:9:89","nodeType":"YulIdentifier","src":"3206:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3187:18:89","nodeType":"YulIdentifier","src":"3187:18:89"},"nativeSrc":"3187:29:89","nodeType":"YulFunctionCall","src":"3187:29:89"},"variableNames":[{"name":"value0","nativeSrc":"3177:6:89","nodeType":"YulIdentifier","src":"3177:6:89"}]},{"nativeSrc":"3225:45:89","nodeType":"YulVariableDeclaration","src":"3225:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3255:9:89","nodeType":"YulIdentifier","src":"3255:9:89"},{"kind":"number","nativeSrc":"3266:2:89","nodeType":"YulLiteral","src":"3266:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3251:3:89","nodeType":"YulIdentifier","src":"3251:3:89"},"nativeSrc":"3251:18:89","nodeType":"YulFunctionCall","src":"3251:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3238:12:89","nodeType":"YulIdentifier","src":"3238:12:89"},"nativeSrc":"3238:32:89","nodeType":"YulFunctionCall","src":"3238:32:89"},"variables":[{"name":"value","nativeSrc":"3229:5:89","nodeType":"YulTypedName","src":"3229:5:89","type":""}]},{"body":{"nativeSrc":"3323:16:89","nodeType":"YulBlock","src":"3323:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3332:1:89","nodeType":"YulLiteral","src":"3332:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3335:1:89","nodeType":"YulLiteral","src":"3335:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3325:6:89","nodeType":"YulIdentifier","src":"3325:6:89"},"nativeSrc":"3325:12:89","nodeType":"YulFunctionCall","src":"3325:12:89"},"nativeSrc":"3325:12:89","nodeType":"YulExpressionStatement","src":"3325:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3292:5:89","nodeType":"YulIdentifier","src":"3292:5:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3313:5:89","nodeType":"YulIdentifier","src":"3313:5:89"}],"functionName":{"name":"iszero","nativeSrc":"3306:6:89","nodeType":"YulIdentifier","src":"3306:6:89"},"nativeSrc":"3306:13:89","nodeType":"YulFunctionCall","src":"3306:13:89"}],"functionName":{"name":"iszero","nativeSrc":"3299:6:89","nodeType":"YulIdentifier","src":"3299:6:89"},"nativeSrc":"3299:21:89","nodeType":"YulFunctionCall","src":"3299:21:89"}],"functionName":{"name":"eq","nativeSrc":"3289:2:89","nodeType":"YulIdentifier","src":"3289:2:89"},"nativeSrc":"3289:32:89","nodeType":"YulFunctionCall","src":"3289:32:89"}],"functionName":{"name":"iszero","nativeSrc":"3282:6:89","nodeType":"YulIdentifier","src":"3282:6:89"},"nativeSrc":"3282:40:89","nodeType":"YulFunctionCall","src":"3282:40:89"},"nativeSrc":"3279:60:89","nodeType":"YulIf","src":"3279:60:89"},{"nativeSrc":"3348:15:89","nodeType":"YulAssignment","src":"3348:15:89","value":{"name":"value","nativeSrc":"3358:5:89","nodeType":"YulIdentifier","src":"3358:5:89"},"variableNames":[{"name":"value1","nativeSrc":"3348:6:89","nodeType":"YulIdentifier","src":"3348:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"3022:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3064:9:89","nodeType":"YulTypedName","src":"3064:9:89","type":""},{"name":"dataEnd","nativeSrc":"3075:7:89","nodeType":"YulTypedName","src":"3075:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3087:6:89","nodeType":"YulTypedName","src":"3087:6:89","type":""},{"name":"value1","nativeSrc":"3095:6:89","nodeType":"YulTypedName","src":"3095:6:89","type":""}],"src":"3022:347:89"},{"body":{"nativeSrc":"3406:95:89","nodeType":"YulBlock","src":"3406:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3423:1:89","nodeType":"YulLiteral","src":"3423:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3430:3:89","nodeType":"YulLiteral","src":"3430:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"3435:10:89","nodeType":"YulLiteral","src":"3435:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3426:3:89","nodeType":"YulIdentifier","src":"3426:3:89"},"nativeSrc":"3426:20:89","nodeType":"YulFunctionCall","src":"3426:20:89"}],"functionName":{"name":"mstore","nativeSrc":"3416:6:89","nodeType":"YulIdentifier","src":"3416:6:89"},"nativeSrc":"3416:31:89","nodeType":"YulFunctionCall","src":"3416:31:89"},"nativeSrc":"3416:31:89","nodeType":"YulExpressionStatement","src":"3416:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3463:1:89","nodeType":"YulLiteral","src":"3463:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"3466:4:89","nodeType":"YulLiteral","src":"3466:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3456:6:89","nodeType":"YulIdentifier","src":"3456:6:89"},"nativeSrc":"3456:15:89","nodeType":"YulFunctionCall","src":"3456:15:89"},"nativeSrc":"3456:15:89","nodeType":"YulExpressionStatement","src":"3456:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3487:1:89","nodeType":"YulLiteral","src":"3487:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3490:4:89","nodeType":"YulLiteral","src":"3490:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3480:6:89","nodeType":"YulIdentifier","src":"3480:6:89"},"nativeSrc":"3480:15:89","nodeType":"YulFunctionCall","src":"3480:15:89"},"nativeSrc":"3480:15:89","nodeType":"YulExpressionStatement","src":"3480:15:89"}]},"name":"panic_error_0x41","nativeSrc":"3374:127:89","nodeType":"YulFunctionDefinition","src":"3374:127:89"},{"body":{"nativeSrc":"3636:1077:89","nodeType":"YulBlock","src":"3636:1077:89","statements":[{"body":{"nativeSrc":"3683:16:89","nodeType":"YulBlock","src":"3683:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3692:1:89","nodeType":"YulLiteral","src":"3692:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3695:1:89","nodeType":"YulLiteral","src":"3695:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3685:6:89","nodeType":"YulIdentifier","src":"3685:6:89"},"nativeSrc":"3685:12:89","nodeType":"YulFunctionCall","src":"3685:12:89"},"nativeSrc":"3685:12:89","nodeType":"YulExpressionStatement","src":"3685:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3657:7:89","nodeType":"YulIdentifier","src":"3657:7:89"},{"name":"headStart","nativeSrc":"3666:9:89","nodeType":"YulIdentifier","src":"3666:9:89"}],"functionName":{"name":"sub","nativeSrc":"3653:3:89","nodeType":"YulIdentifier","src":"3653:3:89"},"nativeSrc":"3653:23:89","nodeType":"YulFunctionCall","src":"3653:23:89"},{"kind":"number","nativeSrc":"3678:3:89","nodeType":"YulLiteral","src":"3678:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3649:3:89","nodeType":"YulIdentifier","src":"3649:3:89"},"nativeSrc":"3649:33:89","nodeType":"YulFunctionCall","src":"3649:33:89"},"nativeSrc":"3646:53:89","nodeType":"YulIf","src":"3646:53:89"},{"nativeSrc":"3708:39:89","nodeType":"YulAssignment","src":"3708:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3737:9:89","nodeType":"YulIdentifier","src":"3737:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3718:18:89","nodeType":"YulIdentifier","src":"3718:18:89"},"nativeSrc":"3718:29:89","nodeType":"YulFunctionCall","src":"3718:29:89"},"variableNames":[{"name":"value0","nativeSrc":"3708:6:89","nodeType":"YulIdentifier","src":"3708:6:89"}]},{"nativeSrc":"3756:48:89","nodeType":"YulAssignment","src":"3756:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3789:9:89","nodeType":"YulIdentifier","src":"3789:9:89"},{"kind":"number","nativeSrc":"3800:2:89","nodeType":"YulLiteral","src":"3800:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3785:3:89","nodeType":"YulIdentifier","src":"3785:3:89"},"nativeSrc":"3785:18:89","nodeType":"YulFunctionCall","src":"3785:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3766:18:89","nodeType":"YulIdentifier","src":"3766:18:89"},"nativeSrc":"3766:38:89","nodeType":"YulFunctionCall","src":"3766:38:89"},"variableNames":[{"name":"value1","nativeSrc":"3756:6:89","nodeType":"YulIdentifier","src":"3756:6:89"}]},{"nativeSrc":"3813:14:89","nodeType":"YulVariableDeclaration","src":"3813:14:89","value":{"kind":"number","nativeSrc":"3826:1:89","nodeType":"YulLiteral","src":"3826:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3817:5:89","nodeType":"YulTypedName","src":"3817:5:89","type":""}]},{"nativeSrc":"3836:41:89","nodeType":"YulAssignment","src":"3836:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3862:9:89","nodeType":"YulIdentifier","src":"3862:9:89"},{"kind":"number","nativeSrc":"3873:2:89","nodeType":"YulLiteral","src":"3873:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3858:3:89","nodeType":"YulIdentifier","src":"3858:3:89"},"nativeSrc":"3858:18:89","nodeType":"YulFunctionCall","src":"3858:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3845:12:89","nodeType":"YulIdentifier","src":"3845:12:89"},"nativeSrc":"3845:32:89","nodeType":"YulFunctionCall","src":"3845:32:89"},"variableNames":[{"name":"value","nativeSrc":"3836:5:89","nodeType":"YulIdentifier","src":"3836:5:89"}]},{"nativeSrc":"3886:15:89","nodeType":"YulAssignment","src":"3886:15:89","value":{"name":"value","nativeSrc":"3896:5:89","nodeType":"YulIdentifier","src":"3896:5:89"},"variableNames":[{"name":"value2","nativeSrc":"3886:6:89","nodeType":"YulIdentifier","src":"3886:6:89"}]},{"nativeSrc":"3910:46:89","nodeType":"YulVariableDeclaration","src":"3910:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3941:9:89","nodeType":"YulIdentifier","src":"3941:9:89"},{"kind":"number","nativeSrc":"3952:2:89","nodeType":"YulLiteral","src":"3952:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3937:3:89","nodeType":"YulIdentifier","src":"3937:3:89"},"nativeSrc":"3937:18:89","nodeType":"YulFunctionCall","src":"3937:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3924:12:89","nodeType":"YulIdentifier","src":"3924:12:89"},"nativeSrc":"3924:32:89","nodeType":"YulFunctionCall","src":"3924:32:89"},"variables":[{"name":"offset","nativeSrc":"3914:6:89","nodeType":"YulTypedName","src":"3914:6:89","type":""}]},{"body":{"nativeSrc":"3999:16:89","nodeType":"YulBlock","src":"3999:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4008:1:89","nodeType":"YulLiteral","src":"4008:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4011:1:89","nodeType":"YulLiteral","src":"4011:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4001:6:89","nodeType":"YulIdentifier","src":"4001:6:89"},"nativeSrc":"4001:12:89","nodeType":"YulFunctionCall","src":"4001:12:89"},"nativeSrc":"4001:12:89","nodeType":"YulExpressionStatement","src":"4001:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3971:6:89","nodeType":"YulIdentifier","src":"3971:6:89"},{"kind":"number","nativeSrc":"3979:18:89","nodeType":"YulLiteral","src":"3979:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3968:2:89","nodeType":"YulIdentifier","src":"3968:2:89"},"nativeSrc":"3968:30:89","nodeType":"YulFunctionCall","src":"3968:30:89"},"nativeSrc":"3965:50:89","nodeType":"YulIf","src":"3965:50:89"},{"nativeSrc":"4024:32:89","nodeType":"YulVariableDeclaration","src":"4024:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4038:9:89","nodeType":"YulIdentifier","src":"4038:9:89"},{"name":"offset","nativeSrc":"4049:6:89","nodeType":"YulIdentifier","src":"4049:6:89"}],"functionName":{"name":"add","nativeSrc":"4034:3:89","nodeType":"YulIdentifier","src":"4034:3:89"},"nativeSrc":"4034:22:89","nodeType":"YulFunctionCall","src":"4034:22:89"},"variables":[{"name":"_1","nativeSrc":"4028:2:89","nodeType":"YulTypedName","src":"4028:2:89","type":""}]},{"body":{"nativeSrc":"4104:16:89","nodeType":"YulBlock","src":"4104:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4113:1:89","nodeType":"YulLiteral","src":"4113:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4116:1:89","nodeType":"YulLiteral","src":"4116:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4106:6:89","nodeType":"YulIdentifier","src":"4106:6:89"},"nativeSrc":"4106:12:89","nodeType":"YulFunctionCall","src":"4106:12:89"},"nativeSrc":"4106:12:89","nodeType":"YulExpressionStatement","src":"4106:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4083:2:89","nodeType":"YulIdentifier","src":"4083:2:89"},{"kind":"number","nativeSrc":"4087:4:89","nodeType":"YulLiteral","src":"4087:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4079:3:89","nodeType":"YulIdentifier","src":"4079:3:89"},"nativeSrc":"4079:13:89","nodeType":"YulFunctionCall","src":"4079:13:89"},{"name":"dataEnd","nativeSrc":"4094:7:89","nodeType":"YulIdentifier","src":"4094:7:89"}],"functionName":{"name":"slt","nativeSrc":"4075:3:89","nodeType":"YulIdentifier","src":"4075:3:89"},"nativeSrc":"4075:27:89","nodeType":"YulFunctionCall","src":"4075:27:89"}],"functionName":{"name":"iszero","nativeSrc":"4068:6:89","nodeType":"YulIdentifier","src":"4068:6:89"},"nativeSrc":"4068:35:89","nodeType":"YulFunctionCall","src":"4068:35:89"},"nativeSrc":"4065:55:89","nodeType":"YulIf","src":"4065:55:89"},{"nativeSrc":"4129:30:89","nodeType":"YulVariableDeclaration","src":"4129:30:89","value":{"arguments":[{"name":"_1","nativeSrc":"4156:2:89","nodeType":"YulIdentifier","src":"4156:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"4143:12:89","nodeType":"YulIdentifier","src":"4143:12:89"},"nativeSrc":"4143:16:89","nodeType":"YulFunctionCall","src":"4143:16:89"},"variables":[{"name":"length","nativeSrc":"4133:6:89","nodeType":"YulTypedName","src":"4133:6:89","type":""}]},{"body":{"nativeSrc":"4202:22:89","nodeType":"YulBlock","src":"4202:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4204:16:89","nodeType":"YulIdentifier","src":"4204:16:89"},"nativeSrc":"4204:18:89","nodeType":"YulFunctionCall","src":"4204:18:89"},"nativeSrc":"4204:18:89","nodeType":"YulExpressionStatement","src":"4204:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4174:6:89","nodeType":"YulIdentifier","src":"4174:6:89"},{"kind":"number","nativeSrc":"4182:18:89","nodeType":"YulLiteral","src":"4182:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4171:2:89","nodeType":"YulIdentifier","src":"4171:2:89"},"nativeSrc":"4171:30:89","nodeType":"YulFunctionCall","src":"4171:30:89"},"nativeSrc":"4168:56:89","nodeType":"YulIf","src":"4168:56:89"},{"nativeSrc":"4233:23:89","nodeType":"YulVariableDeclaration","src":"4233:23:89","value":{"arguments":[{"kind":"number","nativeSrc":"4253:2:89","nodeType":"YulLiteral","src":"4253:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"4247:5:89","nodeType":"YulIdentifier","src":"4247:5:89"},"nativeSrc":"4247:9:89","nodeType":"YulFunctionCall","src":"4247:9:89"},"variables":[{"name":"memPtr","nativeSrc":"4237:6:89","nodeType":"YulTypedName","src":"4237:6:89","type":""}]},{"nativeSrc":"4265:85:89","nodeType":"YulVariableDeclaration","src":"4265:85:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"4287:6:89","nodeType":"YulIdentifier","src":"4287:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4311:6:89","nodeType":"YulIdentifier","src":"4311:6:89"},{"kind":"number","nativeSrc":"4319:4:89","nodeType":"YulLiteral","src":"4319:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4307:3:89","nodeType":"YulIdentifier","src":"4307:3:89"},"nativeSrc":"4307:17:89","nodeType":"YulFunctionCall","src":"4307:17:89"},{"arguments":[{"kind":"number","nativeSrc":"4330:2:89","nodeType":"YulLiteral","src":"4330:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4326:3:89","nodeType":"YulIdentifier","src":"4326:3:89"},"nativeSrc":"4326:7:89","nodeType":"YulFunctionCall","src":"4326:7:89"}],"functionName":{"name":"and","nativeSrc":"4303:3:89","nodeType":"YulIdentifier","src":"4303:3:89"},"nativeSrc":"4303:31:89","nodeType":"YulFunctionCall","src":"4303:31:89"},{"kind":"number","nativeSrc":"4336:2:89","nodeType":"YulLiteral","src":"4336:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"4299:3:89","nodeType":"YulIdentifier","src":"4299:3:89"},"nativeSrc":"4299:40:89","nodeType":"YulFunctionCall","src":"4299:40:89"},{"arguments":[{"kind":"number","nativeSrc":"4345:2:89","nodeType":"YulLiteral","src":"4345:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4341:3:89","nodeType":"YulIdentifier","src":"4341:3:89"},"nativeSrc":"4341:7:89","nodeType":"YulFunctionCall","src":"4341:7:89"}],"functionName":{"name":"and","nativeSrc":"4295:3:89","nodeType":"YulIdentifier","src":"4295:3:89"},"nativeSrc":"4295:54:89","nodeType":"YulFunctionCall","src":"4295:54:89"}],"functionName":{"name":"add","nativeSrc":"4283:3:89","nodeType":"YulIdentifier","src":"4283:3:89"},"nativeSrc":"4283:67:89","nodeType":"YulFunctionCall","src":"4283:67:89"},"variables":[{"name":"newFreePtr","nativeSrc":"4269:10:89","nodeType":"YulTypedName","src":"4269:10:89","type":""}]},{"body":{"nativeSrc":"4425:22:89","nodeType":"YulBlock","src":"4425:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4427:16:89","nodeType":"YulIdentifier","src":"4427:16:89"},"nativeSrc":"4427:18:89","nodeType":"YulFunctionCall","src":"4427:18:89"},"nativeSrc":"4427:18:89","nodeType":"YulExpressionStatement","src":"4427:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"4368:10:89","nodeType":"YulIdentifier","src":"4368:10:89"},{"kind":"number","nativeSrc":"4380:18:89","nodeType":"YulLiteral","src":"4380:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4365:2:89","nodeType":"YulIdentifier","src":"4365:2:89"},"nativeSrc":"4365:34:89","nodeType":"YulFunctionCall","src":"4365:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"4404:10:89","nodeType":"YulIdentifier","src":"4404:10:89"},{"name":"memPtr","nativeSrc":"4416:6:89","nodeType":"YulIdentifier","src":"4416:6:89"}],"functionName":{"name":"lt","nativeSrc":"4401:2:89","nodeType":"YulIdentifier","src":"4401:2:89"},"nativeSrc":"4401:22:89","nodeType":"YulFunctionCall","src":"4401:22:89"}],"functionName":{"name":"or","nativeSrc":"4362:2:89","nodeType":"YulIdentifier","src":"4362:2:89"},"nativeSrc":"4362:62:89","nodeType":"YulFunctionCall","src":"4362:62:89"},"nativeSrc":"4359:88:89","nodeType":"YulIf","src":"4359:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4463:2:89","nodeType":"YulLiteral","src":"4463:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"4467:10:89","nodeType":"YulIdentifier","src":"4467:10:89"}],"functionName":{"name":"mstore","nativeSrc":"4456:6:89","nodeType":"YulIdentifier","src":"4456:6:89"},"nativeSrc":"4456:22:89","nodeType":"YulFunctionCall","src":"4456:22:89"},"nativeSrc":"4456:22:89","nodeType":"YulExpressionStatement","src":"4456:22:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"4494:6:89","nodeType":"YulIdentifier","src":"4494:6:89"},{"name":"length","nativeSrc":"4502:6:89","nodeType":"YulIdentifier","src":"4502:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4487:6:89","nodeType":"YulIdentifier","src":"4487:6:89"},"nativeSrc":"4487:22:89","nodeType":"YulFunctionCall","src":"4487:22:89"},"nativeSrc":"4487:22:89","nodeType":"YulExpressionStatement","src":"4487:22:89"},{"body":{"nativeSrc":"4559:16:89","nodeType":"YulBlock","src":"4559:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4568:1:89","nodeType":"YulLiteral","src":"4568:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4571:1:89","nodeType":"YulLiteral","src":"4571:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4561:6:89","nodeType":"YulIdentifier","src":"4561:6:89"},"nativeSrc":"4561:12:89","nodeType":"YulFunctionCall","src":"4561:12:89"},"nativeSrc":"4561:12:89","nodeType":"YulExpressionStatement","src":"4561:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4532:2:89","nodeType":"YulIdentifier","src":"4532:2:89"},{"name":"length","nativeSrc":"4536:6:89","nodeType":"YulIdentifier","src":"4536:6:89"}],"functionName":{"name":"add","nativeSrc":"4528:3:89","nodeType":"YulIdentifier","src":"4528:3:89"},"nativeSrc":"4528:15:89","nodeType":"YulFunctionCall","src":"4528:15:89"},{"kind":"number","nativeSrc":"4545:2:89","nodeType":"YulLiteral","src":"4545:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4524:3:89","nodeType":"YulIdentifier","src":"4524:3:89"},"nativeSrc":"4524:24:89","nodeType":"YulFunctionCall","src":"4524:24:89"},{"name":"dataEnd","nativeSrc":"4550:7:89","nodeType":"YulIdentifier","src":"4550:7:89"}],"functionName":{"name":"gt","nativeSrc":"4521:2:89","nodeType":"YulIdentifier","src":"4521:2:89"},"nativeSrc":"4521:37:89","nodeType":"YulFunctionCall","src":"4521:37:89"},"nativeSrc":"4518:57:89","nodeType":"YulIf","src":"4518:57:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4601:6:89","nodeType":"YulIdentifier","src":"4601:6:89"},{"kind":"number","nativeSrc":"4609:2:89","nodeType":"YulLiteral","src":"4609:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4597:3:89","nodeType":"YulIdentifier","src":"4597:3:89"},"nativeSrc":"4597:15:89","nodeType":"YulFunctionCall","src":"4597:15:89"},{"arguments":[{"name":"_1","nativeSrc":"4618:2:89","nodeType":"YulIdentifier","src":"4618:2:89"},{"kind":"number","nativeSrc":"4622:2:89","nodeType":"YulLiteral","src":"4622:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4614:3:89","nodeType":"YulIdentifier","src":"4614:3:89"},"nativeSrc":"4614:11:89","nodeType":"YulFunctionCall","src":"4614:11:89"},{"name":"length","nativeSrc":"4627:6:89","nodeType":"YulIdentifier","src":"4627:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"4584:12:89","nodeType":"YulIdentifier","src":"4584:12:89"},"nativeSrc":"4584:50:89","nodeType":"YulFunctionCall","src":"4584:50:89"},"nativeSrc":"4584:50:89","nodeType":"YulExpressionStatement","src":"4584:50:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4658:6:89","nodeType":"YulIdentifier","src":"4658:6:89"},{"name":"length","nativeSrc":"4666:6:89","nodeType":"YulIdentifier","src":"4666:6:89"}],"functionName":{"name":"add","nativeSrc":"4654:3:89","nodeType":"YulIdentifier","src":"4654:3:89"},"nativeSrc":"4654:19:89","nodeType":"YulFunctionCall","src":"4654:19:89"},{"kind":"number","nativeSrc":"4675:2:89","nodeType":"YulLiteral","src":"4675:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4650:3:89","nodeType":"YulIdentifier","src":"4650:3:89"},"nativeSrc":"4650:28:89","nodeType":"YulFunctionCall","src":"4650:28:89"},{"kind":"number","nativeSrc":"4680:1:89","nodeType":"YulLiteral","src":"4680:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4643:6:89","nodeType":"YulIdentifier","src":"4643:6:89"},"nativeSrc":"4643:39:89","nodeType":"YulFunctionCall","src":"4643:39:89"},"nativeSrc":"4643:39:89","nodeType":"YulExpressionStatement","src":"4643:39:89"},{"nativeSrc":"4691:16:89","nodeType":"YulAssignment","src":"4691:16:89","value":{"name":"memPtr","nativeSrc":"4701:6:89","nodeType":"YulIdentifier","src":"4701:6:89"},"variableNames":[{"name":"value3","nativeSrc":"4691:6:89","nodeType":"YulIdentifier","src":"4691:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nativeSrc":"3506:1207:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3578:9:89","nodeType":"YulTypedName","src":"3578:9:89","type":""},{"name":"dataEnd","nativeSrc":"3589:7:89","nodeType":"YulTypedName","src":"3589:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3601:6:89","nodeType":"YulTypedName","src":"3601:6:89","type":""},{"name":"value1","nativeSrc":"3609:6:89","nodeType":"YulTypedName","src":"3609:6:89","type":""},{"name":"value2","nativeSrc":"3617:6:89","nodeType":"YulTypedName","src":"3617:6:89","type":""},{"name":"value3","nativeSrc":"3625:6:89","nodeType":"YulTypedName","src":"3625:6:89","type":""}],"src":"3506:1207:89"},{"body":{"nativeSrc":"4805:173:89","nodeType":"YulBlock","src":"4805:173:89","statements":[{"body":{"nativeSrc":"4851:16:89","nodeType":"YulBlock","src":"4851:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4860:1:89","nodeType":"YulLiteral","src":"4860:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4863:1:89","nodeType":"YulLiteral","src":"4863:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4853:6:89","nodeType":"YulIdentifier","src":"4853:6:89"},"nativeSrc":"4853:12:89","nodeType":"YulFunctionCall","src":"4853:12:89"},"nativeSrc":"4853:12:89","nodeType":"YulExpressionStatement","src":"4853:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4826:7:89","nodeType":"YulIdentifier","src":"4826:7:89"},{"name":"headStart","nativeSrc":"4835:9:89","nodeType":"YulIdentifier","src":"4835:9:89"}],"functionName":{"name":"sub","nativeSrc":"4822:3:89","nodeType":"YulIdentifier","src":"4822:3:89"},"nativeSrc":"4822:23:89","nodeType":"YulFunctionCall","src":"4822:23:89"},{"kind":"number","nativeSrc":"4847:2:89","nodeType":"YulLiteral","src":"4847:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4818:3:89","nodeType":"YulIdentifier","src":"4818:3:89"},"nativeSrc":"4818:32:89","nodeType":"YulFunctionCall","src":"4818:32:89"},"nativeSrc":"4815:52:89","nodeType":"YulIf","src":"4815:52:89"},{"nativeSrc":"4876:39:89","nodeType":"YulAssignment","src":"4876:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4905:9:89","nodeType":"YulIdentifier","src":"4905:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4886:18:89","nodeType":"YulIdentifier","src":"4886:18:89"},"nativeSrc":"4886:29:89","nodeType":"YulFunctionCall","src":"4886:29:89"},"variableNames":[{"name":"value0","nativeSrc":"4876:6:89","nodeType":"YulIdentifier","src":"4876:6:89"}]},{"nativeSrc":"4924:48:89","nodeType":"YulAssignment","src":"4924:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4957:9:89","nodeType":"YulIdentifier","src":"4957:9:89"},{"kind":"number","nativeSrc":"4968:2:89","nodeType":"YulLiteral","src":"4968:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4953:3:89","nodeType":"YulIdentifier","src":"4953:3:89"},"nativeSrc":"4953:18:89","nodeType":"YulFunctionCall","src":"4953:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4934:18:89","nodeType":"YulIdentifier","src":"4934:18:89"},"nativeSrc":"4934:38:89","nodeType":"YulFunctionCall","src":"4934:38:89"},"variableNames":[{"name":"value1","nativeSrc":"4924:6:89","nodeType":"YulIdentifier","src":"4924:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"4718:260:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4763:9:89","nodeType":"YulTypedName","src":"4763:9:89","type":""},{"name":"dataEnd","nativeSrc":"4774:7:89","nodeType":"YulTypedName","src":"4774:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4786:6:89","nodeType":"YulTypedName","src":"4786:6:89","type":""},{"name":"value1","nativeSrc":"4794:6:89","nodeType":"YulTypedName","src":"4794:6:89","type":""}],"src":"4718:260:89"},{"body":{"nativeSrc":"5038:325:89","nodeType":"YulBlock","src":"5038:325:89","statements":[{"nativeSrc":"5048:22:89","nodeType":"YulAssignment","src":"5048:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"5062:1:89","nodeType":"YulLiteral","src":"5062:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"5065:4:89","nodeType":"YulIdentifier","src":"5065:4:89"}],"functionName":{"name":"shr","nativeSrc":"5058:3:89","nodeType":"YulIdentifier","src":"5058:3:89"},"nativeSrc":"5058:12:89","nodeType":"YulFunctionCall","src":"5058:12:89"},"variableNames":[{"name":"length","nativeSrc":"5048:6:89","nodeType":"YulIdentifier","src":"5048:6:89"}]},{"nativeSrc":"5079:38:89","nodeType":"YulVariableDeclaration","src":"5079:38:89","value":{"arguments":[{"name":"data","nativeSrc":"5109:4:89","nodeType":"YulIdentifier","src":"5109:4:89"},{"kind":"number","nativeSrc":"5115:1:89","nodeType":"YulLiteral","src":"5115:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5105:3:89","nodeType":"YulIdentifier","src":"5105:3:89"},"nativeSrc":"5105:12:89","nodeType":"YulFunctionCall","src":"5105:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"5083:18:89","nodeType":"YulTypedName","src":"5083:18:89","type":""}]},{"body":{"nativeSrc":"5156:31:89","nodeType":"YulBlock","src":"5156:31:89","statements":[{"nativeSrc":"5158:27:89","nodeType":"YulAssignment","src":"5158:27:89","value":{"arguments":[{"name":"length","nativeSrc":"5172:6:89","nodeType":"YulIdentifier","src":"5172:6:89"},{"kind":"number","nativeSrc":"5180:4:89","nodeType":"YulLiteral","src":"5180:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"5168:3:89","nodeType":"YulIdentifier","src":"5168:3:89"},"nativeSrc":"5168:17:89","nodeType":"YulFunctionCall","src":"5168:17:89"},"variableNames":[{"name":"length","nativeSrc":"5158:6:89","nodeType":"YulIdentifier","src":"5158:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5136:18:89","nodeType":"YulIdentifier","src":"5136:18:89"}],"functionName":{"name":"iszero","nativeSrc":"5129:6:89","nodeType":"YulIdentifier","src":"5129:6:89"},"nativeSrc":"5129:26:89","nodeType":"YulFunctionCall","src":"5129:26:89"},"nativeSrc":"5126:61:89","nodeType":"YulIf","src":"5126:61:89"},{"body":{"nativeSrc":"5246:111:89","nodeType":"YulBlock","src":"5246:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5267:1:89","nodeType":"YulLiteral","src":"5267:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5274:3:89","nodeType":"YulLiteral","src":"5274:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"5279:10:89","nodeType":"YulLiteral","src":"5279:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5270:3:89","nodeType":"YulIdentifier","src":"5270:3:89"},"nativeSrc":"5270:20:89","nodeType":"YulFunctionCall","src":"5270:20:89"}],"functionName":{"name":"mstore","nativeSrc":"5260:6:89","nodeType":"YulIdentifier","src":"5260:6:89"},"nativeSrc":"5260:31:89","nodeType":"YulFunctionCall","src":"5260:31:89"},"nativeSrc":"5260:31:89","nodeType":"YulExpressionStatement","src":"5260:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5311:1:89","nodeType":"YulLiteral","src":"5311:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"5314:4:89","nodeType":"YulLiteral","src":"5314:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"5304:6:89","nodeType":"YulIdentifier","src":"5304:6:89"},"nativeSrc":"5304:15:89","nodeType":"YulFunctionCall","src":"5304:15:89"},"nativeSrc":"5304:15:89","nodeType":"YulExpressionStatement","src":"5304:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5339:1:89","nodeType":"YulLiteral","src":"5339:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5342:4:89","nodeType":"YulLiteral","src":"5342:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5332:6:89","nodeType":"YulIdentifier","src":"5332:6:89"},"nativeSrc":"5332:15:89","nodeType":"YulFunctionCall","src":"5332:15:89"},"nativeSrc":"5332:15:89","nodeType":"YulExpressionStatement","src":"5332:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5202:18:89","nodeType":"YulIdentifier","src":"5202:18:89"},{"arguments":[{"name":"length","nativeSrc":"5225:6:89","nodeType":"YulIdentifier","src":"5225:6:89"},{"kind":"number","nativeSrc":"5233:2:89","nodeType":"YulLiteral","src":"5233:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"5222:2:89","nodeType":"YulIdentifier","src":"5222:2:89"},"nativeSrc":"5222:14:89","nodeType":"YulFunctionCall","src":"5222:14:89"}],"functionName":{"name":"eq","nativeSrc":"5199:2:89","nodeType":"YulIdentifier","src":"5199:2:89"},"nativeSrc":"5199:38:89","nodeType":"YulFunctionCall","src":"5199:38:89"},"nativeSrc":"5196:161:89","nodeType":"YulIf","src":"5196:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"4983:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"5018:4:89","nodeType":"YulTypedName","src":"5018:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"5027:6:89","nodeType":"YulTypedName","src":"5027:6:89","type":""}],"src":"4983:380:89"},{"body":{"nativeSrc":"5525:214:89","nodeType":"YulBlock","src":"5525:214:89","statements":[{"nativeSrc":"5535:26:89","nodeType":"YulAssignment","src":"5535:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"5547:9:89","nodeType":"YulIdentifier","src":"5547:9:89"},{"kind":"number","nativeSrc":"5558:2:89","nodeType":"YulLiteral","src":"5558:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5543:3:89","nodeType":"YulIdentifier","src":"5543:3:89"},"nativeSrc":"5543:18:89","nodeType":"YulFunctionCall","src":"5543:18:89"},"variableNames":[{"name":"tail","nativeSrc":"5535:4:89","nodeType":"YulIdentifier","src":"5535:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5577:9:89","nodeType":"YulIdentifier","src":"5577:9:89"},{"arguments":[{"name":"value0","nativeSrc":"5592:6:89","nodeType":"YulIdentifier","src":"5592:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5608:3:89","nodeType":"YulLiteral","src":"5608:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"5613:1:89","nodeType":"YulLiteral","src":"5613:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5604:3:89","nodeType":"YulIdentifier","src":"5604:3:89"},"nativeSrc":"5604:11:89","nodeType":"YulFunctionCall","src":"5604:11:89"},{"kind":"number","nativeSrc":"5617:1:89","nodeType":"YulLiteral","src":"5617:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5600:3:89","nodeType":"YulIdentifier","src":"5600:3:89"},"nativeSrc":"5600:19:89","nodeType":"YulFunctionCall","src":"5600:19:89"}],"functionName":{"name":"and","nativeSrc":"5588:3:89","nodeType":"YulIdentifier","src":"5588:3:89"},"nativeSrc":"5588:32:89","nodeType":"YulFunctionCall","src":"5588:32:89"}],"functionName":{"name":"mstore","nativeSrc":"5570:6:89","nodeType":"YulIdentifier","src":"5570:6:89"},"nativeSrc":"5570:51:89","nodeType":"YulFunctionCall","src":"5570:51:89"},"nativeSrc":"5570:51:89","nodeType":"YulExpressionStatement","src":"5570:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5641:9:89","nodeType":"YulIdentifier","src":"5641:9:89"},{"kind":"number","nativeSrc":"5652:2:89","nodeType":"YulLiteral","src":"5652:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5637:3:89","nodeType":"YulIdentifier","src":"5637:3:89"},"nativeSrc":"5637:18:89","nodeType":"YulFunctionCall","src":"5637:18:89"},{"name":"value1","nativeSrc":"5657:6:89","nodeType":"YulIdentifier","src":"5657:6:89"}],"functionName":{"name":"mstore","nativeSrc":"5630:6:89","nodeType":"YulIdentifier","src":"5630:6:89"},"nativeSrc":"5630:34:89","nodeType":"YulFunctionCall","src":"5630:34:89"},"nativeSrc":"5630:34:89","nodeType":"YulExpressionStatement","src":"5630:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5684:9:89","nodeType":"YulIdentifier","src":"5684:9:89"},{"kind":"number","nativeSrc":"5695:2:89","nodeType":"YulLiteral","src":"5695:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5680:3:89","nodeType":"YulIdentifier","src":"5680:3:89"},"nativeSrc":"5680:18:89","nodeType":"YulFunctionCall","src":"5680:18:89"},{"arguments":[{"name":"value2","nativeSrc":"5704:6:89","nodeType":"YulIdentifier","src":"5704:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5720:3:89","nodeType":"YulLiteral","src":"5720:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"5725:1:89","nodeType":"YulLiteral","src":"5725:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5716:3:89","nodeType":"YulIdentifier","src":"5716:3:89"},"nativeSrc":"5716:11:89","nodeType":"YulFunctionCall","src":"5716:11:89"},{"kind":"number","nativeSrc":"5729:1:89","nodeType":"YulLiteral","src":"5729:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5712:3:89","nodeType":"YulIdentifier","src":"5712:3:89"},"nativeSrc":"5712:19:89","nodeType":"YulFunctionCall","src":"5712:19:89"}],"functionName":{"name":"and","nativeSrc":"5700:3:89","nodeType":"YulIdentifier","src":"5700:3:89"},"nativeSrc":"5700:32:89","nodeType":"YulFunctionCall","src":"5700:32:89"}],"functionName":{"name":"mstore","nativeSrc":"5673:6:89","nodeType":"YulIdentifier","src":"5673:6:89"},"nativeSrc":"5673:60:89","nodeType":"YulFunctionCall","src":"5673:60:89"},"nativeSrc":"5673:60:89","nodeType":"YulExpressionStatement","src":"5673:60:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed","nativeSrc":"5368:371:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5478:9:89","nodeType":"YulTypedName","src":"5478:9:89","type":""},{"name":"value2","nativeSrc":"5489:6:89","nodeType":"YulTypedName","src":"5489:6:89","type":""},{"name":"value1","nativeSrc":"5497:6:89","nodeType":"YulTypedName","src":"5497:6:89","type":""},{"name":"value0","nativeSrc":"5505:6:89","nodeType":"YulTypedName","src":"5505:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5516:4:89","nodeType":"YulTypedName","src":"5516:4:89","type":""}],"src":"5368:371:89"},{"body":{"nativeSrc":"5931:309:89","nodeType":"YulBlock","src":"5931:309:89","statements":[{"nativeSrc":"5941:27:89","nodeType":"YulVariableDeclaration","src":"5941:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"5961:6:89","nodeType":"YulIdentifier","src":"5961:6:89"}],"functionName":{"name":"mload","nativeSrc":"5955:5:89","nodeType":"YulIdentifier","src":"5955:5:89"},"nativeSrc":"5955:13:89","nodeType":"YulFunctionCall","src":"5955:13:89"},"variables":[{"name":"length","nativeSrc":"5945:6:89","nodeType":"YulTypedName","src":"5945:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"6016:6:89","nodeType":"YulIdentifier","src":"6016:6:89"},{"kind":"number","nativeSrc":"6024:4:89","nodeType":"YulLiteral","src":"6024:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6012:3:89","nodeType":"YulIdentifier","src":"6012:3:89"},"nativeSrc":"6012:17:89","nodeType":"YulFunctionCall","src":"6012:17:89"},{"name":"pos","nativeSrc":"6031:3:89","nodeType":"YulIdentifier","src":"6031:3:89"},{"name":"length","nativeSrc":"6036:6:89","nodeType":"YulIdentifier","src":"6036:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5977:34:89","nodeType":"YulIdentifier","src":"5977:34:89"},"nativeSrc":"5977:66:89","nodeType":"YulFunctionCall","src":"5977:66:89"},"nativeSrc":"5977:66:89","nodeType":"YulExpressionStatement","src":"5977:66:89"},{"nativeSrc":"6052:29:89","nodeType":"YulVariableDeclaration","src":"6052:29:89","value":{"arguments":[{"name":"pos","nativeSrc":"6069:3:89","nodeType":"YulIdentifier","src":"6069:3:89"},{"name":"length","nativeSrc":"6074:6:89","nodeType":"YulIdentifier","src":"6074:6:89"}],"functionName":{"name":"add","nativeSrc":"6065:3:89","nodeType":"YulIdentifier","src":"6065:3:89"},"nativeSrc":"6065:16:89","nodeType":"YulFunctionCall","src":"6065:16:89"},"variables":[{"name":"end_1","nativeSrc":"6056:5:89","nodeType":"YulTypedName","src":"6056:5:89","type":""}]},{"nativeSrc":"6090:29:89","nodeType":"YulVariableDeclaration","src":"6090:29:89","value":{"arguments":[{"name":"value1","nativeSrc":"6112:6:89","nodeType":"YulIdentifier","src":"6112:6:89"}],"functionName":{"name":"mload","nativeSrc":"6106:5:89","nodeType":"YulIdentifier","src":"6106:5:89"},"nativeSrc":"6106:13:89","nodeType":"YulFunctionCall","src":"6106:13:89"},"variables":[{"name":"length_1","nativeSrc":"6094:8:89","nodeType":"YulTypedName","src":"6094:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"6167:6:89","nodeType":"YulIdentifier","src":"6167:6:89"},{"kind":"number","nativeSrc":"6175:4:89","nodeType":"YulLiteral","src":"6175:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6163:3:89","nodeType":"YulIdentifier","src":"6163:3:89"},"nativeSrc":"6163:17:89","nodeType":"YulFunctionCall","src":"6163:17:89"},{"name":"end_1","nativeSrc":"6182:5:89","nodeType":"YulIdentifier","src":"6182:5:89"},{"name":"length_1","nativeSrc":"6189:8:89","nodeType":"YulIdentifier","src":"6189:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6128:34:89","nodeType":"YulIdentifier","src":"6128:34:89"},"nativeSrc":"6128:70:89","nodeType":"YulFunctionCall","src":"6128:70:89"},"nativeSrc":"6128:70:89","nodeType":"YulExpressionStatement","src":"6128:70:89"},{"nativeSrc":"6207:27:89","nodeType":"YulAssignment","src":"6207:27:89","value":{"arguments":[{"name":"end_1","nativeSrc":"6218:5:89","nodeType":"YulIdentifier","src":"6218:5:89"},{"name":"length_1","nativeSrc":"6225:8:89","nodeType":"YulIdentifier","src":"6225:8:89"}],"functionName":{"name":"add","nativeSrc":"6214:3:89","nodeType":"YulIdentifier","src":"6214:3:89"},"nativeSrc":"6214:20:89","nodeType":"YulFunctionCall","src":"6214:20:89"},"variableNames":[{"name":"end","nativeSrc":"6207:3:89","nodeType":"YulIdentifier","src":"6207:3:89"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5744:496:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5899:3:89","nodeType":"YulTypedName","src":"5899:3:89","type":""},{"name":"value1","nativeSrc":"5904:6:89","nodeType":"YulTypedName","src":"5904:6:89","type":""},{"name":"value0","nativeSrc":"5912:6:89","nodeType":"YulTypedName","src":"5912:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5923:3:89","nodeType":"YulTypedName","src":"5923:3:89","type":""}],"src":"5744:496:89"},{"body":{"nativeSrc":"6448:282:89","nodeType":"YulBlock","src":"6448:282:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6465:9:89","nodeType":"YulIdentifier","src":"6465:9:89"},{"arguments":[{"name":"value0","nativeSrc":"6480:6:89","nodeType":"YulIdentifier","src":"6480:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6496:3:89","nodeType":"YulLiteral","src":"6496:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"6501:1:89","nodeType":"YulLiteral","src":"6501:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6492:3:89","nodeType":"YulIdentifier","src":"6492:3:89"},"nativeSrc":"6492:11:89","nodeType":"YulFunctionCall","src":"6492:11:89"},{"kind":"number","nativeSrc":"6505:1:89","nodeType":"YulLiteral","src":"6505:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6488:3:89","nodeType":"YulIdentifier","src":"6488:3:89"},"nativeSrc":"6488:19:89","nodeType":"YulFunctionCall","src":"6488:19:89"}],"functionName":{"name":"and","nativeSrc":"6476:3:89","nodeType":"YulIdentifier","src":"6476:3:89"},"nativeSrc":"6476:32:89","nodeType":"YulFunctionCall","src":"6476:32:89"}],"functionName":{"name":"mstore","nativeSrc":"6458:6:89","nodeType":"YulIdentifier","src":"6458:6:89"},"nativeSrc":"6458:51:89","nodeType":"YulFunctionCall","src":"6458:51:89"},"nativeSrc":"6458:51:89","nodeType":"YulExpressionStatement","src":"6458:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6529:9:89","nodeType":"YulIdentifier","src":"6529:9:89"},{"kind":"number","nativeSrc":"6540:2:89","nodeType":"YulLiteral","src":"6540:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6525:3:89","nodeType":"YulIdentifier","src":"6525:3:89"},"nativeSrc":"6525:18:89","nodeType":"YulFunctionCall","src":"6525:18:89"},{"arguments":[{"name":"value1","nativeSrc":"6549:6:89","nodeType":"YulIdentifier","src":"6549:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6565:3:89","nodeType":"YulLiteral","src":"6565:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"6570:1:89","nodeType":"YulLiteral","src":"6570:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6561:3:89","nodeType":"YulIdentifier","src":"6561:3:89"},"nativeSrc":"6561:11:89","nodeType":"YulFunctionCall","src":"6561:11:89"},{"kind":"number","nativeSrc":"6574:1:89","nodeType":"YulLiteral","src":"6574:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6557:3:89","nodeType":"YulIdentifier","src":"6557:3:89"},"nativeSrc":"6557:19:89","nodeType":"YulFunctionCall","src":"6557:19:89"}],"functionName":{"name":"and","nativeSrc":"6545:3:89","nodeType":"YulIdentifier","src":"6545:3:89"},"nativeSrc":"6545:32:89","nodeType":"YulFunctionCall","src":"6545:32:89"}],"functionName":{"name":"mstore","nativeSrc":"6518:6:89","nodeType":"YulIdentifier","src":"6518:6:89"},"nativeSrc":"6518:60:89","nodeType":"YulFunctionCall","src":"6518:60:89"},"nativeSrc":"6518:60:89","nodeType":"YulExpressionStatement","src":"6518:60:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6598:9:89","nodeType":"YulIdentifier","src":"6598:9:89"},{"kind":"number","nativeSrc":"6609:2:89","nodeType":"YulLiteral","src":"6609:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6594:3:89","nodeType":"YulIdentifier","src":"6594:3:89"},"nativeSrc":"6594:18:89","nodeType":"YulFunctionCall","src":"6594:18:89"},{"name":"value2","nativeSrc":"6614:6:89","nodeType":"YulIdentifier","src":"6614:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6587:6:89","nodeType":"YulIdentifier","src":"6587:6:89"},"nativeSrc":"6587:34:89","nodeType":"YulFunctionCall","src":"6587:34:89"},"nativeSrc":"6587:34:89","nodeType":"YulExpressionStatement","src":"6587:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6641:9:89","nodeType":"YulIdentifier","src":"6641:9:89"},{"kind":"number","nativeSrc":"6652:2:89","nodeType":"YulLiteral","src":"6652:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6637:3:89","nodeType":"YulIdentifier","src":"6637:3:89"},"nativeSrc":"6637:18:89","nodeType":"YulFunctionCall","src":"6637:18:89"},{"kind":"number","nativeSrc":"6657:3:89","nodeType":"YulLiteral","src":"6657:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"6630:6:89","nodeType":"YulIdentifier","src":"6630:6:89"},"nativeSrc":"6630:31:89","nodeType":"YulFunctionCall","src":"6630:31:89"},"nativeSrc":"6630:31:89","nodeType":"YulExpressionStatement","src":"6630:31:89"},{"nativeSrc":"6670:54:89","nodeType":"YulAssignment","src":"6670:54:89","value":{"arguments":[{"name":"value3","nativeSrc":"6696:6:89","nodeType":"YulIdentifier","src":"6696:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"6708:9:89","nodeType":"YulIdentifier","src":"6708:9:89"},{"kind":"number","nativeSrc":"6719:3:89","nodeType":"YulLiteral","src":"6719:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6704:3:89","nodeType":"YulIdentifier","src":"6704:3:89"},"nativeSrc":"6704:19:89","nodeType":"YulFunctionCall","src":"6704:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"6678:17:89","nodeType":"YulIdentifier","src":"6678:17:89"},"nativeSrc":"6678:46:89","nodeType":"YulFunctionCall","src":"6678:46:89"},"variableNames":[{"name":"tail","nativeSrc":"6670:4:89","nodeType":"YulIdentifier","src":"6670:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"6245:485:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6393:9:89","nodeType":"YulTypedName","src":"6393:9:89","type":""},{"name":"value3","nativeSrc":"6404:6:89","nodeType":"YulTypedName","src":"6404:6:89","type":""},{"name":"value2","nativeSrc":"6412:6:89","nodeType":"YulTypedName","src":"6412:6:89","type":""},{"name":"value1","nativeSrc":"6420:6:89","nodeType":"YulTypedName","src":"6420:6:89","type":""},{"name":"value0","nativeSrc":"6428:6:89","nodeType":"YulTypedName","src":"6428:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6439:4:89","nodeType":"YulTypedName","src":"6439:4:89","type":""}],"src":"6245:485:89"},{"body":{"nativeSrc":"6815:169:89","nodeType":"YulBlock","src":"6815:169:89","statements":[{"body":{"nativeSrc":"6861:16:89","nodeType":"YulBlock","src":"6861:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6870:1:89","nodeType":"YulLiteral","src":"6870:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6873:1:89","nodeType":"YulLiteral","src":"6873:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6863:6:89","nodeType":"YulIdentifier","src":"6863:6:89"},"nativeSrc":"6863:12:89","nodeType":"YulFunctionCall","src":"6863:12:89"},"nativeSrc":"6863:12:89","nodeType":"YulExpressionStatement","src":"6863:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6836:7:89","nodeType":"YulIdentifier","src":"6836:7:89"},{"name":"headStart","nativeSrc":"6845:9:89","nodeType":"YulIdentifier","src":"6845:9:89"}],"functionName":{"name":"sub","nativeSrc":"6832:3:89","nodeType":"YulIdentifier","src":"6832:3:89"},"nativeSrc":"6832:23:89","nodeType":"YulFunctionCall","src":"6832:23:89"},{"kind":"number","nativeSrc":"6857:2:89","nodeType":"YulLiteral","src":"6857:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6828:3:89","nodeType":"YulIdentifier","src":"6828:3:89"},"nativeSrc":"6828:32:89","nodeType":"YulFunctionCall","src":"6828:32:89"},"nativeSrc":"6825:52:89","nodeType":"YulIf","src":"6825:52:89"},{"nativeSrc":"6886:29:89","nodeType":"YulVariableDeclaration","src":"6886:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6905:9:89","nodeType":"YulIdentifier","src":"6905:9:89"}],"functionName":{"name":"mload","nativeSrc":"6899:5:89","nodeType":"YulIdentifier","src":"6899:5:89"},"nativeSrc":"6899:16:89","nodeType":"YulFunctionCall","src":"6899:16:89"},"variables":[{"name":"value","nativeSrc":"6890:5:89","nodeType":"YulTypedName","src":"6890:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6948:5:89","nodeType":"YulIdentifier","src":"6948:5:89"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"6924:23:89","nodeType":"YulIdentifier","src":"6924:23:89"},"nativeSrc":"6924:30:89","nodeType":"YulFunctionCall","src":"6924:30:89"},"nativeSrc":"6924:30:89","nodeType":"YulExpressionStatement","src":"6924:30:89"},{"nativeSrc":"6963:15:89","nodeType":"YulAssignment","src":"6963:15:89","value":{"name":"value","nativeSrc":"6973:5:89","nodeType":"YulIdentifier","src":"6973:5:89"},"variableNames":[{"name":"value0","nativeSrc":"6963:6:89","nodeType":"YulIdentifier","src":"6963:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"6735:249:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6781:9:89","nodeType":"YulTypedName","src":"6781:9:89","type":""},{"name":"dataEnd","nativeSrc":"6792:7:89","nodeType":"YulTypedName","src":"6792:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6804:6:89","nodeType":"YulTypedName","src":"6804:6:89","type":""}],"src":"6735:249:89"},{"body":{"nativeSrc":"7021:95:89","nodeType":"YulBlock","src":"7021:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7038:1:89","nodeType":"YulLiteral","src":"7038:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"7045:3:89","nodeType":"YulLiteral","src":"7045:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"7050:10:89","nodeType":"YulLiteral","src":"7050:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"7041:3:89","nodeType":"YulIdentifier","src":"7041:3:89"},"nativeSrc":"7041:20:89","nodeType":"YulFunctionCall","src":"7041:20:89"}],"functionName":{"name":"mstore","nativeSrc":"7031:6:89","nodeType":"YulIdentifier","src":"7031:6:89"},"nativeSrc":"7031:31:89","nodeType":"YulFunctionCall","src":"7031:31:89"},"nativeSrc":"7031:31:89","nodeType":"YulExpressionStatement","src":"7031:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7078:1:89","nodeType":"YulLiteral","src":"7078:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"7081:4:89","nodeType":"YulLiteral","src":"7081:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7071:6:89","nodeType":"YulIdentifier","src":"7071:6:89"},"nativeSrc":"7071:15:89","nodeType":"YulFunctionCall","src":"7071:15:89"},"nativeSrc":"7071:15:89","nodeType":"YulExpressionStatement","src":"7071:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7102:1:89","nodeType":"YulLiteral","src":"7102:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7105:4:89","nodeType":"YulLiteral","src":"7105:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7095:6:89","nodeType":"YulIdentifier","src":"7095:6:89"},"nativeSrc":"7095:15:89","nodeType":"YulFunctionCall","src":"7095:15:89"},"nativeSrc":"7095:15:89","nodeType":"YulExpressionStatement","src":"7095:15:89"}]},"name":"panic_error_0x12","nativeSrc":"6989:127:89","nodeType":"YulFunctionDefinition","src":"6989:127:89"},{"body":{"nativeSrc":"7250:145:89","nodeType":"YulBlock","src":"7250:145:89","statements":[{"nativeSrc":"7260:26:89","nodeType":"YulAssignment","src":"7260:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7272:9:89","nodeType":"YulIdentifier","src":"7272:9:89"},{"kind":"number","nativeSrc":"7283:2:89","nodeType":"YulLiteral","src":"7283:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7268:3:89","nodeType":"YulIdentifier","src":"7268:3:89"},"nativeSrc":"7268:18:89","nodeType":"YulFunctionCall","src":"7268:18:89"},"variableNames":[{"name":"tail","nativeSrc":"7260:4:89","nodeType":"YulIdentifier","src":"7260:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7302:9:89","nodeType":"YulIdentifier","src":"7302:9:89"},{"arguments":[{"name":"value0","nativeSrc":"7317:6:89","nodeType":"YulIdentifier","src":"7317:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7333:3:89","nodeType":"YulLiteral","src":"7333:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"7338:1:89","nodeType":"YulLiteral","src":"7338:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7329:3:89","nodeType":"YulIdentifier","src":"7329:3:89"},"nativeSrc":"7329:11:89","nodeType":"YulFunctionCall","src":"7329:11:89"},{"kind":"number","nativeSrc":"7342:1:89","nodeType":"YulLiteral","src":"7342:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7325:3:89","nodeType":"YulIdentifier","src":"7325:3:89"},"nativeSrc":"7325:19:89","nodeType":"YulFunctionCall","src":"7325:19:89"}],"functionName":{"name":"and","nativeSrc":"7313:3:89","nodeType":"YulIdentifier","src":"7313:3:89"},"nativeSrc":"7313:32:89","nodeType":"YulFunctionCall","src":"7313:32:89"}],"functionName":{"name":"mstore","nativeSrc":"7295:6:89","nodeType":"YulIdentifier","src":"7295:6:89"},"nativeSrc":"7295:51:89","nodeType":"YulFunctionCall","src":"7295:51:89"},"nativeSrc":"7295:51:89","nodeType":"YulExpressionStatement","src":"7295:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7366:9:89","nodeType":"YulIdentifier","src":"7366:9:89"},{"kind":"number","nativeSrc":"7377:2:89","nodeType":"YulLiteral","src":"7377:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7362:3:89","nodeType":"YulIdentifier","src":"7362:3:89"},"nativeSrc":"7362:18:89","nodeType":"YulFunctionCall","src":"7362:18:89"},{"name":"value1","nativeSrc":"7382:6:89","nodeType":"YulIdentifier","src":"7382:6:89"}],"functionName":{"name":"mstore","nativeSrc":"7355:6:89","nodeType":"YulIdentifier","src":"7355:6:89"},"nativeSrc":"7355:34:89","nodeType":"YulFunctionCall","src":"7355:34:89"},"nativeSrc":"7355:34:89","nodeType":"YulExpressionStatement","src":"7355:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"7121:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7211:9:89","nodeType":"YulTypedName","src":"7211:9:89","type":""},{"name":"value1","nativeSrc":"7222:6:89","nodeType":"YulTypedName","src":"7222:6:89","type":""},{"name":"value0","nativeSrc":"7230:6:89","nodeType":"YulTypedName","src":"7230:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7241:4:89","nodeType":"YulTypedName","src":"7241:4:89","type":""}],"src":"7121:274:89"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value1 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_1, 32), length)\n        mstore(add(add(memPtr, length), 32), 0)\n        value3 := memPtr\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806340c10f191461017f57806342842e0e1461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610bef565b61022d565b60405190151581526020015b60405180910390f35b61011f61027f565b60405161010e9190610c5c565b61013f61013a366004610c6f565b610311565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610ca4565b61033a565b005b61016a61017a366004610cce565b610349565b61016a61018d366004610ca4565b6103d9565b61016a6101a0366004610cce565b6103e3565b61013f6101b3366004610c6f565b610403565b6101cb6101c6366004610d0b565b61040e565b60405190815260200161010e565b61011f610456565b61016a6101ef366004610d26565b610465565b61016a610202366004610d78565b610470565b61011f610215366004610c6f565b610488565b610102610228366004610e5c565b6104f0565b60006001600160e01b031982166380ac58cd60e01b148061025e57506001600160e01b03198216635b5e139f60e01b145b8061027957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461028e90610e8f565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba90610e8f565b80156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505050905090565b600061031c8261051e565b506000828152600460205260409020546001600160a01b0316610279565b610345828233610557565b5050565b6001600160a01b03821661037857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610385838333610564565b9050836001600160a01b0316816001600160a01b0316146103d3576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161036f565b50505050565b610345828261065d565b6103fe83838360405180602001604052806000815250610470565b505050565b60006102798261051e565b60006001600160a01b03821661043a576040516322718ad960e21b81526000600482015260240161036f565b506001600160a01b031660009081526003602052604090205490565b60606001805461028e90610e8f565b6103453383836106c2565b61047b848484610349565b6103d33385858585610761565b60606104938261051e565b50600061049e61088c565b905060008151116104be57604051806020016040528060008152506104e9565b806104c88461089b565b6040516020016104d9929190610ec9565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260408120546001600160a01b03168061027957604051637e27328960e01b81526004810184905260240161036f565b6103fe838383600161092e565b6000828152600260205260408120546001600160a01b039081169083161561059157610591818486610a34565b6001600160a01b038116156105cf576105ae60008560008061092e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b038516156105fe576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661068757604051633250574960e11b81526000600482015260240161036f565b600061069583836000610564565b90506001600160a01b038116156103fe576040516339e3563760e11b81526000600482015260240161036f565b6001600160a01b0382166106f457604051630b61174360e31b81526001600160a01b038316600482015260240161036f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561088557604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906107a3908890889087908790600401610ef8565b6020604051808303816000875af19250505080156107de575060408051601f3d908101601f191682019092526107db91810190610f35565b60015b610847573d80801561080c576040519150601f19603f3d011682016040523d82523d6000602084013e610811565b606091505b50805160000361083f57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461088357604051633250574960e11b81526001600160a01b038516600482015260240161036f565b505b5050505050565b60606006805461028e90610e8f565b606060006108a883610a98565b600101905060008167ffffffffffffffff8111156108c8576108c8610d62565b6040519080825280601f01601f1916602001820160405280156108f2576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846108fc57509392505050565b808061094257506001600160a01b03821615155b15610a045760006109528461051e565b90506001600160a01b0383161580159061097e5750826001600160a01b0316816001600160a01b031614155b8015610991575061098f81846104f0565b155b156109ba5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161036f565b8115610a025783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a3f838383610b70565b6103fe576001600160a01b038316610a6d57604051637e27328960e01b81526004810182905260240161036f565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161036f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ad75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610b03576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610b2157662386f26fc10000830492506010015b6305f5e1008310610b39576305f5e100830492506008015b6127108310610b4d57612710830492506004015b60648310610b5f576064830492506002015b600a83106102795760010192915050565b60006001600160a01b03831615801590610bce5750826001600160a01b0316846001600160a01b03161480610baa5750610baa84846104f0565b80610bce57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610bec57600080fd5b50565b600060208284031215610c0157600080fd5b81356104e981610bd6565b60005b83811015610c27578181015183820152602001610c0f565b50506000910152565b60008151808452610c48816020860160208601610c0c565b601f01601f19169290920160200192915050565b6020815260006104e96020830184610c30565b600060208284031215610c8157600080fd5b5035919050565b80356001600160a01b0381168114610c9f57600080fd5b919050565b60008060408385031215610cb757600080fd5b610cc083610c88565b946020939093013593505050565b600080600060608486031215610ce357600080fd5b610cec84610c88565b9250610cfa60208501610c88565b929592945050506040919091013590565b600060208284031215610d1d57600080fd5b6104e982610c88565b60008060408385031215610d3957600080fd5b610d4283610c88565b915060208301358015158114610d5757600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610d8e57600080fd5b610d9785610c88565b9350610da560208601610c88565b925060408501359150606085013567ffffffffffffffff811115610dc857600080fd5b8501601f81018713610dd957600080fd5b803567ffffffffffffffff811115610df357610df3610d62565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610e2257610e22610d62565b604052818152828201602001891015610e3a57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60008060408385031215610e6f57600080fd5b610e7883610c88565b9150610e8660208401610c88565b90509250929050565b600181811c90821680610ea357607f821691505b602082108103610ec357634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610edb818460208801610c0c565b835190830190610eef818360208801610c0c565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f2b90830184610c30565b9695505050505050565b600060208284031215610f4757600080fd5b81516104e981610bd656fea2646970667358221220d1afabb7672a6403ae91ee82a23e7497331bc37c4e184be3cb269b8a1702fae564736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0xBEF JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11F PUSH2 0x27F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xC5C JUMP JUMPDEST PUSH2 0x13F PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x311 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x16A PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0xCA4 JUMP JUMPDEST PUSH2 0x33A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16A PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0xCCE JUMP JUMPDEST PUSH2 0x349 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0xCA4 JUMP JUMPDEST PUSH2 0x3D9 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0xCCE JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x403 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xD0B JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x11F PUSH2 0x456 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xD26 JUMP JUMPDEST PUSH2 0x465 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0xD78 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x488 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x228 CALLDATASIZE PUSH1 0x4 PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x25E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x279 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x28E SWAP1 PUSH2 0xE8F 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 0x2BA SWAP1 PUSH2 0xE8F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x307 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x307 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 0x2EA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31C DUP3 PUSH2 0x51E JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x279 JUMP JUMPDEST PUSH2 0x345 DUP3 DUP3 CALLER PUSH2 0x557 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x378 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x385 DUP4 DUP4 CALLER PUSH2 0x564 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x345 DUP3 DUP3 PUSH2 0x65D JUMP JUMPDEST PUSH2 0x3FE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x470 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x279 DUP3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x43A JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x28E SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH2 0x345 CALLER DUP4 DUP4 PUSH2 0x6C2 JUMP JUMPDEST PUSH2 0x47B DUP5 DUP5 DUP5 PUSH2 0x349 JUMP JUMPDEST PUSH2 0x3D3 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x493 DUP3 PUSH2 0x51E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x49E PUSH2 0x88C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x4BE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x4E9 JUMP JUMPDEST DUP1 PUSH2 0x4C8 DUP5 PUSH2 0x89B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4D9 SWAP3 SWAP2 SWAP1 PUSH2 0xEC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x279 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH2 0x3FE DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x591 JUMPI PUSH2 0x591 DUP2 DUP5 DUP7 PUSH2 0xA34 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x5CF JUMPI PUSH2 0x5AE PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x92E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x5FE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x687 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x695 DUP4 DUP4 PUSH1 0x0 PUSH2 0x564 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x3FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6F4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x885 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x7A3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x7DE JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x7DB SWAP2 DUP2 ADD SWAP1 PUSH2 0xF35 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x847 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x80C 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 0x811 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x83F JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x883 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 DUP1 SLOAD PUSH2 0x28E SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x8A8 DUP4 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH2 0x8C8 PUSH2 0xD62 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x8FC JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x942 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xA04 JUMPI PUSH1 0x0 PUSH2 0x952 DUP5 PUSH2 0x51E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x97E JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x991 JUMPI POP PUSH2 0x98F DUP2 DUP5 PUSH2 0x4F0 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x9BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST DUP2 ISZERO PUSH2 0xA02 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA3F DUP4 DUP4 DUP4 PUSH2 0xB70 JUMP JUMPDEST PUSH2 0x3FE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xA6D JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x36F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xAD7 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xB03 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xB21 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xB39 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xB4D JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xB5F JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x279 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xBCE JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xBAA JUMPI POP PUSH2 0xBAA DUP5 DUP5 PUSH2 0x4F0 JUMP JUMPDEST DUP1 PUSH2 0xBCE JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xBEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E9 DUP2 PUSH2 0xBD6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC27 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC0F JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xC48 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xC0C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4E9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xC30 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCC0 DUP4 PUSH2 0xC88 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCEC DUP5 PUSH2 0xC88 JUMP JUMPDEST SWAP3 POP PUSH2 0xCFA PUSH1 0x20 DUP6 ADD PUSH2 0xC88 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD42 DUP4 PUSH2 0xC88 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD97 DUP6 PUSH2 0xC88 JUMP JUMPDEST SWAP4 POP PUSH2 0xDA5 PUSH1 0x20 DUP7 ADD PUSH2 0xC88 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0xDD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDF3 JUMPI PUSH2 0xDF3 PUSH2 0xD62 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE22 JUMPI PUSH2 0xE22 PUSH2 0xD62 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP10 LT ISZERO PUSH2 0xE3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE78 DUP4 PUSH2 0xC88 JUMP JUMPDEST SWAP2 POP PUSH2 0xE86 PUSH1 0x20 DUP5 ADD PUSH2 0xC88 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xEA3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEC3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0xEDB DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xC0C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xEEF DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xC0C JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF2B SWAP1 DUP4 ADD DUP5 PUSH2 0xC30 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4E9 DUP2 PUSH2 0xBD6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 0xAF 0xAB 0xB7 PUSH8 0x2A6403AE91EE82A2 RETURNDATACOPY PUSH21 0x97331BC37C4E184BE3CB269B8A1702FAE564736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"133:416:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1560:300:27;;;;;;:::i;:::-;;:::i;:::-;;;565:14:89;;558:22;540:41;;528:2;513:18;1560:300:27;;;;;;;;2364:89;;;:::i;:::-;;;;;;;:::i;3496:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1743:32:89;;;1725:51;;1713:2;1698:18;3496:154:27;1579:203:89;3322:113:27;;;;;;:::i;:::-;;:::i;:::-;;4142:578;;;;;;:::i;:::-;;:::i;350:91:84:-;;;;;;:::i;:::-;;:::i;4786:132:27:-;;;;;;:::i;:::-;;:::i;2184:118::-;;;;;;:::i;:::-;;:::i;1919:208::-;;;;;;:::i;:::-;;:::i;:::-;;;2986:25:89;;;2974:2;2959:18;1919:208:27;2840:177:89;2517:93:27;;;:::i;3717:144::-;;;;;;:::i;:::-;;:::i;4984:233::-;;;;;;:::i;:::-;;:::i;2676:255::-;;;;;;:::i;:::-;;:::i;3927:153::-;;;;;;:::i;:::-;;:::i;1560:300::-;1662:4;-1:-1:-1;;;;;;1697:40:27;;-1:-1:-1;;;1697:40:27;;:104;;-1:-1:-1;;;;;;;1753:48:27;;-1:-1:-1;;;1753:48:27;1697:104;:156;;;-1:-1:-1;;;;;;;;;;862:40:42;;;1817:36:27;1678:175;1560:300;-1:-1:-1;;1560:300:27:o;2364:89::-;2409:13;2441:5;2434:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:89;:::o;3496:154::-;3563:7;3582:22;3596:7;3582:13;:22::i;:::-;-1:-1:-1;6033:7:27;6059:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6059:24:27;3622:21;5963:127;3322:113;3393:35;3402:2;3406:7;735:10:33;3393:8:27;:35::i;:::-;3322:113;;:::o;4142:578::-;-1:-1:-1;;;;;4236:16:27;;4232:87;;4275:33;;-1:-1:-1;;;4275:33:27;;4305:1;4275:33;;;1725:51:89;1698:18;;4275:33:27;;;;;;;;4232:87;4537:21;4561:34;4569:2;4573:7;735:10:33;4561:7:27;:34::i;:::-;4537:58;;4626:4;-1:-1:-1;;;;;4609:21:27;:13;-1:-1:-1;;;;;4609:21:27;;4605:109;;4653:50;;-1:-1:-1;;;4653:50:27;;-1:-1:-1;;;;;5588:32:89;;;4653:50:27;;;5570:51:89;5637:18;;;5630:34;;;5700:32;;5680:18;;;5673:60;5543:18;;4653:50:27;5368:371:89;4605:109:27;4222:498;4142:578;;;:::o;350:91:84:-;414:20;420:3;425:8;414:5;:20::i;4786:132:27:-;4872:39;4889:4;4895:2;4899:7;4872:39;;;;;;;;;;;;:16;:39::i;:::-;4786:132;;;:::o;2184:118::-;2247:7;2273:22;2287:7;2273:13;:22::i;1919:208::-;1982:7;-1:-1:-1;;;;;2005:19:27;;2001:87;;2047:30;;-1:-1:-1;;;2047:30:27;;2074:1;2047:30;;;1725:51:89;1698:18;;2047:30:27;1579:203:89;2001:87:27;-1:-1:-1;;;;;;2104:16:27;;;;;:9;:16;;;;;;;1919:208::o;2517:93::-;2564:13;2596:7;2589:14;;;;;:::i;3717:144::-;3802:52;735:10:33;3835:8:27;3845;3802:18;:52::i;4984:233::-;5097:31;5110:4;5116:2;5120:7;5097:12;:31::i;:::-;5138:72;735:10:33;5186:4:27;5192:2;5196:7;5205:4;5138:33;:72::i;2676:255::-;2740:13;2765:22;2779:7;2765:13;:22::i;:::-;;2798:21;2822:10;:8;:10::i;:::-;2798:34;;2873:1;2855:7;2849:21;:25;:75;;;;;;;;;;;;;;;;;2891:7;2900:18;:7;:16;:18::i;:::-;2877:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2849:75;2842:82;2676:255;-1:-1:-1;;;2676:255:27:o;3927:153::-;-1:-1:-1;;;;;4038:25:27;;;4015:4;4038:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3927:153::o;16212:241::-;16275:7;5824:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5824:16:27;;16337:88;;16383:31;;-1:-1:-1;;;16383:31:27;;;;;2986:25:89;;;2959:18;;16383:31:27;2840:177:89;14492:120:27;14572:33;14581:2;14585:7;14594:4;14600;14572:8;:33::i;8861:795::-;8947:7;5824:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5824:16:27;;;;9058:18;;;9054:86;;9092:37;9109:4;9115;9121:7;9092:16;:37::i;:::-;-1:-1:-1;;;;;9184:18:27;;;9180:256;;9300:48;9317:1;9321:7;9338:1;9342:5;9300:8;:48::i;:::-;-1:-1:-1;;;;;9391:15:27;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9391:20:27;;;9180:256;-1:-1:-1;;;;;9450:16:27;;;9446:107;;-1:-1:-1;;;;;9510:13:27;;;;;;:9;:13;;;;;:18;;9527:1;9510:18;;;9446:107;9563:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9563:21:27;-1:-1:-1;;;;;9563:21:27;;;;;;;;;9600:27;;9563:16;;9600:27;;;;;;;9645:4;8861:795;-1:-1:-1;;;;8861:795:27:o;9978:327::-;-1:-1:-1;;;;;10045:16:27;;10041:87;;10084:33;;-1:-1:-1;;;10084:33:27;;10114:1;10084:33;;;1725:51:89;1698:18;;10084:33:27;1579:203:89;10041:87:27;10137:21;10161:32;10169:2;10173:7;10190:1;10161:7;:32::i;:::-;10137:56;-1:-1:-1;;;;;;10207:27:27;;;10203:96;;10257:31;;-1:-1:-1;;;10257:31:27;;10285:1;10257:31;;;1725:51:89;1698:18;;10257:31:27;1579:203:89;15665:312:27;-1:-1:-1;;;;;15772:22:27;;15768:91;;15817:31;;-1:-1:-1;;;15817:31:27;;-1:-1:-1;;;;;1743:32:89;;15817:31:27;;;1725:51:89;1698:18;;15817:31:27;1579:203:89;15768:91:27;-1:-1:-1;;;;;15868:25:27;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15868:46:27;;;;;;;;;;15929:41;;540::89;;;15929::27;;513:18:89;15929:41:27;;;;;;;15665:312;;;:::o;985:924:31:-;-1:-1:-1;;;;;1165:14:31;;;:18;1161:742;;1203:67;;-1:-1:-1;;;1203:67:31;;-1:-1:-1;;;;;1203:36:31;;;;;:67;;1240:8;;1250:4;;1256:7;;1265:4;;1203:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1203:67:31;;;;;;;;-1:-1:-1;;1203:67:31;;;;;;;;;;;;:::i;:::-;;;1199:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1560:6;:13;1577:1;1560:18;1556:323;;1664:39;;-1:-1:-1;;;1664:39:31;;-1:-1:-1;;;;;1743:32:89;;1664:39:31;;;1725:51:89;1698:18;;1664:39:31;1579:203:89;1556:323:31;1831:6;1825:13;1816:6;1812:2;1808:15;1801:38;1199:694;-1:-1:-1;;;;;;1317:51:31;;-1:-1:-1;;;1317:51:31;1313:182;;1437:39;;-1:-1:-1;;;1437:39:31;;-1:-1:-1;;;;;1743:32:89;;1437:39:31;;;1725:51:89;1698:18;;1437:39:31;1579:203:89;1313:182:31;1271:238;1199:694;985:924;;;;;:::o;447:100:84:-;499:13;531:9;524:16;;;;;:::i;637:632:39:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:39;-1:-1:-1;794:41:39;-1:-1:-1;924:28:39;;;940:2;924:28;979:247;-1:-1:-1;;1010:5:39;-1:-1:-1;;;1109:2:39;1098:14;;1093:32;1010:5;1080:46;1170:2;1161:11;;;-1:-1:-1;1190:21:39;979:247;1190:21;-1:-1:-1;1246:6:39;637:632;-1:-1:-1;;;637:632:39:o;14794:662:27:-;14954:9;:31;;;-1:-1:-1;;;;;;14967:18:27;;;;14954:31;14950:460;;;15001:13;15017:22;15031:7;15017:13;:22::i;:::-;15001:38;-1:-1:-1;;;;;;15167:18:27;;;;;;:35;;;15198:4;-1:-1:-1;;;;;15189:13:27;:5;-1:-1:-1;;;;;15189:13:27;;;15167:35;:69;;;;;15207:29;15224:5;15231:4;15207:16;:29::i;:::-;15206:30;15167:69;15163:142;;;15263:27;;-1:-1:-1;;;15263:27:27;;-1:-1:-1;;;;;1743:32:89;;15263:27:27;;;1725:51:89;1698:18;;15263:27:27;1579:203:89;15163:142:27;15323:9;15319:81;;;15377:7;15373:2;-1:-1:-1;;;;;15357:28:27;15366:5;-1:-1:-1;;;;;15357:28:27;;;;;;;;;;;15319:81;14987:423;14950:460;-1:-1:-1;;15420:24:27;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15420:29:27;-1:-1:-1;;;;;15420:29:27;;;;;;;;;;14794:662::o;7105:368::-;7217:38;7231:5;7238:7;7247;7217:13;:38::i;:::-;7212:255;;-1:-1:-1;;;;;7275:19:27;;7271:186;;7321:31;;-1:-1:-1;;;7321:31:27;;;;;2986:25:89;;;2959:18;;7321:31:27;2840:177:89;7271:186:27;7398:44;;-1:-1:-1;;;7398:44:27;;-1:-1:-1;;;;;7313:32:89;;7398:44:27;;;7295:51:89;7362:18;;;7355:34;;;7268:18;;7398:44:27;7121:274:89;25316:916:44;25369:7;;-1:-1:-1;;;25444:17:44;;25440:103;;-1:-1:-1;;;25481:17:44;;;-1:-1:-1;25526:2:44;25516:12;25440:103;25569:8;25560:5;:17;25556:103;;25606:8;25597:17;;;-1:-1:-1;25642:2:44;25632:12;25556:103;25685:8;25676:5;:17;25672:103;;25722:8;25713:17;;;-1:-1:-1;25758:2:44;25748:12;25672:103;25801:7;25792:5;:16;25788:100;;25837:7;25828:16;;;-1:-1:-1;25872:1:44;25862:11;25788:100;25914:7;25905:5;:16;25901:100;;25950:7;25941:16;;;-1:-1:-1;25985:1:44;25975:11;25901:100;26027:7;26018:5;:16;26014:100;;26063:7;26054:16;;;-1:-1:-1;26098:1:44;26088:11;26014:100;26140:7;26131:5;:16;26127:66;;26177:1;26167:11;26219:6;25316:916;-1:-1:-1;;25316:916:44:o;6401:272:27:-;6504:4;-1:-1:-1;;;;;6539:21:27;;;;;;:127;;;6586:7;-1:-1:-1;;;;;6577:16:27;:5;-1:-1:-1;;;;;6577:16:27;;:52;;;;6597:32;6614:5;6621:7;6597:16;:32::i;:::-;6577:88;;;-1:-1:-1;6033:7:27;6059:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6633:32:27;;;6059:24;;6633:32;6577:88;6520:146;6401:272;-1:-1:-1;;;;6401:272:27:o;14:131:89:-;-1:-1:-1;;;;;;88:32:89;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:89;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:89;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:89:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:226::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1521:23:89;;1348:226;-1:-1:-1;1348:226:89:o;1787:173::-;1855:20;;-1:-1:-1;;;;;1904:31:89;;1894:42;;1884:70;;1950:1;1947;1940:12;1884:70;1787:173;;;:::o;1965:300::-;2033:6;2041;2094:2;2082:9;2073:7;2069:23;2065:32;2062:52;;;2110:1;2107;2100:12;2062:52;2133:29;2152:9;2133:29;:::i;:::-;2123:39;2231:2;2216:18;;;;2203:32;;-1:-1:-1;;;1965:300:89:o;2270:374::-;2347:6;2355;2363;2416:2;2404:9;2395:7;2391:23;2387:32;2384:52;;;2432:1;2429;2422:12;2384:52;2455:29;2474:9;2455:29;:::i;:::-;2445:39;;2503:38;2537:2;2526:9;2522:18;2503:38;:::i;:::-;2270:374;;2493:48;;-1:-1:-1;;;2610:2:89;2595:18;;;;2582:32;;2270:374::o;2649:186::-;2708:6;2761:2;2749:9;2740:7;2736:23;2732:32;2729:52;;;2777:1;2774;2767:12;2729:52;2800:29;2819:9;2800:29;:::i;3022:347::-;3087:6;3095;3148:2;3136:9;3127:7;3123:23;3119:32;3116:52;;;3164:1;3161;3154:12;3116:52;3187:29;3206:9;3187:29;:::i;:::-;3177:39;;3266:2;3255:9;3251:18;3238:32;3313:5;3306:13;3299:21;3292:5;3289:32;3279:60;;3335:1;3332;3325:12;3279:60;3358:5;3348:15;;;3022:347;;;;;:::o;3374:127::-;3435:10;3430:3;3426:20;3423:1;3416:31;3466:4;3463:1;3456:15;3490:4;3487:1;3480:15;3506:1207;3601:6;3609;3617;3625;3678:3;3666:9;3657:7;3653:23;3649:33;3646:53;;;3695:1;3692;3685:12;3646:53;3718:29;3737:9;3718:29;:::i;:::-;3708:39;;3766:38;3800:2;3789:9;3785:18;3766:38;:::i;:::-;3756:48;-1:-1:-1;3873:2:89;3858:18;;3845:32;;-1:-1:-1;3952:2:89;3937:18;;3924:32;3979:18;3968:30;;3965:50;;;4011:1;4008;4001:12;3965:50;4034:22;;4087:4;4079:13;;4075:27;-1:-1:-1;4065:55:89;;4116:1;4113;4106:12;4065:55;4156:2;4143:16;4182:18;4174:6;4171:30;4168:56;;;4204:18;;:::i;:::-;4253:2;4247:9;4345:2;4307:17;;-1:-1:-1;;4303:31:89;;;4336:2;4299:40;4295:54;4283:67;;4380:18;4365:34;;4401:22;;;4362:62;4359:88;;;4427:18;;:::i;:::-;4463:2;4456:22;4487;;;4528:15;;;4545:2;4524:24;4521:37;-1:-1:-1;4518:57:89;;;4571:1;4568;4561:12;4518:57;4627:6;4622:2;4618;4614:11;4609:2;4601:6;4597:15;4584:50;4680:1;4675:2;4666:6;4658;4654:19;4650:28;4643:39;4701:6;4691:16;;;;;3506:1207;;;;;;;:::o;4718:260::-;4786:6;4794;4847:2;4835:9;4826:7;4822:23;4818:32;4815:52;;;4863:1;4860;4853:12;4815:52;4886:29;4905:9;4886:29;:::i;:::-;4876:39;;4934:38;4968:2;4957:9;4953:18;4934:38;:::i;:::-;4924:48;;4718:260;;;;;:::o;4983:380::-;5062:1;5058:12;;;;5105;;;5126:61;;5180:4;5172:6;5168:17;5158:27;;5126:61;5233:2;5225:6;5222:14;5202:18;5199:38;5196:161;;5279:10;5274:3;5270:20;5267:1;5260:31;5314:4;5311:1;5304:15;5342:4;5339:1;5332:15;5196:161;;4983:380;;;:::o;5744:496::-;5923:3;5961:6;5955:13;5977:66;6036:6;6031:3;6024:4;6016:6;6012:17;5977:66;:::i;:::-;6106:13;;6065:16;;;;6128:70;6106:13;6065:16;6175:4;6163:17;;6128:70;:::i;:::-;6214:20;;5744:496;-1:-1:-1;;;;5744:496:89:o;6245:485::-;-1:-1:-1;;;;;6476:32:89;;;6458:51;;6545:32;;6540:2;6525:18;;6518:60;6609:2;6594:18;;6587:34;;;6657:3;6652:2;6637:18;;6630:31;;;-1:-1:-1;;6678:46:89;;6704:19;;6696:6;6678:46;:::i;:::-;6670:54;6245:485;-1:-1:-1;;;;;;6245:485:89:o;6735:249::-;6804:6;6857:2;6845:9;6836:7;6832:23;6828:32;6825:52;;;6873:1;6870;6863:12;6825:52;6905:9;6899:16;6924:30;6948:5;6924:30;:::i"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256)":"40c10f19","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestERC721Token.sol\":\"TestERC721Token\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09\",\"dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"contracts/test/TestERC721Token.sol\":{\"keccak256\":\"0x918bfb2d12a2a637f2a7a43831e134c84b6eb5cf677e1f930623d827712e9e09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0faf456632725922fdd88bdd92b1ebd35addbb2811cbc2ba59a2aaafbdc7e18d\",\"dweb:/ipfs/Qmeis3n2YPeeQ2JLS6FJLibuFLfojX5H2zWYmCSVYX62y8\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5205,"contract":"contracts/test/TestERC721Token.sol:TestERC721Token","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5207,"contract":"contracts/test/TestERC721Token.sol:TestERC721Token","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":5211,"contract":"contracts/test/TestERC721Token.sol:TestERC721Token","label":"_owners","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":5215,"contract":"contracts/test/TestERC721Token.sol:TestERC721Token","label":"_balances","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":5219,"contract":"contracts/test/TestERC721Token.sol:TestERC721Token","label":"_tokenApprovals","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":5225,"contract":"contracts/test/TestERC721Token.sol:TestERC721Token","label":"_operatorApprovals","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":20439,"contract":"contracts/test/TestERC721Token.sol:TestERC721Token","label":"__baseURI","offset":0,"slot":"6","type":"t_string_storage"}],"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_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/test/TestProxy.sol":{"TestProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_crossChainLayer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"message","type":"string"}],"name":"MockError","type":"error"},{"inputs":[{"internalType":"uint256","name":"attachedFee","type":"uint256"},{"internalType":"uint256","name":"requiredFee","type":"uint256"}],"name":"NotEnoughProtocolFee","type":"error"},{"inputs":[{"internalType":"uint256","name":"attachedValue","type":"uint256"},{"internalType":"uint256","name":"requiredValue","type":"uint256"}],"name":"NotEnoughValue","type":"error"},{"inputs":[],"name":"OnlyCrossChainLayer","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"shardsKey","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"operationId","type":"bytes32"},{"indexed":false,"internalType":"string","name":"tvmCaller","type":"string"},{"indexed":false,"internalType":"bytes","name":"extraData","type":"bytes"}],"name":"Invoke","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"shardsKey","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"operationId","type":"bytes32"},{"indexed":false,"internalType":"string","name":"tvmCaller","type":"string"},{"indexed":false,"internalType":"bytes","name":"extraData","type":"bytes"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false,"internalType":"struct TokenAmount[]","name":"receivedTokens","type":"tuple[]"}],"name":"InvokeWithCallback","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Receive","type":"event"},{"inputs":[{"components":[{"internalType":"uint64","name":"shardsKey","type":"uint64"},{"internalType":"string","name":"tvmTarget","type":"string"},{"internalType":"string","name":"tvmPayload","type":"string"},{"internalType":"uint256","name":"tvmProtocolFee","type":"uint256"},{"internalType":"uint256","name":"tvmExecutorFee","type":"uint256"},{"internalType":"string[]","name":"tvmValidExecutors","type":"string[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct TokenAmount[]","name":"toBridge","type":"tuple[]"},{"components":[{"internalType":"address","name":"evmAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NFTAmount[]","name":"toBridgeNFT","type":"tuple[]"}],"internalType":"struct OutMessageV1","name":"outMessage","type":"tuple"}],"name":"bridgeTokensToTON","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"emptyFunction","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"tacHeader","type":"bytes"},{"internalType":"bytes","name":"arguments","type":"bytes"}],"name":"invoke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"tacHeader","type":"bytes"},{"internalType":"bytes","name":"arguments","type":"bytes"}],"name":"invokeWithCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes","name":"arguments","type":"bytes"}],"name":"mockWithCustomError","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes","name":"arguments","type":"bytes"}],"name":"mockWithDefaultError","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"tacHeader","type":"bytes"},{"internalType":"bytes","name":"arguments","type":"bytes"}],"name":"receiveNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"header","type":"bytes"},{"internalType":"bytes","name":"arguments","type":"bytes"}],"name":"sendMultiplyCallbackToCrossChainLayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_18462":{"entryPoint":null,"id":18462,"parameterSlots":1,"returnSlots":0},"@_20563":{"entryPoint":null,"id":20563,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":64,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:89","nodeType":"YulBlock","src":"0:306:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"95:209:89","nodeType":"YulBlock","src":"95:209:89","statements":[{"body":{"nativeSrc":"141:16:89","nodeType":"YulBlock","src":"141:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:89","nodeType":"YulLiteral","src":"150:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:89","nodeType":"YulLiteral","src":"153:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:89","nodeType":"YulIdentifier","src":"143:6:89"},"nativeSrc":"143:12:89","nodeType":"YulFunctionCall","src":"143:12:89"},"nativeSrc":"143:12:89","nodeType":"YulExpressionStatement","src":"143:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:89","nodeType":"YulIdentifier","src":"116:7:89"},{"name":"headStart","nativeSrc":"125:9:89","nodeType":"YulIdentifier","src":"125:9:89"}],"functionName":{"name":"sub","nativeSrc":"112:3:89","nodeType":"YulIdentifier","src":"112:3:89"},"nativeSrc":"112:23:89","nodeType":"YulFunctionCall","src":"112:23:89"},{"kind":"number","nativeSrc":"137:2:89","nodeType":"YulLiteral","src":"137:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:89","nodeType":"YulIdentifier","src":"108:3:89"},"nativeSrc":"108:32:89","nodeType":"YulFunctionCall","src":"108:32:89"},"nativeSrc":"105:52:89","nodeType":"YulIf","src":"105:52:89"},{"nativeSrc":"166:29:89","nodeType":"YulVariableDeclaration","src":"166:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:89","nodeType":"YulIdentifier","src":"185:9:89"}],"functionName":{"name":"mload","nativeSrc":"179:5:89","nodeType":"YulIdentifier","src":"179:5:89"},"nativeSrc":"179:16:89","nodeType":"YulFunctionCall","src":"179:16:89"},"variables":[{"name":"value","nativeSrc":"170:5:89","nodeType":"YulTypedName","src":"170:5:89","type":""}]},{"body":{"nativeSrc":"258:16:89","nodeType":"YulBlock","src":"258:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:89","nodeType":"YulLiteral","src":"267:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:89","nodeType":"YulLiteral","src":"270:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:89","nodeType":"YulIdentifier","src":"260:6:89"},"nativeSrc":"260:12:89","nodeType":"YulFunctionCall","src":"260:12:89"},"nativeSrc":"260:12:89","nodeType":"YulExpressionStatement","src":"260:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:89","nodeType":"YulIdentifier","src":"217:5:89"},{"arguments":[{"name":"value","nativeSrc":"228:5:89","nodeType":"YulIdentifier","src":"228:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:89","nodeType":"YulLiteral","src":"243:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:89","nodeType":"YulLiteral","src":"248:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:89","nodeType":"YulIdentifier","src":"239:3:89"},"nativeSrc":"239:11:89","nodeType":"YulFunctionCall","src":"239:11:89"},{"kind":"number","nativeSrc":"252:1:89","nodeType":"YulLiteral","src":"252:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:89","nodeType":"YulIdentifier","src":"235:3:89"},"nativeSrc":"235:19:89","nodeType":"YulFunctionCall","src":"235:19:89"}],"functionName":{"name":"and","nativeSrc":"224:3:89","nodeType":"YulIdentifier","src":"224:3:89"},"nativeSrc":"224:31:89","nodeType":"YulFunctionCall","src":"224:31:89"}],"functionName":{"name":"eq","nativeSrc":"214:2:89","nodeType":"YulIdentifier","src":"214:2:89"},"nativeSrc":"214:42:89","nodeType":"YulFunctionCall","src":"214:42:89"}],"functionName":{"name":"iszero","nativeSrc":"207:6:89","nodeType":"YulIdentifier","src":"207:6:89"},"nativeSrc":"207:50:89","nodeType":"YulFunctionCall","src":"207:50:89"},"nativeSrc":"204:70:89","nodeType":"YulIf","src":"204:70:89"},{"nativeSrc":"283:15:89","nodeType":"YulAssignment","src":"283:15:89","value":{"name":"value","nativeSrc":"293:5:89","nodeType":"YulIdentifier","src":"293:5:89"},"variableNames":[{"name":"value0","nativeSrc":"283:6:89","nodeType":"YulIdentifier","src":"283:6:89"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:89","nodeType":"YulTypedName","src":"61:9:89","type":""},{"name":"dataEnd","nativeSrc":"72:7:89","nodeType":"YulTypedName","src":"72:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:89","nodeType":"YulTypedName","src":"84:6:89","type":""}],"src":"14:290:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051611a65380380611a6583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516119b06100b5600039600081816103910152818161058c015281816107fd01528181610a6d01528181610c3d01528181610d120152610d9901526119b06000f3fe60806040526004361061009f5760003560e01c80632096525511610064578063209652551461019b578063302b86b0146101b05780633d2cfad2146101d057806350e9c31b146101f0578063bcb2606c14610210578063e77d74b01461023157600080fd5b806220cb2d146100de5780630d8e6e2c146100f3578063145769f51461011657806314c68a7314610136578063150b7a021461015657600080fd5b366100d9576040513481527f49b4c3f4344f33413322c03885f90f29e906bd8eb0cb2c3d815ee1ad2b3c989c9060200160405180910390a1005b600080fd5b6100f16100ec366004610e72565b610251565b005b3480156100ff57600080fd5b5060015b6040519081526020015b60405180910390f35b34801561012257600080fd5b506100f1610131366004610efc565b6104fc565b34801561014257600080fd5b506100f1610151366004610efc565b61052c565b34801561016257600080fd5b50610182610171366004610f87565b630a85bd0160e11b95945050505050565b6040516001600160e01b0319909116815260200161010d565b3480156101a757600080fd5b50600054610103565b3480156101bc57600080fd5b506100f16101cb366004610efc565b6107a2565b3480156101dc57600080fd5b506100f16101eb366004610efc565b61098b565b3480156101fc57600080fd5b506100f161020b366004610efc565b6109c0565b34801561021c57600080fd5b506100f161022b366004610efc565b50505050565b34801561023d57600080fd5b506100f161024c366004610efc565b610c32565b60005b61026160c0830183610ff5565b90508110156104545761027760c0830183610ff5565b828181106102875761028761103e565b61029d9260206040909202019081019150611054565b6001600160a01b03166323b872dd33306102ba60c0870187610ff5565b868181106102ca576102ca61103e565b6040805160e088901b6001600160e01b03191681526001600160a01b0396871660048201529490951660248501529093020160200135604482015260640190506020604051808303816000875af1158015610329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034d919061106f565b5061035b60c0830183610ff5565b8281811061036b5761036b61103e565b6103819260206040909202019081019150611054565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006103bd60c0860186610ff5565b858181106103cd576103cd61103e565b905060400201602001356040518363ffffffff1660e01b81526004016104089291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610427573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044b919061106f565b50600101610254565b50600061045f610d0e565b9050808260600135101561049857604051635cd2ad5760e01b815260608301356004820152602481018290526044015b60405180910390fd5b346104ab60808401356060850135611091565b11156104e657346104c460808401356060850135611091565b60405163e3a1514160e01b81526004810192909252602482015260440161048f565b6104f86104f2836113e8565b34610d97565b5050565b600061050a828401846114ff565b60008055604051632173ad2760e21b815290915061048f908290600401611581565b60006105388585610e33565b9050600061054883850185611594565b905060005b815181101561079957600082828151811061056a5761056a61103e565b6020026020010151905080600001516001600160a01b031663095ea7b36105ae7f000000000000000000000000000000000000000000000000000000000000000090565b60208401516040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156105fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610622919061106f565b50604080516001808252818301909252600091816020015b604080518082019091526000808252602082015281526020019060019003908161063a57905050905081816000815181106106775761067761103e565b6020026020010181905250600060405180610100016040528087600001516001600160401b0316815260200187606001518152602001604051806020016040528060008152508152602001600081526020016000815260200160006001600160401b038111156106e9576106e96110b2565b60405190808252806020026020018201604052801561071c57816020015b60608152602001906001900390816107075790505b508152602080820185905260408051600080825292810182529201919061077e565b61076b604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b81526020019060019003908161073e5790505b509052905061078e816000610d97565b50505060010161054d565b50505050505050565b60006107b0828401846115c8565b905060006107be8686610e33565b905060005b82518110156108ac578281815181106107de576107de61103e565b6020026020010151600001516001600160a01b031663095ea7b361081f7f000000000000000000000000000000000000000000000000000000000000000090565b8584815181106108315761083161103e565b6020026020010151602001516040518363ffffffff1660e01b815260040161086e9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050600190920191506107c39050565b50604080516101008101825282516001600160401b031681526060808401516020808401919091528351908101845260008082529383015281018290526080810182905260a081018260405190808252806020026020018201604052801561092857816020015b60608152602001906001900390816109135790505b508152602001600060405190808252806020026020018201604052801561097557816020015b604080518082019091526000808252602082015281526020019060019003908161094e5790505b5081526020018490529050610799816000610d97565b600080805561099c828401846114ff565b90508060405162461bcd60e51b815260040161048f9190611581565b505050505050565b60006109cc8585610e33565b905060006109dc83850185611594565b825160208401516040808601516060870151608088015192519596507f7455bef08ac052a65b30e5155a7c364504a560fd4753a612d34802695a56f36595610a2895949390889061164d565b60405180910390a160005b8151811015610b2a57818181518110610a4e57610a4e61103e565b6020026020010151600001516001600160a01b031663095ea7b3610a8f7f000000000000000000000000000000000000000000000000000000000000000090565b848481518110610aa157610aa161103e565b6020026020010151602001516040518363ffffffff1660e01b8152600401610ade9291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061106f565b50600101610a33565b506109b860405180610100016040528084600001516001600160401b0316815260200184606001518152602001604051806020016040528060008152508152602001600081526020016000815260200160006001600160401b03811115610b9357610b936110b2565b604051908082528060200260200182016040528015610bc657816020015b6060815260200190600190039081610bb15790505b5081526020808201859052604080516000808252928101825292019190610c28565b610c15604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b815260200190600190039081610be85790505b5090526000610d97565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c7b576040516367ab7efd60e01b815260040160405180910390fd5b6000610c878585610e33565b90506000610c97838501856116ae565b905080600080828254610caa9190611091565b925050819055507f526f6652e74a3d979e195201cecc97a834b957cc0097468b9843d280b17a5d1a8183600001518460200151856040015186606001518760800151604051610cfe969594939291906116c7565b60405180910390a1505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a5a410316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d92919061170d565b905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e289adcd82600185604051602001610dda91906117d6565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401610e069291906118a2565b6000604051808303818588803b158015610e1f57600080fd5b505af1158015610799573d6000803e3d6000fd5b6040805160a0810182526000808252602082018190529181019190915260608082018190526080820152610e69828401846118bb565b90505b92915050565b600060208284031215610e8457600080fd5b81356001600160401b03811115610e9a57600080fd5b82016101008185031215610ead57600080fd5b9392505050565b60008083601f840112610ec657600080fd5b5081356001600160401b03811115610edd57600080fd5b602083019150836020828501011115610ef557600080fd5b9250929050565b60008060008060408587031215610f1257600080fd5b84356001600160401b03811115610f2857600080fd5b610f3487828801610eb4565b90955093505060208501356001600160401b03811115610f5357600080fd5b610f5f87828801610eb4565b95989497509550505050565b80356001600160a01b0381168114610f8257600080fd5b919050565b600080600080600060808688031215610f9f57600080fd5b610fa886610f6b565b9450610fb660208701610f6b565b93506040860135925060608601356001600160401b03811115610fd857600080fd5b610fe488828901610eb4565b969995985093965092949392505050565b6000808335601e1984360301811261100c57600080fd5b8301803591506001600160401b0382111561102657600080fd5b6020019150600681901b3603821315610ef557600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561106657600080fd5b610e6982610f6b565b60006020828403121561108157600080fd5b81518015158114610ead57600080fd5b80820180821115610e6c57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156110ea576110ea6110b2565b60405290565b604051606081016001600160401b03811182821017156110ea576110ea6110b2565b60405161010081016001600160401b03811182821017156110ea576110ea6110b2565b60405160a081016001600160401b03811182821017156110ea576110ea6110b2565b604051601f8201601f191681016001600160401b038111828210171561117f5761117f6110b2565b604052919050565b80356001600160401b0381168114610f8257600080fd5b600082601f8301126111af57600080fd5b8135602083016000806001600160401b038411156111cf576111cf6110b2565b50601f8301601f19166020016111e481611157565b9150508281528583830111156111f957600080fd5b82826020830137600092810160200192909252509392505050565b60006001600160401b0382111561122d5761122d6110b2565b5060051b60200190565b600082601f83011261124857600080fd5b813561125b61125682611214565b611157565b8082825260208201915060208360051b86010192508583111561127d57600080fd5b602085015b838110156112be5780356001600160401b038111156112a057600080fd5b6112af886020838a010161119e565b84525060209283019201611282565b5095945050505050565b600082601f8301126112d957600080fd5b81356112e761125682611214565b8082825260208201915060208360061b86010192508583111561130957600080fd5b602085015b838110156112be576040818803121561132657600080fd5b61132e6110c8565b61133782610f6b565b815260208281013581830152908452929092019160400161130e565b600082601f83011261136457600080fd5b813561137261125682611214565b8082825260208201915060206060840286010192508583111561139457600080fd5b602085015b838110156112be57606081880312156113b157600080fd5b6113b96110f0565b6113c282610f6b565b815260208281013581830152604080840135908301529084529290920191606001611399565b600061010082360312156113fb57600080fd5b611403611112565b61140c83611187565b815260208301356001600160401b0381111561142757600080fd5b6114333682860161119e565b60208301525060408301356001600160401b0381111561145257600080fd5b61145e3682860161119e565b604083015250606083810135908201526080808401359082015260a08301356001600160401b0381111561149157600080fd5b61149d36828601611237565b60a08301525060c08301356001600160401b038111156114bc57600080fd5b6114c8368286016112c8565b60c08301525060e08301356001600160401b038111156114e757600080fd5b6114f336828601611353565b60e08301525092915050565b60006020828403121561151157600080fd5b81356001600160401b0381111561152757600080fd5b6115338482850161119e565b949350505050565b6000815180845260005b8181101561156157602081850181015186830182015201611545565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610e69602083018461153b565b6000602082840312156115a657600080fd5b81356001600160401b038111156115bc57600080fd5b611533848285016112c8565b6000602082840312156115da57600080fd5b81356001600160401b038111156115f057600080fd5b61153384828501611353565b600081518084526020840193506020830160005b8281101561164357815180516001600160a01b031687526020908101518188015260409096019590910190600101611610565b5093949350505050565b6001600160401b038716815285602082015284604082015260c06060820152600061167b60c083018661153b565b828103608084015261168d818661153b565b905082810360a08401526116a181856115fc565b9998505050505050505050565b6000602082840312156116c057600080fd5b5035919050565b8681526001600160401b038616602082015284604082015283606082015260c0608082015260006116fb60c083018561153b565b82810360a08401526116a1818561153b565b60006020828403121561171f57600080fd5b5051919050565b600082825180855260208501945060208160051b8301016020850160005b8381101561177657601f1985840301885261176083835161153b565b6020988901989093509190910190600101611744565b50909695505050505050565b600081518084526020840193506020830160005b8281101561164357815180516001600160a01b03168752602080820151818901526040918201519188019190915260609096019590910190600101611796565b602081526117f06020820183516001600160401b03169052565b60006020830151610100604084015261180d61012084018261153b565b90506040840151601f1984830301606085015261182a828261153b565b91505060608401516080840152608084015160a084015260a0840151601f198483030160c085015261185c8282611726565b91505060c0840151601f198483030160e085015261187a82826115fc565b91505060e0840151601f19848303016101008501526118998282611782565b95945050505050565b828152604060208201526000611533604083018461153b565b6000602082840312156118cd57600080fd5b81356001600160401b038111156118e357600080fd5b820160a081850312156118f557600080fd5b6118fd611135565b61190682611187565b8152602082810135908201526040808301359082015260608201356001600160401b0381111561193557600080fd5b6119418682850161119e565b60608301525060808201356001600160401b0381111561196057600080fd5b61196c8682850161119e565b60808301525094935050505056fea26469706673582212202b017125fab5680b2ea3a68dea223bd4749ff83afdc10090097193b7a8a0750e64736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1A65 CODESIZE SUB DUP1 PUSH2 0x1A65 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x40 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x70 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x19B0 PUSH2 0xB5 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x391 ADD MSTORE DUP2 DUP2 PUSH2 0x58C ADD MSTORE DUP2 DUP2 PUSH2 0x7FD ADD MSTORE DUP2 DUP2 PUSH2 0xA6D ADD MSTORE DUP2 DUP2 PUSH2 0xC3D ADD MSTORE DUP2 DUP2 PUSH2 0xD12 ADD MSTORE PUSH2 0xD99 ADD MSTORE PUSH2 0x19B0 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x20965255 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x20965255 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0x302B86B0 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x3D2CFAD2 EQ PUSH2 0x1D0 JUMPI DUP1 PUSH4 0x50E9C31B EQ PUSH2 0x1F0 JUMPI DUP1 PUSH4 0xBCB2606C EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xE77D74B0 EQ PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x20CB2D EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0xD8E6E2C EQ PUSH2 0xF3 JUMPI DUP1 PUSH4 0x145769F5 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x14C68A73 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xD9 JUMPI PUSH1 0x40 MLOAD CALLVALUE DUP2 MSTORE PUSH32 0x49B4C3F4344F33413322C03885F90F29E906BD8EB0CB2C3D815EE1AD2B3C989C SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF1 PUSH2 0xEC CALLDATASIZE PUSH1 0x4 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x251 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x142 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x151 CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x52C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0xF87 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x103 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x1CB CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x7A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x1EB CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x98B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x20B CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x9C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x22B CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH2 0x261 PUSH1 0xC0 DUP4 ADD DUP4 PUSH2 0xFF5 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x454 JUMPI PUSH2 0x277 PUSH1 0xC0 DUP4 ADD DUP4 PUSH2 0xFF5 JUMP JUMPDEST DUP3 DUP2 DUP2 LT PUSH2 0x287 JUMPI PUSH2 0x287 PUSH2 0x103E JUMP JUMPDEST PUSH2 0x29D SWAP3 PUSH1 0x20 PUSH1 0x40 SWAP1 SWAP3 MUL ADD SWAP1 DUP2 ADD SWAP2 POP PUSH2 0x1054 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD CALLER ADDRESS PUSH2 0x2BA PUSH1 0xC0 DUP8 ADD DUP8 PUSH2 0xFF5 JUMP JUMPDEST DUP7 DUP2 DUP2 LT PUSH2 0x2CA JUMPI PUSH2 0x2CA PUSH2 0x103E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP9 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x24 DUP6 ADD MSTORE SWAP1 SWAP4 MUL ADD PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD SWAP1 POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x329 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 0x34D SWAP2 SWAP1 PUSH2 0x106F JUMP JUMPDEST POP PUSH2 0x35B PUSH1 0xC0 DUP4 ADD DUP4 PUSH2 0xFF5 JUMP JUMPDEST DUP3 DUP2 DUP2 LT PUSH2 0x36B JUMPI PUSH2 0x36B PUSH2 0x103E JUMP JUMPDEST PUSH2 0x381 SWAP3 PUSH1 0x20 PUSH1 0x40 SWAP1 SWAP3 MUL ADD SWAP1 DUP2 ADD SWAP2 POP PUSH2 0x1054 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH32 0x0 PUSH2 0x3BD PUSH1 0xC0 DUP7 ADD DUP7 PUSH2 0xFF5 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x3CD JUMPI PUSH2 0x3CD PUSH2 0x103E JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MUL ADD PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x408 SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x427 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 0x44B SWAP2 SWAP1 PUSH2 0x106F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x254 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x45F PUSH2 0xD0E JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH1 0x60 ADD CALLDATALOAD LT ISZERO PUSH2 0x498 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5CD2AD57 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0x4AB PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH2 0x1091 JUMP JUMPDEST GT ISZERO PUSH2 0x4E6 JUMPI CALLVALUE PUSH2 0x4C4 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH2 0x1091 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE3A15141 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x48F JUMP JUMPDEST PUSH2 0x4F8 PUSH2 0x4F2 DUP4 PUSH2 0x13E8 JUMP JUMPDEST CALLVALUE PUSH2 0xD97 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A DUP3 DUP5 ADD DUP5 PUSH2 0x14FF JUMP JUMPDEST PUSH1 0x0 DUP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x2173AD27 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH2 0x48F SWAP1 DUP3 SWAP1 PUSH1 0x4 ADD PUSH2 0x1581 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x538 DUP6 DUP6 PUSH2 0xE33 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x548 DUP4 DUP6 ADD DUP6 PUSH2 0x1594 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x799 JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x56A JUMPI PUSH2 0x56A PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x5AE PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5FE 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 0x622 SWAP2 SWAP1 PUSH2 0x106F JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x63A JUMPI SWAP1 POP POP SWAP1 POP DUP2 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x677 JUMPI PUSH2 0x677 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x6E9 JUMPI PUSH2 0x6E9 PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x71C JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x707 JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE SWAP3 DUP2 ADD DUP3 MSTORE SWAP3 ADD SWAP2 SWAP1 PUSH2 0x77E JUMP JUMPDEST PUSH2 0x76B PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x73E JUMPI SWAP1 POP JUMPDEST POP SWAP1 MSTORE SWAP1 POP PUSH2 0x78E DUP2 PUSH1 0x0 PUSH2 0xD97 JUMP JUMPDEST POP POP POP PUSH1 0x1 ADD PUSH2 0x54D JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7B0 DUP3 DUP5 ADD DUP5 PUSH2 0x15C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x7BE DUP7 DUP7 PUSH2 0xE33 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x8AC JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x7DE JUMPI PUSH2 0x7DE PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x81F PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x831 JUMPI PUSH2 0x831 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x86E SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x89C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0x7C3 SWAP1 POP JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x60 DUP1 DUP5 ADD MLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD SWAP1 DUP2 ADD DUP5 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE SWAP4 DUP4 ADD MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x928 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x913 JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x975 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x94E JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 ADD DUP5 SWAP1 MSTORE SWAP1 POP PUSH2 0x799 DUP2 PUSH1 0x0 PUSH2 0xD97 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 SSTORE PUSH2 0x99C DUP3 DUP5 ADD DUP5 PUSH2 0x14FF JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48F SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CC DUP6 DUP6 PUSH2 0xE33 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9DC DUP4 DUP6 ADD DUP6 PUSH2 0x1594 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD SWAP3 MLOAD SWAP6 SWAP7 POP PUSH32 0x7455BEF08AC052A65B30E5155A7C364504A560FD4753A612D34802695A56F365 SWAP6 PUSH2 0xA28 SWAP6 SWAP5 SWAP4 SWAP1 DUP9 SWAP1 PUSH2 0x164D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xB2A JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA4E JUMPI PUSH2 0xA4E PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0xA8F PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xAA1 JUMPI PUSH2 0xAA1 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xADE SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAFD 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 0xB21 SWAP2 SWAP1 PUSH2 0x106F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0xA33 JUMP JUMPDEST POP PUSH2 0x9B8 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xB93 JUMPI PUSH2 0xB93 PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBC6 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBB1 JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE SWAP3 DUP2 ADD DUP3 MSTORE SWAP3 ADD SWAP2 SWAP1 PUSH2 0xC28 JUMP JUMPDEST PUSH2 0xC15 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBE8 JUMPI SWAP1 POP JUMPDEST POP SWAP1 MSTORE PUSH1 0x0 PUSH2 0xD97 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xC7B JUMPI PUSH1 0x40 MLOAD PUSH4 0x67AB7EFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC87 DUP6 DUP6 PUSH2 0xE33 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xC97 DUP4 DUP6 ADD DUP6 PUSH2 0x16AE JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0xCAA SWAP2 SWAP1 PUSH2 0x1091 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x526F6652E74A3D979E195201CECC97A834B957CC0097468B9843D280B17A5D1A DUP2 DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x60 ADD MLOAD DUP8 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xCFE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x16C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA5A41031 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD6E 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 0xD92 SWAP2 SWAP1 PUSH2 0x170D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE289ADCD DUP3 PUSH1 0x1 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDDA SWAP2 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE06 SWAP3 SWAP2 SWAP1 PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x799 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0xE69 DUP3 DUP5 ADD DUP5 PUSH2 0x18BB JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xE9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x100 DUP2 DUP6 SUB SLT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xEC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xEF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xF12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xF28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF34 DUP8 DUP3 DUP9 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xF53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF5F DUP8 DUP3 DUP9 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xF82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xF9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFA8 DUP7 PUSH2 0xF6B JUMP JUMPDEST SWAP5 POP PUSH2 0xFB6 PUSH1 0x20 DUP8 ADD PUSH2 0xF6B JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xFD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFE4 DUP9 DUP3 DUP10 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x100C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x6 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0xEF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1066 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE69 DUP3 PUSH2 0xF6B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1081 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xE6C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10EA JUMPI PUSH2 0x10EA PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10EA JUMPI PUSH2 0x10EA PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10EA JUMPI PUSH2 0x10EA PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10EA JUMPI PUSH2 0x10EA PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x117F JUMPI PUSH2 0x117F PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xF82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x11AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x11CF JUMPI PUSH2 0x11CF PUSH2 0x10B2 JUMP JUMPDEST POP PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x11E4 DUP2 PUSH2 0x1157 JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x11F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x122D JUMPI PUSH2 0x122D PUSH2 0x10B2 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x125B PUSH2 0x1256 DUP3 PUSH2 0x1214 JUMP JUMPDEST PUSH2 0x1157 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x127D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12BE JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x12A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AF DUP9 PUSH1 0x20 DUP4 DUP11 ADD ADD PUSH2 0x119E JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1282 JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12E7 PUSH2 0x1256 DUP3 PUSH2 0x1214 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x6 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x1309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12BE JUMPI PUSH1 0x40 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x1326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x132E PUSH2 0x10C8 JUMP JUMPDEST PUSH2 0x1337 DUP3 PUSH2 0xF6B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP5 MSTORE SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x40 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1372 PUSH2 0x1256 DUP3 PUSH2 0x1214 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 PUSH1 0x60 DUP5 MUL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x1394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12BE JUMPI PUSH1 0x60 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x13B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13B9 PUSH2 0x10F0 JUMP JUMPDEST PUSH2 0x13C2 DUP3 PUSH2 0xF6B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE SWAP1 DUP5 MSTORE SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 CALLDATASIZE SUB SLT ISZERO PUSH2 0x13FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1403 PUSH2 0x1112 JUMP JUMPDEST PUSH2 0x140C DUP4 PUSH2 0x1187 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1427 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1433 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x119E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x145E CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x119E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x149D CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x1237 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14C8 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x12C8 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F3 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x1353 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1511 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1533 DUP5 DUP3 DUP6 ADD PUSH2 0x119E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1561 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x1545 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xE69 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1533 DUP5 DUP3 DUP6 ADD PUSH2 0x12C8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1533 DUP5 DUP3 DUP6 ADD PUSH2 0x1353 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1643 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD DUP2 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1610 JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x167B PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x153B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x168D DUP2 DUP7 PUSH2 0x153B JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x16A1 DUP2 DUP6 PUSH2 0x15FC JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE DUP4 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x16FB PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x153B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x16A1 DUP2 DUP6 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x171F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1776 JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x1760 DUP4 DUP4 MLOAD PUSH2 0x153B JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1744 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1643 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x40 SWAP2 DUP3 ADD MLOAD SWAP2 DUP9 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1796 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x17F0 PUSH1 0x20 DUP3 ADD DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x100 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x180D PUSH2 0x120 DUP5 ADD DUP3 PUSH2 0x153B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x182A DUP3 DUP3 PUSH2 0x153B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x185C DUP3 DUP3 PUSH2 0x1726 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x187A DUP3 DUP3 PUSH2 0x15FC JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x1899 DUP3 DUP3 PUSH2 0x1782 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1533 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x18E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xA0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x18F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18FD PUSH2 0x1135 JUMP JUMPDEST PUSH2 0x1906 DUP3 PUSH2 0x1187 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1941 DUP7 DUP3 DUP6 ADD PUSH2 0x119E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1960 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x196C DUP7 DUP3 DUP6 ADD PUSH2 0x119E JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B ADD PUSH18 0x25FAB5680B2EA3A68DEA223BD4749FF83AFD 0xC1 STOP SWAP1 MULMOD PUSH18 0x93B7A8A0750E64736F6C634300081C003300 ","sourceMap":"529:5571:85:-:0;;;1099:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;506:52:73;;;529:5571:85;;14:290:89;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:89;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:89:o;:::-;529:5571:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_20572":{"entryPoint":null,"id":20572,"parameterSlots":0,"returnSlots":0},"@_decodeTacHeader_18516":{"entryPoint":3635,"id":18516,"parameterSlots":2,"returnSlots":1},"@_getCrossChainLayerAddress_18488":{"entryPoint":null,"id":18488,"parameterSlots":0,"returnSlots":1},"@_sendMessageV1_18538":{"entryPoint":3479,"id":18538,"parameterSlots":2,"returnSlots":0},"@bridgeTokensToTON_20921":{"entryPoint":593,"id":20921,"parameterSlots":1,"returnSlots":0},"@emptyFunction_21093":{"entryPoint":null,"id":21093,"parameterSlots":4,"returnSlots":0},"@getProtocolFee_18499":{"entryPoint":3342,"id":18499,"parameterSlots":0,"returnSlots":1},"@getValue_21085":{"entryPoint":null,"id":21085,"parameterSlots":0,"returnSlots":1},"@getVersion_18548":{"entryPoint":null,"id":18548,"parameterSlots":0,"returnSlots":1},"@invokeWithCallback_20712":{"entryPoint":2496,"id":20712,"parameterSlots":4,"returnSlots":0},"@invoke_20617":{"entryPoint":3122,"id":20617,"parameterSlots":4,"returnSlots":0},"@mockWithCustomError_20947":{"entryPoint":1276,"id":20947,"parameterSlots":4,"returnSlots":0},"@mockWithDefaultError_20974":{"entryPoint":2443,"id":20974,"parameterSlots":4,"returnSlots":0},"@onERC721Received_20992":{"entryPoint":null,"id":20992,"parameterSlots":5,"returnSlots":1},"@receiveNFT_21077":{"entryPoint":1954,"id":21077,"parameterSlots":4,"returnSlots":0},"@sendMultiplyCallbackToCrossChainLayer_20819":{"entryPoint":1324,"id":20819,"parameterSlots":4,"returnSlots":0},"abi_decode_address":{"entryPoint":3947,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_string_dyn":{"entryPoint":4663,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_NFTAmount_dyn":{"entryPoint":4947,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_TokenAmount_dyn":{"entryPoint":4808,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":3764,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_string":{"entryPoint":4510,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4180,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr":{"entryPoint":3975,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr":{"entryPoint":5576,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr":{"entryPoint":5524,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4207,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":3836,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":5375,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_OutMessageV1_$16084_calldata_ptr":{"entryPoint":3698,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr":{"entryPoint":6331,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":5806,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":5901,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint64":{"entryPoint":4487,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_string_dyn":{"entryPoint":5926,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_NFTAmount_dyn":{"entryPoint":6018,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_TokenAmount_dyn":{"entryPoint":5628,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":5435,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5505,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr__to_t_struct$_OutMessageV1_$16084_memory_ptr__fromStack_reversed":{"entryPoint":6102,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6306,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5831,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr__to_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":5709,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_uint64":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"access_calldata_tail_t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":4085,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":4439,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_2469":{"entryPoint":4296,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_2472":{"entryPoint":4336,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_2474":{"entryPoint":4370,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_2476":{"entryPoint":4405,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_array_string_dyn":{"entryPoint":4628,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":4241,"id":null,"parameterSlots":2,"returnSlots":1},"convert_t_struct$_OutMessageV1_$16084_calldata_ptr_to_t_struct$_OutMessageV1_$16084_memory_ptr":{"entryPoint":5096,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":4158,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4274,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:20377:89","nodeType":"YulBlock","src":"0:20377:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"115:76:89","nodeType":"YulBlock","src":"115:76:89","statements":[{"nativeSrc":"125:26:89","nodeType":"YulAssignment","src":"125:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"137:9:89","nodeType":"YulIdentifier","src":"137:9:89"},{"kind":"number","nativeSrc":"148:2:89","nodeType":"YulLiteral","src":"148:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"133:3:89","nodeType":"YulIdentifier","src":"133:3:89"},"nativeSrc":"133:18:89","nodeType":"YulFunctionCall","src":"133:18:89"},"variableNames":[{"name":"tail","nativeSrc":"125:4:89","nodeType":"YulIdentifier","src":"125:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"167:9:89","nodeType":"YulIdentifier","src":"167:9:89"},{"name":"value0","nativeSrc":"178:6:89","nodeType":"YulIdentifier","src":"178:6:89"}],"functionName":{"name":"mstore","nativeSrc":"160:6:89","nodeType":"YulIdentifier","src":"160:6:89"},"nativeSrc":"160:25:89","nodeType":"YulFunctionCall","src":"160:25:89"},"nativeSrc":"160:25:89","nodeType":"YulExpressionStatement","src":"160:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"14:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"84:9:89","nodeType":"YulTypedName","src":"84:9:89","type":""},{"name":"value0","nativeSrc":"95:6:89","nodeType":"YulTypedName","src":"95:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"106:4:89","nodeType":"YulTypedName","src":"106:4:89","type":""}],"src":"14:177:89"},{"body":{"nativeSrc":"299:290:89","nodeType":"YulBlock","src":"299:290:89","statements":[{"body":{"nativeSrc":"345:16:89","nodeType":"YulBlock","src":"345:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"354:1:89","nodeType":"YulLiteral","src":"354:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"357:1:89","nodeType":"YulLiteral","src":"357:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"347:6:89","nodeType":"YulIdentifier","src":"347:6:89"},"nativeSrc":"347:12:89","nodeType":"YulFunctionCall","src":"347:12:89"},"nativeSrc":"347:12:89","nodeType":"YulExpressionStatement","src":"347:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"320:7:89","nodeType":"YulIdentifier","src":"320:7:89"},{"name":"headStart","nativeSrc":"329:9:89","nodeType":"YulIdentifier","src":"329:9:89"}],"functionName":{"name":"sub","nativeSrc":"316:3:89","nodeType":"YulIdentifier","src":"316:3:89"},"nativeSrc":"316:23:89","nodeType":"YulFunctionCall","src":"316:23:89"},{"kind":"number","nativeSrc":"341:2:89","nodeType":"YulLiteral","src":"341:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"312:3:89","nodeType":"YulIdentifier","src":"312:3:89"},"nativeSrc":"312:32:89","nodeType":"YulFunctionCall","src":"312:32:89"},"nativeSrc":"309:52:89","nodeType":"YulIf","src":"309:52:89"},{"nativeSrc":"370:37:89","nodeType":"YulVariableDeclaration","src":"370:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"397:9:89","nodeType":"YulIdentifier","src":"397:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"384:12:89","nodeType":"YulIdentifier","src":"384:12:89"},"nativeSrc":"384:23:89","nodeType":"YulFunctionCall","src":"384:23:89"},"variables":[{"name":"offset","nativeSrc":"374:6:89","nodeType":"YulTypedName","src":"374:6:89","type":""}]},{"body":{"nativeSrc":"450:16:89","nodeType":"YulBlock","src":"450:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"459:1:89","nodeType":"YulLiteral","src":"459:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"462:1:89","nodeType":"YulLiteral","src":"462:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"452:6:89","nodeType":"YulIdentifier","src":"452:6:89"},"nativeSrc":"452:12:89","nodeType":"YulFunctionCall","src":"452:12:89"},"nativeSrc":"452:12:89","nodeType":"YulExpressionStatement","src":"452:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"422:6:89","nodeType":"YulIdentifier","src":"422:6:89"},{"kind":"number","nativeSrc":"430:18:89","nodeType":"YulLiteral","src":"430:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"419:2:89","nodeType":"YulIdentifier","src":"419:2:89"},"nativeSrc":"419:30:89","nodeType":"YulFunctionCall","src":"419:30:89"},"nativeSrc":"416:50:89","nodeType":"YulIf","src":"416:50:89"},{"nativeSrc":"475:32:89","nodeType":"YulVariableDeclaration","src":"475:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"489:9:89","nodeType":"YulIdentifier","src":"489:9:89"},{"name":"offset","nativeSrc":"500:6:89","nodeType":"YulIdentifier","src":"500:6:89"}],"functionName":{"name":"add","nativeSrc":"485:3:89","nodeType":"YulIdentifier","src":"485:3:89"},"nativeSrc":"485:22:89","nodeType":"YulFunctionCall","src":"485:22:89"},"variables":[{"name":"_1","nativeSrc":"479:2:89","nodeType":"YulTypedName","src":"479:2:89","type":""}]},{"body":{"nativeSrc":"546:16:89","nodeType":"YulBlock","src":"546:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"555:1:89","nodeType":"YulLiteral","src":"555:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"558:1:89","nodeType":"YulLiteral","src":"558:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"548:6:89","nodeType":"YulIdentifier","src":"548:6:89"},"nativeSrc":"548:12:89","nodeType":"YulFunctionCall","src":"548:12:89"},"nativeSrc":"548:12:89","nodeType":"YulExpressionStatement","src":"548:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"527:7:89","nodeType":"YulIdentifier","src":"527:7:89"},{"name":"_1","nativeSrc":"536:2:89","nodeType":"YulIdentifier","src":"536:2:89"}],"functionName":{"name":"sub","nativeSrc":"523:3:89","nodeType":"YulIdentifier","src":"523:3:89"},"nativeSrc":"523:16:89","nodeType":"YulFunctionCall","src":"523:16:89"},{"kind":"number","nativeSrc":"541:3:89","nodeType":"YulLiteral","src":"541:3:89","type":"","value":"256"}],"functionName":{"name":"slt","nativeSrc":"519:3:89","nodeType":"YulIdentifier","src":"519:3:89"},"nativeSrc":"519:26:89","nodeType":"YulFunctionCall","src":"519:26:89"},"nativeSrc":"516:46:89","nodeType":"YulIf","src":"516:46:89"},{"nativeSrc":"571:12:89","nodeType":"YulAssignment","src":"571:12:89","value":{"name":"_1","nativeSrc":"581:2:89","nodeType":"YulIdentifier","src":"581:2:89"},"variableNames":[{"name":"value0","nativeSrc":"571:6:89","nodeType":"YulIdentifier","src":"571:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_OutMessageV1_$16084_calldata_ptr","nativeSrc":"196:393:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"265:9:89","nodeType":"YulTypedName","src":"265:9:89","type":""},{"name":"dataEnd","nativeSrc":"276:7:89","nodeType":"YulTypedName","src":"276:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"288:6:89","nodeType":"YulTypedName","src":"288:6:89","type":""}],"src":"196:393:89"},{"body":{"nativeSrc":"666:275:89","nodeType":"YulBlock","src":"666:275:89","statements":[{"body":{"nativeSrc":"715:16:89","nodeType":"YulBlock","src":"715:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"724:1:89","nodeType":"YulLiteral","src":"724:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"727:1:89","nodeType":"YulLiteral","src":"727:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"717:6:89","nodeType":"YulIdentifier","src":"717:6:89"},"nativeSrc":"717:12:89","nodeType":"YulFunctionCall","src":"717:12:89"},"nativeSrc":"717:12:89","nodeType":"YulExpressionStatement","src":"717:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"694:6:89","nodeType":"YulIdentifier","src":"694:6:89"},{"kind":"number","nativeSrc":"702:4:89","nodeType":"YulLiteral","src":"702:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"690:3:89","nodeType":"YulIdentifier","src":"690:3:89"},"nativeSrc":"690:17:89","nodeType":"YulFunctionCall","src":"690:17:89"},{"name":"end","nativeSrc":"709:3:89","nodeType":"YulIdentifier","src":"709:3:89"}],"functionName":{"name":"slt","nativeSrc":"686:3:89","nodeType":"YulIdentifier","src":"686:3:89"},"nativeSrc":"686:27:89","nodeType":"YulFunctionCall","src":"686:27:89"}],"functionName":{"name":"iszero","nativeSrc":"679:6:89","nodeType":"YulIdentifier","src":"679:6:89"},"nativeSrc":"679:35:89","nodeType":"YulFunctionCall","src":"679:35:89"},"nativeSrc":"676:55:89","nodeType":"YulIf","src":"676:55:89"},{"nativeSrc":"740:30:89","nodeType":"YulAssignment","src":"740:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"763:6:89","nodeType":"YulIdentifier","src":"763:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"750:12:89","nodeType":"YulIdentifier","src":"750:12:89"},"nativeSrc":"750:20:89","nodeType":"YulFunctionCall","src":"750:20:89"},"variableNames":[{"name":"length","nativeSrc":"740:6:89","nodeType":"YulIdentifier","src":"740:6:89"}]},{"body":{"nativeSrc":"813:16:89","nodeType":"YulBlock","src":"813:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"822:1:89","nodeType":"YulLiteral","src":"822:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"825:1:89","nodeType":"YulLiteral","src":"825:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"815:6:89","nodeType":"YulIdentifier","src":"815:6:89"},"nativeSrc":"815:12:89","nodeType":"YulFunctionCall","src":"815:12:89"},"nativeSrc":"815:12:89","nodeType":"YulExpressionStatement","src":"815:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"785:6:89","nodeType":"YulIdentifier","src":"785:6:89"},{"kind":"number","nativeSrc":"793:18:89","nodeType":"YulLiteral","src":"793:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"782:2:89","nodeType":"YulIdentifier","src":"782:2:89"},"nativeSrc":"782:30:89","nodeType":"YulFunctionCall","src":"782:30:89"},"nativeSrc":"779:50:89","nodeType":"YulIf","src":"779:50:89"},{"nativeSrc":"838:29:89","nodeType":"YulAssignment","src":"838:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"854:6:89","nodeType":"YulIdentifier","src":"854:6:89"},{"kind":"number","nativeSrc":"862:4:89","nodeType":"YulLiteral","src":"862:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"850:3:89","nodeType":"YulIdentifier","src":"850:3:89"},"nativeSrc":"850:17:89","nodeType":"YulFunctionCall","src":"850:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"838:8:89","nodeType":"YulIdentifier","src":"838:8:89"}]},{"body":{"nativeSrc":"919:16:89","nodeType":"YulBlock","src":"919:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"928:1:89","nodeType":"YulLiteral","src":"928:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"931:1:89","nodeType":"YulLiteral","src":"931:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"921:6:89","nodeType":"YulIdentifier","src":"921:6:89"},"nativeSrc":"921:12:89","nodeType":"YulFunctionCall","src":"921:12:89"},"nativeSrc":"921:12:89","nodeType":"YulExpressionStatement","src":"921:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"890:6:89","nodeType":"YulIdentifier","src":"890:6:89"},{"name":"length","nativeSrc":"898:6:89","nodeType":"YulIdentifier","src":"898:6:89"}],"functionName":{"name":"add","nativeSrc":"886:3:89","nodeType":"YulIdentifier","src":"886:3:89"},"nativeSrc":"886:19:89","nodeType":"YulFunctionCall","src":"886:19:89"},{"kind":"number","nativeSrc":"907:4:89","nodeType":"YulLiteral","src":"907:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"882:3:89","nodeType":"YulIdentifier","src":"882:3:89"},"nativeSrc":"882:30:89","nodeType":"YulFunctionCall","src":"882:30:89"},{"name":"end","nativeSrc":"914:3:89","nodeType":"YulIdentifier","src":"914:3:89"}],"functionName":{"name":"gt","nativeSrc":"879:2:89","nodeType":"YulIdentifier","src":"879:2:89"},"nativeSrc":"879:39:89","nodeType":"YulFunctionCall","src":"879:39:89"},"nativeSrc":"876:59:89","nodeType":"YulIf","src":"876:59:89"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"594:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"629:6:89","nodeType":"YulTypedName","src":"629:6:89","type":""},{"name":"end","nativeSrc":"637:3:89","nodeType":"YulTypedName","src":"637:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"645:8:89","nodeType":"YulTypedName","src":"645:8:89","type":""},{"name":"length","nativeSrc":"655:6:89","nodeType":"YulTypedName","src":"655:6:89","type":""}],"src":"594:347:89"},{"body":{"nativeSrc":"1071:587:89","nodeType":"YulBlock","src":"1071:587:89","statements":[{"body":{"nativeSrc":"1117:16:89","nodeType":"YulBlock","src":"1117:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1126:1:89","nodeType":"YulLiteral","src":"1126:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1129:1:89","nodeType":"YulLiteral","src":"1129:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1119:6:89","nodeType":"YulIdentifier","src":"1119:6:89"},"nativeSrc":"1119:12:89","nodeType":"YulFunctionCall","src":"1119:12:89"},"nativeSrc":"1119:12:89","nodeType":"YulExpressionStatement","src":"1119:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1092:7:89","nodeType":"YulIdentifier","src":"1092:7:89"},{"name":"headStart","nativeSrc":"1101:9:89","nodeType":"YulIdentifier","src":"1101:9:89"}],"functionName":{"name":"sub","nativeSrc":"1088:3:89","nodeType":"YulIdentifier","src":"1088:3:89"},"nativeSrc":"1088:23:89","nodeType":"YulFunctionCall","src":"1088:23:89"},{"kind":"number","nativeSrc":"1113:2:89","nodeType":"YulLiteral","src":"1113:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1084:3:89","nodeType":"YulIdentifier","src":"1084:3:89"},"nativeSrc":"1084:32:89","nodeType":"YulFunctionCall","src":"1084:32:89"},"nativeSrc":"1081:52:89","nodeType":"YulIf","src":"1081:52:89"},{"nativeSrc":"1142:37:89","nodeType":"YulVariableDeclaration","src":"1142:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1169:9:89","nodeType":"YulIdentifier","src":"1169:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1156:12:89","nodeType":"YulIdentifier","src":"1156:12:89"},"nativeSrc":"1156:23:89","nodeType":"YulFunctionCall","src":"1156:23:89"},"variables":[{"name":"offset","nativeSrc":"1146:6:89","nodeType":"YulTypedName","src":"1146:6:89","type":""}]},{"body":{"nativeSrc":"1222:16:89","nodeType":"YulBlock","src":"1222:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1231:1:89","nodeType":"YulLiteral","src":"1231:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1234:1:89","nodeType":"YulLiteral","src":"1234:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1224:6:89","nodeType":"YulIdentifier","src":"1224:6:89"},"nativeSrc":"1224:12:89","nodeType":"YulFunctionCall","src":"1224:12:89"},"nativeSrc":"1224:12:89","nodeType":"YulExpressionStatement","src":"1224:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1194:6:89","nodeType":"YulIdentifier","src":"1194:6:89"},{"kind":"number","nativeSrc":"1202:18:89","nodeType":"YulLiteral","src":"1202:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1191:2:89","nodeType":"YulIdentifier","src":"1191:2:89"},"nativeSrc":"1191:30:89","nodeType":"YulFunctionCall","src":"1191:30:89"},"nativeSrc":"1188:50:89","nodeType":"YulIf","src":"1188:50:89"},{"nativeSrc":"1247:84:89","nodeType":"YulVariableDeclaration","src":"1247:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1303:9:89","nodeType":"YulIdentifier","src":"1303:9:89"},{"name":"offset","nativeSrc":"1314:6:89","nodeType":"YulIdentifier","src":"1314:6:89"}],"functionName":{"name":"add","nativeSrc":"1299:3:89","nodeType":"YulIdentifier","src":"1299:3:89"},"nativeSrc":"1299:22:89","nodeType":"YulFunctionCall","src":"1299:22:89"},{"name":"dataEnd","nativeSrc":"1323:7:89","nodeType":"YulIdentifier","src":"1323:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1273:25:89","nodeType":"YulIdentifier","src":"1273:25:89"},"nativeSrc":"1273:58:89","nodeType":"YulFunctionCall","src":"1273:58:89"},"variables":[{"name":"value0_1","nativeSrc":"1251:8:89","nodeType":"YulTypedName","src":"1251:8:89","type":""},{"name":"value1_1","nativeSrc":"1261:8:89","nodeType":"YulTypedName","src":"1261:8:89","type":""}]},{"nativeSrc":"1340:18:89","nodeType":"YulAssignment","src":"1340:18:89","value":{"name":"value0_1","nativeSrc":"1350:8:89","nodeType":"YulIdentifier","src":"1350:8:89"},"variableNames":[{"name":"value0","nativeSrc":"1340:6:89","nodeType":"YulIdentifier","src":"1340:6:89"}]},{"nativeSrc":"1367:18:89","nodeType":"YulAssignment","src":"1367:18:89","value":{"name":"value1_1","nativeSrc":"1377:8:89","nodeType":"YulIdentifier","src":"1377:8:89"},"variableNames":[{"name":"value1","nativeSrc":"1367:6:89","nodeType":"YulIdentifier","src":"1367:6:89"}]},{"nativeSrc":"1394:48:89","nodeType":"YulVariableDeclaration","src":"1394:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1427:9:89","nodeType":"YulIdentifier","src":"1427:9:89"},{"kind":"number","nativeSrc":"1438:2:89","nodeType":"YulLiteral","src":"1438:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1423:3:89","nodeType":"YulIdentifier","src":"1423:3:89"},"nativeSrc":"1423:18:89","nodeType":"YulFunctionCall","src":"1423:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1410:12:89","nodeType":"YulIdentifier","src":"1410:12:89"},"nativeSrc":"1410:32:89","nodeType":"YulFunctionCall","src":"1410:32:89"},"variables":[{"name":"offset_1","nativeSrc":"1398:8:89","nodeType":"YulTypedName","src":"1398:8:89","type":""}]},{"body":{"nativeSrc":"1487:16:89","nodeType":"YulBlock","src":"1487:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1496:1:89","nodeType":"YulLiteral","src":"1496:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1499:1:89","nodeType":"YulLiteral","src":"1499:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1489:6:89","nodeType":"YulIdentifier","src":"1489:6:89"},"nativeSrc":"1489:12:89","nodeType":"YulFunctionCall","src":"1489:12:89"},"nativeSrc":"1489:12:89","nodeType":"YulExpressionStatement","src":"1489:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1457:8:89","nodeType":"YulIdentifier","src":"1457:8:89"},{"kind":"number","nativeSrc":"1467:18:89","nodeType":"YulLiteral","src":"1467:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1454:2:89","nodeType":"YulIdentifier","src":"1454:2:89"},"nativeSrc":"1454:32:89","nodeType":"YulFunctionCall","src":"1454:32:89"},"nativeSrc":"1451:52:89","nodeType":"YulIf","src":"1451:52:89"},{"nativeSrc":"1512:86:89","nodeType":"YulVariableDeclaration","src":"1512:86:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1568:9:89","nodeType":"YulIdentifier","src":"1568:9:89"},{"name":"offset_1","nativeSrc":"1579:8:89","nodeType":"YulIdentifier","src":"1579:8:89"}],"functionName":{"name":"add","nativeSrc":"1564:3:89","nodeType":"YulIdentifier","src":"1564:3:89"},"nativeSrc":"1564:24:89","nodeType":"YulFunctionCall","src":"1564:24:89"},{"name":"dataEnd","nativeSrc":"1590:7:89","nodeType":"YulIdentifier","src":"1590:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1538:25:89","nodeType":"YulIdentifier","src":"1538:25:89"},"nativeSrc":"1538:60:89","nodeType":"YulFunctionCall","src":"1538:60:89"},"variables":[{"name":"value2_1","nativeSrc":"1516:8:89","nodeType":"YulTypedName","src":"1516:8:89","type":""},{"name":"value3_1","nativeSrc":"1526:8:89","nodeType":"YulTypedName","src":"1526:8:89","type":""}]},{"nativeSrc":"1607:18:89","nodeType":"YulAssignment","src":"1607:18:89","value":{"name":"value2_1","nativeSrc":"1617:8:89","nodeType":"YulIdentifier","src":"1617:8:89"},"variableNames":[{"name":"value2","nativeSrc":"1607:6:89","nodeType":"YulIdentifier","src":"1607:6:89"}]},{"nativeSrc":"1634:18:89","nodeType":"YulAssignment","src":"1634:18:89","value":{"name":"value3_1","nativeSrc":"1644:8:89","nodeType":"YulIdentifier","src":"1644:8:89"},"variableNames":[{"name":"value3","nativeSrc":"1634:6:89","nodeType":"YulIdentifier","src":"1634:6:89"}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"946:712:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:89","nodeType":"YulTypedName","src":"1013:9:89","type":""},{"name":"dataEnd","nativeSrc":"1024:7:89","nodeType":"YulTypedName","src":"1024:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1036:6:89","nodeType":"YulTypedName","src":"1036:6:89","type":""},{"name":"value1","nativeSrc":"1044:6:89","nodeType":"YulTypedName","src":"1044:6:89","type":""},{"name":"value2","nativeSrc":"1052:6:89","nodeType":"YulTypedName","src":"1052:6:89","type":""},{"name":"value3","nativeSrc":"1060:6:89","nodeType":"YulTypedName","src":"1060:6:89","type":""}],"src":"946:712:89"},{"body":{"nativeSrc":"1712:124:89","nodeType":"YulBlock","src":"1712:124:89","statements":[{"nativeSrc":"1722:29:89","nodeType":"YulAssignment","src":"1722:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"1744:6:89","nodeType":"YulIdentifier","src":"1744:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"1731:12:89","nodeType":"YulIdentifier","src":"1731:12:89"},"nativeSrc":"1731:20:89","nodeType":"YulFunctionCall","src":"1731:20:89"},"variableNames":[{"name":"value","nativeSrc":"1722:5:89","nodeType":"YulIdentifier","src":"1722:5:89"}]},{"body":{"nativeSrc":"1814:16:89","nodeType":"YulBlock","src":"1814:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1823:1:89","nodeType":"YulLiteral","src":"1823:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1826:1:89","nodeType":"YulLiteral","src":"1826:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1816:6:89","nodeType":"YulIdentifier","src":"1816:6:89"},"nativeSrc":"1816:12:89","nodeType":"YulFunctionCall","src":"1816:12:89"},"nativeSrc":"1816:12:89","nodeType":"YulExpressionStatement","src":"1816:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1773:5:89","nodeType":"YulIdentifier","src":"1773:5:89"},{"arguments":[{"name":"value","nativeSrc":"1784:5:89","nodeType":"YulIdentifier","src":"1784:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1799:3:89","nodeType":"YulLiteral","src":"1799:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1804:1:89","nodeType":"YulLiteral","src":"1804:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1795:3:89","nodeType":"YulIdentifier","src":"1795:3:89"},"nativeSrc":"1795:11:89","nodeType":"YulFunctionCall","src":"1795:11:89"},{"kind":"number","nativeSrc":"1808:1:89","nodeType":"YulLiteral","src":"1808:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1791:3:89","nodeType":"YulIdentifier","src":"1791:3:89"},"nativeSrc":"1791:19:89","nodeType":"YulFunctionCall","src":"1791:19:89"}],"functionName":{"name":"and","nativeSrc":"1780:3:89","nodeType":"YulIdentifier","src":"1780:3:89"},"nativeSrc":"1780:31:89","nodeType":"YulFunctionCall","src":"1780:31:89"}],"functionName":{"name":"eq","nativeSrc":"1770:2:89","nodeType":"YulIdentifier","src":"1770:2:89"},"nativeSrc":"1770:42:89","nodeType":"YulFunctionCall","src":"1770:42:89"}],"functionName":{"name":"iszero","nativeSrc":"1763:6:89","nodeType":"YulIdentifier","src":"1763:6:89"},"nativeSrc":"1763:50:89","nodeType":"YulFunctionCall","src":"1763:50:89"},"nativeSrc":"1760:70:89","nodeType":"YulIf","src":"1760:70:89"}]},"name":"abi_decode_address","nativeSrc":"1663:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1691:6:89","nodeType":"YulTypedName","src":"1691:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1702:5:89","nodeType":"YulTypedName","src":"1702:5:89","type":""}],"src":"1663:173:89"},{"body":{"nativeSrc":"1981:532:89","nodeType":"YulBlock","src":"1981:532:89","statements":[{"body":{"nativeSrc":"2028:16:89","nodeType":"YulBlock","src":"2028:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2037:1:89","nodeType":"YulLiteral","src":"2037:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2040:1:89","nodeType":"YulLiteral","src":"2040:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2030:6:89","nodeType":"YulIdentifier","src":"2030:6:89"},"nativeSrc":"2030:12:89","nodeType":"YulFunctionCall","src":"2030:12:89"},"nativeSrc":"2030:12:89","nodeType":"YulExpressionStatement","src":"2030:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2002:7:89","nodeType":"YulIdentifier","src":"2002:7:89"},{"name":"headStart","nativeSrc":"2011:9:89","nodeType":"YulIdentifier","src":"2011:9:89"}],"functionName":{"name":"sub","nativeSrc":"1998:3:89","nodeType":"YulIdentifier","src":"1998:3:89"},"nativeSrc":"1998:23:89","nodeType":"YulFunctionCall","src":"1998:23:89"},{"kind":"number","nativeSrc":"2023:3:89","nodeType":"YulLiteral","src":"2023:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1994:3:89","nodeType":"YulIdentifier","src":"1994:3:89"},"nativeSrc":"1994:33:89","nodeType":"YulFunctionCall","src":"1994:33:89"},"nativeSrc":"1991:53:89","nodeType":"YulIf","src":"1991:53:89"},{"nativeSrc":"2053:39:89","nodeType":"YulAssignment","src":"2053:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2082:9:89","nodeType":"YulIdentifier","src":"2082:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2063:18:89","nodeType":"YulIdentifier","src":"2063:18:89"},"nativeSrc":"2063:29:89","nodeType":"YulFunctionCall","src":"2063:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2053:6:89","nodeType":"YulIdentifier","src":"2053:6:89"}]},{"nativeSrc":"2101:48:89","nodeType":"YulAssignment","src":"2101:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2134:9:89","nodeType":"YulIdentifier","src":"2134:9:89"},{"kind":"number","nativeSrc":"2145:2:89","nodeType":"YulLiteral","src":"2145:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2130:3:89","nodeType":"YulIdentifier","src":"2130:3:89"},"nativeSrc":"2130:18:89","nodeType":"YulFunctionCall","src":"2130:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2111:18:89","nodeType":"YulIdentifier","src":"2111:18:89"},"nativeSrc":"2111:38:89","nodeType":"YulFunctionCall","src":"2111:38:89"},"variableNames":[{"name":"value1","nativeSrc":"2101:6:89","nodeType":"YulIdentifier","src":"2101:6:89"}]},{"nativeSrc":"2158:14:89","nodeType":"YulVariableDeclaration","src":"2158:14:89","value":{"kind":"number","nativeSrc":"2171:1:89","nodeType":"YulLiteral","src":"2171:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2162:5:89","nodeType":"YulTypedName","src":"2162:5:89","type":""}]},{"nativeSrc":"2181:41:89","nodeType":"YulAssignment","src":"2181:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2207:9:89","nodeType":"YulIdentifier","src":"2207:9:89"},{"kind":"number","nativeSrc":"2218:2:89","nodeType":"YulLiteral","src":"2218:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2203:3:89","nodeType":"YulIdentifier","src":"2203:3:89"},"nativeSrc":"2203:18:89","nodeType":"YulFunctionCall","src":"2203:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"2190:12:89","nodeType":"YulIdentifier","src":"2190:12:89"},"nativeSrc":"2190:32:89","nodeType":"YulFunctionCall","src":"2190:32:89"},"variableNames":[{"name":"value","nativeSrc":"2181:5:89","nodeType":"YulIdentifier","src":"2181:5:89"}]},{"nativeSrc":"2231:15:89","nodeType":"YulAssignment","src":"2231:15:89","value":{"name":"value","nativeSrc":"2241:5:89","nodeType":"YulIdentifier","src":"2241:5:89"},"variableNames":[{"name":"value2","nativeSrc":"2231:6:89","nodeType":"YulIdentifier","src":"2231:6:89"}]},{"nativeSrc":"2255:46:89","nodeType":"YulVariableDeclaration","src":"2255:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2286:9:89","nodeType":"YulIdentifier","src":"2286:9:89"},{"kind":"number","nativeSrc":"2297:2:89","nodeType":"YulLiteral","src":"2297:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2282:3:89","nodeType":"YulIdentifier","src":"2282:3:89"},"nativeSrc":"2282:18:89","nodeType":"YulFunctionCall","src":"2282:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"2269:12:89","nodeType":"YulIdentifier","src":"2269:12:89"},"nativeSrc":"2269:32:89","nodeType":"YulFunctionCall","src":"2269:32:89"},"variables":[{"name":"offset","nativeSrc":"2259:6:89","nodeType":"YulTypedName","src":"2259:6:89","type":""}]},{"body":{"nativeSrc":"2344:16:89","nodeType":"YulBlock","src":"2344:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2353:1:89","nodeType":"YulLiteral","src":"2353:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2356:1:89","nodeType":"YulLiteral","src":"2356:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2346:6:89","nodeType":"YulIdentifier","src":"2346:6:89"},"nativeSrc":"2346:12:89","nodeType":"YulFunctionCall","src":"2346:12:89"},"nativeSrc":"2346:12:89","nodeType":"YulExpressionStatement","src":"2346:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2316:6:89","nodeType":"YulIdentifier","src":"2316:6:89"},{"kind":"number","nativeSrc":"2324:18:89","nodeType":"YulLiteral","src":"2324:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2313:2:89","nodeType":"YulIdentifier","src":"2313:2:89"},"nativeSrc":"2313:30:89","nodeType":"YulFunctionCall","src":"2313:30:89"},"nativeSrc":"2310:50:89","nodeType":"YulIf","src":"2310:50:89"},{"nativeSrc":"2369:84:89","nodeType":"YulVariableDeclaration","src":"2369:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2425:9:89","nodeType":"YulIdentifier","src":"2425:9:89"},{"name":"offset","nativeSrc":"2436:6:89","nodeType":"YulIdentifier","src":"2436:6:89"}],"functionName":{"name":"add","nativeSrc":"2421:3:89","nodeType":"YulIdentifier","src":"2421:3:89"},"nativeSrc":"2421:22:89","nodeType":"YulFunctionCall","src":"2421:22:89"},{"name":"dataEnd","nativeSrc":"2445:7:89","nodeType":"YulIdentifier","src":"2445:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"2395:25:89","nodeType":"YulIdentifier","src":"2395:25:89"},"nativeSrc":"2395:58:89","nodeType":"YulFunctionCall","src":"2395:58:89"},"variables":[{"name":"value3_1","nativeSrc":"2373:8:89","nodeType":"YulTypedName","src":"2373:8:89","type":""},{"name":"value4_1","nativeSrc":"2383:8:89","nodeType":"YulTypedName","src":"2383:8:89","type":""}]},{"nativeSrc":"2462:18:89","nodeType":"YulAssignment","src":"2462:18:89","value":{"name":"value3_1","nativeSrc":"2472:8:89","nodeType":"YulIdentifier","src":"2472:8:89"},"variableNames":[{"name":"value3","nativeSrc":"2462:6:89","nodeType":"YulIdentifier","src":"2462:6:89"}]},{"nativeSrc":"2489:18:89","nodeType":"YulAssignment","src":"2489:18:89","value":{"name":"value4_1","nativeSrc":"2499:8:89","nodeType":"YulIdentifier","src":"2499:8:89"},"variableNames":[{"name":"value4","nativeSrc":"2489:6:89","nodeType":"YulIdentifier","src":"2489:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr","nativeSrc":"1841:672:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1915:9:89","nodeType":"YulTypedName","src":"1915:9:89","type":""},{"name":"dataEnd","nativeSrc":"1926:7:89","nodeType":"YulTypedName","src":"1926:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1938:6:89","nodeType":"YulTypedName","src":"1938:6:89","type":""},{"name":"value1","nativeSrc":"1946:6:89","nodeType":"YulTypedName","src":"1946:6:89","type":""},{"name":"value2","nativeSrc":"1954:6:89","nodeType":"YulTypedName","src":"1954:6:89","type":""},{"name":"value3","nativeSrc":"1962:6:89","nodeType":"YulTypedName","src":"1962:6:89","type":""},{"name":"value4","nativeSrc":"1970:6:89","nodeType":"YulTypedName","src":"1970:6:89","type":""}],"src":"1841:672:89"},{"body":{"nativeSrc":"2617:103:89","nodeType":"YulBlock","src":"2617:103:89","statements":[{"nativeSrc":"2627:26:89","nodeType":"YulAssignment","src":"2627:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2639:9:89","nodeType":"YulIdentifier","src":"2639:9:89"},{"kind":"number","nativeSrc":"2650:2:89","nodeType":"YulLiteral","src":"2650:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2635:3:89","nodeType":"YulIdentifier","src":"2635:3:89"},"nativeSrc":"2635:18:89","nodeType":"YulFunctionCall","src":"2635:18:89"},"variableNames":[{"name":"tail","nativeSrc":"2627:4:89","nodeType":"YulIdentifier","src":"2627:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2669:9:89","nodeType":"YulIdentifier","src":"2669:9:89"},{"arguments":[{"name":"value0","nativeSrc":"2684:6:89","nodeType":"YulIdentifier","src":"2684:6:89"},{"arguments":[{"kind":"number","nativeSrc":"2696:3:89","nodeType":"YulLiteral","src":"2696:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"2701:10:89","nodeType":"YulLiteral","src":"2701:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"2692:3:89","nodeType":"YulIdentifier","src":"2692:3:89"},"nativeSrc":"2692:20:89","nodeType":"YulFunctionCall","src":"2692:20:89"}],"functionName":{"name":"and","nativeSrc":"2680:3:89","nodeType":"YulIdentifier","src":"2680:3:89"},"nativeSrc":"2680:33:89","nodeType":"YulFunctionCall","src":"2680:33:89"}],"functionName":{"name":"mstore","nativeSrc":"2662:6:89","nodeType":"YulIdentifier","src":"2662:6:89"},"nativeSrc":"2662:52:89","nodeType":"YulFunctionCall","src":"2662:52:89"},"nativeSrc":"2662:52:89","nodeType":"YulExpressionStatement","src":"2662:52:89"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"2518:202:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2586:9:89","nodeType":"YulTypedName","src":"2586:9:89","type":""},{"name":"value0","nativeSrc":"2597:6:89","nodeType":"YulTypedName","src":"2597:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2608:4:89","nodeType":"YulTypedName","src":"2608:4:89","type":""}],"src":"2518:202:89"},{"body":{"nativeSrc":"2867:435:89","nodeType":"YulBlock","src":"2867:435:89","statements":[{"nativeSrc":"2877:51:89","nodeType":"YulVariableDeclaration","src":"2877:51:89","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"2916:11:89","nodeType":"YulIdentifier","src":"2916:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"2903:12:89","nodeType":"YulIdentifier","src":"2903:12:89"},"nativeSrc":"2903:25:89","nodeType":"YulFunctionCall","src":"2903:25:89"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"2881:18:89","nodeType":"YulTypedName","src":"2881:18:89","type":""}]},{"body":{"nativeSrc":"3017:16:89","nodeType":"YulBlock","src":"3017:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3026:1:89","nodeType":"YulLiteral","src":"3026:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3029:1:89","nodeType":"YulLiteral","src":"3029:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3019:6:89","nodeType":"YulIdentifier","src":"3019:6:89"},"nativeSrc":"3019:12:89","nodeType":"YulFunctionCall","src":"3019:12:89"},"nativeSrc":"3019:12:89","nodeType":"YulExpressionStatement","src":"3019:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"2951:18:89","nodeType":"YulIdentifier","src":"2951:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"2979:12:89","nodeType":"YulIdentifier","src":"2979:12:89"},"nativeSrc":"2979:14:89","nodeType":"YulFunctionCall","src":"2979:14:89"},{"name":"base_ref","nativeSrc":"2995:8:89","nodeType":"YulIdentifier","src":"2995:8:89"}],"functionName":{"name":"sub","nativeSrc":"2975:3:89","nodeType":"YulIdentifier","src":"2975:3:89"},"nativeSrc":"2975:29:89","nodeType":"YulFunctionCall","src":"2975:29:89"},{"arguments":[{"kind":"number","nativeSrc":"3010:2:89","nodeType":"YulLiteral","src":"3010:2:89","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"3006:3:89","nodeType":"YulIdentifier","src":"3006:3:89"},"nativeSrc":"3006:7:89","nodeType":"YulFunctionCall","src":"3006:7:89"}],"functionName":{"name":"add","nativeSrc":"2971:3:89","nodeType":"YulIdentifier","src":"2971:3:89"},"nativeSrc":"2971:43:89","nodeType":"YulFunctionCall","src":"2971:43:89"}],"functionName":{"name":"slt","nativeSrc":"2947:3:89","nodeType":"YulIdentifier","src":"2947:3:89"},"nativeSrc":"2947:68:89","nodeType":"YulFunctionCall","src":"2947:68:89"}],"functionName":{"name":"iszero","nativeSrc":"2940:6:89","nodeType":"YulIdentifier","src":"2940:6:89"},"nativeSrc":"2940:76:89","nodeType":"YulFunctionCall","src":"2940:76:89"},"nativeSrc":"2937:96:89","nodeType":"YulIf","src":"2937:96:89"},{"nativeSrc":"3042:47:89","nodeType":"YulVariableDeclaration","src":"3042:47:89","value":{"arguments":[{"name":"base_ref","nativeSrc":"3060:8:89","nodeType":"YulIdentifier","src":"3060:8:89"},{"name":"rel_offset_of_tail","nativeSrc":"3070:18:89","nodeType":"YulIdentifier","src":"3070:18:89"}],"functionName":{"name":"add","nativeSrc":"3056:3:89","nodeType":"YulIdentifier","src":"3056:3:89"},"nativeSrc":"3056:33:89","nodeType":"YulFunctionCall","src":"3056:33:89"},"variables":[{"name":"addr_1","nativeSrc":"3046:6:89","nodeType":"YulTypedName","src":"3046:6:89","type":""}]},{"nativeSrc":"3098:30:89","nodeType":"YulAssignment","src":"3098:30:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"3121:6:89","nodeType":"YulIdentifier","src":"3121:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"3108:12:89","nodeType":"YulIdentifier","src":"3108:12:89"},"nativeSrc":"3108:20:89","nodeType":"YulFunctionCall","src":"3108:20:89"},"variableNames":[{"name":"length","nativeSrc":"3098:6:89","nodeType":"YulIdentifier","src":"3098:6:89"}]},{"body":{"nativeSrc":"3171:16:89","nodeType":"YulBlock","src":"3171:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3180:1:89","nodeType":"YulLiteral","src":"3180:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3183:1:89","nodeType":"YulLiteral","src":"3183:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3173:6:89","nodeType":"YulIdentifier","src":"3173:6:89"},"nativeSrc":"3173:12:89","nodeType":"YulFunctionCall","src":"3173:12:89"},"nativeSrc":"3173:12:89","nodeType":"YulExpressionStatement","src":"3173:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3143:6:89","nodeType":"YulIdentifier","src":"3143:6:89"},{"kind":"number","nativeSrc":"3151:18:89","nodeType":"YulLiteral","src":"3151:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3140:2:89","nodeType":"YulIdentifier","src":"3140:2:89"},"nativeSrc":"3140:30:89","nodeType":"YulFunctionCall","src":"3140:30:89"},"nativeSrc":"3137:50:89","nodeType":"YulIf","src":"3137:50:89"},{"nativeSrc":"3196:25:89","nodeType":"YulAssignment","src":"3196:25:89","value":{"arguments":[{"name":"addr_1","nativeSrc":"3208:6:89","nodeType":"YulIdentifier","src":"3208:6:89"},{"kind":"number","nativeSrc":"3216:4:89","nodeType":"YulLiteral","src":"3216:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3204:3:89","nodeType":"YulIdentifier","src":"3204:3:89"},"nativeSrc":"3204:17:89","nodeType":"YulFunctionCall","src":"3204:17:89"},"variableNames":[{"name":"addr","nativeSrc":"3196:4:89","nodeType":"YulIdentifier","src":"3196:4:89"}]},{"body":{"nativeSrc":"3280:16:89","nodeType":"YulBlock","src":"3280:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3289:1:89","nodeType":"YulLiteral","src":"3289:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3292:1:89","nodeType":"YulLiteral","src":"3292:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3282:6:89","nodeType":"YulIdentifier","src":"3282:6:89"},"nativeSrc":"3282:12:89","nodeType":"YulFunctionCall","src":"3282:12:89"},"nativeSrc":"3282:12:89","nodeType":"YulExpressionStatement","src":"3282:12:89"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"3237:4:89","nodeType":"YulIdentifier","src":"3237:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"3247:12:89","nodeType":"YulIdentifier","src":"3247:12:89"},"nativeSrc":"3247:14:89","nodeType":"YulFunctionCall","src":"3247:14:89"},{"arguments":[{"kind":"number","nativeSrc":"3267:1:89","nodeType":"YulLiteral","src":"3267:1:89","type":"","value":"6"},{"name":"length","nativeSrc":"3270:6:89","nodeType":"YulIdentifier","src":"3270:6:89"}],"functionName":{"name":"shl","nativeSrc":"3263:3:89","nodeType":"YulIdentifier","src":"3263:3:89"},"nativeSrc":"3263:14:89","nodeType":"YulFunctionCall","src":"3263:14:89"}],"functionName":{"name":"sub","nativeSrc":"3243:3:89","nodeType":"YulIdentifier","src":"3243:3:89"},"nativeSrc":"3243:35:89","nodeType":"YulFunctionCall","src":"3243:35:89"}],"functionName":{"name":"sgt","nativeSrc":"3233:3:89","nodeType":"YulIdentifier","src":"3233:3:89"},"nativeSrc":"3233:46:89","nodeType":"YulFunctionCall","src":"3233:46:89"},"nativeSrc":"3230:66:89","nodeType":"YulIf","src":"3230:66:89"}]},"name":"access_calldata_tail_t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"2725:577:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"2824:8:89","nodeType":"YulTypedName","src":"2824:8:89","type":""},{"name":"ptr_to_tail","nativeSrc":"2834:11:89","nodeType":"YulTypedName","src":"2834:11:89","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"2850:4:89","nodeType":"YulTypedName","src":"2850:4:89","type":""},{"name":"length","nativeSrc":"2856:6:89","nodeType":"YulTypedName","src":"2856:6:89","type":""}],"src":"2725:577:89"},{"body":{"nativeSrc":"3339:95:89","nodeType":"YulBlock","src":"3339:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3356:1:89","nodeType":"YulLiteral","src":"3356:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3363:3:89","nodeType":"YulLiteral","src":"3363:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"3368:10:89","nodeType":"YulLiteral","src":"3368:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3359:3:89","nodeType":"YulIdentifier","src":"3359:3:89"},"nativeSrc":"3359:20:89","nodeType":"YulFunctionCall","src":"3359:20:89"}],"functionName":{"name":"mstore","nativeSrc":"3349:6:89","nodeType":"YulIdentifier","src":"3349:6:89"},"nativeSrc":"3349:31:89","nodeType":"YulFunctionCall","src":"3349:31:89"},"nativeSrc":"3349:31:89","nodeType":"YulExpressionStatement","src":"3349:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3396:1:89","nodeType":"YulLiteral","src":"3396:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"3399:4:89","nodeType":"YulLiteral","src":"3399:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"3389:6:89","nodeType":"YulIdentifier","src":"3389:6:89"},"nativeSrc":"3389:15:89","nodeType":"YulFunctionCall","src":"3389:15:89"},"nativeSrc":"3389:15:89","nodeType":"YulExpressionStatement","src":"3389:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3420:1:89","nodeType":"YulLiteral","src":"3420:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3423:4:89","nodeType":"YulLiteral","src":"3423:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3413:6:89","nodeType":"YulIdentifier","src":"3413:6:89"},"nativeSrc":"3413:15:89","nodeType":"YulFunctionCall","src":"3413:15:89"},"nativeSrc":"3413:15:89","nodeType":"YulExpressionStatement","src":"3413:15:89"}]},"name":"panic_error_0x32","nativeSrc":"3307:127:89","nodeType":"YulFunctionDefinition","src":"3307:127:89"},{"body":{"nativeSrc":"3509:116:89","nodeType":"YulBlock","src":"3509:116:89","statements":[{"body":{"nativeSrc":"3555:16:89","nodeType":"YulBlock","src":"3555:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3564:1:89","nodeType":"YulLiteral","src":"3564:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3567:1:89","nodeType":"YulLiteral","src":"3567:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3557:6:89","nodeType":"YulIdentifier","src":"3557:6:89"},"nativeSrc":"3557:12:89","nodeType":"YulFunctionCall","src":"3557:12:89"},"nativeSrc":"3557:12:89","nodeType":"YulExpressionStatement","src":"3557:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3530:7:89","nodeType":"YulIdentifier","src":"3530:7:89"},{"name":"headStart","nativeSrc":"3539:9:89","nodeType":"YulIdentifier","src":"3539:9:89"}],"functionName":{"name":"sub","nativeSrc":"3526:3:89","nodeType":"YulIdentifier","src":"3526:3:89"},"nativeSrc":"3526:23:89","nodeType":"YulFunctionCall","src":"3526:23:89"},{"kind":"number","nativeSrc":"3551:2:89","nodeType":"YulLiteral","src":"3551:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3522:3:89","nodeType":"YulIdentifier","src":"3522:3:89"},"nativeSrc":"3522:32:89","nodeType":"YulFunctionCall","src":"3522:32:89"},"nativeSrc":"3519:52:89","nodeType":"YulIf","src":"3519:52:89"},{"nativeSrc":"3580:39:89","nodeType":"YulAssignment","src":"3580:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3609:9:89","nodeType":"YulIdentifier","src":"3609:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3590:18:89","nodeType":"YulIdentifier","src":"3590:18:89"},"nativeSrc":"3590:29:89","nodeType":"YulFunctionCall","src":"3590:29:89"},"variableNames":[{"name":"value0","nativeSrc":"3580:6:89","nodeType":"YulIdentifier","src":"3580:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3439:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3475:9:89","nodeType":"YulTypedName","src":"3475:9:89","type":""},{"name":"dataEnd","nativeSrc":"3486:7:89","nodeType":"YulTypedName","src":"3486:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3498:6:89","nodeType":"YulTypedName","src":"3498:6:89","type":""}],"src":"3439:186:89"},{"body":{"nativeSrc":"3787:214:89","nodeType":"YulBlock","src":"3787:214:89","statements":[{"nativeSrc":"3797:26:89","nodeType":"YulAssignment","src":"3797:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3809:9:89","nodeType":"YulIdentifier","src":"3809:9:89"},{"kind":"number","nativeSrc":"3820:2:89","nodeType":"YulLiteral","src":"3820:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3805:3:89","nodeType":"YulIdentifier","src":"3805:3:89"},"nativeSrc":"3805:18:89","nodeType":"YulFunctionCall","src":"3805:18:89"},"variableNames":[{"name":"tail","nativeSrc":"3797:4:89","nodeType":"YulIdentifier","src":"3797:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3839:9:89","nodeType":"YulIdentifier","src":"3839:9:89"},{"arguments":[{"name":"value0","nativeSrc":"3854:6:89","nodeType":"YulIdentifier","src":"3854:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3870:3:89","nodeType":"YulLiteral","src":"3870:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"3875:1:89","nodeType":"YulLiteral","src":"3875:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3866:3:89","nodeType":"YulIdentifier","src":"3866:3:89"},"nativeSrc":"3866:11:89","nodeType":"YulFunctionCall","src":"3866:11:89"},{"kind":"number","nativeSrc":"3879:1:89","nodeType":"YulLiteral","src":"3879:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3862:3:89","nodeType":"YulIdentifier","src":"3862:3:89"},"nativeSrc":"3862:19:89","nodeType":"YulFunctionCall","src":"3862:19:89"}],"functionName":{"name":"and","nativeSrc":"3850:3:89","nodeType":"YulIdentifier","src":"3850:3:89"},"nativeSrc":"3850:32:89","nodeType":"YulFunctionCall","src":"3850:32:89"}],"functionName":{"name":"mstore","nativeSrc":"3832:6:89","nodeType":"YulIdentifier","src":"3832:6:89"},"nativeSrc":"3832:51:89","nodeType":"YulFunctionCall","src":"3832:51:89"},"nativeSrc":"3832:51:89","nodeType":"YulExpressionStatement","src":"3832:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3903:9:89","nodeType":"YulIdentifier","src":"3903:9:89"},{"kind":"number","nativeSrc":"3914:2:89","nodeType":"YulLiteral","src":"3914:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3899:3:89","nodeType":"YulIdentifier","src":"3899:3:89"},"nativeSrc":"3899:18:89","nodeType":"YulFunctionCall","src":"3899:18:89"},{"arguments":[{"name":"value1","nativeSrc":"3923:6:89","nodeType":"YulIdentifier","src":"3923:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3939:3:89","nodeType":"YulLiteral","src":"3939:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"3944:1:89","nodeType":"YulLiteral","src":"3944:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3935:3:89","nodeType":"YulIdentifier","src":"3935:3:89"},"nativeSrc":"3935:11:89","nodeType":"YulFunctionCall","src":"3935:11:89"},{"kind":"number","nativeSrc":"3948:1:89","nodeType":"YulLiteral","src":"3948:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3931:3:89","nodeType":"YulIdentifier","src":"3931:3:89"},"nativeSrc":"3931:19:89","nodeType":"YulFunctionCall","src":"3931:19:89"}],"functionName":{"name":"and","nativeSrc":"3919:3:89","nodeType":"YulIdentifier","src":"3919:3:89"},"nativeSrc":"3919:32:89","nodeType":"YulFunctionCall","src":"3919:32:89"}],"functionName":{"name":"mstore","nativeSrc":"3892:6:89","nodeType":"YulIdentifier","src":"3892:6:89"},"nativeSrc":"3892:60:89","nodeType":"YulFunctionCall","src":"3892:60:89"},"nativeSrc":"3892:60:89","nodeType":"YulExpressionStatement","src":"3892:60:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3972:9:89","nodeType":"YulIdentifier","src":"3972:9:89"},{"kind":"number","nativeSrc":"3983:2:89","nodeType":"YulLiteral","src":"3983:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3968:3:89","nodeType":"YulIdentifier","src":"3968:3:89"},"nativeSrc":"3968:18:89","nodeType":"YulFunctionCall","src":"3968:18:89"},{"name":"value2","nativeSrc":"3988:6:89","nodeType":"YulIdentifier","src":"3988:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3961:6:89","nodeType":"YulIdentifier","src":"3961:6:89"},"nativeSrc":"3961:34:89","nodeType":"YulFunctionCall","src":"3961:34:89"},"nativeSrc":"3961:34:89","nodeType":"YulExpressionStatement","src":"3961:34:89"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"3630:371:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3740:9:89","nodeType":"YulTypedName","src":"3740:9:89","type":""},{"name":"value2","nativeSrc":"3751:6:89","nodeType":"YulTypedName","src":"3751:6:89","type":""},{"name":"value1","nativeSrc":"3759:6:89","nodeType":"YulTypedName","src":"3759:6:89","type":""},{"name":"value0","nativeSrc":"3767:6:89","nodeType":"YulTypedName","src":"3767:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3778:4:89","nodeType":"YulTypedName","src":"3778:4:89","type":""}],"src":"3630:371:89"},{"body":{"nativeSrc":"4084:199:89","nodeType":"YulBlock","src":"4084:199:89","statements":[{"body":{"nativeSrc":"4130:16:89","nodeType":"YulBlock","src":"4130:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4139:1:89","nodeType":"YulLiteral","src":"4139:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4142:1:89","nodeType":"YulLiteral","src":"4142:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4132:6:89","nodeType":"YulIdentifier","src":"4132:6:89"},"nativeSrc":"4132:12:89","nodeType":"YulFunctionCall","src":"4132:12:89"},"nativeSrc":"4132:12:89","nodeType":"YulExpressionStatement","src":"4132:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4105:7:89","nodeType":"YulIdentifier","src":"4105:7:89"},{"name":"headStart","nativeSrc":"4114:9:89","nodeType":"YulIdentifier","src":"4114:9:89"}],"functionName":{"name":"sub","nativeSrc":"4101:3:89","nodeType":"YulIdentifier","src":"4101:3:89"},"nativeSrc":"4101:23:89","nodeType":"YulFunctionCall","src":"4101:23:89"},{"kind":"number","nativeSrc":"4126:2:89","nodeType":"YulLiteral","src":"4126:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4097:3:89","nodeType":"YulIdentifier","src":"4097:3:89"},"nativeSrc":"4097:32:89","nodeType":"YulFunctionCall","src":"4097:32:89"},"nativeSrc":"4094:52:89","nodeType":"YulIf","src":"4094:52:89"},{"nativeSrc":"4155:29:89","nodeType":"YulVariableDeclaration","src":"4155:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4174:9:89","nodeType":"YulIdentifier","src":"4174:9:89"}],"functionName":{"name":"mload","nativeSrc":"4168:5:89","nodeType":"YulIdentifier","src":"4168:5:89"},"nativeSrc":"4168:16:89","nodeType":"YulFunctionCall","src":"4168:16:89"},"variables":[{"name":"value","nativeSrc":"4159:5:89","nodeType":"YulTypedName","src":"4159:5:89","type":""}]},{"body":{"nativeSrc":"4237:16:89","nodeType":"YulBlock","src":"4237:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4246:1:89","nodeType":"YulLiteral","src":"4246:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4249:1:89","nodeType":"YulLiteral","src":"4249:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4239:6:89","nodeType":"YulIdentifier","src":"4239:6:89"},"nativeSrc":"4239:12:89","nodeType":"YulFunctionCall","src":"4239:12:89"},"nativeSrc":"4239:12:89","nodeType":"YulExpressionStatement","src":"4239:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4206:5:89","nodeType":"YulIdentifier","src":"4206:5:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4227:5:89","nodeType":"YulIdentifier","src":"4227:5:89"}],"functionName":{"name":"iszero","nativeSrc":"4220:6:89","nodeType":"YulIdentifier","src":"4220:6:89"},"nativeSrc":"4220:13:89","nodeType":"YulFunctionCall","src":"4220:13:89"}],"functionName":{"name":"iszero","nativeSrc":"4213:6:89","nodeType":"YulIdentifier","src":"4213:6:89"},"nativeSrc":"4213:21:89","nodeType":"YulFunctionCall","src":"4213:21:89"}],"functionName":{"name":"eq","nativeSrc":"4203:2:89","nodeType":"YulIdentifier","src":"4203:2:89"},"nativeSrc":"4203:32:89","nodeType":"YulFunctionCall","src":"4203:32:89"}],"functionName":{"name":"iszero","nativeSrc":"4196:6:89","nodeType":"YulIdentifier","src":"4196:6:89"},"nativeSrc":"4196:40:89","nodeType":"YulFunctionCall","src":"4196:40:89"},"nativeSrc":"4193:60:89","nodeType":"YulIf","src":"4193:60:89"},{"nativeSrc":"4262:15:89","nodeType":"YulAssignment","src":"4262:15:89","value":{"name":"value","nativeSrc":"4272:5:89","nodeType":"YulIdentifier","src":"4272:5:89"},"variableNames":[{"name":"value0","nativeSrc":"4262:6:89","nodeType":"YulIdentifier","src":"4262:6:89"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"4006:277:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4050:9:89","nodeType":"YulTypedName","src":"4050:9:89","type":""},{"name":"dataEnd","nativeSrc":"4061:7:89","nodeType":"YulTypedName","src":"4061:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4073:6:89","nodeType":"YulTypedName","src":"4073:6:89","type":""}],"src":"4006:277:89"},{"body":{"nativeSrc":"4417:145:89","nodeType":"YulBlock","src":"4417:145:89","statements":[{"nativeSrc":"4427:26:89","nodeType":"YulAssignment","src":"4427:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4439:9:89","nodeType":"YulIdentifier","src":"4439:9:89"},{"kind":"number","nativeSrc":"4450:2:89","nodeType":"YulLiteral","src":"4450:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4435:3:89","nodeType":"YulIdentifier","src":"4435:3:89"},"nativeSrc":"4435:18:89","nodeType":"YulFunctionCall","src":"4435:18:89"},"variableNames":[{"name":"tail","nativeSrc":"4427:4:89","nodeType":"YulIdentifier","src":"4427:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4469:9:89","nodeType":"YulIdentifier","src":"4469:9:89"},{"arguments":[{"name":"value0","nativeSrc":"4484:6:89","nodeType":"YulIdentifier","src":"4484:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4500:3:89","nodeType":"YulLiteral","src":"4500:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"4505:1:89","nodeType":"YulLiteral","src":"4505:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4496:3:89","nodeType":"YulIdentifier","src":"4496:3:89"},"nativeSrc":"4496:11:89","nodeType":"YulFunctionCall","src":"4496:11:89"},{"kind":"number","nativeSrc":"4509:1:89","nodeType":"YulLiteral","src":"4509:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4492:3:89","nodeType":"YulIdentifier","src":"4492:3:89"},"nativeSrc":"4492:19:89","nodeType":"YulFunctionCall","src":"4492:19:89"}],"functionName":{"name":"and","nativeSrc":"4480:3:89","nodeType":"YulIdentifier","src":"4480:3:89"},"nativeSrc":"4480:32:89","nodeType":"YulFunctionCall","src":"4480:32:89"}],"functionName":{"name":"mstore","nativeSrc":"4462:6:89","nodeType":"YulIdentifier","src":"4462:6:89"},"nativeSrc":"4462:51:89","nodeType":"YulFunctionCall","src":"4462:51:89"},"nativeSrc":"4462:51:89","nodeType":"YulExpressionStatement","src":"4462:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4533:9:89","nodeType":"YulIdentifier","src":"4533:9:89"},{"kind":"number","nativeSrc":"4544:2:89","nodeType":"YulLiteral","src":"4544:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4529:3:89","nodeType":"YulIdentifier","src":"4529:3:89"},"nativeSrc":"4529:18:89","nodeType":"YulFunctionCall","src":"4529:18:89"},{"name":"value1","nativeSrc":"4549:6:89","nodeType":"YulIdentifier","src":"4549:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4522:6:89","nodeType":"YulIdentifier","src":"4522:6:89"},"nativeSrc":"4522:34:89","nodeType":"YulFunctionCall","src":"4522:34:89"},"nativeSrc":"4522:34:89","nodeType":"YulExpressionStatement","src":"4522:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"4288:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4378:9:89","nodeType":"YulTypedName","src":"4378:9:89","type":""},{"name":"value1","nativeSrc":"4389:6:89","nodeType":"YulTypedName","src":"4389:6:89","type":""},{"name":"value0","nativeSrc":"4397:6:89","nodeType":"YulTypedName","src":"4397:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4408:4:89","nodeType":"YulTypedName","src":"4408:4:89","type":""}],"src":"4288:274:89"},{"body":{"nativeSrc":"4696:119:89","nodeType":"YulBlock","src":"4696:119:89","statements":[{"nativeSrc":"4706:26:89","nodeType":"YulAssignment","src":"4706:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4718:9:89","nodeType":"YulIdentifier","src":"4718:9:89"},{"kind":"number","nativeSrc":"4729:2:89","nodeType":"YulLiteral","src":"4729:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4714:3:89","nodeType":"YulIdentifier","src":"4714:3:89"},"nativeSrc":"4714:18:89","nodeType":"YulFunctionCall","src":"4714:18:89"},"variableNames":[{"name":"tail","nativeSrc":"4706:4:89","nodeType":"YulIdentifier","src":"4706:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4748:9:89","nodeType":"YulIdentifier","src":"4748:9:89"},{"name":"value0","nativeSrc":"4759:6:89","nodeType":"YulIdentifier","src":"4759:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4741:6:89","nodeType":"YulIdentifier","src":"4741:6:89"},"nativeSrc":"4741:25:89","nodeType":"YulFunctionCall","src":"4741:25:89"},"nativeSrc":"4741:25:89","nodeType":"YulExpressionStatement","src":"4741:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4786:9:89","nodeType":"YulIdentifier","src":"4786:9:89"},{"kind":"number","nativeSrc":"4797:2:89","nodeType":"YulLiteral","src":"4797:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4782:3:89","nodeType":"YulIdentifier","src":"4782:3:89"},"nativeSrc":"4782:18:89","nodeType":"YulFunctionCall","src":"4782:18:89"},{"name":"value1","nativeSrc":"4802:6:89","nodeType":"YulIdentifier","src":"4802:6:89"}],"functionName":{"name":"mstore","nativeSrc":"4775:6:89","nodeType":"YulIdentifier","src":"4775:6:89"},"nativeSrc":"4775:34:89","nodeType":"YulFunctionCall","src":"4775:34:89"},"nativeSrc":"4775:34:89","nodeType":"YulExpressionStatement","src":"4775:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"4567:248:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4657:9:89","nodeType":"YulTypedName","src":"4657:9:89","type":""},{"name":"value1","nativeSrc":"4668:6:89","nodeType":"YulTypedName","src":"4668:6:89","type":""},{"name":"value0","nativeSrc":"4676:6:89","nodeType":"YulTypedName","src":"4676:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4687:4:89","nodeType":"YulTypedName","src":"4687:4:89","type":""}],"src":"4567:248:89"},{"body":{"nativeSrc":"4868:174:89","nodeType":"YulBlock","src":"4868:174:89","statements":[{"nativeSrc":"4878:16:89","nodeType":"YulAssignment","src":"4878:16:89","value":{"arguments":[{"name":"x","nativeSrc":"4889:1:89","nodeType":"YulIdentifier","src":"4889:1:89"},{"name":"y","nativeSrc":"4892:1:89","nodeType":"YulIdentifier","src":"4892:1:89"}],"functionName":{"name":"add","nativeSrc":"4885:3:89","nodeType":"YulIdentifier","src":"4885:3:89"},"nativeSrc":"4885:9:89","nodeType":"YulFunctionCall","src":"4885:9:89"},"variableNames":[{"name":"sum","nativeSrc":"4878:3:89","nodeType":"YulIdentifier","src":"4878:3:89"}]},{"body":{"nativeSrc":"4925:111:89","nodeType":"YulBlock","src":"4925:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4946:1:89","nodeType":"YulLiteral","src":"4946:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"4953:3:89","nodeType":"YulLiteral","src":"4953:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"4958:10:89","nodeType":"YulLiteral","src":"4958:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"4949:3:89","nodeType":"YulIdentifier","src":"4949:3:89"},"nativeSrc":"4949:20:89","nodeType":"YulFunctionCall","src":"4949:20:89"}],"functionName":{"name":"mstore","nativeSrc":"4939:6:89","nodeType":"YulIdentifier","src":"4939:6:89"},"nativeSrc":"4939:31:89","nodeType":"YulFunctionCall","src":"4939:31:89"},"nativeSrc":"4939:31:89","nodeType":"YulExpressionStatement","src":"4939:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4990:1:89","nodeType":"YulLiteral","src":"4990:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"4993:4:89","nodeType":"YulLiteral","src":"4993:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4983:6:89","nodeType":"YulIdentifier","src":"4983:6:89"},"nativeSrc":"4983:15:89","nodeType":"YulFunctionCall","src":"4983:15:89"},"nativeSrc":"4983:15:89","nodeType":"YulExpressionStatement","src":"4983:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5018:1:89","nodeType":"YulLiteral","src":"5018:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5021:4:89","nodeType":"YulLiteral","src":"5021:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5011:6:89","nodeType":"YulIdentifier","src":"5011:6:89"},"nativeSrc":"5011:15:89","nodeType":"YulFunctionCall","src":"5011:15:89"},"nativeSrc":"5011:15:89","nodeType":"YulExpressionStatement","src":"5011:15:89"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"4909:1:89","nodeType":"YulIdentifier","src":"4909:1:89"},{"name":"sum","nativeSrc":"4912:3:89","nodeType":"YulIdentifier","src":"4912:3:89"}],"functionName":{"name":"gt","nativeSrc":"4906:2:89","nodeType":"YulIdentifier","src":"4906:2:89"},"nativeSrc":"4906:10:89","nodeType":"YulFunctionCall","src":"4906:10:89"},"nativeSrc":"4903:133:89","nodeType":"YulIf","src":"4903:133:89"}]},"name":"checked_add_t_uint256","nativeSrc":"4820:222:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4851:1:89","nodeType":"YulTypedName","src":"4851:1:89","type":""},{"name":"y","nativeSrc":"4854:1:89","nodeType":"YulTypedName","src":"4854:1:89","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"4860:3:89","nodeType":"YulTypedName","src":"4860:3:89","type":""}],"src":"4820:222:89"},{"body":{"nativeSrc":"5079:95:89","nodeType":"YulBlock","src":"5079:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5096:1:89","nodeType":"YulLiteral","src":"5096:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5103:3:89","nodeType":"YulLiteral","src":"5103:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"5108:10:89","nodeType":"YulLiteral","src":"5108:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5099:3:89","nodeType":"YulIdentifier","src":"5099:3:89"},"nativeSrc":"5099:20:89","nodeType":"YulFunctionCall","src":"5099:20:89"}],"functionName":{"name":"mstore","nativeSrc":"5089:6:89","nodeType":"YulIdentifier","src":"5089:6:89"},"nativeSrc":"5089:31:89","nodeType":"YulFunctionCall","src":"5089:31:89"},"nativeSrc":"5089:31:89","nodeType":"YulExpressionStatement","src":"5089:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5136:1:89","nodeType":"YulLiteral","src":"5136:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"5139:4:89","nodeType":"YulLiteral","src":"5139:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"5129:6:89","nodeType":"YulIdentifier","src":"5129:6:89"},"nativeSrc":"5129:15:89","nodeType":"YulFunctionCall","src":"5129:15:89"},"nativeSrc":"5129:15:89","nodeType":"YulExpressionStatement","src":"5129:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5160:1:89","nodeType":"YulLiteral","src":"5160:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5163:4:89","nodeType":"YulLiteral","src":"5163:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5153:6:89","nodeType":"YulIdentifier","src":"5153:6:89"},"nativeSrc":"5153:15:89","nodeType":"YulFunctionCall","src":"5153:15:89"},"nativeSrc":"5153:15:89","nodeType":"YulExpressionStatement","src":"5153:15:89"}]},"name":"panic_error_0x41","nativeSrc":"5047:127:89","nodeType":"YulFunctionDefinition","src":"5047:127:89"},{"body":{"nativeSrc":"5225:211:89","nodeType":"YulBlock","src":"5225:211:89","statements":[{"nativeSrc":"5235:21:89","nodeType":"YulAssignment","src":"5235:21:89","value":{"arguments":[{"kind":"number","nativeSrc":"5251:4:89","nodeType":"YulLiteral","src":"5251:4:89","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"5245:5:89","nodeType":"YulIdentifier","src":"5245:5:89"},"nativeSrc":"5245:11:89","nodeType":"YulFunctionCall","src":"5245:11:89"},"variableNames":[{"name":"memPtr","nativeSrc":"5235:6:89","nodeType":"YulIdentifier","src":"5235:6:89"}]},{"nativeSrc":"5265:35:89","nodeType":"YulVariableDeclaration","src":"5265:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"5287:6:89","nodeType":"YulIdentifier","src":"5287:6:89"},{"kind":"number","nativeSrc":"5295:4:89","nodeType":"YulLiteral","src":"5295:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5283:3:89","nodeType":"YulIdentifier","src":"5283:3:89"},"nativeSrc":"5283:17:89","nodeType":"YulFunctionCall","src":"5283:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"5269:10:89","nodeType":"YulTypedName","src":"5269:10:89","type":""}]},{"body":{"nativeSrc":"5375:22:89","nodeType":"YulBlock","src":"5375:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5377:16:89","nodeType":"YulIdentifier","src":"5377:16:89"},"nativeSrc":"5377:18:89","nodeType":"YulFunctionCall","src":"5377:18:89"},"nativeSrc":"5377:18:89","nodeType":"YulExpressionStatement","src":"5377:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5318:10:89","nodeType":"YulIdentifier","src":"5318:10:89"},{"kind":"number","nativeSrc":"5330:18:89","nodeType":"YulLiteral","src":"5330:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5315:2:89","nodeType":"YulIdentifier","src":"5315:2:89"},"nativeSrc":"5315:34:89","nodeType":"YulFunctionCall","src":"5315:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5354:10:89","nodeType":"YulIdentifier","src":"5354:10:89"},{"name":"memPtr","nativeSrc":"5366:6:89","nodeType":"YulIdentifier","src":"5366:6:89"}],"functionName":{"name":"lt","nativeSrc":"5351:2:89","nodeType":"YulIdentifier","src":"5351:2:89"},"nativeSrc":"5351:22:89","nodeType":"YulFunctionCall","src":"5351:22:89"}],"functionName":{"name":"or","nativeSrc":"5312:2:89","nodeType":"YulIdentifier","src":"5312:2:89"},"nativeSrc":"5312:62:89","nodeType":"YulFunctionCall","src":"5312:62:89"},"nativeSrc":"5309:88:89","nodeType":"YulIf","src":"5309:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5413:4:89","nodeType":"YulLiteral","src":"5413:4:89","type":"","value":"0x40"},{"name":"newFreePtr","nativeSrc":"5419:10:89","nodeType":"YulIdentifier","src":"5419:10:89"}],"functionName":{"name":"mstore","nativeSrc":"5406:6:89","nodeType":"YulIdentifier","src":"5406:6:89"},"nativeSrc":"5406:24:89","nodeType":"YulFunctionCall","src":"5406:24:89"},"nativeSrc":"5406:24:89","nodeType":"YulExpressionStatement","src":"5406:24:89"}]},"name":"allocate_memory_2469","nativeSrc":"5179:257:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"5214:6:89","nodeType":"YulTypedName","src":"5214:6:89","type":""}],"src":"5179:257:89"},{"body":{"nativeSrc":"5487:207:89","nodeType":"YulBlock","src":"5487:207:89","statements":[{"nativeSrc":"5497:19:89","nodeType":"YulAssignment","src":"5497:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"5513:2:89","nodeType":"YulLiteral","src":"5513:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"5507:5:89","nodeType":"YulIdentifier","src":"5507:5:89"},"nativeSrc":"5507:9:89","nodeType":"YulFunctionCall","src":"5507:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"5497:6:89","nodeType":"YulIdentifier","src":"5497:6:89"}]},{"nativeSrc":"5525:35:89","nodeType":"YulVariableDeclaration","src":"5525:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"5547:6:89","nodeType":"YulIdentifier","src":"5547:6:89"},{"kind":"number","nativeSrc":"5555:4:89","nodeType":"YulLiteral","src":"5555:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5543:3:89","nodeType":"YulIdentifier","src":"5543:3:89"},"nativeSrc":"5543:17:89","nodeType":"YulFunctionCall","src":"5543:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"5529:10:89","nodeType":"YulTypedName","src":"5529:10:89","type":""}]},{"body":{"nativeSrc":"5635:22:89","nodeType":"YulBlock","src":"5635:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5637:16:89","nodeType":"YulIdentifier","src":"5637:16:89"},"nativeSrc":"5637:18:89","nodeType":"YulFunctionCall","src":"5637:18:89"},"nativeSrc":"5637:18:89","nodeType":"YulExpressionStatement","src":"5637:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5578:10:89","nodeType":"YulIdentifier","src":"5578:10:89"},{"kind":"number","nativeSrc":"5590:18:89","nodeType":"YulLiteral","src":"5590:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5575:2:89","nodeType":"YulIdentifier","src":"5575:2:89"},"nativeSrc":"5575:34:89","nodeType":"YulFunctionCall","src":"5575:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5614:10:89","nodeType":"YulIdentifier","src":"5614:10:89"},{"name":"memPtr","nativeSrc":"5626:6:89","nodeType":"YulIdentifier","src":"5626:6:89"}],"functionName":{"name":"lt","nativeSrc":"5611:2:89","nodeType":"YulIdentifier","src":"5611:2:89"},"nativeSrc":"5611:22:89","nodeType":"YulFunctionCall","src":"5611:22:89"}],"functionName":{"name":"or","nativeSrc":"5572:2:89","nodeType":"YulIdentifier","src":"5572:2:89"},"nativeSrc":"5572:62:89","nodeType":"YulFunctionCall","src":"5572:62:89"},"nativeSrc":"5569:88:89","nodeType":"YulIf","src":"5569:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5673:2:89","nodeType":"YulLiteral","src":"5673:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5677:10:89","nodeType":"YulIdentifier","src":"5677:10:89"}],"functionName":{"name":"mstore","nativeSrc":"5666:6:89","nodeType":"YulIdentifier","src":"5666:6:89"},"nativeSrc":"5666:22:89","nodeType":"YulFunctionCall","src":"5666:22:89"},"nativeSrc":"5666:22:89","nodeType":"YulExpressionStatement","src":"5666:22:89"}]},"name":"allocate_memory_2472","nativeSrc":"5441:253:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"5476:6:89","nodeType":"YulTypedName","src":"5476:6:89","type":""}],"src":"5441:253:89"},{"body":{"nativeSrc":"5745:209:89","nodeType":"YulBlock","src":"5745:209:89","statements":[{"nativeSrc":"5755:19:89","nodeType":"YulAssignment","src":"5755:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"5771:2:89","nodeType":"YulLiteral","src":"5771:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"5765:5:89","nodeType":"YulIdentifier","src":"5765:5:89"},"nativeSrc":"5765:9:89","nodeType":"YulFunctionCall","src":"5765:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"5755:6:89","nodeType":"YulIdentifier","src":"5755:6:89"}]},{"nativeSrc":"5783:37:89","nodeType":"YulVariableDeclaration","src":"5783:37:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"5805:6:89","nodeType":"YulIdentifier","src":"5805:6:89"},{"kind":"number","nativeSrc":"5813:6:89","nodeType":"YulLiteral","src":"5813:6:89","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"5801:3:89","nodeType":"YulIdentifier","src":"5801:3:89"},"nativeSrc":"5801:19:89","nodeType":"YulFunctionCall","src":"5801:19:89"},"variables":[{"name":"newFreePtr","nativeSrc":"5787:10:89","nodeType":"YulTypedName","src":"5787:10:89","type":""}]},{"body":{"nativeSrc":"5895:22:89","nodeType":"YulBlock","src":"5895:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5897:16:89","nodeType":"YulIdentifier","src":"5897:16:89"},"nativeSrc":"5897:18:89","nodeType":"YulFunctionCall","src":"5897:18:89"},"nativeSrc":"5897:18:89","nodeType":"YulExpressionStatement","src":"5897:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5838:10:89","nodeType":"YulIdentifier","src":"5838:10:89"},{"kind":"number","nativeSrc":"5850:18:89","nodeType":"YulLiteral","src":"5850:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5835:2:89","nodeType":"YulIdentifier","src":"5835:2:89"},"nativeSrc":"5835:34:89","nodeType":"YulFunctionCall","src":"5835:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5874:10:89","nodeType":"YulIdentifier","src":"5874:10:89"},{"name":"memPtr","nativeSrc":"5886:6:89","nodeType":"YulIdentifier","src":"5886:6:89"}],"functionName":{"name":"lt","nativeSrc":"5871:2:89","nodeType":"YulIdentifier","src":"5871:2:89"},"nativeSrc":"5871:22:89","nodeType":"YulFunctionCall","src":"5871:22:89"}],"functionName":{"name":"or","nativeSrc":"5832:2:89","nodeType":"YulIdentifier","src":"5832:2:89"},"nativeSrc":"5832:62:89","nodeType":"YulFunctionCall","src":"5832:62:89"},"nativeSrc":"5829:88:89","nodeType":"YulIf","src":"5829:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5933:2:89","nodeType":"YulLiteral","src":"5933:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5937:10:89","nodeType":"YulIdentifier","src":"5937:10:89"}],"functionName":{"name":"mstore","nativeSrc":"5926:6:89","nodeType":"YulIdentifier","src":"5926:6:89"},"nativeSrc":"5926:22:89","nodeType":"YulFunctionCall","src":"5926:22:89"},"nativeSrc":"5926:22:89","nodeType":"YulExpressionStatement","src":"5926:22:89"}]},"name":"allocate_memory_2474","nativeSrc":"5699:255:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"5734:6:89","nodeType":"YulTypedName","src":"5734:6:89","type":""}],"src":"5699:255:89"},{"body":{"nativeSrc":"6005:207:89","nodeType":"YulBlock","src":"6005:207:89","statements":[{"nativeSrc":"6015:19:89","nodeType":"YulAssignment","src":"6015:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"6031:2:89","nodeType":"YulLiteral","src":"6031:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"6025:5:89","nodeType":"YulIdentifier","src":"6025:5:89"},"nativeSrc":"6025:9:89","nodeType":"YulFunctionCall","src":"6025:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"6015:6:89","nodeType":"YulIdentifier","src":"6015:6:89"}]},{"nativeSrc":"6043:35:89","nodeType":"YulVariableDeclaration","src":"6043:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"6065:6:89","nodeType":"YulIdentifier","src":"6065:6:89"},{"kind":"number","nativeSrc":"6073:4:89","nodeType":"YulLiteral","src":"6073:4:89","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"6061:3:89","nodeType":"YulIdentifier","src":"6061:3:89"},"nativeSrc":"6061:17:89","nodeType":"YulFunctionCall","src":"6061:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"6047:10:89","nodeType":"YulTypedName","src":"6047:10:89","type":""}]},{"body":{"nativeSrc":"6153:22:89","nodeType":"YulBlock","src":"6153:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6155:16:89","nodeType":"YulIdentifier","src":"6155:16:89"},"nativeSrc":"6155:18:89","nodeType":"YulFunctionCall","src":"6155:18:89"},"nativeSrc":"6155:18:89","nodeType":"YulExpressionStatement","src":"6155:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"6096:10:89","nodeType":"YulIdentifier","src":"6096:10:89"},{"kind":"number","nativeSrc":"6108:18:89","nodeType":"YulLiteral","src":"6108:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6093:2:89","nodeType":"YulIdentifier","src":"6093:2:89"},"nativeSrc":"6093:34:89","nodeType":"YulFunctionCall","src":"6093:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"6132:10:89","nodeType":"YulIdentifier","src":"6132:10:89"},{"name":"memPtr","nativeSrc":"6144:6:89","nodeType":"YulIdentifier","src":"6144:6:89"}],"functionName":{"name":"lt","nativeSrc":"6129:2:89","nodeType":"YulIdentifier","src":"6129:2:89"},"nativeSrc":"6129:22:89","nodeType":"YulFunctionCall","src":"6129:22:89"}],"functionName":{"name":"or","nativeSrc":"6090:2:89","nodeType":"YulIdentifier","src":"6090:2:89"},"nativeSrc":"6090:62:89","nodeType":"YulFunctionCall","src":"6090:62:89"},"nativeSrc":"6087:88:89","nodeType":"YulIf","src":"6087:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6191:2:89","nodeType":"YulLiteral","src":"6191:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"6195:10:89","nodeType":"YulIdentifier","src":"6195:10:89"}],"functionName":{"name":"mstore","nativeSrc":"6184:6:89","nodeType":"YulIdentifier","src":"6184:6:89"},"nativeSrc":"6184:22:89","nodeType":"YulFunctionCall","src":"6184:22:89"},"nativeSrc":"6184:22:89","nodeType":"YulExpressionStatement","src":"6184:22:89"}]},"name":"allocate_memory_2476","nativeSrc":"5959:253:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"5994:6:89","nodeType":"YulTypedName","src":"5994:6:89","type":""}],"src":"5959:253:89"},{"body":{"nativeSrc":"6262:230:89","nodeType":"YulBlock","src":"6262:230:89","statements":[{"nativeSrc":"6272:19:89","nodeType":"YulAssignment","src":"6272:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"6288:2:89","nodeType":"YulLiteral","src":"6288:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"6282:5:89","nodeType":"YulIdentifier","src":"6282:5:89"},"nativeSrc":"6282:9:89","nodeType":"YulFunctionCall","src":"6282:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"6272:6:89","nodeType":"YulIdentifier","src":"6272:6:89"}]},{"nativeSrc":"6300:58:89","nodeType":"YulVariableDeclaration","src":"6300:58:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"6322:6:89","nodeType":"YulIdentifier","src":"6322:6:89"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"6338:4:89","nodeType":"YulIdentifier","src":"6338:4:89"},{"kind":"number","nativeSrc":"6344:2:89","nodeType":"YulLiteral","src":"6344:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6334:3:89","nodeType":"YulIdentifier","src":"6334:3:89"},"nativeSrc":"6334:13:89","nodeType":"YulFunctionCall","src":"6334:13:89"},{"arguments":[{"kind":"number","nativeSrc":"6353:2:89","nodeType":"YulLiteral","src":"6353:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"6349:3:89","nodeType":"YulIdentifier","src":"6349:3:89"},"nativeSrc":"6349:7:89","nodeType":"YulFunctionCall","src":"6349:7:89"}],"functionName":{"name":"and","nativeSrc":"6330:3:89","nodeType":"YulIdentifier","src":"6330:3:89"},"nativeSrc":"6330:27:89","nodeType":"YulFunctionCall","src":"6330:27:89"}],"functionName":{"name":"add","nativeSrc":"6318:3:89","nodeType":"YulIdentifier","src":"6318:3:89"},"nativeSrc":"6318:40:89","nodeType":"YulFunctionCall","src":"6318:40:89"},"variables":[{"name":"newFreePtr","nativeSrc":"6304:10:89","nodeType":"YulTypedName","src":"6304:10:89","type":""}]},{"body":{"nativeSrc":"6433:22:89","nodeType":"YulBlock","src":"6433:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6435:16:89","nodeType":"YulIdentifier","src":"6435:16:89"},"nativeSrc":"6435:18:89","nodeType":"YulFunctionCall","src":"6435:18:89"},"nativeSrc":"6435:18:89","nodeType":"YulExpressionStatement","src":"6435:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"6376:10:89","nodeType":"YulIdentifier","src":"6376:10:89"},{"kind":"number","nativeSrc":"6388:18:89","nodeType":"YulLiteral","src":"6388:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6373:2:89","nodeType":"YulIdentifier","src":"6373:2:89"},"nativeSrc":"6373:34:89","nodeType":"YulFunctionCall","src":"6373:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"6412:10:89","nodeType":"YulIdentifier","src":"6412:10:89"},{"name":"memPtr","nativeSrc":"6424:6:89","nodeType":"YulIdentifier","src":"6424:6:89"}],"functionName":{"name":"lt","nativeSrc":"6409:2:89","nodeType":"YulIdentifier","src":"6409:2:89"},"nativeSrc":"6409:22:89","nodeType":"YulFunctionCall","src":"6409:22:89"}],"functionName":{"name":"or","nativeSrc":"6370:2:89","nodeType":"YulIdentifier","src":"6370:2:89"},"nativeSrc":"6370:62:89","nodeType":"YulFunctionCall","src":"6370:62:89"},"nativeSrc":"6367:88:89","nodeType":"YulIf","src":"6367:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6471:2:89","nodeType":"YulLiteral","src":"6471:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"6475:10:89","nodeType":"YulIdentifier","src":"6475:10:89"}],"functionName":{"name":"mstore","nativeSrc":"6464:6:89","nodeType":"YulIdentifier","src":"6464:6:89"},"nativeSrc":"6464:22:89","nodeType":"YulFunctionCall","src":"6464:22:89"},"nativeSrc":"6464:22:89","nodeType":"YulExpressionStatement","src":"6464:22:89"}]},"name":"allocate_memory","nativeSrc":"6217:275:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"6242:4:89","nodeType":"YulTypedName","src":"6242:4:89","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"6251:6:89","nodeType":"YulTypedName","src":"6251:6:89","type":""}],"src":"6217:275:89"},{"body":{"nativeSrc":"6545:123:89","nodeType":"YulBlock","src":"6545:123:89","statements":[{"nativeSrc":"6555:29:89","nodeType":"YulAssignment","src":"6555:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"6577:6:89","nodeType":"YulIdentifier","src":"6577:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"6564:12:89","nodeType":"YulIdentifier","src":"6564:12:89"},"nativeSrc":"6564:20:89","nodeType":"YulFunctionCall","src":"6564:20:89"},"variableNames":[{"name":"value","nativeSrc":"6555:5:89","nodeType":"YulIdentifier","src":"6555:5:89"}]},{"body":{"nativeSrc":"6646:16:89","nodeType":"YulBlock","src":"6646:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6655:1:89","nodeType":"YulLiteral","src":"6655:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6658:1:89","nodeType":"YulLiteral","src":"6658:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6648:6:89","nodeType":"YulIdentifier","src":"6648:6:89"},"nativeSrc":"6648:12:89","nodeType":"YulFunctionCall","src":"6648:12:89"},"nativeSrc":"6648:12:89","nodeType":"YulExpressionStatement","src":"6648:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6606:5:89","nodeType":"YulIdentifier","src":"6606:5:89"},{"arguments":[{"name":"value","nativeSrc":"6617:5:89","nodeType":"YulIdentifier","src":"6617:5:89"},{"kind":"number","nativeSrc":"6624:18:89","nodeType":"YulLiteral","src":"6624:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6613:3:89","nodeType":"YulIdentifier","src":"6613:3:89"},"nativeSrc":"6613:30:89","nodeType":"YulFunctionCall","src":"6613:30:89"}],"functionName":{"name":"eq","nativeSrc":"6603:2:89","nodeType":"YulIdentifier","src":"6603:2:89"},"nativeSrc":"6603:41:89","nodeType":"YulFunctionCall","src":"6603:41:89"}],"functionName":{"name":"iszero","nativeSrc":"6596:6:89","nodeType":"YulIdentifier","src":"6596:6:89"},"nativeSrc":"6596:49:89","nodeType":"YulFunctionCall","src":"6596:49:89"},"nativeSrc":"6593:69:89","nodeType":"YulIf","src":"6593:69:89"}]},"name":"abi_decode_uint64","nativeSrc":"6497:171:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6524:6:89","nodeType":"YulTypedName","src":"6524:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6535:5:89","nodeType":"YulTypedName","src":"6535:5:89","type":""}],"src":"6497:171:89"},{"body":{"nativeSrc":"6726:583:89","nodeType":"YulBlock","src":"6726:583:89","statements":[{"body":{"nativeSrc":"6775:16:89","nodeType":"YulBlock","src":"6775:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6784:1:89","nodeType":"YulLiteral","src":"6784:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6787:1:89","nodeType":"YulLiteral","src":"6787:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6777:6:89","nodeType":"YulIdentifier","src":"6777:6:89"},"nativeSrc":"6777:12:89","nodeType":"YulFunctionCall","src":"6777:12:89"},"nativeSrc":"6777:12:89","nodeType":"YulExpressionStatement","src":"6777:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6754:6:89","nodeType":"YulIdentifier","src":"6754:6:89"},{"kind":"number","nativeSrc":"6762:4:89","nodeType":"YulLiteral","src":"6762:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6750:3:89","nodeType":"YulIdentifier","src":"6750:3:89"},"nativeSrc":"6750:17:89","nodeType":"YulFunctionCall","src":"6750:17:89"},{"name":"end","nativeSrc":"6769:3:89","nodeType":"YulIdentifier","src":"6769:3:89"}],"functionName":{"name":"slt","nativeSrc":"6746:3:89","nodeType":"YulIdentifier","src":"6746:3:89"},"nativeSrc":"6746:27:89","nodeType":"YulFunctionCall","src":"6746:27:89"}],"functionName":{"name":"iszero","nativeSrc":"6739:6:89","nodeType":"YulIdentifier","src":"6739:6:89"},"nativeSrc":"6739:35:89","nodeType":"YulFunctionCall","src":"6739:35:89"},"nativeSrc":"6736:55:89","nodeType":"YulIf","src":"6736:55:89"},{"nativeSrc":"6800:34:89","nodeType":"YulVariableDeclaration","src":"6800:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"6827:6:89","nodeType":"YulIdentifier","src":"6827:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"6814:12:89","nodeType":"YulIdentifier","src":"6814:12:89"},"nativeSrc":"6814:20:89","nodeType":"YulFunctionCall","src":"6814:20:89"},"variables":[{"name":"length","nativeSrc":"6804:6:89","nodeType":"YulTypedName","src":"6804:6:89","type":""}]},{"nativeSrc":"6843:28:89","nodeType":"YulVariableDeclaration","src":"6843:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"6858:6:89","nodeType":"YulIdentifier","src":"6858:6:89"},{"kind":"number","nativeSrc":"6866:4:89","nodeType":"YulLiteral","src":"6866:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6854:3:89","nodeType":"YulIdentifier","src":"6854:3:89"},"nativeSrc":"6854:17:89","nodeType":"YulFunctionCall","src":"6854:17:89"},"variables":[{"name":"src","nativeSrc":"6847:3:89","nodeType":"YulTypedName","src":"6847:3:89","type":""}]},{"nativeSrc":"6880:16:89","nodeType":"YulVariableDeclaration","src":"6880:16:89","value":{"kind":"number","nativeSrc":"6895:1:89","nodeType":"YulLiteral","src":"6895:1:89","type":"","value":"0"},"variables":[{"name":"array_1","nativeSrc":"6884:7:89","nodeType":"YulTypedName","src":"6884:7:89","type":""}]},{"nativeSrc":"6905:19:89","nodeType":"YulVariableDeclaration","src":"6905:19:89","value":{"name":"array_1","nativeSrc":"6917:7:89","nodeType":"YulIdentifier","src":"6917:7:89"},"variables":[{"name":"size","nativeSrc":"6909:4:89","nodeType":"YulTypedName","src":"6909:4:89","type":""}]},{"body":{"nativeSrc":"6967:22:89","nodeType":"YulBlock","src":"6967:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6969:16:89","nodeType":"YulIdentifier","src":"6969:16:89"},"nativeSrc":"6969:18:89","nodeType":"YulFunctionCall","src":"6969:18:89"},"nativeSrc":"6969:18:89","nodeType":"YulExpressionStatement","src":"6969:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6939:6:89","nodeType":"YulIdentifier","src":"6939:6:89"},{"kind":"number","nativeSrc":"6947:18:89","nodeType":"YulLiteral","src":"6947:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6936:2:89","nodeType":"YulIdentifier","src":"6936:2:89"},"nativeSrc":"6936:30:89","nodeType":"YulFunctionCall","src":"6936:30:89"},"nativeSrc":"6933:56:89","nodeType":"YulIf","src":"6933:56:89"},{"nativeSrc":"6998:48:89","nodeType":"YulAssignment","src":"6998:48:89","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"7018:6:89","nodeType":"YulIdentifier","src":"7018:6:89"},{"kind":"number","nativeSrc":"7026:2:89","nodeType":"YulLiteral","src":"7026:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7014:3:89","nodeType":"YulIdentifier","src":"7014:3:89"},"nativeSrc":"7014:15:89","nodeType":"YulFunctionCall","src":"7014:15:89"},{"arguments":[{"kind":"number","nativeSrc":"7035:2:89","nodeType":"YulLiteral","src":"7035:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7031:3:89","nodeType":"YulIdentifier","src":"7031:3:89"},"nativeSrc":"7031:7:89","nodeType":"YulFunctionCall","src":"7031:7:89"}],"functionName":{"name":"and","nativeSrc":"7010:3:89","nodeType":"YulIdentifier","src":"7010:3:89"},"nativeSrc":"7010:29:89","nodeType":"YulFunctionCall","src":"7010:29:89"},{"kind":"number","nativeSrc":"7041:4:89","nodeType":"YulLiteral","src":"7041:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7006:3:89","nodeType":"YulIdentifier","src":"7006:3:89"},"nativeSrc":"7006:40:89","nodeType":"YulFunctionCall","src":"7006:40:89"},"variableNames":[{"name":"size","nativeSrc":"6998:4:89","nodeType":"YulIdentifier","src":"6998:4:89"}]},{"nativeSrc":"7055:32:89","nodeType":"YulAssignment","src":"7055:32:89","value":{"arguments":[{"name":"size","nativeSrc":"7082:4:89","nodeType":"YulIdentifier","src":"7082:4:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"7066:15:89","nodeType":"YulIdentifier","src":"7066:15:89"},"nativeSrc":"7066:21:89","nodeType":"YulFunctionCall","src":"7066:21:89"},"variableNames":[{"name":"array_1","nativeSrc":"7055:7:89","nodeType":"YulIdentifier","src":"7055:7:89"}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"7103:7:89","nodeType":"YulIdentifier","src":"7103:7:89"},{"name":"length","nativeSrc":"7112:6:89","nodeType":"YulIdentifier","src":"7112:6:89"}],"functionName":{"name":"mstore","nativeSrc":"7096:6:89","nodeType":"YulIdentifier","src":"7096:6:89"},"nativeSrc":"7096:23:89","nodeType":"YulFunctionCall","src":"7096:23:89"},"nativeSrc":"7096:23:89","nodeType":"YulExpressionStatement","src":"7096:23:89"},{"body":{"nativeSrc":"7157:16:89","nodeType":"YulBlock","src":"7157:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7166:1:89","nodeType":"YulLiteral","src":"7166:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7169:1:89","nodeType":"YulLiteral","src":"7169:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7159:6:89","nodeType":"YulIdentifier","src":"7159:6:89"},"nativeSrc":"7159:12:89","nodeType":"YulFunctionCall","src":"7159:12:89"},"nativeSrc":"7159:12:89","nodeType":"YulExpressionStatement","src":"7159:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7138:3:89","nodeType":"YulIdentifier","src":"7138:3:89"},{"name":"length","nativeSrc":"7143:6:89","nodeType":"YulIdentifier","src":"7143:6:89"}],"functionName":{"name":"add","nativeSrc":"7134:3:89","nodeType":"YulIdentifier","src":"7134:3:89"},"nativeSrc":"7134:16:89","nodeType":"YulFunctionCall","src":"7134:16:89"},{"name":"end","nativeSrc":"7152:3:89","nodeType":"YulIdentifier","src":"7152:3:89"}],"functionName":{"name":"gt","nativeSrc":"7131:2:89","nodeType":"YulIdentifier","src":"7131:2:89"},"nativeSrc":"7131:25:89","nodeType":"YulFunctionCall","src":"7131:25:89"},"nativeSrc":"7128:45:89","nodeType":"YulIf","src":"7128:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"7199:7:89","nodeType":"YulIdentifier","src":"7199:7:89"},{"kind":"number","nativeSrc":"7208:4:89","nodeType":"YulLiteral","src":"7208:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7195:3:89","nodeType":"YulIdentifier","src":"7195:3:89"},"nativeSrc":"7195:18:89","nodeType":"YulFunctionCall","src":"7195:18:89"},{"name":"src","nativeSrc":"7215:3:89","nodeType":"YulIdentifier","src":"7215:3:89"},{"name":"length","nativeSrc":"7220:6:89","nodeType":"YulIdentifier","src":"7220:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"7182:12:89","nodeType":"YulIdentifier","src":"7182:12:89"},"nativeSrc":"7182:45:89","nodeType":"YulFunctionCall","src":"7182:45:89"},"nativeSrc":"7182:45:89","nodeType":"YulExpressionStatement","src":"7182:45:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"7251:7:89","nodeType":"YulIdentifier","src":"7251:7:89"},{"name":"length","nativeSrc":"7260:6:89","nodeType":"YulIdentifier","src":"7260:6:89"}],"functionName":{"name":"add","nativeSrc":"7247:3:89","nodeType":"YulIdentifier","src":"7247:3:89"},"nativeSrc":"7247:20:89","nodeType":"YulFunctionCall","src":"7247:20:89"},{"kind":"number","nativeSrc":"7269:4:89","nodeType":"YulLiteral","src":"7269:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7243:3:89","nodeType":"YulIdentifier","src":"7243:3:89"},"nativeSrc":"7243:31:89","nodeType":"YulFunctionCall","src":"7243:31:89"},{"kind":"number","nativeSrc":"7276:1:89","nodeType":"YulLiteral","src":"7276:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7236:6:89","nodeType":"YulIdentifier","src":"7236:6:89"},"nativeSrc":"7236:42:89","nodeType":"YulFunctionCall","src":"7236:42:89"},"nativeSrc":"7236:42:89","nodeType":"YulExpressionStatement","src":"7236:42:89"},{"nativeSrc":"7287:16:89","nodeType":"YulAssignment","src":"7287:16:89","value":{"name":"array_1","nativeSrc":"7296:7:89","nodeType":"YulIdentifier","src":"7296:7:89"},"variableNames":[{"name":"array","nativeSrc":"7287:5:89","nodeType":"YulIdentifier","src":"7287:5:89"}]}]},"name":"abi_decode_string","nativeSrc":"6673:636:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6700:6:89","nodeType":"YulTypedName","src":"6700:6:89","type":""},{"name":"end","nativeSrc":"6708:3:89","nodeType":"YulTypedName","src":"6708:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6716:5:89","nodeType":"YulTypedName","src":"6716:5:89","type":""}],"src":"6673:636:89"},{"body":{"nativeSrc":"7382:114:89","nodeType":"YulBlock","src":"7382:114:89","statements":[{"body":{"nativeSrc":"7426:22:89","nodeType":"YulBlock","src":"7426:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7428:16:89","nodeType":"YulIdentifier","src":"7428:16:89"},"nativeSrc":"7428:18:89","nodeType":"YulFunctionCall","src":"7428:18:89"},"nativeSrc":"7428:18:89","nodeType":"YulExpressionStatement","src":"7428:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7398:6:89","nodeType":"YulIdentifier","src":"7398:6:89"},{"kind":"number","nativeSrc":"7406:18:89","nodeType":"YulLiteral","src":"7406:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7395:2:89","nodeType":"YulIdentifier","src":"7395:2:89"},"nativeSrc":"7395:30:89","nodeType":"YulFunctionCall","src":"7395:30:89"},"nativeSrc":"7392:56:89","nodeType":"YulIf","src":"7392:56:89"},{"nativeSrc":"7457:33:89","nodeType":"YulAssignment","src":"7457:33:89","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7473:1:89","nodeType":"YulLiteral","src":"7473:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"7476:6:89","nodeType":"YulIdentifier","src":"7476:6:89"}],"functionName":{"name":"shl","nativeSrc":"7469:3:89","nodeType":"YulIdentifier","src":"7469:3:89"},"nativeSrc":"7469:14:89","nodeType":"YulFunctionCall","src":"7469:14:89"},{"kind":"number","nativeSrc":"7485:4:89","nodeType":"YulLiteral","src":"7485:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7465:3:89","nodeType":"YulIdentifier","src":"7465:3:89"},"nativeSrc":"7465:25:89","nodeType":"YulFunctionCall","src":"7465:25:89"},"variableNames":[{"name":"size","nativeSrc":"7457:4:89","nodeType":"YulIdentifier","src":"7457:4:89"}]}]},"name":"array_allocation_size_array_string_dyn","nativeSrc":"7314:182:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"7362:6:89","nodeType":"YulTypedName","src":"7362:6:89","type":""}],"returnVariables":[{"name":"size","nativeSrc":"7373:4:89","nodeType":"YulTypedName","src":"7373:4:89","type":""}],"src":"7314:182:89"},{"body":{"nativeSrc":"7564:763:89","nodeType":"YulBlock","src":"7564:763:89","statements":[{"body":{"nativeSrc":"7613:16:89","nodeType":"YulBlock","src":"7613:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7622:1:89","nodeType":"YulLiteral","src":"7622:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7625:1:89","nodeType":"YulLiteral","src":"7625:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7615:6:89","nodeType":"YulIdentifier","src":"7615:6:89"},"nativeSrc":"7615:12:89","nodeType":"YulFunctionCall","src":"7615:12:89"},"nativeSrc":"7615:12:89","nodeType":"YulExpressionStatement","src":"7615:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7592:6:89","nodeType":"YulIdentifier","src":"7592:6:89"},{"kind":"number","nativeSrc":"7600:4:89","nodeType":"YulLiteral","src":"7600:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7588:3:89","nodeType":"YulIdentifier","src":"7588:3:89"},"nativeSrc":"7588:17:89","nodeType":"YulFunctionCall","src":"7588:17:89"},{"name":"end","nativeSrc":"7607:3:89","nodeType":"YulIdentifier","src":"7607:3:89"}],"functionName":{"name":"slt","nativeSrc":"7584:3:89","nodeType":"YulIdentifier","src":"7584:3:89"},"nativeSrc":"7584:27:89","nodeType":"YulFunctionCall","src":"7584:27:89"}],"functionName":{"name":"iszero","nativeSrc":"7577:6:89","nodeType":"YulIdentifier","src":"7577:6:89"},"nativeSrc":"7577:35:89","nodeType":"YulFunctionCall","src":"7577:35:89"},"nativeSrc":"7574:55:89","nodeType":"YulIf","src":"7574:55:89"},{"nativeSrc":"7638:34:89","nodeType":"YulVariableDeclaration","src":"7638:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"7665:6:89","nodeType":"YulIdentifier","src":"7665:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"7652:12:89","nodeType":"YulIdentifier","src":"7652:12:89"},"nativeSrc":"7652:20:89","nodeType":"YulFunctionCall","src":"7652:20:89"},"variables":[{"name":"length","nativeSrc":"7642:6:89","nodeType":"YulTypedName","src":"7642:6:89","type":""}]},{"nativeSrc":"7681:74:89","nodeType":"YulVariableDeclaration","src":"7681:74:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"7747:6:89","nodeType":"YulIdentifier","src":"7747:6:89"}],"functionName":{"name":"array_allocation_size_array_string_dyn","nativeSrc":"7708:38:89","nodeType":"YulIdentifier","src":"7708:38:89"},"nativeSrc":"7708:46:89","nodeType":"YulFunctionCall","src":"7708:46:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"7692:15:89","nodeType":"YulIdentifier","src":"7692:15:89"},"nativeSrc":"7692:63:89","nodeType":"YulFunctionCall","src":"7692:63:89"},"variables":[{"name":"dst","nativeSrc":"7685:3:89","nodeType":"YulTypedName","src":"7685:3:89","type":""}]},{"nativeSrc":"7764:18:89","nodeType":"YulVariableDeclaration","src":"7764:18:89","value":{"name":"dst","nativeSrc":"7779:3:89","nodeType":"YulIdentifier","src":"7779:3:89"},"variables":[{"name":"array_1","nativeSrc":"7768:7:89","nodeType":"YulTypedName","src":"7768:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"7798:3:89","nodeType":"YulIdentifier","src":"7798:3:89"},{"name":"length","nativeSrc":"7803:6:89","nodeType":"YulIdentifier","src":"7803:6:89"}],"functionName":{"name":"mstore","nativeSrc":"7791:6:89","nodeType":"YulIdentifier","src":"7791:6:89"},"nativeSrc":"7791:19:89","nodeType":"YulFunctionCall","src":"7791:19:89"},"nativeSrc":"7791:19:89","nodeType":"YulExpressionStatement","src":"7791:19:89"},{"nativeSrc":"7819:21:89","nodeType":"YulAssignment","src":"7819:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"7830:3:89","nodeType":"YulIdentifier","src":"7830:3:89"},{"kind":"number","nativeSrc":"7835:4:89","nodeType":"YulLiteral","src":"7835:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7826:3:89","nodeType":"YulIdentifier","src":"7826:3:89"},"nativeSrc":"7826:14:89","nodeType":"YulFunctionCall","src":"7826:14:89"},"variableNames":[{"name":"dst","nativeSrc":"7819:3:89","nodeType":"YulIdentifier","src":"7819:3:89"}]},{"nativeSrc":"7849:52:89","nodeType":"YulVariableDeclaration","src":"7849:52:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7871:6:89","nodeType":"YulIdentifier","src":"7871:6:89"},{"arguments":[{"kind":"number","nativeSrc":"7883:1:89","nodeType":"YulLiteral","src":"7883:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"7886:6:89","nodeType":"YulIdentifier","src":"7886:6:89"}],"functionName":{"name":"shl","nativeSrc":"7879:3:89","nodeType":"YulIdentifier","src":"7879:3:89"},"nativeSrc":"7879:14:89","nodeType":"YulFunctionCall","src":"7879:14:89"}],"functionName":{"name":"add","nativeSrc":"7867:3:89","nodeType":"YulIdentifier","src":"7867:3:89"},"nativeSrc":"7867:27:89","nodeType":"YulFunctionCall","src":"7867:27:89"},{"kind":"number","nativeSrc":"7896:4:89","nodeType":"YulLiteral","src":"7896:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7863:3:89","nodeType":"YulIdentifier","src":"7863:3:89"},"nativeSrc":"7863:38:89","nodeType":"YulFunctionCall","src":"7863:38:89"},"variables":[{"name":"srcEnd","nativeSrc":"7853:6:89","nodeType":"YulTypedName","src":"7853:6:89","type":""}]},{"body":{"nativeSrc":"7929:16:89","nodeType":"YulBlock","src":"7929:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7938:1:89","nodeType":"YulLiteral","src":"7938:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7941:1:89","nodeType":"YulLiteral","src":"7941:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7931:6:89","nodeType":"YulIdentifier","src":"7931:6:89"},"nativeSrc":"7931:12:89","nodeType":"YulFunctionCall","src":"7931:12:89"},"nativeSrc":"7931:12:89","nodeType":"YulExpressionStatement","src":"7931:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"7916:6:89","nodeType":"YulIdentifier","src":"7916:6:89"},{"name":"end","nativeSrc":"7924:3:89","nodeType":"YulIdentifier","src":"7924:3:89"}],"functionName":{"name":"gt","nativeSrc":"7913:2:89","nodeType":"YulIdentifier","src":"7913:2:89"},"nativeSrc":"7913:15:89","nodeType":"YulFunctionCall","src":"7913:15:89"},"nativeSrc":"7910:35:89","nodeType":"YulIf","src":"7910:35:89"},{"nativeSrc":"7954:28:89","nodeType":"YulVariableDeclaration","src":"7954:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"7969:6:89","nodeType":"YulIdentifier","src":"7969:6:89"},{"kind":"number","nativeSrc":"7977:4:89","nodeType":"YulLiteral","src":"7977:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7965:3:89","nodeType":"YulIdentifier","src":"7965:3:89"},"nativeSrc":"7965:17:89","nodeType":"YulFunctionCall","src":"7965:17:89"},"variables":[{"name":"src","nativeSrc":"7958:3:89","nodeType":"YulTypedName","src":"7958:3:89","type":""}]},{"body":{"nativeSrc":"8049:247:89","nodeType":"YulBlock","src":"8049:247:89","statements":[{"nativeSrc":"8063:36:89","nodeType":"YulVariableDeclaration","src":"8063:36:89","value":{"arguments":[{"name":"src","nativeSrc":"8095:3:89","nodeType":"YulIdentifier","src":"8095:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"8082:12:89","nodeType":"YulIdentifier","src":"8082:12:89"},"nativeSrc":"8082:17:89","nodeType":"YulFunctionCall","src":"8082:17:89"},"variables":[{"name":"innerOffset","nativeSrc":"8067:11:89","nodeType":"YulTypedName","src":"8067:11:89","type":""}]},{"body":{"nativeSrc":"8151:16:89","nodeType":"YulBlock","src":"8151:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8160:1:89","nodeType":"YulLiteral","src":"8160:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8163:1:89","nodeType":"YulLiteral","src":"8163:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8153:6:89","nodeType":"YulIdentifier","src":"8153:6:89"},"nativeSrc":"8153:12:89","nodeType":"YulFunctionCall","src":"8153:12:89"},"nativeSrc":"8153:12:89","nodeType":"YulExpressionStatement","src":"8153:12:89"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"8118:11:89","nodeType":"YulIdentifier","src":"8118:11:89"},{"kind":"number","nativeSrc":"8131:18:89","nodeType":"YulLiteral","src":"8131:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8115:2:89","nodeType":"YulIdentifier","src":"8115:2:89"},"nativeSrc":"8115:35:89","nodeType":"YulFunctionCall","src":"8115:35:89"},"nativeSrc":"8112:55:89","nodeType":"YulIf","src":"8112:55:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"8187:3:89","nodeType":"YulIdentifier","src":"8187:3:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8218:6:89","nodeType":"YulIdentifier","src":"8218:6:89"},{"name":"innerOffset","nativeSrc":"8226:11:89","nodeType":"YulIdentifier","src":"8226:11:89"}],"functionName":{"name":"add","nativeSrc":"8214:3:89","nodeType":"YulIdentifier","src":"8214:3:89"},"nativeSrc":"8214:24:89","nodeType":"YulFunctionCall","src":"8214:24:89"},{"kind":"number","nativeSrc":"8240:4:89","nodeType":"YulLiteral","src":"8240:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8210:3:89","nodeType":"YulIdentifier","src":"8210:3:89"},"nativeSrc":"8210:35:89","nodeType":"YulFunctionCall","src":"8210:35:89"},{"name":"end","nativeSrc":"8247:3:89","nodeType":"YulIdentifier","src":"8247:3:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"8192:17:89","nodeType":"YulIdentifier","src":"8192:17:89"},"nativeSrc":"8192:59:89","nodeType":"YulFunctionCall","src":"8192:59:89"}],"functionName":{"name":"mstore","nativeSrc":"8180:6:89","nodeType":"YulIdentifier","src":"8180:6:89"},"nativeSrc":"8180:72:89","nodeType":"YulFunctionCall","src":"8180:72:89"},"nativeSrc":"8180:72:89","nodeType":"YulExpressionStatement","src":"8180:72:89"},{"nativeSrc":"8265:21:89","nodeType":"YulAssignment","src":"8265:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"8276:3:89","nodeType":"YulIdentifier","src":"8276:3:89"},{"kind":"number","nativeSrc":"8281:4:89","nodeType":"YulLiteral","src":"8281:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8272:3:89","nodeType":"YulIdentifier","src":"8272:3:89"},"nativeSrc":"8272:14:89","nodeType":"YulFunctionCall","src":"8272:14:89"},"variableNames":[{"name":"dst","nativeSrc":"8265:3:89","nodeType":"YulIdentifier","src":"8265:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"8002:3:89","nodeType":"YulIdentifier","src":"8002:3:89"},{"name":"srcEnd","nativeSrc":"8007:6:89","nodeType":"YulIdentifier","src":"8007:6:89"}],"functionName":{"name":"lt","nativeSrc":"7999:2:89","nodeType":"YulIdentifier","src":"7999:2:89"},"nativeSrc":"7999:15:89","nodeType":"YulFunctionCall","src":"7999:15:89"},"nativeSrc":"7991:305:89","nodeType":"YulForLoop","post":{"nativeSrc":"8015:25:89","nodeType":"YulBlock","src":"8015:25:89","statements":[{"nativeSrc":"8017:21:89","nodeType":"YulAssignment","src":"8017:21:89","value":{"arguments":[{"name":"src","nativeSrc":"8028:3:89","nodeType":"YulIdentifier","src":"8028:3:89"},{"kind":"number","nativeSrc":"8033:4:89","nodeType":"YulLiteral","src":"8033:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8024:3:89","nodeType":"YulIdentifier","src":"8024:3:89"},"nativeSrc":"8024:14:89","nodeType":"YulFunctionCall","src":"8024:14:89"},"variableNames":[{"name":"src","nativeSrc":"8017:3:89","nodeType":"YulIdentifier","src":"8017:3:89"}]}]},"pre":{"nativeSrc":"7995:3:89","nodeType":"YulBlock","src":"7995:3:89","statements":[]},"src":"7991:305:89"},{"nativeSrc":"8305:16:89","nodeType":"YulAssignment","src":"8305:16:89","value":{"name":"array_1","nativeSrc":"8314:7:89","nodeType":"YulIdentifier","src":"8314:7:89"},"variableNames":[{"name":"array","nativeSrc":"8305:5:89","nodeType":"YulIdentifier","src":"8305:5:89"}]}]},"name":"abi_decode_array_string_dyn","nativeSrc":"7501:826:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7538:6:89","nodeType":"YulTypedName","src":"7538:6:89","type":""},{"name":"end","nativeSrc":"7546:3:89","nodeType":"YulTypedName","src":"7546:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"7554:5:89","nodeType":"YulTypedName","src":"7554:5:89","type":""}],"src":"7501:826:89"},{"body":{"nativeSrc":"8407:875:89","nodeType":"YulBlock","src":"8407:875:89","statements":[{"body":{"nativeSrc":"8456:16:89","nodeType":"YulBlock","src":"8456:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8465:1:89","nodeType":"YulLiteral","src":"8465:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8468:1:89","nodeType":"YulLiteral","src":"8468:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8458:6:89","nodeType":"YulIdentifier","src":"8458:6:89"},"nativeSrc":"8458:12:89","nodeType":"YulFunctionCall","src":"8458:12:89"},"nativeSrc":"8458:12:89","nodeType":"YulExpressionStatement","src":"8458:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8435:6:89","nodeType":"YulIdentifier","src":"8435:6:89"},{"kind":"number","nativeSrc":"8443:4:89","nodeType":"YulLiteral","src":"8443:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"8431:3:89","nodeType":"YulIdentifier","src":"8431:3:89"},"nativeSrc":"8431:17:89","nodeType":"YulFunctionCall","src":"8431:17:89"},{"name":"end","nativeSrc":"8450:3:89","nodeType":"YulIdentifier","src":"8450:3:89"}],"functionName":{"name":"slt","nativeSrc":"8427:3:89","nodeType":"YulIdentifier","src":"8427:3:89"},"nativeSrc":"8427:27:89","nodeType":"YulFunctionCall","src":"8427:27:89"}],"functionName":{"name":"iszero","nativeSrc":"8420:6:89","nodeType":"YulIdentifier","src":"8420:6:89"},"nativeSrc":"8420:35:89","nodeType":"YulFunctionCall","src":"8420:35:89"},"nativeSrc":"8417:55:89","nodeType":"YulIf","src":"8417:55:89"},{"nativeSrc":"8481:34:89","nodeType":"YulVariableDeclaration","src":"8481:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"8508:6:89","nodeType":"YulIdentifier","src":"8508:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"8495:12:89","nodeType":"YulIdentifier","src":"8495:12:89"},"nativeSrc":"8495:20:89","nodeType":"YulFunctionCall","src":"8495:20:89"},"variables":[{"name":"length","nativeSrc":"8485:6:89","nodeType":"YulTypedName","src":"8485:6:89","type":""}]},{"nativeSrc":"8524:74:89","nodeType":"YulVariableDeclaration","src":"8524:74:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"8590:6:89","nodeType":"YulIdentifier","src":"8590:6:89"}],"functionName":{"name":"array_allocation_size_array_string_dyn","nativeSrc":"8551:38:89","nodeType":"YulIdentifier","src":"8551:38:89"},"nativeSrc":"8551:46:89","nodeType":"YulFunctionCall","src":"8551:46:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"8535:15:89","nodeType":"YulIdentifier","src":"8535:15:89"},"nativeSrc":"8535:63:89","nodeType":"YulFunctionCall","src":"8535:63:89"},"variables":[{"name":"dst","nativeSrc":"8528:3:89","nodeType":"YulTypedName","src":"8528:3:89","type":""}]},{"nativeSrc":"8607:18:89","nodeType":"YulVariableDeclaration","src":"8607:18:89","value":{"name":"dst","nativeSrc":"8622:3:89","nodeType":"YulIdentifier","src":"8622:3:89"},"variables":[{"name":"array_1","nativeSrc":"8611:7:89","nodeType":"YulTypedName","src":"8611:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"8641:3:89","nodeType":"YulIdentifier","src":"8641:3:89"},{"name":"length","nativeSrc":"8646:6:89","nodeType":"YulIdentifier","src":"8646:6:89"}],"functionName":{"name":"mstore","nativeSrc":"8634:6:89","nodeType":"YulIdentifier","src":"8634:6:89"},"nativeSrc":"8634:19:89","nodeType":"YulFunctionCall","src":"8634:19:89"},"nativeSrc":"8634:19:89","nodeType":"YulExpressionStatement","src":"8634:19:89"},{"nativeSrc":"8662:21:89","nodeType":"YulAssignment","src":"8662:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"8673:3:89","nodeType":"YulIdentifier","src":"8673:3:89"},{"kind":"number","nativeSrc":"8678:4:89","nodeType":"YulLiteral","src":"8678:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8669:3:89","nodeType":"YulIdentifier","src":"8669:3:89"},"nativeSrc":"8669:14:89","nodeType":"YulFunctionCall","src":"8669:14:89"},"variableNames":[{"name":"dst","nativeSrc":"8662:3:89","nodeType":"YulIdentifier","src":"8662:3:89"}]},{"nativeSrc":"8692:52:89","nodeType":"YulVariableDeclaration","src":"8692:52:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8714:6:89","nodeType":"YulIdentifier","src":"8714:6:89"},{"arguments":[{"kind":"number","nativeSrc":"8726:1:89","nodeType":"YulLiteral","src":"8726:1:89","type":"","value":"6"},{"name":"length","nativeSrc":"8729:6:89","nodeType":"YulIdentifier","src":"8729:6:89"}],"functionName":{"name":"shl","nativeSrc":"8722:3:89","nodeType":"YulIdentifier","src":"8722:3:89"},"nativeSrc":"8722:14:89","nodeType":"YulFunctionCall","src":"8722:14:89"}],"functionName":{"name":"add","nativeSrc":"8710:3:89","nodeType":"YulIdentifier","src":"8710:3:89"},"nativeSrc":"8710:27:89","nodeType":"YulFunctionCall","src":"8710:27:89"},{"kind":"number","nativeSrc":"8739:4:89","nodeType":"YulLiteral","src":"8739:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8706:3:89","nodeType":"YulIdentifier","src":"8706:3:89"},"nativeSrc":"8706:38:89","nodeType":"YulFunctionCall","src":"8706:38:89"},"variables":[{"name":"srcEnd","nativeSrc":"8696:6:89","nodeType":"YulTypedName","src":"8696:6:89","type":""}]},{"body":{"nativeSrc":"8772:16:89","nodeType":"YulBlock","src":"8772:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8781:1:89","nodeType":"YulLiteral","src":"8781:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8784:1:89","nodeType":"YulLiteral","src":"8784:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8774:6:89","nodeType":"YulIdentifier","src":"8774:6:89"},"nativeSrc":"8774:12:89","nodeType":"YulFunctionCall","src":"8774:12:89"},"nativeSrc":"8774:12:89","nodeType":"YulExpressionStatement","src":"8774:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"8759:6:89","nodeType":"YulIdentifier","src":"8759:6:89"},{"name":"end","nativeSrc":"8767:3:89","nodeType":"YulIdentifier","src":"8767:3:89"}],"functionName":{"name":"gt","nativeSrc":"8756:2:89","nodeType":"YulIdentifier","src":"8756:2:89"},"nativeSrc":"8756:15:89","nodeType":"YulFunctionCall","src":"8756:15:89"},"nativeSrc":"8753:35:89","nodeType":"YulIf","src":"8753:35:89"},{"nativeSrc":"8797:28:89","nodeType":"YulVariableDeclaration","src":"8797:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"8812:6:89","nodeType":"YulIdentifier","src":"8812:6:89"},{"kind":"number","nativeSrc":"8820:4:89","nodeType":"YulLiteral","src":"8820:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8808:3:89","nodeType":"YulIdentifier","src":"8808:3:89"},"nativeSrc":"8808:17:89","nodeType":"YulFunctionCall","src":"8808:17:89"},"variables":[{"name":"src","nativeSrc":"8801:3:89","nodeType":"YulTypedName","src":"8801:3:89","type":""}]},{"body":{"nativeSrc":"8892:359:89","nodeType":"YulBlock","src":"8892:359:89","statements":[{"body":{"nativeSrc":"8934:16:89","nodeType":"YulBlock","src":"8934:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8943:1:89","nodeType":"YulLiteral","src":"8943:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8946:1:89","nodeType":"YulLiteral","src":"8946:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8936:6:89","nodeType":"YulIdentifier","src":"8936:6:89"},"nativeSrc":"8936:12:89","nodeType":"YulFunctionCall","src":"8936:12:89"},"nativeSrc":"8936:12:89","nodeType":"YulExpressionStatement","src":"8936:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"8917:3:89","nodeType":"YulIdentifier","src":"8917:3:89"},{"name":"src","nativeSrc":"8922:3:89","nodeType":"YulIdentifier","src":"8922:3:89"}],"functionName":{"name":"sub","nativeSrc":"8913:3:89","nodeType":"YulIdentifier","src":"8913:3:89"},"nativeSrc":"8913:13:89","nodeType":"YulFunctionCall","src":"8913:13:89"},{"kind":"number","nativeSrc":"8928:4:89","nodeType":"YulLiteral","src":"8928:4:89","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"8909:3:89","nodeType":"YulIdentifier","src":"8909:3:89"},"nativeSrc":"8909:24:89","nodeType":"YulFunctionCall","src":"8909:24:89"},"nativeSrc":"8906:44:89","nodeType":"YulIf","src":"8906:44:89"},{"nativeSrc":"8963:35:89","nodeType":"YulVariableDeclaration","src":"8963:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_2469","nativeSrc":"8976:20:89","nodeType":"YulIdentifier","src":"8976:20:89"},"nativeSrc":"8976:22:89","nodeType":"YulFunctionCall","src":"8976:22:89"},"variables":[{"name":"value","nativeSrc":"8967:5:89","nodeType":"YulTypedName","src":"8967:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9018:5:89","nodeType":"YulIdentifier","src":"9018:5:89"},{"arguments":[{"name":"src","nativeSrc":"9044:3:89","nodeType":"YulIdentifier","src":"9044:3:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"9025:18:89","nodeType":"YulIdentifier","src":"9025:18:89"},"nativeSrc":"9025:23:89","nodeType":"YulFunctionCall","src":"9025:23:89"}],"functionName":{"name":"mstore","nativeSrc":"9011:6:89","nodeType":"YulIdentifier","src":"9011:6:89"},"nativeSrc":"9011:38:89","nodeType":"YulFunctionCall","src":"9011:38:89"},"nativeSrc":"9011:38:89","nodeType":"YulExpressionStatement","src":"9011:38:89"},{"nativeSrc":"9062:16:89","nodeType":"YulVariableDeclaration","src":"9062:16:89","value":{"kind":"number","nativeSrc":"9077:1:89","nodeType":"YulLiteral","src":"9077:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9066:7:89","nodeType":"YulTypedName","src":"9066:7:89","type":""}]},{"nativeSrc":"9091:39:89","nodeType":"YulAssignment","src":"9091:39:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9119:3:89","nodeType":"YulIdentifier","src":"9119:3:89"},{"kind":"number","nativeSrc":"9124:4:89","nodeType":"YulLiteral","src":"9124:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9115:3:89","nodeType":"YulIdentifier","src":"9115:3:89"},"nativeSrc":"9115:14:89","nodeType":"YulFunctionCall","src":"9115:14:89"}],"functionName":{"name":"calldataload","nativeSrc":"9102:12:89","nodeType":"YulIdentifier","src":"9102:12:89"},"nativeSrc":"9102:28:89","nodeType":"YulFunctionCall","src":"9102:28:89"},"variableNames":[{"name":"value_1","nativeSrc":"9091:7:89","nodeType":"YulIdentifier","src":"9091:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9154:5:89","nodeType":"YulIdentifier","src":"9154:5:89"},{"kind":"number","nativeSrc":"9161:4:89","nodeType":"YulLiteral","src":"9161:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9150:3:89","nodeType":"YulIdentifier","src":"9150:3:89"},"nativeSrc":"9150:16:89","nodeType":"YulFunctionCall","src":"9150:16:89"},{"name":"value_1","nativeSrc":"9168:7:89","nodeType":"YulIdentifier","src":"9168:7:89"}],"functionName":{"name":"mstore","nativeSrc":"9143:6:89","nodeType":"YulIdentifier","src":"9143:6:89"},"nativeSrc":"9143:33:89","nodeType":"YulFunctionCall","src":"9143:33:89"},"nativeSrc":"9143:33:89","nodeType":"YulExpressionStatement","src":"9143:33:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"9196:3:89","nodeType":"YulIdentifier","src":"9196:3:89"},{"name":"value","nativeSrc":"9201:5:89","nodeType":"YulIdentifier","src":"9201:5:89"}],"functionName":{"name":"mstore","nativeSrc":"9189:6:89","nodeType":"YulIdentifier","src":"9189:6:89"},"nativeSrc":"9189:18:89","nodeType":"YulFunctionCall","src":"9189:18:89"},"nativeSrc":"9189:18:89","nodeType":"YulExpressionStatement","src":"9189:18:89"},{"nativeSrc":"9220:21:89","nodeType":"YulAssignment","src":"9220:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"9231:3:89","nodeType":"YulIdentifier","src":"9231:3:89"},{"kind":"number","nativeSrc":"9236:4:89","nodeType":"YulLiteral","src":"9236:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9227:3:89","nodeType":"YulIdentifier","src":"9227:3:89"},"nativeSrc":"9227:14:89","nodeType":"YulFunctionCall","src":"9227:14:89"},"variableNames":[{"name":"dst","nativeSrc":"9220:3:89","nodeType":"YulIdentifier","src":"9220:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"8845:3:89","nodeType":"YulIdentifier","src":"8845:3:89"},{"name":"srcEnd","nativeSrc":"8850:6:89","nodeType":"YulIdentifier","src":"8850:6:89"}],"functionName":{"name":"lt","nativeSrc":"8842:2:89","nodeType":"YulIdentifier","src":"8842:2:89"},"nativeSrc":"8842:15:89","nodeType":"YulFunctionCall","src":"8842:15:89"},"nativeSrc":"8834:417:89","nodeType":"YulForLoop","post":{"nativeSrc":"8858:25:89","nodeType":"YulBlock","src":"8858:25:89","statements":[{"nativeSrc":"8860:21:89","nodeType":"YulAssignment","src":"8860:21:89","value":{"arguments":[{"name":"src","nativeSrc":"8871:3:89","nodeType":"YulIdentifier","src":"8871:3:89"},{"kind":"number","nativeSrc":"8876:4:89","nodeType":"YulLiteral","src":"8876:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8867:3:89","nodeType":"YulIdentifier","src":"8867:3:89"},"nativeSrc":"8867:14:89","nodeType":"YulFunctionCall","src":"8867:14:89"},"variableNames":[{"name":"src","nativeSrc":"8860:3:89","nodeType":"YulIdentifier","src":"8860:3:89"}]}]},"pre":{"nativeSrc":"8838:3:89","nodeType":"YulBlock","src":"8838:3:89","statements":[]},"src":"8834:417:89"},{"nativeSrc":"9260:16:89","nodeType":"YulAssignment","src":"9260:16:89","value":{"name":"array_1","nativeSrc":"9269:7:89","nodeType":"YulIdentifier","src":"9269:7:89"},"variableNames":[{"name":"array","nativeSrc":"9260:5:89","nodeType":"YulIdentifier","src":"9260:5:89"}]}]},"name":"abi_decode_array_struct_TokenAmount_dyn","nativeSrc":"8332:950:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8381:6:89","nodeType":"YulTypedName","src":"8381:6:89","type":""},{"name":"end","nativeSrc":"8389:3:89","nodeType":"YulTypedName","src":"8389:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8397:5:89","nodeType":"YulTypedName","src":"8397:5:89","type":""}],"src":"8332:950:89"},{"body":{"nativeSrc":"9360:1001:89","nodeType":"YulBlock","src":"9360:1001:89","statements":[{"body":{"nativeSrc":"9409:16:89","nodeType":"YulBlock","src":"9409:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9418:1:89","nodeType":"YulLiteral","src":"9418:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9421:1:89","nodeType":"YulLiteral","src":"9421:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9411:6:89","nodeType":"YulIdentifier","src":"9411:6:89"},"nativeSrc":"9411:12:89","nodeType":"YulFunctionCall","src":"9411:12:89"},"nativeSrc":"9411:12:89","nodeType":"YulExpressionStatement","src":"9411:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9388:6:89","nodeType":"YulIdentifier","src":"9388:6:89"},{"kind":"number","nativeSrc":"9396:4:89","nodeType":"YulLiteral","src":"9396:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9384:3:89","nodeType":"YulIdentifier","src":"9384:3:89"},"nativeSrc":"9384:17:89","nodeType":"YulFunctionCall","src":"9384:17:89"},{"name":"end","nativeSrc":"9403:3:89","nodeType":"YulIdentifier","src":"9403:3:89"}],"functionName":{"name":"slt","nativeSrc":"9380:3:89","nodeType":"YulIdentifier","src":"9380:3:89"},"nativeSrc":"9380:27:89","nodeType":"YulFunctionCall","src":"9380:27:89"}],"functionName":{"name":"iszero","nativeSrc":"9373:6:89","nodeType":"YulIdentifier","src":"9373:6:89"},"nativeSrc":"9373:35:89","nodeType":"YulFunctionCall","src":"9373:35:89"},"nativeSrc":"9370:55:89","nodeType":"YulIf","src":"9370:55:89"},{"nativeSrc":"9434:34:89","nodeType":"YulVariableDeclaration","src":"9434:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"9461:6:89","nodeType":"YulIdentifier","src":"9461:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"9448:12:89","nodeType":"YulIdentifier","src":"9448:12:89"},"nativeSrc":"9448:20:89","nodeType":"YulFunctionCall","src":"9448:20:89"},"variables":[{"name":"length","nativeSrc":"9438:6:89","nodeType":"YulTypedName","src":"9438:6:89","type":""}]},{"nativeSrc":"9477:74:89","nodeType":"YulVariableDeclaration","src":"9477:74:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9543:6:89","nodeType":"YulIdentifier","src":"9543:6:89"}],"functionName":{"name":"array_allocation_size_array_string_dyn","nativeSrc":"9504:38:89","nodeType":"YulIdentifier","src":"9504:38:89"},"nativeSrc":"9504:46:89","nodeType":"YulFunctionCall","src":"9504:46:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"9488:15:89","nodeType":"YulIdentifier","src":"9488:15:89"},"nativeSrc":"9488:63:89","nodeType":"YulFunctionCall","src":"9488:63:89"},"variables":[{"name":"dst","nativeSrc":"9481:3:89","nodeType":"YulTypedName","src":"9481:3:89","type":""}]},{"nativeSrc":"9560:18:89","nodeType":"YulVariableDeclaration","src":"9560:18:89","value":{"name":"dst","nativeSrc":"9575:3:89","nodeType":"YulIdentifier","src":"9575:3:89"},"variables":[{"name":"array_1","nativeSrc":"9564:7:89","nodeType":"YulTypedName","src":"9564:7:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"9594:3:89","nodeType":"YulIdentifier","src":"9594:3:89"},{"name":"length","nativeSrc":"9599:6:89","nodeType":"YulIdentifier","src":"9599:6:89"}],"functionName":{"name":"mstore","nativeSrc":"9587:6:89","nodeType":"YulIdentifier","src":"9587:6:89"},"nativeSrc":"9587:19:89","nodeType":"YulFunctionCall","src":"9587:19:89"},"nativeSrc":"9587:19:89","nodeType":"YulExpressionStatement","src":"9587:19:89"},{"nativeSrc":"9615:21:89","nodeType":"YulAssignment","src":"9615:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"9626:3:89","nodeType":"YulIdentifier","src":"9626:3:89"},{"kind":"number","nativeSrc":"9631:4:89","nodeType":"YulLiteral","src":"9631:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9622:3:89","nodeType":"YulIdentifier","src":"9622:3:89"},"nativeSrc":"9622:14:89","nodeType":"YulFunctionCall","src":"9622:14:89"},"variableNames":[{"name":"dst","nativeSrc":"9615:3:89","nodeType":"YulIdentifier","src":"9615:3:89"}]},{"nativeSrc":"9645:55:89","nodeType":"YulVariableDeclaration","src":"9645:55:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9667:6:89","nodeType":"YulIdentifier","src":"9667:6:89"},{"arguments":[{"name":"length","nativeSrc":"9679:6:89","nodeType":"YulIdentifier","src":"9679:6:89"},{"kind":"number","nativeSrc":"9687:4:89","nodeType":"YulLiteral","src":"9687:4:89","type":"","value":"0x60"}],"functionName":{"name":"mul","nativeSrc":"9675:3:89","nodeType":"YulIdentifier","src":"9675:3:89"},"nativeSrc":"9675:17:89","nodeType":"YulFunctionCall","src":"9675:17:89"}],"functionName":{"name":"add","nativeSrc":"9663:3:89","nodeType":"YulIdentifier","src":"9663:3:89"},"nativeSrc":"9663:30:89","nodeType":"YulFunctionCall","src":"9663:30:89"},{"kind":"number","nativeSrc":"9695:4:89","nodeType":"YulLiteral","src":"9695:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9659:3:89","nodeType":"YulIdentifier","src":"9659:3:89"},"nativeSrc":"9659:41:89","nodeType":"YulFunctionCall","src":"9659:41:89"},"variables":[{"name":"srcEnd","nativeSrc":"9649:6:89","nodeType":"YulTypedName","src":"9649:6:89","type":""}]},{"body":{"nativeSrc":"9728:16:89","nodeType":"YulBlock","src":"9728:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9737:1:89","nodeType":"YulLiteral","src":"9737:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9740:1:89","nodeType":"YulLiteral","src":"9740:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9730:6:89","nodeType":"YulIdentifier","src":"9730:6:89"},"nativeSrc":"9730:12:89","nodeType":"YulFunctionCall","src":"9730:12:89"},"nativeSrc":"9730:12:89","nodeType":"YulExpressionStatement","src":"9730:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"9715:6:89","nodeType":"YulIdentifier","src":"9715:6:89"},{"name":"end","nativeSrc":"9723:3:89","nodeType":"YulIdentifier","src":"9723:3:89"}],"functionName":{"name":"gt","nativeSrc":"9712:2:89","nodeType":"YulIdentifier","src":"9712:2:89"},"nativeSrc":"9712:15:89","nodeType":"YulFunctionCall","src":"9712:15:89"},"nativeSrc":"9709:35:89","nodeType":"YulIf","src":"9709:35:89"},{"nativeSrc":"9753:28:89","nodeType":"YulVariableDeclaration","src":"9753:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"9768:6:89","nodeType":"YulIdentifier","src":"9768:6:89"},{"kind":"number","nativeSrc":"9776:4:89","nodeType":"YulLiteral","src":"9776:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9764:3:89","nodeType":"YulIdentifier","src":"9764:3:89"},"nativeSrc":"9764:17:89","nodeType":"YulFunctionCall","src":"9764:17:89"},"variables":[{"name":"src","nativeSrc":"9757:3:89","nodeType":"YulTypedName","src":"9757:3:89","type":""}]},{"body":{"nativeSrc":"9848:482:89","nodeType":"YulBlock","src":"9848:482:89","statements":[{"body":{"nativeSrc":"9890:16:89","nodeType":"YulBlock","src":"9890:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9899:1:89","nodeType":"YulLiteral","src":"9899:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9902:1:89","nodeType":"YulLiteral","src":"9902:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9892:6:89","nodeType":"YulIdentifier","src":"9892:6:89"},"nativeSrc":"9892:12:89","nodeType":"YulFunctionCall","src":"9892:12:89"},"nativeSrc":"9892:12:89","nodeType":"YulExpressionStatement","src":"9892:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9873:3:89","nodeType":"YulIdentifier","src":"9873:3:89"},{"name":"src","nativeSrc":"9878:3:89","nodeType":"YulIdentifier","src":"9878:3:89"}],"functionName":{"name":"sub","nativeSrc":"9869:3:89","nodeType":"YulIdentifier","src":"9869:3:89"},"nativeSrc":"9869:13:89","nodeType":"YulFunctionCall","src":"9869:13:89"},{"kind":"number","nativeSrc":"9884:4:89","nodeType":"YulLiteral","src":"9884:4:89","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"9865:3:89","nodeType":"YulIdentifier","src":"9865:3:89"},"nativeSrc":"9865:24:89","nodeType":"YulFunctionCall","src":"9865:24:89"},"nativeSrc":"9862:44:89","nodeType":"YulIf","src":"9862:44:89"},{"nativeSrc":"9919:35:89","nodeType":"YulVariableDeclaration","src":"9919:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_2472","nativeSrc":"9932:20:89","nodeType":"YulIdentifier","src":"9932:20:89"},"nativeSrc":"9932:22:89","nodeType":"YulFunctionCall","src":"9932:22:89"},"variables":[{"name":"value","nativeSrc":"9923:5:89","nodeType":"YulTypedName","src":"9923:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9974:5:89","nodeType":"YulIdentifier","src":"9974:5:89"},{"arguments":[{"name":"src","nativeSrc":"10000:3:89","nodeType":"YulIdentifier","src":"10000:3:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"9981:18:89","nodeType":"YulIdentifier","src":"9981:18:89"},"nativeSrc":"9981:23:89","nodeType":"YulFunctionCall","src":"9981:23:89"}],"functionName":{"name":"mstore","nativeSrc":"9967:6:89","nodeType":"YulIdentifier","src":"9967:6:89"},"nativeSrc":"9967:38:89","nodeType":"YulFunctionCall","src":"9967:38:89"},"nativeSrc":"9967:38:89","nodeType":"YulExpressionStatement","src":"9967:38:89"},{"nativeSrc":"10018:16:89","nodeType":"YulVariableDeclaration","src":"10018:16:89","value":{"kind":"number","nativeSrc":"10033:1:89","nodeType":"YulLiteral","src":"10033:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"10022:7:89","nodeType":"YulTypedName","src":"10022:7:89","type":""}]},{"nativeSrc":"10047:39:89","nodeType":"YulAssignment","src":"10047:39:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10075:3:89","nodeType":"YulIdentifier","src":"10075:3:89"},{"kind":"number","nativeSrc":"10080:4:89","nodeType":"YulLiteral","src":"10080:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10071:3:89","nodeType":"YulIdentifier","src":"10071:3:89"},"nativeSrc":"10071:14:89","nodeType":"YulFunctionCall","src":"10071:14:89"}],"functionName":{"name":"calldataload","nativeSrc":"10058:12:89","nodeType":"YulIdentifier","src":"10058:12:89"},"nativeSrc":"10058:28:89","nodeType":"YulFunctionCall","src":"10058:28:89"},"variableNames":[{"name":"value_1","nativeSrc":"10047:7:89","nodeType":"YulIdentifier","src":"10047:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10110:5:89","nodeType":"YulIdentifier","src":"10110:5:89"},{"kind":"number","nativeSrc":"10117:4:89","nodeType":"YulLiteral","src":"10117:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10106:3:89","nodeType":"YulIdentifier","src":"10106:3:89"},"nativeSrc":"10106:16:89","nodeType":"YulFunctionCall","src":"10106:16:89"},{"name":"value_1","nativeSrc":"10124:7:89","nodeType":"YulIdentifier","src":"10124:7:89"}],"functionName":{"name":"mstore","nativeSrc":"10099:6:89","nodeType":"YulIdentifier","src":"10099:6:89"},"nativeSrc":"10099:33:89","nodeType":"YulFunctionCall","src":"10099:33:89"},"nativeSrc":"10099:33:89","nodeType":"YulExpressionStatement","src":"10099:33:89"},{"nativeSrc":"10145:16:89","nodeType":"YulVariableDeclaration","src":"10145:16:89","value":{"kind":"number","nativeSrc":"10160:1:89","nodeType":"YulLiteral","src":"10160:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"10149:7:89","nodeType":"YulTypedName","src":"10149:7:89","type":""}]},{"nativeSrc":"10174:37:89","nodeType":"YulAssignment","src":"10174:37:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10202:3:89","nodeType":"YulIdentifier","src":"10202:3:89"},{"kind":"number","nativeSrc":"10207:2:89","nodeType":"YulLiteral","src":"10207:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10198:3:89","nodeType":"YulIdentifier","src":"10198:3:89"},"nativeSrc":"10198:12:89","nodeType":"YulFunctionCall","src":"10198:12:89"}],"functionName":{"name":"calldataload","nativeSrc":"10185:12:89","nodeType":"YulIdentifier","src":"10185:12:89"},"nativeSrc":"10185:26:89","nodeType":"YulFunctionCall","src":"10185:26:89"},"variableNames":[{"name":"value_2","nativeSrc":"10174:7:89","nodeType":"YulIdentifier","src":"10174:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10235:5:89","nodeType":"YulIdentifier","src":"10235:5:89"},{"kind":"number","nativeSrc":"10242:2:89","nodeType":"YulLiteral","src":"10242:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10231:3:89","nodeType":"YulIdentifier","src":"10231:3:89"},"nativeSrc":"10231:14:89","nodeType":"YulFunctionCall","src":"10231:14:89"},{"name":"value_2","nativeSrc":"10247:7:89","nodeType":"YulIdentifier","src":"10247:7:89"}],"functionName":{"name":"mstore","nativeSrc":"10224:6:89","nodeType":"YulIdentifier","src":"10224:6:89"},"nativeSrc":"10224:31:89","nodeType":"YulFunctionCall","src":"10224:31:89"},"nativeSrc":"10224:31:89","nodeType":"YulExpressionStatement","src":"10224:31:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"10275:3:89","nodeType":"YulIdentifier","src":"10275:3:89"},{"name":"value","nativeSrc":"10280:5:89","nodeType":"YulIdentifier","src":"10280:5:89"}],"functionName":{"name":"mstore","nativeSrc":"10268:6:89","nodeType":"YulIdentifier","src":"10268:6:89"},"nativeSrc":"10268:18:89","nodeType":"YulFunctionCall","src":"10268:18:89"},"nativeSrc":"10268:18:89","nodeType":"YulExpressionStatement","src":"10268:18:89"},{"nativeSrc":"10299:21:89","nodeType":"YulAssignment","src":"10299:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"10310:3:89","nodeType":"YulIdentifier","src":"10310:3:89"},{"kind":"number","nativeSrc":"10315:4:89","nodeType":"YulLiteral","src":"10315:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10306:3:89","nodeType":"YulIdentifier","src":"10306:3:89"},"nativeSrc":"10306:14:89","nodeType":"YulFunctionCall","src":"10306:14:89"},"variableNames":[{"name":"dst","nativeSrc":"10299:3:89","nodeType":"YulIdentifier","src":"10299:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"9801:3:89","nodeType":"YulIdentifier","src":"9801:3:89"},{"name":"srcEnd","nativeSrc":"9806:6:89","nodeType":"YulIdentifier","src":"9806:6:89"}],"functionName":{"name":"lt","nativeSrc":"9798:2:89","nodeType":"YulIdentifier","src":"9798:2:89"},"nativeSrc":"9798:15:89","nodeType":"YulFunctionCall","src":"9798:15:89"},"nativeSrc":"9790:540:89","nodeType":"YulForLoop","post":{"nativeSrc":"9814:25:89","nodeType":"YulBlock","src":"9814:25:89","statements":[{"nativeSrc":"9816:21:89","nodeType":"YulAssignment","src":"9816:21:89","value":{"arguments":[{"name":"src","nativeSrc":"9827:3:89","nodeType":"YulIdentifier","src":"9827:3:89"},{"kind":"number","nativeSrc":"9832:4:89","nodeType":"YulLiteral","src":"9832:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9823:3:89","nodeType":"YulIdentifier","src":"9823:3:89"},"nativeSrc":"9823:14:89","nodeType":"YulFunctionCall","src":"9823:14:89"},"variableNames":[{"name":"src","nativeSrc":"9816:3:89","nodeType":"YulIdentifier","src":"9816:3:89"}]}]},"pre":{"nativeSrc":"9794:3:89","nodeType":"YulBlock","src":"9794:3:89","statements":[]},"src":"9790:540:89"},{"nativeSrc":"10339:16:89","nodeType":"YulAssignment","src":"10339:16:89","value":{"name":"array_1","nativeSrc":"10348:7:89","nodeType":"YulIdentifier","src":"10348:7:89"},"variableNames":[{"name":"array","nativeSrc":"10339:5:89","nodeType":"YulIdentifier","src":"10339:5:89"}]}]},"name":"abi_decode_array_struct_NFTAmount_dyn","nativeSrc":"9287:1074:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9334:6:89","nodeType":"YulTypedName","src":"9334:6:89","type":""},{"name":"end","nativeSrc":"9342:3:89","nodeType":"YulTypedName","src":"9342:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9350:5:89","nodeType":"YulTypedName","src":"9350:5:89","type":""}],"src":"9287:1074:89"},{"body":{"nativeSrc":"10494:1504:89","nodeType":"YulBlock","src":"10494:1504:89","statements":[{"body":{"nativeSrc":"10547:16:89","nodeType":"YulBlock","src":"10547:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10556:1:89","nodeType":"YulLiteral","src":"10556:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10559:1:89","nodeType":"YulLiteral","src":"10559:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10549:6:89","nodeType":"YulIdentifier","src":"10549:6:89"},"nativeSrc":"10549:12:89","nodeType":"YulFunctionCall","src":"10549:12:89"},"nativeSrc":"10549:12:89","nodeType":"YulExpressionStatement","src":"10549:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"10515:12:89","nodeType":"YulIdentifier","src":"10515:12:89"},"nativeSrc":"10515:14:89","nodeType":"YulFunctionCall","src":"10515:14:89"},{"name":"value","nativeSrc":"10531:5:89","nodeType":"YulIdentifier","src":"10531:5:89"}],"functionName":{"name":"sub","nativeSrc":"10511:3:89","nodeType":"YulIdentifier","src":"10511:3:89"},"nativeSrc":"10511:26:89","nodeType":"YulFunctionCall","src":"10511:26:89"},{"kind":"number","nativeSrc":"10539:6:89","nodeType":"YulLiteral","src":"10539:6:89","type":"","value":"0x0100"}],"functionName":{"name":"slt","nativeSrc":"10507:3:89","nodeType":"YulIdentifier","src":"10507:3:89"},"nativeSrc":"10507:39:89","nodeType":"YulFunctionCall","src":"10507:39:89"},"nativeSrc":"10504:59:89","nodeType":"YulIf","src":"10504:59:89"},{"nativeSrc":"10572:37:89","nodeType":"YulVariableDeclaration","src":"10572:37:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_2474","nativeSrc":"10587:20:89","nodeType":"YulIdentifier","src":"10587:20:89"},"nativeSrc":"10587:22:89","nodeType":"YulFunctionCall","src":"10587:22:89"},"variables":[{"name":"value_1","nativeSrc":"10576:7:89","nodeType":"YulTypedName","src":"10576:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"10625:7:89","nodeType":"YulIdentifier","src":"10625:7:89"},{"arguments":[{"name":"value","nativeSrc":"10652:5:89","nodeType":"YulIdentifier","src":"10652:5:89"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"10634:17:89","nodeType":"YulIdentifier","src":"10634:17:89"},"nativeSrc":"10634:24:89","nodeType":"YulFunctionCall","src":"10634:24:89"}],"functionName":{"name":"mstore","nativeSrc":"10618:6:89","nodeType":"YulIdentifier","src":"10618:6:89"},"nativeSrc":"10618:41:89","nodeType":"YulFunctionCall","src":"10618:41:89"},"nativeSrc":"10618:41:89","nodeType":"YulExpressionStatement","src":"10618:41:89"},{"nativeSrc":"10668:42:89","nodeType":"YulVariableDeclaration","src":"10668:42:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10699:5:89","nodeType":"YulIdentifier","src":"10699:5:89"},{"kind":"number","nativeSrc":"10706:2:89","nodeType":"YulLiteral","src":"10706:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10695:3:89","nodeType":"YulIdentifier","src":"10695:3:89"},"nativeSrc":"10695:14:89","nodeType":"YulFunctionCall","src":"10695:14:89"}],"functionName":{"name":"calldataload","nativeSrc":"10682:12:89","nodeType":"YulIdentifier","src":"10682:12:89"},"nativeSrc":"10682:28:89","nodeType":"YulFunctionCall","src":"10682:28:89"},"variables":[{"name":"offset","nativeSrc":"10672:6:89","nodeType":"YulTypedName","src":"10672:6:89","type":""}]},{"body":{"nativeSrc":"10753:16:89","nodeType":"YulBlock","src":"10753:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10762:1:89","nodeType":"YulLiteral","src":"10762:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10765:1:89","nodeType":"YulLiteral","src":"10765:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10755:6:89","nodeType":"YulIdentifier","src":"10755:6:89"},"nativeSrc":"10755:12:89","nodeType":"YulFunctionCall","src":"10755:12:89"},"nativeSrc":"10755:12:89","nodeType":"YulExpressionStatement","src":"10755:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10725:6:89","nodeType":"YulIdentifier","src":"10725:6:89"},{"kind":"number","nativeSrc":"10733:18:89","nodeType":"YulLiteral","src":"10733:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10722:2:89","nodeType":"YulIdentifier","src":"10722:2:89"},"nativeSrc":"10722:30:89","nodeType":"YulFunctionCall","src":"10722:30:89"},"nativeSrc":"10719:50:89","nodeType":"YulIf","src":"10719:50:89"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"10789:7:89","nodeType":"YulIdentifier","src":"10789:7:89"},{"kind":"number","nativeSrc":"10798:2:89","nodeType":"YulLiteral","src":"10798:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10785:3:89","nodeType":"YulIdentifier","src":"10785:3:89"},"nativeSrc":"10785:16:89","nodeType":"YulFunctionCall","src":"10785:16:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10825:5:89","nodeType":"YulIdentifier","src":"10825:5:89"},{"name":"offset","nativeSrc":"10832:6:89","nodeType":"YulIdentifier","src":"10832:6:89"}],"functionName":{"name":"add","nativeSrc":"10821:3:89","nodeType":"YulIdentifier","src":"10821:3:89"},"nativeSrc":"10821:18:89","nodeType":"YulFunctionCall","src":"10821:18:89"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"10841:12:89","nodeType":"YulIdentifier","src":"10841:12:89"},"nativeSrc":"10841:14:89","nodeType":"YulFunctionCall","src":"10841:14:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"10803:17:89","nodeType":"YulIdentifier","src":"10803:17:89"},"nativeSrc":"10803:53:89","nodeType":"YulFunctionCall","src":"10803:53:89"}],"functionName":{"name":"mstore","nativeSrc":"10778:6:89","nodeType":"YulIdentifier","src":"10778:6:89"},"nativeSrc":"10778:79:89","nodeType":"YulFunctionCall","src":"10778:79:89"},"nativeSrc":"10778:79:89","nodeType":"YulExpressionStatement","src":"10778:79:89"},{"nativeSrc":"10866:44:89","nodeType":"YulVariableDeclaration","src":"10866:44:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10899:5:89","nodeType":"YulIdentifier","src":"10899:5:89"},{"kind":"number","nativeSrc":"10906:2:89","nodeType":"YulLiteral","src":"10906:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10895:3:89","nodeType":"YulIdentifier","src":"10895:3:89"},"nativeSrc":"10895:14:89","nodeType":"YulFunctionCall","src":"10895:14:89"}],"functionName":{"name":"calldataload","nativeSrc":"10882:12:89","nodeType":"YulIdentifier","src":"10882:12:89"},"nativeSrc":"10882:28:89","nodeType":"YulFunctionCall","src":"10882:28:89"},"variables":[{"name":"offset_1","nativeSrc":"10870:8:89","nodeType":"YulTypedName","src":"10870:8:89","type":""}]},{"body":{"nativeSrc":"10955:16:89","nodeType":"YulBlock","src":"10955:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10964:1:89","nodeType":"YulLiteral","src":"10964:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10967:1:89","nodeType":"YulLiteral","src":"10967:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10957:6:89","nodeType":"YulIdentifier","src":"10957:6:89"},"nativeSrc":"10957:12:89","nodeType":"YulFunctionCall","src":"10957:12:89"},"nativeSrc":"10957:12:89","nodeType":"YulExpressionStatement","src":"10957:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"10925:8:89","nodeType":"YulIdentifier","src":"10925:8:89"},{"kind":"number","nativeSrc":"10935:18:89","nodeType":"YulLiteral","src":"10935:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10922:2:89","nodeType":"YulIdentifier","src":"10922:2:89"},"nativeSrc":"10922:32:89","nodeType":"YulFunctionCall","src":"10922:32:89"},"nativeSrc":"10919:52:89","nodeType":"YulIf","src":"10919:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"10991:7:89","nodeType":"YulIdentifier","src":"10991:7:89"},{"kind":"number","nativeSrc":"11000:2:89","nodeType":"YulLiteral","src":"11000:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10987:3:89","nodeType":"YulIdentifier","src":"10987:3:89"},"nativeSrc":"10987:16:89","nodeType":"YulFunctionCall","src":"10987:16:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11027:5:89","nodeType":"YulIdentifier","src":"11027:5:89"},{"name":"offset_1","nativeSrc":"11034:8:89","nodeType":"YulIdentifier","src":"11034:8:89"}],"functionName":{"name":"add","nativeSrc":"11023:3:89","nodeType":"YulIdentifier","src":"11023:3:89"},"nativeSrc":"11023:20:89","nodeType":"YulFunctionCall","src":"11023:20:89"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11045:12:89","nodeType":"YulIdentifier","src":"11045:12:89"},"nativeSrc":"11045:14:89","nodeType":"YulFunctionCall","src":"11045:14:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"11005:17:89","nodeType":"YulIdentifier","src":"11005:17:89"},"nativeSrc":"11005:55:89","nodeType":"YulFunctionCall","src":"11005:55:89"}],"functionName":{"name":"mstore","nativeSrc":"10980:6:89","nodeType":"YulIdentifier","src":"10980:6:89"},"nativeSrc":"10980:81:89","nodeType":"YulFunctionCall","src":"10980:81:89"},"nativeSrc":"10980:81:89","nodeType":"YulExpressionStatement","src":"10980:81:89"},{"nativeSrc":"11070:16:89","nodeType":"YulVariableDeclaration","src":"11070:16:89","value":{"kind":"number","nativeSrc":"11085:1:89","nodeType":"YulLiteral","src":"11085:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"11074:7:89","nodeType":"YulTypedName","src":"11074:7:89","type":""}]},{"nativeSrc":"11095:39:89","nodeType":"YulAssignment","src":"11095:39:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11123:5:89","nodeType":"YulIdentifier","src":"11123:5:89"},{"kind":"number","nativeSrc":"11130:2:89","nodeType":"YulLiteral","src":"11130:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11119:3:89","nodeType":"YulIdentifier","src":"11119:3:89"},"nativeSrc":"11119:14:89","nodeType":"YulFunctionCall","src":"11119:14:89"}],"functionName":{"name":"calldataload","nativeSrc":"11106:12:89","nodeType":"YulIdentifier","src":"11106:12:89"},"nativeSrc":"11106:28:89","nodeType":"YulFunctionCall","src":"11106:28:89"},"variableNames":[{"name":"value_2","nativeSrc":"11095:7:89","nodeType":"YulIdentifier","src":"11095:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"11154:7:89","nodeType":"YulIdentifier","src":"11154:7:89"},{"kind":"number","nativeSrc":"11163:2:89","nodeType":"YulLiteral","src":"11163:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11150:3:89","nodeType":"YulIdentifier","src":"11150:3:89"},"nativeSrc":"11150:16:89","nodeType":"YulFunctionCall","src":"11150:16:89"},{"name":"value_2","nativeSrc":"11168:7:89","nodeType":"YulIdentifier","src":"11168:7:89"}],"functionName":{"name":"mstore","nativeSrc":"11143:6:89","nodeType":"YulIdentifier","src":"11143:6:89"},"nativeSrc":"11143:33:89","nodeType":"YulFunctionCall","src":"11143:33:89"},"nativeSrc":"11143:33:89","nodeType":"YulExpressionStatement","src":"11143:33:89"},{"nativeSrc":"11185:16:89","nodeType":"YulVariableDeclaration","src":"11185:16:89","value":{"kind":"number","nativeSrc":"11200:1:89","nodeType":"YulLiteral","src":"11200:1:89","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"11189:7:89","nodeType":"YulTypedName","src":"11189:7:89","type":""}]},{"nativeSrc":"11210:40:89","nodeType":"YulAssignment","src":"11210:40:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11238:5:89","nodeType":"YulIdentifier","src":"11238:5:89"},{"kind":"number","nativeSrc":"11245:3:89","nodeType":"YulLiteral","src":"11245:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11234:3:89","nodeType":"YulIdentifier","src":"11234:3:89"},"nativeSrc":"11234:15:89","nodeType":"YulFunctionCall","src":"11234:15:89"}],"functionName":{"name":"calldataload","nativeSrc":"11221:12:89","nodeType":"YulIdentifier","src":"11221:12:89"},"nativeSrc":"11221:29:89","nodeType":"YulFunctionCall","src":"11221:29:89"},"variableNames":[{"name":"value_3","nativeSrc":"11210:7:89","nodeType":"YulIdentifier","src":"11210:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"11270:7:89","nodeType":"YulIdentifier","src":"11270:7:89"},{"kind":"number","nativeSrc":"11279:3:89","nodeType":"YulLiteral","src":"11279:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11266:3:89","nodeType":"YulIdentifier","src":"11266:3:89"},"nativeSrc":"11266:17:89","nodeType":"YulFunctionCall","src":"11266:17:89"},{"name":"value_3","nativeSrc":"11285:7:89","nodeType":"YulIdentifier","src":"11285:7:89"}],"functionName":{"name":"mstore","nativeSrc":"11259:6:89","nodeType":"YulIdentifier","src":"11259:6:89"},"nativeSrc":"11259:34:89","nodeType":"YulFunctionCall","src":"11259:34:89"},"nativeSrc":"11259:34:89","nodeType":"YulExpressionStatement","src":"11259:34:89"},{"nativeSrc":"11302:45:89","nodeType":"YulVariableDeclaration","src":"11302:45:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11335:5:89","nodeType":"YulIdentifier","src":"11335:5:89"},{"kind":"number","nativeSrc":"11342:3:89","nodeType":"YulLiteral","src":"11342:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"11331:3:89","nodeType":"YulIdentifier","src":"11331:3:89"},"nativeSrc":"11331:15:89","nodeType":"YulFunctionCall","src":"11331:15:89"}],"functionName":{"name":"calldataload","nativeSrc":"11318:12:89","nodeType":"YulIdentifier","src":"11318:12:89"},"nativeSrc":"11318:29:89","nodeType":"YulFunctionCall","src":"11318:29:89"},"variables":[{"name":"offset_2","nativeSrc":"11306:8:89","nodeType":"YulTypedName","src":"11306:8:89","type":""}]},{"body":{"nativeSrc":"11392:16:89","nodeType":"YulBlock","src":"11392:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11401:1:89","nodeType":"YulLiteral","src":"11401:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11404:1:89","nodeType":"YulLiteral","src":"11404:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11394:6:89","nodeType":"YulIdentifier","src":"11394:6:89"},"nativeSrc":"11394:12:89","nodeType":"YulFunctionCall","src":"11394:12:89"},"nativeSrc":"11394:12:89","nodeType":"YulExpressionStatement","src":"11394:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"11362:8:89","nodeType":"YulIdentifier","src":"11362:8:89"},{"kind":"number","nativeSrc":"11372:18:89","nodeType":"YulLiteral","src":"11372:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11359:2:89","nodeType":"YulIdentifier","src":"11359:2:89"},"nativeSrc":"11359:32:89","nodeType":"YulFunctionCall","src":"11359:32:89"},"nativeSrc":"11356:52:89","nodeType":"YulIf","src":"11356:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"11428:7:89","nodeType":"YulIdentifier","src":"11428:7:89"},{"kind":"number","nativeSrc":"11437:3:89","nodeType":"YulLiteral","src":"11437:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"11424:3:89","nodeType":"YulIdentifier","src":"11424:3:89"},"nativeSrc":"11424:17:89","nodeType":"YulFunctionCall","src":"11424:17:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11475:5:89","nodeType":"YulIdentifier","src":"11475:5:89"},{"name":"offset_2","nativeSrc":"11482:8:89","nodeType":"YulIdentifier","src":"11482:8:89"}],"functionName":{"name":"add","nativeSrc":"11471:3:89","nodeType":"YulIdentifier","src":"11471:3:89"},"nativeSrc":"11471:20:89","nodeType":"YulFunctionCall","src":"11471:20:89"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11493:12:89","nodeType":"YulIdentifier","src":"11493:12:89"},"nativeSrc":"11493:14:89","nodeType":"YulFunctionCall","src":"11493:14:89"}],"functionName":{"name":"abi_decode_array_string_dyn","nativeSrc":"11443:27:89","nodeType":"YulIdentifier","src":"11443:27:89"},"nativeSrc":"11443:65:89","nodeType":"YulFunctionCall","src":"11443:65:89"}],"functionName":{"name":"mstore","nativeSrc":"11417:6:89","nodeType":"YulIdentifier","src":"11417:6:89"},"nativeSrc":"11417:92:89","nodeType":"YulFunctionCall","src":"11417:92:89"},"nativeSrc":"11417:92:89","nodeType":"YulExpressionStatement","src":"11417:92:89"},{"nativeSrc":"11518:45:89","nodeType":"YulVariableDeclaration","src":"11518:45:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11551:5:89","nodeType":"YulIdentifier","src":"11551:5:89"},{"kind":"number","nativeSrc":"11558:3:89","nodeType":"YulLiteral","src":"11558:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"11547:3:89","nodeType":"YulIdentifier","src":"11547:3:89"},"nativeSrc":"11547:15:89","nodeType":"YulFunctionCall","src":"11547:15:89"}],"functionName":{"name":"calldataload","nativeSrc":"11534:12:89","nodeType":"YulIdentifier","src":"11534:12:89"},"nativeSrc":"11534:29:89","nodeType":"YulFunctionCall","src":"11534:29:89"},"variables":[{"name":"offset_3","nativeSrc":"11522:8:89","nodeType":"YulTypedName","src":"11522:8:89","type":""}]},{"body":{"nativeSrc":"11608:16:89","nodeType":"YulBlock","src":"11608:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11617:1:89","nodeType":"YulLiteral","src":"11617:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11620:1:89","nodeType":"YulLiteral","src":"11620:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11610:6:89","nodeType":"YulIdentifier","src":"11610:6:89"},"nativeSrc":"11610:12:89","nodeType":"YulFunctionCall","src":"11610:12:89"},"nativeSrc":"11610:12:89","nodeType":"YulExpressionStatement","src":"11610:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"11578:8:89","nodeType":"YulIdentifier","src":"11578:8:89"},{"kind":"number","nativeSrc":"11588:18:89","nodeType":"YulLiteral","src":"11588:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11575:2:89","nodeType":"YulIdentifier","src":"11575:2:89"},"nativeSrc":"11575:32:89","nodeType":"YulFunctionCall","src":"11575:32:89"},"nativeSrc":"11572:52:89","nodeType":"YulIf","src":"11572:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"11644:7:89","nodeType":"YulIdentifier","src":"11644:7:89"},{"kind":"number","nativeSrc":"11653:3:89","nodeType":"YulLiteral","src":"11653:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"11640:3:89","nodeType":"YulIdentifier","src":"11640:3:89"},"nativeSrc":"11640:17:89","nodeType":"YulFunctionCall","src":"11640:17:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11703:5:89","nodeType":"YulIdentifier","src":"11703:5:89"},{"name":"offset_3","nativeSrc":"11710:8:89","nodeType":"YulIdentifier","src":"11710:8:89"}],"functionName":{"name":"add","nativeSrc":"11699:3:89","nodeType":"YulIdentifier","src":"11699:3:89"},"nativeSrc":"11699:20:89","nodeType":"YulFunctionCall","src":"11699:20:89"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11721:12:89","nodeType":"YulIdentifier","src":"11721:12:89"},"nativeSrc":"11721:14:89","nodeType":"YulFunctionCall","src":"11721:14:89"}],"functionName":{"name":"abi_decode_array_struct_TokenAmount_dyn","nativeSrc":"11659:39:89","nodeType":"YulIdentifier","src":"11659:39:89"},"nativeSrc":"11659:77:89","nodeType":"YulFunctionCall","src":"11659:77:89"}],"functionName":{"name":"mstore","nativeSrc":"11633:6:89","nodeType":"YulIdentifier","src":"11633:6:89"},"nativeSrc":"11633:104:89","nodeType":"YulFunctionCall","src":"11633:104:89"},"nativeSrc":"11633:104:89","nodeType":"YulExpressionStatement","src":"11633:104:89"},{"nativeSrc":"11746:45:89","nodeType":"YulVariableDeclaration","src":"11746:45:89","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11779:5:89","nodeType":"YulIdentifier","src":"11779:5:89"},{"kind":"number","nativeSrc":"11786:3:89","nodeType":"YulLiteral","src":"11786:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"11775:3:89","nodeType":"YulIdentifier","src":"11775:3:89"},"nativeSrc":"11775:15:89","nodeType":"YulFunctionCall","src":"11775:15:89"}],"functionName":{"name":"calldataload","nativeSrc":"11762:12:89","nodeType":"YulIdentifier","src":"11762:12:89"},"nativeSrc":"11762:29:89","nodeType":"YulFunctionCall","src":"11762:29:89"},"variables":[{"name":"offset_4","nativeSrc":"11750:8:89","nodeType":"YulTypedName","src":"11750:8:89","type":""}]},{"body":{"nativeSrc":"11836:16:89","nodeType":"YulBlock","src":"11836:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11845:1:89","nodeType":"YulLiteral","src":"11845:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11848:1:89","nodeType":"YulLiteral","src":"11848:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11838:6:89","nodeType":"YulIdentifier","src":"11838:6:89"},"nativeSrc":"11838:12:89","nodeType":"YulFunctionCall","src":"11838:12:89"},"nativeSrc":"11838:12:89","nodeType":"YulExpressionStatement","src":"11838:12:89"}]},"condition":{"arguments":[{"name":"offset_4","nativeSrc":"11806:8:89","nodeType":"YulIdentifier","src":"11806:8:89"},{"kind":"number","nativeSrc":"11816:18:89","nodeType":"YulLiteral","src":"11816:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11803:2:89","nodeType":"YulIdentifier","src":"11803:2:89"},"nativeSrc":"11803:32:89","nodeType":"YulFunctionCall","src":"11803:32:89"},"nativeSrc":"11800:52:89","nodeType":"YulIf","src":"11800:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"11872:7:89","nodeType":"YulIdentifier","src":"11872:7:89"},{"kind":"number","nativeSrc":"11881:3:89","nodeType":"YulLiteral","src":"11881:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"11868:3:89","nodeType":"YulIdentifier","src":"11868:3:89"},"nativeSrc":"11868:17:89","nodeType":"YulFunctionCall","src":"11868:17:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11929:5:89","nodeType":"YulIdentifier","src":"11929:5:89"},{"name":"offset_4","nativeSrc":"11936:8:89","nodeType":"YulIdentifier","src":"11936:8:89"}],"functionName":{"name":"add","nativeSrc":"11925:3:89","nodeType":"YulIdentifier","src":"11925:3:89"},"nativeSrc":"11925:20:89","nodeType":"YulFunctionCall","src":"11925:20:89"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11947:12:89","nodeType":"YulIdentifier","src":"11947:12:89"},"nativeSrc":"11947:14:89","nodeType":"YulFunctionCall","src":"11947:14:89"}],"functionName":{"name":"abi_decode_array_struct_NFTAmount_dyn","nativeSrc":"11887:37:89","nodeType":"YulIdentifier","src":"11887:37:89"},"nativeSrc":"11887:75:89","nodeType":"YulFunctionCall","src":"11887:75:89"}],"functionName":{"name":"mstore","nativeSrc":"11861:6:89","nodeType":"YulIdentifier","src":"11861:6:89"},"nativeSrc":"11861:102:89","nodeType":"YulFunctionCall","src":"11861:102:89"},"nativeSrc":"11861:102:89","nodeType":"YulExpressionStatement","src":"11861:102:89"},{"nativeSrc":"11972:20:89","nodeType":"YulAssignment","src":"11972:20:89","value":{"name":"value_1","nativeSrc":"11985:7:89","nodeType":"YulIdentifier","src":"11985:7:89"},"variableNames":[{"name":"converted","nativeSrc":"11972:9:89","nodeType":"YulIdentifier","src":"11972:9:89"}]}]},"name":"convert_t_struct$_OutMessageV1_$16084_calldata_ptr_to_t_struct$_OutMessageV1_$16084_memory_ptr","nativeSrc":"10366:1632:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10470:5:89","nodeType":"YulTypedName","src":"10470:5:89","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"10480:9:89","nodeType":"YulTypedName","src":"10480:9:89","type":""}],"src":"10366:1632:89"},{"body":{"nativeSrc":"12083:242:89","nodeType":"YulBlock","src":"12083:242:89","statements":[{"body":{"nativeSrc":"12129:16:89","nodeType":"YulBlock","src":"12129:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12138:1:89","nodeType":"YulLiteral","src":"12138:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12141:1:89","nodeType":"YulLiteral","src":"12141:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12131:6:89","nodeType":"YulIdentifier","src":"12131:6:89"},"nativeSrc":"12131:12:89","nodeType":"YulFunctionCall","src":"12131:12:89"},"nativeSrc":"12131:12:89","nodeType":"YulExpressionStatement","src":"12131:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12104:7:89","nodeType":"YulIdentifier","src":"12104:7:89"},{"name":"headStart","nativeSrc":"12113:9:89","nodeType":"YulIdentifier","src":"12113:9:89"}],"functionName":{"name":"sub","nativeSrc":"12100:3:89","nodeType":"YulIdentifier","src":"12100:3:89"},"nativeSrc":"12100:23:89","nodeType":"YulFunctionCall","src":"12100:23:89"},{"kind":"number","nativeSrc":"12125:2:89","nodeType":"YulLiteral","src":"12125:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12096:3:89","nodeType":"YulIdentifier","src":"12096:3:89"},"nativeSrc":"12096:32:89","nodeType":"YulFunctionCall","src":"12096:32:89"},"nativeSrc":"12093:52:89","nodeType":"YulIf","src":"12093:52:89"},{"nativeSrc":"12154:37:89","nodeType":"YulVariableDeclaration","src":"12154:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"12181:9:89","nodeType":"YulIdentifier","src":"12181:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"12168:12:89","nodeType":"YulIdentifier","src":"12168:12:89"},"nativeSrc":"12168:23:89","nodeType":"YulFunctionCall","src":"12168:23:89"},"variables":[{"name":"offset","nativeSrc":"12158:6:89","nodeType":"YulTypedName","src":"12158:6:89","type":""}]},{"body":{"nativeSrc":"12234:16:89","nodeType":"YulBlock","src":"12234:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12243:1:89","nodeType":"YulLiteral","src":"12243:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12246:1:89","nodeType":"YulLiteral","src":"12246:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12236:6:89","nodeType":"YulIdentifier","src":"12236:6:89"},"nativeSrc":"12236:12:89","nodeType":"YulFunctionCall","src":"12236:12:89"},"nativeSrc":"12236:12:89","nodeType":"YulExpressionStatement","src":"12236:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12206:6:89","nodeType":"YulIdentifier","src":"12206:6:89"},{"kind":"number","nativeSrc":"12214:18:89","nodeType":"YulLiteral","src":"12214:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12203:2:89","nodeType":"YulIdentifier","src":"12203:2:89"},"nativeSrc":"12203:30:89","nodeType":"YulFunctionCall","src":"12203:30:89"},"nativeSrc":"12200:50:89","nodeType":"YulIf","src":"12200:50:89"},{"nativeSrc":"12259:60:89","nodeType":"YulAssignment","src":"12259:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12291:9:89","nodeType":"YulIdentifier","src":"12291:9:89"},{"name":"offset","nativeSrc":"12302:6:89","nodeType":"YulIdentifier","src":"12302:6:89"}],"functionName":{"name":"add","nativeSrc":"12287:3:89","nodeType":"YulIdentifier","src":"12287:3:89"},"nativeSrc":"12287:22:89","nodeType":"YulFunctionCall","src":"12287:22:89"},{"name":"dataEnd","nativeSrc":"12311:7:89","nodeType":"YulIdentifier","src":"12311:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"12269:17:89","nodeType":"YulIdentifier","src":"12269:17:89"},"nativeSrc":"12269:50:89","nodeType":"YulFunctionCall","src":"12269:50:89"},"variableNames":[{"name":"value0","nativeSrc":"12259:6:89","nodeType":"YulIdentifier","src":"12259:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nativeSrc":"12003:322:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12049:9:89","nodeType":"YulTypedName","src":"12049:9:89","type":""},{"name":"dataEnd","nativeSrc":"12060:7:89","nodeType":"YulTypedName","src":"12060:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12072:6:89","nodeType":"YulTypedName","src":"12072:6:89","type":""}],"src":"12003:322:89"},{"body":{"nativeSrc":"12380:350:89","nodeType":"YulBlock","src":"12380:350:89","statements":[{"nativeSrc":"12390:26:89","nodeType":"YulVariableDeclaration","src":"12390:26:89","value":{"arguments":[{"name":"value","nativeSrc":"12410:5:89","nodeType":"YulIdentifier","src":"12410:5:89"}],"functionName":{"name":"mload","nativeSrc":"12404:5:89","nodeType":"YulIdentifier","src":"12404:5:89"},"nativeSrc":"12404:12:89","nodeType":"YulFunctionCall","src":"12404:12:89"},"variables":[{"name":"length","nativeSrc":"12394:6:89","nodeType":"YulTypedName","src":"12394:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12432:3:89","nodeType":"YulIdentifier","src":"12432:3:89"},{"name":"length","nativeSrc":"12437:6:89","nodeType":"YulIdentifier","src":"12437:6:89"}],"functionName":{"name":"mstore","nativeSrc":"12425:6:89","nodeType":"YulIdentifier","src":"12425:6:89"},"nativeSrc":"12425:19:89","nodeType":"YulFunctionCall","src":"12425:19:89"},"nativeSrc":"12425:19:89","nodeType":"YulExpressionStatement","src":"12425:19:89"},{"nativeSrc":"12453:10:89","nodeType":"YulVariableDeclaration","src":"12453:10:89","value":{"kind":"number","nativeSrc":"12462:1:89","nodeType":"YulLiteral","src":"12462:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"12457:1:89","nodeType":"YulTypedName","src":"12457:1:89","type":""}]},{"body":{"nativeSrc":"12524:87:89","nodeType":"YulBlock","src":"12524:87:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"12553:3:89","nodeType":"YulIdentifier","src":"12553:3:89"},{"name":"i","nativeSrc":"12558:1:89","nodeType":"YulIdentifier","src":"12558:1:89"}],"functionName":{"name":"add","nativeSrc":"12549:3:89","nodeType":"YulIdentifier","src":"12549:3:89"},"nativeSrc":"12549:11:89","nodeType":"YulFunctionCall","src":"12549:11:89"},{"kind":"number","nativeSrc":"12562:4:89","nodeType":"YulLiteral","src":"12562:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12545:3:89","nodeType":"YulIdentifier","src":"12545:3:89"},"nativeSrc":"12545:22:89","nodeType":"YulFunctionCall","src":"12545:22:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12583:5:89","nodeType":"YulIdentifier","src":"12583:5:89"},{"name":"i","nativeSrc":"12590:1:89","nodeType":"YulIdentifier","src":"12590:1:89"}],"functionName":{"name":"add","nativeSrc":"12579:3:89","nodeType":"YulIdentifier","src":"12579:3:89"},"nativeSrc":"12579:13:89","nodeType":"YulFunctionCall","src":"12579:13:89"},{"kind":"number","nativeSrc":"12594:4:89","nodeType":"YulLiteral","src":"12594:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12575:3:89","nodeType":"YulIdentifier","src":"12575:3:89"},"nativeSrc":"12575:24:89","nodeType":"YulFunctionCall","src":"12575:24:89"}],"functionName":{"name":"mload","nativeSrc":"12569:5:89","nodeType":"YulIdentifier","src":"12569:5:89"},"nativeSrc":"12569:31:89","nodeType":"YulFunctionCall","src":"12569:31:89"}],"functionName":{"name":"mstore","nativeSrc":"12538:6:89","nodeType":"YulIdentifier","src":"12538:6:89"},"nativeSrc":"12538:63:89","nodeType":"YulFunctionCall","src":"12538:63:89"},"nativeSrc":"12538:63:89","nodeType":"YulExpressionStatement","src":"12538:63:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"12483:1:89","nodeType":"YulIdentifier","src":"12483:1:89"},{"name":"length","nativeSrc":"12486:6:89","nodeType":"YulIdentifier","src":"12486:6:89"}],"functionName":{"name":"lt","nativeSrc":"12480:2:89","nodeType":"YulIdentifier","src":"12480:2:89"},"nativeSrc":"12480:13:89","nodeType":"YulFunctionCall","src":"12480:13:89"},"nativeSrc":"12472:139:89","nodeType":"YulForLoop","post":{"nativeSrc":"12494:21:89","nodeType":"YulBlock","src":"12494:21:89","statements":[{"nativeSrc":"12496:17:89","nodeType":"YulAssignment","src":"12496:17:89","value":{"arguments":[{"name":"i","nativeSrc":"12505:1:89","nodeType":"YulIdentifier","src":"12505:1:89"},{"kind":"number","nativeSrc":"12508:4:89","nodeType":"YulLiteral","src":"12508:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12501:3:89","nodeType":"YulIdentifier","src":"12501:3:89"},"nativeSrc":"12501:12:89","nodeType":"YulFunctionCall","src":"12501:12:89"},"variableNames":[{"name":"i","nativeSrc":"12496:1:89","nodeType":"YulIdentifier","src":"12496:1:89"}]}]},"pre":{"nativeSrc":"12476:3:89","nodeType":"YulBlock","src":"12476:3:89","statements":[]},"src":"12472:139:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"12635:3:89","nodeType":"YulIdentifier","src":"12635:3:89"},{"name":"length","nativeSrc":"12640:6:89","nodeType":"YulIdentifier","src":"12640:6:89"}],"functionName":{"name":"add","nativeSrc":"12631:3:89","nodeType":"YulIdentifier","src":"12631:3:89"},"nativeSrc":"12631:16:89","nodeType":"YulFunctionCall","src":"12631:16:89"},{"kind":"number","nativeSrc":"12649:4:89","nodeType":"YulLiteral","src":"12649:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12627:3:89","nodeType":"YulIdentifier","src":"12627:3:89"},"nativeSrc":"12627:27:89","nodeType":"YulFunctionCall","src":"12627:27:89"},{"kind":"number","nativeSrc":"12656:1:89","nodeType":"YulLiteral","src":"12656:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12620:6:89","nodeType":"YulIdentifier","src":"12620:6:89"},"nativeSrc":"12620:38:89","nodeType":"YulFunctionCall","src":"12620:38:89"},"nativeSrc":"12620:38:89","nodeType":"YulExpressionStatement","src":"12620:38:89"},{"nativeSrc":"12667:57:89","nodeType":"YulAssignment","src":"12667:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"12682:3:89","nodeType":"YulIdentifier","src":"12682:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"12695:6:89","nodeType":"YulIdentifier","src":"12695:6:89"},{"kind":"number","nativeSrc":"12703:2:89","nodeType":"YulLiteral","src":"12703:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"12691:3:89","nodeType":"YulIdentifier","src":"12691:3:89"},"nativeSrc":"12691:15:89","nodeType":"YulFunctionCall","src":"12691:15:89"},{"arguments":[{"kind":"number","nativeSrc":"12712:2:89","nodeType":"YulLiteral","src":"12712:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"12708:3:89","nodeType":"YulIdentifier","src":"12708:3:89"},"nativeSrc":"12708:7:89","nodeType":"YulFunctionCall","src":"12708:7:89"}],"functionName":{"name":"and","nativeSrc":"12687:3:89","nodeType":"YulIdentifier","src":"12687:3:89"},"nativeSrc":"12687:29:89","nodeType":"YulFunctionCall","src":"12687:29:89"}],"functionName":{"name":"add","nativeSrc":"12678:3:89","nodeType":"YulIdentifier","src":"12678:3:89"},"nativeSrc":"12678:39:89","nodeType":"YulFunctionCall","src":"12678:39:89"},{"kind":"number","nativeSrc":"12719:4:89","nodeType":"YulLiteral","src":"12719:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12674:3:89","nodeType":"YulIdentifier","src":"12674:3:89"},"nativeSrc":"12674:50:89","nodeType":"YulFunctionCall","src":"12674:50:89"},"variableNames":[{"name":"end","nativeSrc":"12667:3:89","nodeType":"YulIdentifier","src":"12667:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"12330:400:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12357:5:89","nodeType":"YulTypedName","src":"12357:5:89","type":""},{"name":"pos","nativeSrc":"12364:3:89","nodeType":"YulTypedName","src":"12364:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12372:3:89","nodeType":"YulTypedName","src":"12372:3:89","type":""}],"src":"12330:400:89"},{"body":{"nativeSrc":"12856:99:89","nodeType":"YulBlock","src":"12856:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12873:9:89","nodeType":"YulIdentifier","src":"12873:9:89"},{"kind":"number","nativeSrc":"12884:2:89","nodeType":"YulLiteral","src":"12884:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12866:6:89","nodeType":"YulIdentifier","src":"12866:6:89"},"nativeSrc":"12866:21:89","nodeType":"YulFunctionCall","src":"12866:21:89"},"nativeSrc":"12866:21:89","nodeType":"YulExpressionStatement","src":"12866:21:89"},{"nativeSrc":"12896:53:89","nodeType":"YulAssignment","src":"12896:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"12922:6:89","nodeType":"YulIdentifier","src":"12922:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"12934:9:89","nodeType":"YulIdentifier","src":"12934:9:89"},{"kind":"number","nativeSrc":"12945:2:89","nodeType":"YulLiteral","src":"12945:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12930:3:89","nodeType":"YulIdentifier","src":"12930:3:89"},"nativeSrc":"12930:18:89","nodeType":"YulFunctionCall","src":"12930:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"12904:17:89","nodeType":"YulIdentifier","src":"12904:17:89"},"nativeSrc":"12904:45:89","nodeType":"YulFunctionCall","src":"12904:45:89"},"variableNames":[{"name":"tail","nativeSrc":"12896:4:89","nodeType":"YulIdentifier","src":"12896:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12735:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12825:9:89","nodeType":"YulTypedName","src":"12825:9:89","type":""},{"name":"value0","nativeSrc":"12836:6:89","nodeType":"YulTypedName","src":"12836:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12847:4:89","nodeType":"YulTypedName","src":"12847:4:89","type":""}],"src":"12735:220:89"},{"body":{"nativeSrc":"13085:264:89","nodeType":"YulBlock","src":"13085:264:89","statements":[{"body":{"nativeSrc":"13131:16:89","nodeType":"YulBlock","src":"13131:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13140:1:89","nodeType":"YulLiteral","src":"13140:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13143:1:89","nodeType":"YulLiteral","src":"13143:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13133:6:89","nodeType":"YulIdentifier","src":"13133:6:89"},"nativeSrc":"13133:12:89","nodeType":"YulFunctionCall","src":"13133:12:89"},"nativeSrc":"13133:12:89","nodeType":"YulExpressionStatement","src":"13133:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13106:7:89","nodeType":"YulIdentifier","src":"13106:7:89"},{"name":"headStart","nativeSrc":"13115:9:89","nodeType":"YulIdentifier","src":"13115:9:89"}],"functionName":{"name":"sub","nativeSrc":"13102:3:89","nodeType":"YulIdentifier","src":"13102:3:89"},"nativeSrc":"13102:23:89","nodeType":"YulFunctionCall","src":"13102:23:89"},{"kind":"number","nativeSrc":"13127:2:89","nodeType":"YulLiteral","src":"13127:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13098:3:89","nodeType":"YulIdentifier","src":"13098:3:89"},"nativeSrc":"13098:32:89","nodeType":"YulFunctionCall","src":"13098:32:89"},"nativeSrc":"13095:52:89","nodeType":"YulIf","src":"13095:52:89"},{"nativeSrc":"13156:37:89","nodeType":"YulVariableDeclaration","src":"13156:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13183:9:89","nodeType":"YulIdentifier","src":"13183:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"13170:12:89","nodeType":"YulIdentifier","src":"13170:12:89"},"nativeSrc":"13170:23:89","nodeType":"YulFunctionCall","src":"13170:23:89"},"variables":[{"name":"offset","nativeSrc":"13160:6:89","nodeType":"YulTypedName","src":"13160:6:89","type":""}]},{"body":{"nativeSrc":"13236:16:89","nodeType":"YulBlock","src":"13236:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13245:1:89","nodeType":"YulLiteral","src":"13245:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13248:1:89","nodeType":"YulLiteral","src":"13248:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13238:6:89","nodeType":"YulIdentifier","src":"13238:6:89"},"nativeSrc":"13238:12:89","nodeType":"YulFunctionCall","src":"13238:12:89"},"nativeSrc":"13238:12:89","nodeType":"YulExpressionStatement","src":"13238:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13208:6:89","nodeType":"YulIdentifier","src":"13208:6:89"},{"kind":"number","nativeSrc":"13216:18:89","nodeType":"YulLiteral","src":"13216:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13205:2:89","nodeType":"YulIdentifier","src":"13205:2:89"},"nativeSrc":"13205:30:89","nodeType":"YulFunctionCall","src":"13205:30:89"},"nativeSrc":"13202:50:89","nodeType":"YulIf","src":"13202:50:89"},{"nativeSrc":"13261:82:89","nodeType":"YulAssignment","src":"13261:82:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13315:9:89","nodeType":"YulIdentifier","src":"13315:9:89"},{"name":"offset","nativeSrc":"13326:6:89","nodeType":"YulIdentifier","src":"13326:6:89"}],"functionName":{"name":"add","nativeSrc":"13311:3:89","nodeType":"YulIdentifier","src":"13311:3:89"},"nativeSrc":"13311:22:89","nodeType":"YulFunctionCall","src":"13311:22:89"},{"name":"dataEnd","nativeSrc":"13335:7:89","nodeType":"YulIdentifier","src":"13335:7:89"}],"functionName":{"name":"abi_decode_array_struct_TokenAmount_dyn","nativeSrc":"13271:39:89","nodeType":"YulIdentifier","src":"13271:39:89"},"nativeSrc":"13271:72:89","nodeType":"YulFunctionCall","src":"13271:72:89"},"variableNames":[{"name":"value0","nativeSrc":"13261:6:89","nodeType":"YulIdentifier","src":"13261:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr","nativeSrc":"12960:389:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13051:9:89","nodeType":"YulTypedName","src":"13051:9:89","type":""},{"name":"dataEnd","nativeSrc":"13062:7:89","nodeType":"YulTypedName","src":"13062:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13074:6:89","nodeType":"YulTypedName","src":"13074:6:89","type":""}],"src":"12960:389:89"},{"body":{"nativeSrc":"13477:262:89","nodeType":"YulBlock","src":"13477:262:89","statements":[{"body":{"nativeSrc":"13523:16:89","nodeType":"YulBlock","src":"13523:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13532:1:89","nodeType":"YulLiteral","src":"13532:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13535:1:89","nodeType":"YulLiteral","src":"13535:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13525:6:89","nodeType":"YulIdentifier","src":"13525:6:89"},"nativeSrc":"13525:12:89","nodeType":"YulFunctionCall","src":"13525:12:89"},"nativeSrc":"13525:12:89","nodeType":"YulExpressionStatement","src":"13525:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13498:7:89","nodeType":"YulIdentifier","src":"13498:7:89"},{"name":"headStart","nativeSrc":"13507:9:89","nodeType":"YulIdentifier","src":"13507:9:89"}],"functionName":{"name":"sub","nativeSrc":"13494:3:89","nodeType":"YulIdentifier","src":"13494:3:89"},"nativeSrc":"13494:23:89","nodeType":"YulFunctionCall","src":"13494:23:89"},{"kind":"number","nativeSrc":"13519:2:89","nodeType":"YulLiteral","src":"13519:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13490:3:89","nodeType":"YulIdentifier","src":"13490:3:89"},"nativeSrc":"13490:32:89","nodeType":"YulFunctionCall","src":"13490:32:89"},"nativeSrc":"13487:52:89","nodeType":"YulIf","src":"13487:52:89"},{"nativeSrc":"13548:37:89","nodeType":"YulVariableDeclaration","src":"13548:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13575:9:89","nodeType":"YulIdentifier","src":"13575:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"13562:12:89","nodeType":"YulIdentifier","src":"13562:12:89"},"nativeSrc":"13562:23:89","nodeType":"YulFunctionCall","src":"13562:23:89"},"variables":[{"name":"offset","nativeSrc":"13552:6:89","nodeType":"YulTypedName","src":"13552:6:89","type":""}]},{"body":{"nativeSrc":"13628:16:89","nodeType":"YulBlock","src":"13628:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13637:1:89","nodeType":"YulLiteral","src":"13637:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13640:1:89","nodeType":"YulLiteral","src":"13640:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13630:6:89","nodeType":"YulIdentifier","src":"13630:6:89"},"nativeSrc":"13630:12:89","nodeType":"YulFunctionCall","src":"13630:12:89"},"nativeSrc":"13630:12:89","nodeType":"YulExpressionStatement","src":"13630:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13600:6:89","nodeType":"YulIdentifier","src":"13600:6:89"},{"kind":"number","nativeSrc":"13608:18:89","nodeType":"YulLiteral","src":"13608:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13597:2:89","nodeType":"YulIdentifier","src":"13597:2:89"},"nativeSrc":"13597:30:89","nodeType":"YulFunctionCall","src":"13597:30:89"},"nativeSrc":"13594:50:89","nodeType":"YulIf","src":"13594:50:89"},{"nativeSrc":"13653:80:89","nodeType":"YulAssignment","src":"13653:80:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13705:9:89","nodeType":"YulIdentifier","src":"13705:9:89"},{"name":"offset","nativeSrc":"13716:6:89","nodeType":"YulIdentifier","src":"13716:6:89"}],"functionName":{"name":"add","nativeSrc":"13701:3:89","nodeType":"YulIdentifier","src":"13701:3:89"},"nativeSrc":"13701:22:89","nodeType":"YulFunctionCall","src":"13701:22:89"},{"name":"dataEnd","nativeSrc":"13725:7:89","nodeType":"YulIdentifier","src":"13725:7:89"}],"functionName":{"name":"abi_decode_array_struct_NFTAmount_dyn","nativeSrc":"13663:37:89","nodeType":"YulIdentifier","src":"13663:37:89"},"nativeSrc":"13663:70:89","nodeType":"YulFunctionCall","src":"13663:70:89"},"variableNames":[{"name":"value0","nativeSrc":"13653:6:89","nodeType":"YulIdentifier","src":"13653:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr","nativeSrc":"13354:385:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13443:9:89","nodeType":"YulTypedName","src":"13443:9:89","type":""},{"name":"dataEnd","nativeSrc":"13454:7:89","nodeType":"YulTypedName","src":"13454:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13466:6:89","nodeType":"YulTypedName","src":"13466:6:89","type":""}],"src":"13354:385:89"},{"body":{"nativeSrc":"13787:59:89","nodeType":"YulBlock","src":"13787:59:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13804:3:89","nodeType":"YulIdentifier","src":"13804:3:89"},{"arguments":[{"name":"value","nativeSrc":"13813:5:89","nodeType":"YulIdentifier","src":"13813:5:89"},{"kind":"number","nativeSrc":"13820:18:89","nodeType":"YulLiteral","src":"13820:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"13809:3:89","nodeType":"YulIdentifier","src":"13809:3:89"},"nativeSrc":"13809:30:89","nodeType":"YulFunctionCall","src":"13809:30:89"}],"functionName":{"name":"mstore","nativeSrc":"13797:6:89","nodeType":"YulIdentifier","src":"13797:6:89"},"nativeSrc":"13797:43:89","nodeType":"YulFunctionCall","src":"13797:43:89"},"nativeSrc":"13797:43:89","nodeType":"YulExpressionStatement","src":"13797:43:89"}]},"name":"abi_encode_uint64","nativeSrc":"13744:102:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13771:5:89","nodeType":"YulTypedName","src":"13771:5:89","type":""},{"name":"pos","nativeSrc":"13778:3:89","nodeType":"YulTypedName","src":"13778:3:89","type":""}],"src":"13744:102:89"},{"body":{"nativeSrc":"13923:543:89","nodeType":"YulBlock","src":"13923:543:89","statements":[{"nativeSrc":"13933:26:89","nodeType":"YulVariableDeclaration","src":"13933:26:89","value":{"arguments":[{"name":"value","nativeSrc":"13953:5:89","nodeType":"YulIdentifier","src":"13953:5:89"}],"functionName":{"name":"mload","nativeSrc":"13947:5:89","nodeType":"YulIdentifier","src":"13947:5:89"},"nativeSrc":"13947:12:89","nodeType":"YulFunctionCall","src":"13947:12:89"},"variables":[{"name":"length","nativeSrc":"13937:6:89","nodeType":"YulTypedName","src":"13937:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13975:3:89","nodeType":"YulIdentifier","src":"13975:3:89"},{"name":"length","nativeSrc":"13980:6:89","nodeType":"YulIdentifier","src":"13980:6:89"}],"functionName":{"name":"mstore","nativeSrc":"13968:6:89","nodeType":"YulIdentifier","src":"13968:6:89"},"nativeSrc":"13968:19:89","nodeType":"YulFunctionCall","src":"13968:19:89"},"nativeSrc":"13968:19:89","nodeType":"YulExpressionStatement","src":"13968:19:89"},{"nativeSrc":"13996:21:89","nodeType":"YulAssignment","src":"13996:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"14007:3:89","nodeType":"YulIdentifier","src":"14007:3:89"},{"kind":"number","nativeSrc":"14012:4:89","nodeType":"YulLiteral","src":"14012:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14003:3:89","nodeType":"YulIdentifier","src":"14003:3:89"},"nativeSrc":"14003:14:89","nodeType":"YulFunctionCall","src":"14003:14:89"},"variableNames":[{"name":"pos","nativeSrc":"13996:3:89","nodeType":"YulIdentifier","src":"13996:3:89"}]},{"nativeSrc":"14026:30:89","nodeType":"YulVariableDeclaration","src":"14026:30:89","value":{"arguments":[{"name":"value","nativeSrc":"14044:5:89","nodeType":"YulIdentifier","src":"14044:5:89"},{"kind":"number","nativeSrc":"14051:4:89","nodeType":"YulLiteral","src":"14051:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14040:3:89","nodeType":"YulIdentifier","src":"14040:3:89"},"nativeSrc":"14040:16:89","nodeType":"YulFunctionCall","src":"14040:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"14030:6:89","nodeType":"YulTypedName","src":"14030:6:89","type":""}]},{"nativeSrc":"14065:10:89","nodeType":"YulVariableDeclaration","src":"14065:10:89","value":{"kind":"number","nativeSrc":"14074:1:89","nodeType":"YulLiteral","src":"14074:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14069:1:89","nodeType":"YulTypedName","src":"14069:1:89","type":""}]},{"body":{"nativeSrc":"14133:308:89","nodeType":"YulBlock","src":"14133:308:89","statements":[{"nativeSrc":"14147:23:89","nodeType":"YulVariableDeclaration","src":"14147:23:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14163:6:89","nodeType":"YulIdentifier","src":"14163:6:89"}],"functionName":{"name":"mload","nativeSrc":"14157:5:89","nodeType":"YulIdentifier","src":"14157:5:89"},"nativeSrc":"14157:13:89","nodeType":"YulFunctionCall","src":"14157:13:89"},"variables":[{"name":"_1","nativeSrc":"14151:2:89","nodeType":"YulTypedName","src":"14151:2:89","type":""}]},{"nativeSrc":"14183:19:89","nodeType":"YulVariableDeclaration","src":"14183:19:89","value":{"kind":"number","nativeSrc":"14201:1:89","nodeType":"YulLiteral","src":"14201:1:89","type":"","value":"0"},"variables":[{"name":"updatedPos","nativeSrc":"14187:10:89","nodeType":"YulTypedName","src":"14187:10:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14222:3:89","nodeType":"YulIdentifier","src":"14222:3:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"14237:2:89","nodeType":"YulIdentifier","src":"14237:2:89"}],"functionName":{"name":"mload","nativeSrc":"14231:5:89","nodeType":"YulIdentifier","src":"14231:5:89"},"nativeSrc":"14231:9:89","nodeType":"YulFunctionCall","src":"14231:9:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14250:3:89","nodeType":"YulLiteral","src":"14250:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"14255:1:89","nodeType":"YulLiteral","src":"14255:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"14246:3:89","nodeType":"YulIdentifier","src":"14246:3:89"},"nativeSrc":"14246:11:89","nodeType":"YulFunctionCall","src":"14246:11:89"},{"kind":"number","nativeSrc":"14259:1:89","nodeType":"YulLiteral","src":"14259:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"14242:3:89","nodeType":"YulIdentifier","src":"14242:3:89"},"nativeSrc":"14242:19:89","nodeType":"YulFunctionCall","src":"14242:19:89"}],"functionName":{"name":"and","nativeSrc":"14227:3:89","nodeType":"YulIdentifier","src":"14227:3:89"},"nativeSrc":"14227:35:89","nodeType":"YulFunctionCall","src":"14227:35:89"}],"functionName":{"name":"mstore","nativeSrc":"14215:6:89","nodeType":"YulIdentifier","src":"14215:6:89"},"nativeSrc":"14215:48:89","nodeType":"YulFunctionCall","src":"14215:48:89"},"nativeSrc":"14215:48:89","nodeType":"YulExpressionStatement","src":"14215:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14287:3:89","nodeType":"YulIdentifier","src":"14287:3:89"},{"kind":"number","nativeSrc":"14292:4:89","nodeType":"YulLiteral","src":"14292:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14283:3:89","nodeType":"YulIdentifier","src":"14283:3:89"},"nativeSrc":"14283:14:89","nodeType":"YulFunctionCall","src":"14283:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"14309:2:89","nodeType":"YulIdentifier","src":"14309:2:89"},{"kind":"number","nativeSrc":"14313:4:89","nodeType":"YulLiteral","src":"14313:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14305:3:89","nodeType":"YulIdentifier","src":"14305:3:89"},"nativeSrc":"14305:13:89","nodeType":"YulFunctionCall","src":"14305:13:89"}],"functionName":{"name":"mload","nativeSrc":"14299:5:89","nodeType":"YulIdentifier","src":"14299:5:89"},"nativeSrc":"14299:20:89","nodeType":"YulFunctionCall","src":"14299:20:89"}],"functionName":{"name":"mstore","nativeSrc":"14276:6:89","nodeType":"YulIdentifier","src":"14276:6:89"},"nativeSrc":"14276:44:89","nodeType":"YulFunctionCall","src":"14276:44:89"},"nativeSrc":"14276:44:89","nodeType":"YulExpressionStatement","src":"14276:44:89"},{"nativeSrc":"14333:28:89","nodeType":"YulAssignment","src":"14333:28:89","value":{"arguments":[{"name":"pos","nativeSrc":"14351:3:89","nodeType":"YulIdentifier","src":"14351:3:89"},{"kind":"number","nativeSrc":"14356:4:89","nodeType":"YulLiteral","src":"14356:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14347:3:89","nodeType":"YulIdentifier","src":"14347:3:89"},"nativeSrc":"14347:14:89","nodeType":"YulFunctionCall","src":"14347:14:89"},"variableNames":[{"name":"updatedPos","nativeSrc":"14333:10:89","nodeType":"YulIdentifier","src":"14333:10:89"}]},{"nativeSrc":"14374:17:89","nodeType":"YulAssignment","src":"14374:17:89","value":{"name":"updatedPos","nativeSrc":"14381:10:89","nodeType":"YulIdentifier","src":"14381:10:89"},"variableNames":[{"name":"pos","nativeSrc":"14374:3:89","nodeType":"YulIdentifier","src":"14374:3:89"}]},{"nativeSrc":"14404:27:89","nodeType":"YulAssignment","src":"14404:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14418:6:89","nodeType":"YulIdentifier","src":"14418:6:89"},{"kind":"number","nativeSrc":"14426:4:89","nodeType":"YulLiteral","src":"14426:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14414:3:89","nodeType":"YulIdentifier","src":"14414:3:89"},"nativeSrc":"14414:17:89","nodeType":"YulFunctionCall","src":"14414:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"14404:6:89","nodeType":"YulIdentifier","src":"14404:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14095:1:89","nodeType":"YulIdentifier","src":"14095:1:89"},{"name":"length","nativeSrc":"14098:6:89","nodeType":"YulIdentifier","src":"14098:6:89"}],"functionName":{"name":"lt","nativeSrc":"14092:2:89","nodeType":"YulIdentifier","src":"14092:2:89"},"nativeSrc":"14092:13:89","nodeType":"YulFunctionCall","src":"14092:13:89"},"nativeSrc":"14084:357:89","nodeType":"YulForLoop","post":{"nativeSrc":"14106:18:89","nodeType":"YulBlock","src":"14106:18:89","statements":[{"nativeSrc":"14108:14:89","nodeType":"YulAssignment","src":"14108:14:89","value":{"arguments":[{"name":"i","nativeSrc":"14117:1:89","nodeType":"YulIdentifier","src":"14117:1:89"},{"kind":"number","nativeSrc":"14120:1:89","nodeType":"YulLiteral","src":"14120:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14113:3:89","nodeType":"YulIdentifier","src":"14113:3:89"},"nativeSrc":"14113:9:89","nodeType":"YulFunctionCall","src":"14113:9:89"},"variableNames":[{"name":"i","nativeSrc":"14108:1:89","nodeType":"YulIdentifier","src":"14108:1:89"}]}]},"pre":{"nativeSrc":"14088:3:89","nodeType":"YulBlock","src":"14088:3:89","statements":[]},"src":"14084:357:89"},{"nativeSrc":"14450:10:89","nodeType":"YulAssignment","src":"14450:10:89","value":{"name":"pos","nativeSrc":"14457:3:89","nodeType":"YulIdentifier","src":"14457:3:89"},"variableNames":[{"name":"end","nativeSrc":"14450:3:89","nodeType":"YulIdentifier","src":"14450:3:89"}]}]},"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"13851:615:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13900:5:89","nodeType":"YulTypedName","src":"13900:5:89","type":""},{"name":"pos","nativeSrc":"13907:3:89","nodeType":"YulTypedName","src":"13907:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13915:3:89","nodeType":"YulTypedName","src":"13915:3:89","type":""}],"src":"13851:615:89"},{"body":{"nativeSrc":"14858:509:89","nodeType":"YulBlock","src":"14858:509:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14875:9:89","nodeType":"YulIdentifier","src":"14875:9:89"},{"arguments":[{"name":"value0","nativeSrc":"14890:6:89","nodeType":"YulIdentifier","src":"14890:6:89"},{"kind":"number","nativeSrc":"14898:18:89","nodeType":"YulLiteral","src":"14898:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"14886:3:89","nodeType":"YulIdentifier","src":"14886:3:89"},"nativeSrc":"14886:31:89","nodeType":"YulFunctionCall","src":"14886:31:89"}],"functionName":{"name":"mstore","nativeSrc":"14868:6:89","nodeType":"YulIdentifier","src":"14868:6:89"},"nativeSrc":"14868:50:89","nodeType":"YulFunctionCall","src":"14868:50:89"},"nativeSrc":"14868:50:89","nodeType":"YulExpressionStatement","src":"14868:50:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14938:9:89","nodeType":"YulIdentifier","src":"14938:9:89"},{"kind":"number","nativeSrc":"14949:2:89","nodeType":"YulLiteral","src":"14949:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14934:3:89","nodeType":"YulIdentifier","src":"14934:3:89"},"nativeSrc":"14934:18:89","nodeType":"YulFunctionCall","src":"14934:18:89"},{"name":"value1","nativeSrc":"14954:6:89","nodeType":"YulIdentifier","src":"14954:6:89"}],"functionName":{"name":"mstore","nativeSrc":"14927:6:89","nodeType":"YulIdentifier","src":"14927:6:89"},"nativeSrc":"14927:34:89","nodeType":"YulFunctionCall","src":"14927:34:89"},"nativeSrc":"14927:34:89","nodeType":"YulExpressionStatement","src":"14927:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14981:9:89","nodeType":"YulIdentifier","src":"14981:9:89"},{"kind":"number","nativeSrc":"14992:2:89","nodeType":"YulLiteral","src":"14992:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14977:3:89","nodeType":"YulIdentifier","src":"14977:3:89"},"nativeSrc":"14977:18:89","nodeType":"YulFunctionCall","src":"14977:18:89"},{"name":"value2","nativeSrc":"14997:6:89","nodeType":"YulIdentifier","src":"14997:6:89"}],"functionName":{"name":"mstore","nativeSrc":"14970:6:89","nodeType":"YulIdentifier","src":"14970:6:89"},"nativeSrc":"14970:34:89","nodeType":"YulFunctionCall","src":"14970:34:89"},"nativeSrc":"14970:34:89","nodeType":"YulExpressionStatement","src":"14970:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15024:9:89","nodeType":"YulIdentifier","src":"15024:9:89"},{"kind":"number","nativeSrc":"15035:2:89","nodeType":"YulLiteral","src":"15035:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15020:3:89","nodeType":"YulIdentifier","src":"15020:3:89"},"nativeSrc":"15020:18:89","nodeType":"YulFunctionCall","src":"15020:18:89"},{"kind":"number","nativeSrc":"15040:3:89","nodeType":"YulLiteral","src":"15040:3:89","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"15013:6:89","nodeType":"YulIdentifier","src":"15013:6:89"},"nativeSrc":"15013:31:89","nodeType":"YulFunctionCall","src":"15013:31:89"},"nativeSrc":"15013:31:89","nodeType":"YulExpressionStatement","src":"15013:31:89"},{"nativeSrc":"15053:60:89","nodeType":"YulVariableDeclaration","src":"15053:60:89","value":{"arguments":[{"name":"value3","nativeSrc":"15085:6:89","nodeType":"YulIdentifier","src":"15085:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"15097:9:89","nodeType":"YulIdentifier","src":"15097:9:89"},{"kind":"number","nativeSrc":"15108:3:89","nodeType":"YulLiteral","src":"15108:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"15093:3:89","nodeType":"YulIdentifier","src":"15093:3:89"},"nativeSrc":"15093:19:89","nodeType":"YulFunctionCall","src":"15093:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"15067:17:89","nodeType":"YulIdentifier","src":"15067:17:89"},"nativeSrc":"15067:46:89","nodeType":"YulFunctionCall","src":"15067:46:89"},"variables":[{"name":"tail_1","nativeSrc":"15057:6:89","nodeType":"YulTypedName","src":"15057:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15133:9:89","nodeType":"YulIdentifier","src":"15133:9:89"},{"kind":"number","nativeSrc":"15144:3:89","nodeType":"YulLiteral","src":"15144:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15129:3:89","nodeType":"YulIdentifier","src":"15129:3:89"},"nativeSrc":"15129:19:89","nodeType":"YulFunctionCall","src":"15129:19:89"},{"arguments":[{"name":"tail_1","nativeSrc":"15154:6:89","nodeType":"YulIdentifier","src":"15154:6:89"},{"name":"headStart","nativeSrc":"15162:9:89","nodeType":"YulIdentifier","src":"15162:9:89"}],"functionName":{"name":"sub","nativeSrc":"15150:3:89","nodeType":"YulIdentifier","src":"15150:3:89"},"nativeSrc":"15150:22:89","nodeType":"YulFunctionCall","src":"15150:22:89"}],"functionName":{"name":"mstore","nativeSrc":"15122:6:89","nodeType":"YulIdentifier","src":"15122:6:89"},"nativeSrc":"15122:51:89","nodeType":"YulFunctionCall","src":"15122:51:89"},"nativeSrc":"15122:51:89","nodeType":"YulExpressionStatement","src":"15122:51:89"},{"nativeSrc":"15182:47:89","nodeType":"YulVariableDeclaration","src":"15182:47:89","value":{"arguments":[{"name":"value4","nativeSrc":"15214:6:89","nodeType":"YulIdentifier","src":"15214:6:89"},{"name":"tail_1","nativeSrc":"15222:6:89","nodeType":"YulIdentifier","src":"15222:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"15196:17:89","nodeType":"YulIdentifier","src":"15196:17:89"},"nativeSrc":"15196:33:89","nodeType":"YulFunctionCall","src":"15196:33:89"},"variables":[{"name":"tail_2","nativeSrc":"15186:6:89","nodeType":"YulTypedName","src":"15186:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15249:9:89","nodeType":"YulIdentifier","src":"15249:9:89"},{"kind":"number","nativeSrc":"15260:3:89","nodeType":"YulLiteral","src":"15260:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"15245:3:89","nodeType":"YulIdentifier","src":"15245:3:89"},"nativeSrc":"15245:19:89","nodeType":"YulFunctionCall","src":"15245:19:89"},{"arguments":[{"name":"tail_2","nativeSrc":"15270:6:89","nodeType":"YulIdentifier","src":"15270:6:89"},{"name":"headStart","nativeSrc":"15278:9:89","nodeType":"YulIdentifier","src":"15278:9:89"}],"functionName":{"name":"sub","nativeSrc":"15266:3:89","nodeType":"YulIdentifier","src":"15266:3:89"},"nativeSrc":"15266:22:89","nodeType":"YulFunctionCall","src":"15266:22:89"}],"functionName":{"name":"mstore","nativeSrc":"15238:6:89","nodeType":"YulIdentifier","src":"15238:6:89"},"nativeSrc":"15238:51:89","nodeType":"YulFunctionCall","src":"15238:51:89"},"nativeSrc":"15238:51:89","nodeType":"YulExpressionStatement","src":"15238:51:89"},{"nativeSrc":"15298:63:89","nodeType":"YulAssignment","src":"15298:63:89","value":{"arguments":[{"name":"value5","nativeSrc":"15346:6:89","nodeType":"YulIdentifier","src":"15346:6:89"},{"name":"tail_2","nativeSrc":"15354:6:89","nodeType":"YulIdentifier","src":"15354:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"15306:39:89","nodeType":"YulIdentifier","src":"15306:39:89"},"nativeSrc":"15306:55:89","nodeType":"YulFunctionCall","src":"15306:55:89"},"variableNames":[{"name":"tail","nativeSrc":"15298:4:89","nodeType":"YulIdentifier","src":"15298:4:89"}]}]},"name":"abi_encode_tuple_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr__to_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"14471:896:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14787:9:89","nodeType":"YulTypedName","src":"14787:9:89","type":""},{"name":"value5","nativeSrc":"14798:6:89","nodeType":"YulTypedName","src":"14798:6:89","type":""},{"name":"value4","nativeSrc":"14806:6:89","nodeType":"YulTypedName","src":"14806:6:89","type":""},{"name":"value3","nativeSrc":"14814:6:89","nodeType":"YulTypedName","src":"14814:6:89","type":""},{"name":"value2","nativeSrc":"14822:6:89","nodeType":"YulTypedName","src":"14822:6:89","type":""},{"name":"value1","nativeSrc":"14830:6:89","nodeType":"YulTypedName","src":"14830:6:89","type":""},{"name":"value0","nativeSrc":"14838:6:89","nodeType":"YulTypedName","src":"14838:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14849:4:89","nodeType":"YulTypedName","src":"14849:4:89","type":""}],"src":"14471:896:89"},{"body":{"nativeSrc":"15442:156:89","nodeType":"YulBlock","src":"15442:156:89","statements":[{"body":{"nativeSrc":"15488:16:89","nodeType":"YulBlock","src":"15488:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15497:1:89","nodeType":"YulLiteral","src":"15497:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"15500:1:89","nodeType":"YulLiteral","src":"15500:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15490:6:89","nodeType":"YulIdentifier","src":"15490:6:89"},"nativeSrc":"15490:12:89","nodeType":"YulFunctionCall","src":"15490:12:89"},"nativeSrc":"15490:12:89","nodeType":"YulExpressionStatement","src":"15490:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15463:7:89","nodeType":"YulIdentifier","src":"15463:7:89"},{"name":"headStart","nativeSrc":"15472:9:89","nodeType":"YulIdentifier","src":"15472:9:89"}],"functionName":{"name":"sub","nativeSrc":"15459:3:89","nodeType":"YulIdentifier","src":"15459:3:89"},"nativeSrc":"15459:23:89","nodeType":"YulFunctionCall","src":"15459:23:89"},{"kind":"number","nativeSrc":"15484:2:89","nodeType":"YulLiteral","src":"15484:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"15455:3:89","nodeType":"YulIdentifier","src":"15455:3:89"},"nativeSrc":"15455:32:89","nodeType":"YulFunctionCall","src":"15455:32:89"},"nativeSrc":"15452:52:89","nodeType":"YulIf","src":"15452:52:89"},{"nativeSrc":"15513:14:89","nodeType":"YulVariableDeclaration","src":"15513:14:89","value":{"kind":"number","nativeSrc":"15526:1:89","nodeType":"YulLiteral","src":"15526:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"15517:5:89","nodeType":"YulTypedName","src":"15517:5:89","type":""}]},{"nativeSrc":"15536:32:89","nodeType":"YulAssignment","src":"15536:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"15558:9:89","nodeType":"YulIdentifier","src":"15558:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"15545:12:89","nodeType":"YulIdentifier","src":"15545:12:89"},"nativeSrc":"15545:23:89","nodeType":"YulFunctionCall","src":"15545:23:89"},"variableNames":[{"name":"value","nativeSrc":"15536:5:89","nodeType":"YulIdentifier","src":"15536:5:89"}]},{"nativeSrc":"15577:15:89","nodeType":"YulAssignment","src":"15577:15:89","value":{"name":"value","nativeSrc":"15587:5:89","nodeType":"YulIdentifier","src":"15587:5:89"},"variableNames":[{"name":"value0","nativeSrc":"15577:6:89","nodeType":"YulIdentifier","src":"15577:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"15372:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15408:9:89","nodeType":"YulTypedName","src":"15408:9:89","type":""},{"name":"dataEnd","nativeSrc":"15419:7:89","nodeType":"YulTypedName","src":"15419:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15431:6:89","nodeType":"YulTypedName","src":"15431:6:89","type":""}],"src":"15372:226:89"},{"body":{"nativeSrc":"15880:415:89","nodeType":"YulBlock","src":"15880:415:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15897:9:89","nodeType":"YulIdentifier","src":"15897:9:89"},{"name":"value0","nativeSrc":"15908:6:89","nodeType":"YulIdentifier","src":"15908:6:89"}],"functionName":{"name":"mstore","nativeSrc":"15890:6:89","nodeType":"YulIdentifier","src":"15890:6:89"},"nativeSrc":"15890:25:89","nodeType":"YulFunctionCall","src":"15890:25:89"},"nativeSrc":"15890:25:89","nodeType":"YulExpressionStatement","src":"15890:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15935:9:89","nodeType":"YulIdentifier","src":"15935:9:89"},{"kind":"number","nativeSrc":"15946:2:89","nodeType":"YulLiteral","src":"15946:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15931:3:89","nodeType":"YulIdentifier","src":"15931:3:89"},"nativeSrc":"15931:18:89","nodeType":"YulFunctionCall","src":"15931:18:89"},{"arguments":[{"name":"value1","nativeSrc":"15955:6:89","nodeType":"YulIdentifier","src":"15955:6:89"},{"kind":"number","nativeSrc":"15963:18:89","nodeType":"YulLiteral","src":"15963:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"15951:3:89","nodeType":"YulIdentifier","src":"15951:3:89"},"nativeSrc":"15951:31:89","nodeType":"YulFunctionCall","src":"15951:31:89"}],"functionName":{"name":"mstore","nativeSrc":"15924:6:89","nodeType":"YulIdentifier","src":"15924:6:89"},"nativeSrc":"15924:59:89","nodeType":"YulFunctionCall","src":"15924:59:89"},"nativeSrc":"15924:59:89","nodeType":"YulExpressionStatement","src":"15924:59:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16003:9:89","nodeType":"YulIdentifier","src":"16003:9:89"},{"kind":"number","nativeSrc":"16014:2:89","nodeType":"YulLiteral","src":"16014:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15999:3:89","nodeType":"YulIdentifier","src":"15999:3:89"},"nativeSrc":"15999:18:89","nodeType":"YulFunctionCall","src":"15999:18:89"},{"name":"value2","nativeSrc":"16019:6:89","nodeType":"YulIdentifier","src":"16019:6:89"}],"functionName":{"name":"mstore","nativeSrc":"15992:6:89","nodeType":"YulIdentifier","src":"15992:6:89"},"nativeSrc":"15992:34:89","nodeType":"YulFunctionCall","src":"15992:34:89"},"nativeSrc":"15992:34:89","nodeType":"YulExpressionStatement","src":"15992:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16046:9:89","nodeType":"YulIdentifier","src":"16046:9:89"},{"kind":"number","nativeSrc":"16057:2:89","nodeType":"YulLiteral","src":"16057:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16042:3:89","nodeType":"YulIdentifier","src":"16042:3:89"},"nativeSrc":"16042:18:89","nodeType":"YulFunctionCall","src":"16042:18:89"},{"name":"value3","nativeSrc":"16062:6:89","nodeType":"YulIdentifier","src":"16062:6:89"}],"functionName":{"name":"mstore","nativeSrc":"16035:6:89","nodeType":"YulIdentifier","src":"16035:6:89"},"nativeSrc":"16035:34:89","nodeType":"YulFunctionCall","src":"16035:34:89"},"nativeSrc":"16035:34:89","nodeType":"YulExpressionStatement","src":"16035:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16089:9:89","nodeType":"YulIdentifier","src":"16089:9:89"},{"kind":"number","nativeSrc":"16100:3:89","nodeType":"YulLiteral","src":"16100:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16085:3:89","nodeType":"YulIdentifier","src":"16085:3:89"},"nativeSrc":"16085:19:89","nodeType":"YulFunctionCall","src":"16085:19:89"},{"kind":"number","nativeSrc":"16106:3:89","nodeType":"YulLiteral","src":"16106:3:89","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"16078:6:89","nodeType":"YulIdentifier","src":"16078:6:89"},"nativeSrc":"16078:32:89","nodeType":"YulFunctionCall","src":"16078:32:89"},"nativeSrc":"16078:32:89","nodeType":"YulExpressionStatement","src":"16078:32:89"},{"nativeSrc":"16119:60:89","nodeType":"YulVariableDeclaration","src":"16119:60:89","value":{"arguments":[{"name":"value4","nativeSrc":"16151:6:89","nodeType":"YulIdentifier","src":"16151:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"16163:9:89","nodeType":"YulIdentifier","src":"16163:9:89"},{"kind":"number","nativeSrc":"16174:3:89","nodeType":"YulLiteral","src":"16174:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"16159:3:89","nodeType":"YulIdentifier","src":"16159:3:89"},"nativeSrc":"16159:19:89","nodeType":"YulFunctionCall","src":"16159:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"16133:17:89","nodeType":"YulIdentifier","src":"16133:17:89"},"nativeSrc":"16133:46:89","nodeType":"YulFunctionCall","src":"16133:46:89"},"variables":[{"name":"tail_1","nativeSrc":"16123:6:89","nodeType":"YulTypedName","src":"16123:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16199:9:89","nodeType":"YulIdentifier","src":"16199:9:89"},{"kind":"number","nativeSrc":"16210:3:89","nodeType":"YulLiteral","src":"16210:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"16195:3:89","nodeType":"YulIdentifier","src":"16195:3:89"},"nativeSrc":"16195:19:89","nodeType":"YulFunctionCall","src":"16195:19:89"},{"arguments":[{"name":"tail_1","nativeSrc":"16220:6:89","nodeType":"YulIdentifier","src":"16220:6:89"},{"name":"headStart","nativeSrc":"16228:9:89","nodeType":"YulIdentifier","src":"16228:9:89"}],"functionName":{"name":"sub","nativeSrc":"16216:3:89","nodeType":"YulIdentifier","src":"16216:3:89"},"nativeSrc":"16216:22:89","nodeType":"YulFunctionCall","src":"16216:22:89"}],"functionName":{"name":"mstore","nativeSrc":"16188:6:89","nodeType":"YulIdentifier","src":"16188:6:89"},"nativeSrc":"16188:51:89","nodeType":"YulFunctionCall","src":"16188:51:89"},"nativeSrc":"16188:51:89","nodeType":"YulExpressionStatement","src":"16188:51:89"},{"nativeSrc":"16248:41:89","nodeType":"YulAssignment","src":"16248:41:89","value":{"arguments":[{"name":"value5","nativeSrc":"16274:6:89","nodeType":"YulIdentifier","src":"16274:6:89"},{"name":"tail_1","nativeSrc":"16282:6:89","nodeType":"YulIdentifier","src":"16282:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"16256:17:89","nodeType":"YulIdentifier","src":"16256:17:89"},"nativeSrc":"16256:33:89","nodeType":"YulFunctionCall","src":"16256:33:89"},"variableNames":[{"name":"tail","nativeSrc":"16248:4:89","nodeType":"YulIdentifier","src":"16248:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"15603:692:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15809:9:89","nodeType":"YulTypedName","src":"15809:9:89","type":""},{"name":"value5","nativeSrc":"15820:6:89","nodeType":"YulTypedName","src":"15820:6:89","type":""},{"name":"value4","nativeSrc":"15828:6:89","nodeType":"YulTypedName","src":"15828:6:89","type":""},{"name":"value3","nativeSrc":"15836:6:89","nodeType":"YulTypedName","src":"15836:6:89","type":""},{"name":"value2","nativeSrc":"15844:6:89","nodeType":"YulTypedName","src":"15844:6:89","type":""},{"name":"value1","nativeSrc":"15852:6:89","nodeType":"YulTypedName","src":"15852:6:89","type":""},{"name":"value0","nativeSrc":"15860:6:89","nodeType":"YulTypedName","src":"15860:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15871:4:89","nodeType":"YulTypedName","src":"15871:4:89","type":""}],"src":"15603:692:89"},{"body":{"nativeSrc":"16381:103:89","nodeType":"YulBlock","src":"16381:103:89","statements":[{"body":{"nativeSrc":"16427:16:89","nodeType":"YulBlock","src":"16427:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16436:1:89","nodeType":"YulLiteral","src":"16436:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"16439:1:89","nodeType":"YulLiteral","src":"16439:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16429:6:89","nodeType":"YulIdentifier","src":"16429:6:89"},"nativeSrc":"16429:12:89","nodeType":"YulFunctionCall","src":"16429:12:89"},"nativeSrc":"16429:12:89","nodeType":"YulExpressionStatement","src":"16429:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16402:7:89","nodeType":"YulIdentifier","src":"16402:7:89"},{"name":"headStart","nativeSrc":"16411:9:89","nodeType":"YulIdentifier","src":"16411:9:89"}],"functionName":{"name":"sub","nativeSrc":"16398:3:89","nodeType":"YulIdentifier","src":"16398:3:89"},"nativeSrc":"16398:23:89","nodeType":"YulFunctionCall","src":"16398:23:89"},{"kind":"number","nativeSrc":"16423:2:89","nodeType":"YulLiteral","src":"16423:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16394:3:89","nodeType":"YulIdentifier","src":"16394:3:89"},"nativeSrc":"16394:32:89","nodeType":"YulFunctionCall","src":"16394:32:89"},"nativeSrc":"16391:52:89","nodeType":"YulIf","src":"16391:52:89"},{"nativeSrc":"16452:26:89","nodeType":"YulAssignment","src":"16452:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"16468:9:89","nodeType":"YulIdentifier","src":"16468:9:89"}],"functionName":{"name":"mload","nativeSrc":"16462:5:89","nodeType":"YulIdentifier","src":"16462:5:89"},"nativeSrc":"16462:16:89","nodeType":"YulFunctionCall","src":"16462:16:89"},"variableNames":[{"name":"value0","nativeSrc":"16452:6:89","nodeType":"YulIdentifier","src":"16452:6:89"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"16300:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16347:9:89","nodeType":"YulTypedName","src":"16347:9:89","type":""},{"name":"dataEnd","nativeSrc":"16358:7:89","nodeType":"YulTypedName","src":"16358:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16370:6:89","nodeType":"YulTypedName","src":"16370:6:89","type":""}],"src":"16300:184:89"},{"body":{"nativeSrc":"16549:519:89","nodeType":"YulBlock","src":"16549:519:89","statements":[{"nativeSrc":"16559:16:89","nodeType":"YulVariableDeclaration","src":"16559:16:89","value":{"name":"pos","nativeSrc":"16572:3:89","nodeType":"YulIdentifier","src":"16572:3:89"},"variables":[{"name":"pos_1","nativeSrc":"16563:5:89","nodeType":"YulTypedName","src":"16563:5:89","type":""}]},{"nativeSrc":"16584:26:89","nodeType":"YulVariableDeclaration","src":"16584:26:89","value":{"arguments":[{"name":"value","nativeSrc":"16604:5:89","nodeType":"YulIdentifier","src":"16604:5:89"}],"functionName":{"name":"mload","nativeSrc":"16598:5:89","nodeType":"YulIdentifier","src":"16598:5:89"},"nativeSrc":"16598:12:89","nodeType":"YulFunctionCall","src":"16598:12:89"},"variables":[{"name":"length","nativeSrc":"16588:6:89","nodeType":"YulTypedName","src":"16588:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16626:3:89","nodeType":"YulIdentifier","src":"16626:3:89"},{"name":"length","nativeSrc":"16631:6:89","nodeType":"YulIdentifier","src":"16631:6:89"}],"functionName":{"name":"mstore","nativeSrc":"16619:6:89","nodeType":"YulIdentifier","src":"16619:6:89"},"nativeSrc":"16619:19:89","nodeType":"YulFunctionCall","src":"16619:19:89"},"nativeSrc":"16619:19:89","nodeType":"YulExpressionStatement","src":"16619:19:89"},{"nativeSrc":"16647:21:89","nodeType":"YulAssignment","src":"16647:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"16658:3:89","nodeType":"YulIdentifier","src":"16658:3:89"},{"kind":"number","nativeSrc":"16663:4:89","nodeType":"YulLiteral","src":"16663:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16654:3:89","nodeType":"YulIdentifier","src":"16654:3:89"},"nativeSrc":"16654:14:89","nodeType":"YulFunctionCall","src":"16654:14:89"},"variableNames":[{"name":"pos","nativeSrc":"16647:3:89","nodeType":"YulIdentifier","src":"16647:3:89"}]},{"nativeSrc":"16677:49:89","nodeType":"YulVariableDeclaration","src":"16677:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"16697:5:89","nodeType":"YulIdentifier","src":"16697:5:89"},{"arguments":[{"kind":"number","nativeSrc":"16708:1:89","nodeType":"YulLiteral","src":"16708:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"16711:6:89","nodeType":"YulIdentifier","src":"16711:6:89"}],"functionName":{"name":"shl","nativeSrc":"16704:3:89","nodeType":"YulIdentifier","src":"16704:3:89"},"nativeSrc":"16704:14:89","nodeType":"YulFunctionCall","src":"16704:14:89"}],"functionName":{"name":"add","nativeSrc":"16693:3:89","nodeType":"YulIdentifier","src":"16693:3:89"},"nativeSrc":"16693:26:89","nodeType":"YulFunctionCall","src":"16693:26:89"},{"kind":"number","nativeSrc":"16721:4:89","nodeType":"YulLiteral","src":"16721:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16689:3:89","nodeType":"YulIdentifier","src":"16689:3:89"},"nativeSrc":"16689:37:89","nodeType":"YulFunctionCall","src":"16689:37:89"},"variables":[{"name":"tail","nativeSrc":"16681:4:89","nodeType":"YulTypedName","src":"16681:4:89","type":""}]},{"nativeSrc":"16735:30:89","nodeType":"YulVariableDeclaration","src":"16735:30:89","value":{"arguments":[{"name":"value","nativeSrc":"16753:5:89","nodeType":"YulIdentifier","src":"16753:5:89"},{"kind":"number","nativeSrc":"16760:4:89","nodeType":"YulLiteral","src":"16760:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16749:3:89","nodeType":"YulIdentifier","src":"16749:3:89"},"nativeSrc":"16749:16:89","nodeType":"YulFunctionCall","src":"16749:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"16739:6:89","nodeType":"YulTypedName","src":"16739:6:89","type":""}]},{"nativeSrc":"16774:10:89","nodeType":"YulVariableDeclaration","src":"16774:10:89","value":{"kind":"number","nativeSrc":"16783:1:89","nodeType":"YulLiteral","src":"16783:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"16778:1:89","nodeType":"YulTypedName","src":"16778:1:89","type":""}]},{"body":{"nativeSrc":"16842:200:89","nodeType":"YulBlock","src":"16842:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16863:3:89","nodeType":"YulIdentifier","src":"16863:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"16876:4:89","nodeType":"YulIdentifier","src":"16876:4:89"},{"name":"pos_1","nativeSrc":"16882:5:89","nodeType":"YulIdentifier","src":"16882:5:89"}],"functionName":{"name":"sub","nativeSrc":"16872:3:89","nodeType":"YulIdentifier","src":"16872:3:89"},"nativeSrc":"16872:16:89","nodeType":"YulFunctionCall","src":"16872:16:89"},{"arguments":[{"kind":"number","nativeSrc":"16894:2:89","nodeType":"YulLiteral","src":"16894:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"16890:3:89","nodeType":"YulIdentifier","src":"16890:3:89"},"nativeSrc":"16890:7:89","nodeType":"YulFunctionCall","src":"16890:7:89"}],"functionName":{"name":"add","nativeSrc":"16868:3:89","nodeType":"YulIdentifier","src":"16868:3:89"},"nativeSrc":"16868:30:89","nodeType":"YulFunctionCall","src":"16868:30:89"}],"functionName":{"name":"mstore","nativeSrc":"16856:6:89","nodeType":"YulIdentifier","src":"16856:6:89"},"nativeSrc":"16856:43:89","nodeType":"YulFunctionCall","src":"16856:43:89"},"nativeSrc":"16856:43:89","nodeType":"YulExpressionStatement","src":"16856:43:89"},{"nativeSrc":"16912:46:89","nodeType":"YulAssignment","src":"16912:46:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"16944:6:89","nodeType":"YulIdentifier","src":"16944:6:89"}],"functionName":{"name":"mload","nativeSrc":"16938:5:89","nodeType":"YulIdentifier","src":"16938:5:89"},"nativeSrc":"16938:13:89","nodeType":"YulFunctionCall","src":"16938:13:89"},{"name":"tail","nativeSrc":"16953:4:89","nodeType":"YulIdentifier","src":"16953:4:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"16920:17:89","nodeType":"YulIdentifier","src":"16920:17:89"},"nativeSrc":"16920:38:89","nodeType":"YulFunctionCall","src":"16920:38:89"},"variableNames":[{"name":"tail","nativeSrc":"16912:4:89","nodeType":"YulIdentifier","src":"16912:4:89"}]},{"nativeSrc":"16971:27:89","nodeType":"YulAssignment","src":"16971:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"16985:6:89","nodeType":"YulIdentifier","src":"16985:6:89"},{"kind":"number","nativeSrc":"16993:4:89","nodeType":"YulLiteral","src":"16993:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16981:3:89","nodeType":"YulIdentifier","src":"16981:3:89"},"nativeSrc":"16981:17:89","nodeType":"YulFunctionCall","src":"16981:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"16971:6:89","nodeType":"YulIdentifier","src":"16971:6:89"}]},{"nativeSrc":"17011:21:89","nodeType":"YulAssignment","src":"17011:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"17022:3:89","nodeType":"YulIdentifier","src":"17022:3:89"},{"kind":"number","nativeSrc":"17027:4:89","nodeType":"YulLiteral","src":"17027:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17018:3:89","nodeType":"YulIdentifier","src":"17018:3:89"},"nativeSrc":"17018:14:89","nodeType":"YulFunctionCall","src":"17018:14:89"},"variableNames":[{"name":"pos","nativeSrc":"17011:3:89","nodeType":"YulIdentifier","src":"17011:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"16804:1:89","nodeType":"YulIdentifier","src":"16804:1:89"},{"name":"length","nativeSrc":"16807:6:89","nodeType":"YulIdentifier","src":"16807:6:89"}],"functionName":{"name":"lt","nativeSrc":"16801:2:89","nodeType":"YulIdentifier","src":"16801:2:89"},"nativeSrc":"16801:13:89","nodeType":"YulFunctionCall","src":"16801:13:89"},"nativeSrc":"16793:249:89","nodeType":"YulForLoop","post":{"nativeSrc":"16815:18:89","nodeType":"YulBlock","src":"16815:18:89","statements":[{"nativeSrc":"16817:14:89","nodeType":"YulAssignment","src":"16817:14:89","value":{"arguments":[{"name":"i","nativeSrc":"16826:1:89","nodeType":"YulIdentifier","src":"16826:1:89"},{"kind":"number","nativeSrc":"16829:1:89","nodeType":"YulLiteral","src":"16829:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16822:3:89","nodeType":"YulIdentifier","src":"16822:3:89"},"nativeSrc":"16822:9:89","nodeType":"YulFunctionCall","src":"16822:9:89"},"variableNames":[{"name":"i","nativeSrc":"16817:1:89","nodeType":"YulIdentifier","src":"16817:1:89"}]}]},"pre":{"nativeSrc":"16797:3:89","nodeType":"YulBlock","src":"16797:3:89","statements":[]},"src":"16793:249:89"},{"nativeSrc":"17051:11:89","nodeType":"YulAssignment","src":"17051:11:89","value":{"name":"tail","nativeSrc":"17058:4:89","nodeType":"YulIdentifier","src":"17058:4:89"},"variableNames":[{"name":"end","nativeSrc":"17051:3:89","nodeType":"YulIdentifier","src":"17051:3:89"}]}]},"name":"abi_encode_array_string_dyn","nativeSrc":"16489:579:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16526:5:89","nodeType":"YulTypedName","src":"16526:5:89","type":""},{"name":"pos","nativeSrc":"16533:3:89","nodeType":"YulTypedName","src":"16533:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16541:3:89","nodeType":"YulTypedName","src":"16541:3:89","type":""}],"src":"16489:579:89"},{"body":{"nativeSrc":"17143:531:89","nodeType":"YulBlock","src":"17143:531:89","statements":[{"nativeSrc":"17153:26:89","nodeType":"YulVariableDeclaration","src":"17153:26:89","value":{"arguments":[{"name":"value","nativeSrc":"17173:5:89","nodeType":"YulIdentifier","src":"17173:5:89"}],"functionName":{"name":"mload","nativeSrc":"17167:5:89","nodeType":"YulIdentifier","src":"17167:5:89"},"nativeSrc":"17167:12:89","nodeType":"YulFunctionCall","src":"17167:12:89"},"variables":[{"name":"length","nativeSrc":"17157:6:89","nodeType":"YulTypedName","src":"17157:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17195:3:89","nodeType":"YulIdentifier","src":"17195:3:89"},{"name":"length","nativeSrc":"17200:6:89","nodeType":"YulIdentifier","src":"17200:6:89"}],"functionName":{"name":"mstore","nativeSrc":"17188:6:89","nodeType":"YulIdentifier","src":"17188:6:89"},"nativeSrc":"17188:19:89","nodeType":"YulFunctionCall","src":"17188:19:89"},"nativeSrc":"17188:19:89","nodeType":"YulExpressionStatement","src":"17188:19:89"},{"nativeSrc":"17216:21:89","nodeType":"YulAssignment","src":"17216:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"17227:3:89","nodeType":"YulIdentifier","src":"17227:3:89"},{"kind":"number","nativeSrc":"17232:4:89","nodeType":"YulLiteral","src":"17232:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17223:3:89","nodeType":"YulIdentifier","src":"17223:3:89"},"nativeSrc":"17223:14:89","nodeType":"YulFunctionCall","src":"17223:14:89"},"variableNames":[{"name":"pos","nativeSrc":"17216:3:89","nodeType":"YulIdentifier","src":"17216:3:89"}]},{"nativeSrc":"17246:30:89","nodeType":"YulVariableDeclaration","src":"17246:30:89","value":{"arguments":[{"name":"value","nativeSrc":"17264:5:89","nodeType":"YulIdentifier","src":"17264:5:89"},{"kind":"number","nativeSrc":"17271:4:89","nodeType":"YulLiteral","src":"17271:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17260:3:89","nodeType":"YulIdentifier","src":"17260:3:89"},"nativeSrc":"17260:16:89","nodeType":"YulFunctionCall","src":"17260:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"17250:6:89","nodeType":"YulTypedName","src":"17250:6:89","type":""}]},{"nativeSrc":"17285:10:89","nodeType":"YulVariableDeclaration","src":"17285:10:89","value":{"kind":"number","nativeSrc":"17294:1:89","nodeType":"YulLiteral","src":"17294:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"17289:1:89","nodeType":"YulTypedName","src":"17289:1:89","type":""}]},{"body":{"nativeSrc":"17353:296:89","nodeType":"YulBlock","src":"17353:296:89","statements":[{"nativeSrc":"17367:23:89","nodeType":"YulVariableDeclaration","src":"17367:23:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"17383:6:89","nodeType":"YulIdentifier","src":"17383:6:89"}],"functionName":{"name":"mload","nativeSrc":"17377:5:89","nodeType":"YulIdentifier","src":"17377:5:89"},"nativeSrc":"17377:13:89","nodeType":"YulFunctionCall","src":"17377:13:89"},"variables":[{"name":"_1","nativeSrc":"17371:2:89","nodeType":"YulTypedName","src":"17371:2:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17410:3:89","nodeType":"YulIdentifier","src":"17410:3:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"17425:2:89","nodeType":"YulIdentifier","src":"17425:2:89"}],"functionName":{"name":"mload","nativeSrc":"17419:5:89","nodeType":"YulIdentifier","src":"17419:5:89"},"nativeSrc":"17419:9:89","nodeType":"YulFunctionCall","src":"17419:9:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17438:3:89","nodeType":"YulLiteral","src":"17438:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"17443:1:89","nodeType":"YulLiteral","src":"17443:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17434:3:89","nodeType":"YulIdentifier","src":"17434:3:89"},"nativeSrc":"17434:11:89","nodeType":"YulFunctionCall","src":"17434:11:89"},{"kind":"number","nativeSrc":"17447:1:89","nodeType":"YulLiteral","src":"17447:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17430:3:89","nodeType":"YulIdentifier","src":"17430:3:89"},"nativeSrc":"17430:19:89","nodeType":"YulFunctionCall","src":"17430:19:89"}],"functionName":{"name":"and","nativeSrc":"17415:3:89","nodeType":"YulIdentifier","src":"17415:3:89"},"nativeSrc":"17415:35:89","nodeType":"YulFunctionCall","src":"17415:35:89"}],"functionName":{"name":"mstore","nativeSrc":"17403:6:89","nodeType":"YulIdentifier","src":"17403:6:89"},"nativeSrc":"17403:48:89","nodeType":"YulFunctionCall","src":"17403:48:89"},"nativeSrc":"17403:48:89","nodeType":"YulExpressionStatement","src":"17403:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17475:3:89","nodeType":"YulIdentifier","src":"17475:3:89"},{"kind":"number","nativeSrc":"17480:4:89","nodeType":"YulLiteral","src":"17480:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17471:3:89","nodeType":"YulIdentifier","src":"17471:3:89"},"nativeSrc":"17471:14:89","nodeType":"YulFunctionCall","src":"17471:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"17497:2:89","nodeType":"YulIdentifier","src":"17497:2:89"},{"kind":"number","nativeSrc":"17501:4:89","nodeType":"YulLiteral","src":"17501:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17493:3:89","nodeType":"YulIdentifier","src":"17493:3:89"},"nativeSrc":"17493:13:89","nodeType":"YulFunctionCall","src":"17493:13:89"}],"functionName":{"name":"mload","nativeSrc":"17487:5:89","nodeType":"YulIdentifier","src":"17487:5:89"},"nativeSrc":"17487:20:89","nodeType":"YulFunctionCall","src":"17487:20:89"}],"functionName":{"name":"mstore","nativeSrc":"17464:6:89","nodeType":"YulIdentifier","src":"17464:6:89"},"nativeSrc":"17464:44:89","nodeType":"YulFunctionCall","src":"17464:44:89"},"nativeSrc":"17464:44:89","nodeType":"YulExpressionStatement","src":"17464:44:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17532:3:89","nodeType":"YulIdentifier","src":"17532:3:89"},{"kind":"number","nativeSrc":"17537:4:89","nodeType":"YulLiteral","src":"17537:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17528:3:89","nodeType":"YulIdentifier","src":"17528:3:89"},"nativeSrc":"17528:14:89","nodeType":"YulFunctionCall","src":"17528:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"17554:2:89","nodeType":"YulIdentifier","src":"17554:2:89"},{"kind":"number","nativeSrc":"17558:4:89","nodeType":"YulLiteral","src":"17558:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17550:3:89","nodeType":"YulIdentifier","src":"17550:3:89"},"nativeSrc":"17550:13:89","nodeType":"YulFunctionCall","src":"17550:13:89"}],"functionName":{"name":"mload","nativeSrc":"17544:5:89","nodeType":"YulIdentifier","src":"17544:5:89"},"nativeSrc":"17544:20:89","nodeType":"YulFunctionCall","src":"17544:20:89"}],"functionName":{"name":"mstore","nativeSrc":"17521:6:89","nodeType":"YulIdentifier","src":"17521:6:89"},"nativeSrc":"17521:44:89","nodeType":"YulFunctionCall","src":"17521:44:89"},"nativeSrc":"17521:44:89","nodeType":"YulExpressionStatement","src":"17521:44:89"},{"nativeSrc":"17578:21:89","nodeType":"YulAssignment","src":"17578:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"17589:3:89","nodeType":"YulIdentifier","src":"17589:3:89"},{"kind":"number","nativeSrc":"17594:4:89","nodeType":"YulLiteral","src":"17594:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17585:3:89","nodeType":"YulIdentifier","src":"17585:3:89"},"nativeSrc":"17585:14:89","nodeType":"YulFunctionCall","src":"17585:14:89"},"variableNames":[{"name":"pos","nativeSrc":"17578:3:89","nodeType":"YulIdentifier","src":"17578:3:89"}]},{"nativeSrc":"17612:27:89","nodeType":"YulAssignment","src":"17612:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"17626:6:89","nodeType":"YulIdentifier","src":"17626:6:89"},{"kind":"number","nativeSrc":"17634:4:89","nodeType":"YulLiteral","src":"17634:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17622:3:89","nodeType":"YulIdentifier","src":"17622:3:89"},"nativeSrc":"17622:17:89","nodeType":"YulFunctionCall","src":"17622:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"17612:6:89","nodeType":"YulIdentifier","src":"17612:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"17315:1:89","nodeType":"YulIdentifier","src":"17315:1:89"},{"name":"length","nativeSrc":"17318:6:89","nodeType":"YulIdentifier","src":"17318:6:89"}],"functionName":{"name":"lt","nativeSrc":"17312:2:89","nodeType":"YulIdentifier","src":"17312:2:89"},"nativeSrc":"17312:13:89","nodeType":"YulFunctionCall","src":"17312:13:89"},"nativeSrc":"17304:345:89","nodeType":"YulForLoop","post":{"nativeSrc":"17326:18:89","nodeType":"YulBlock","src":"17326:18:89","statements":[{"nativeSrc":"17328:14:89","nodeType":"YulAssignment","src":"17328:14:89","value":{"arguments":[{"name":"i","nativeSrc":"17337:1:89","nodeType":"YulIdentifier","src":"17337:1:89"},{"kind":"number","nativeSrc":"17340:1:89","nodeType":"YulLiteral","src":"17340:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17333:3:89","nodeType":"YulIdentifier","src":"17333:3:89"},"nativeSrc":"17333:9:89","nodeType":"YulFunctionCall","src":"17333:9:89"},"variableNames":[{"name":"i","nativeSrc":"17328:1:89","nodeType":"YulIdentifier","src":"17328:1:89"}]}]},"pre":{"nativeSrc":"17308:3:89","nodeType":"YulBlock","src":"17308:3:89","statements":[]},"src":"17304:345:89"},{"nativeSrc":"17658:10:89","nodeType":"YulAssignment","src":"17658:10:89","value":{"name":"pos","nativeSrc":"17665:3:89","nodeType":"YulIdentifier","src":"17665:3:89"},"variableNames":[{"name":"end","nativeSrc":"17658:3:89","nodeType":"YulIdentifier","src":"17658:3:89"}]}]},"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"17073:601:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17120:5:89","nodeType":"YulTypedName","src":"17120:5:89","type":""},{"name":"pos","nativeSrc":"17127:3:89","nodeType":"YulTypedName","src":"17127:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17135:3:89","nodeType":"YulTypedName","src":"17135:3:89","type":""}],"src":"17073:601:89"},{"body":{"nativeSrc":"17842:1203:89","nodeType":"YulBlock","src":"17842:1203:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17859:9:89","nodeType":"YulIdentifier","src":"17859:9:89"},{"kind":"number","nativeSrc":"17870:2:89","nodeType":"YulLiteral","src":"17870:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17852:6:89","nodeType":"YulIdentifier","src":"17852:6:89"},"nativeSrc":"17852:21:89","nodeType":"YulFunctionCall","src":"17852:21:89"},"nativeSrc":"17852:21:89","nodeType":"YulExpressionStatement","src":"17852:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"17906:6:89","nodeType":"YulIdentifier","src":"17906:6:89"}],"functionName":{"name":"mload","nativeSrc":"17900:5:89","nodeType":"YulIdentifier","src":"17900:5:89"},"nativeSrc":"17900:13:89","nodeType":"YulFunctionCall","src":"17900:13:89"},{"arguments":[{"name":"headStart","nativeSrc":"17919:9:89","nodeType":"YulIdentifier","src":"17919:9:89"},{"kind":"number","nativeSrc":"17930:2:89","nodeType":"YulLiteral","src":"17930:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17915:3:89","nodeType":"YulIdentifier","src":"17915:3:89"},"nativeSrc":"17915:18:89","nodeType":"YulFunctionCall","src":"17915:18:89"}],"functionName":{"name":"abi_encode_uint64","nativeSrc":"17882:17:89","nodeType":"YulIdentifier","src":"17882:17:89"},"nativeSrc":"17882:52:89","nodeType":"YulFunctionCall","src":"17882:52:89"},"nativeSrc":"17882:52:89","nodeType":"YulExpressionStatement","src":"17882:52:89"},{"nativeSrc":"17943:42:89","nodeType":"YulVariableDeclaration","src":"17943:42:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"17973:6:89","nodeType":"YulIdentifier","src":"17973:6:89"},{"kind":"number","nativeSrc":"17981:2:89","nodeType":"YulLiteral","src":"17981:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17969:3:89","nodeType":"YulIdentifier","src":"17969:3:89"},"nativeSrc":"17969:15:89","nodeType":"YulFunctionCall","src":"17969:15:89"}],"functionName":{"name":"mload","nativeSrc":"17963:5:89","nodeType":"YulIdentifier","src":"17963:5:89"},"nativeSrc":"17963:22:89","nodeType":"YulFunctionCall","src":"17963:22:89"},"variables":[{"name":"memberValue0","nativeSrc":"17947:12:89","nodeType":"YulTypedName","src":"17947:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18005:9:89","nodeType":"YulIdentifier","src":"18005:9:89"},{"kind":"number","nativeSrc":"18016:2:89","nodeType":"YulLiteral","src":"18016:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18001:3:89","nodeType":"YulIdentifier","src":"18001:3:89"},"nativeSrc":"18001:18:89","nodeType":"YulFunctionCall","src":"18001:18:89"},{"kind":"number","nativeSrc":"18021:6:89","nodeType":"YulLiteral","src":"18021:6:89","type":"","value":"0x0100"}],"functionName":{"name":"mstore","nativeSrc":"17994:6:89","nodeType":"YulIdentifier","src":"17994:6:89"},"nativeSrc":"17994:34:89","nodeType":"YulFunctionCall","src":"17994:34:89"},"nativeSrc":"17994:34:89","nodeType":"YulExpressionStatement","src":"17994:34:89"},{"nativeSrc":"18037:66:89","nodeType":"YulVariableDeclaration","src":"18037:66:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"18069:12:89","nodeType":"YulIdentifier","src":"18069:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"18087:9:89","nodeType":"YulIdentifier","src":"18087:9:89"},{"kind":"number","nativeSrc":"18098:3:89","nodeType":"YulLiteral","src":"18098:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"18083:3:89","nodeType":"YulIdentifier","src":"18083:3:89"},"nativeSrc":"18083:19:89","nodeType":"YulFunctionCall","src":"18083:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18051:17:89","nodeType":"YulIdentifier","src":"18051:17:89"},"nativeSrc":"18051:52:89","nodeType":"YulFunctionCall","src":"18051:52:89"},"variables":[{"name":"tail_1","nativeSrc":"18041:6:89","nodeType":"YulTypedName","src":"18041:6:89","type":""}]},{"nativeSrc":"18112:44:89","nodeType":"YulVariableDeclaration","src":"18112:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"18144:6:89","nodeType":"YulIdentifier","src":"18144:6:89"},{"kind":"number","nativeSrc":"18152:2:89","nodeType":"YulLiteral","src":"18152:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18140:3:89","nodeType":"YulIdentifier","src":"18140:3:89"},"nativeSrc":"18140:15:89","nodeType":"YulFunctionCall","src":"18140:15:89"}],"functionName":{"name":"mload","nativeSrc":"18134:5:89","nodeType":"YulIdentifier","src":"18134:5:89"},"nativeSrc":"18134:22:89","nodeType":"YulFunctionCall","src":"18134:22:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"18116:14:89","nodeType":"YulTypedName","src":"18116:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18176:9:89","nodeType":"YulIdentifier","src":"18176:9:89"},{"kind":"number","nativeSrc":"18187:2:89","nodeType":"YulLiteral","src":"18187:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18172:3:89","nodeType":"YulIdentifier","src":"18172:3:89"},"nativeSrc":"18172:18:89","nodeType":"YulFunctionCall","src":"18172:18:89"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"18200:6:89","nodeType":"YulIdentifier","src":"18200:6:89"},{"name":"headStart","nativeSrc":"18208:9:89","nodeType":"YulIdentifier","src":"18208:9:89"}],"functionName":{"name":"sub","nativeSrc":"18196:3:89","nodeType":"YulIdentifier","src":"18196:3:89"},"nativeSrc":"18196:22:89","nodeType":"YulFunctionCall","src":"18196:22:89"},{"arguments":[{"kind":"number","nativeSrc":"18224:2:89","nodeType":"YulLiteral","src":"18224:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"18220:3:89","nodeType":"YulIdentifier","src":"18220:3:89"},"nativeSrc":"18220:7:89","nodeType":"YulFunctionCall","src":"18220:7:89"}],"functionName":{"name":"add","nativeSrc":"18192:3:89","nodeType":"YulIdentifier","src":"18192:3:89"},"nativeSrc":"18192:36:89","nodeType":"YulFunctionCall","src":"18192:36:89"}],"functionName":{"name":"mstore","nativeSrc":"18165:6:89","nodeType":"YulIdentifier","src":"18165:6:89"},"nativeSrc":"18165:64:89","nodeType":"YulFunctionCall","src":"18165:64:89"},"nativeSrc":"18165:64:89","nodeType":"YulExpressionStatement","src":"18165:64:89"},{"nativeSrc":"18238:55:89","nodeType":"YulVariableDeclaration","src":"18238:55:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"18270:14:89","nodeType":"YulIdentifier","src":"18270:14:89"},{"name":"tail_1","nativeSrc":"18286:6:89","nodeType":"YulIdentifier","src":"18286:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18252:17:89","nodeType":"YulIdentifier","src":"18252:17:89"},"nativeSrc":"18252:41:89","nodeType":"YulFunctionCall","src":"18252:41:89"},"variables":[{"name":"tail_2","nativeSrc":"18242:6:89","nodeType":"YulTypedName","src":"18242:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18313:9:89","nodeType":"YulIdentifier","src":"18313:9:89"},{"kind":"number","nativeSrc":"18324:3:89","nodeType":"YulLiteral","src":"18324:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18309:3:89","nodeType":"YulIdentifier","src":"18309:3:89"},"nativeSrc":"18309:19:89","nodeType":"YulFunctionCall","src":"18309:19:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"18340:6:89","nodeType":"YulIdentifier","src":"18340:6:89"},{"kind":"number","nativeSrc":"18348:2:89","nodeType":"YulLiteral","src":"18348:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18336:3:89","nodeType":"YulIdentifier","src":"18336:3:89"},"nativeSrc":"18336:15:89","nodeType":"YulFunctionCall","src":"18336:15:89"}],"functionName":{"name":"mload","nativeSrc":"18330:5:89","nodeType":"YulIdentifier","src":"18330:5:89"},"nativeSrc":"18330:22:89","nodeType":"YulFunctionCall","src":"18330:22:89"}],"functionName":{"name":"mstore","nativeSrc":"18302:6:89","nodeType":"YulIdentifier","src":"18302:6:89"},"nativeSrc":"18302:51:89","nodeType":"YulFunctionCall","src":"18302:51:89"},"nativeSrc":"18302:51:89","nodeType":"YulExpressionStatement","src":"18302:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18373:9:89","nodeType":"YulIdentifier","src":"18373:9:89"},{"kind":"number","nativeSrc":"18384:3:89","nodeType":"YulLiteral","src":"18384:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"18369:3:89","nodeType":"YulIdentifier","src":"18369:3:89"},"nativeSrc":"18369:19:89","nodeType":"YulFunctionCall","src":"18369:19:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"18400:6:89","nodeType":"YulIdentifier","src":"18400:6:89"},{"kind":"number","nativeSrc":"18408:3:89","nodeType":"YulLiteral","src":"18408:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18396:3:89","nodeType":"YulIdentifier","src":"18396:3:89"},"nativeSrc":"18396:16:89","nodeType":"YulFunctionCall","src":"18396:16:89"}],"functionName":{"name":"mload","nativeSrc":"18390:5:89","nodeType":"YulIdentifier","src":"18390:5:89"},"nativeSrc":"18390:23:89","nodeType":"YulFunctionCall","src":"18390:23:89"}],"functionName":{"name":"mstore","nativeSrc":"18362:6:89","nodeType":"YulIdentifier","src":"18362:6:89"},"nativeSrc":"18362:52:89","nodeType":"YulFunctionCall","src":"18362:52:89"},"nativeSrc":"18362:52:89","nodeType":"YulExpressionStatement","src":"18362:52:89"},{"nativeSrc":"18423:45:89","nodeType":"YulVariableDeclaration","src":"18423:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"18455:6:89","nodeType":"YulIdentifier","src":"18455:6:89"},{"kind":"number","nativeSrc":"18463:3:89","nodeType":"YulLiteral","src":"18463:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"18451:3:89","nodeType":"YulIdentifier","src":"18451:3:89"},"nativeSrc":"18451:16:89","nodeType":"YulFunctionCall","src":"18451:16:89"}],"functionName":{"name":"mload","nativeSrc":"18445:5:89","nodeType":"YulIdentifier","src":"18445:5:89"},"nativeSrc":"18445:23:89","nodeType":"YulFunctionCall","src":"18445:23:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"18427:14:89","nodeType":"YulTypedName","src":"18427:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18488:9:89","nodeType":"YulIdentifier","src":"18488:9:89"},{"kind":"number","nativeSrc":"18499:3:89","nodeType":"YulLiteral","src":"18499:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"18484:3:89","nodeType":"YulIdentifier","src":"18484:3:89"},"nativeSrc":"18484:19:89","nodeType":"YulFunctionCall","src":"18484:19:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"18513:6:89","nodeType":"YulIdentifier","src":"18513:6:89"},{"name":"headStart","nativeSrc":"18521:9:89","nodeType":"YulIdentifier","src":"18521:9:89"}],"functionName":{"name":"sub","nativeSrc":"18509:3:89","nodeType":"YulIdentifier","src":"18509:3:89"},"nativeSrc":"18509:22:89","nodeType":"YulFunctionCall","src":"18509:22:89"},{"arguments":[{"kind":"number","nativeSrc":"18537:2:89","nodeType":"YulLiteral","src":"18537:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"18533:3:89","nodeType":"YulIdentifier","src":"18533:3:89"},"nativeSrc":"18533:7:89","nodeType":"YulFunctionCall","src":"18533:7:89"}],"functionName":{"name":"add","nativeSrc":"18505:3:89","nodeType":"YulIdentifier","src":"18505:3:89"},"nativeSrc":"18505:36:89","nodeType":"YulFunctionCall","src":"18505:36:89"}],"functionName":{"name":"mstore","nativeSrc":"18477:6:89","nodeType":"YulIdentifier","src":"18477:6:89"},"nativeSrc":"18477:65:89","nodeType":"YulFunctionCall","src":"18477:65:89"},"nativeSrc":"18477:65:89","nodeType":"YulExpressionStatement","src":"18477:65:89"},{"nativeSrc":"18551:65:89","nodeType":"YulVariableDeclaration","src":"18551:65:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"18593:14:89","nodeType":"YulIdentifier","src":"18593:14:89"},{"name":"tail_2","nativeSrc":"18609:6:89","nodeType":"YulIdentifier","src":"18609:6:89"}],"functionName":{"name":"abi_encode_array_string_dyn","nativeSrc":"18565:27:89","nodeType":"YulIdentifier","src":"18565:27:89"},"nativeSrc":"18565:51:89","nodeType":"YulFunctionCall","src":"18565:51:89"},"variables":[{"name":"tail_3","nativeSrc":"18555:6:89","nodeType":"YulTypedName","src":"18555:6:89","type":""}]},{"nativeSrc":"18625:45:89","nodeType":"YulVariableDeclaration","src":"18625:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"18657:6:89","nodeType":"YulIdentifier","src":"18657:6:89"},{"kind":"number","nativeSrc":"18665:3:89","nodeType":"YulLiteral","src":"18665:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"18653:3:89","nodeType":"YulIdentifier","src":"18653:3:89"},"nativeSrc":"18653:16:89","nodeType":"YulFunctionCall","src":"18653:16:89"}],"functionName":{"name":"mload","nativeSrc":"18647:5:89","nodeType":"YulIdentifier","src":"18647:5:89"},"nativeSrc":"18647:23:89","nodeType":"YulFunctionCall","src":"18647:23:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"18629:14:89","nodeType":"YulTypedName","src":"18629:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18690:9:89","nodeType":"YulIdentifier","src":"18690:9:89"},{"kind":"number","nativeSrc":"18701:3:89","nodeType":"YulLiteral","src":"18701:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"18686:3:89","nodeType":"YulIdentifier","src":"18686:3:89"},"nativeSrc":"18686:19:89","nodeType":"YulFunctionCall","src":"18686:19:89"},{"arguments":[{"arguments":[{"name":"tail_3","nativeSrc":"18715:6:89","nodeType":"YulIdentifier","src":"18715:6:89"},{"name":"headStart","nativeSrc":"18723:9:89","nodeType":"YulIdentifier","src":"18723:9:89"}],"functionName":{"name":"sub","nativeSrc":"18711:3:89","nodeType":"YulIdentifier","src":"18711:3:89"},"nativeSrc":"18711:22:89","nodeType":"YulFunctionCall","src":"18711:22:89"},{"arguments":[{"kind":"number","nativeSrc":"18739:2:89","nodeType":"YulLiteral","src":"18739:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"18735:3:89","nodeType":"YulIdentifier","src":"18735:3:89"},"nativeSrc":"18735:7:89","nodeType":"YulFunctionCall","src":"18735:7:89"}],"functionName":{"name":"add","nativeSrc":"18707:3:89","nodeType":"YulIdentifier","src":"18707:3:89"},"nativeSrc":"18707:36:89","nodeType":"YulFunctionCall","src":"18707:36:89"}],"functionName":{"name":"mstore","nativeSrc":"18679:6:89","nodeType":"YulIdentifier","src":"18679:6:89"},"nativeSrc":"18679:65:89","nodeType":"YulFunctionCall","src":"18679:65:89"},"nativeSrc":"18679:65:89","nodeType":"YulExpressionStatement","src":"18679:65:89"},{"nativeSrc":"18753:77:89","nodeType":"YulVariableDeclaration","src":"18753:77:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"18807:14:89","nodeType":"YulIdentifier","src":"18807:14:89"},{"name":"tail_3","nativeSrc":"18823:6:89","nodeType":"YulIdentifier","src":"18823:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"18767:39:89","nodeType":"YulIdentifier","src":"18767:39:89"},"nativeSrc":"18767:63:89","nodeType":"YulFunctionCall","src":"18767:63:89"},"variables":[{"name":"tail_4","nativeSrc":"18757:6:89","nodeType":"YulTypedName","src":"18757:6:89","type":""}]},{"nativeSrc":"18839:45:89","nodeType":"YulVariableDeclaration","src":"18839:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"18871:6:89","nodeType":"YulIdentifier","src":"18871:6:89"},{"kind":"number","nativeSrc":"18879:3:89","nodeType":"YulLiteral","src":"18879:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"18867:3:89","nodeType":"YulIdentifier","src":"18867:3:89"},"nativeSrc":"18867:16:89","nodeType":"YulFunctionCall","src":"18867:16:89"}],"functionName":{"name":"mload","nativeSrc":"18861:5:89","nodeType":"YulIdentifier","src":"18861:5:89"},"nativeSrc":"18861:23:89","nodeType":"YulFunctionCall","src":"18861:23:89"},"variables":[{"name":"memberValue0_4","nativeSrc":"18843:14:89","nodeType":"YulTypedName","src":"18843:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18904:9:89","nodeType":"YulIdentifier","src":"18904:9:89"},{"kind":"number","nativeSrc":"18915:6:89","nodeType":"YulLiteral","src":"18915:6:89","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"18900:3:89","nodeType":"YulIdentifier","src":"18900:3:89"},"nativeSrc":"18900:22:89","nodeType":"YulFunctionCall","src":"18900:22:89"},{"arguments":[{"arguments":[{"name":"tail_4","nativeSrc":"18932:6:89","nodeType":"YulIdentifier","src":"18932:6:89"},{"name":"headStart","nativeSrc":"18940:9:89","nodeType":"YulIdentifier","src":"18940:9:89"}],"functionName":{"name":"sub","nativeSrc":"18928:3:89","nodeType":"YulIdentifier","src":"18928:3:89"},"nativeSrc":"18928:22:89","nodeType":"YulFunctionCall","src":"18928:22:89"},{"arguments":[{"kind":"number","nativeSrc":"18956:2:89","nodeType":"YulLiteral","src":"18956:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"18952:3:89","nodeType":"YulIdentifier","src":"18952:3:89"},"nativeSrc":"18952:7:89","nodeType":"YulFunctionCall","src":"18952:7:89"}],"functionName":{"name":"add","nativeSrc":"18924:3:89","nodeType":"YulIdentifier","src":"18924:3:89"},"nativeSrc":"18924:36:89","nodeType":"YulFunctionCall","src":"18924:36:89"}],"functionName":{"name":"mstore","nativeSrc":"18893:6:89","nodeType":"YulIdentifier","src":"18893:6:89"},"nativeSrc":"18893:68:89","nodeType":"YulFunctionCall","src":"18893:68:89"},"nativeSrc":"18893:68:89","nodeType":"YulExpressionStatement","src":"18893:68:89"},{"nativeSrc":"18970:69:89","nodeType":"YulAssignment","src":"18970:69:89","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"19016:14:89","nodeType":"YulIdentifier","src":"19016:14:89"},{"name":"tail_4","nativeSrc":"19032:6:89","nodeType":"YulIdentifier","src":"19032:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"18978:37:89","nodeType":"YulIdentifier","src":"18978:37:89"},"nativeSrc":"18978:61:89","nodeType":"YulFunctionCall","src":"18978:61:89"},"variableNames":[{"name":"tail","nativeSrc":"18970:4:89","nodeType":"YulIdentifier","src":"18970:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr__to_t_struct$_OutMessageV1_$16084_memory_ptr__fromStack_reversed","nativeSrc":"17679:1366:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17811:9:89","nodeType":"YulTypedName","src":"17811:9:89","type":""},{"name":"value0","nativeSrc":"17822:6:89","nodeType":"YulTypedName","src":"17822:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17833:4:89","nodeType":"YulTypedName","src":"17833:4:89","type":""}],"src":"17679:1366:89"},{"body":{"nativeSrc":"19197:142:89","nodeType":"YulBlock","src":"19197:142:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19214:9:89","nodeType":"YulIdentifier","src":"19214:9:89"},{"name":"value0","nativeSrc":"19225:6:89","nodeType":"YulIdentifier","src":"19225:6:89"}],"functionName":{"name":"mstore","nativeSrc":"19207:6:89","nodeType":"YulIdentifier","src":"19207:6:89"},"nativeSrc":"19207:25:89","nodeType":"YulFunctionCall","src":"19207:25:89"},"nativeSrc":"19207:25:89","nodeType":"YulExpressionStatement","src":"19207:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19252:9:89","nodeType":"YulIdentifier","src":"19252:9:89"},{"kind":"number","nativeSrc":"19263:2:89","nodeType":"YulLiteral","src":"19263:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19248:3:89","nodeType":"YulIdentifier","src":"19248:3:89"},"nativeSrc":"19248:18:89","nodeType":"YulFunctionCall","src":"19248:18:89"},{"kind":"number","nativeSrc":"19268:2:89","nodeType":"YulLiteral","src":"19268:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"19241:6:89","nodeType":"YulIdentifier","src":"19241:6:89"},"nativeSrc":"19241:30:89","nodeType":"YulFunctionCall","src":"19241:30:89"},"nativeSrc":"19241:30:89","nodeType":"YulExpressionStatement","src":"19241:30:89"},{"nativeSrc":"19280:53:89","nodeType":"YulAssignment","src":"19280:53:89","value":{"arguments":[{"name":"value1","nativeSrc":"19306:6:89","nodeType":"YulIdentifier","src":"19306:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"19318:9:89","nodeType":"YulIdentifier","src":"19318:9:89"},{"kind":"number","nativeSrc":"19329:2:89","nodeType":"YulLiteral","src":"19329:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19314:3:89","nodeType":"YulIdentifier","src":"19314:3:89"},"nativeSrc":"19314:18:89","nodeType":"YulFunctionCall","src":"19314:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"19288:17:89","nodeType":"YulIdentifier","src":"19288:17:89"},"nativeSrc":"19288:45:89","nodeType":"YulFunctionCall","src":"19288:45:89"},"variableNames":[{"name":"tail","nativeSrc":"19280:4:89","nodeType":"YulIdentifier","src":"19280:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"19050:289:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19158:9:89","nodeType":"YulTypedName","src":"19158:9:89","type":""},{"name":"value1","nativeSrc":"19169:6:89","nodeType":"YulTypedName","src":"19169:6:89","type":""},{"name":"value0","nativeSrc":"19177:6:89","nodeType":"YulTypedName","src":"19177:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19188:4:89","nodeType":"YulTypedName","src":"19188:4:89","type":""}],"src":"19050:289:89"},{"body":{"nativeSrc":"19444:931:89","nodeType":"YulBlock","src":"19444:931:89","statements":[{"body":{"nativeSrc":"19490:16:89","nodeType":"YulBlock","src":"19490:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19499:1:89","nodeType":"YulLiteral","src":"19499:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"19502:1:89","nodeType":"YulLiteral","src":"19502:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19492:6:89","nodeType":"YulIdentifier","src":"19492:6:89"},"nativeSrc":"19492:12:89","nodeType":"YulFunctionCall","src":"19492:12:89"},"nativeSrc":"19492:12:89","nodeType":"YulExpressionStatement","src":"19492:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19465:7:89","nodeType":"YulIdentifier","src":"19465:7:89"},{"name":"headStart","nativeSrc":"19474:9:89","nodeType":"YulIdentifier","src":"19474:9:89"}],"functionName":{"name":"sub","nativeSrc":"19461:3:89","nodeType":"YulIdentifier","src":"19461:3:89"},"nativeSrc":"19461:23:89","nodeType":"YulFunctionCall","src":"19461:23:89"},{"kind":"number","nativeSrc":"19486:2:89","nodeType":"YulLiteral","src":"19486:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19457:3:89","nodeType":"YulIdentifier","src":"19457:3:89"},"nativeSrc":"19457:32:89","nodeType":"YulFunctionCall","src":"19457:32:89"},"nativeSrc":"19454:52:89","nodeType":"YulIf","src":"19454:52:89"},{"nativeSrc":"19515:37:89","nodeType":"YulVariableDeclaration","src":"19515:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"19542:9:89","nodeType":"YulIdentifier","src":"19542:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"19529:12:89","nodeType":"YulIdentifier","src":"19529:12:89"},"nativeSrc":"19529:23:89","nodeType":"YulFunctionCall","src":"19529:23:89"},"variables":[{"name":"offset","nativeSrc":"19519:6:89","nodeType":"YulTypedName","src":"19519:6:89","type":""}]},{"body":{"nativeSrc":"19595:16:89","nodeType":"YulBlock","src":"19595:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19604:1:89","nodeType":"YulLiteral","src":"19604:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"19607:1:89","nodeType":"YulLiteral","src":"19607:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19597:6:89","nodeType":"YulIdentifier","src":"19597:6:89"},"nativeSrc":"19597:12:89","nodeType":"YulFunctionCall","src":"19597:12:89"},"nativeSrc":"19597:12:89","nodeType":"YulExpressionStatement","src":"19597:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19567:6:89","nodeType":"YulIdentifier","src":"19567:6:89"},{"kind":"number","nativeSrc":"19575:18:89","nodeType":"YulLiteral","src":"19575:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19564:2:89","nodeType":"YulIdentifier","src":"19564:2:89"},"nativeSrc":"19564:30:89","nodeType":"YulFunctionCall","src":"19564:30:89"},"nativeSrc":"19561:50:89","nodeType":"YulIf","src":"19561:50:89"},{"nativeSrc":"19620:32:89","nodeType":"YulVariableDeclaration","src":"19620:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"19634:9:89","nodeType":"YulIdentifier","src":"19634:9:89"},{"name":"offset","nativeSrc":"19645:6:89","nodeType":"YulIdentifier","src":"19645:6:89"}],"functionName":{"name":"add","nativeSrc":"19630:3:89","nodeType":"YulIdentifier","src":"19630:3:89"},"nativeSrc":"19630:22:89","nodeType":"YulFunctionCall","src":"19630:22:89"},"variables":[{"name":"_1","nativeSrc":"19624:2:89","nodeType":"YulTypedName","src":"19624:2:89","type":""}]},{"body":{"nativeSrc":"19692:16:89","nodeType":"YulBlock","src":"19692:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19701:1:89","nodeType":"YulLiteral","src":"19701:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"19704:1:89","nodeType":"YulLiteral","src":"19704:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19694:6:89","nodeType":"YulIdentifier","src":"19694:6:89"},"nativeSrc":"19694:12:89","nodeType":"YulFunctionCall","src":"19694:12:89"},"nativeSrc":"19694:12:89","nodeType":"YulExpressionStatement","src":"19694:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19672:7:89","nodeType":"YulIdentifier","src":"19672:7:89"},{"name":"_1","nativeSrc":"19681:2:89","nodeType":"YulIdentifier","src":"19681:2:89"}],"functionName":{"name":"sub","nativeSrc":"19668:3:89","nodeType":"YulIdentifier","src":"19668:3:89"},"nativeSrc":"19668:16:89","nodeType":"YulFunctionCall","src":"19668:16:89"},{"kind":"number","nativeSrc":"19686:4:89","nodeType":"YulLiteral","src":"19686:4:89","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"19664:3:89","nodeType":"YulIdentifier","src":"19664:3:89"},"nativeSrc":"19664:27:89","nodeType":"YulFunctionCall","src":"19664:27:89"},"nativeSrc":"19661:47:89","nodeType":"YulIf","src":"19661:47:89"},{"nativeSrc":"19717:35:89","nodeType":"YulVariableDeclaration","src":"19717:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_2476","nativeSrc":"19730:20:89","nodeType":"YulIdentifier","src":"19730:20:89"},"nativeSrc":"19730:22:89","nodeType":"YulFunctionCall","src":"19730:22:89"},"variables":[{"name":"value","nativeSrc":"19721:5:89","nodeType":"YulTypedName","src":"19721:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19768:5:89","nodeType":"YulIdentifier","src":"19768:5:89"},{"arguments":[{"name":"_1","nativeSrc":"19793:2:89","nodeType":"YulIdentifier","src":"19793:2:89"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"19775:17:89","nodeType":"YulIdentifier","src":"19775:17:89"},"nativeSrc":"19775:21:89","nodeType":"YulFunctionCall","src":"19775:21:89"}],"functionName":{"name":"mstore","nativeSrc":"19761:6:89","nodeType":"YulIdentifier","src":"19761:6:89"},"nativeSrc":"19761:36:89","nodeType":"YulFunctionCall","src":"19761:36:89"},"nativeSrc":"19761:36:89","nodeType":"YulExpressionStatement","src":"19761:36:89"},{"nativeSrc":"19806:16:89","nodeType":"YulVariableDeclaration","src":"19806:16:89","value":{"kind":"number","nativeSrc":"19821:1:89","nodeType":"YulLiteral","src":"19821:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"19810:7:89","nodeType":"YulTypedName","src":"19810:7:89","type":""}]},{"nativeSrc":"19831:36:89","nodeType":"YulAssignment","src":"19831:36:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"19859:2:89","nodeType":"YulIdentifier","src":"19859:2:89"},{"kind":"number","nativeSrc":"19863:2:89","nodeType":"YulLiteral","src":"19863:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19855:3:89","nodeType":"YulIdentifier","src":"19855:3:89"},"nativeSrc":"19855:11:89","nodeType":"YulFunctionCall","src":"19855:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"19842:12:89","nodeType":"YulIdentifier","src":"19842:12:89"},"nativeSrc":"19842:25:89","nodeType":"YulFunctionCall","src":"19842:25:89"},"variableNames":[{"name":"value_1","nativeSrc":"19831:7:89","nodeType":"YulIdentifier","src":"19831:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19887:5:89","nodeType":"YulIdentifier","src":"19887:5:89"},{"kind":"number","nativeSrc":"19894:2:89","nodeType":"YulLiteral","src":"19894:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19883:3:89","nodeType":"YulIdentifier","src":"19883:3:89"},"nativeSrc":"19883:14:89","nodeType":"YulFunctionCall","src":"19883:14:89"},{"name":"value_1","nativeSrc":"19899:7:89","nodeType":"YulIdentifier","src":"19899:7:89"}],"functionName":{"name":"mstore","nativeSrc":"19876:6:89","nodeType":"YulIdentifier","src":"19876:6:89"},"nativeSrc":"19876:31:89","nodeType":"YulFunctionCall","src":"19876:31:89"},"nativeSrc":"19876:31:89","nodeType":"YulExpressionStatement","src":"19876:31:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19927:5:89","nodeType":"YulIdentifier","src":"19927:5:89"},{"kind":"number","nativeSrc":"19934:2:89","nodeType":"YulLiteral","src":"19934:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19923:3:89","nodeType":"YulIdentifier","src":"19923:3:89"},"nativeSrc":"19923:14:89","nodeType":"YulFunctionCall","src":"19923:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"19956:2:89","nodeType":"YulIdentifier","src":"19956:2:89"},{"kind":"number","nativeSrc":"19960:2:89","nodeType":"YulLiteral","src":"19960:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19952:3:89","nodeType":"YulIdentifier","src":"19952:3:89"},"nativeSrc":"19952:11:89","nodeType":"YulFunctionCall","src":"19952:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"19939:12:89","nodeType":"YulIdentifier","src":"19939:12:89"},"nativeSrc":"19939:25:89","nodeType":"YulFunctionCall","src":"19939:25:89"}],"functionName":{"name":"mstore","nativeSrc":"19916:6:89","nodeType":"YulIdentifier","src":"19916:6:89"},"nativeSrc":"19916:49:89","nodeType":"YulFunctionCall","src":"19916:49:89"},"nativeSrc":"19916:49:89","nodeType":"YulExpressionStatement","src":"19916:49:89"},{"nativeSrc":"19974:41:89","nodeType":"YulVariableDeclaration","src":"19974:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"20007:2:89","nodeType":"YulIdentifier","src":"20007:2:89"},{"kind":"number","nativeSrc":"20011:2:89","nodeType":"YulLiteral","src":"20011:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20003:3:89","nodeType":"YulIdentifier","src":"20003:3:89"},"nativeSrc":"20003:11:89","nodeType":"YulFunctionCall","src":"20003:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"19990:12:89","nodeType":"YulIdentifier","src":"19990:12:89"},"nativeSrc":"19990:25:89","nodeType":"YulFunctionCall","src":"19990:25:89"},"variables":[{"name":"offset_1","nativeSrc":"19978:8:89","nodeType":"YulTypedName","src":"19978:8:89","type":""}]},{"body":{"nativeSrc":"20060:16:89","nodeType":"YulBlock","src":"20060:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20069:1:89","nodeType":"YulLiteral","src":"20069:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"20072:1:89","nodeType":"YulLiteral","src":"20072:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20062:6:89","nodeType":"YulIdentifier","src":"20062:6:89"},"nativeSrc":"20062:12:89","nodeType":"YulFunctionCall","src":"20062:12:89"},"nativeSrc":"20062:12:89","nodeType":"YulExpressionStatement","src":"20062:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"20030:8:89","nodeType":"YulIdentifier","src":"20030:8:89"},{"kind":"number","nativeSrc":"20040:18:89","nodeType":"YulLiteral","src":"20040:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20027:2:89","nodeType":"YulIdentifier","src":"20027:2:89"},"nativeSrc":"20027:32:89","nodeType":"YulFunctionCall","src":"20027:32:89"},"nativeSrc":"20024:52:89","nodeType":"YulIf","src":"20024:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20096:5:89","nodeType":"YulIdentifier","src":"20096:5:89"},{"kind":"number","nativeSrc":"20103:2:89","nodeType":"YulLiteral","src":"20103:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20092:3:89","nodeType":"YulIdentifier","src":"20092:3:89"},"nativeSrc":"20092:14:89","nodeType":"YulFunctionCall","src":"20092:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"20130:2:89","nodeType":"YulIdentifier","src":"20130:2:89"},{"name":"offset_1","nativeSrc":"20134:8:89","nodeType":"YulIdentifier","src":"20134:8:89"}],"functionName":{"name":"add","nativeSrc":"20126:3:89","nodeType":"YulIdentifier","src":"20126:3:89"},"nativeSrc":"20126:17:89","nodeType":"YulFunctionCall","src":"20126:17:89"},{"name":"dataEnd","nativeSrc":"20145:7:89","nodeType":"YulIdentifier","src":"20145:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"20108:17:89","nodeType":"YulIdentifier","src":"20108:17:89"},"nativeSrc":"20108:45:89","nodeType":"YulFunctionCall","src":"20108:45:89"}],"functionName":{"name":"mstore","nativeSrc":"20085:6:89","nodeType":"YulIdentifier","src":"20085:6:89"},"nativeSrc":"20085:69:89","nodeType":"YulFunctionCall","src":"20085:69:89"},"nativeSrc":"20085:69:89","nodeType":"YulExpressionStatement","src":"20085:69:89"},{"nativeSrc":"20163:42:89","nodeType":"YulVariableDeclaration","src":"20163:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"20196:2:89","nodeType":"YulIdentifier","src":"20196:2:89"},{"kind":"number","nativeSrc":"20200:3:89","nodeType":"YulLiteral","src":"20200:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20192:3:89","nodeType":"YulIdentifier","src":"20192:3:89"},"nativeSrc":"20192:12:89","nodeType":"YulFunctionCall","src":"20192:12:89"}],"functionName":{"name":"calldataload","nativeSrc":"20179:12:89","nodeType":"YulIdentifier","src":"20179:12:89"},"nativeSrc":"20179:26:89","nodeType":"YulFunctionCall","src":"20179:26:89"},"variables":[{"name":"offset_2","nativeSrc":"20167:8:89","nodeType":"YulTypedName","src":"20167:8:89","type":""}]},{"body":{"nativeSrc":"20250:16:89","nodeType":"YulBlock","src":"20250:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20259:1:89","nodeType":"YulLiteral","src":"20259:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"20262:1:89","nodeType":"YulLiteral","src":"20262:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20252:6:89","nodeType":"YulIdentifier","src":"20252:6:89"},"nativeSrc":"20252:12:89","nodeType":"YulFunctionCall","src":"20252:12:89"},"nativeSrc":"20252:12:89","nodeType":"YulExpressionStatement","src":"20252:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"20220:8:89","nodeType":"YulIdentifier","src":"20220:8:89"},{"kind":"number","nativeSrc":"20230:18:89","nodeType":"YulLiteral","src":"20230:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20217:2:89","nodeType":"YulIdentifier","src":"20217:2:89"},"nativeSrc":"20217:32:89","nodeType":"YulFunctionCall","src":"20217:32:89"},"nativeSrc":"20214:52:89","nodeType":"YulIf","src":"20214:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20286:5:89","nodeType":"YulIdentifier","src":"20286:5:89"},{"kind":"number","nativeSrc":"20293:3:89","nodeType":"YulLiteral","src":"20293:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20282:3:89","nodeType":"YulIdentifier","src":"20282:3:89"},"nativeSrc":"20282:15:89","nodeType":"YulFunctionCall","src":"20282:15:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"20321:2:89","nodeType":"YulIdentifier","src":"20321:2:89"},{"name":"offset_2","nativeSrc":"20325:8:89","nodeType":"YulIdentifier","src":"20325:8:89"}],"functionName":{"name":"add","nativeSrc":"20317:3:89","nodeType":"YulIdentifier","src":"20317:3:89"},"nativeSrc":"20317:17:89","nodeType":"YulFunctionCall","src":"20317:17:89"},{"name":"dataEnd","nativeSrc":"20336:7:89","nodeType":"YulIdentifier","src":"20336:7:89"}],"functionName":{"name":"abi_decode_string","nativeSrc":"20299:17:89","nodeType":"YulIdentifier","src":"20299:17:89"},"nativeSrc":"20299:45:89","nodeType":"YulFunctionCall","src":"20299:45:89"}],"functionName":{"name":"mstore","nativeSrc":"20275:6:89","nodeType":"YulIdentifier","src":"20275:6:89"},"nativeSrc":"20275:70:89","nodeType":"YulFunctionCall","src":"20275:70:89"},"nativeSrc":"20275:70:89","nodeType":"YulExpressionStatement","src":"20275:70:89"},{"nativeSrc":"20354:15:89","nodeType":"YulAssignment","src":"20354:15:89","value":{"name":"value","nativeSrc":"20364:5:89","nodeType":"YulIdentifier","src":"20364:5:89"},"variableNames":[{"name":"value0","nativeSrc":"20354:6:89","nodeType":"YulIdentifier","src":"20354:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr","nativeSrc":"19344:1031:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19410:9:89","nodeType":"YulTypedName","src":"19410:9:89","type":""},{"name":"dataEnd","nativeSrc":"19421:7:89","nodeType":"YulTypedName","src":"19421:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19433:6:89","nodeType":"YulTypedName","src":"19433:6:89","type":""}],"src":"19344:1031:89"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_struct$_OutMessageV1_$16084_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 256) { revert(0, 0) }\n        value0 := _1\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function access_calldata_tail_t_array$_t_struct$_TokenAmount_$15999_calldata_ptr_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), shl(6, length))) { revert(0, 0) }\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_2469() -> memPtr\n    {\n        memPtr := mload(0x40)\n        let newFreePtr := add(memPtr, 0x40)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(0x40, newFreePtr)\n    }\n    function allocate_memory_2472() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x60)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory_2474() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x0100)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory_2476() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xa0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let src := add(offset, 0x20)\n        let array_1 := 0\n        let size := array_1\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n        array_1 := allocate_memory(size)\n        mstore(array_1, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), src, length)\n        mstore(add(add(array_1, length), 0x20), 0)\n        array := array_1\n    }\n    function array_allocation_size_array_string_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_string_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let dst := allocate_memory(array_allocation_size_array_string_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, length)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(dst, abi_decode_string(add(add(offset, innerOffset), 0x20), end))\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_array_struct_TokenAmount_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let dst := allocate_memory(array_allocation_size_array_string_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(6, length)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x40) }\n        {\n            if slt(sub(end, src), 0x40) { revert(0, 0) }\n            let value := allocate_memory_2469()\n            mstore(value, abi_decode_address(src))\n            let value_1 := 0\n            value_1 := calldataload(add(src, 0x20))\n            mstore(add(value, 0x20), value_1)\n            mstore(dst, value)\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function abi_decode_array_struct_NFTAmount_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let dst := allocate_memory(array_allocation_size_array_string_dyn(length))\n        let array_1 := dst\n        mstore(dst, length)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, mul(length, 0x60)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, 0x60) }\n        {\n            if slt(sub(end, src), 0x60) { revert(0, 0) }\n            let value := allocate_memory_2472()\n            mstore(value, abi_decode_address(src))\n            let value_1 := 0\n            value_1 := calldataload(add(src, 0x20))\n            mstore(add(value, 0x20), value_1)\n            let value_2 := 0\n            value_2 := calldataload(add(src, 64))\n            mstore(add(value, 64), value_2)\n            mstore(dst, value)\n            dst := add(dst, 0x20)\n        }\n        array := array_1\n    }\n    function convert_t_struct$_OutMessageV1_$16084_calldata_ptr_to_t_struct$_OutMessageV1_$16084_memory_ptr(value) -> converted\n    {\n        if slt(sub(calldatasize(), value), 0x0100) { revert(0, 0) }\n        let value_1 := allocate_memory_2474()\n        mstore(value_1, abi_decode_uint64(value))\n        let offset := calldataload(add(value, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value_1, 32), abi_decode_string(add(value, offset), calldatasize()))\n        let offset_1 := calldataload(add(value, 64))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value_1, 64), abi_decode_string(add(value, offset_1), calldatasize()))\n        let value_2 := 0\n        value_2 := calldataload(add(value, 96))\n        mstore(add(value_1, 96), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(value, 128))\n        mstore(add(value_1, 128), value_3)\n        let offset_2 := calldataload(add(value, 160))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value_1, 160), abi_decode_array_string_dyn(add(value, offset_2), calldatasize()))\n        let offset_3 := calldataload(add(value, 192))\n        if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value_1, 192), abi_decode_array_struct_TokenAmount_dyn(add(value, offset_3), calldatasize()))\n        let offset_4 := calldataload(add(value, 224))\n        if gt(offset_4, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value_1, 224), abi_decode_array_struct_NFTAmount_dyn(add(value, offset_4), calldatasize()))\n        converted := value_1\n    }\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(add(pos, i), 0x20), mload(add(add(value, i), 0x20)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_array_struct_TokenAmount_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_struct$_NFTAmount_$16007_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_array_struct_NFTAmount_dyn(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_uint64(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffff))\n    }\n    function abi_encode_array_struct_TokenAmount_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let _1 := mload(srcPtr)\n            let updatedPos := 0\n            mstore(pos, and(mload(_1), sub(shl(160, 1), 1)))\n            mstore(add(pos, 0x20), mload(add(_1, 0x20)))\n            updatedPos := add(pos, 0x40)\n            pos := updatedPos\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr__to_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr_t_array$_t_struct$_TokenAmount_$15999_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 192)\n        let tail_1 := abi_encode_string(value3, add(headStart, 192))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        let tail_2 := abi_encode_string(value4, tail_1)\n        mstore(add(headStart, 160), sub(tail_2, headStart))\n        tail := abi_encode_array_struct_TokenAmount_dyn(value5, tail_2)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint64_t_uint256_t_bytes32_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), 192)\n        let tail_1 := abi_encode_string(value4, add(headStart, 192))\n        mstore(add(headStart, 160), sub(tail_1, headStart))\n        tail := abi_encode_string(value5, tail_1)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_array_string_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            tail := abi_encode_string(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_array_struct_NFTAmount_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let _1 := mload(srcPtr)\n            mstore(pos, and(mload(_1), sub(shl(160, 1), 1)))\n            mstore(add(pos, 0x20), mload(add(_1, 0x20)))\n            mstore(add(pos, 0x40), mload(add(_1, 0x40)))\n            pos := add(pos, 0x60)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr__to_t_struct$_OutMessageV1_$16084_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        abi_encode_uint64(mload(value0), add(headStart, 32))\n        let memberValue0 := mload(add(value0, 32))\n        mstore(add(headStart, 64), 0x0100)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 288))\n        let memberValue0_1 := mload(add(value0, 64))\n        mstore(add(headStart, 96), add(sub(tail_1, headStart), not(31)))\n        let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n        mstore(add(headStart, 128), mload(add(value0, 96)))\n        mstore(add(headStart, 160), mload(add(value0, 128)))\n        let memberValue0_2 := mload(add(value0, 160))\n        mstore(add(headStart, 192), add(sub(tail_2, headStart), not(31)))\n        let tail_3 := abi_encode_array_string_dyn(memberValue0_2, tail_2)\n        let memberValue0_3 := mload(add(value0, 192))\n        mstore(add(headStart, 224), add(sub(tail_3, headStart), not(31)))\n        let tail_4 := abi_encode_array_struct_TokenAmount_dyn(memberValue0_3, tail_3)\n        let memberValue0_4 := mload(add(value0, 224))\n        mstore(add(headStart, 0x0100), add(sub(tail_4, headStart), not(31)))\n        tail := abi_encode_array_struct_NFTAmount_dyn(memberValue0_4, tail_4)\n    }\n    function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_decode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 0xa0) { revert(0, 0) }\n        let value := allocate_memory_2476()\n        mstore(value, abi_decode_uint64(_1))\n        let value_1 := 0\n        value_1 := calldataload(add(_1, 32))\n        mstore(add(value, 32), value_1)\n        mstore(add(value, 64), calldataload(add(_1, 64)))\n        let offset_1 := calldataload(add(_1, 96))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 96), abi_decode_string(add(_1, offset_1), dataEnd))\n        let offset_2 := calldataload(add(_1, 128))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 128), abi_decode_string(add(_1, offset_2), dataEnd))\n        value0 := value\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"18450":[{"length":32,"start":913},{"length":32,"start":1420},{"length":32,"start":2045},{"length":32,"start":2669},{"length":32,"start":3133},{"length":32,"start":3346},{"length":32,"start":3481}]},"linkReferences":{},"object":"60806040526004361061009f5760003560e01c80632096525511610064578063209652551461019b578063302b86b0146101b05780633d2cfad2146101d057806350e9c31b146101f0578063bcb2606c14610210578063e77d74b01461023157600080fd5b806220cb2d146100de5780630d8e6e2c146100f3578063145769f51461011657806314c68a7314610136578063150b7a021461015657600080fd5b366100d9576040513481527f49b4c3f4344f33413322c03885f90f29e906bd8eb0cb2c3d815ee1ad2b3c989c9060200160405180910390a1005b600080fd5b6100f16100ec366004610e72565b610251565b005b3480156100ff57600080fd5b5060015b6040519081526020015b60405180910390f35b34801561012257600080fd5b506100f1610131366004610efc565b6104fc565b34801561014257600080fd5b506100f1610151366004610efc565b61052c565b34801561016257600080fd5b50610182610171366004610f87565b630a85bd0160e11b95945050505050565b6040516001600160e01b0319909116815260200161010d565b3480156101a757600080fd5b50600054610103565b3480156101bc57600080fd5b506100f16101cb366004610efc565b6107a2565b3480156101dc57600080fd5b506100f16101eb366004610efc565b61098b565b3480156101fc57600080fd5b506100f161020b366004610efc565b6109c0565b34801561021c57600080fd5b506100f161022b366004610efc565b50505050565b34801561023d57600080fd5b506100f161024c366004610efc565b610c32565b60005b61026160c0830183610ff5565b90508110156104545761027760c0830183610ff5565b828181106102875761028761103e565b61029d9260206040909202019081019150611054565b6001600160a01b03166323b872dd33306102ba60c0870187610ff5565b868181106102ca576102ca61103e565b6040805160e088901b6001600160e01b03191681526001600160a01b0396871660048201529490951660248501529093020160200135604482015260640190506020604051808303816000875af1158015610329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034d919061106f565b5061035b60c0830183610ff5565b8281811061036b5761036b61103e565b6103819260206040909202019081019150611054565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006103bd60c0860186610ff5565b858181106103cd576103cd61103e565b905060400201602001356040518363ffffffff1660e01b81526004016104089291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610427573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044b919061106f565b50600101610254565b50600061045f610d0e565b9050808260600135101561049857604051635cd2ad5760e01b815260608301356004820152602481018290526044015b60405180910390fd5b346104ab60808401356060850135611091565b11156104e657346104c460808401356060850135611091565b60405163e3a1514160e01b81526004810192909252602482015260440161048f565b6104f86104f2836113e8565b34610d97565b5050565b600061050a828401846114ff565b60008055604051632173ad2760e21b815290915061048f908290600401611581565b60006105388585610e33565b9050600061054883850185611594565b905060005b815181101561079957600082828151811061056a5761056a61103e565b6020026020010151905080600001516001600160a01b031663095ea7b36105ae7f000000000000000000000000000000000000000000000000000000000000000090565b60208401516040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156105fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610622919061106f565b50604080516001808252818301909252600091816020015b604080518082019091526000808252602082015281526020019060019003908161063a57905050905081816000815181106106775761067761103e565b6020026020010181905250600060405180610100016040528087600001516001600160401b0316815260200187606001518152602001604051806020016040528060008152508152602001600081526020016000815260200160006001600160401b038111156106e9576106e96110b2565b60405190808252806020026020018201604052801561071c57816020015b60608152602001906001900390816107075790505b508152602080820185905260408051600080825292810182529201919061077e565b61076b604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b81526020019060019003908161073e5790505b509052905061078e816000610d97565b50505060010161054d565b50505050505050565b60006107b0828401846115c8565b905060006107be8686610e33565b905060005b82518110156108ac578281815181106107de576107de61103e565b6020026020010151600001516001600160a01b031663095ea7b361081f7f000000000000000000000000000000000000000000000000000000000000000090565b8584815181106108315761083161103e565b6020026020010151602001516040518363ffffffff1660e01b815260040161086e9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050600190920191506107c39050565b50604080516101008101825282516001600160401b031681526060808401516020808401919091528351908101845260008082529383015281018290526080810182905260a081018260405190808252806020026020018201604052801561092857816020015b60608152602001906001900390816109135790505b508152602001600060405190808252806020026020018201604052801561097557816020015b604080518082019091526000808252602082015281526020019060019003908161094e5790505b5081526020018490529050610799816000610d97565b600080805561099c828401846114ff565b90508060405162461bcd60e51b815260040161048f9190611581565b505050505050565b60006109cc8585610e33565b905060006109dc83850185611594565b825160208401516040808601516060870151608088015192519596507f7455bef08ac052a65b30e5155a7c364504a560fd4753a612d34802695a56f36595610a2895949390889061164d565b60405180910390a160005b8151811015610b2a57818181518110610a4e57610a4e61103e565b6020026020010151600001516001600160a01b031663095ea7b3610a8f7f000000000000000000000000000000000000000000000000000000000000000090565b848481518110610aa157610aa161103e565b6020026020010151602001516040518363ffffffff1660e01b8152600401610ade9291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061106f565b50600101610a33565b506109b860405180610100016040528084600001516001600160401b0316815260200184606001518152602001604051806020016040528060008152508152602001600081526020016000815260200160006001600160401b03811115610b9357610b936110b2565b604051908082528060200260200182016040528015610bc657816020015b6060815260200190600190039081610bb15790505b5081526020808201859052604080516000808252928101825292019190610c28565b610c15604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b815260200190600190039081610be85790505b5090526000610d97565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c7b576040516367ab7efd60e01b815260040160405180910390fd5b6000610c878585610e33565b90506000610c97838501856116ae565b905080600080828254610caa9190611091565b925050819055507f526f6652e74a3d979e195201cecc97a834b957cc0097468b9843d280b17a5d1a8183600001518460200151856040015186606001518760800151604051610cfe969594939291906116c7565b60405180910390a1505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a5a410316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d92919061170d565b905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e289adcd82600185604051602001610dda91906117d6565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401610e069291906118a2565b6000604051808303818588803b158015610e1f57600080fd5b505af1158015610799573d6000803e3d6000fd5b6040805160a0810182526000808252602082018190529181019190915260608082018190526080820152610e69828401846118bb565b90505b92915050565b600060208284031215610e8457600080fd5b81356001600160401b03811115610e9a57600080fd5b82016101008185031215610ead57600080fd5b9392505050565b60008083601f840112610ec657600080fd5b5081356001600160401b03811115610edd57600080fd5b602083019150836020828501011115610ef557600080fd5b9250929050565b60008060008060408587031215610f1257600080fd5b84356001600160401b03811115610f2857600080fd5b610f3487828801610eb4565b90955093505060208501356001600160401b03811115610f5357600080fd5b610f5f87828801610eb4565b95989497509550505050565b80356001600160a01b0381168114610f8257600080fd5b919050565b600080600080600060808688031215610f9f57600080fd5b610fa886610f6b565b9450610fb660208701610f6b565b93506040860135925060608601356001600160401b03811115610fd857600080fd5b610fe488828901610eb4565b969995985093965092949392505050565b6000808335601e1984360301811261100c57600080fd5b8301803591506001600160401b0382111561102657600080fd5b6020019150600681901b3603821315610ef557600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561106657600080fd5b610e6982610f6b565b60006020828403121561108157600080fd5b81518015158114610ead57600080fd5b80820180821115610e6c57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156110ea576110ea6110b2565b60405290565b604051606081016001600160401b03811182821017156110ea576110ea6110b2565b60405161010081016001600160401b03811182821017156110ea576110ea6110b2565b60405160a081016001600160401b03811182821017156110ea576110ea6110b2565b604051601f8201601f191681016001600160401b038111828210171561117f5761117f6110b2565b604052919050565b80356001600160401b0381168114610f8257600080fd5b600082601f8301126111af57600080fd5b8135602083016000806001600160401b038411156111cf576111cf6110b2565b50601f8301601f19166020016111e481611157565b9150508281528583830111156111f957600080fd5b82826020830137600092810160200192909252509392505050565b60006001600160401b0382111561122d5761122d6110b2565b5060051b60200190565b600082601f83011261124857600080fd5b813561125b61125682611214565b611157565b8082825260208201915060208360051b86010192508583111561127d57600080fd5b602085015b838110156112be5780356001600160401b038111156112a057600080fd5b6112af886020838a010161119e565b84525060209283019201611282565b5095945050505050565b600082601f8301126112d957600080fd5b81356112e761125682611214565b8082825260208201915060208360061b86010192508583111561130957600080fd5b602085015b838110156112be576040818803121561132657600080fd5b61132e6110c8565b61133782610f6b565b815260208281013581830152908452929092019160400161130e565b600082601f83011261136457600080fd5b813561137261125682611214565b8082825260208201915060206060840286010192508583111561139457600080fd5b602085015b838110156112be57606081880312156113b157600080fd5b6113b96110f0565b6113c282610f6b565b815260208281013581830152604080840135908301529084529290920191606001611399565b600061010082360312156113fb57600080fd5b611403611112565b61140c83611187565b815260208301356001600160401b0381111561142757600080fd5b6114333682860161119e565b60208301525060408301356001600160401b0381111561145257600080fd5b61145e3682860161119e565b604083015250606083810135908201526080808401359082015260a08301356001600160401b0381111561149157600080fd5b61149d36828601611237565b60a08301525060c08301356001600160401b038111156114bc57600080fd5b6114c8368286016112c8565b60c08301525060e08301356001600160401b038111156114e757600080fd5b6114f336828601611353565b60e08301525092915050565b60006020828403121561151157600080fd5b81356001600160401b0381111561152757600080fd5b6115338482850161119e565b949350505050565b6000815180845260005b8181101561156157602081850181015186830182015201611545565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610e69602083018461153b565b6000602082840312156115a657600080fd5b81356001600160401b038111156115bc57600080fd5b611533848285016112c8565b6000602082840312156115da57600080fd5b81356001600160401b038111156115f057600080fd5b61153384828501611353565b600081518084526020840193506020830160005b8281101561164357815180516001600160a01b031687526020908101518188015260409096019590910190600101611610565b5093949350505050565b6001600160401b038716815285602082015284604082015260c06060820152600061167b60c083018661153b565b828103608084015261168d818661153b565b905082810360a08401526116a181856115fc565b9998505050505050505050565b6000602082840312156116c057600080fd5b5035919050565b8681526001600160401b038616602082015284604082015283606082015260c0608082015260006116fb60c083018561153b565b82810360a08401526116a1818561153b565b60006020828403121561171f57600080fd5b5051919050565b600082825180855260208501945060208160051b8301016020850160005b8381101561177657601f1985840301885261176083835161153b565b6020988901989093509190910190600101611744565b50909695505050505050565b600081518084526020840193506020830160005b8281101561164357815180516001600160a01b03168752602080820151818901526040918201519188019190915260609096019590910190600101611796565b602081526117f06020820183516001600160401b03169052565b60006020830151610100604084015261180d61012084018261153b565b90506040840151601f1984830301606085015261182a828261153b565b91505060608401516080840152608084015160a084015260a0840151601f198483030160c085015261185c8282611726565b91505060c0840151601f198483030160e085015261187a82826115fc565b91505060e0840151601f19848303016101008501526118998282611782565b95945050505050565b828152604060208201526000611533604083018461153b565b6000602082840312156118cd57600080fd5b81356001600160401b038111156118e357600080fd5b820160a081850312156118f557600080fd5b6118fd611135565b61190682611187565b8152602082810135908201526040808301359082015260608201356001600160401b0381111561193557600080fd5b6119418682850161119e565b60608301525060808201356001600160401b0381111561196057600080fd5b61196c8682850161119e565b60808301525094935050505056fea26469706673582212202b017125fab5680b2ea3a68dea223bd4749ff83afdc10090097193b7a8a0750e64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x20965255 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x20965255 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0x302B86B0 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x3D2CFAD2 EQ PUSH2 0x1D0 JUMPI DUP1 PUSH4 0x50E9C31B EQ PUSH2 0x1F0 JUMPI DUP1 PUSH4 0xBCB2606C EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xE77D74B0 EQ PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x20CB2D EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0xD8E6E2C EQ PUSH2 0xF3 JUMPI DUP1 PUSH4 0x145769F5 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x14C68A73 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xD9 JUMPI PUSH1 0x40 MLOAD CALLVALUE DUP2 MSTORE PUSH32 0x49B4C3F4344F33413322C03885F90F29E906BD8EB0CB2C3D815EE1AD2B3C989C SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF1 PUSH2 0xEC CALLDATASIZE PUSH1 0x4 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x251 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x142 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x151 CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x52C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0xF87 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x103 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x1CB CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x7A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x1EB CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x98B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x20B CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0x9C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x22B CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0xEFC JUMP JUMPDEST PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH2 0x261 PUSH1 0xC0 DUP4 ADD DUP4 PUSH2 0xFF5 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x454 JUMPI PUSH2 0x277 PUSH1 0xC0 DUP4 ADD DUP4 PUSH2 0xFF5 JUMP JUMPDEST DUP3 DUP2 DUP2 LT PUSH2 0x287 JUMPI PUSH2 0x287 PUSH2 0x103E JUMP JUMPDEST PUSH2 0x29D SWAP3 PUSH1 0x20 PUSH1 0x40 SWAP1 SWAP3 MUL ADD SWAP1 DUP2 ADD SWAP2 POP PUSH2 0x1054 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD CALLER ADDRESS PUSH2 0x2BA PUSH1 0xC0 DUP8 ADD DUP8 PUSH2 0xFF5 JUMP JUMPDEST DUP7 DUP2 DUP2 LT PUSH2 0x2CA JUMPI PUSH2 0x2CA PUSH2 0x103E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP9 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x24 DUP6 ADD MSTORE SWAP1 SWAP4 MUL ADD PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD SWAP1 POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x329 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 0x34D SWAP2 SWAP1 PUSH2 0x106F JUMP JUMPDEST POP PUSH2 0x35B PUSH1 0xC0 DUP4 ADD DUP4 PUSH2 0xFF5 JUMP JUMPDEST DUP3 DUP2 DUP2 LT PUSH2 0x36B JUMPI PUSH2 0x36B PUSH2 0x103E JUMP JUMPDEST PUSH2 0x381 SWAP3 PUSH1 0x20 PUSH1 0x40 SWAP1 SWAP3 MUL ADD SWAP1 DUP2 ADD SWAP2 POP PUSH2 0x1054 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH32 0x0 PUSH2 0x3BD PUSH1 0xC0 DUP7 ADD DUP7 PUSH2 0xFF5 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x3CD JUMPI PUSH2 0x3CD PUSH2 0x103E JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MUL ADD PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x408 SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x427 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 0x44B SWAP2 SWAP1 PUSH2 0x106F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x254 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x45F PUSH2 0xD0E JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH1 0x60 ADD CALLDATALOAD LT ISZERO PUSH2 0x498 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5CD2AD57 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0x4AB PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH2 0x1091 JUMP JUMPDEST GT ISZERO PUSH2 0x4E6 JUMPI CALLVALUE PUSH2 0x4C4 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH2 0x1091 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE3A15141 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x48F JUMP JUMPDEST PUSH2 0x4F8 PUSH2 0x4F2 DUP4 PUSH2 0x13E8 JUMP JUMPDEST CALLVALUE PUSH2 0xD97 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A DUP3 DUP5 ADD DUP5 PUSH2 0x14FF JUMP JUMPDEST PUSH1 0x0 DUP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x2173AD27 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH2 0x48F SWAP1 DUP3 SWAP1 PUSH1 0x4 ADD PUSH2 0x1581 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x538 DUP6 DUP6 PUSH2 0xE33 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x548 DUP4 DUP6 ADD DUP6 PUSH2 0x1594 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x799 JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x56A JUMPI PUSH2 0x56A PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x5AE PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5FE 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 0x622 SWAP2 SWAP1 PUSH2 0x106F JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x63A JUMPI SWAP1 POP POP SWAP1 POP DUP2 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x677 JUMPI PUSH2 0x677 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x6E9 JUMPI PUSH2 0x6E9 PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x71C JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x707 JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE SWAP3 DUP2 ADD DUP3 MSTORE SWAP3 ADD SWAP2 SWAP1 PUSH2 0x77E JUMP JUMPDEST PUSH2 0x76B PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x73E JUMPI SWAP1 POP JUMPDEST POP SWAP1 MSTORE SWAP1 POP PUSH2 0x78E DUP2 PUSH1 0x0 PUSH2 0xD97 JUMP JUMPDEST POP POP POP PUSH1 0x1 ADD PUSH2 0x54D JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7B0 DUP3 DUP5 ADD DUP5 PUSH2 0x15C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x7BE DUP7 DUP7 PUSH2 0xE33 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x8AC JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x7DE JUMPI PUSH2 0x7DE PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x81F PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x831 JUMPI PUSH2 0x831 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x86E SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x89C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0x7C3 SWAP1 POP JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x60 DUP1 DUP5 ADD MLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD SWAP1 DUP2 ADD DUP5 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE SWAP4 DUP4 ADD MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x928 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x913 JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x975 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x94E JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 ADD DUP5 SWAP1 MSTORE SWAP1 POP PUSH2 0x799 DUP2 PUSH1 0x0 PUSH2 0xD97 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 SSTORE PUSH2 0x99C DUP3 DUP5 ADD DUP5 PUSH2 0x14FF JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48F SWAP2 SWAP1 PUSH2 0x1581 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CC DUP6 DUP6 PUSH2 0xE33 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9DC DUP4 DUP6 ADD DUP6 PUSH2 0x1594 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD SWAP3 MLOAD SWAP6 SWAP7 POP PUSH32 0x7455BEF08AC052A65B30E5155A7C364504A560FD4753A612D34802695A56F365 SWAP6 PUSH2 0xA28 SWAP6 SWAP5 SWAP4 SWAP1 DUP9 SWAP1 PUSH2 0x164D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xB2A JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA4E JUMPI PUSH2 0xA4E PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0xA8F PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xAA1 JUMPI PUSH2 0xAA1 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xADE SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAFD 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 0xB21 SWAP2 SWAP1 PUSH2 0x106F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0xA33 JUMP JUMPDEST POP PUSH2 0x9B8 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xB93 JUMPI PUSH2 0xB93 PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBC6 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBB1 JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE SWAP3 DUP2 ADD DUP3 MSTORE SWAP3 ADD SWAP2 SWAP1 PUSH2 0xC28 JUMP JUMPDEST PUSH2 0xC15 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBE8 JUMPI SWAP1 POP JUMPDEST POP SWAP1 MSTORE PUSH1 0x0 PUSH2 0xD97 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xC7B JUMPI PUSH1 0x40 MLOAD PUSH4 0x67AB7EFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC87 DUP6 DUP6 PUSH2 0xE33 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xC97 DUP4 DUP6 ADD DUP6 PUSH2 0x16AE JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0xCAA SWAP2 SWAP1 PUSH2 0x1091 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x526F6652E74A3D979E195201CECC97A834B957CC0097468B9843D280B17A5D1A DUP2 DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x60 ADD MLOAD DUP8 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xCFE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x16C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA5A41031 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD6E 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 0xD92 SWAP2 SWAP1 PUSH2 0x170D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE289ADCD DUP3 PUSH1 0x1 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDDA SWAP2 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE06 SWAP3 SWAP2 SWAP1 PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x799 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0xE69 DUP3 DUP5 ADD DUP5 PUSH2 0x18BB JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xE9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x100 DUP2 DUP6 SUB SLT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xEC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xEF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xF12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xF28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF34 DUP8 DUP3 DUP9 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xF53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF5F DUP8 DUP3 DUP9 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xF82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xF9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFA8 DUP7 PUSH2 0xF6B JUMP JUMPDEST SWAP5 POP PUSH2 0xFB6 PUSH1 0x20 DUP8 ADD PUSH2 0xF6B JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xFD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFE4 DUP9 DUP3 DUP10 ADD PUSH2 0xEB4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x100C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x6 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0xEF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1066 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE69 DUP3 PUSH2 0xF6B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1081 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xE6C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10EA JUMPI PUSH2 0x10EA PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10EA JUMPI PUSH2 0x10EA PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10EA JUMPI PUSH2 0x10EA PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10EA JUMPI PUSH2 0x10EA PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x117F JUMPI PUSH2 0x117F PUSH2 0x10B2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xF82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x11AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x11CF JUMPI PUSH2 0x11CF PUSH2 0x10B2 JUMP JUMPDEST POP PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x11E4 DUP2 PUSH2 0x1157 JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x11F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x122D JUMPI PUSH2 0x122D PUSH2 0x10B2 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x125B PUSH2 0x1256 DUP3 PUSH2 0x1214 JUMP JUMPDEST PUSH2 0x1157 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x127D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12BE JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x12A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AF DUP9 PUSH1 0x20 DUP4 DUP11 ADD ADD PUSH2 0x119E JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1282 JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12E7 PUSH2 0x1256 DUP3 PUSH2 0x1214 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP4 PUSH1 0x6 SHL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x1309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12BE JUMPI PUSH1 0x40 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x1326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x132E PUSH2 0x10C8 JUMP JUMPDEST PUSH2 0x1337 DUP3 PUSH2 0xF6B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP5 MSTORE SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x40 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1372 PUSH2 0x1256 DUP3 PUSH2 0x1214 JUMP JUMPDEST DUP1 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 PUSH1 0x60 DUP5 MUL DUP7 ADD ADD SWAP3 POP DUP6 DUP4 GT ISZERO PUSH2 0x1394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12BE JUMPI PUSH1 0x60 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x13B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13B9 PUSH2 0x10F0 JUMP JUMPDEST PUSH2 0x13C2 DUP3 PUSH2 0xF6B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE SWAP1 DUP5 MSTORE SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 CALLDATASIZE SUB SLT ISZERO PUSH2 0x13FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1403 PUSH2 0x1112 JUMP JUMPDEST PUSH2 0x140C DUP4 PUSH2 0x1187 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1427 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1433 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x119E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x145E CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x119E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x149D CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x1237 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14C8 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x12C8 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F3 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x1353 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1511 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1533 DUP5 DUP3 DUP6 ADD PUSH2 0x119E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1561 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x1545 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xE69 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1533 DUP5 DUP3 DUP6 ADD PUSH2 0x12C8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1533 DUP5 DUP3 DUP6 ADD PUSH2 0x1353 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1643 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD DUP2 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1610 JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x167B PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x153B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x168D DUP2 DUP7 PUSH2 0x153B JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x16A1 DUP2 DUP6 PUSH2 0x15FC JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE DUP4 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x16FB PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x153B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x16A1 DUP2 DUP6 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x171F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1776 JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x1760 DUP4 DUP4 MLOAD PUSH2 0x153B JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1744 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1643 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x40 SWAP2 DUP3 ADD MLOAD SWAP2 DUP9 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1796 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x17F0 PUSH1 0x20 DUP3 ADD DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x100 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x180D PUSH2 0x120 DUP5 ADD DUP3 PUSH2 0x153B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x182A DUP3 DUP3 PUSH2 0x153B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x185C DUP3 DUP3 PUSH2 0x1726 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x187A DUP3 DUP3 PUSH2 0x15FC JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x1899 DUP3 DUP3 PUSH2 0x1782 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1533 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x18E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xA0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x18F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18FD PUSH2 0x1135 JUMP JUMPDEST PUSH2 0x1906 DUP3 PUSH2 0x1187 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1941 DUP7 DUP3 DUP6 ADD PUSH2 0x119E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1960 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x196C DUP7 DUP3 DUP6 ADD PUSH2 0x119E JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B ADD PUSH18 0x25FAB5680B2EA3A68DEA223BD4749FF83AFD 0xC1 STOP SWAP1 MULMOD PUSH18 0x93B7A8A0750E64736F6C634300081C003300 ","sourceMap":"529:5571:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1216:18;;1224:9;160:25:89;;1216:18:85;;148:2:89;133:18;1216::85;;;;;;;529:5571;;;;;3690:954;;;;;;:::i;:::-;;:::i;:::-;;1933:103:73;;;;;;;;;;-1:-1:-1;333:1:73;1933:103;;;160:25:89;;;148:2;133:18;1933:103:73;;;;;;;;4650:204:85;;;;;;;;;;-1:-1:-1;4650:204:85;;;;;:::i;:::-;;:::i;2637:1047::-;;;;;;;;;;-1:-1:-1;2637:1047:85;;;;;:::i;:::-;;:::i;5070:192::-;;;;;;;;;;-1:-1:-1;5070:192:85;;;;;:::i;:::-;-1:-1:-1;;;5070:192:85;;;;;;;;;;;-1:-1:-1;;;;;;2680:33:89;;;2662:52;;2650:2;2635:18;5070:192:85;2518:202:89;5943:74:85;;;;;;;;;;-1:-1:-1;5984:4:85;6007:3;5943:74;;5268:669;;;;;;;;;;-1:-1:-1;5268:669:85;;;;;:::i;:::-;;:::i;4860:204::-;;;;;;;;;;-1:-1:-1;4860:204:85;;;;;:::i;:::-;;:::i;1613:1018::-;;;;;;;;;;-1:-1:-1;1613:1018:85;;;;;:::i;:::-;;:::i;6023:75::-;;;;;;;;;;-1:-1:-1;6023:75:85;;;;;:::i;:::-;;;;;;1247:360;;;;;;;;;;-1:-1:-1;1247:360:85;;;;;:::i;:::-;;:::i;3690:954::-;3812:6;3807:315;3828:19;;;;:10;:19;:::i;:::-;:26;;3824:1;:30;3807:315;;;3882:19;;;;:10;:19;:::i;:::-;3902:1;3882:22;;;;;;;:::i;:::-;:33;;;:22;;;;;:33;;;;-1:-1:-1;3882:33:85;:::i;:::-;-1:-1:-1;;;;;3875:54:85;;3930:10;3950:4;3957:19;;;;:10;:19;:::i;:::-;3977:1;3957:22;;;;;;;:::i;:::-;;3875:112;;;;;;-1:-1:-1;;;;;;3875:112:85;;;-1:-1:-1;;;;;3850:32:89;;;3875:112:85;;;3832:51:89;3919:32;;;;3899:18;;;3892:60;3957:22:85;;;;:29;;;3968:18:89;;;3961:34;3805:18;;;-1:-1:-1;3875:112:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4008:19:85;;;;:10;:19;:::i;:::-;4028:1;4008:22;;;;;;;:::i;:::-;:33;;;:22;;;;;:33;;;;-1:-1:-1;4008:33:85;:::i;:::-;-1:-1:-1;;;;;4001:49:85;;947:16:73;4081:19:85;;;;:10;:19;:::i;:::-;4101:1;4081:22;;;;;;;:::i;:::-;;;;;;:29;;;4001:110;;;;;;;;;;;;;;;-1:-1:-1;;;;;4480:32:89;;;;4462:51;;4544:2;4529:18;;4522:34;4450:2;4435:18;;4288:274;4001:110:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3856:3:85;;3807:315;;;;4132:19;4154:16;:14;:16::i;:::-;4132:38;;4212:11;4184:10;:25;;;:39;4180:137;;;4246:60;;-1:-1:-1;;;4246:60:85;;4267:25;;;;4246:60;;;4741:25:89;4782:18;;;4775:34;;;4714:18;;4246:60:85;;;;;;;;4180:137;4387:9;4331:53;4359:25;;;;4331;;;;:53;:::i;:::-;:65;4327:183;;;4434:9;4445:53;4473:25;;;;4445;;;;:53;:::i;:::-;4419:80;;-1:-1:-1;;;4419:80:85;;;;;4741:25:89;;;;4782:18;;;4775:34;4714:18;;4419:80:85;4567:248:89;4327:183:85;4566:71;;4594:10;4566:71;:::i;:::-;4618:9;4566:14;:71::i;:::-;3768:876;3690:954;:::o;4650:204::-;4740:21;4764:31;;;;4775:9;4764:31;:::i;:::-;4811:1;4805:7;;4829:18;;-1:-1:-1;;;4829:18:85;;4740:55;;-1:-1:-1;4829:18:85;;4740:55;;4829:18;;;:::i;2637:1047::-;2752:28;2783:24;2800:6;;2783:16;:24::i;:::-;2752:55;-1:-1:-1;2817:27:85;2847:38;;;;2858:9;2847:38;:::i;:::-;2817:68;;2896:6;2964:713;2975:6;:13;2971:1;:17;2964:713;;;3005:32;3040:6;3047:1;3040:9;;;;;;;;:::i;:::-;;;;;;;3005:44;;3070:13;:24;;;-1:-1:-1;;;;;3063:40:85;;3104:28;947:16:73;;852:119;3104:28:85;3134:20;;;;3063:92;;-1:-1:-1;;;;;;3063:92:85;;;;;;;-1:-1:-1;;;;;4480:32:89;;;3063:92:85;;;4462:51:89;4529:18;;;4522:34;4435:18;;3063:92:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3201:20:85;;;3219:1;3201:20;;;;;;;;;3169:29;;3201:20;;;;-1:-1:-1;;;;;;;;;;;;;;;;;3201:20:85;;;;;;;;;;;;;;;3169:52;;3249:13;3235:8;3244:1;3235:11;;;;;;;;:::i;:::-;;;;;;:27;;;;3277:30;3310:253;;;;;;;;3340:9;:19;;;-1:-1:-1;;;;;3310:253:85;;;;;3377:9;:19;;;3310:253;;;;;;;;;;;;;;;;;;;;3434:1;3310:253;;;;3453:1;3310:253;;;;3485:1;-1:-1:-1;;;;;3472:15:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3310:253:85;;;;;;;;;;3531:18;;-1:-1:-1;3531:18:85;;;;;;;;3310:253;;;3531:18;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:18:85;;;;;;;;;;;;;;;;-1:-1:-1;3310:253:85;;3277:286;-1:-1:-1;3577:29:85;3277:286;3604:1;3577:14;:29::i;:::-;-1:-1:-1;;;3649:3:85;;2964:713;;;2742:942;;;2637:1047;;;;:::o;5268:669::-;5359:23;5385:36;;;;5396:9;5385:36;:::i;:::-;5359:62;;5431:25;5459:27;5476:9;;5459:16;:27::i;:::-;5431:55;;5502:6;5497:142;5514:4;:11;5510:1;:15;5497:142;;;5554:4;5559:1;5554:7;;;;;;;;:::i;:::-;;;;;;;:18;;;-1:-1:-1;;;;;5546:35:85;;5582:28;947:16:73;;852:119;5582:28:85;5612:4;5617:1;5612:7;;;;;;;;:::i;:::-;;;;;;;:15;;;5546:82;;;;;;;;;;;;;;;-1:-1:-1;;;;;4480:32:89;;;;4462:51;;4544:2;4529:18;;4522:34;4450:2;4435:18;;4288:274;5546:82:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5527:3:85;;;;;-1:-1:-1;5497:142:85;;-1:-1:-1;5497:142:85;;-1:-1:-1;5682:209:85;;;;;;;;5708:16;;-1:-1:-1;;;;;5682:209:85;;;5738:16;;;;;5682:209;;;;;;;;;;;;;;;5649:30;5682:209;;;;;;;;;;;;;;;;;;;;;5649:30;5814:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5682:209:85;;;;5861:1;5843:20;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;5843:20:85;;;;;;;;;;;;;;;-1:-1:-1;5682:209:85;;;;;;;5649:242;-1:-1:-1;5901:29:85;5649:242;-1:-1:-1;5901:14:85;:29::i;4860:204::-;4957:1;4951:7;;;4992:31;;;;5003:9;4992:31;:::i;:::-;4968:55;-1:-1:-1;4968:55:85;5033:23;;-1:-1:-1;;;5033:23:85;;;;;;;;:::i;:::-;;4941:123;4860:204;;;;:::o;1613:1018::-;1737:25;1765:27;1782:9;;1765:16;:27::i;:::-;1737:55;-1:-1:-1;1830:35:85;1868:38;;;;1879:9;1868:38;:::i;:::-;1941:16;;1959;;;;1977:18;;;;;1997:16;;;;2015;;;;1922:126;;1830:76;;-1:-1:-1;1922:126:85;;;;1941:16;1959;2015;1830:76;;1922:126;:::i;:::-;;;;;;;;2093:6;2088:174;2109:14;:21;2105:1;:25;2088:174;;;2158:14;2173:1;2158:17;;;;;;;;:::i;:::-;;;;;;;:28;;;-1:-1:-1;;;;;2151:44:85;;2196:28;947:16:73;;852:119;2196:28:85;2226:14;2241:1;2226:17;;;;;;;;:::i;:::-;;;;;;;:24;;;2151:100;;;;;;;;;;;;;;;-1:-1:-1;;;;;4480:32:89;;;;4462:51;;4544:2;4529:18;;4522:34;4450:2;4435:18;;4288:274;2151:100:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2132:3:85;;2088:174;;;;2318:306;2346:253;;;;;;;;2376:6;:16;;;-1:-1:-1;;;;;2346:253:85;;;;;2410:6;:16;;;2346:253;;;;;;;;;;;;;;;;;;;;2464:1;2346:253;;;;2483:1;2346:253;;;;2515:1;-1:-1:-1;;;;;2502:15:85;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2346:253:85;;;;;;;;;;2567:18;;-1:-1:-1;2567:18:85;;;;;;;;2346:253;;;2567:18;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2567:18:85;;;;;;;;;;;;;;;;-1:-1:-1;2346:253:85;;2613:1;2318:14;:306::i;1247:360::-;617:10:73;-1:-1:-1;;;;;947:16:73;617:42;;613:101;;682:21;;-1:-1:-1;;;682:21:73;;;;;;;;;;;613:101;1357:25:85::1;1385:27;1402:9;;1385:16;:27::i;:::-;1357:55:::0;-1:-1:-1;1422:9:85::1;1434:32;::::0;;::::1;1445:9:::0;1434:32:::1;:::i;:::-;1422:44;;1483:1;1476:3;::::0;:8:::1;;;;;;;:::i;:::-;;;;;;;;1499:101;1506:1;1509:6;:16;;;1527:6;:16;;;1545:6;:18;;;1565:6;:16;;;1583:6;:16;;;1499:101;;;;;;;;;;;:::i;:::-;;;;;;;;1347:260;;1247:360:::0;;;;:::o;1075:115:73:-;1124:7;1150:16;-1:-1:-1;;;;;1150:31:73;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1143:40;;1075:115;:::o;1636:198::-;1730:16;-1:-1:-1;;;;;1730:28:73;;1766:9;393:1;1815:10;1804:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;1730:97;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1334:155;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:36:73;;;;1457:9;1446:36;:::i;:::-;1439:43;;1334:155;;;;;:::o;196:393:89:-;288:6;341:2;329:9;320:7;316:23;312:32;309:52;;;357:1;354;347:12;309:52;397:9;384:23;-1:-1:-1;;;;;422:6:89;419:30;416:50;;;462:1;459;452:12;416:50;485:22;;541:3;523:16;;;519:26;516:46;;;558:1;555;548:12;516:46;581:2;196:393;-1:-1:-1;;;196:393:89:o;594:347::-;645:8;655:6;709:3;702:4;694:6;690:17;686:27;676:55;;727:1;724;717:12;676:55;-1:-1:-1;750:20:89;;-1:-1:-1;;;;;782:30:89;;779:50;;;825:1;822;815:12;779:50;862:4;854:6;850:17;838:29;;914:3;907:4;898:6;890;886:19;882:30;879:39;876:59;;;931:1;928;921:12;876:59;594:347;;;;;:::o;946:712::-;1036:6;1044;1052;1060;1113:2;1101:9;1092:7;1088:23;1084:32;1081:52;;;1129:1;1126;1119:12;1081:52;1169:9;1156:23;-1:-1:-1;;;;;1194:6:89;1191:30;1188:50;;;1234:1;1231;1224:12;1188:50;1273:58;1323:7;1314:6;1303:9;1299:22;1273:58;:::i;:::-;1350:8;;-1:-1:-1;1247:84:89;-1:-1:-1;;1438:2:89;1423:18;;1410:32;-1:-1:-1;;;;;1454:32:89;;1451:52;;;1499:1;1496;1489:12;1451:52;1538:60;1590:7;1579:8;1568:9;1564:24;1538:60;:::i;:::-;946:712;;;;-1:-1:-1;1617:8:89;-1:-1:-1;;;;946:712:89:o;1663:173::-;1731:20;;-1:-1:-1;;;;;1780:31:89;;1770:42;;1760:70;;1826:1;1823;1816:12;1760:70;1663:173;;;:::o;1841:672::-;1938:6;1946;1954;1962;1970;2023:3;2011:9;2002:7;1998:23;1994:33;1991:53;;;2040:1;2037;2030:12;1991:53;2063:29;2082:9;2063:29;:::i;:::-;2053:39;;2111:38;2145:2;2134:9;2130:18;2111:38;:::i;:::-;2101:48;-1:-1:-1;2218:2:89;2203:18;;2190:32;;-1:-1:-1;2297:2:89;2282:18;;2269:32;-1:-1:-1;;;;;2313:30:89;;2310:50;;;2356:1;2353;2346:12;2310:50;2395:58;2445:7;2436:6;2425:9;2421:22;2395:58;:::i;:::-;1841:672;;;;-1:-1:-1;1841:672:89;;-1:-1:-1;2472:8:89;;2369:84;1841:672;-1:-1:-1;;;1841:672:89:o;2725:577::-;2850:4;2856:6;2916:11;2903:25;3010:2;3006:7;2995:8;2979:14;2975:29;2971:43;2951:18;2947:68;2937:96;;3029:1;3026;3019:12;2937:96;3056:33;;3108:20;;;-1:-1:-1;;;;;;3140:30:89;;3137:50;;;3183:1;3180;3173:12;3137:50;3216:4;3204:17;;-1:-1:-1;3267:1:89;3263:14;;;3247;3243:35;3233:46;;3230:66;;;3292:1;3289;3282:12;3307:127;3368:10;3363:3;3359:20;3356:1;3349:31;3399:4;3396:1;3389:15;3423:4;3420:1;3413:15;3439:186;3498:6;3551:2;3539:9;3530:7;3526:23;3522:32;3519:52;;;3567:1;3564;3557:12;3519:52;3590:29;3609:9;3590:29;:::i;4006:277::-;4073:6;4126:2;4114:9;4105:7;4101:23;4097:32;4094:52;;;4142:1;4139;4132:12;4094:52;4174:9;4168:16;4227:5;4220:13;4213:21;4206:5;4203:32;4193:60;;4249:1;4246;4239:12;4820:222;4885:9;;;4906:10;;;4903:133;;;4958:10;4953:3;4949:20;4946:1;4939:31;4993:4;4990:1;4983:15;5021:4;5018:1;5011:15;5047:127;5108:10;5103:3;5099:20;5096:1;5089:31;5139:4;5136:1;5129:15;5163:4;5160:1;5153:15;5179:257;5251:4;5245:11;;;5283:17;;-1:-1:-1;;;;;5315:34:89;;5351:22;;;5312:62;5309:88;;;5377:18;;:::i;:::-;5413:4;5406:24;5179:257;:::o;5441:253::-;5513:2;5507:9;5555:4;5543:17;;-1:-1:-1;;;;;5575:34:89;;5611:22;;;5572:62;5569:88;;;5637:18;;:::i;5699:255::-;5771:2;5765:9;5813:6;5801:19;;-1:-1:-1;;;;;5835:34:89;;5871:22;;;5832:62;5829:88;;;5897:18;;:::i;5959:253::-;6031:2;6025:9;6073:4;6061:17;;-1:-1:-1;;;;;6093:34:89;;6129:22;;;6090:62;6087:88;;;6155:18;;:::i;6217:275::-;6288:2;6282:9;6353:2;6334:13;;-1:-1:-1;;6330:27:89;6318:40;;-1:-1:-1;;;;;6373:34:89;;6409:22;;;6370:62;6367:88;;;6435:18;;:::i;:::-;6471:2;6464:22;6217:275;;-1:-1:-1;6217:275:89:o;6497:171::-;6564:20;;-1:-1:-1;;;;;6613:30:89;;6603:41;;6593:69;;6658:1;6655;6648:12;6673:636;6716:5;6769:3;6762:4;6754:6;6750:17;6746:27;6736:55;;6787:1;6784;6777:12;6736:55;6827:6;6814:20;6866:4;6858:6;6854:17;6895:1;6917:7;-1:-1:-1;;;;;6939:6:89;6936:30;6933:56;;;6969:18;;:::i;:::-;-1:-1:-1;7035:2:89;7014:15;;-1:-1:-1;;7010:29:89;7041:4;7006:40;7066:21;7006:40;7066:21;:::i;:::-;7055:32;;;7112:6;7103:7;7096:23;7152:3;7143:6;7138:3;7134:16;7131:25;7128:45;;;7169:1;7166;7159:12;7128:45;7220:6;7215:3;7208:4;7199:7;7195:18;7182:45;7276:1;7247:20;;;7269:4;7243:31;7236:42;;;;-1:-1:-1;7251:7:89;6673:636;-1:-1:-1;;;6673:636:89:o;7314:182::-;7373:4;-1:-1:-1;;;;;7398:6:89;7395:30;7392:56;;;7428:18;;:::i;:::-;-1:-1:-1;7473:1:89;7469:14;7485:4;7465:25;;7314:182::o;7501:826::-;7554:5;7607:3;7600:4;7592:6;7588:17;7584:27;7574:55;;7625:1;7622;7615:12;7574:55;7665:6;7652:20;7692:63;7708:46;7747:6;7708:46;:::i;:::-;7692:63;:::i;:::-;7779:3;7803:6;7798:3;7791:19;7835:4;7830:3;7826:14;7819:21;;7896:4;7886:6;7883:1;7879:14;7871:6;7867:27;7863:38;7849:52;;7924:3;7916:6;7913:15;7910:35;;;7941:1;7938;7931:12;7910:35;7977:4;7969:6;7965:17;7991:305;8007:6;8002:3;7999:15;7991:305;;;8095:3;8082:17;-1:-1:-1;;;;;8118:11:89;8115:35;8112:55;;;8163:1;8160;8153:12;8112:55;8192:59;8247:3;8240:4;8226:11;8218:6;8214:24;8210:35;8192:59;:::i;:::-;8180:72;;-1:-1:-1;8281:4:89;8272:14;;;;8024;7991:305;;;-1:-1:-1;8314:7:89;7501:826;-1:-1:-1;;;;;7501:826:89:o;8332:950::-;8397:5;8450:3;8443:4;8435:6;8431:17;8427:27;8417:55;;8468:1;8465;8458:12;8417:55;8508:6;8495:20;8535:63;8551:46;8590:6;8551:46;:::i;8535:63::-;8622:3;8646:6;8641:3;8634:19;8678:4;8673:3;8669:14;8662:21;;8739:4;8729:6;8726:1;8722:14;8714:6;8710:27;8706:38;8692:52;;8767:3;8759:6;8756:15;8753:35;;;8784:1;8781;8774:12;8753:35;8820:4;8812:6;8808:17;8834:417;8850:6;8845:3;8842:15;8834:417;;;8928:4;8922:3;8917;8913:13;8909:24;8906:44;;;8946:1;8943;8936:12;8906:44;8976:22;;:::i;:::-;9025:23;9044:3;9025:23;:::i;:::-;9011:38;;9124:4;9115:14;;;9102:28;9150:16;;;9143:33;9189:18;;;9227:14;;;;;8876:4;8867:14;8834:417;;9287:1074;9350:5;9403:3;9396:4;9388:6;9384:17;9380:27;9370:55;;9421:1;9418;9411:12;9370:55;9461:6;9448:20;9488:63;9504:46;9543:6;9504:46;:::i;9488:63::-;9575:3;9599:6;9594:3;9587:19;9631:4;9626:3;9622:14;9615:21;;9695:4;9687;9679:6;9675:17;9667:6;9663:30;9659:41;9645:55;;9723:3;9715:6;9712:15;9709:35;;;9740:1;9737;9730:12;9709:35;9776:4;9768:6;9764:17;9790:540;9806:6;9801:3;9798:15;9790:540;;;9884:4;9878:3;9873;9869:13;9865:24;9862:44;;;9902:1;9899;9892:12;9862:44;9932:22;;:::i;:::-;9981:23;10000:3;9981:23;:::i;:::-;9967:38;;10080:4;10071:14;;;10058:28;10106:16;;;10099:33;10207:2;10198:12;;;10185:26;10231:14;;;10224:31;10268:18;;;10306:14;;;;;9832:4;9823:14;9790:540;;10366:1632;10480:9;10539:6;10531:5;10515:14;10511:26;10507:39;10504:59;;;10559:1;10556;10549:12;10504:59;10587:22;;:::i;:::-;10634:24;10652:5;10634:24;:::i;:::-;10625:7;10618:41;10706:2;10699:5;10695:14;10682:28;-1:-1:-1;;;;;10725:6:89;10722:30;10719:50;;;10765:1;10762;10755:12;10719:50;10803:53;10841:14;10832:6;10825:5;10821:18;10803:53;:::i;:::-;10798:2;10789:7;10785:16;10778:79;;10906:2;10899:5;10895:14;10882:28;-1:-1:-1;;;;;10925:8:89;10922:32;10919:52;;;10967:1;10964;10957:12;10919:52;11005:55;11045:14;11034:8;11027:5;11023:20;11005:55;:::i;:::-;11000:2;10987:16;;10980:81;-1:-1:-1;11130:2:89;11119:14;;;11106:28;11150:16;;;11143:33;11245:3;11234:15;;;11221:29;11266:17;;;11259:34;11342:3;11331:15;;11318:29;-1:-1:-1;;;;;11359:32:89;;11356:52;;;11404:1;11401;11394:12;11356:52;11443:65;11493:14;11482:8;11475:5;11471:20;11443:65;:::i;:::-;11437:3;11428:7;11424:17;11417:92;;11558:3;11551:5;11547:15;11534:29;-1:-1:-1;;;;;11578:8:89;11575:32;11572:52;;;11620:1;11617;11610:12;11572:52;11659:77;11721:14;11710:8;11703:5;11699:20;11659:77;:::i;:::-;11653:3;11644:7;11640:17;11633:104;;11786:3;11779:5;11775:15;11762:29;-1:-1:-1;;;;;11806:8:89;11803:32;11800:52;;;11848:1;11845;11838:12;11800:52;11887:75;11947:14;11936:8;11929:5;11925:20;11887:75;:::i;:::-;11881:3;11868:17;;11861:102;-1:-1:-1;11872:7:89;10366:1632;-1:-1:-1;;10366:1632:89:o;12003:322::-;12072:6;12125:2;12113:9;12104:7;12100:23;12096:32;12093:52;;;12141:1;12138;12131:12;12093:52;12181:9;12168:23;-1:-1:-1;;;;;12206:6:89;12203:30;12200:50;;;12246:1;12243;12236:12;12200:50;12269;12311:7;12302:6;12291:9;12287:22;12269:50;:::i;:::-;12259:60;12003:322;-1:-1:-1;;;;12003:322:89:o;12330:400::-;12372:3;12410:5;12404:12;12437:6;12432:3;12425:19;12462:1;12472:139;12486:6;12483:1;12480:13;12472:139;;;12594:4;12579:13;;;12575:24;;12569:31;12549:11;;;12545:22;;12538:63;12501:12;12472:139;;;12476:3;12656:1;12649:4;12640:6;12635:3;12631:16;12627:27;12620:38;12719:4;12712:2;12708:7;12703:2;12695:6;12691:15;12687:29;12682:3;12678:39;12674:50;12667:57;;;12330:400;;;;:::o;12735:220::-;12884:2;12873:9;12866:21;12847:4;12904:45;12945:2;12934:9;12930:18;12922:6;12904:45;:::i;12960:389::-;13074:6;13127:2;13115:9;13106:7;13102:23;13098:32;13095:52;;;13143:1;13140;13133:12;13095:52;13183:9;13170:23;-1:-1:-1;;;;;13208:6:89;13205:30;13202:50;;;13248:1;13245;13238:12;13202:50;13271:72;13335:7;13326:6;13315:9;13311:22;13271:72;:::i;13354:385::-;13466:6;13519:2;13507:9;13498:7;13494:23;13490:32;13487:52;;;13535:1;13532;13525:12;13487:52;13575:9;13562:23;-1:-1:-1;;;;;13600:6:89;13597:30;13594:50;;;13640:1;13637;13630:12;13594:50;13663:70;13725:7;13716:6;13705:9;13701:22;13663:70;:::i;13851:615::-;13915:3;13953:5;13947:12;13980:6;13975:3;13968:19;14012:4;14007:3;14003:14;13996:21;;14051:4;14044:5;14040:16;14074:1;14084:357;14098:6;14095:1;14092:13;14084:357;;;14157:13;;14231:9;;-1:-1:-1;;;;;14227:35:89;14215:48;;14313:4;14305:13;;;14299:20;14283:14;;;14276:44;14356:4;14347:14;;;;14414:17;;;;14259:1;14113:9;14084:357;;;-1:-1:-1;14457:3:89;;13851:615;-1:-1:-1;;;;13851:615:89:o;14471:896::-;-1:-1:-1;;;;;14890:6:89;14886:31;14875:9;14868:50;14954:6;14949:2;14938:9;14934:18;14927:34;14997:6;14992:2;14981:9;14977:18;14970:34;15040:3;15035:2;15024:9;15020:18;15013:31;14849:4;15067:46;15108:3;15097:9;15093:19;15085:6;15067:46;:::i;:::-;15162:9;15154:6;15150:22;15144:3;15133:9;15129:19;15122:51;15196:33;15222:6;15214;15196:33;:::i;:::-;15182:47;;15278:9;15270:6;15266:22;15260:3;15249:9;15245:19;15238:51;15306:55;15354:6;15346;15306:55;:::i;:::-;15298:63;14471:896;-1:-1:-1;;;;;;;;;14471:896:89:o;15372:226::-;15431:6;15484:2;15472:9;15463:7;15459:23;15455:32;15452:52;;;15500:1;15497;15490:12;15452:52;-1:-1:-1;15545:23:89;;15372:226;-1:-1:-1;15372:226:89:o;15603:692::-;15908:6;15897:9;15890:25;-1:-1:-1;;;;;15955:6:89;15951:31;15946:2;15935:9;15931:18;15924:59;16019:6;16014:2;16003:9;15999:18;15992:34;16062:6;16057:2;16046:9;16042:18;16035:34;16106:3;16100;16089:9;16085:19;16078:32;15871:4;16133:46;16174:3;16163:9;16159:19;16151:6;16133:46;:::i;:::-;16228:9;16220:6;16216:22;16210:3;16199:9;16195:19;16188:51;16256:33;16282:6;16274;16256:33;:::i;16300:184::-;16370:6;16423:2;16411:9;16402:7;16398:23;16394:32;16391:52;;;16439:1;16436;16429:12;16391:52;-1:-1:-1;16462:16:89;;16300:184;-1:-1:-1;16300:184:89:o;16489:579::-;16541:3;16572;16604:5;16598:12;16631:6;16626:3;16619:19;16663:4;16658:3;16654:14;16647:21;;16721:4;16711:6;16708:1;16704:14;16697:5;16693:26;16689:37;16760:4;16753:5;16749:16;16783:1;16793:249;16807:6;16804:1;16801:13;16793:249;;;16894:2;16890:7;16882:5;16876:4;16872:16;16868:30;16863:3;16856:43;16920:38;16953:4;16944:6;16938:13;16920:38;:::i;:::-;16993:4;17018:14;;;;16912:46;;-1:-1:-1;16981:17:89;;;;;16829:1;16822:9;16793:249;;;-1:-1:-1;17058:4:89;;16489:579;-1:-1:-1;;;;;;16489:579:89:o;17073:601::-;17135:3;17173:5;17167:12;17200:6;17195:3;17188:19;17232:4;17227:3;17223:14;17216:21;;17271:4;17264:5;17260:16;17294:1;17304:345;17318:6;17315:1;17312:13;17304:345;;;17377:13;;17419:9;;-1:-1:-1;;;;;17415:35:89;17403:48;;17501:4;17493:13;;;17487:20;17471:14;;;17464:44;17558:4;17550:13;;;17544:20;17528:14;;;17521:44;;;;17594:4;17585:14;;;;17622:17;;;;17447:1;17333:9;17304:345;;17679:1366;17870:2;17859:9;17852:21;17882:52;17930:2;17919:9;17915:18;17906:6;17900:13;-1:-1:-1;;;;;13809:30:89;13797:43;;13744:102;17882:52;17833:4;17981:2;17973:6;17969:15;17963:22;18021:6;18016:2;18005:9;18001:18;17994:34;18051:52;18098:3;18087:9;18083:19;18069:12;18051:52;:::i;:::-;18037:66;;18152:2;18144:6;18140:15;18134:22;18224:2;18220:7;18208:9;18200:6;18196:22;18192:36;18187:2;18176:9;18172:18;18165:64;18252:41;18286:6;18270:14;18252:41;:::i;:::-;18238:55;;;18348:2;18340:6;18336:15;18330:22;18324:3;18313:9;18309:19;18302:51;18408:3;18400:6;18396:16;18390:23;18384:3;18373:9;18369:19;18362:52;18463:3;18455:6;18451:16;18445:23;18537:2;18533:7;18521:9;18513:6;18509:22;18505:36;18499:3;18488:9;18484:19;18477:65;18565:51;18609:6;18593:14;18565:51;:::i;:::-;18551:65;;;18665:3;18657:6;18653:16;18647:23;18739:2;18735:7;18723:9;18715:6;18711:22;18707:36;18701:3;18690:9;18686:19;18679:65;18767:63;18823:6;18807:14;18767:63;:::i;:::-;18753:77;;;18879:3;18871:6;18867:16;18861:23;18956:2;18952:7;18940:9;18932:6;18928:22;18924:36;18915:6;18904:9;18900:22;18893:68;18978:61;19032:6;19016:14;18978:61;:::i;:::-;18970:69;17679:1366;-1:-1:-1;;;;;17679:1366:89:o;19050:289::-;19225:6;19214:9;19207:25;19268:2;19263;19252:9;19248:18;19241:30;19188:4;19288:45;19329:2;19318:9;19314:18;19306:6;19288:45;:::i;19344:1031::-;19433:6;19486:2;19474:9;19465:7;19461:23;19457:32;19454:52;;;19502:1;19499;19492:12;19454:52;19542:9;19529:23;-1:-1:-1;;;;;19567:6:89;19564:30;19561:50;;;19607:1;19604;19597:12;19561:50;19630:22;;19686:4;19668:16;;;19664:27;19661:47;;;19704:1;19701;19694:12;19661:47;19730:22;;:::i;:::-;19775:21;19793:2;19775:21;:::i;:::-;19761:36;;19863:2;19855:11;;;19842:25;19883:14;;;19876:31;19960:2;19952:11;;;19939:25;19923:14;;;19916:49;20011:2;20003:11;;19990:25;-1:-1:-1;;;;;20027:32:89;;20024:52;;;20072:1;20069;20062:12;20024:52;20108:45;20145:7;20134:8;20130:2;20126:17;20108:45;:::i;:::-;20103:2;20096:5;20092:14;20085:69;;20200:3;20196:2;20192:12;20179:26;-1:-1:-1;;;;;20220:8:89;20217:32;20214:52;;;20262:1;20259;20252:12;20214:52;20299:45;20336:7;20325:8;20321:2;20317:17;20299:45;:::i;:::-;20293:3;20282:15;;20275:70;-1:-1:-1;20286:5:89;19344:1031;-1:-1:-1;;;;19344:1031:89:o"},"methodIdentifiers":{"bridgeTokensToTON((uint64,string,string,uint256,uint256,string[],(address,uint256)[],(address,uint256,uint256)[]))":"0020cb2d","emptyFunction(bytes,bytes)":"bcb2606c","getValue()":"20965255","getVersion()":"0d8e6e2c","invoke(bytes,bytes)":"e77d74b0","invokeWithCallback(bytes,bytes)":"50e9c31b","mockWithCustomError(bytes,bytes)":"145769f5","mockWithDefaultError(bytes,bytes)":"3d2cfad2","onERC721Received(address,address,uint256,bytes)":"150b7a02","receiveNFT(bytes,bytes)":"302b86b0","sendMultiplyCallbackToCrossChainLayer(bytes,bytes)":"14c68a73"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_crossChainLayer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"MockError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"attachedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredFee\",\"type\":\"uint256\"}],\"name\":\"NotEnoughProtocolFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"attachedValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCrossChainLayer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tvmCaller\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"Invoke\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"operationId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tvmCaller\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct TokenAmount[]\",\"name\":\"receivedTokens\",\"type\":\"tuple[]\"}],\"name\":\"InvokeWithCallback\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Receive\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"shardsKey\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"tvmTarget\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tvmPayload\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"tvmProtocolFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tvmExecutorFee\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"tvmValidExecutors\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"toBridge\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"evmAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct NFTAmount[]\",\"name\":\"toBridgeNFT\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OutMessageV1\",\"name\":\"outMessage\",\"type\":\"tuple\"}],\"name\":\"bridgeTokensToTON\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"emptyFunction\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"tacHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"}],\"name\":\"invoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"tacHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"}],\"name\":\"invokeWithCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"}],\"name\":\"mockWithCustomError\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"}],\"name\":\"mockWithDefaultError\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"tacHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"}],\"name\":\"receiveNFT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"header\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"}],\"name\":\"sendMultiplyCallbackToCrossChainLayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getVersion()\":{\"details\":\"Get Tac Proxy contract version.\",\"returns\":{\"_0\":\"Contract version.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestProxy.sol\":\"TestProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/interfaces/ICrossChainLayer.sol\":{\"keccak256\":\"0x435aeb361378447362b2bfc59de69237ec85706d9755e53b46b48c84a0ea186c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9d91e1e5c1b2a4b0df3ea28cd7ef3956147f082873d8abf03d9963aaa13a60\",\"dweb:/ipfs/QmVFL9rUScnu5XKk9ZioWZbyqq4sdFPz19dowWsfzE3fUM\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/proxies/TacProxy.sol\":{\"keccak256\":\"0xbc37790a2523ad054248c90df15a3e8855afabaabf26e90c43a4d23e9cacd962\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee86fe6c1d7dec9068d88059f27aa62e40e7f8ae89ba00c077ed8eafac7edea1\",\"dweb:/ipfs/QmXDMLLkphX2a2jmvvFTmN1TqgtEroefKLpoFmFXNZbu56\"]},\"contracts/proxies/TacProxyV1.sol\":{\"keccak256\":\"0x112703423828d9298716cc57af66a8bfb6c88fee5a0e14c07dad58680c93b124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e8d08d8ae25053f02f54a5e1993eab8cdbb58002eca8434b15bf2b65607e65c\",\"dweb:/ipfs/QmS3bLaoc49ECPbHiHN9n1YgeqTgkdhxyBgv7uxRtL8WkN\"]},\"contracts/test/TestProxy.sol\":{\"keccak256\":\"0xa4d933b61a9d20213db0a71c9764eea4b13918b795ba7350762c5219e6594d39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c7321b70ca4acb06ad2162cc6f4f1cd5989c19bd6e1d848d53bd8ec7c8a8b5\",\"dweb:/ipfs/QmPZasWw944YA9noCMkjtyDmxSHBBaxiHEVPX1bow6qKW7\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":20504,"contract":"contracts/test/TestProxy.sol:TestProxy","label":"cnt","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/test/TestSmartAccountProxyUser.sol":{"TestSmartAccountProxyUser":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"OnlyCrossChainLayer","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"count","type":"uint256"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"Incremented","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkBlueprint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"counter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"increment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_crossChainLayer","type":"address"},{"internalType":"address","name":"_tacSAFactory","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"_tokenToBrdige","type":"address"}],"name":"mainCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mainCallExecuted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"tacHeader","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"mintAndSafeTransferCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tacSAFactory","outputs":[{"internalType":"contract TacSAFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"tacHeader","type":"bytes"},{"internalType":"bytes","name":"arguments","type":"bytes"}],"name":"test","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenToBridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"user","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a060405230608052348015601357600080fd5b50608051612db761003d600039600081816115b3015281816115dc01526116fe0152612db76000f3fe6080604052600436106101b75760003560e01c80634f8632ba116100ec578063a22cb4651161008a578063b88d4fde11610064578063b88d4fde14610506578063c87b56dd14610526578063d09de08a14610546578063e985e9c51461055b57600080fd5b8063a22cb46514610495578063ad3cb1cc146104b5578063ae6e7180146104e657600080fd5b80636352211e116100c65780636352211e1461042057806370a08231146104405780637d6f0e9c1461046057806395d89b411461048057600080fd5b80634f8632ba146103d557806352d1902d146103f557806361bc221a1461040a57600080fd5b806322c3a793116101595780633c2d13c3116101335780633c2d13c31461036257806342842e0e14610382578063485cc955146103a25780634f1ef286146103c257600080fd5b806322c3a793146102d057806323b872dd1461032857806330c78b411461034857600080fd5b8063095ea7b311610195578063095ea7b31461024b5780630c5561a61461026d5780630d8e6e2c1461028d57806314f40e5e146102ab57600080fd5b806301ffc9a7146101bc57806306fdde03146101f1578063081812fc14610213575b600080fd5b3480156101c857600080fd5b506101dc6101d7366004612214565b61057b565b60405190151581526020015b60405180910390f35b3480156101fd57600080fd5b506102066105cd565b6040516101e89190612281565b34801561021f57600080fd5b5061023361022e366004612294565b610671565b6040516001600160a01b0390911681526020016101e8565b34801561025757600080fd5b5061026b6102663660046122c2565b610686565b005b34801561027957600080fd5b5061026b610288366004612336565b610695565b34801561029957600080fd5b5060015b6040519081526020016101e8565b3480156102b757600080fd5b506002546102339061010090046001600160a01b031681565b3480156102dc57600080fd5b5061026b6102eb3660046123a5565b600280546001600160a01b03909216610100026001600160a81b031990921691909117600117905550600380546001600160a01b03191633179055565b34801561033457600080fd5b5061026b6103433660046123d5565b6108a1565b34801561035457600080fd5b506002546101dc9060ff1681565b34801561036e57600080fd5b50600054610233906001600160a01b031681565b34801561038e57600080fd5b5061026b61039d3660046123d5565b610931565b3480156103ae57600080fd5b5061026b6103bd366004612416565b610951565b61026b6103d0366004612554565b610a83565b3480156103e157600080fd5b50600354610233906001600160a01b031681565b34801561040157600080fd5b5061029d610a95565b34801561041657600080fd5b5061029d60015481565b34801561042c57600080fd5b5061023361043b366004612294565b610ab2565b34801561044c57600080fd5b5061029d61045b3660046125a3565b610abd565b34801561046c57600080fd5b5061026b61047b366004612336565b610b19565b34801561048c57600080fd5b50610206610bf0565b3480156104a157600080fd5b5061026b6104b03660046125ce565b610c2f565b3480156104c157600080fd5b50610206604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156104f257600080fd5b506101dc6105013660046125a3565b610c3a565b34801561051257600080fd5b5061026b6105213660046125fc565b610c9e565b34801561053257600080fd5b50610206610541366004612294565b610cb6565b34801561055257600080fd5b5061026b610d2b565b34801561056757600080fd5b506101dc610576366004612416565b610d71565b60006001600160e01b031982166380ac58cd60e01b14806105ac57506001600160e01b03198216635b5e139f60e01b145b806105c757506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612d4283398151915280546060919081906105ed90612667565b80601f016020809104026020016040519081016040528092919081815260200182805461061990612667565b80156106665780601f1061063b57610100808354040283529160200191610666565b820191906000526020600020905b81548152906001019060200180831161064957829003601f168201915b505050505091505090565b600061067c82610dbe565b506105c782610df6565b610691828233610e30565b5050565b61069d610e3d565b6001600160a01b0316336001600160a01b0316146106ce576040516367ab7efd60e01b815260040160405180910390fd5b60006106da8585610e70565b600080546060830151604051630a66c4f560e41b815293945091926001600160a01b039091169163a66c4f50916107149190600401612281565b60408051808303816000875af1158015610732573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075691906126a1565b509050600061076784860186612812565b90506107738282610ea6565b5061077e82826110ae565b50610789828261115f565b50604080516001808252818301909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816107a15790505060408051808201825260025461010090046001600160a01b031680825291516370a0823160e01b8152306004820152929350916020830191906370a0823190602401602060405180830381865afa158015610827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084b91906128eb565b8152508160008151811061086157610861612904565b6020026020010181905250610897888883604051806040016040528060078152602001661c185e5b1bd85960ca1b815250611315565b5050505050505050565b6001600160a01b0382166108d057604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006108dd838333611480565b9050836001600160a01b0316816001600160a01b03161461092b576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016108c7565b50505050565b61094c83838360405180602001604052806000815250610c9e565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156109965750825b90506000826001600160401b031660011480156109b25750303b155b9050811580156109c0575080155b156109de5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a0857845460ff60401b1916600160401b1785555b610a118761158a565b610a1961159e565b600080546001600160a01b0319166001600160a01b0388161790558315610a7a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610a8b6115a8565b6106918282611636565b6000610a9f6116f3565b50600080516020612d6283398151915290565b60006105c782610dbe565b6000600080516020612d428339815191526001600160a01b038316610af8576040516322718ad960e21b8152600060048201526024016108c7565b6001600160a01b039092166000908152600390920160205250604090205490565b610b21610e3d565b6001600160a01b0316336001600160a01b031614610b52576040516367ab7efd60e01b815260040160405180910390fd5b6000610b5e8585610e70565b600080546060830151604051630a66c4f560e41b815293945091926001600160a01b039091169163a66c4f5091610b989190600401612281565b60408051808303816000875af1158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda91906126a1565b509050610be881600061173c565b505050505050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020612d42833981519152916105ed90612667565b610691338383611756565b6000816001600160a01b03166341e15ea06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c7919061291a565b610ca98484846108a1565b61092b3385858585611807565b6060610cc182610dbe565b506000610cd960408051602081019091526000815290565b90506000815111610cf95760405180602001604052806000815250610d24565b80610d0384611930565b604051602001610d14929190612937565b6040516020818303038152906040525b9392505050565b60018054906000610d3b83612966565b90915550506001546040513391907f6312957b833157dbcce860c9538737febb9491fde39563488a9c296f930376ed90600090a3565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b600080610dca836119c2565b90506001600160a01b0381166105c757604051637e27328960e01b8152600481018490526024016108c7565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b61094c83838360016119fc565b60007f9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d1005b546001600160a01b0316919050565b6040805160a0810182526000808252602082018190529181019190915260608082018190526080820152610d248284018461298d565b80518051606091906000906001600160401b03811115610ec857610ec8612444565b604051908082528060200260200182016040528015610efb57816020015b6060815260200190600190039081610ee65790505b50905060005b82518110156110a557828181518110610f1c57610f1c612904565b6020026020010151600001511561101d57856001600160a01b031663b61d27f6848381518110610f4e57610f4e612904565b602002602001015160200151858481518110610f6c57610f6c612904565b602002602001015160400151868581518110610f8a57610f8a612904565b6020026020010151606001516040518463ffffffff1660e01b8152600401610fb493929190612a5a565b6000604051808303816000875af1158015610fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffb9190810190612a81565b82828151811061100d5761100d612904565b602002602001018190525061109d565b61107f83828151811061103257611032612904565b60200260200101516020015184838151811061105057611050612904565b60200260200101516040015185848151811061106e5761106e612904565b602002602001015160600151611b12565b82828151811061109157611091612904565b60200260200101819052505b600101610f01565b50949350505050565b60408101518051606091901561114857602081015160408083015160608401519151635b0e93fb60e11b81526001600160a01b0388169363b61d27f6936110f9939192600401612a5a565b6000604051808303816000875af1158015611118573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190612a81565b9150506105c7565b611140816020015182604001518360600151611b12565b6060600082602001519050600081516001600160401b0381111561118557611185612444565b6040519080825280602002602001820160405280156111b857816020015b60608152602001906001900390816111a35790505b50905060005b82518110156110a5578281815181106111d9576111d9612904565b602002602001015160000151156112da57856001600160a01b031663b61d27f684838151811061120b5761120b612904565b60200260200101516020015185848151811061122957611229612904565b60200260200101516040015186858151811061124757611247612904565b6020026020010151606001516040518463ffffffff1660e01b815260040161127193929190612a5a565b6000604051808303816000875af1158015611290573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b89190810190612a81565b8282815181106112ca576112ca612904565b602002602001018190525061130d565b6112ef83828151811061103257611032612904565b82828151811061130157611301612904565b60200260200101819052505b6001016111be565b60005b82518110156113755761136d83828151811061133657611336612904565b60200260200101516000015161134a610e3d565b85848151811061135c5761135c612904565b602002602001015160200151611bc0565b600101611318565b5060006113828585610e70565b9050600060405180610100016040528083600001516001600160401b0316815260200183606001518152602001848152602001600081526020016000815260200160006001600160401b038111156113dc576113dc612444565b60405190808252806020026020018201604052801561140f57816020015b60608152602001906001900390816113fa5790505b5081526020808201879052604080516000808252928101825292019190611471565b61145e604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816114315790505b5090529050610be88147611ce8565b6000600080516020612d428339815191528161149b856119c2565b90506001600160a01b038416156114b7576114b7818587611d6b565b6001600160a01b038116156114f7576114d46000866000806119fc565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b03861615611528576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b611592611dcf565b61159b81611e18565b50565b6115a6611dcf565b565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061161857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661160c611e61565b6001600160a01b031614155b156115a65760405163703e46dd60e11b815260040160405180910390fd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611690575060408051601f3d908101601f1916820190925261168d918101906128eb565b60015b6116b857604051634c9c8ce360e01b81526001600160a01b03831660048201526024016108c7565b600080516020612d6283398151915281146116e957604051632a87526960e21b8152600481018290526024016108c7565b61094c8383611e77565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115a65760405163703e46dd60e11b815260040160405180910390fd5b610691828260405180602001604052806000815250611ecd565b600080516020612d428339815191526001600160a01b03831661179757604051630b61174360e31b81526001600160a01b03841660048201526024016108c7565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b1561192957604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611849908890889087908790600401612aee565b6020604051808303816000875af1925050508015611884575060408051601f3d908101601f1916820190925261188191810190612b2b565b60015b6118ed573d8080156118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b5080516000036118e557604051633250574960e11b81526001600160a01b03851660048201526024016108c7565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610be857604051633250574960e11b81526001600160a01b03851660048201526024016108c7565b5050505050565b6060600061193d83611ee5565b60010190506000816001600160401b0381111561195c5761195c612444565b6040519080825280601f01601f191660200182016040528015611986576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461199057509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020612d428339815191528180611a1f57506001600160a01b03831615155b15611ae1576000611a2f85610dbe565b90506001600160a01b03841615801590611a5b5750836001600160a01b0316816001600160a01b031614155b8015611a6e5750611a6c8185610d71565b155b15611a975760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016108c7565b8215611adf5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168585604051611b309190612b48565b60006040518083038185875af1925050503d8060008114611b6d576040519150601f19603f3d011682016040523d82523d6000602084013e611b72565b606091505b509150915081611bb75760405162461bcd60e51b815260206004820152601060248201526f14d95b198818d85b1b0819985a5b195960821b60448201526064016108c7565b95945050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691611c1c9190612b48565b6000604051808303816000865af19150503d8060008114611c59576040519150601f19603f3d011682016040523d82523d6000602084013e611c5e565b606091505b5091509150818015611c88575080511580611c88575080806020019051810190611c88919061291a565b6119295760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b60648201526084016108c7565b611cf0610e3d565b6001600160a01b031663e289adcd82600185604051602001611d129190612c65565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611d3e929190612d28565b6000604051808303818588803b158015611d5757600080fd5b505af1158015610a7a573d6000803e3d6000fd5b611d76838383611fbd565b61094c576001600160a01b038316611da457604051637e27328960e01b8152600481018290526024016108c7565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016108c7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166115a657604051631afcd79f60e31b815260040160405180910390fd5b611e20611dcf565b7f9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d10080546001600160a01b0319166001600160a01b0392909216919091179055565b6000600080516020612d62833981519152610e61565b611e8082612023565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611ec55761094c8282612088565b6106916120f5565b611ed78383612114565b61094c336000858585611807565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611f245772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611f50576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611f6e57662386f26fc10000830492506010015b6305f5e1008310611f86576305f5e100830492506008015b6127108310611f9a57612710830492506004015b60648310611fac576064830492506002015b600a83106105c75760010192915050565b60006001600160a01b0383161580159061201b5750826001600160a01b0316846001600160a01b03161480611ff75750611ff78484610d71565b8061201b5750826001600160a01b031661201083610df6565b6001600160a01b0316145b949350505050565b806001600160a01b03163b60000361205957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016108c7565b600080516020612d6283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120a59190612b48565b600060405180830381855af49150503d80600081146120e0576040519150601f19603f3d011682016040523d82523d6000602084013e6120e5565b606091505b5091509150611bb7858383612179565b34156115a65760405163b398979f60e01b815260040160405180910390fd5b6001600160a01b03821661213e57604051633250574960e11b8152600060048201526024016108c7565b600061214c83836000611480565b90506001600160a01b0381161561094c576040516339e3563760e11b8152600060048201526024016108c7565b60608261218e57612189826121d5565b610d24565b81511580156121a557506001600160a01b0384163b155b156121ce57604051639996b31560e01b81526001600160a01b03851660048201526024016108c7565b5080610d24565b8051156121e55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6001600160e01b03198116811461159b57600080fd5b60006020828403121561222657600080fd5b8135610d24816121fe565b60005b8381101561224c578181015183820152602001612234565b50506000910152565b6000815180845261226d816020860160208601612231565b601f01601f19169290920160200192915050565b602081526000610d246020830184612255565b6000602082840312156122a657600080fd5b5035919050565b6001600160a01b038116811461159b57600080fd5b600080604083850312156122d557600080fd5b82356122e0816122ad565b946020939093013593505050565b60008083601f84011261230057600080fd5b5081356001600160401b0381111561231757600080fd5b60208301915083602082850101111561232f57600080fd5b9250929050565b6000806000806040858703121561234c57600080fd5b84356001600160401b0381111561236257600080fd5b61236e878288016122ee565b90955093505060208501356001600160401b0381111561238d57600080fd5b612399878288016122ee565b95989497509550505050565b600080604083850312156123b857600080fd5b8235915060208301356123ca816122ad565b809150509250929050565b6000806000606084860312156123ea57600080fd5b83356123f5816122ad565b92506020840135612405816122ad565b929592945050506040919091013590565b6000806040838503121561242957600080fd5b8235612434816122ad565b915060208301356123ca816122ad565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561247c5761247c612444565b60405290565b60405160a081016001600160401b038111828210171561247c5761247c612444565b604051601f8201601f191681016001600160401b03811182821017156124cc576124cc612444565b604052919050565b60006001600160401b038211156124ed576124ed612444565b50601f01601f191660200190565b600082601f83011261250c57600080fd5b8135602083016000612525612520846124d4565b6124a4565b905082815285838301111561253957600080fd5b82826020830137600092810160200192909252509392505050565b6000806040838503121561256757600080fd5b8235612572816122ad565b915060208301356001600160401b0381111561258d57600080fd5b612599858286016124fb565b9150509250929050565b6000602082840312156125b557600080fd5b8135610d24816122ad565b801515811461159b57600080fd5b600080604083850312156125e157600080fd5b82356125ec816122ad565b915060208301356123ca816125c0565b6000806000806080858703121561261257600080fd5b843561261d816122ad565b9350602085013561262d816122ad565b92506040850135915060608501356001600160401b0381111561264f57600080fd5b61265b878288016124fb565b91505092959194509250565b600181811c9082168061267b57607f821691505b60208210810361269b57634e487b7160e01b600052602260045260246000fd5b50919050565b600080604083850312156126b457600080fd5b82516126bf816122ad565b60208401519092506123ca816125c0565b6000608082840312156126e257600080fd5b604051608081016001600160401b038111828210171561270457612704612444565b6040529050808235612715816125c0565b81526020830135612725816122ad565b60208201526040838101359082015260608301356001600160401b0381111561274d57600080fd5b612759858286016124fb565b6060830152505092915050565b6000806001600160401b0384111561278057612780612444565b8360051b602081019150612793826124a4565b85815292506020830191508301858111156127ad57600080fd5b835b818110156127e85780356001600160401b038111156127cd57600080fd5b6127d9888288016126d0565b845250602092830192016127af565b5050509392505050565b600082601f83011261280357600080fd5b610d2483833560208501612766565b60006020828403121561282457600080fd5b81356001600160401b0381111561283a57600080fd5b82016060818503121561284c57600080fd5b61285461245a565b81356001600160401b0381111561286a57600080fd5b8201601f8101861361287b57600080fd5b61288a86823560208401612766565b82525060208201356001600160401b038111156128a657600080fd5b6128b2868285016127f2565b60208301525060408201356001600160401b038111156128d157600080fd5b6128dd868285016126d0565b604083015250949350505050565b6000602082840312156128fd57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561292c57600080fd5b8151610d24816125c0565b60008351612949818460208801612231565b83519083019061295d818360208801612231565b01949350505050565b60006001820161298657634e487b7160e01b600052601160045260246000fd5b5060010190565b60006020828403121561299f57600080fd5b81356001600160401b038111156129b557600080fd5b820160a081850312156129c757600080fd5b6129cf612482565b81356001600160401b03811681146129e657600080fd5b8152602082810135908201526040808301359082015260608201356001600160401b03811115612a1557600080fd5b612a21868285016124fb565b60608301525060808201356001600160401b03811115612a4057600080fd5b612a4c868285016124fb565b608083015250949350505050565b60018060a01b0384168152826020820152606060408201526000611bb76060830184612255565b600060208284031215612a9357600080fd5b81516001600160401b03811115612aa957600080fd5b8201601f81018413612aba57600080fd5b8051612ac8612520826124d4565b818152856020838501011115612add57600080fd5b611bb7826020830160208601612231565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612b2190830184612255565b9695505050505050565b600060208284031215612b3d57600080fd5b8151610d24816121fe565b60008251612b5a818460208701612231565b9190910192915050565b600082825180855260208501945060208160051b8301016020850160005b83811015612bb457601f19858403018852612b9e838351612255565b6020988901989093509190910190600101612b82565b50909695505050505050565b600081518084526020840193506020830160005b82811015612c0757815180516001600160a01b031687526020908101518188015260409096019590910190600101612bd4565b5093949350505050565b600081518084526020840193506020830160005b82811015612c0757815180516001600160a01b03168752602080820151818901526040918201519188019190915260609096019590910190600101612c25565b60208152612c7f6020820183516001600160401b03169052565b600060208301516101006040840152612c9c610120840182612255565b90506040840151601f19848303016060850152612cb98282612255565b91505060608401516080840152608084015160a084015260a0840151601f198483030160c0850152612ceb8282612b64565b91505060c0840151601f198483030160e0850152612d098282612bc0565b91505060e0840151601f1984830301610100850152611bb78282612c11565b82815260406020820152600061201b604083018461225556fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f363b592318ade4f7c4768b2dc9a8c3a5ee80dc7cb083d178a2ae747a9d8d90d64736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x2DB7 PUSH2 0x3D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x15B3 ADD MSTORE DUP2 DUP2 PUSH2 0x15DC ADD MSTORE PUSH2 0x16FE ADD MSTORE PUSH2 0x2DB7 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4F8632BA GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x506 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0xD09DE08A EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x495 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xAE6E7180 EQ PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x440 JUMPI DUP1 PUSH4 0x7D6F0E9C EQ PUSH2 0x460 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x480 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4F8632BA EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x22C3A793 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x3C2D13C3 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x3C2D13C3 EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x382 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x3C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x22C3A793 EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x30C78B41 EQ PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0xC5561A6 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xD8E6E2C EQ PUSH2 0x28D JUMPI DUP1 PUSH4 0x14F40E5E EQ PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x213 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2214 JUMP JUMPDEST PUSH2 0x57B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x5CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x2281 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0x22E CALLDATASIZE PUSH1 0x4 PUSH2 0x2294 JUMP JUMPDEST PUSH2 0x671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x257 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x22C2 JUMP JUMPDEST PUSH2 0x686 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2336 JUMP JUMPDEST PUSH2 0x695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x233 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x23A5 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 OR SWAP1 SSTORE POP PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x23D5 JUMP JUMPDEST PUSH2 0x8A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x1DC SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x233 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x39D CALLDATASIZE PUSH1 0x4 PUSH2 0x23D5 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x3BD CALLDATASIZE PUSH1 0x4 PUSH2 0x2416 JUMP JUMPDEST PUSH2 0x951 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2554 JUMP JUMPDEST PUSH2 0xA83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x233 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x401 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29D PUSH2 0xA95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29D PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0x43B CALLDATASIZE PUSH1 0x4 PUSH2 0x2294 JUMP JUMPDEST PUSH2 0xAB2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29D PUSH2 0x45B CALLDATASIZE PUSH1 0x4 PUSH2 0x25A3 JUMP JUMPDEST PUSH2 0xABD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x47B CALLDATASIZE PUSH1 0x4 PUSH2 0x2336 JUMP JUMPDEST PUSH2 0xB19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0xBF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x4B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x25CE JUMP JUMPDEST PUSH2 0xC2F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x501 CALLDATASIZE PUSH1 0x4 PUSH2 0x25A3 JUMP JUMPDEST PUSH2 0xC3A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x25FC JUMP JUMPDEST PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x541 CALLDATASIZE PUSH1 0x4 PUSH2 0x2294 JUMP JUMPDEST PUSH2 0xCB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x576 CALLDATASIZE PUSH1 0x4 PUSH2 0x2416 JUMP JUMPDEST PUSH2 0xD71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x5AC JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x5C7 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x5ED SWAP1 PUSH2 0x2667 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 0x619 SWAP1 PUSH2 0x2667 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x666 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x63B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x666 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 0x649 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C DUP3 PUSH2 0xDBE JUMP JUMPDEST POP PUSH2 0x5C7 DUP3 PUSH2 0xDF6 JUMP JUMPDEST PUSH2 0x691 DUP3 DUP3 CALLER PUSH2 0xE30 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x69D PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6CE JUMPI PUSH1 0x40 MLOAD PUSH4 0x67AB7EFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6DA DUP6 DUP6 PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xA66C4F5 PUSH1 0xE4 SHL DUP2 MSTORE SWAP4 SWAP5 POP SWAP2 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA66C4F50 SWAP2 PUSH2 0x714 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x2281 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x732 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 0x756 SWAP2 SWAP1 PUSH2 0x26A1 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x767 DUP5 DUP7 ADD DUP7 PUSH2 0x2812 JUMP JUMPDEST SWAP1 POP PUSH2 0x773 DUP3 DUP3 PUSH2 0xEA6 JUMP JUMPDEST POP PUSH2 0x77E DUP3 DUP3 PUSH2 0x10AE JUMP JUMPDEST POP PUSH2 0x789 DUP3 DUP3 PUSH2 0x115F JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x7A1 JUMPI SWAP1 POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 DUP3 MSTORE SWAP2 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP3 SWAP4 POP SWAP2 PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x827 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 0x84B SWAP2 SWAP1 PUSH2 0x28EB JUMP JUMPDEST DUP2 MSTORE POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x861 JUMPI PUSH2 0x861 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x897 DUP9 DUP9 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x1C185E5B1BD859 PUSH1 0xCA SHL DUP2 MSTORE POP PUSH2 0x1315 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8DD DUP4 DUP4 CALLER PUSH2 0x1480 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x92B JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x94C DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC9E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x996 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x9B2 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x9C0 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x9DE JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xA08 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xA11 DUP8 PUSH2 0x158A JUMP JUMPDEST PUSH2 0xA19 PUSH2 0x159E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0xA7A JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA8B PUSH2 0x15A8 JUMP JUMPDEST PUSH2 0x691 DUP3 DUP3 PUSH2 0x1636 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9F PUSH2 0x16F3 JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D62 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C7 DUP3 PUSH2 0xDBE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xAF8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB21 PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB52 JUMPI PUSH1 0x40 MLOAD PUSH4 0x67AB7EFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB5E DUP6 DUP6 PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xA66C4F5 PUSH1 0xE4 SHL DUP2 MSTORE SWAP4 SWAP5 POP SWAP2 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA66C4F50 SWAP2 PUSH2 0xB98 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x2281 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBB6 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 0xBDA SWAP2 SWAP1 PUSH2 0x26A1 JUMP JUMPDEST POP SWAP1 POP PUSH2 0xBE8 DUP2 PUSH1 0x0 PUSH2 0x173C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x5ED SWAP1 PUSH2 0x2667 JUMP JUMPDEST PUSH2 0x691 CALLER DUP4 DUP4 PUSH2 0x1756 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41E15EA0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC7A 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 0x5C7 SWAP2 SWAP1 PUSH2 0x291A JUMP JUMPDEST PUSH2 0xCA9 DUP5 DUP5 DUP5 PUSH2 0x8A1 JUMP JUMPDEST PUSH2 0x92B CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x1807 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC1 DUP3 PUSH2 0xDBE JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCD9 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xCF9 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xD24 JUMP JUMPDEST DUP1 PUSH2 0xD03 DUP5 PUSH2 0x1930 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD14 SWAP3 SWAP2 SWAP1 PUSH2 0x2937 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xD3B DUP4 PUSH2 0x2966 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 SWAP1 PUSH32 0x6312957B833157DBCCE860C9538737FEBB9491FDE39563488A9C296F930376ED SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xDCA DUP4 PUSH2 0x19C2 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x94C DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x19FC JUMP JUMPDEST PUSH1 0x0 PUSH32 0x9B777D7F09CA6843192B146EE41249650756FB313CBC428AA2DD37D610F1D100 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0xD24 DUP3 DUP5 ADD DUP5 PUSH2 0x298D JUMP JUMPDEST DUP1 MLOAD DUP1 MLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xEC8 JUMPI PUSH2 0xEC8 PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEFB JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xEE6 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x10A5 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xF1C JUMPI PUSH2 0xF1C PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD ISZERO PUSH2 0x101D JUMPI DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB61D27F6 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xF4E JUMPI PUSH2 0xF4E PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xF6C JUMPI PUSH2 0xF6C PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF8A JUMPI PUSH2 0xF8A PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFB4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A5A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xFFB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2A81 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x100D JUMPI PUSH2 0x100D PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x109D JUMP JUMPDEST PUSH2 0x107F DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1032 JUMPI PUSH2 0x1032 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1050 JUMPI PUSH2 0x1050 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x106E JUMPI PUSH2 0x106E PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH2 0x1B12 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1091 JUMPI PUSH2 0x1091 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP JUMPDEST PUSH1 0x1 ADD PUSH2 0xF01 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x60 SWAP2 SWAP1 ISZERO PUSH2 0x1148 JUMPI PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD SWAP2 MLOAD PUSH4 0x5B0E93FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP4 PUSH4 0xB61D27F6 SWAP4 PUSH2 0x10F9 SWAP4 SWAP2 SWAP3 PUSH1 0x4 ADD PUSH2 0x2A5A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1118 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1140 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2A81 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5C7 JUMP JUMPDEST PUSH2 0x1140 DUP2 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x60 ADD MLOAD PUSH2 0x1B12 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1185 JUMPI PUSH2 0x1185 PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11B8 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x11A3 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x10A5 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x11D9 JUMPI PUSH2 0x11D9 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD ISZERO PUSH2 0x12DA JUMPI DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB61D27F6 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x120B JUMPI PUSH2 0x120B PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1229 JUMPI PUSH2 0x1229 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1247 JUMPI PUSH2 0x1247 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1271 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A5A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12B8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2A81 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12CA JUMPI PUSH2 0x12CA PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x130D JUMP JUMPDEST PUSH2 0x12EF DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1032 JUMPI PUSH2 0x1032 PUSH2 0x2904 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1301 JUMPI PUSH2 0x1301 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x11BE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1375 JUMPI PUSH2 0x136D DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1336 JUMPI PUSH2 0x1336 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH2 0x134A PUSH2 0xE3D JUMP JUMPDEST DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x135C JUMPI PUSH2 0x135C PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x1BC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1318 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1382 DUP6 DUP6 PUSH2 0xE70 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x13DC JUMPI PUSH2 0x13DC PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x140F JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x13FA JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE SWAP3 DUP2 ADD DUP3 MSTORE SWAP3 ADD SWAP2 SWAP1 PUSH2 0x1471 JUMP JUMPDEST PUSH2 0x145E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x1431 JUMPI SWAP1 POP JUMPDEST POP SWAP1 MSTORE SWAP1 POP PUSH2 0xBE8 DUP2 SELFBALANCE PUSH2 0x1CE8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x149B DUP6 PUSH2 0x19C2 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x14B7 JUMPI PUSH2 0x14B7 DUP2 DUP6 DUP8 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x14F7 JUMPI PUSH2 0x14D4 PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0x19FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x1528 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1592 PUSH2 0x1DCF JUMP JUMPDEST PUSH2 0x159B DUP2 PUSH2 0x1E18 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x15A6 PUSH2 0x1DCF JUMP JUMPDEST JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x1618 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160C PUSH2 0x1E61 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x15A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1690 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x168D SWAP2 DUP2 ADD SWAP1 PUSH2 0x28EB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x16B8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D62 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x16E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH2 0x94C DUP4 DUP4 PUSH2 0x1E77 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x15A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x691 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1ECD JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1797 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x1929 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x1849 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2AEE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1884 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1881 SWAP2 DUP2 ADD SWAP1 PUSH2 0x2B2B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x18ED JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x18B2 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 0x18B7 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x18E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xBE8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x193D DUP4 PUSH2 0x1EE5 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x195C JUMPI PUSH2 0x195C PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1986 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x1990 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0x1A1F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1AE1 JUMPI PUSH1 0x0 PUSH2 0x1A2F DUP6 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1A5B JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1A6E JUMPI POP PUSH2 0x1A6C DUP2 DUP6 PUSH2 0xD71 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1A97 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST DUP3 ISZERO PUSH2 0x1ADF JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1B30 SWAP2 SWAP1 PUSH2 0x2B48 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 0x1B6D 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 0x1B72 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1BB7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14D95B198818D85B1B0819985A5B1959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x1C1C SWAP2 SWAP1 PUSH2 0x2B48 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1C59 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 0x1C5E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x1C88 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x1C88 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1C88 SWAP2 SWAP1 PUSH2 0x291A JUMP JUMPDEST PUSH2 0x1929 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A73616665417070726F76653A20617070 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x1C9BDD994819985A5B1959 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH2 0x1CF0 PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE289ADCD DUP3 PUSH1 0x1 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1D12 SWAP2 SWAP1 PUSH2 0x2C65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D3E SWAP3 SWAP2 SWAP1 PUSH2 0x2D28 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1D76 DUP4 DUP4 DUP4 PUSH2 0x1FBD JUMP JUMPDEST PUSH2 0x94C JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1DA4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1E20 PUSH2 0x1DCF JUMP JUMPDEST PUSH32 0x9B777D7F09CA6843192B146EE41249650756FB313CBC428AA2DD37D610F1D100 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D62 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xE61 JUMP JUMPDEST PUSH2 0x1E80 DUP3 PUSH2 0x2023 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x1EC5 JUMPI PUSH2 0x94C DUP3 DUP3 PUSH2 0x2088 JUMP JUMPDEST PUSH2 0x691 PUSH2 0x20F5 JUMP JUMPDEST PUSH2 0x1ED7 DUP4 DUP4 PUSH2 0x2114 JUMP JUMPDEST PUSH2 0x94C CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0x1807 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x1F24 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1F50 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1F6E JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1F86 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1F9A JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1FAC JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x5C7 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x201B JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1FF7 JUMPI POP PUSH2 0x1FF7 DUP5 DUP5 PUSH2 0xD71 JUMP JUMPDEST DUP1 PUSH2 0x201B JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2010 DUP4 PUSH2 0xDF6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x2059 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D62 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x20A5 SWAP2 SWAP1 PUSH2 0x2B48 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x20E0 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 0x20E5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1BB7 DUP6 DUP4 DUP4 PUSH2 0x2179 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x15A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x213E JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x214C DUP4 DUP4 PUSH1 0x0 PUSH2 0x1480 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x94C JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x218E JUMPI PUSH2 0x2189 DUP3 PUSH2 0x21D5 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x21A5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x21CE JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST POP DUP1 PUSH2 0xD24 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x21E5 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x159B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2226 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD24 DUP2 PUSH2 0x21FE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x224C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2234 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x226D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x159B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x22E0 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x232F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x234C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2362 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x236E DUP8 DUP3 DUP9 ADD PUSH2 0x22EE JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2399 DUP8 DUP3 DUP9 ADD PUSH2 0x22EE JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23CA DUP2 PUSH2 0x22AD JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x23F5 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2405 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2434 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23CA DUP2 PUSH2 0x22AD JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x247C JUMPI PUSH2 0x247C PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x247C JUMPI PUSH2 0x247C PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x24CC JUMPI PUSH2 0x24CC PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x24ED JUMPI PUSH2 0x24ED PUSH2 0x2444 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x250C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 PUSH2 0x2525 PUSH2 0x2520 DUP5 PUSH2 0x24D4 JUMP JUMPDEST PUSH2 0x24A4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2539 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2572 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x258D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2599 DUP6 DUP3 DUP7 ADD PUSH2 0x24FB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD24 DUP2 PUSH2 0x22AD JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x159B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x25EC DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23CA DUP2 PUSH2 0x25C0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x261D DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x262D DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x264F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x265B DUP8 DUP3 DUP9 ADD PUSH2 0x24FB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x267B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x269B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x26BF DUP2 PUSH2 0x22AD JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x23CA DUP2 PUSH2 0x25C0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2704 JUMPI PUSH2 0x2704 PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP3 CALLDATALOAD PUSH2 0x2715 DUP2 PUSH2 0x25C0 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2725 DUP2 PUSH2 0x22AD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x274D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2759 DUP6 DUP3 DUP7 ADD PUSH2 0x24FB JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x2780 JUMPI PUSH2 0x2780 PUSH2 0x2444 JUMP JUMPDEST DUP4 PUSH1 0x5 SHL PUSH1 0x20 DUP2 ADD SWAP2 POP PUSH2 0x2793 DUP3 PUSH2 0x24A4 JUMP JUMPDEST DUP6 DUP2 MSTORE SWAP3 POP PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x27AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27E8 JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x27CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27D9 DUP9 DUP3 DUP9 ADD PUSH2 0x26D0 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x27AF JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2803 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD24 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2766 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2824 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x283A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x60 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x284C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2854 PUSH2 0x245A JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x286A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x287B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x288A DUP7 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x2766 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x28A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28B2 DUP7 DUP3 DUP6 ADD PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x28D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28DD DUP7 DUP3 DUP6 ADD PUSH2 0x26D0 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x292C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xD24 DUP2 PUSH2 0x25C0 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x2949 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x2231 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x295D DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x2231 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x2986 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x299F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xA0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x29C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29CF PUSH2 0x2482 JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x29E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A21 DUP7 DUP3 DUP6 ADD PUSH2 0x24FB JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A4C DUP7 DUP3 DUP6 ADD PUSH2 0x24FB JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1BB7 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2AA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2ABA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2AC8 PUSH2 0x2520 DUP3 PUSH2 0x24D4 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2ADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB7 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2B21 SWAP1 DUP4 ADD DUP5 PUSH2 0x2255 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xD24 DUP2 PUSH2 0x21FE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2B5A DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2231 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2BB4 JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x2B9E DUP4 DUP4 MLOAD PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2B82 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C07 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD DUP2 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2BD4 JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C07 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x40 SWAP2 DUP3 ADD MLOAD SWAP2 DUP9 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x2C7F PUSH1 0x20 DUP3 ADD DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x100 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2C9C PUSH2 0x120 DUP5 ADD DUP3 PUSH2 0x2255 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x2CB9 DUP3 DUP3 PUSH2 0x2255 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x2CEB DUP3 DUP3 PUSH2 0x2B64 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x2D09 DUP3 DUP3 PUSH2 0x2BC0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x1BB7 DUP3 DUP3 PUSH2 0x2C11 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x201B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2255 JUMP INVALID DUP1 0xBB 0x2B PUSH4 0x8CC20BC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB0079300360894A13BA1A3210667C828492DB98D 0xCA RETURNDATACOPY KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCA2646970667358221220F3 PUSH4 0xB592318A 0xDE 0x4F PUSH29 0x4768B2DC9A8C3A5EE80DC7CB083D178A2AE747A9D8D90D64736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1034:3357:86:-:0;;;1171:4:4;1128:48;;1034:3357:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@UPGRADE_INTERFACE_VERSION_972":{"entryPoint":null,"id":972,"parameterSlots":0,"returnSlots":0},"@__TacProxyV1Upgradeable_init_18590":{"entryPoint":5514,"id":18590,"parameterSlots":1,"returnSlots":0},"@__TacProxyV1Upgradeable_init_unchained_18610":{"entryPoint":7704,"id":18610,"parameterSlots":1,"returnSlots":0},"@__UUPSUpgradeable_init_1002":{"entryPoint":5534,"id":1002,"parameterSlots":0,"returnSlots":0},"@_approve_2678":{"entryPoint":3632,"id":2678,"parameterSlots":3,"returnSlots":0},"@_approve_2752":{"entryPoint":6652,"id":2752,"parameterSlots":4,"returnSlots":0},"@_authorizeUpgrade_21179":{"entryPoint":null,"id":21179,"parameterSlots":1,"returnSlots":0},"@_baseURI_2018":{"entryPoint":null,"id":2018,"parameterSlots":0,"returnSlots":1},"@_bridgeTokens_21433":{"entryPoint":4885,"id":21433,"parameterSlots":4,"returnSlots":0},"@_checkAuthorized_2298":{"entryPoint":7531,"id":2298,"parameterSlots":3,"returnSlots":0},"@_checkInitializing_870":{"entryPoint":7631,"id":870,"parameterSlots":0,"returnSlots":0},"@_checkNonPayable_3695":{"entryPoint":8437,"id":3695,"parameterSlots":0,"returnSlots":0},"@_checkNotDelegated_1078":{"entryPoint":5875,"id":1078,"parameterSlots":0,"returnSlots":0},"@_checkProxy_1062":{"entryPoint":5544,"id":1062,"parameterSlots":0,"returnSlots":0},"@_decodeTacHeader_18660":{"entryPoint":3696,"id":18660,"parameterSlots":2,"returnSlots":1},"@_getApproved_2225":{"entryPoint":3574,"id":2225,"parameterSlots":1,"returnSlots":1},"@_getCrossChainLayerAddress_18643":{"entryPoint":3645,"id":18643,"parameterSlots":0,"returnSlots":1},"@_getERC721Storage_1818":{"entryPoint":null,"id":1818,"parameterSlots":0,"returnSlots":1},"@_getInitializableStorage_947":{"entryPoint":null,"id":947,"parameterSlots":0,"returnSlots":1},"@_getTacProxyV1UpgradeableStorage_18633":{"entryPoint":null,"id":18633,"parameterSlots":0,"returnSlots":1},"@_isAuthorized_2261":{"entryPoint":8125,"id":2261,"parameterSlots":3,"returnSlots":1},"@_isInitializing_938":{"entryPoint":null,"id":938,"parameterSlots":0,"returnSlots":1},"@_mint_2474":{"entryPoint":8468,"id":2474,"parameterSlots":2,"returnSlots":0},"@_msgSender_2855":{"entryPoint":null,"id":2855,"parameterSlots":0,"returnSlots":1},"@_ownerOf_2205":{"entryPoint":6594,"id":2205,"parameterSlots":1,"returnSlots":1},"@_requireOwned_2826":{"entryPoint":3518,"id":2826,"parameterSlots":1,"returnSlots":1},"@_revert_6627":{"entryPoint":8661,"id":6627,"parameterSlots":1,"returnSlots":0},"@_safeMint_2489":{"entryPoint":5948,"id":2489,"parameterSlots":2,"returnSlots":0},"@_safeMint_2519":{"entryPoint":7885,"id":2519,"parameterSlots":3,"returnSlots":0},"@_selfCall_19874":{"entryPoint":6930,"id":19874,"parameterSlots":3,"returnSlots":1},"@_sendMessageV1_18684":{"entryPoint":7400,"id":18684,"parameterSlots":2,"returnSlots":0},"@_setApprovalForAll_2797":{"entryPoint":5974,"id":2797,"parameterSlots":3,"returnSlots":0},"@_setImplementation_3475":{"entryPoint":8227,"id":3475,"parameterSlots":1,"returnSlots":0},"@_update_2424":{"entryPoint":5248,"id":2424,"parameterSlots":3,"returnSlots":1},"@_upgradeToAndCallUUPS_1129":{"entryPoint":5686,"id":1129,"parameterSlots":2,"returnSlots":0},"@approve_2034":{"entryPoint":1670,"id":2034,"parameterSlots":2,"returnSlots":0},"@balanceOf_1928":{"entryPoint":2749,"id":1928,"parameterSlots":1,"returnSlots":1},"@checkBlueprint_21351":{"entryPoint":3130,"id":21351,"parameterSlots":1,"returnSlots":1},"@checkOnERC721Received_6368":{"entryPoint":6151,"id":6368,"parameterSlots":5,"returnSlots":0},"@counter_21134":{"entryPoint":null,"id":21134,"parameterSlots":0,"returnSlots":0},"@executeMainCall_19844":{"entryPoint":4270,"id":19844,"parameterSlots":2,"returnSlots":1},"@executePostHooks_19799":{"entryPoint":4447,"id":19799,"parameterSlots":2,"returnSlots":1},"@executePreHooks_19703":{"entryPoint":3750,"id":19703,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_6545":{"entryPoint":8328,"id":6545,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_6935":{"entryPoint":null,"id":6935,"parameterSlots":1,"returnSlots":1},"@getApproved_2051":{"entryPoint":1649,"id":2051,"parameterSlots":1,"returnSlots":1},"@getImplementation_3448":{"entryPoint":7777,"id":3448,"parameterSlots":0,"returnSlots":1},"@getVersion_18694":{"entryPoint":null,"id":18694,"parameterSlots":0,"returnSlots":1},"@increment_21316":{"entryPoint":3371,"id":21316,"parameterSlots":0,"returnSlots":0},"@initialize_21172":{"entryPoint":2385,"id":21172,"parameterSlots":2,"returnSlots":0},"@isApprovedForAll_2091":{"entryPoint":3441,"id":2091,"parameterSlots":2,"returnSlots":1},"@log10_9871":{"entryPoint":7909,"id":9871,"parameterSlots":1,"returnSlots":1},"@mainCallExecuted_21136":{"entryPoint":null,"id":21136,"parameterSlots":0,"returnSlots":0},"@mainCall_21337":{"entryPoint":null,"id":21337,"parameterSlots":2,"returnSlots":0},"@mintAndSafeTransferCheck_21303":{"entryPoint":2841,"id":21303,"parameterSlots":4,"returnSlots":0},"@name_1957":{"entryPoint":1485,"id":1957,"parameterSlots":0,"returnSlots":1},"@ownerOf_1941":{"entryPoint":2738,"id":1941,"parameterSlots":1,"returnSlots":1},"@proxiableUUID_1020":{"entryPoint":2709,"id":1020,"parameterSlots":0,"returnSlots":1},"@safeApprove_12053":{"entryPoint":7104,"id":12053,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_2155":{"entryPoint":2353,"id":2155,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_2185":{"entryPoint":3230,"id":2185,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_2067":{"entryPoint":3119,"id":2067,"parameterSlots":2,"returnSlots":0},"@supportsInterface_1893":{"entryPoint":1403,"id":1893,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2912":{"entryPoint":null,"id":2912,"parameterSlots":1,"returnSlots":1},"@symbol_1973":{"entryPoint":3056,"id":1973,"parameterSlots":0,"returnSlots":1},"@tacSAFactory_21132":{"entryPoint":null,"id":21132,"parameterSlots":0,"returnSlots":0},"@test_21273":{"entryPoint":1685,"id":21273,"parameterSlots":4,"returnSlots":0},"@toString_7092":{"entryPoint":6448,"id":7092,"parameterSlots":1,"returnSlots":1},"@tokenToBridge_21138":{"entryPoint":null,"id":21138,"parameterSlots":0,"returnSlots":0},"@tokenURI_2009":{"entryPoint":3254,"id":2009,"parameterSlots":1,"returnSlots":1},"@transferFrom_2137":{"entryPoint":2209,"id":2137,"parameterSlots":3,"returnSlots":0},"@upgradeToAndCall_1040":{"entryPoint":2691,"id":1040,"parameterSlots":2,"returnSlots":0},"@upgradeToAndCall_3511":{"entryPoint":7799,"id":3511,"parameterSlots":2,"returnSlots":0},"@user_21140":{"entryPoint":null,"id":21140,"parameterSlots":0,"returnSlots":0},"@verifyCallResultFromTarget_6585":{"entryPoint":8569,"id":6585,"parameterSlots":3,"returnSlots":1},"abi_decode_array_struct_PostHook_dyn":{"entryPoint":10226,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_array_struct_PreHook_dyn":{"entryPoint":10086,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes":{"entryPoint":9467,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":8942,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_struct_PreHook":{"entryPoint":9936,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9635,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":9238,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":9173,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":9724,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":9678,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bool_fromMemory":{"entryPoint":9889,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":9556,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":8898,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":10522,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":8724,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":11051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":9014,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":10881,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_SaHooks_$19478_memory_ptr":{"entryPoint":10258,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr":{"entryPoint":10637,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":8852,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":10475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_address":{"entryPoint":9125,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_array_string_dyn":{"entryPoint":11108,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_NFTAmount_dyn":{"entryPoint":11281,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_struct_TokenAmount_dyn":{"entryPoint":11200,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_rational_by":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":8789,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":11080,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10551,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10990,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10842,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_TacSAFactory_$19057__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8833,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a07439f902f1bd470ce3997f1765e8144dca2c4ced2587f5d56d513a4a4bc0db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr__to_t_struct$_OutMessageV1_$16084_memory_ptr__fromStack_reversed":{"entryPoint":11365,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11560,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":9380,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_2598":{"entryPoint":9306,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_2600":{"entryPoint":9346,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":9428,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":8753,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":9831,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":10598,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":10500,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9284,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":8877,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":9664,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":8702,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:22838:89","nodeType":"YulBlock","src":"0:22838:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"58:87:89","nodeType":"YulBlock","src":"58:87:89","statements":[{"body":{"nativeSrc":"123:16:89","nodeType":"YulBlock","src":"123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"132:1:89","nodeType":"YulLiteral","src":"132:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"135:1:89","nodeType":"YulLiteral","src":"135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"125:6:89","nodeType":"YulIdentifier","src":"125:6:89"},"nativeSrc":"125:12:89","nodeType":"YulFunctionCall","src":"125:12:89"},"nativeSrc":"125:12:89","nodeType":"YulExpressionStatement","src":"125:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:89","nodeType":"YulIdentifier","src":"81:5:89"},{"arguments":[{"name":"value","nativeSrc":"92:5:89","nodeType":"YulIdentifier","src":"92:5:89"},{"arguments":[{"kind":"number","nativeSrc":"103:3:89","nodeType":"YulLiteral","src":"103:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"108:10:89","nodeType":"YulLiteral","src":"108:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"99:3:89","nodeType":"YulIdentifier","src":"99:3:89"},"nativeSrc":"99:20:89","nodeType":"YulFunctionCall","src":"99:20:89"}],"functionName":{"name":"and","nativeSrc":"88:3:89","nodeType":"YulIdentifier","src":"88:3:89"},"nativeSrc":"88:32:89","nodeType":"YulFunctionCall","src":"88:32:89"}],"functionName":{"name":"eq","nativeSrc":"78:2:89","nodeType":"YulIdentifier","src":"78:2:89"},"nativeSrc":"78:43:89","nodeType":"YulFunctionCall","src":"78:43:89"}],"functionName":{"name":"iszero","nativeSrc":"71:6:89","nodeType":"YulIdentifier","src":"71:6:89"},"nativeSrc":"71:51:89","nodeType":"YulFunctionCall","src":"71:51:89"},"nativeSrc":"68:71:89","nodeType":"YulIf","src":"68:71:89"}]},"name":"validator_revert_bytes4","nativeSrc":"14:131:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:89","nodeType":"YulTypedName","src":"47:5:89","type":""}],"src":"14:131:89"},{"body":{"nativeSrc":"219:176:89","nodeType":"YulBlock","src":"219:176:89","statements":[{"body":{"nativeSrc":"265:16:89","nodeType":"YulBlock","src":"265:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"274:1:89","nodeType":"YulLiteral","src":"274:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"277:1:89","nodeType":"YulLiteral","src":"277:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"267:6:89","nodeType":"YulIdentifier","src":"267:6:89"},"nativeSrc":"267:12:89","nodeType":"YulFunctionCall","src":"267:12:89"},"nativeSrc":"267:12:89","nodeType":"YulExpressionStatement","src":"267:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"240:7:89","nodeType":"YulIdentifier","src":"240:7:89"},{"name":"headStart","nativeSrc":"249:9:89","nodeType":"YulIdentifier","src":"249:9:89"}],"functionName":{"name":"sub","nativeSrc":"236:3:89","nodeType":"YulIdentifier","src":"236:3:89"},"nativeSrc":"236:23:89","nodeType":"YulFunctionCall","src":"236:23:89"},{"kind":"number","nativeSrc":"261:2:89","nodeType":"YulLiteral","src":"261:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"232:3:89","nodeType":"YulIdentifier","src":"232:3:89"},"nativeSrc":"232:32:89","nodeType":"YulFunctionCall","src":"232:32:89"},"nativeSrc":"229:52:89","nodeType":"YulIf","src":"229:52:89"},{"nativeSrc":"290:36:89","nodeType":"YulVariableDeclaration","src":"290:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"316:9:89","nodeType":"YulIdentifier","src":"316:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"303:12:89","nodeType":"YulIdentifier","src":"303:12:89"},"nativeSrc":"303:23:89","nodeType":"YulFunctionCall","src":"303:23:89"},"variables":[{"name":"value","nativeSrc":"294:5:89","nodeType":"YulTypedName","src":"294:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"359:5:89","nodeType":"YulIdentifier","src":"359:5:89"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"335:23:89","nodeType":"YulIdentifier","src":"335:23:89"},"nativeSrc":"335:30:89","nodeType":"YulFunctionCall","src":"335:30:89"},"nativeSrc":"335:30:89","nodeType":"YulExpressionStatement","src":"335:30:89"},{"nativeSrc":"374:15:89","nodeType":"YulAssignment","src":"374:15:89","value":{"name":"value","nativeSrc":"384:5:89","nodeType":"YulIdentifier","src":"384:5:89"},"variableNames":[{"name":"value0","nativeSrc":"374:6:89","nodeType":"YulIdentifier","src":"374:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"150:245:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"185:9:89","nodeType":"YulTypedName","src":"185:9:89","type":""},{"name":"dataEnd","nativeSrc":"196:7:89","nodeType":"YulTypedName","src":"196:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"208:6:89","nodeType":"YulTypedName","src":"208:6:89","type":""}],"src":"150:245:89"},{"body":{"nativeSrc":"495:92:89","nodeType":"YulBlock","src":"495:92:89","statements":[{"nativeSrc":"505:26:89","nodeType":"YulAssignment","src":"505:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"517:9:89","nodeType":"YulIdentifier","src":"517:9:89"},{"kind":"number","nativeSrc":"528:2:89","nodeType":"YulLiteral","src":"528:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"513:3:89","nodeType":"YulIdentifier","src":"513:3:89"},"nativeSrc":"513:18:89","nodeType":"YulFunctionCall","src":"513:18:89"},"variableNames":[{"name":"tail","nativeSrc":"505:4:89","nodeType":"YulIdentifier","src":"505:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"547:9:89","nodeType":"YulIdentifier","src":"547:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"572:6:89","nodeType":"YulIdentifier","src":"572:6:89"}],"functionName":{"name":"iszero","nativeSrc":"565:6:89","nodeType":"YulIdentifier","src":"565:6:89"},"nativeSrc":"565:14:89","nodeType":"YulFunctionCall","src":"565:14:89"}],"functionName":{"name":"iszero","nativeSrc":"558:6:89","nodeType":"YulIdentifier","src":"558:6:89"},"nativeSrc":"558:22:89","nodeType":"YulFunctionCall","src":"558:22:89"}],"functionName":{"name":"mstore","nativeSrc":"540:6:89","nodeType":"YulIdentifier","src":"540:6:89"},"nativeSrc":"540:41:89","nodeType":"YulFunctionCall","src":"540:41:89"},"nativeSrc":"540:41:89","nodeType":"YulExpressionStatement","src":"540:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"400:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:89","nodeType":"YulTypedName","src":"464:9:89","type":""},{"name":"value0","nativeSrc":"475:6:89","nodeType":"YulTypedName","src":"475:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"486:4:89","nodeType":"YulTypedName","src":"486:4:89","type":""}],"src":"400:187:89"},{"body":{"nativeSrc":"658:184:89","nodeType":"YulBlock","src":"658:184:89","statements":[{"nativeSrc":"668:10:89","nodeType":"YulVariableDeclaration","src":"668:10:89","value":{"kind":"number","nativeSrc":"677:1:89","nodeType":"YulLiteral","src":"677:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"672:1:89","nodeType":"YulTypedName","src":"672:1:89","type":""}]},{"body":{"nativeSrc":"737:63:89","nodeType":"YulBlock","src":"737:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"762:3:89","nodeType":"YulIdentifier","src":"762:3:89"},{"name":"i","nativeSrc":"767:1:89","nodeType":"YulIdentifier","src":"767:1:89"}],"functionName":{"name":"add","nativeSrc":"758:3:89","nodeType":"YulIdentifier","src":"758:3:89"},"nativeSrc":"758:11:89","nodeType":"YulFunctionCall","src":"758:11:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"781:3:89","nodeType":"YulIdentifier","src":"781:3:89"},{"name":"i","nativeSrc":"786:1:89","nodeType":"YulIdentifier","src":"786:1:89"}],"functionName":{"name":"add","nativeSrc":"777:3:89","nodeType":"YulIdentifier","src":"777:3:89"},"nativeSrc":"777:11:89","nodeType":"YulFunctionCall","src":"777:11:89"}],"functionName":{"name":"mload","nativeSrc":"771:5:89","nodeType":"YulIdentifier","src":"771:5:89"},"nativeSrc":"771:18:89","nodeType":"YulFunctionCall","src":"771:18:89"}],"functionName":{"name":"mstore","nativeSrc":"751:6:89","nodeType":"YulIdentifier","src":"751:6:89"},"nativeSrc":"751:39:89","nodeType":"YulFunctionCall","src":"751:39:89"},"nativeSrc":"751:39:89","nodeType":"YulExpressionStatement","src":"751:39:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"698:1:89","nodeType":"YulIdentifier","src":"698:1:89"},{"name":"length","nativeSrc":"701:6:89","nodeType":"YulIdentifier","src":"701:6:89"}],"functionName":{"name":"lt","nativeSrc":"695:2:89","nodeType":"YulIdentifier","src":"695:2:89"},"nativeSrc":"695:13:89","nodeType":"YulFunctionCall","src":"695:13:89"},"nativeSrc":"687:113:89","nodeType":"YulForLoop","post":{"nativeSrc":"709:19:89","nodeType":"YulBlock","src":"709:19:89","statements":[{"nativeSrc":"711:15:89","nodeType":"YulAssignment","src":"711:15:89","value":{"arguments":[{"name":"i","nativeSrc":"720:1:89","nodeType":"YulIdentifier","src":"720:1:89"},{"kind":"number","nativeSrc":"723:2:89","nodeType":"YulLiteral","src":"723:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"716:3:89","nodeType":"YulIdentifier","src":"716:3:89"},"nativeSrc":"716:10:89","nodeType":"YulFunctionCall","src":"716:10:89"},"variableNames":[{"name":"i","nativeSrc":"711:1:89","nodeType":"YulIdentifier","src":"711:1:89"}]}]},"pre":{"nativeSrc":"691:3:89","nodeType":"YulBlock","src":"691:3:89","statements":[]},"src":"687:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"820:3:89","nodeType":"YulIdentifier","src":"820:3:89"},{"name":"length","nativeSrc":"825:6:89","nodeType":"YulIdentifier","src":"825:6:89"}],"functionName":{"name":"add","nativeSrc":"816:3:89","nodeType":"YulIdentifier","src":"816:3:89"},"nativeSrc":"816:16:89","nodeType":"YulFunctionCall","src":"816:16:89"},{"kind":"number","nativeSrc":"834:1:89","nodeType":"YulLiteral","src":"834:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"809:6:89","nodeType":"YulIdentifier","src":"809:6:89"},"nativeSrc":"809:27:89","nodeType":"YulFunctionCall","src":"809:27:89"},"nativeSrc":"809:27:89","nodeType":"YulExpressionStatement","src":"809:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"592:250:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"636:3:89","nodeType":"YulTypedName","src":"636:3:89","type":""},{"name":"dst","nativeSrc":"641:3:89","nodeType":"YulTypedName","src":"641:3:89","type":""},{"name":"length","nativeSrc":"646:6:89","nodeType":"YulTypedName","src":"646:6:89","type":""}],"src":"592:250:89"},{"body":{"nativeSrc":"897:221:89","nodeType":"YulBlock","src":"897:221:89","statements":[{"nativeSrc":"907:26:89","nodeType":"YulVariableDeclaration","src":"907:26:89","value":{"arguments":[{"name":"value","nativeSrc":"927:5:89","nodeType":"YulIdentifier","src":"927:5:89"}],"functionName":{"name":"mload","nativeSrc":"921:5:89","nodeType":"YulIdentifier","src":"921:5:89"},"nativeSrc":"921:12:89","nodeType":"YulFunctionCall","src":"921:12:89"},"variables":[{"name":"length","nativeSrc":"911:6:89","nodeType":"YulTypedName","src":"911:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"949:3:89","nodeType":"YulIdentifier","src":"949:3:89"},{"name":"length","nativeSrc":"954:6:89","nodeType":"YulIdentifier","src":"954:6:89"}],"functionName":{"name":"mstore","nativeSrc":"942:6:89","nodeType":"YulIdentifier","src":"942:6:89"},"nativeSrc":"942:19:89","nodeType":"YulFunctionCall","src":"942:19:89"},"nativeSrc":"942:19:89","nodeType":"YulExpressionStatement","src":"942:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1009:5:89","nodeType":"YulIdentifier","src":"1009:5:89"},{"kind":"number","nativeSrc":"1016:4:89","nodeType":"YulLiteral","src":"1016:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1005:3:89","nodeType":"YulIdentifier","src":"1005:3:89"},"nativeSrc":"1005:16:89","nodeType":"YulFunctionCall","src":"1005:16:89"},{"arguments":[{"name":"pos","nativeSrc":"1027:3:89","nodeType":"YulIdentifier","src":"1027:3:89"},{"kind":"number","nativeSrc":"1032:4:89","nodeType":"YulLiteral","src":"1032:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1023:3:89","nodeType":"YulIdentifier","src":"1023:3:89"},"nativeSrc":"1023:14:89","nodeType":"YulFunctionCall","src":"1023:14:89"},{"name":"length","nativeSrc":"1039:6:89","nodeType":"YulIdentifier","src":"1039:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"970:34:89","nodeType":"YulIdentifier","src":"970:34:89"},"nativeSrc":"970:76:89","nodeType":"YulFunctionCall","src":"970:76:89"},"nativeSrc":"970:76:89","nodeType":"YulExpressionStatement","src":"970:76:89"},{"nativeSrc":"1055:57:89","nodeType":"YulAssignment","src":"1055:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"1070:3:89","nodeType":"YulIdentifier","src":"1070:3:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1083:6:89","nodeType":"YulIdentifier","src":"1083:6:89"},{"kind":"number","nativeSrc":"1091:2:89","nodeType":"YulLiteral","src":"1091:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1079:3:89","nodeType":"YulIdentifier","src":"1079:3:89"},"nativeSrc":"1079:15:89","nodeType":"YulFunctionCall","src":"1079:15:89"},{"arguments":[{"kind":"number","nativeSrc":"1100:2:89","nodeType":"YulLiteral","src":"1100:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1096:3:89","nodeType":"YulIdentifier","src":"1096:3:89"},"nativeSrc":"1096:7:89","nodeType":"YulFunctionCall","src":"1096:7:89"}],"functionName":{"name":"and","nativeSrc":"1075:3:89","nodeType":"YulIdentifier","src":"1075:3:89"},"nativeSrc":"1075:29:89","nodeType":"YulFunctionCall","src":"1075:29:89"}],"functionName":{"name":"add","nativeSrc":"1066:3:89","nodeType":"YulIdentifier","src":"1066:3:89"},"nativeSrc":"1066:39:89","nodeType":"YulFunctionCall","src":"1066:39:89"},{"kind":"number","nativeSrc":"1107:4:89","nodeType":"YulLiteral","src":"1107:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1062:3:89","nodeType":"YulIdentifier","src":"1062:3:89"},"nativeSrc":"1062:50:89","nodeType":"YulFunctionCall","src":"1062:50:89"},"variableNames":[{"name":"end","nativeSrc":"1055:3:89","nodeType":"YulIdentifier","src":"1055:3:89"}]}]},"name":"abi_encode_string","nativeSrc":"847:271:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"874:5:89","nodeType":"YulTypedName","src":"874:5:89","type":""},{"name":"pos","nativeSrc":"881:3:89","nodeType":"YulTypedName","src":"881:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"889:3:89","nodeType":"YulTypedName","src":"889:3:89","type":""}],"src":"847:271:89"},{"body":{"nativeSrc":"1244:99:89","nodeType":"YulBlock","src":"1244:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1261:9:89","nodeType":"YulIdentifier","src":"1261:9:89"},{"kind":"number","nativeSrc":"1272:2:89","nodeType":"YulLiteral","src":"1272:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1254:6:89","nodeType":"YulIdentifier","src":"1254:6:89"},"nativeSrc":"1254:21:89","nodeType":"YulFunctionCall","src":"1254:21:89"},"nativeSrc":"1254:21:89","nodeType":"YulExpressionStatement","src":"1254:21:89"},{"nativeSrc":"1284:53:89","nodeType":"YulAssignment","src":"1284:53:89","value":{"arguments":[{"name":"value0","nativeSrc":"1310:6:89","nodeType":"YulIdentifier","src":"1310:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"1322:9:89","nodeType":"YulIdentifier","src":"1322:9:89"},{"kind":"number","nativeSrc":"1333:2:89","nodeType":"YulLiteral","src":"1333:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1318:3:89","nodeType":"YulIdentifier","src":"1318:3:89"},"nativeSrc":"1318:18:89","nodeType":"YulFunctionCall","src":"1318:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"1292:17:89","nodeType":"YulIdentifier","src":"1292:17:89"},"nativeSrc":"1292:45:89","nodeType":"YulFunctionCall","src":"1292:45:89"},"variableNames":[{"name":"tail","nativeSrc":"1284:4:89","nodeType":"YulIdentifier","src":"1284:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1123:220:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1213:9:89","nodeType":"YulTypedName","src":"1213:9:89","type":""},{"name":"value0","nativeSrc":"1224:6:89","nodeType":"YulTypedName","src":"1224:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1235:4:89","nodeType":"YulTypedName","src":"1235:4:89","type":""}],"src":"1123:220:89"},{"body":{"nativeSrc":"1418:156:89","nodeType":"YulBlock","src":"1418:156:89","statements":[{"body":{"nativeSrc":"1464:16:89","nodeType":"YulBlock","src":"1464:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1473:1:89","nodeType":"YulLiteral","src":"1473:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1476:1:89","nodeType":"YulLiteral","src":"1476:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1466:6:89","nodeType":"YulIdentifier","src":"1466:6:89"},"nativeSrc":"1466:12:89","nodeType":"YulFunctionCall","src":"1466:12:89"},"nativeSrc":"1466:12:89","nodeType":"YulExpressionStatement","src":"1466:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:89","nodeType":"YulIdentifier","src":"1439:7:89"},{"name":"headStart","nativeSrc":"1448:9:89","nodeType":"YulIdentifier","src":"1448:9:89"}],"functionName":{"name":"sub","nativeSrc":"1435:3:89","nodeType":"YulIdentifier","src":"1435:3:89"},"nativeSrc":"1435:23:89","nodeType":"YulFunctionCall","src":"1435:23:89"},{"kind":"number","nativeSrc":"1460:2:89","nodeType":"YulLiteral","src":"1460:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1431:3:89","nodeType":"YulIdentifier","src":"1431:3:89"},"nativeSrc":"1431:32:89","nodeType":"YulFunctionCall","src":"1431:32:89"},"nativeSrc":"1428:52:89","nodeType":"YulIf","src":"1428:52:89"},{"nativeSrc":"1489:14:89","nodeType":"YulVariableDeclaration","src":"1489:14:89","value":{"kind":"number","nativeSrc":"1502:1:89","nodeType":"YulLiteral","src":"1502:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1493:5:89","nodeType":"YulTypedName","src":"1493:5:89","type":""}]},{"nativeSrc":"1512:32:89","nodeType":"YulAssignment","src":"1512:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1534:9:89","nodeType":"YulIdentifier","src":"1534:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"1521:12:89","nodeType":"YulIdentifier","src":"1521:12:89"},"nativeSrc":"1521:23:89","nodeType":"YulFunctionCall","src":"1521:23:89"},"variableNames":[{"name":"value","nativeSrc":"1512:5:89","nodeType":"YulIdentifier","src":"1512:5:89"}]},{"nativeSrc":"1553:15:89","nodeType":"YulAssignment","src":"1553:15:89","value":{"name":"value","nativeSrc":"1563:5:89","nodeType":"YulIdentifier","src":"1563:5:89"},"variableNames":[{"name":"value0","nativeSrc":"1553:6:89","nodeType":"YulIdentifier","src":"1553:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1348:226:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1384:9:89","nodeType":"YulTypedName","src":"1384:9:89","type":""},{"name":"dataEnd","nativeSrc":"1395:7:89","nodeType":"YulTypedName","src":"1395:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1407:6:89","nodeType":"YulTypedName","src":"1407:6:89","type":""}],"src":"1348:226:89"},{"body":{"nativeSrc":"1680:102:89","nodeType":"YulBlock","src":"1680:102:89","statements":[{"nativeSrc":"1690:26:89","nodeType":"YulAssignment","src":"1690:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1702:9:89","nodeType":"YulIdentifier","src":"1702:9:89"},{"kind":"number","nativeSrc":"1713:2:89","nodeType":"YulLiteral","src":"1713:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1698:3:89","nodeType":"YulIdentifier","src":"1698:3:89"},"nativeSrc":"1698:18:89","nodeType":"YulFunctionCall","src":"1698:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1690:4:89","nodeType":"YulIdentifier","src":"1690:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1732:9:89","nodeType":"YulIdentifier","src":"1732:9:89"},{"arguments":[{"name":"value0","nativeSrc":"1747:6:89","nodeType":"YulIdentifier","src":"1747:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1763:3:89","nodeType":"YulLiteral","src":"1763:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1768:1:89","nodeType":"YulLiteral","src":"1768:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1759:3:89","nodeType":"YulIdentifier","src":"1759:3:89"},"nativeSrc":"1759:11:89","nodeType":"YulFunctionCall","src":"1759:11:89"},{"kind":"number","nativeSrc":"1772:1:89","nodeType":"YulLiteral","src":"1772:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1755:3:89","nodeType":"YulIdentifier","src":"1755:3:89"},"nativeSrc":"1755:19:89","nodeType":"YulFunctionCall","src":"1755:19:89"}],"functionName":{"name":"and","nativeSrc":"1743:3:89","nodeType":"YulIdentifier","src":"1743:3:89"},"nativeSrc":"1743:32:89","nodeType":"YulFunctionCall","src":"1743:32:89"}],"functionName":{"name":"mstore","nativeSrc":"1725:6:89","nodeType":"YulIdentifier","src":"1725:6:89"},"nativeSrc":"1725:51:89","nodeType":"YulFunctionCall","src":"1725:51:89"},"nativeSrc":"1725:51:89","nodeType":"YulExpressionStatement","src":"1725:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1579:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1649:9:89","nodeType":"YulTypedName","src":"1649:9:89","type":""},{"name":"value0","nativeSrc":"1660:6:89","nodeType":"YulTypedName","src":"1660:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1671:4:89","nodeType":"YulTypedName","src":"1671:4:89","type":""}],"src":"1579:203:89"},{"body":{"nativeSrc":"1832:86:89","nodeType":"YulBlock","src":"1832:86:89","statements":[{"body":{"nativeSrc":"1896:16:89","nodeType":"YulBlock","src":"1896:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1905:1:89","nodeType":"YulLiteral","src":"1905:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1908:1:89","nodeType":"YulLiteral","src":"1908:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1898:6:89","nodeType":"YulIdentifier","src":"1898:6:89"},"nativeSrc":"1898:12:89","nodeType":"YulFunctionCall","src":"1898:12:89"},"nativeSrc":"1898:12:89","nodeType":"YulExpressionStatement","src":"1898:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1855:5:89","nodeType":"YulIdentifier","src":"1855:5:89"},{"arguments":[{"name":"value","nativeSrc":"1866:5:89","nodeType":"YulIdentifier","src":"1866:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1881:3:89","nodeType":"YulLiteral","src":"1881:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"1886:1:89","nodeType":"YulLiteral","src":"1886:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1877:3:89","nodeType":"YulIdentifier","src":"1877:3:89"},"nativeSrc":"1877:11:89","nodeType":"YulFunctionCall","src":"1877:11:89"},{"kind":"number","nativeSrc":"1890:1:89","nodeType":"YulLiteral","src":"1890:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1873:3:89","nodeType":"YulIdentifier","src":"1873:3:89"},"nativeSrc":"1873:19:89","nodeType":"YulFunctionCall","src":"1873:19:89"}],"functionName":{"name":"and","nativeSrc":"1862:3:89","nodeType":"YulIdentifier","src":"1862:3:89"},"nativeSrc":"1862:31:89","nodeType":"YulFunctionCall","src":"1862:31:89"}],"functionName":{"name":"eq","nativeSrc":"1852:2:89","nodeType":"YulIdentifier","src":"1852:2:89"},"nativeSrc":"1852:42:89","nodeType":"YulFunctionCall","src":"1852:42:89"}],"functionName":{"name":"iszero","nativeSrc":"1845:6:89","nodeType":"YulIdentifier","src":"1845:6:89"},"nativeSrc":"1845:50:89","nodeType":"YulFunctionCall","src":"1845:50:89"},"nativeSrc":"1842:70:89","nodeType":"YulIf","src":"1842:70:89"}]},"name":"validator_revert_address","nativeSrc":"1787:131:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1821:5:89","nodeType":"YulTypedName","src":"1821:5:89","type":""}],"src":"1787:131:89"},{"body":{"nativeSrc":"2010:280:89","nodeType":"YulBlock","src":"2010:280:89","statements":[{"body":{"nativeSrc":"2056:16:89","nodeType":"YulBlock","src":"2056:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2065:1:89","nodeType":"YulLiteral","src":"2065:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2068:1:89","nodeType":"YulLiteral","src":"2068:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2058:6:89","nodeType":"YulIdentifier","src":"2058:6:89"},"nativeSrc":"2058:12:89","nodeType":"YulFunctionCall","src":"2058:12:89"},"nativeSrc":"2058:12:89","nodeType":"YulExpressionStatement","src":"2058:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2031:7:89","nodeType":"YulIdentifier","src":"2031:7:89"},{"name":"headStart","nativeSrc":"2040:9:89","nodeType":"YulIdentifier","src":"2040:9:89"}],"functionName":{"name":"sub","nativeSrc":"2027:3:89","nodeType":"YulIdentifier","src":"2027:3:89"},"nativeSrc":"2027:23:89","nodeType":"YulFunctionCall","src":"2027:23:89"},{"kind":"number","nativeSrc":"2052:2:89","nodeType":"YulLiteral","src":"2052:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2023:3:89","nodeType":"YulIdentifier","src":"2023:3:89"},"nativeSrc":"2023:32:89","nodeType":"YulFunctionCall","src":"2023:32:89"},"nativeSrc":"2020:52:89","nodeType":"YulIf","src":"2020:52:89"},{"nativeSrc":"2081:36:89","nodeType":"YulVariableDeclaration","src":"2081:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2107:9:89","nodeType":"YulIdentifier","src":"2107:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"2094:12:89","nodeType":"YulIdentifier","src":"2094:12:89"},"nativeSrc":"2094:23:89","nodeType":"YulFunctionCall","src":"2094:23:89"},"variables":[{"name":"value","nativeSrc":"2085:5:89","nodeType":"YulTypedName","src":"2085:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2151:5:89","nodeType":"YulIdentifier","src":"2151:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2126:24:89","nodeType":"YulIdentifier","src":"2126:24:89"},"nativeSrc":"2126:31:89","nodeType":"YulFunctionCall","src":"2126:31:89"},"nativeSrc":"2126:31:89","nodeType":"YulExpressionStatement","src":"2126:31:89"},{"nativeSrc":"2166:15:89","nodeType":"YulAssignment","src":"2166:15:89","value":{"name":"value","nativeSrc":"2176:5:89","nodeType":"YulIdentifier","src":"2176:5:89"},"variableNames":[{"name":"value0","nativeSrc":"2166:6:89","nodeType":"YulIdentifier","src":"2166:6:89"}]},{"nativeSrc":"2190:16:89","nodeType":"YulVariableDeclaration","src":"2190:16:89","value":{"kind":"number","nativeSrc":"2205:1:89","nodeType":"YulLiteral","src":"2205:1:89","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"2194:7:89","nodeType":"YulTypedName","src":"2194:7:89","type":""}]},{"nativeSrc":"2215:43:89","nodeType":"YulAssignment","src":"2215:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2243:9:89","nodeType":"YulIdentifier","src":"2243:9:89"},{"kind":"number","nativeSrc":"2254:2:89","nodeType":"YulLiteral","src":"2254:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2239:3:89","nodeType":"YulIdentifier","src":"2239:3:89"},"nativeSrc":"2239:18:89","nodeType":"YulFunctionCall","src":"2239:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"2226:12:89","nodeType":"YulIdentifier","src":"2226:12:89"},"nativeSrc":"2226:32:89","nodeType":"YulFunctionCall","src":"2226:32:89"},"variableNames":[{"name":"value_1","nativeSrc":"2215:7:89","nodeType":"YulIdentifier","src":"2215:7:89"}]},{"nativeSrc":"2267:17:89","nodeType":"YulAssignment","src":"2267:17:89","value":{"name":"value_1","nativeSrc":"2277:7:89","nodeType":"YulIdentifier","src":"2277:7:89"},"variableNames":[{"name":"value1","nativeSrc":"2267:6:89","nodeType":"YulIdentifier","src":"2267:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1923:367:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1968:9:89","nodeType":"YulTypedName","src":"1968:9:89","type":""},{"name":"dataEnd","nativeSrc":"1979:7:89","nodeType":"YulTypedName","src":"1979:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1991:6:89","nodeType":"YulTypedName","src":"1991:6:89","type":""},{"name":"value1","nativeSrc":"1999:6:89","nodeType":"YulTypedName","src":"1999:6:89","type":""}],"src":"1923:367:89"},{"body":{"nativeSrc":"2367:275:89","nodeType":"YulBlock","src":"2367:275:89","statements":[{"body":{"nativeSrc":"2416:16:89","nodeType":"YulBlock","src":"2416:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2425:1:89","nodeType":"YulLiteral","src":"2425:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2428:1:89","nodeType":"YulLiteral","src":"2428:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2418:6:89","nodeType":"YulIdentifier","src":"2418:6:89"},"nativeSrc":"2418:12:89","nodeType":"YulFunctionCall","src":"2418:12:89"},"nativeSrc":"2418:12:89","nodeType":"YulExpressionStatement","src":"2418:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2395:6:89","nodeType":"YulIdentifier","src":"2395:6:89"},{"kind":"number","nativeSrc":"2403:4:89","nodeType":"YulLiteral","src":"2403:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2391:3:89","nodeType":"YulIdentifier","src":"2391:3:89"},"nativeSrc":"2391:17:89","nodeType":"YulFunctionCall","src":"2391:17:89"},{"name":"end","nativeSrc":"2410:3:89","nodeType":"YulIdentifier","src":"2410:3:89"}],"functionName":{"name":"slt","nativeSrc":"2387:3:89","nodeType":"YulIdentifier","src":"2387:3:89"},"nativeSrc":"2387:27:89","nodeType":"YulFunctionCall","src":"2387:27:89"}],"functionName":{"name":"iszero","nativeSrc":"2380:6:89","nodeType":"YulIdentifier","src":"2380:6:89"},"nativeSrc":"2380:35:89","nodeType":"YulFunctionCall","src":"2380:35:89"},"nativeSrc":"2377:55:89","nodeType":"YulIf","src":"2377:55:89"},{"nativeSrc":"2441:30:89","nodeType":"YulAssignment","src":"2441:30:89","value":{"arguments":[{"name":"offset","nativeSrc":"2464:6:89","nodeType":"YulIdentifier","src":"2464:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"2451:12:89","nodeType":"YulIdentifier","src":"2451:12:89"},"nativeSrc":"2451:20:89","nodeType":"YulFunctionCall","src":"2451:20:89"},"variableNames":[{"name":"length","nativeSrc":"2441:6:89","nodeType":"YulIdentifier","src":"2441:6:89"}]},{"body":{"nativeSrc":"2514:16:89","nodeType":"YulBlock","src":"2514:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2523:1:89","nodeType":"YulLiteral","src":"2523:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2526:1:89","nodeType":"YulLiteral","src":"2526:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2516:6:89","nodeType":"YulIdentifier","src":"2516:6:89"},"nativeSrc":"2516:12:89","nodeType":"YulFunctionCall","src":"2516:12:89"},"nativeSrc":"2516:12:89","nodeType":"YulExpressionStatement","src":"2516:12:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2486:6:89","nodeType":"YulIdentifier","src":"2486:6:89"},{"kind":"number","nativeSrc":"2494:18:89","nodeType":"YulLiteral","src":"2494:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2483:2:89","nodeType":"YulIdentifier","src":"2483:2:89"},"nativeSrc":"2483:30:89","nodeType":"YulFunctionCall","src":"2483:30:89"},"nativeSrc":"2480:50:89","nodeType":"YulIf","src":"2480:50:89"},{"nativeSrc":"2539:29:89","nodeType":"YulAssignment","src":"2539:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"2555:6:89","nodeType":"YulIdentifier","src":"2555:6:89"},{"kind":"number","nativeSrc":"2563:4:89","nodeType":"YulLiteral","src":"2563:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2551:3:89","nodeType":"YulIdentifier","src":"2551:3:89"},"nativeSrc":"2551:17:89","nodeType":"YulFunctionCall","src":"2551:17:89"},"variableNames":[{"name":"arrayPos","nativeSrc":"2539:8:89","nodeType":"YulIdentifier","src":"2539:8:89"}]},{"body":{"nativeSrc":"2620:16:89","nodeType":"YulBlock","src":"2620:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2629:1:89","nodeType":"YulLiteral","src":"2629:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2632:1:89","nodeType":"YulLiteral","src":"2632:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2622:6:89","nodeType":"YulIdentifier","src":"2622:6:89"},"nativeSrc":"2622:12:89","nodeType":"YulFunctionCall","src":"2622:12:89"},"nativeSrc":"2622:12:89","nodeType":"YulExpressionStatement","src":"2622:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2591:6:89","nodeType":"YulIdentifier","src":"2591:6:89"},{"name":"length","nativeSrc":"2599:6:89","nodeType":"YulIdentifier","src":"2599:6:89"}],"functionName":{"name":"add","nativeSrc":"2587:3:89","nodeType":"YulIdentifier","src":"2587:3:89"},"nativeSrc":"2587:19:89","nodeType":"YulFunctionCall","src":"2587:19:89"},{"kind":"number","nativeSrc":"2608:4:89","nodeType":"YulLiteral","src":"2608:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2583:3:89","nodeType":"YulIdentifier","src":"2583:3:89"},"nativeSrc":"2583:30:89","nodeType":"YulFunctionCall","src":"2583:30:89"},{"name":"end","nativeSrc":"2615:3:89","nodeType":"YulIdentifier","src":"2615:3:89"}],"functionName":{"name":"gt","nativeSrc":"2580:2:89","nodeType":"YulIdentifier","src":"2580:2:89"},"nativeSrc":"2580:39:89","nodeType":"YulFunctionCall","src":"2580:39:89"},"nativeSrc":"2577:59:89","nodeType":"YulIf","src":"2577:59:89"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"2295:347:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2330:6:89","nodeType":"YulTypedName","src":"2330:6:89","type":""},{"name":"end","nativeSrc":"2338:3:89","nodeType":"YulTypedName","src":"2338:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2346:8:89","nodeType":"YulTypedName","src":"2346:8:89","type":""},{"name":"length","nativeSrc":"2356:6:89","nodeType":"YulTypedName","src":"2356:6:89","type":""}],"src":"2295:347:89"},{"body":{"nativeSrc":"2772:587:89","nodeType":"YulBlock","src":"2772:587:89","statements":[{"body":{"nativeSrc":"2818:16:89","nodeType":"YulBlock","src":"2818:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2827:1:89","nodeType":"YulLiteral","src":"2827:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2830:1:89","nodeType":"YulLiteral","src":"2830:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2820:6:89","nodeType":"YulIdentifier","src":"2820:6:89"},"nativeSrc":"2820:12:89","nodeType":"YulFunctionCall","src":"2820:12:89"},"nativeSrc":"2820:12:89","nodeType":"YulExpressionStatement","src":"2820:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2793:7:89","nodeType":"YulIdentifier","src":"2793:7:89"},{"name":"headStart","nativeSrc":"2802:9:89","nodeType":"YulIdentifier","src":"2802:9:89"}],"functionName":{"name":"sub","nativeSrc":"2789:3:89","nodeType":"YulIdentifier","src":"2789:3:89"},"nativeSrc":"2789:23:89","nodeType":"YulFunctionCall","src":"2789:23:89"},{"kind":"number","nativeSrc":"2814:2:89","nodeType":"YulLiteral","src":"2814:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2785:3:89","nodeType":"YulIdentifier","src":"2785:3:89"},"nativeSrc":"2785:32:89","nodeType":"YulFunctionCall","src":"2785:32:89"},"nativeSrc":"2782:52:89","nodeType":"YulIf","src":"2782:52:89"},{"nativeSrc":"2843:37:89","nodeType":"YulVariableDeclaration","src":"2843:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2870:9:89","nodeType":"YulIdentifier","src":"2870:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"2857:12:89","nodeType":"YulIdentifier","src":"2857:12:89"},"nativeSrc":"2857:23:89","nodeType":"YulFunctionCall","src":"2857:23:89"},"variables":[{"name":"offset","nativeSrc":"2847:6:89","nodeType":"YulTypedName","src":"2847:6:89","type":""}]},{"body":{"nativeSrc":"2923:16:89","nodeType":"YulBlock","src":"2923:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2932:1:89","nodeType":"YulLiteral","src":"2932:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2935:1:89","nodeType":"YulLiteral","src":"2935:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2925:6:89","nodeType":"YulIdentifier","src":"2925:6:89"},"nativeSrc":"2925:12:89","nodeType":"YulFunctionCall","src":"2925:12:89"},"nativeSrc":"2925:12:89","nodeType":"YulExpressionStatement","src":"2925:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2895:6:89","nodeType":"YulIdentifier","src":"2895:6:89"},{"kind":"number","nativeSrc":"2903:18:89","nodeType":"YulLiteral","src":"2903:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2892:2:89","nodeType":"YulIdentifier","src":"2892:2:89"},"nativeSrc":"2892:30:89","nodeType":"YulFunctionCall","src":"2892:30:89"},"nativeSrc":"2889:50:89","nodeType":"YulIf","src":"2889:50:89"},{"nativeSrc":"2948:84:89","nodeType":"YulVariableDeclaration","src":"2948:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3004:9:89","nodeType":"YulIdentifier","src":"3004:9:89"},{"name":"offset","nativeSrc":"3015:6:89","nodeType":"YulIdentifier","src":"3015:6:89"}],"functionName":{"name":"add","nativeSrc":"3000:3:89","nodeType":"YulIdentifier","src":"3000:3:89"},"nativeSrc":"3000:22:89","nodeType":"YulFunctionCall","src":"3000:22:89"},{"name":"dataEnd","nativeSrc":"3024:7:89","nodeType":"YulIdentifier","src":"3024:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"2974:25:89","nodeType":"YulIdentifier","src":"2974:25:89"},"nativeSrc":"2974:58:89","nodeType":"YulFunctionCall","src":"2974:58:89"},"variables":[{"name":"value0_1","nativeSrc":"2952:8:89","nodeType":"YulTypedName","src":"2952:8:89","type":""},{"name":"value1_1","nativeSrc":"2962:8:89","nodeType":"YulTypedName","src":"2962:8:89","type":""}]},{"nativeSrc":"3041:18:89","nodeType":"YulAssignment","src":"3041:18:89","value":{"name":"value0_1","nativeSrc":"3051:8:89","nodeType":"YulIdentifier","src":"3051:8:89"},"variableNames":[{"name":"value0","nativeSrc":"3041:6:89","nodeType":"YulIdentifier","src":"3041:6:89"}]},{"nativeSrc":"3068:18:89","nodeType":"YulAssignment","src":"3068:18:89","value":{"name":"value1_1","nativeSrc":"3078:8:89","nodeType":"YulIdentifier","src":"3078:8:89"},"variableNames":[{"name":"value1","nativeSrc":"3068:6:89","nodeType":"YulIdentifier","src":"3068:6:89"}]},{"nativeSrc":"3095:48:89","nodeType":"YulVariableDeclaration","src":"3095:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3128:9:89","nodeType":"YulIdentifier","src":"3128:9:89"},{"kind":"number","nativeSrc":"3139:2:89","nodeType":"YulLiteral","src":"3139:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3124:3:89","nodeType":"YulIdentifier","src":"3124:3:89"},"nativeSrc":"3124:18:89","nodeType":"YulFunctionCall","src":"3124:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3111:12:89","nodeType":"YulIdentifier","src":"3111:12:89"},"nativeSrc":"3111:32:89","nodeType":"YulFunctionCall","src":"3111:32:89"},"variables":[{"name":"offset_1","nativeSrc":"3099:8:89","nodeType":"YulTypedName","src":"3099:8:89","type":""}]},{"body":{"nativeSrc":"3188:16:89","nodeType":"YulBlock","src":"3188:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3197:1:89","nodeType":"YulLiteral","src":"3197:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3200:1:89","nodeType":"YulLiteral","src":"3200:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3190:6:89","nodeType":"YulIdentifier","src":"3190:6:89"},"nativeSrc":"3190:12:89","nodeType":"YulFunctionCall","src":"3190:12:89"},"nativeSrc":"3190:12:89","nodeType":"YulExpressionStatement","src":"3190:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3158:8:89","nodeType":"YulIdentifier","src":"3158:8:89"},{"kind":"number","nativeSrc":"3168:18:89","nodeType":"YulLiteral","src":"3168:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3155:2:89","nodeType":"YulIdentifier","src":"3155:2:89"},"nativeSrc":"3155:32:89","nodeType":"YulFunctionCall","src":"3155:32:89"},"nativeSrc":"3152:52:89","nodeType":"YulIf","src":"3152:52:89"},{"nativeSrc":"3213:86:89","nodeType":"YulVariableDeclaration","src":"3213:86:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3269:9:89","nodeType":"YulIdentifier","src":"3269:9:89"},{"name":"offset_1","nativeSrc":"3280:8:89","nodeType":"YulIdentifier","src":"3280:8:89"}],"functionName":{"name":"add","nativeSrc":"3265:3:89","nodeType":"YulIdentifier","src":"3265:3:89"},"nativeSrc":"3265:24:89","nodeType":"YulFunctionCall","src":"3265:24:89"},{"name":"dataEnd","nativeSrc":"3291:7:89","nodeType":"YulIdentifier","src":"3291:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3239:25:89","nodeType":"YulIdentifier","src":"3239:25:89"},"nativeSrc":"3239:60:89","nodeType":"YulFunctionCall","src":"3239:60:89"},"variables":[{"name":"value2_1","nativeSrc":"3217:8:89","nodeType":"YulTypedName","src":"3217:8:89","type":""},{"name":"value3_1","nativeSrc":"3227:8:89","nodeType":"YulTypedName","src":"3227:8:89","type":""}]},{"nativeSrc":"3308:18:89","nodeType":"YulAssignment","src":"3308:18:89","value":{"name":"value2_1","nativeSrc":"3318:8:89","nodeType":"YulIdentifier","src":"3318:8:89"},"variableNames":[{"name":"value2","nativeSrc":"3308:6:89","nodeType":"YulIdentifier","src":"3308:6:89"}]},{"nativeSrc":"3335:18:89","nodeType":"YulAssignment","src":"3335:18:89","value":{"name":"value3_1","nativeSrc":"3345:8:89","nodeType":"YulIdentifier","src":"3345:8:89"},"variableNames":[{"name":"value3","nativeSrc":"3335:6:89","nodeType":"YulIdentifier","src":"3335:6:89"}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"2647:712:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2714:9:89","nodeType":"YulTypedName","src":"2714:9:89","type":""},{"name":"dataEnd","nativeSrc":"2725:7:89","nodeType":"YulTypedName","src":"2725:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2737:6:89","nodeType":"YulTypedName","src":"2737:6:89","type":""},{"name":"value1","nativeSrc":"2745:6:89","nodeType":"YulTypedName","src":"2745:6:89","type":""},{"name":"value2","nativeSrc":"2753:6:89","nodeType":"YulTypedName","src":"2753:6:89","type":""},{"name":"value3","nativeSrc":"2761:6:89","nodeType":"YulTypedName","src":"2761:6:89","type":""}],"src":"2647:712:89"},{"body":{"nativeSrc":"3465:76:89","nodeType":"YulBlock","src":"3465:76:89","statements":[{"nativeSrc":"3475:26:89","nodeType":"YulAssignment","src":"3475:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3487:9:89","nodeType":"YulIdentifier","src":"3487:9:89"},{"kind":"number","nativeSrc":"3498:2:89","nodeType":"YulLiteral","src":"3498:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3483:3:89","nodeType":"YulIdentifier","src":"3483:3:89"},"nativeSrc":"3483:18:89","nodeType":"YulFunctionCall","src":"3483:18:89"},"variableNames":[{"name":"tail","nativeSrc":"3475:4:89","nodeType":"YulIdentifier","src":"3475:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3517:9:89","nodeType":"YulIdentifier","src":"3517:9:89"},{"name":"value0","nativeSrc":"3528:6:89","nodeType":"YulIdentifier","src":"3528:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3510:6:89","nodeType":"YulIdentifier","src":"3510:6:89"},"nativeSrc":"3510:25:89","nodeType":"YulFunctionCall","src":"3510:25:89"},"nativeSrc":"3510:25:89","nodeType":"YulExpressionStatement","src":"3510:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3364:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3434:9:89","nodeType":"YulTypedName","src":"3434:9:89","type":""},{"name":"value0","nativeSrc":"3445:6:89","nodeType":"YulTypedName","src":"3445:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3456:4:89","nodeType":"YulTypedName","src":"3456:4:89","type":""}],"src":"3364:177:89"},{"body":{"nativeSrc":"3633:280:89","nodeType":"YulBlock","src":"3633:280:89","statements":[{"body":{"nativeSrc":"3679:16:89","nodeType":"YulBlock","src":"3679:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3688:1:89","nodeType":"YulLiteral","src":"3688:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3691:1:89","nodeType":"YulLiteral","src":"3691:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3681:6:89","nodeType":"YulIdentifier","src":"3681:6:89"},"nativeSrc":"3681:12:89","nodeType":"YulFunctionCall","src":"3681:12:89"},"nativeSrc":"3681:12:89","nodeType":"YulExpressionStatement","src":"3681:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3654:7:89","nodeType":"YulIdentifier","src":"3654:7:89"},{"name":"headStart","nativeSrc":"3663:9:89","nodeType":"YulIdentifier","src":"3663:9:89"}],"functionName":{"name":"sub","nativeSrc":"3650:3:89","nodeType":"YulIdentifier","src":"3650:3:89"},"nativeSrc":"3650:23:89","nodeType":"YulFunctionCall","src":"3650:23:89"},{"kind":"number","nativeSrc":"3675:2:89","nodeType":"YulLiteral","src":"3675:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3646:3:89","nodeType":"YulIdentifier","src":"3646:3:89"},"nativeSrc":"3646:32:89","nodeType":"YulFunctionCall","src":"3646:32:89"},"nativeSrc":"3643:52:89","nodeType":"YulIf","src":"3643:52:89"},{"nativeSrc":"3704:14:89","nodeType":"YulVariableDeclaration","src":"3704:14:89","value":{"kind":"number","nativeSrc":"3717:1:89","nodeType":"YulLiteral","src":"3717:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3708:5:89","nodeType":"YulTypedName","src":"3708:5:89","type":""}]},{"nativeSrc":"3727:32:89","nodeType":"YulAssignment","src":"3727:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3749:9:89","nodeType":"YulIdentifier","src":"3749:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"3736:12:89","nodeType":"YulIdentifier","src":"3736:12:89"},"nativeSrc":"3736:23:89","nodeType":"YulFunctionCall","src":"3736:23:89"},"variableNames":[{"name":"value","nativeSrc":"3727:5:89","nodeType":"YulIdentifier","src":"3727:5:89"}]},{"nativeSrc":"3768:15:89","nodeType":"YulAssignment","src":"3768:15:89","value":{"name":"value","nativeSrc":"3778:5:89","nodeType":"YulIdentifier","src":"3778:5:89"},"variableNames":[{"name":"value0","nativeSrc":"3768:6:89","nodeType":"YulIdentifier","src":"3768:6:89"}]},{"nativeSrc":"3792:47:89","nodeType":"YulVariableDeclaration","src":"3792:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3824:9:89","nodeType":"YulIdentifier","src":"3824:9:89"},{"kind":"number","nativeSrc":"3835:2:89","nodeType":"YulLiteral","src":"3835:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3820:3:89","nodeType":"YulIdentifier","src":"3820:3:89"},"nativeSrc":"3820:18:89","nodeType":"YulFunctionCall","src":"3820:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"3807:12:89","nodeType":"YulIdentifier","src":"3807:12:89"},"nativeSrc":"3807:32:89","nodeType":"YulFunctionCall","src":"3807:32:89"},"variables":[{"name":"value_1","nativeSrc":"3796:7:89","nodeType":"YulTypedName","src":"3796:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"3873:7:89","nodeType":"YulIdentifier","src":"3873:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3848:24:89","nodeType":"YulIdentifier","src":"3848:24:89"},"nativeSrc":"3848:33:89","nodeType":"YulFunctionCall","src":"3848:33:89"},"nativeSrc":"3848:33:89","nodeType":"YulExpressionStatement","src":"3848:33:89"},{"nativeSrc":"3890:17:89","nodeType":"YulAssignment","src":"3890:17:89","value":{"name":"value_1","nativeSrc":"3900:7:89","nodeType":"YulIdentifier","src":"3900:7:89"},"variableNames":[{"name":"value1","nativeSrc":"3890:6:89","nodeType":"YulIdentifier","src":"3890:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nativeSrc":"3546:367:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3591:9:89","nodeType":"YulTypedName","src":"3591:9:89","type":""},{"name":"dataEnd","nativeSrc":"3602:7:89","nodeType":"YulTypedName","src":"3602:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3614:6:89","nodeType":"YulTypedName","src":"3614:6:89","type":""},{"name":"value1","nativeSrc":"3622:6:89","nodeType":"YulTypedName","src":"3622:6:89","type":""}],"src":"3546:367:89"},{"body":{"nativeSrc":"4022:404:89","nodeType":"YulBlock","src":"4022:404:89","statements":[{"body":{"nativeSrc":"4068:16:89","nodeType":"YulBlock","src":"4068:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4077:1:89","nodeType":"YulLiteral","src":"4077:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4080:1:89","nodeType":"YulLiteral","src":"4080:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4070:6:89","nodeType":"YulIdentifier","src":"4070:6:89"},"nativeSrc":"4070:12:89","nodeType":"YulFunctionCall","src":"4070:12:89"},"nativeSrc":"4070:12:89","nodeType":"YulExpressionStatement","src":"4070:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4043:7:89","nodeType":"YulIdentifier","src":"4043:7:89"},{"name":"headStart","nativeSrc":"4052:9:89","nodeType":"YulIdentifier","src":"4052:9:89"}],"functionName":{"name":"sub","nativeSrc":"4039:3:89","nodeType":"YulIdentifier","src":"4039:3:89"},"nativeSrc":"4039:23:89","nodeType":"YulFunctionCall","src":"4039:23:89"},{"kind":"number","nativeSrc":"4064:2:89","nodeType":"YulLiteral","src":"4064:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4035:3:89","nodeType":"YulIdentifier","src":"4035:3:89"},"nativeSrc":"4035:32:89","nodeType":"YulFunctionCall","src":"4035:32:89"},"nativeSrc":"4032:52:89","nodeType":"YulIf","src":"4032:52:89"},{"nativeSrc":"4093:36:89","nodeType":"YulVariableDeclaration","src":"4093:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4119:9:89","nodeType":"YulIdentifier","src":"4119:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"4106:12:89","nodeType":"YulIdentifier","src":"4106:12:89"},"nativeSrc":"4106:23:89","nodeType":"YulFunctionCall","src":"4106:23:89"},"variables":[{"name":"value","nativeSrc":"4097:5:89","nodeType":"YulTypedName","src":"4097:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4163:5:89","nodeType":"YulIdentifier","src":"4163:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4138:24:89","nodeType":"YulIdentifier","src":"4138:24:89"},"nativeSrc":"4138:31:89","nodeType":"YulFunctionCall","src":"4138:31:89"},"nativeSrc":"4138:31:89","nodeType":"YulExpressionStatement","src":"4138:31:89"},{"nativeSrc":"4178:15:89","nodeType":"YulAssignment","src":"4178:15:89","value":{"name":"value","nativeSrc":"4188:5:89","nodeType":"YulIdentifier","src":"4188:5:89"},"variableNames":[{"name":"value0","nativeSrc":"4178:6:89","nodeType":"YulIdentifier","src":"4178:6:89"}]},{"nativeSrc":"4202:47:89","nodeType":"YulVariableDeclaration","src":"4202:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4234:9:89","nodeType":"YulIdentifier","src":"4234:9:89"},{"kind":"number","nativeSrc":"4245:2:89","nodeType":"YulLiteral","src":"4245:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4230:3:89","nodeType":"YulIdentifier","src":"4230:3:89"},"nativeSrc":"4230:18:89","nodeType":"YulFunctionCall","src":"4230:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4217:12:89","nodeType":"YulIdentifier","src":"4217:12:89"},"nativeSrc":"4217:32:89","nodeType":"YulFunctionCall","src":"4217:32:89"},"variables":[{"name":"value_1","nativeSrc":"4206:7:89","nodeType":"YulTypedName","src":"4206:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"4283:7:89","nodeType":"YulIdentifier","src":"4283:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4258:24:89","nodeType":"YulIdentifier","src":"4258:24:89"},"nativeSrc":"4258:33:89","nodeType":"YulFunctionCall","src":"4258:33:89"},"nativeSrc":"4258:33:89","nodeType":"YulExpressionStatement","src":"4258:33:89"},{"nativeSrc":"4300:17:89","nodeType":"YulAssignment","src":"4300:17:89","value":{"name":"value_1","nativeSrc":"4310:7:89","nodeType":"YulIdentifier","src":"4310:7:89"},"variableNames":[{"name":"value1","nativeSrc":"4300:6:89","nodeType":"YulIdentifier","src":"4300:6:89"}]},{"nativeSrc":"4326:16:89","nodeType":"YulVariableDeclaration","src":"4326:16:89","value":{"kind":"number","nativeSrc":"4341:1:89","nodeType":"YulLiteral","src":"4341:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"4330:7:89","nodeType":"YulTypedName","src":"4330:7:89","type":""}]},{"nativeSrc":"4351:43:89","nodeType":"YulAssignment","src":"4351:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4379:9:89","nodeType":"YulIdentifier","src":"4379:9:89"},{"kind":"number","nativeSrc":"4390:2:89","nodeType":"YulLiteral","src":"4390:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4375:3:89","nodeType":"YulIdentifier","src":"4375:3:89"},"nativeSrc":"4375:18:89","nodeType":"YulFunctionCall","src":"4375:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4362:12:89","nodeType":"YulIdentifier","src":"4362:12:89"},"nativeSrc":"4362:32:89","nodeType":"YulFunctionCall","src":"4362:32:89"},"variableNames":[{"name":"value_2","nativeSrc":"4351:7:89","nodeType":"YulIdentifier","src":"4351:7:89"}]},{"nativeSrc":"4403:17:89","nodeType":"YulAssignment","src":"4403:17:89","value":{"name":"value_2","nativeSrc":"4413:7:89","nodeType":"YulIdentifier","src":"4413:7:89"},"variableNames":[{"name":"value2","nativeSrc":"4403:6:89","nodeType":"YulIdentifier","src":"4403:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3918:508:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3972:9:89","nodeType":"YulTypedName","src":"3972:9:89","type":""},{"name":"dataEnd","nativeSrc":"3983:7:89","nodeType":"YulTypedName","src":"3983:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3995:6:89","nodeType":"YulTypedName","src":"3995:6:89","type":""},{"name":"value1","nativeSrc":"4003:6:89","nodeType":"YulTypedName","src":"4003:6:89","type":""},{"name":"value2","nativeSrc":"4011:6:89","nodeType":"YulTypedName","src":"4011:6:89","type":""}],"src":"3918:508:89"},{"body":{"nativeSrc":"4554:102:89","nodeType":"YulBlock","src":"4554:102:89","statements":[{"nativeSrc":"4564:26:89","nodeType":"YulAssignment","src":"4564:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4576:9:89","nodeType":"YulIdentifier","src":"4576:9:89"},{"kind":"number","nativeSrc":"4587:2:89","nodeType":"YulLiteral","src":"4587:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4572:3:89","nodeType":"YulIdentifier","src":"4572:3:89"},"nativeSrc":"4572:18:89","nodeType":"YulFunctionCall","src":"4572:18:89"},"variableNames":[{"name":"tail","nativeSrc":"4564:4:89","nodeType":"YulIdentifier","src":"4564:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4606:9:89","nodeType":"YulIdentifier","src":"4606:9:89"},{"arguments":[{"name":"value0","nativeSrc":"4621:6:89","nodeType":"YulIdentifier","src":"4621:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4637:3:89","nodeType":"YulLiteral","src":"4637:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"4642:1:89","nodeType":"YulLiteral","src":"4642:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4633:3:89","nodeType":"YulIdentifier","src":"4633:3:89"},"nativeSrc":"4633:11:89","nodeType":"YulFunctionCall","src":"4633:11:89"},{"kind":"number","nativeSrc":"4646:1:89","nodeType":"YulLiteral","src":"4646:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4629:3:89","nodeType":"YulIdentifier","src":"4629:3:89"},"nativeSrc":"4629:19:89","nodeType":"YulFunctionCall","src":"4629:19:89"}],"functionName":{"name":"and","nativeSrc":"4617:3:89","nodeType":"YulIdentifier","src":"4617:3:89"},"nativeSrc":"4617:32:89","nodeType":"YulFunctionCall","src":"4617:32:89"}],"functionName":{"name":"mstore","nativeSrc":"4599:6:89","nodeType":"YulIdentifier","src":"4599:6:89"},"nativeSrc":"4599:51:89","nodeType":"YulFunctionCall","src":"4599:51:89"},"nativeSrc":"4599:51:89","nodeType":"YulExpressionStatement","src":"4599:51:89"}]},"name":"abi_encode_tuple_t_contract$_TacSAFactory_$19057__to_t_address__fromStack_reversed","nativeSrc":"4431:225:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4523:9:89","nodeType":"YulTypedName","src":"4523:9:89","type":""},{"name":"value0","nativeSrc":"4534:6:89","nodeType":"YulTypedName","src":"4534:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4545:4:89","nodeType":"YulTypedName","src":"4545:4:89","type":""}],"src":"4431:225:89"},{"body":{"nativeSrc":"4748:301:89","nodeType":"YulBlock","src":"4748:301:89","statements":[{"body":{"nativeSrc":"4794:16:89","nodeType":"YulBlock","src":"4794:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4803:1:89","nodeType":"YulLiteral","src":"4803:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"4806:1:89","nodeType":"YulLiteral","src":"4806:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4796:6:89","nodeType":"YulIdentifier","src":"4796:6:89"},"nativeSrc":"4796:12:89","nodeType":"YulFunctionCall","src":"4796:12:89"},"nativeSrc":"4796:12:89","nodeType":"YulExpressionStatement","src":"4796:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4769:7:89","nodeType":"YulIdentifier","src":"4769:7:89"},{"name":"headStart","nativeSrc":"4778:9:89","nodeType":"YulIdentifier","src":"4778:9:89"}],"functionName":{"name":"sub","nativeSrc":"4765:3:89","nodeType":"YulIdentifier","src":"4765:3:89"},"nativeSrc":"4765:23:89","nodeType":"YulFunctionCall","src":"4765:23:89"},{"kind":"number","nativeSrc":"4790:2:89","nodeType":"YulLiteral","src":"4790:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4761:3:89","nodeType":"YulIdentifier","src":"4761:3:89"},"nativeSrc":"4761:32:89","nodeType":"YulFunctionCall","src":"4761:32:89"},"nativeSrc":"4758:52:89","nodeType":"YulIf","src":"4758:52:89"},{"nativeSrc":"4819:36:89","nodeType":"YulVariableDeclaration","src":"4819:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"4845:9:89","nodeType":"YulIdentifier","src":"4845:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"4832:12:89","nodeType":"YulIdentifier","src":"4832:12:89"},"nativeSrc":"4832:23:89","nodeType":"YulFunctionCall","src":"4832:23:89"},"variables":[{"name":"value","nativeSrc":"4823:5:89","nodeType":"YulTypedName","src":"4823:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4889:5:89","nodeType":"YulIdentifier","src":"4889:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4864:24:89","nodeType":"YulIdentifier","src":"4864:24:89"},"nativeSrc":"4864:31:89","nodeType":"YulFunctionCall","src":"4864:31:89"},"nativeSrc":"4864:31:89","nodeType":"YulExpressionStatement","src":"4864:31:89"},{"nativeSrc":"4904:15:89","nodeType":"YulAssignment","src":"4904:15:89","value":{"name":"value","nativeSrc":"4914:5:89","nodeType":"YulIdentifier","src":"4914:5:89"},"variableNames":[{"name":"value0","nativeSrc":"4904:6:89","nodeType":"YulIdentifier","src":"4904:6:89"}]},{"nativeSrc":"4928:47:89","nodeType":"YulVariableDeclaration","src":"4928:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4960:9:89","nodeType":"YulIdentifier","src":"4960:9:89"},{"kind":"number","nativeSrc":"4971:2:89","nodeType":"YulLiteral","src":"4971:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4956:3:89","nodeType":"YulIdentifier","src":"4956:3:89"},"nativeSrc":"4956:18:89","nodeType":"YulFunctionCall","src":"4956:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"4943:12:89","nodeType":"YulIdentifier","src":"4943:12:89"},"nativeSrc":"4943:32:89","nodeType":"YulFunctionCall","src":"4943:32:89"},"variables":[{"name":"value_1","nativeSrc":"4932:7:89","nodeType":"YulTypedName","src":"4932:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"5009:7:89","nodeType":"YulIdentifier","src":"5009:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4984:24:89","nodeType":"YulIdentifier","src":"4984:24:89"},"nativeSrc":"4984:33:89","nodeType":"YulFunctionCall","src":"4984:33:89"},"nativeSrc":"4984:33:89","nodeType":"YulExpressionStatement","src":"4984:33:89"},{"nativeSrc":"5026:17:89","nodeType":"YulAssignment","src":"5026:17:89","value":{"name":"value_1","nativeSrc":"5036:7:89","nodeType":"YulIdentifier","src":"5036:7:89"},"variableNames":[{"name":"value1","nativeSrc":"5026:6:89","nodeType":"YulIdentifier","src":"5026:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"4661:388:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4706:9:89","nodeType":"YulTypedName","src":"4706:9:89","type":""},{"name":"dataEnd","nativeSrc":"4717:7:89","nodeType":"YulTypedName","src":"4717:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4729:6:89","nodeType":"YulTypedName","src":"4729:6:89","type":""},{"name":"value1","nativeSrc":"4737:6:89","nodeType":"YulTypedName","src":"4737:6:89","type":""}],"src":"4661:388:89"},{"body":{"nativeSrc":"5086:95:89","nodeType":"YulBlock","src":"5086:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5103:1:89","nodeType":"YulLiteral","src":"5103:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5110:3:89","nodeType":"YulLiteral","src":"5110:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"5115:10:89","nodeType":"YulLiteral","src":"5115:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5106:3:89","nodeType":"YulIdentifier","src":"5106:3:89"},"nativeSrc":"5106:20:89","nodeType":"YulFunctionCall","src":"5106:20:89"}],"functionName":{"name":"mstore","nativeSrc":"5096:6:89","nodeType":"YulIdentifier","src":"5096:6:89"},"nativeSrc":"5096:31:89","nodeType":"YulFunctionCall","src":"5096:31:89"},"nativeSrc":"5096:31:89","nodeType":"YulExpressionStatement","src":"5096:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5143:1:89","nodeType":"YulLiteral","src":"5143:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"5146:4:89","nodeType":"YulLiteral","src":"5146:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"5136:6:89","nodeType":"YulIdentifier","src":"5136:6:89"},"nativeSrc":"5136:15:89","nodeType":"YulFunctionCall","src":"5136:15:89"},"nativeSrc":"5136:15:89","nodeType":"YulExpressionStatement","src":"5136:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5167:1:89","nodeType":"YulLiteral","src":"5167:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"5170:4:89","nodeType":"YulLiteral","src":"5170:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5160:6:89","nodeType":"YulIdentifier","src":"5160:6:89"},"nativeSrc":"5160:15:89","nodeType":"YulFunctionCall","src":"5160:15:89"},"nativeSrc":"5160:15:89","nodeType":"YulExpressionStatement","src":"5160:15:89"}]},"name":"panic_error_0x41","nativeSrc":"5054:127:89","nodeType":"YulFunctionDefinition","src":"5054:127:89"},{"body":{"nativeSrc":"5232:207:89","nodeType":"YulBlock","src":"5232:207:89","statements":[{"nativeSrc":"5242:19:89","nodeType":"YulAssignment","src":"5242:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"5258:2:89","nodeType":"YulLiteral","src":"5258:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"5252:5:89","nodeType":"YulIdentifier","src":"5252:5:89"},"nativeSrc":"5252:9:89","nodeType":"YulFunctionCall","src":"5252:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"5242:6:89","nodeType":"YulIdentifier","src":"5242:6:89"}]},{"nativeSrc":"5270:35:89","nodeType":"YulVariableDeclaration","src":"5270:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"5292:6:89","nodeType":"YulIdentifier","src":"5292:6:89"},{"kind":"number","nativeSrc":"5300:4:89","nodeType":"YulLiteral","src":"5300:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5288:3:89","nodeType":"YulIdentifier","src":"5288:3:89"},"nativeSrc":"5288:17:89","nodeType":"YulFunctionCall","src":"5288:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"5274:10:89","nodeType":"YulTypedName","src":"5274:10:89","type":""}]},{"body":{"nativeSrc":"5380:22:89","nodeType":"YulBlock","src":"5380:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5382:16:89","nodeType":"YulIdentifier","src":"5382:16:89"},"nativeSrc":"5382:18:89","nodeType":"YulFunctionCall","src":"5382:18:89"},"nativeSrc":"5382:18:89","nodeType":"YulExpressionStatement","src":"5382:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5323:10:89","nodeType":"YulIdentifier","src":"5323:10:89"},{"kind":"number","nativeSrc":"5335:18:89","nodeType":"YulLiteral","src":"5335:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5320:2:89","nodeType":"YulIdentifier","src":"5320:2:89"},"nativeSrc":"5320:34:89","nodeType":"YulFunctionCall","src":"5320:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5359:10:89","nodeType":"YulIdentifier","src":"5359:10:89"},{"name":"memPtr","nativeSrc":"5371:6:89","nodeType":"YulIdentifier","src":"5371:6:89"}],"functionName":{"name":"lt","nativeSrc":"5356:2:89","nodeType":"YulIdentifier","src":"5356:2:89"},"nativeSrc":"5356:22:89","nodeType":"YulFunctionCall","src":"5356:22:89"}],"functionName":{"name":"or","nativeSrc":"5317:2:89","nodeType":"YulIdentifier","src":"5317:2:89"},"nativeSrc":"5317:62:89","nodeType":"YulFunctionCall","src":"5317:62:89"},"nativeSrc":"5314:88:89","nodeType":"YulIf","src":"5314:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5418:2:89","nodeType":"YulLiteral","src":"5418:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5422:10:89","nodeType":"YulIdentifier","src":"5422:10:89"}],"functionName":{"name":"mstore","nativeSrc":"5411:6:89","nodeType":"YulIdentifier","src":"5411:6:89"},"nativeSrc":"5411:22:89","nodeType":"YulFunctionCall","src":"5411:22:89"},"nativeSrc":"5411:22:89","nodeType":"YulExpressionStatement","src":"5411:22:89"}]},"name":"allocate_memory_2598","nativeSrc":"5186:253:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"5221:6:89","nodeType":"YulTypedName","src":"5221:6:89","type":""}],"src":"5186:253:89"},{"body":{"nativeSrc":"5490:207:89","nodeType":"YulBlock","src":"5490:207:89","statements":[{"nativeSrc":"5500:19:89","nodeType":"YulAssignment","src":"5500:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"5516:2:89","nodeType":"YulLiteral","src":"5516:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"5510:5:89","nodeType":"YulIdentifier","src":"5510:5:89"},"nativeSrc":"5510:9:89","nodeType":"YulFunctionCall","src":"5510:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"5500:6:89","nodeType":"YulIdentifier","src":"5500:6:89"}]},{"nativeSrc":"5528:35:89","nodeType":"YulVariableDeclaration","src":"5528:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"5550:6:89","nodeType":"YulIdentifier","src":"5550:6:89"},{"kind":"number","nativeSrc":"5558:4:89","nodeType":"YulLiteral","src":"5558:4:89","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"5546:3:89","nodeType":"YulIdentifier","src":"5546:3:89"},"nativeSrc":"5546:17:89","nodeType":"YulFunctionCall","src":"5546:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"5532:10:89","nodeType":"YulTypedName","src":"5532:10:89","type":""}]},{"body":{"nativeSrc":"5638:22:89","nodeType":"YulBlock","src":"5638:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5640:16:89","nodeType":"YulIdentifier","src":"5640:16:89"},"nativeSrc":"5640:18:89","nodeType":"YulFunctionCall","src":"5640:18:89"},"nativeSrc":"5640:18:89","nodeType":"YulExpressionStatement","src":"5640:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5581:10:89","nodeType":"YulIdentifier","src":"5581:10:89"},{"kind":"number","nativeSrc":"5593:18:89","nodeType":"YulLiteral","src":"5593:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5578:2:89","nodeType":"YulIdentifier","src":"5578:2:89"},"nativeSrc":"5578:34:89","nodeType":"YulFunctionCall","src":"5578:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5617:10:89","nodeType":"YulIdentifier","src":"5617:10:89"},{"name":"memPtr","nativeSrc":"5629:6:89","nodeType":"YulIdentifier","src":"5629:6:89"}],"functionName":{"name":"lt","nativeSrc":"5614:2:89","nodeType":"YulIdentifier","src":"5614:2:89"},"nativeSrc":"5614:22:89","nodeType":"YulFunctionCall","src":"5614:22:89"}],"functionName":{"name":"or","nativeSrc":"5575:2:89","nodeType":"YulIdentifier","src":"5575:2:89"},"nativeSrc":"5575:62:89","nodeType":"YulFunctionCall","src":"5575:62:89"},"nativeSrc":"5572:88:89","nodeType":"YulIf","src":"5572:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5676:2:89","nodeType":"YulLiteral","src":"5676:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5680:10:89","nodeType":"YulIdentifier","src":"5680:10:89"}],"functionName":{"name":"mstore","nativeSrc":"5669:6:89","nodeType":"YulIdentifier","src":"5669:6:89"},"nativeSrc":"5669:22:89","nodeType":"YulFunctionCall","src":"5669:22:89"},"nativeSrc":"5669:22:89","nodeType":"YulExpressionStatement","src":"5669:22:89"}]},"name":"allocate_memory_2600","nativeSrc":"5444:253:89","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"5479:6:89","nodeType":"YulTypedName","src":"5479:6:89","type":""}],"src":"5444:253:89"},{"body":{"nativeSrc":"5747:230:89","nodeType":"YulBlock","src":"5747:230:89","statements":[{"nativeSrc":"5757:19:89","nodeType":"YulAssignment","src":"5757:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"5773:2:89","nodeType":"YulLiteral","src":"5773:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"5767:5:89","nodeType":"YulIdentifier","src":"5767:5:89"},"nativeSrc":"5767:9:89","nodeType":"YulFunctionCall","src":"5767:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"5757:6:89","nodeType":"YulIdentifier","src":"5757:6:89"}]},{"nativeSrc":"5785:58:89","nodeType":"YulVariableDeclaration","src":"5785:58:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"5807:6:89","nodeType":"YulIdentifier","src":"5807:6:89"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"5823:4:89","nodeType":"YulIdentifier","src":"5823:4:89"},{"kind":"number","nativeSrc":"5829:2:89","nodeType":"YulLiteral","src":"5829:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5819:3:89","nodeType":"YulIdentifier","src":"5819:3:89"},"nativeSrc":"5819:13:89","nodeType":"YulFunctionCall","src":"5819:13:89"},{"arguments":[{"kind":"number","nativeSrc":"5838:2:89","nodeType":"YulLiteral","src":"5838:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5834:3:89","nodeType":"YulIdentifier","src":"5834:3:89"},"nativeSrc":"5834:7:89","nodeType":"YulFunctionCall","src":"5834:7:89"}],"functionName":{"name":"and","nativeSrc":"5815:3:89","nodeType":"YulIdentifier","src":"5815:3:89"},"nativeSrc":"5815:27:89","nodeType":"YulFunctionCall","src":"5815:27:89"}],"functionName":{"name":"add","nativeSrc":"5803:3:89","nodeType":"YulIdentifier","src":"5803:3:89"},"nativeSrc":"5803:40:89","nodeType":"YulFunctionCall","src":"5803:40:89"},"variables":[{"name":"newFreePtr","nativeSrc":"5789:10:89","nodeType":"YulTypedName","src":"5789:10:89","type":""}]},{"body":{"nativeSrc":"5918:22:89","nodeType":"YulBlock","src":"5918:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5920:16:89","nodeType":"YulIdentifier","src":"5920:16:89"},"nativeSrc":"5920:18:89","nodeType":"YulFunctionCall","src":"5920:18:89"},"nativeSrc":"5920:18:89","nodeType":"YulExpressionStatement","src":"5920:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5861:10:89","nodeType":"YulIdentifier","src":"5861:10:89"},{"kind":"number","nativeSrc":"5873:18:89","nodeType":"YulLiteral","src":"5873:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5858:2:89","nodeType":"YulIdentifier","src":"5858:2:89"},"nativeSrc":"5858:34:89","nodeType":"YulFunctionCall","src":"5858:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5897:10:89","nodeType":"YulIdentifier","src":"5897:10:89"},{"name":"memPtr","nativeSrc":"5909:6:89","nodeType":"YulIdentifier","src":"5909:6:89"}],"functionName":{"name":"lt","nativeSrc":"5894:2:89","nodeType":"YulIdentifier","src":"5894:2:89"},"nativeSrc":"5894:22:89","nodeType":"YulFunctionCall","src":"5894:22:89"}],"functionName":{"name":"or","nativeSrc":"5855:2:89","nodeType":"YulIdentifier","src":"5855:2:89"},"nativeSrc":"5855:62:89","nodeType":"YulFunctionCall","src":"5855:62:89"},"nativeSrc":"5852:88:89","nodeType":"YulIf","src":"5852:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5956:2:89","nodeType":"YulLiteral","src":"5956:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5960:10:89","nodeType":"YulIdentifier","src":"5960:10:89"}],"functionName":{"name":"mstore","nativeSrc":"5949:6:89","nodeType":"YulIdentifier","src":"5949:6:89"},"nativeSrc":"5949:22:89","nodeType":"YulFunctionCall","src":"5949:22:89"},"nativeSrc":"5949:22:89","nodeType":"YulExpressionStatement","src":"5949:22:89"}]},"name":"allocate_memory","nativeSrc":"5702:275:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"5727:4:89","nodeType":"YulTypedName","src":"5727:4:89","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"5736:6:89","nodeType":"YulTypedName","src":"5736:6:89","type":""}],"src":"5702:275:89"},{"body":{"nativeSrc":"6039:129:89","nodeType":"YulBlock","src":"6039:129:89","statements":[{"body":{"nativeSrc":"6083:22:89","nodeType":"YulBlock","src":"6083:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6085:16:89","nodeType":"YulIdentifier","src":"6085:16:89"},"nativeSrc":"6085:18:89","nodeType":"YulFunctionCall","src":"6085:18:89"},"nativeSrc":"6085:18:89","nodeType":"YulExpressionStatement","src":"6085:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6055:6:89","nodeType":"YulIdentifier","src":"6055:6:89"},{"kind":"number","nativeSrc":"6063:18:89","nodeType":"YulLiteral","src":"6063:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6052:2:89","nodeType":"YulIdentifier","src":"6052:2:89"},"nativeSrc":"6052:30:89","nodeType":"YulFunctionCall","src":"6052:30:89"},"nativeSrc":"6049:56:89","nodeType":"YulIf","src":"6049:56:89"},{"nativeSrc":"6114:48:89","nodeType":"YulAssignment","src":"6114:48:89","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6134:6:89","nodeType":"YulIdentifier","src":"6134:6:89"},{"kind":"number","nativeSrc":"6142:2:89","nodeType":"YulLiteral","src":"6142:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6130:3:89","nodeType":"YulIdentifier","src":"6130:3:89"},"nativeSrc":"6130:15:89","nodeType":"YulFunctionCall","src":"6130:15:89"},{"arguments":[{"kind":"number","nativeSrc":"6151:2:89","nodeType":"YulLiteral","src":"6151:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"6147:3:89","nodeType":"YulIdentifier","src":"6147:3:89"},"nativeSrc":"6147:7:89","nodeType":"YulFunctionCall","src":"6147:7:89"}],"functionName":{"name":"and","nativeSrc":"6126:3:89","nodeType":"YulIdentifier","src":"6126:3:89"},"nativeSrc":"6126:29:89","nodeType":"YulFunctionCall","src":"6126:29:89"},{"kind":"number","nativeSrc":"6157:4:89","nodeType":"YulLiteral","src":"6157:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6122:3:89","nodeType":"YulIdentifier","src":"6122:3:89"},"nativeSrc":"6122:40:89","nodeType":"YulFunctionCall","src":"6122:40:89"},"variableNames":[{"name":"size","nativeSrc":"6114:4:89","nodeType":"YulIdentifier","src":"6114:4:89"}]}]},"name":"array_allocation_size_bytes","nativeSrc":"5982:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"6019:6:89","nodeType":"YulTypedName","src":"6019:6:89","type":""}],"returnVariables":[{"name":"size","nativeSrc":"6030:4:89","nodeType":"YulTypedName","src":"6030:4:89","type":""}],"src":"5982:186:89"},{"body":{"nativeSrc":"6225:464:89","nodeType":"YulBlock","src":"6225:464:89","statements":[{"body":{"nativeSrc":"6274:16:89","nodeType":"YulBlock","src":"6274:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6283:1:89","nodeType":"YulLiteral","src":"6283:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6286:1:89","nodeType":"YulLiteral","src":"6286:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6276:6:89","nodeType":"YulIdentifier","src":"6276:6:89"},"nativeSrc":"6276:12:89","nodeType":"YulFunctionCall","src":"6276:12:89"},"nativeSrc":"6276:12:89","nodeType":"YulExpressionStatement","src":"6276:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6253:6:89","nodeType":"YulIdentifier","src":"6253:6:89"},{"kind":"number","nativeSrc":"6261:4:89","nodeType":"YulLiteral","src":"6261:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6249:3:89","nodeType":"YulIdentifier","src":"6249:3:89"},"nativeSrc":"6249:17:89","nodeType":"YulFunctionCall","src":"6249:17:89"},{"name":"end","nativeSrc":"6268:3:89","nodeType":"YulIdentifier","src":"6268:3:89"}],"functionName":{"name":"slt","nativeSrc":"6245:3:89","nodeType":"YulIdentifier","src":"6245:3:89"},"nativeSrc":"6245:27:89","nodeType":"YulFunctionCall","src":"6245:27:89"}],"functionName":{"name":"iszero","nativeSrc":"6238:6:89","nodeType":"YulIdentifier","src":"6238:6:89"},"nativeSrc":"6238:35:89","nodeType":"YulFunctionCall","src":"6238:35:89"},"nativeSrc":"6235:55:89","nodeType":"YulIf","src":"6235:55:89"},{"nativeSrc":"6299:34:89","nodeType":"YulVariableDeclaration","src":"6299:34:89","value":{"arguments":[{"name":"offset","nativeSrc":"6326:6:89","nodeType":"YulIdentifier","src":"6326:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"6313:12:89","nodeType":"YulIdentifier","src":"6313:12:89"},"nativeSrc":"6313:20:89","nodeType":"YulFunctionCall","src":"6313:20:89"},"variables":[{"name":"length","nativeSrc":"6303:6:89","nodeType":"YulTypedName","src":"6303:6:89","type":""}]},{"nativeSrc":"6342:28:89","nodeType":"YulVariableDeclaration","src":"6342:28:89","value":{"arguments":[{"name":"offset","nativeSrc":"6357:6:89","nodeType":"YulIdentifier","src":"6357:6:89"},{"kind":"number","nativeSrc":"6365:4:89","nodeType":"YulLiteral","src":"6365:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6353:3:89","nodeType":"YulIdentifier","src":"6353:3:89"},"nativeSrc":"6353:17:89","nodeType":"YulFunctionCall","src":"6353:17:89"},"variables":[{"name":"src","nativeSrc":"6346:3:89","nodeType":"YulTypedName","src":"6346:3:89","type":""}]},{"nativeSrc":"6379:16:89","nodeType":"YulVariableDeclaration","src":"6379:16:89","value":{"kind":"number","nativeSrc":"6394:1:89","nodeType":"YulLiteral","src":"6394:1:89","type":"","value":"0"},"variables":[{"name":"array_1","nativeSrc":"6383:7:89","nodeType":"YulTypedName","src":"6383:7:89","type":""}]},{"nativeSrc":"6404:63:89","nodeType":"YulAssignment","src":"6404:63:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6459:6:89","nodeType":"YulIdentifier","src":"6459:6:89"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"6431:27:89","nodeType":"YulIdentifier","src":"6431:27:89"},"nativeSrc":"6431:35:89","nodeType":"YulFunctionCall","src":"6431:35:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"6415:15:89","nodeType":"YulIdentifier","src":"6415:15:89"},"nativeSrc":"6415:52:89","nodeType":"YulFunctionCall","src":"6415:52:89"},"variableNames":[{"name":"array_1","nativeSrc":"6404:7:89","nodeType":"YulIdentifier","src":"6404:7:89"}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"6483:7:89","nodeType":"YulIdentifier","src":"6483:7:89"},{"name":"length","nativeSrc":"6492:6:89","nodeType":"YulIdentifier","src":"6492:6:89"}],"functionName":{"name":"mstore","nativeSrc":"6476:6:89","nodeType":"YulIdentifier","src":"6476:6:89"},"nativeSrc":"6476:23:89","nodeType":"YulFunctionCall","src":"6476:23:89"},"nativeSrc":"6476:23:89","nodeType":"YulExpressionStatement","src":"6476:23:89"},{"body":{"nativeSrc":"6537:16:89","nodeType":"YulBlock","src":"6537:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6546:1:89","nodeType":"YulLiteral","src":"6546:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6549:1:89","nodeType":"YulLiteral","src":"6549:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6539:6:89","nodeType":"YulIdentifier","src":"6539:6:89"},"nativeSrc":"6539:12:89","nodeType":"YulFunctionCall","src":"6539:12:89"},"nativeSrc":"6539:12:89","nodeType":"YulExpressionStatement","src":"6539:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6518:3:89","nodeType":"YulIdentifier","src":"6518:3:89"},{"name":"length","nativeSrc":"6523:6:89","nodeType":"YulIdentifier","src":"6523:6:89"}],"functionName":{"name":"add","nativeSrc":"6514:3:89","nodeType":"YulIdentifier","src":"6514:3:89"},"nativeSrc":"6514:16:89","nodeType":"YulFunctionCall","src":"6514:16:89"},{"name":"end","nativeSrc":"6532:3:89","nodeType":"YulIdentifier","src":"6532:3:89"}],"functionName":{"name":"gt","nativeSrc":"6511:2:89","nodeType":"YulIdentifier","src":"6511:2:89"},"nativeSrc":"6511:25:89","nodeType":"YulFunctionCall","src":"6511:25:89"},"nativeSrc":"6508:45:89","nodeType":"YulIf","src":"6508:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"6579:7:89","nodeType":"YulIdentifier","src":"6579:7:89"},{"kind":"number","nativeSrc":"6588:4:89","nodeType":"YulLiteral","src":"6588:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6575:3:89","nodeType":"YulIdentifier","src":"6575:3:89"},"nativeSrc":"6575:18:89","nodeType":"YulFunctionCall","src":"6575:18:89"},{"name":"src","nativeSrc":"6595:3:89","nodeType":"YulIdentifier","src":"6595:3:89"},{"name":"length","nativeSrc":"6600:6:89","nodeType":"YulIdentifier","src":"6600:6:89"}],"functionName":{"name":"calldatacopy","nativeSrc":"6562:12:89","nodeType":"YulIdentifier","src":"6562:12:89"},"nativeSrc":"6562:45:89","nodeType":"YulFunctionCall","src":"6562:45:89"},"nativeSrc":"6562:45:89","nodeType":"YulExpressionStatement","src":"6562:45:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"6631:7:89","nodeType":"YulIdentifier","src":"6631:7:89"},{"name":"length","nativeSrc":"6640:6:89","nodeType":"YulIdentifier","src":"6640:6:89"}],"functionName":{"name":"add","nativeSrc":"6627:3:89","nodeType":"YulIdentifier","src":"6627:3:89"},"nativeSrc":"6627:20:89","nodeType":"YulFunctionCall","src":"6627:20:89"},{"kind":"number","nativeSrc":"6649:4:89","nodeType":"YulLiteral","src":"6649:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6623:3:89","nodeType":"YulIdentifier","src":"6623:3:89"},"nativeSrc":"6623:31:89","nodeType":"YulFunctionCall","src":"6623:31:89"},{"kind":"number","nativeSrc":"6656:1:89","nodeType":"YulLiteral","src":"6656:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6616:6:89","nodeType":"YulIdentifier","src":"6616:6:89"},"nativeSrc":"6616:42:89","nodeType":"YulFunctionCall","src":"6616:42:89"},"nativeSrc":"6616:42:89","nodeType":"YulExpressionStatement","src":"6616:42:89"},{"nativeSrc":"6667:16:89","nodeType":"YulAssignment","src":"6667:16:89","value":{"name":"array_1","nativeSrc":"6676:7:89","nodeType":"YulIdentifier","src":"6676:7:89"},"variableNames":[{"name":"array","nativeSrc":"6667:5:89","nodeType":"YulIdentifier","src":"6667:5:89"}]}]},"name":"abi_decode_bytes","nativeSrc":"6173:516:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6199:6:89","nodeType":"YulTypedName","src":"6199:6:89","type":""},{"name":"end","nativeSrc":"6207:3:89","nodeType":"YulTypedName","src":"6207:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6215:5:89","nodeType":"YulTypedName","src":"6215:5:89","type":""}],"src":"6173:516:89"},{"body":{"nativeSrc":"6790:359:89","nodeType":"YulBlock","src":"6790:359:89","statements":[{"body":{"nativeSrc":"6836:16:89","nodeType":"YulBlock","src":"6836:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6845:1:89","nodeType":"YulLiteral","src":"6845:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"6848:1:89","nodeType":"YulLiteral","src":"6848:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6838:6:89","nodeType":"YulIdentifier","src":"6838:6:89"},"nativeSrc":"6838:12:89","nodeType":"YulFunctionCall","src":"6838:12:89"},"nativeSrc":"6838:12:89","nodeType":"YulExpressionStatement","src":"6838:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6811:7:89","nodeType":"YulIdentifier","src":"6811:7:89"},{"name":"headStart","nativeSrc":"6820:9:89","nodeType":"YulIdentifier","src":"6820:9:89"}],"functionName":{"name":"sub","nativeSrc":"6807:3:89","nodeType":"YulIdentifier","src":"6807:3:89"},"nativeSrc":"6807:23:89","nodeType":"YulFunctionCall","src":"6807:23:89"},{"kind":"number","nativeSrc":"6832:2:89","nodeType":"YulLiteral","src":"6832:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6803:3:89","nodeType":"YulIdentifier","src":"6803:3:89"},"nativeSrc":"6803:32:89","nodeType":"YulFunctionCall","src":"6803:32:89"},"nativeSrc":"6800:52:89","nodeType":"YulIf","src":"6800:52:89"},{"nativeSrc":"6861:36:89","nodeType":"YulVariableDeclaration","src":"6861:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"6887:9:89","nodeType":"YulIdentifier","src":"6887:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"6874:12:89","nodeType":"YulIdentifier","src":"6874:12:89"},"nativeSrc":"6874:23:89","nodeType":"YulFunctionCall","src":"6874:23:89"},"variables":[{"name":"value","nativeSrc":"6865:5:89","nodeType":"YulTypedName","src":"6865:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6931:5:89","nodeType":"YulIdentifier","src":"6931:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6906:24:89","nodeType":"YulIdentifier","src":"6906:24:89"},"nativeSrc":"6906:31:89","nodeType":"YulFunctionCall","src":"6906:31:89"},"nativeSrc":"6906:31:89","nodeType":"YulExpressionStatement","src":"6906:31:89"},{"nativeSrc":"6946:15:89","nodeType":"YulAssignment","src":"6946:15:89","value":{"name":"value","nativeSrc":"6956:5:89","nodeType":"YulIdentifier","src":"6956:5:89"},"variableNames":[{"name":"value0","nativeSrc":"6946:6:89","nodeType":"YulIdentifier","src":"6946:6:89"}]},{"nativeSrc":"6970:46:89","nodeType":"YulVariableDeclaration","src":"6970:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7001:9:89","nodeType":"YulIdentifier","src":"7001:9:89"},{"kind":"number","nativeSrc":"7012:2:89","nodeType":"YulLiteral","src":"7012:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6997:3:89","nodeType":"YulIdentifier","src":"6997:3:89"},"nativeSrc":"6997:18:89","nodeType":"YulFunctionCall","src":"6997:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"6984:12:89","nodeType":"YulIdentifier","src":"6984:12:89"},"nativeSrc":"6984:32:89","nodeType":"YulFunctionCall","src":"6984:32:89"},"variables":[{"name":"offset","nativeSrc":"6974:6:89","nodeType":"YulTypedName","src":"6974:6:89","type":""}]},{"body":{"nativeSrc":"7059:16:89","nodeType":"YulBlock","src":"7059:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7068:1:89","nodeType":"YulLiteral","src":"7068:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7071:1:89","nodeType":"YulLiteral","src":"7071:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7061:6:89","nodeType":"YulIdentifier","src":"7061:6:89"},"nativeSrc":"7061:12:89","nodeType":"YulFunctionCall","src":"7061:12:89"},"nativeSrc":"7061:12:89","nodeType":"YulExpressionStatement","src":"7061:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7031:6:89","nodeType":"YulIdentifier","src":"7031:6:89"},{"kind":"number","nativeSrc":"7039:18:89","nodeType":"YulLiteral","src":"7039:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7028:2:89","nodeType":"YulIdentifier","src":"7028:2:89"},"nativeSrc":"7028:30:89","nodeType":"YulFunctionCall","src":"7028:30:89"},"nativeSrc":"7025:50:89","nodeType":"YulIf","src":"7025:50:89"},{"nativeSrc":"7084:59:89","nodeType":"YulAssignment","src":"7084:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7115:9:89","nodeType":"YulIdentifier","src":"7115:9:89"},{"name":"offset","nativeSrc":"7126:6:89","nodeType":"YulIdentifier","src":"7126:6:89"}],"functionName":{"name":"add","nativeSrc":"7111:3:89","nodeType":"YulIdentifier","src":"7111:3:89"},"nativeSrc":"7111:22:89","nodeType":"YulFunctionCall","src":"7111:22:89"},{"name":"dataEnd","nativeSrc":"7135:7:89","nodeType":"YulIdentifier","src":"7135:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"7094:16:89","nodeType":"YulIdentifier","src":"7094:16:89"},"nativeSrc":"7094:49:89","nodeType":"YulFunctionCall","src":"7094:49:89"},"variableNames":[{"name":"value1","nativeSrc":"7084:6:89","nodeType":"YulIdentifier","src":"7084:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"6694:455:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6748:9:89","nodeType":"YulTypedName","src":"6748:9:89","type":""},{"name":"dataEnd","nativeSrc":"6759:7:89","nodeType":"YulTypedName","src":"6759:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6771:6:89","nodeType":"YulTypedName","src":"6771:6:89","type":""},{"name":"value1","nativeSrc":"6779:6:89","nodeType":"YulTypedName","src":"6779:6:89","type":""}],"src":"6694:455:89"},{"body":{"nativeSrc":"7255:76:89","nodeType":"YulBlock","src":"7255:76:89","statements":[{"nativeSrc":"7265:26:89","nodeType":"YulAssignment","src":"7265:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7277:9:89","nodeType":"YulIdentifier","src":"7277:9:89"},{"kind":"number","nativeSrc":"7288:2:89","nodeType":"YulLiteral","src":"7288:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7273:3:89","nodeType":"YulIdentifier","src":"7273:3:89"},"nativeSrc":"7273:18:89","nodeType":"YulFunctionCall","src":"7273:18:89"},"variableNames":[{"name":"tail","nativeSrc":"7265:4:89","nodeType":"YulIdentifier","src":"7265:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7307:9:89","nodeType":"YulIdentifier","src":"7307:9:89"},{"name":"value0","nativeSrc":"7318:6:89","nodeType":"YulIdentifier","src":"7318:6:89"}],"functionName":{"name":"mstore","nativeSrc":"7300:6:89","nodeType":"YulIdentifier","src":"7300:6:89"},"nativeSrc":"7300:25:89","nodeType":"YulFunctionCall","src":"7300:25:89"},"nativeSrc":"7300:25:89","nodeType":"YulExpressionStatement","src":"7300:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"7154:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7224:9:89","nodeType":"YulTypedName","src":"7224:9:89","type":""},{"name":"value0","nativeSrc":"7235:6:89","nodeType":"YulTypedName","src":"7235:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7246:4:89","nodeType":"YulTypedName","src":"7246:4:89","type":""}],"src":"7154:177:89"},{"body":{"nativeSrc":"7406:177:89","nodeType":"YulBlock","src":"7406:177:89","statements":[{"body":{"nativeSrc":"7452:16:89","nodeType":"YulBlock","src":"7452:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7461:1:89","nodeType":"YulLiteral","src":"7461:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7464:1:89","nodeType":"YulLiteral","src":"7464:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7454:6:89","nodeType":"YulIdentifier","src":"7454:6:89"},"nativeSrc":"7454:12:89","nodeType":"YulFunctionCall","src":"7454:12:89"},"nativeSrc":"7454:12:89","nodeType":"YulExpressionStatement","src":"7454:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7427:7:89","nodeType":"YulIdentifier","src":"7427:7:89"},{"name":"headStart","nativeSrc":"7436:9:89","nodeType":"YulIdentifier","src":"7436:9:89"}],"functionName":{"name":"sub","nativeSrc":"7423:3:89","nodeType":"YulIdentifier","src":"7423:3:89"},"nativeSrc":"7423:23:89","nodeType":"YulFunctionCall","src":"7423:23:89"},{"kind":"number","nativeSrc":"7448:2:89","nodeType":"YulLiteral","src":"7448:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7419:3:89","nodeType":"YulIdentifier","src":"7419:3:89"},"nativeSrc":"7419:32:89","nodeType":"YulFunctionCall","src":"7419:32:89"},"nativeSrc":"7416:52:89","nodeType":"YulIf","src":"7416:52:89"},{"nativeSrc":"7477:36:89","nodeType":"YulVariableDeclaration","src":"7477:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7503:9:89","nodeType":"YulIdentifier","src":"7503:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"7490:12:89","nodeType":"YulIdentifier","src":"7490:12:89"},"nativeSrc":"7490:23:89","nodeType":"YulFunctionCall","src":"7490:23:89"},"variables":[{"name":"value","nativeSrc":"7481:5:89","nodeType":"YulTypedName","src":"7481:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7547:5:89","nodeType":"YulIdentifier","src":"7547:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7522:24:89","nodeType":"YulIdentifier","src":"7522:24:89"},"nativeSrc":"7522:31:89","nodeType":"YulFunctionCall","src":"7522:31:89"},"nativeSrc":"7522:31:89","nodeType":"YulExpressionStatement","src":"7522:31:89"},{"nativeSrc":"7562:15:89","nodeType":"YulAssignment","src":"7562:15:89","value":{"name":"value","nativeSrc":"7572:5:89","nodeType":"YulIdentifier","src":"7572:5:89"},"variableNames":[{"name":"value0","nativeSrc":"7562:6:89","nodeType":"YulIdentifier","src":"7562:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7336:247:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7372:9:89","nodeType":"YulTypedName","src":"7372:9:89","type":""},{"name":"dataEnd","nativeSrc":"7383:7:89","nodeType":"YulTypedName","src":"7383:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7395:6:89","nodeType":"YulTypedName","src":"7395:6:89","type":""}],"src":"7336:247:89"},{"body":{"nativeSrc":"7630:76:89","nodeType":"YulBlock","src":"7630:76:89","statements":[{"body":{"nativeSrc":"7684:16:89","nodeType":"YulBlock","src":"7684:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7693:1:89","nodeType":"YulLiteral","src":"7693:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7696:1:89","nodeType":"YulLiteral","src":"7696:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7686:6:89","nodeType":"YulIdentifier","src":"7686:6:89"},"nativeSrc":"7686:12:89","nodeType":"YulFunctionCall","src":"7686:12:89"},"nativeSrc":"7686:12:89","nodeType":"YulExpressionStatement","src":"7686:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7653:5:89","nodeType":"YulIdentifier","src":"7653:5:89"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7674:5:89","nodeType":"YulIdentifier","src":"7674:5:89"}],"functionName":{"name":"iszero","nativeSrc":"7667:6:89","nodeType":"YulIdentifier","src":"7667:6:89"},"nativeSrc":"7667:13:89","nodeType":"YulFunctionCall","src":"7667:13:89"}],"functionName":{"name":"iszero","nativeSrc":"7660:6:89","nodeType":"YulIdentifier","src":"7660:6:89"},"nativeSrc":"7660:21:89","nodeType":"YulFunctionCall","src":"7660:21:89"}],"functionName":{"name":"eq","nativeSrc":"7650:2:89","nodeType":"YulIdentifier","src":"7650:2:89"},"nativeSrc":"7650:32:89","nodeType":"YulFunctionCall","src":"7650:32:89"}],"functionName":{"name":"iszero","nativeSrc":"7643:6:89","nodeType":"YulIdentifier","src":"7643:6:89"},"nativeSrc":"7643:40:89","nodeType":"YulFunctionCall","src":"7643:40:89"},"nativeSrc":"7640:60:89","nodeType":"YulIf","src":"7640:60:89"}]},"name":"validator_revert_bool","nativeSrc":"7588:118:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7619:5:89","nodeType":"YulTypedName","src":"7619:5:89","type":""}],"src":"7588:118:89"},{"body":{"nativeSrc":"7795:298:89","nodeType":"YulBlock","src":"7795:298:89","statements":[{"body":{"nativeSrc":"7841:16:89","nodeType":"YulBlock","src":"7841:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7850:1:89","nodeType":"YulLiteral","src":"7850:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"7853:1:89","nodeType":"YulLiteral","src":"7853:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7843:6:89","nodeType":"YulIdentifier","src":"7843:6:89"},"nativeSrc":"7843:12:89","nodeType":"YulFunctionCall","src":"7843:12:89"},"nativeSrc":"7843:12:89","nodeType":"YulExpressionStatement","src":"7843:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7816:7:89","nodeType":"YulIdentifier","src":"7816:7:89"},{"name":"headStart","nativeSrc":"7825:9:89","nodeType":"YulIdentifier","src":"7825:9:89"}],"functionName":{"name":"sub","nativeSrc":"7812:3:89","nodeType":"YulIdentifier","src":"7812:3:89"},"nativeSrc":"7812:23:89","nodeType":"YulFunctionCall","src":"7812:23:89"},{"kind":"number","nativeSrc":"7837:2:89","nodeType":"YulLiteral","src":"7837:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7808:3:89","nodeType":"YulIdentifier","src":"7808:3:89"},"nativeSrc":"7808:32:89","nodeType":"YulFunctionCall","src":"7808:32:89"},"nativeSrc":"7805:52:89","nodeType":"YulIf","src":"7805:52:89"},{"nativeSrc":"7866:36:89","nodeType":"YulVariableDeclaration","src":"7866:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"7892:9:89","nodeType":"YulIdentifier","src":"7892:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"7879:12:89","nodeType":"YulIdentifier","src":"7879:12:89"},"nativeSrc":"7879:23:89","nodeType":"YulFunctionCall","src":"7879:23:89"},"variables":[{"name":"value","nativeSrc":"7870:5:89","nodeType":"YulTypedName","src":"7870:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7936:5:89","nodeType":"YulIdentifier","src":"7936:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7911:24:89","nodeType":"YulIdentifier","src":"7911:24:89"},"nativeSrc":"7911:31:89","nodeType":"YulFunctionCall","src":"7911:31:89"},"nativeSrc":"7911:31:89","nodeType":"YulExpressionStatement","src":"7911:31:89"},{"nativeSrc":"7951:15:89","nodeType":"YulAssignment","src":"7951:15:89","value":{"name":"value","nativeSrc":"7961:5:89","nodeType":"YulIdentifier","src":"7961:5:89"},"variableNames":[{"name":"value0","nativeSrc":"7951:6:89","nodeType":"YulIdentifier","src":"7951:6:89"}]},{"nativeSrc":"7975:47:89","nodeType":"YulVariableDeclaration","src":"7975:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8007:9:89","nodeType":"YulIdentifier","src":"8007:9:89"},{"kind":"number","nativeSrc":"8018:2:89","nodeType":"YulLiteral","src":"8018:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8003:3:89","nodeType":"YulIdentifier","src":"8003:3:89"},"nativeSrc":"8003:18:89","nodeType":"YulFunctionCall","src":"8003:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"7990:12:89","nodeType":"YulIdentifier","src":"7990:12:89"},"nativeSrc":"7990:32:89","nodeType":"YulFunctionCall","src":"7990:32:89"},"variables":[{"name":"value_1","nativeSrc":"7979:7:89","nodeType":"YulTypedName","src":"7979:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"8053:7:89","nodeType":"YulIdentifier","src":"8053:7:89"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"8031:21:89","nodeType":"YulIdentifier","src":"8031:21:89"},"nativeSrc":"8031:30:89","nodeType":"YulFunctionCall","src":"8031:30:89"},"nativeSrc":"8031:30:89","nodeType":"YulExpressionStatement","src":"8031:30:89"},{"nativeSrc":"8070:17:89","nodeType":"YulAssignment","src":"8070:17:89","value":{"name":"value_1","nativeSrc":"8080:7:89","nodeType":"YulIdentifier","src":"8080:7:89"},"variableNames":[{"name":"value1","nativeSrc":"8070:6:89","nodeType":"YulIdentifier","src":"8070:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"7711:382:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7753:9:89","nodeType":"YulTypedName","src":"7753:9:89","type":""},{"name":"dataEnd","nativeSrc":"7764:7:89","nodeType":"YulTypedName","src":"7764:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7776:6:89","nodeType":"YulTypedName","src":"7776:6:89","type":""},{"name":"value1","nativeSrc":"7784:6:89","nodeType":"YulTypedName","src":"7784:6:89","type":""}],"src":"7711:382:89"},{"body":{"nativeSrc":"8228:587:89","nodeType":"YulBlock","src":"8228:587:89","statements":[{"body":{"nativeSrc":"8275:16:89","nodeType":"YulBlock","src":"8275:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8284:1:89","nodeType":"YulLiteral","src":"8284:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8287:1:89","nodeType":"YulLiteral","src":"8287:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8277:6:89","nodeType":"YulIdentifier","src":"8277:6:89"},"nativeSrc":"8277:12:89","nodeType":"YulFunctionCall","src":"8277:12:89"},"nativeSrc":"8277:12:89","nodeType":"YulExpressionStatement","src":"8277:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8249:7:89","nodeType":"YulIdentifier","src":"8249:7:89"},{"name":"headStart","nativeSrc":"8258:9:89","nodeType":"YulIdentifier","src":"8258:9:89"}],"functionName":{"name":"sub","nativeSrc":"8245:3:89","nodeType":"YulIdentifier","src":"8245:3:89"},"nativeSrc":"8245:23:89","nodeType":"YulFunctionCall","src":"8245:23:89"},{"kind":"number","nativeSrc":"8270:3:89","nodeType":"YulLiteral","src":"8270:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"8241:3:89","nodeType":"YulIdentifier","src":"8241:3:89"},"nativeSrc":"8241:33:89","nodeType":"YulFunctionCall","src":"8241:33:89"},"nativeSrc":"8238:53:89","nodeType":"YulIf","src":"8238:53:89"},{"nativeSrc":"8300:36:89","nodeType":"YulVariableDeclaration","src":"8300:36:89","value":{"arguments":[{"name":"headStart","nativeSrc":"8326:9:89","nodeType":"YulIdentifier","src":"8326:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"8313:12:89","nodeType":"YulIdentifier","src":"8313:12:89"},"nativeSrc":"8313:23:89","nodeType":"YulFunctionCall","src":"8313:23:89"},"variables":[{"name":"value","nativeSrc":"8304:5:89","nodeType":"YulTypedName","src":"8304:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8370:5:89","nodeType":"YulIdentifier","src":"8370:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8345:24:89","nodeType":"YulIdentifier","src":"8345:24:89"},"nativeSrc":"8345:31:89","nodeType":"YulFunctionCall","src":"8345:31:89"},"nativeSrc":"8345:31:89","nodeType":"YulExpressionStatement","src":"8345:31:89"},{"nativeSrc":"8385:15:89","nodeType":"YulAssignment","src":"8385:15:89","value":{"name":"value","nativeSrc":"8395:5:89","nodeType":"YulIdentifier","src":"8395:5:89"},"variableNames":[{"name":"value0","nativeSrc":"8385:6:89","nodeType":"YulIdentifier","src":"8385:6:89"}]},{"nativeSrc":"8409:47:89","nodeType":"YulVariableDeclaration","src":"8409:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8441:9:89","nodeType":"YulIdentifier","src":"8441:9:89"},{"kind":"number","nativeSrc":"8452:2:89","nodeType":"YulLiteral","src":"8452:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8437:3:89","nodeType":"YulIdentifier","src":"8437:3:89"},"nativeSrc":"8437:18:89","nodeType":"YulFunctionCall","src":"8437:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"8424:12:89","nodeType":"YulIdentifier","src":"8424:12:89"},"nativeSrc":"8424:32:89","nodeType":"YulFunctionCall","src":"8424:32:89"},"variables":[{"name":"value_1","nativeSrc":"8413:7:89","nodeType":"YulTypedName","src":"8413:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"8490:7:89","nodeType":"YulIdentifier","src":"8490:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8465:24:89","nodeType":"YulIdentifier","src":"8465:24:89"},"nativeSrc":"8465:33:89","nodeType":"YulFunctionCall","src":"8465:33:89"},"nativeSrc":"8465:33:89","nodeType":"YulExpressionStatement","src":"8465:33:89"},{"nativeSrc":"8507:17:89","nodeType":"YulAssignment","src":"8507:17:89","value":{"name":"value_1","nativeSrc":"8517:7:89","nodeType":"YulIdentifier","src":"8517:7:89"},"variableNames":[{"name":"value1","nativeSrc":"8507:6:89","nodeType":"YulIdentifier","src":"8507:6:89"}]},{"nativeSrc":"8533:16:89","nodeType":"YulVariableDeclaration","src":"8533:16:89","value":{"kind":"number","nativeSrc":"8548:1:89","nodeType":"YulLiteral","src":"8548:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"8537:7:89","nodeType":"YulTypedName","src":"8537:7:89","type":""}]},{"nativeSrc":"8558:43:89","nodeType":"YulAssignment","src":"8558:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8586:9:89","nodeType":"YulIdentifier","src":"8586:9:89"},{"kind":"number","nativeSrc":"8597:2:89","nodeType":"YulLiteral","src":"8597:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8582:3:89","nodeType":"YulIdentifier","src":"8582:3:89"},"nativeSrc":"8582:18:89","nodeType":"YulFunctionCall","src":"8582:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"8569:12:89","nodeType":"YulIdentifier","src":"8569:12:89"},"nativeSrc":"8569:32:89","nodeType":"YulFunctionCall","src":"8569:32:89"},"variableNames":[{"name":"value_2","nativeSrc":"8558:7:89","nodeType":"YulIdentifier","src":"8558:7:89"}]},{"nativeSrc":"8610:17:89","nodeType":"YulAssignment","src":"8610:17:89","value":{"name":"value_2","nativeSrc":"8620:7:89","nodeType":"YulIdentifier","src":"8620:7:89"},"variableNames":[{"name":"value2","nativeSrc":"8610:6:89","nodeType":"YulIdentifier","src":"8610:6:89"}]},{"nativeSrc":"8636:46:89","nodeType":"YulVariableDeclaration","src":"8636:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8667:9:89","nodeType":"YulIdentifier","src":"8667:9:89"},{"kind":"number","nativeSrc":"8678:2:89","nodeType":"YulLiteral","src":"8678:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8663:3:89","nodeType":"YulIdentifier","src":"8663:3:89"},"nativeSrc":"8663:18:89","nodeType":"YulFunctionCall","src":"8663:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"8650:12:89","nodeType":"YulIdentifier","src":"8650:12:89"},"nativeSrc":"8650:32:89","nodeType":"YulFunctionCall","src":"8650:32:89"},"variables":[{"name":"offset","nativeSrc":"8640:6:89","nodeType":"YulTypedName","src":"8640:6:89","type":""}]},{"body":{"nativeSrc":"8725:16:89","nodeType":"YulBlock","src":"8725:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8734:1:89","nodeType":"YulLiteral","src":"8734:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"8737:1:89","nodeType":"YulLiteral","src":"8737:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8727:6:89","nodeType":"YulIdentifier","src":"8727:6:89"},"nativeSrc":"8727:12:89","nodeType":"YulFunctionCall","src":"8727:12:89"},"nativeSrc":"8727:12:89","nodeType":"YulExpressionStatement","src":"8727:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8697:6:89","nodeType":"YulIdentifier","src":"8697:6:89"},{"kind":"number","nativeSrc":"8705:18:89","nodeType":"YulLiteral","src":"8705:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8694:2:89","nodeType":"YulIdentifier","src":"8694:2:89"},"nativeSrc":"8694:30:89","nodeType":"YulFunctionCall","src":"8694:30:89"},"nativeSrc":"8691:50:89","nodeType":"YulIf","src":"8691:50:89"},{"nativeSrc":"8750:59:89","nodeType":"YulAssignment","src":"8750:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8781:9:89","nodeType":"YulIdentifier","src":"8781:9:89"},{"name":"offset","nativeSrc":"8792:6:89","nodeType":"YulIdentifier","src":"8792:6:89"}],"functionName":{"name":"add","nativeSrc":"8777:3:89","nodeType":"YulIdentifier","src":"8777:3:89"},"nativeSrc":"8777:22:89","nodeType":"YulFunctionCall","src":"8777:22:89"},{"name":"dataEnd","nativeSrc":"8801:7:89","nodeType":"YulIdentifier","src":"8801:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"8760:16:89","nodeType":"YulIdentifier","src":"8760:16:89"},"nativeSrc":"8760:49:89","nodeType":"YulFunctionCall","src":"8760:49:89"},"variableNames":[{"name":"value3","nativeSrc":"8750:6:89","nodeType":"YulIdentifier","src":"8750:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nativeSrc":"8098:717:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8170:9:89","nodeType":"YulTypedName","src":"8170:9:89","type":""},{"name":"dataEnd","nativeSrc":"8181:7:89","nodeType":"YulTypedName","src":"8181:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8193:6:89","nodeType":"YulTypedName","src":"8193:6:89","type":""},{"name":"value1","nativeSrc":"8201:6:89","nodeType":"YulTypedName","src":"8201:6:89","type":""},{"name":"value2","nativeSrc":"8209:6:89","nodeType":"YulTypedName","src":"8209:6:89","type":""},{"name":"value3","nativeSrc":"8217:6:89","nodeType":"YulTypedName","src":"8217:6:89","type":""}],"src":"8098:717:89"},{"body":{"nativeSrc":"8875:325:89","nodeType":"YulBlock","src":"8875:325:89","statements":[{"nativeSrc":"8885:22:89","nodeType":"YulAssignment","src":"8885:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"8899:1:89","nodeType":"YulLiteral","src":"8899:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"8902:4:89","nodeType":"YulIdentifier","src":"8902:4:89"}],"functionName":{"name":"shr","nativeSrc":"8895:3:89","nodeType":"YulIdentifier","src":"8895:3:89"},"nativeSrc":"8895:12:89","nodeType":"YulFunctionCall","src":"8895:12:89"},"variableNames":[{"name":"length","nativeSrc":"8885:6:89","nodeType":"YulIdentifier","src":"8885:6:89"}]},{"nativeSrc":"8916:38:89","nodeType":"YulVariableDeclaration","src":"8916:38:89","value":{"arguments":[{"name":"data","nativeSrc":"8946:4:89","nodeType":"YulIdentifier","src":"8946:4:89"},{"kind":"number","nativeSrc":"8952:1:89","nodeType":"YulLiteral","src":"8952:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8942:3:89","nodeType":"YulIdentifier","src":"8942:3:89"},"nativeSrc":"8942:12:89","nodeType":"YulFunctionCall","src":"8942:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"8920:18:89","nodeType":"YulTypedName","src":"8920:18:89","type":""}]},{"body":{"nativeSrc":"8993:31:89","nodeType":"YulBlock","src":"8993:31:89","statements":[{"nativeSrc":"8995:27:89","nodeType":"YulAssignment","src":"8995:27:89","value":{"arguments":[{"name":"length","nativeSrc":"9009:6:89","nodeType":"YulIdentifier","src":"9009:6:89"},{"kind":"number","nativeSrc":"9017:4:89","nodeType":"YulLiteral","src":"9017:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"9005:3:89","nodeType":"YulIdentifier","src":"9005:3:89"},"nativeSrc":"9005:17:89","nodeType":"YulFunctionCall","src":"9005:17:89"},"variableNames":[{"name":"length","nativeSrc":"8995:6:89","nodeType":"YulIdentifier","src":"8995:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"8973:18:89","nodeType":"YulIdentifier","src":"8973:18:89"}],"functionName":{"name":"iszero","nativeSrc":"8966:6:89","nodeType":"YulIdentifier","src":"8966:6:89"},"nativeSrc":"8966:26:89","nodeType":"YulFunctionCall","src":"8966:26:89"},"nativeSrc":"8963:61:89","nodeType":"YulIf","src":"8963:61:89"},{"body":{"nativeSrc":"9083:111:89","nodeType":"YulBlock","src":"9083:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9104:1:89","nodeType":"YulLiteral","src":"9104:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"9111:3:89","nodeType":"YulLiteral","src":"9111:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"9116:10:89","nodeType":"YulLiteral","src":"9116:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"9107:3:89","nodeType":"YulIdentifier","src":"9107:3:89"},"nativeSrc":"9107:20:89","nodeType":"YulFunctionCall","src":"9107:20:89"}],"functionName":{"name":"mstore","nativeSrc":"9097:6:89","nodeType":"YulIdentifier","src":"9097:6:89"},"nativeSrc":"9097:31:89","nodeType":"YulFunctionCall","src":"9097:31:89"},"nativeSrc":"9097:31:89","nodeType":"YulExpressionStatement","src":"9097:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9148:1:89","nodeType":"YulLiteral","src":"9148:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"9151:4:89","nodeType":"YulLiteral","src":"9151:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"9141:6:89","nodeType":"YulIdentifier","src":"9141:6:89"},"nativeSrc":"9141:15:89","nodeType":"YulFunctionCall","src":"9141:15:89"},"nativeSrc":"9141:15:89","nodeType":"YulExpressionStatement","src":"9141:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9176:1:89","nodeType":"YulLiteral","src":"9176:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9179:4:89","nodeType":"YulLiteral","src":"9179:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9169:6:89","nodeType":"YulIdentifier","src":"9169:6:89"},"nativeSrc":"9169:15:89","nodeType":"YulFunctionCall","src":"9169:15:89"},"nativeSrc":"9169:15:89","nodeType":"YulExpressionStatement","src":"9169:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"9039:18:89","nodeType":"YulIdentifier","src":"9039:18:89"},{"arguments":[{"name":"length","nativeSrc":"9062:6:89","nodeType":"YulIdentifier","src":"9062:6:89"},{"kind":"number","nativeSrc":"9070:2:89","nodeType":"YulLiteral","src":"9070:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"9059:2:89","nodeType":"YulIdentifier","src":"9059:2:89"},"nativeSrc":"9059:14:89","nodeType":"YulFunctionCall","src":"9059:14:89"}],"functionName":{"name":"eq","nativeSrc":"9036:2:89","nodeType":"YulIdentifier","src":"9036:2:89"},"nativeSrc":"9036:38:89","nodeType":"YulFunctionCall","src":"9036:38:89"},"nativeSrc":"9033:161:89","nodeType":"YulIf","src":"9033:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"8820:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"8855:4:89","nodeType":"YulTypedName","src":"8855:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8864:6:89","nodeType":"YulTypedName","src":"8864:6:89","type":""}],"src":"8820:380:89"},{"body":{"nativeSrc":"9300:284:89","nodeType":"YulBlock","src":"9300:284:89","statements":[{"body":{"nativeSrc":"9346:16:89","nodeType":"YulBlock","src":"9346:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9355:1:89","nodeType":"YulLiteral","src":"9355:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9358:1:89","nodeType":"YulLiteral","src":"9358:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9348:6:89","nodeType":"YulIdentifier","src":"9348:6:89"},"nativeSrc":"9348:12:89","nodeType":"YulFunctionCall","src":"9348:12:89"},"nativeSrc":"9348:12:89","nodeType":"YulExpressionStatement","src":"9348:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9321:7:89","nodeType":"YulIdentifier","src":"9321:7:89"},{"name":"headStart","nativeSrc":"9330:9:89","nodeType":"YulIdentifier","src":"9330:9:89"}],"functionName":{"name":"sub","nativeSrc":"9317:3:89","nodeType":"YulIdentifier","src":"9317:3:89"},"nativeSrc":"9317:23:89","nodeType":"YulFunctionCall","src":"9317:23:89"},{"kind":"number","nativeSrc":"9342:2:89","nodeType":"YulLiteral","src":"9342:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9313:3:89","nodeType":"YulIdentifier","src":"9313:3:89"},"nativeSrc":"9313:32:89","nodeType":"YulFunctionCall","src":"9313:32:89"},"nativeSrc":"9310:52:89","nodeType":"YulIf","src":"9310:52:89"},{"nativeSrc":"9371:29:89","nodeType":"YulVariableDeclaration","src":"9371:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9390:9:89","nodeType":"YulIdentifier","src":"9390:9:89"}],"functionName":{"name":"mload","nativeSrc":"9384:5:89","nodeType":"YulIdentifier","src":"9384:5:89"},"nativeSrc":"9384:16:89","nodeType":"YulFunctionCall","src":"9384:16:89"},"variables":[{"name":"value","nativeSrc":"9375:5:89","nodeType":"YulTypedName","src":"9375:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9434:5:89","nodeType":"YulIdentifier","src":"9434:5:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9409:24:89","nodeType":"YulIdentifier","src":"9409:24:89"},"nativeSrc":"9409:31:89","nodeType":"YulFunctionCall","src":"9409:31:89"},"nativeSrc":"9409:31:89","nodeType":"YulExpressionStatement","src":"9409:31:89"},{"nativeSrc":"9449:15:89","nodeType":"YulAssignment","src":"9449:15:89","value":{"name":"value","nativeSrc":"9459:5:89","nodeType":"YulIdentifier","src":"9459:5:89"},"variableNames":[{"name":"value0","nativeSrc":"9449:6:89","nodeType":"YulIdentifier","src":"9449:6:89"}]},{"nativeSrc":"9473:40:89","nodeType":"YulVariableDeclaration","src":"9473:40:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9498:9:89","nodeType":"YulIdentifier","src":"9498:9:89"},{"kind":"number","nativeSrc":"9509:2:89","nodeType":"YulLiteral","src":"9509:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9494:3:89","nodeType":"YulIdentifier","src":"9494:3:89"},"nativeSrc":"9494:18:89","nodeType":"YulFunctionCall","src":"9494:18:89"}],"functionName":{"name":"mload","nativeSrc":"9488:5:89","nodeType":"YulIdentifier","src":"9488:5:89"},"nativeSrc":"9488:25:89","nodeType":"YulFunctionCall","src":"9488:25:89"},"variables":[{"name":"value_1","nativeSrc":"9477:7:89","nodeType":"YulTypedName","src":"9477:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"9544:7:89","nodeType":"YulIdentifier","src":"9544:7:89"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"9522:21:89","nodeType":"YulIdentifier","src":"9522:21:89"},"nativeSrc":"9522:30:89","nodeType":"YulFunctionCall","src":"9522:30:89"},"nativeSrc":"9522:30:89","nodeType":"YulExpressionStatement","src":"9522:30:89"},{"nativeSrc":"9561:17:89","nodeType":"YulAssignment","src":"9561:17:89","value":{"name":"value_1","nativeSrc":"9571:7:89","nodeType":"YulIdentifier","src":"9571:7:89"},"variableNames":[{"name":"value1","nativeSrc":"9561:6:89","nodeType":"YulIdentifier","src":"9561:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bool_fromMemory","nativeSrc":"9205:379:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9258:9:89","nodeType":"YulTypedName","src":"9258:9:89","type":""},{"name":"dataEnd","nativeSrc":"9269:7:89","nodeType":"YulTypedName","src":"9269:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9281:6:89","nodeType":"YulTypedName","src":"9281:6:89","type":""},{"name":"value1","nativeSrc":"9289:6:89","nodeType":"YulTypedName","src":"9289:6:89","type":""}],"src":"9205:379:89"},{"body":{"nativeSrc":"9653:882:89","nodeType":"YulBlock","src":"9653:882:89","statements":[{"body":{"nativeSrc":"9697:16:89","nodeType":"YulBlock","src":"9697:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9706:1:89","nodeType":"YulLiteral","src":"9706:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"9709:1:89","nodeType":"YulLiteral","src":"9709:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9699:6:89","nodeType":"YulIdentifier","src":"9699:6:89"},"nativeSrc":"9699:12:89","nodeType":"YulFunctionCall","src":"9699:12:89"},"nativeSrc":"9699:12:89","nodeType":"YulExpressionStatement","src":"9699:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9674:3:89","nodeType":"YulIdentifier","src":"9674:3:89"},{"name":"headStart","nativeSrc":"9679:9:89","nodeType":"YulIdentifier","src":"9679:9:89"}],"functionName":{"name":"sub","nativeSrc":"9670:3:89","nodeType":"YulIdentifier","src":"9670:3:89"},"nativeSrc":"9670:19:89","nodeType":"YulFunctionCall","src":"9670:19:89"},{"kind":"number","nativeSrc":"9691:4:89","nodeType":"YulLiteral","src":"9691:4:89","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"9666:3:89","nodeType":"YulIdentifier","src":"9666:3:89"},"nativeSrc":"9666:30:89","nodeType":"YulFunctionCall","src":"9666:30:89"},"nativeSrc":"9663:50:89","nodeType":"YulIf","src":"9663:50:89"},{"nativeSrc":"9722:15:89","nodeType":"YulVariableDeclaration","src":"9722:15:89","value":{"kind":"number","nativeSrc":"9736:1:89","nodeType":"YulLiteral","src":"9736:1:89","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"9726:6:89","nodeType":"YulTypedName","src":"9726:6:89","type":""}]},{"nativeSrc":"9746:19:89","nodeType":"YulAssignment","src":"9746:19:89","value":{"arguments":[{"kind":"number","nativeSrc":"9762:2:89","nodeType":"YulLiteral","src":"9762:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"9756:5:89","nodeType":"YulIdentifier","src":"9756:5:89"},"nativeSrc":"9756:9:89","nodeType":"YulFunctionCall","src":"9756:9:89"},"variableNames":[{"name":"memPtr","nativeSrc":"9746:6:89","nodeType":"YulIdentifier","src":"9746:6:89"}]},{"nativeSrc":"9774:35:89","nodeType":"YulVariableDeclaration","src":"9774:35:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"9796:6:89","nodeType":"YulIdentifier","src":"9796:6:89"},{"kind":"number","nativeSrc":"9804:4:89","nodeType":"YulLiteral","src":"9804:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"9792:3:89","nodeType":"YulIdentifier","src":"9792:3:89"},"nativeSrc":"9792:17:89","nodeType":"YulFunctionCall","src":"9792:17:89"},"variables":[{"name":"newFreePtr","nativeSrc":"9778:10:89","nodeType":"YulTypedName","src":"9778:10:89","type":""}]},{"body":{"nativeSrc":"9884:22:89","nodeType":"YulBlock","src":"9884:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9886:16:89","nodeType":"YulIdentifier","src":"9886:16:89"},"nativeSrc":"9886:18:89","nodeType":"YulFunctionCall","src":"9886:18:89"},"nativeSrc":"9886:18:89","nodeType":"YulExpressionStatement","src":"9886:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"9827:10:89","nodeType":"YulIdentifier","src":"9827:10:89"},{"kind":"number","nativeSrc":"9839:18:89","nodeType":"YulLiteral","src":"9839:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9824:2:89","nodeType":"YulIdentifier","src":"9824:2:89"},"nativeSrc":"9824:34:89","nodeType":"YulFunctionCall","src":"9824:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"9863:10:89","nodeType":"YulIdentifier","src":"9863:10:89"},{"name":"memPtr","nativeSrc":"9875:6:89","nodeType":"YulIdentifier","src":"9875:6:89"}],"functionName":{"name":"lt","nativeSrc":"9860:2:89","nodeType":"YulIdentifier","src":"9860:2:89"},"nativeSrc":"9860:22:89","nodeType":"YulFunctionCall","src":"9860:22:89"}],"functionName":{"name":"or","nativeSrc":"9821:2:89","nodeType":"YulIdentifier","src":"9821:2:89"},"nativeSrc":"9821:62:89","nodeType":"YulFunctionCall","src":"9821:62:89"},"nativeSrc":"9818:88:89","nodeType":"YulIf","src":"9818:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9922:2:89","nodeType":"YulLiteral","src":"9922:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"9926:10:89","nodeType":"YulIdentifier","src":"9926:10:89"}],"functionName":{"name":"mstore","nativeSrc":"9915:6:89","nodeType":"YulIdentifier","src":"9915:6:89"},"nativeSrc":"9915:22:89","nodeType":"YulFunctionCall","src":"9915:22:89"},"nativeSrc":"9915:22:89","nodeType":"YulExpressionStatement","src":"9915:22:89"},{"nativeSrc":"9946:15:89","nodeType":"YulAssignment","src":"9946:15:89","value":{"name":"memPtr","nativeSrc":"9955:6:89","nodeType":"YulIdentifier","src":"9955:6:89"},"variableNames":[{"name":"value","nativeSrc":"9946:5:89","nodeType":"YulIdentifier","src":"9946:5:89"}]},{"nativeSrc":"9970:38:89","nodeType":"YulVariableDeclaration","src":"9970:38:89","value":{"arguments":[{"name":"headStart","nativeSrc":"9998:9:89","nodeType":"YulIdentifier","src":"9998:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"9985:12:89","nodeType":"YulIdentifier","src":"9985:12:89"},"nativeSrc":"9985:23:89","nodeType":"YulFunctionCall","src":"9985:23:89"},"variables":[{"name":"value_1","nativeSrc":"9974:7:89","nodeType":"YulTypedName","src":"9974:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"10039:7:89","nodeType":"YulIdentifier","src":"10039:7:89"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"10017:21:89","nodeType":"YulIdentifier","src":"10017:21:89"},"nativeSrc":"10017:30:89","nodeType":"YulFunctionCall","src":"10017:30:89"},"nativeSrc":"10017:30:89","nodeType":"YulExpressionStatement","src":"10017:30:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10063:6:89","nodeType":"YulIdentifier","src":"10063:6:89"},{"name":"value_1","nativeSrc":"10071:7:89","nodeType":"YulIdentifier","src":"10071:7:89"}],"functionName":{"name":"mstore","nativeSrc":"10056:6:89","nodeType":"YulIdentifier","src":"10056:6:89"},"nativeSrc":"10056:23:89","nodeType":"YulFunctionCall","src":"10056:23:89"},"nativeSrc":"10056:23:89","nodeType":"YulExpressionStatement","src":"10056:23:89"},{"nativeSrc":"10088:47:89","nodeType":"YulVariableDeclaration","src":"10088:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10120:9:89","nodeType":"YulIdentifier","src":"10120:9:89"},{"kind":"number","nativeSrc":"10131:2:89","nodeType":"YulLiteral","src":"10131:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10116:3:89","nodeType":"YulIdentifier","src":"10116:3:89"},"nativeSrc":"10116:18:89","nodeType":"YulFunctionCall","src":"10116:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"10103:12:89","nodeType":"YulIdentifier","src":"10103:12:89"},"nativeSrc":"10103:32:89","nodeType":"YulFunctionCall","src":"10103:32:89"},"variables":[{"name":"value_2","nativeSrc":"10092:7:89","nodeType":"YulTypedName","src":"10092:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"10169:7:89","nodeType":"YulIdentifier","src":"10169:7:89"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10144:24:89","nodeType":"YulIdentifier","src":"10144:24:89"},"nativeSrc":"10144:33:89","nodeType":"YulFunctionCall","src":"10144:33:89"},"nativeSrc":"10144:33:89","nodeType":"YulExpressionStatement","src":"10144:33:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10197:6:89","nodeType":"YulIdentifier","src":"10197:6:89"},{"kind":"number","nativeSrc":"10205:2:89","nodeType":"YulLiteral","src":"10205:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10193:3:89","nodeType":"YulIdentifier","src":"10193:3:89"},"nativeSrc":"10193:15:89","nodeType":"YulFunctionCall","src":"10193:15:89"},{"name":"value_2","nativeSrc":"10210:7:89","nodeType":"YulIdentifier","src":"10210:7:89"}],"functionName":{"name":"mstore","nativeSrc":"10186:6:89","nodeType":"YulIdentifier","src":"10186:6:89"},"nativeSrc":"10186:32:89","nodeType":"YulFunctionCall","src":"10186:32:89"},"nativeSrc":"10186:32:89","nodeType":"YulExpressionStatement","src":"10186:32:89"},{"nativeSrc":"10227:16:89","nodeType":"YulVariableDeclaration","src":"10227:16:89","value":{"kind":"number","nativeSrc":"10242:1:89","nodeType":"YulLiteral","src":"10242:1:89","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"10231:7:89","nodeType":"YulTypedName","src":"10231:7:89","type":""}]},{"nativeSrc":"10252:43:89","nodeType":"YulAssignment","src":"10252:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10280:9:89","nodeType":"YulIdentifier","src":"10280:9:89"},{"kind":"number","nativeSrc":"10291:2:89","nodeType":"YulLiteral","src":"10291:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10276:3:89","nodeType":"YulIdentifier","src":"10276:3:89"},"nativeSrc":"10276:18:89","nodeType":"YulFunctionCall","src":"10276:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"10263:12:89","nodeType":"YulIdentifier","src":"10263:12:89"},"nativeSrc":"10263:32:89","nodeType":"YulFunctionCall","src":"10263:32:89"},"variableNames":[{"name":"value_3","nativeSrc":"10252:7:89","nodeType":"YulIdentifier","src":"10252:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10315:6:89","nodeType":"YulIdentifier","src":"10315:6:89"},{"kind":"number","nativeSrc":"10323:2:89","nodeType":"YulLiteral","src":"10323:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10311:3:89","nodeType":"YulIdentifier","src":"10311:3:89"},"nativeSrc":"10311:15:89","nodeType":"YulFunctionCall","src":"10311:15:89"},{"name":"value_3","nativeSrc":"10328:7:89","nodeType":"YulIdentifier","src":"10328:7:89"}],"functionName":{"name":"mstore","nativeSrc":"10304:6:89","nodeType":"YulIdentifier","src":"10304:6:89"},"nativeSrc":"10304:32:89","nodeType":"YulFunctionCall","src":"10304:32:89"},"nativeSrc":"10304:32:89","nodeType":"YulExpressionStatement","src":"10304:32:89"},{"nativeSrc":"10345:46:89","nodeType":"YulVariableDeclaration","src":"10345:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10376:9:89","nodeType":"YulIdentifier","src":"10376:9:89"},{"kind":"number","nativeSrc":"10387:2:89","nodeType":"YulLiteral","src":"10387:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10372:3:89","nodeType":"YulIdentifier","src":"10372:3:89"},"nativeSrc":"10372:18:89","nodeType":"YulFunctionCall","src":"10372:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"10359:12:89","nodeType":"YulIdentifier","src":"10359:12:89"},"nativeSrc":"10359:32:89","nodeType":"YulFunctionCall","src":"10359:32:89"},"variables":[{"name":"offset","nativeSrc":"10349:6:89","nodeType":"YulTypedName","src":"10349:6:89","type":""}]},{"body":{"nativeSrc":"10434:16:89","nodeType":"YulBlock","src":"10434:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10443:1:89","nodeType":"YulLiteral","src":"10443:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10446:1:89","nodeType":"YulLiteral","src":"10446:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10436:6:89","nodeType":"YulIdentifier","src":"10436:6:89"},"nativeSrc":"10436:12:89","nodeType":"YulFunctionCall","src":"10436:12:89"},"nativeSrc":"10436:12:89","nodeType":"YulExpressionStatement","src":"10436:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10406:6:89","nodeType":"YulIdentifier","src":"10406:6:89"},{"kind":"number","nativeSrc":"10414:18:89","nodeType":"YulLiteral","src":"10414:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10403:2:89","nodeType":"YulIdentifier","src":"10403:2:89"},"nativeSrc":"10403:30:89","nodeType":"YulFunctionCall","src":"10403:30:89"},"nativeSrc":"10400:50:89","nodeType":"YulIf","src":"10400:50:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10470:6:89","nodeType":"YulIdentifier","src":"10470:6:89"},{"kind":"number","nativeSrc":"10478:2:89","nodeType":"YulLiteral","src":"10478:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10466:3:89","nodeType":"YulIdentifier","src":"10466:3:89"},"nativeSrc":"10466:15:89","nodeType":"YulFunctionCall","src":"10466:15:89"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10504:9:89","nodeType":"YulIdentifier","src":"10504:9:89"},{"name":"offset","nativeSrc":"10515:6:89","nodeType":"YulIdentifier","src":"10515:6:89"}],"functionName":{"name":"add","nativeSrc":"10500:3:89","nodeType":"YulIdentifier","src":"10500:3:89"},"nativeSrc":"10500:22:89","nodeType":"YulFunctionCall","src":"10500:22:89"},{"name":"end","nativeSrc":"10524:3:89","nodeType":"YulIdentifier","src":"10524:3:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"10483:16:89","nodeType":"YulIdentifier","src":"10483:16:89"},"nativeSrc":"10483:45:89","nodeType":"YulFunctionCall","src":"10483:45:89"}],"functionName":{"name":"mstore","nativeSrc":"10459:6:89","nodeType":"YulIdentifier","src":"10459:6:89"},"nativeSrc":"10459:70:89","nodeType":"YulFunctionCall","src":"10459:70:89"},"nativeSrc":"10459:70:89","nodeType":"YulExpressionStatement","src":"10459:70:89"}]},"name":"abi_decode_struct_PreHook","nativeSrc":"9589:946:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9624:9:89","nodeType":"YulTypedName","src":"9624:9:89","type":""},{"name":"end","nativeSrc":"9635:3:89","nodeType":"YulTypedName","src":"9635:3:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9643:5:89","nodeType":"YulTypedName","src":"9643:5:89","type":""}],"src":"9589:946:89"},{"body":{"nativeSrc":"10636:702:89","nodeType":"YulBlock","src":"10636:702:89","statements":[{"nativeSrc":"10646:13:89","nodeType":"YulVariableDeclaration","src":"10646:13:89","value":{"kind":"number","nativeSrc":"10658:1:89","nodeType":"YulLiteral","src":"10658:1:89","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"10650:4:89","nodeType":"YulTypedName","src":"10650:4:89","type":""}]},{"body":{"nativeSrc":"10702:22:89","nodeType":"YulBlock","src":"10702:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10704:16:89","nodeType":"YulIdentifier","src":"10704:16:89"},"nativeSrc":"10704:18:89","nodeType":"YulFunctionCall","src":"10704:18:89"},"nativeSrc":"10704:18:89","nodeType":"YulExpressionStatement","src":"10704:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10674:6:89","nodeType":"YulIdentifier","src":"10674:6:89"},{"kind":"number","nativeSrc":"10682:18:89","nodeType":"YulLiteral","src":"10682:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10671:2:89","nodeType":"YulIdentifier","src":"10671:2:89"},"nativeSrc":"10671:30:89","nodeType":"YulFunctionCall","src":"10671:30:89"},"nativeSrc":"10668:56:89","nodeType":"YulIf","src":"10668:56:89"},{"nativeSrc":"10733:24:89","nodeType":"YulVariableDeclaration","src":"10733:24:89","value":{"arguments":[{"kind":"number","nativeSrc":"10747:1:89","nodeType":"YulLiteral","src":"10747:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"10750:6:89","nodeType":"YulIdentifier","src":"10750:6:89"}],"functionName":{"name":"shl","nativeSrc":"10743:3:89","nodeType":"YulIdentifier","src":"10743:3:89"},"nativeSrc":"10743:14:89","nodeType":"YulFunctionCall","src":"10743:14:89"},"variables":[{"name":"_1","nativeSrc":"10737:2:89","nodeType":"YulTypedName","src":"10737:2:89","type":""}]},{"nativeSrc":"10766:21:89","nodeType":"YulAssignment","src":"10766:21:89","value":{"arguments":[{"name":"_1","nativeSrc":"10778:2:89","nodeType":"YulIdentifier","src":"10778:2:89"},{"kind":"number","nativeSrc":"10782:4:89","nodeType":"YulLiteral","src":"10782:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10774:3:89","nodeType":"YulIdentifier","src":"10774:3:89"},"nativeSrc":"10774:13:89","nodeType":"YulFunctionCall","src":"10774:13:89"},"variableNames":[{"name":"size","nativeSrc":"10766:4:89","nodeType":"YulIdentifier","src":"10766:4:89"}]},{"nativeSrc":"10796:30:89","nodeType":"YulAssignment","src":"10796:30:89","value":{"arguments":[{"name":"size","nativeSrc":"10821:4:89","nodeType":"YulIdentifier","src":"10821:4:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"10805:15:89","nodeType":"YulIdentifier","src":"10805:15:89"},"nativeSrc":"10805:21:89","nodeType":"YulFunctionCall","src":"10805:21:89"},"variableNames":[{"name":"array","nativeSrc":"10796:5:89","nodeType":"YulIdentifier","src":"10796:5:89"}]},{"nativeSrc":"10835:16:89","nodeType":"YulVariableDeclaration","src":"10835:16:89","value":{"name":"array","nativeSrc":"10846:5:89","nodeType":"YulIdentifier","src":"10846:5:89"},"variables":[{"name":"dst","nativeSrc":"10839:3:89","nodeType":"YulTypedName","src":"10839:3:89","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"10867:5:89","nodeType":"YulIdentifier","src":"10867:5:89"},{"name":"length","nativeSrc":"10874:6:89","nodeType":"YulIdentifier","src":"10874:6:89"}],"functionName":{"name":"mstore","nativeSrc":"10860:6:89","nodeType":"YulIdentifier","src":"10860:6:89"},"nativeSrc":"10860:21:89","nodeType":"YulFunctionCall","src":"10860:21:89"},"nativeSrc":"10860:21:89","nodeType":"YulExpressionStatement","src":"10860:21:89"},{"nativeSrc":"10890:23:89","nodeType":"YulAssignment","src":"10890:23:89","value":{"arguments":[{"name":"array","nativeSrc":"10901:5:89","nodeType":"YulIdentifier","src":"10901:5:89"},{"kind":"number","nativeSrc":"10908:4:89","nodeType":"YulLiteral","src":"10908:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10897:3:89","nodeType":"YulIdentifier","src":"10897:3:89"},"nativeSrc":"10897:16:89","nodeType":"YulFunctionCall","src":"10897:16:89"},"variableNames":[{"name":"dst","nativeSrc":"10890:3:89","nodeType":"YulIdentifier","src":"10890:3:89"}]},{"nativeSrc":"10922:29:89","nodeType":"YulVariableDeclaration","src":"10922:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"10940:6:89","nodeType":"YulIdentifier","src":"10940:6:89"},{"name":"_1","nativeSrc":"10948:2:89","nodeType":"YulIdentifier","src":"10948:2:89"}],"functionName":{"name":"add","nativeSrc":"10936:3:89","nodeType":"YulIdentifier","src":"10936:3:89"},"nativeSrc":"10936:15:89","nodeType":"YulFunctionCall","src":"10936:15:89"},"variables":[{"name":"srcEnd","nativeSrc":"10926:6:89","nodeType":"YulTypedName","src":"10926:6:89","type":""}]},{"body":{"nativeSrc":"10979:16:89","nodeType":"YulBlock","src":"10979:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10988:1:89","nodeType":"YulLiteral","src":"10988:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"10991:1:89","nodeType":"YulLiteral","src":"10991:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10981:6:89","nodeType":"YulIdentifier","src":"10981:6:89"},"nativeSrc":"10981:12:89","nodeType":"YulFunctionCall","src":"10981:12:89"},"nativeSrc":"10981:12:89","nodeType":"YulExpressionStatement","src":"10981:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"10966:6:89","nodeType":"YulIdentifier","src":"10966:6:89"},{"name":"end","nativeSrc":"10974:3:89","nodeType":"YulIdentifier","src":"10974:3:89"}],"functionName":{"name":"gt","nativeSrc":"10963:2:89","nodeType":"YulIdentifier","src":"10963:2:89"},"nativeSrc":"10963:15:89","nodeType":"YulFunctionCall","src":"10963:15:89"},"nativeSrc":"10960:35:89","nodeType":"YulIf","src":"10960:35:89"},{"nativeSrc":"11004:17:89","nodeType":"YulVariableDeclaration","src":"11004:17:89","value":{"name":"offset","nativeSrc":"11015:6:89","nodeType":"YulIdentifier","src":"11015:6:89"},"variables":[{"name":"src","nativeSrc":"11008:3:89","nodeType":"YulTypedName","src":"11008:3:89","type":""}]},{"body":{"nativeSrc":"11088:244:89","nodeType":"YulBlock","src":"11088:244:89","statements":[{"nativeSrc":"11102:36:89","nodeType":"YulVariableDeclaration","src":"11102:36:89","value":{"arguments":[{"name":"src","nativeSrc":"11134:3:89","nodeType":"YulIdentifier","src":"11134:3:89"}],"functionName":{"name":"calldataload","nativeSrc":"11121:12:89","nodeType":"YulIdentifier","src":"11121:12:89"},"nativeSrc":"11121:17:89","nodeType":"YulFunctionCall","src":"11121:17:89"},"variables":[{"name":"innerOffset","nativeSrc":"11106:11:89","nodeType":"YulTypedName","src":"11106:11:89","type":""}]},{"body":{"nativeSrc":"11190:16:89","nodeType":"YulBlock","src":"11190:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11199:1:89","nodeType":"YulLiteral","src":"11199:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11202:1:89","nodeType":"YulLiteral","src":"11202:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11192:6:89","nodeType":"YulIdentifier","src":"11192:6:89"},"nativeSrc":"11192:12:89","nodeType":"YulFunctionCall","src":"11192:12:89"},"nativeSrc":"11192:12:89","nodeType":"YulExpressionStatement","src":"11192:12:89"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"11157:11:89","nodeType":"YulIdentifier","src":"11157:11:89"},{"kind":"number","nativeSrc":"11170:18:89","nodeType":"YulLiteral","src":"11170:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11154:2:89","nodeType":"YulIdentifier","src":"11154:2:89"},"nativeSrc":"11154:35:89","nodeType":"YulFunctionCall","src":"11154:35:89"},"nativeSrc":"11151:55:89","nodeType":"YulIf","src":"11151:55:89"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11226:3:89","nodeType":"YulIdentifier","src":"11226:3:89"},{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11261:6:89","nodeType":"YulIdentifier","src":"11261:6:89"},{"name":"innerOffset","nativeSrc":"11269:11:89","nodeType":"YulIdentifier","src":"11269:11:89"}],"functionName":{"name":"add","nativeSrc":"11257:3:89","nodeType":"YulIdentifier","src":"11257:3:89"},"nativeSrc":"11257:24:89","nodeType":"YulFunctionCall","src":"11257:24:89"},{"name":"end","nativeSrc":"11283:3:89","nodeType":"YulIdentifier","src":"11283:3:89"}],"functionName":{"name":"abi_decode_struct_PreHook","nativeSrc":"11231:25:89","nodeType":"YulIdentifier","src":"11231:25:89"},"nativeSrc":"11231:56:89","nodeType":"YulFunctionCall","src":"11231:56:89"}],"functionName":{"name":"mstore","nativeSrc":"11219:6:89","nodeType":"YulIdentifier","src":"11219:6:89"},"nativeSrc":"11219:69:89","nodeType":"YulFunctionCall","src":"11219:69:89"},"nativeSrc":"11219:69:89","nodeType":"YulExpressionStatement","src":"11219:69:89"},{"nativeSrc":"11301:21:89","nodeType":"YulAssignment","src":"11301:21:89","value":{"arguments":[{"name":"dst","nativeSrc":"11312:3:89","nodeType":"YulIdentifier","src":"11312:3:89"},{"kind":"number","nativeSrc":"11317:4:89","nodeType":"YulLiteral","src":"11317:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11308:3:89","nodeType":"YulIdentifier","src":"11308:3:89"},"nativeSrc":"11308:14:89","nodeType":"YulFunctionCall","src":"11308:14:89"},"variableNames":[{"name":"dst","nativeSrc":"11301:3:89","nodeType":"YulIdentifier","src":"11301:3:89"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11041:3:89","nodeType":"YulIdentifier","src":"11041:3:89"},{"name":"srcEnd","nativeSrc":"11046:6:89","nodeType":"YulIdentifier","src":"11046:6:89"}],"functionName":{"name":"lt","nativeSrc":"11038:2:89","nodeType":"YulIdentifier","src":"11038:2:89"},"nativeSrc":"11038:15:89","nodeType":"YulFunctionCall","src":"11038:15:89"},"nativeSrc":"11030:302:89","nodeType":"YulForLoop","post":{"nativeSrc":"11054:25:89","nodeType":"YulBlock","src":"11054:25:89","statements":[{"nativeSrc":"11056:21:89","nodeType":"YulAssignment","src":"11056:21:89","value":{"arguments":[{"name":"src","nativeSrc":"11067:3:89","nodeType":"YulIdentifier","src":"11067:3:89"},{"kind":"number","nativeSrc":"11072:4:89","nodeType":"YulLiteral","src":"11072:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11063:3:89","nodeType":"YulIdentifier","src":"11063:3:89"},"nativeSrc":"11063:14:89","nodeType":"YulFunctionCall","src":"11063:14:89"},"variableNames":[{"name":"src","nativeSrc":"11056:3:89","nodeType":"YulIdentifier","src":"11056:3:89"}]}]},"pre":{"nativeSrc":"11034:3:89","nodeType":"YulBlock","src":"11034:3:89","statements":[]},"src":"11030:302:89"}]},"name":"abi_decode_available_length_array_struct_PreHook_dyn","nativeSrc":"10540:798:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10602:6:89","nodeType":"YulTypedName","src":"10602:6:89","type":""},{"name":"length","nativeSrc":"10610:6:89","nodeType":"YulTypedName","src":"10610:6:89","type":""},{"name":"end","nativeSrc":"10618:3:89","nodeType":"YulTypedName","src":"10618:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10626:5:89","nodeType":"YulTypedName","src":"10626:5:89","type":""}],"src":"10540:798:89"},{"body":{"nativeSrc":"11415:187:89","nodeType":"YulBlock","src":"11415:187:89","statements":[{"body":{"nativeSrc":"11464:16:89","nodeType":"YulBlock","src":"11464:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11473:1:89","nodeType":"YulLiteral","src":"11473:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11476:1:89","nodeType":"YulLiteral","src":"11476:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11466:6:89","nodeType":"YulIdentifier","src":"11466:6:89"},"nativeSrc":"11466:12:89","nodeType":"YulFunctionCall","src":"11466:12:89"},"nativeSrc":"11466:12:89","nodeType":"YulExpressionStatement","src":"11466:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11443:6:89","nodeType":"YulIdentifier","src":"11443:6:89"},{"kind":"number","nativeSrc":"11451:4:89","nodeType":"YulLiteral","src":"11451:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11439:3:89","nodeType":"YulIdentifier","src":"11439:3:89"},"nativeSrc":"11439:17:89","nodeType":"YulFunctionCall","src":"11439:17:89"},{"name":"end","nativeSrc":"11458:3:89","nodeType":"YulIdentifier","src":"11458:3:89"}],"functionName":{"name":"slt","nativeSrc":"11435:3:89","nodeType":"YulIdentifier","src":"11435:3:89"},"nativeSrc":"11435:27:89","nodeType":"YulFunctionCall","src":"11435:27:89"}],"functionName":{"name":"iszero","nativeSrc":"11428:6:89","nodeType":"YulIdentifier","src":"11428:6:89"},"nativeSrc":"11428:35:89","nodeType":"YulFunctionCall","src":"11428:35:89"},"nativeSrc":"11425:55:89","nodeType":"YulIf","src":"11425:55:89"},{"nativeSrc":"11489:107:89","nodeType":"YulAssignment","src":"11489:107:89","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11555:6:89","nodeType":"YulIdentifier","src":"11555:6:89"},{"kind":"number","nativeSrc":"11563:4:89","nodeType":"YulLiteral","src":"11563:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11551:3:89","nodeType":"YulIdentifier","src":"11551:3:89"},"nativeSrc":"11551:17:89","nodeType":"YulFunctionCall","src":"11551:17:89"},{"arguments":[{"name":"offset","nativeSrc":"11583:6:89","nodeType":"YulIdentifier","src":"11583:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"11570:12:89","nodeType":"YulIdentifier","src":"11570:12:89"},"nativeSrc":"11570:20:89","nodeType":"YulFunctionCall","src":"11570:20:89"},{"name":"end","nativeSrc":"11592:3:89","nodeType":"YulIdentifier","src":"11592:3:89"}],"functionName":{"name":"abi_decode_available_length_array_struct_PreHook_dyn","nativeSrc":"11498:52:89","nodeType":"YulIdentifier","src":"11498:52:89"},"nativeSrc":"11498:98:89","nodeType":"YulFunctionCall","src":"11498:98:89"},"variableNames":[{"name":"array","nativeSrc":"11489:5:89","nodeType":"YulIdentifier","src":"11489:5:89"}]}]},"name":"abi_decode_array_struct_PostHook_dyn","nativeSrc":"11343:259:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11389:6:89","nodeType":"YulTypedName","src":"11389:6:89","type":""},{"name":"end","nativeSrc":"11397:3:89","nodeType":"YulTypedName","src":"11397:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11405:5:89","nodeType":"YulTypedName","src":"11405:5:89","type":""}],"src":"11343:259:89"},{"body":{"nativeSrc":"11703:1061:89","nodeType":"YulBlock","src":"11703:1061:89","statements":[{"body":{"nativeSrc":"11749:16:89","nodeType":"YulBlock","src":"11749:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11758:1:89","nodeType":"YulLiteral","src":"11758:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11761:1:89","nodeType":"YulLiteral","src":"11761:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11751:6:89","nodeType":"YulIdentifier","src":"11751:6:89"},"nativeSrc":"11751:12:89","nodeType":"YulFunctionCall","src":"11751:12:89"},"nativeSrc":"11751:12:89","nodeType":"YulExpressionStatement","src":"11751:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11724:7:89","nodeType":"YulIdentifier","src":"11724:7:89"},{"name":"headStart","nativeSrc":"11733:9:89","nodeType":"YulIdentifier","src":"11733:9:89"}],"functionName":{"name":"sub","nativeSrc":"11720:3:89","nodeType":"YulIdentifier","src":"11720:3:89"},"nativeSrc":"11720:23:89","nodeType":"YulFunctionCall","src":"11720:23:89"},{"kind":"number","nativeSrc":"11745:2:89","nodeType":"YulLiteral","src":"11745:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11716:3:89","nodeType":"YulIdentifier","src":"11716:3:89"},"nativeSrc":"11716:32:89","nodeType":"YulFunctionCall","src":"11716:32:89"},"nativeSrc":"11713:52:89","nodeType":"YulIf","src":"11713:52:89"},{"nativeSrc":"11774:37:89","nodeType":"YulVariableDeclaration","src":"11774:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"11801:9:89","nodeType":"YulIdentifier","src":"11801:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"11788:12:89","nodeType":"YulIdentifier","src":"11788:12:89"},"nativeSrc":"11788:23:89","nodeType":"YulFunctionCall","src":"11788:23:89"},"variables":[{"name":"offset","nativeSrc":"11778:6:89","nodeType":"YulTypedName","src":"11778:6:89","type":""}]},{"body":{"nativeSrc":"11854:16:89","nodeType":"YulBlock","src":"11854:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11863:1:89","nodeType":"YulLiteral","src":"11863:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11866:1:89","nodeType":"YulLiteral","src":"11866:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11856:6:89","nodeType":"YulIdentifier","src":"11856:6:89"},"nativeSrc":"11856:12:89","nodeType":"YulFunctionCall","src":"11856:12:89"},"nativeSrc":"11856:12:89","nodeType":"YulExpressionStatement","src":"11856:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11826:6:89","nodeType":"YulIdentifier","src":"11826:6:89"},{"kind":"number","nativeSrc":"11834:18:89","nodeType":"YulLiteral","src":"11834:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11823:2:89","nodeType":"YulIdentifier","src":"11823:2:89"},"nativeSrc":"11823:30:89","nodeType":"YulFunctionCall","src":"11823:30:89"},"nativeSrc":"11820:50:89","nodeType":"YulIf","src":"11820:50:89"},{"nativeSrc":"11879:32:89","nodeType":"YulVariableDeclaration","src":"11879:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"11893:9:89","nodeType":"YulIdentifier","src":"11893:9:89"},{"name":"offset","nativeSrc":"11904:6:89","nodeType":"YulIdentifier","src":"11904:6:89"}],"functionName":{"name":"add","nativeSrc":"11889:3:89","nodeType":"YulIdentifier","src":"11889:3:89"},"nativeSrc":"11889:22:89","nodeType":"YulFunctionCall","src":"11889:22:89"},"variables":[{"name":"_1","nativeSrc":"11883:2:89","nodeType":"YulTypedName","src":"11883:2:89","type":""}]},{"body":{"nativeSrc":"11951:16:89","nodeType":"YulBlock","src":"11951:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11960:1:89","nodeType":"YulLiteral","src":"11960:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"11963:1:89","nodeType":"YulLiteral","src":"11963:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11953:6:89","nodeType":"YulIdentifier","src":"11953:6:89"},"nativeSrc":"11953:12:89","nodeType":"YulFunctionCall","src":"11953:12:89"},"nativeSrc":"11953:12:89","nodeType":"YulExpressionStatement","src":"11953:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11931:7:89","nodeType":"YulIdentifier","src":"11931:7:89"},{"name":"_1","nativeSrc":"11940:2:89","nodeType":"YulIdentifier","src":"11940:2:89"}],"functionName":{"name":"sub","nativeSrc":"11927:3:89","nodeType":"YulIdentifier","src":"11927:3:89"},"nativeSrc":"11927:16:89","nodeType":"YulFunctionCall","src":"11927:16:89"},{"kind":"number","nativeSrc":"11945:4:89","nodeType":"YulLiteral","src":"11945:4:89","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"11923:3:89","nodeType":"YulIdentifier","src":"11923:3:89"},"nativeSrc":"11923:27:89","nodeType":"YulFunctionCall","src":"11923:27:89"},"nativeSrc":"11920:47:89","nodeType":"YulIf","src":"11920:47:89"},{"nativeSrc":"11976:35:89","nodeType":"YulVariableDeclaration","src":"11976:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_2598","nativeSrc":"11989:20:89","nodeType":"YulIdentifier","src":"11989:20:89"},"nativeSrc":"11989:22:89","nodeType":"YulFunctionCall","src":"11989:22:89"},"variables":[{"name":"value","nativeSrc":"11980:5:89","nodeType":"YulTypedName","src":"11980:5:89","type":""}]},{"nativeSrc":"12020:32:89","nodeType":"YulVariableDeclaration","src":"12020:32:89","value":{"arguments":[{"name":"_1","nativeSrc":"12049:2:89","nodeType":"YulIdentifier","src":"12049:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"12036:12:89","nodeType":"YulIdentifier","src":"12036:12:89"},"nativeSrc":"12036:16:89","nodeType":"YulFunctionCall","src":"12036:16:89"},"variables":[{"name":"offset_1","nativeSrc":"12024:8:89","nodeType":"YulTypedName","src":"12024:8:89","type":""}]},{"body":{"nativeSrc":"12097:16:89","nodeType":"YulBlock","src":"12097:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12106:1:89","nodeType":"YulLiteral","src":"12106:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12109:1:89","nodeType":"YulLiteral","src":"12109:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12099:6:89","nodeType":"YulIdentifier","src":"12099:6:89"},"nativeSrc":"12099:12:89","nodeType":"YulFunctionCall","src":"12099:12:89"},"nativeSrc":"12099:12:89","nodeType":"YulExpressionStatement","src":"12099:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"12067:8:89","nodeType":"YulIdentifier","src":"12067:8:89"},{"kind":"number","nativeSrc":"12077:18:89","nodeType":"YulLiteral","src":"12077:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12064:2:89","nodeType":"YulIdentifier","src":"12064:2:89"},"nativeSrc":"12064:32:89","nodeType":"YulFunctionCall","src":"12064:32:89"},"nativeSrc":"12061:52:89","nodeType":"YulIf","src":"12061:52:89"},{"nativeSrc":"12122:27:89","nodeType":"YulVariableDeclaration","src":"12122:27:89","value":{"arguments":[{"name":"_1","nativeSrc":"12136:2:89","nodeType":"YulIdentifier","src":"12136:2:89"},{"name":"offset_1","nativeSrc":"12140:8:89","nodeType":"YulIdentifier","src":"12140:8:89"}],"functionName":{"name":"add","nativeSrc":"12132:3:89","nodeType":"YulIdentifier","src":"12132:3:89"},"nativeSrc":"12132:17:89","nodeType":"YulFunctionCall","src":"12132:17:89"},"variables":[{"name":"_2","nativeSrc":"12126:2:89","nodeType":"YulTypedName","src":"12126:2:89","type":""}]},{"body":{"nativeSrc":"12197:16:89","nodeType":"YulBlock","src":"12197:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12206:1:89","nodeType":"YulLiteral","src":"12206:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12209:1:89","nodeType":"YulLiteral","src":"12209:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12199:6:89","nodeType":"YulIdentifier","src":"12199:6:89"},"nativeSrc":"12199:12:89","nodeType":"YulFunctionCall","src":"12199:12:89"},"nativeSrc":"12199:12:89","nodeType":"YulExpressionStatement","src":"12199:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"12176:2:89","nodeType":"YulIdentifier","src":"12176:2:89"},{"kind":"number","nativeSrc":"12180:4:89","nodeType":"YulLiteral","src":"12180:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"12172:3:89","nodeType":"YulIdentifier","src":"12172:3:89"},"nativeSrc":"12172:13:89","nodeType":"YulFunctionCall","src":"12172:13:89"},{"name":"dataEnd","nativeSrc":"12187:7:89","nodeType":"YulIdentifier","src":"12187:7:89"}],"functionName":{"name":"slt","nativeSrc":"12168:3:89","nodeType":"YulIdentifier","src":"12168:3:89"},"nativeSrc":"12168:27:89","nodeType":"YulFunctionCall","src":"12168:27:89"}],"functionName":{"name":"iszero","nativeSrc":"12161:6:89","nodeType":"YulIdentifier","src":"12161:6:89"},"nativeSrc":"12161:35:89","nodeType":"YulFunctionCall","src":"12161:35:89"},"nativeSrc":"12158:55:89","nodeType":"YulIf","src":"12158:55:89"},{"expression":{"arguments":[{"name":"value","nativeSrc":"12229:5:89","nodeType":"YulIdentifier","src":"12229:5:89"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"12293:2:89","nodeType":"YulIdentifier","src":"12293:2:89"},{"kind":"number","nativeSrc":"12297:2:89","nodeType":"YulLiteral","src":"12297:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12289:3:89","nodeType":"YulIdentifier","src":"12289:3:89"},"nativeSrc":"12289:11:89","nodeType":"YulFunctionCall","src":"12289:11:89"},{"arguments":[{"name":"_2","nativeSrc":"12315:2:89","nodeType":"YulIdentifier","src":"12315:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"12302:12:89","nodeType":"YulIdentifier","src":"12302:12:89"},"nativeSrc":"12302:16:89","nodeType":"YulFunctionCall","src":"12302:16:89"},{"name":"dataEnd","nativeSrc":"12320:7:89","nodeType":"YulIdentifier","src":"12320:7:89"}],"functionName":{"name":"abi_decode_available_length_array_struct_PreHook_dyn","nativeSrc":"12236:52:89","nodeType":"YulIdentifier","src":"12236:52:89"},"nativeSrc":"12236:92:89","nodeType":"YulFunctionCall","src":"12236:92:89"}],"functionName":{"name":"mstore","nativeSrc":"12222:6:89","nodeType":"YulIdentifier","src":"12222:6:89"},"nativeSrc":"12222:107:89","nodeType":"YulFunctionCall","src":"12222:107:89"},"nativeSrc":"12222:107:89","nodeType":"YulExpressionStatement","src":"12222:107:89"},{"nativeSrc":"12338:41:89","nodeType":"YulVariableDeclaration","src":"12338:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"12371:2:89","nodeType":"YulIdentifier","src":"12371:2:89"},{"kind":"number","nativeSrc":"12375:2:89","nodeType":"YulLiteral","src":"12375:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12367:3:89","nodeType":"YulIdentifier","src":"12367:3:89"},"nativeSrc":"12367:11:89","nodeType":"YulFunctionCall","src":"12367:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"12354:12:89","nodeType":"YulIdentifier","src":"12354:12:89"},"nativeSrc":"12354:25:89","nodeType":"YulFunctionCall","src":"12354:25:89"},"variables":[{"name":"offset_2","nativeSrc":"12342:8:89","nodeType":"YulTypedName","src":"12342:8:89","type":""}]},{"body":{"nativeSrc":"12424:16:89","nodeType":"YulBlock","src":"12424:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12433:1:89","nodeType":"YulLiteral","src":"12433:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12436:1:89","nodeType":"YulLiteral","src":"12436:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12426:6:89","nodeType":"YulIdentifier","src":"12426:6:89"},"nativeSrc":"12426:12:89","nodeType":"YulFunctionCall","src":"12426:12:89"},"nativeSrc":"12426:12:89","nodeType":"YulExpressionStatement","src":"12426:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"12394:8:89","nodeType":"YulIdentifier","src":"12394:8:89"},{"kind":"number","nativeSrc":"12404:18:89","nodeType":"YulLiteral","src":"12404:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12391:2:89","nodeType":"YulIdentifier","src":"12391:2:89"},"nativeSrc":"12391:32:89","nodeType":"YulFunctionCall","src":"12391:32:89"},"nativeSrc":"12388:52:89","nodeType":"YulIf","src":"12388:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12460:5:89","nodeType":"YulIdentifier","src":"12460:5:89"},{"kind":"number","nativeSrc":"12467:2:89","nodeType":"YulLiteral","src":"12467:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12456:3:89","nodeType":"YulIdentifier","src":"12456:3:89"},"nativeSrc":"12456:14:89","nodeType":"YulFunctionCall","src":"12456:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"12513:2:89","nodeType":"YulIdentifier","src":"12513:2:89"},{"name":"offset_2","nativeSrc":"12517:8:89","nodeType":"YulIdentifier","src":"12517:8:89"}],"functionName":{"name":"add","nativeSrc":"12509:3:89","nodeType":"YulIdentifier","src":"12509:3:89"},"nativeSrc":"12509:17:89","nodeType":"YulFunctionCall","src":"12509:17:89"},{"name":"dataEnd","nativeSrc":"12528:7:89","nodeType":"YulIdentifier","src":"12528:7:89"}],"functionName":{"name":"abi_decode_array_struct_PostHook_dyn","nativeSrc":"12472:36:89","nodeType":"YulIdentifier","src":"12472:36:89"},"nativeSrc":"12472:64:89","nodeType":"YulFunctionCall","src":"12472:64:89"}],"functionName":{"name":"mstore","nativeSrc":"12449:6:89","nodeType":"YulIdentifier","src":"12449:6:89"},"nativeSrc":"12449:88:89","nodeType":"YulFunctionCall","src":"12449:88:89"},"nativeSrc":"12449:88:89","nodeType":"YulExpressionStatement","src":"12449:88:89"},{"nativeSrc":"12546:41:89","nodeType":"YulVariableDeclaration","src":"12546:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"12579:2:89","nodeType":"YulIdentifier","src":"12579:2:89"},{"kind":"number","nativeSrc":"12583:2:89","nodeType":"YulLiteral","src":"12583:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12575:3:89","nodeType":"YulIdentifier","src":"12575:3:89"},"nativeSrc":"12575:11:89","nodeType":"YulFunctionCall","src":"12575:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"12562:12:89","nodeType":"YulIdentifier","src":"12562:12:89"},"nativeSrc":"12562:25:89","nodeType":"YulFunctionCall","src":"12562:25:89"},"variables":[{"name":"offset_3","nativeSrc":"12550:8:89","nodeType":"YulTypedName","src":"12550:8:89","type":""}]},{"body":{"nativeSrc":"12632:16:89","nodeType":"YulBlock","src":"12632:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12641:1:89","nodeType":"YulLiteral","src":"12641:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12644:1:89","nodeType":"YulLiteral","src":"12644:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12634:6:89","nodeType":"YulIdentifier","src":"12634:6:89"},"nativeSrc":"12634:12:89","nodeType":"YulFunctionCall","src":"12634:12:89"},"nativeSrc":"12634:12:89","nodeType":"YulExpressionStatement","src":"12634:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"12602:8:89","nodeType":"YulIdentifier","src":"12602:8:89"},{"kind":"number","nativeSrc":"12612:18:89","nodeType":"YulLiteral","src":"12612:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12599:2:89","nodeType":"YulIdentifier","src":"12599:2:89"},"nativeSrc":"12599:32:89","nodeType":"YulFunctionCall","src":"12599:32:89"},"nativeSrc":"12596:52:89","nodeType":"YulIf","src":"12596:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12668:5:89","nodeType":"YulIdentifier","src":"12668:5:89"},{"kind":"number","nativeSrc":"12675:2:89","nodeType":"YulLiteral","src":"12675:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12664:3:89","nodeType":"YulIdentifier","src":"12664:3:89"},"nativeSrc":"12664:14:89","nodeType":"YulFunctionCall","src":"12664:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"12710:2:89","nodeType":"YulIdentifier","src":"12710:2:89"},{"name":"offset_3","nativeSrc":"12714:8:89","nodeType":"YulIdentifier","src":"12714:8:89"}],"functionName":{"name":"add","nativeSrc":"12706:3:89","nodeType":"YulIdentifier","src":"12706:3:89"},"nativeSrc":"12706:17:89","nodeType":"YulFunctionCall","src":"12706:17:89"},{"name":"dataEnd","nativeSrc":"12725:7:89","nodeType":"YulIdentifier","src":"12725:7:89"}],"functionName":{"name":"abi_decode_struct_PreHook","nativeSrc":"12680:25:89","nodeType":"YulIdentifier","src":"12680:25:89"},"nativeSrc":"12680:53:89","nodeType":"YulFunctionCall","src":"12680:53:89"}],"functionName":{"name":"mstore","nativeSrc":"12657:6:89","nodeType":"YulIdentifier","src":"12657:6:89"},"nativeSrc":"12657:77:89","nodeType":"YulFunctionCall","src":"12657:77:89"},"nativeSrc":"12657:77:89","nodeType":"YulExpressionStatement","src":"12657:77:89"},{"nativeSrc":"12743:15:89","nodeType":"YulAssignment","src":"12743:15:89","value":{"name":"value","nativeSrc":"12753:5:89","nodeType":"YulIdentifier","src":"12753:5:89"},"variableNames":[{"name":"value0","nativeSrc":"12743:6:89","nodeType":"YulIdentifier","src":"12743:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_SaHooks_$19478_memory_ptr","nativeSrc":"11607:1157:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11669:9:89","nodeType":"YulTypedName","src":"11669:9:89","type":""},{"name":"dataEnd","nativeSrc":"11680:7:89","nodeType":"YulTypedName","src":"11680:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11692:6:89","nodeType":"YulTypedName","src":"11692:6:89","type":""}],"src":"11607:1157:89"},{"body":{"nativeSrc":"12850:103:89","nodeType":"YulBlock","src":"12850:103:89","statements":[{"body":{"nativeSrc":"12896:16:89","nodeType":"YulBlock","src":"12896:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12905:1:89","nodeType":"YulLiteral","src":"12905:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"12908:1:89","nodeType":"YulLiteral","src":"12908:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12898:6:89","nodeType":"YulIdentifier","src":"12898:6:89"},"nativeSrc":"12898:12:89","nodeType":"YulFunctionCall","src":"12898:12:89"},"nativeSrc":"12898:12:89","nodeType":"YulExpressionStatement","src":"12898:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12871:7:89","nodeType":"YulIdentifier","src":"12871:7:89"},{"name":"headStart","nativeSrc":"12880:9:89","nodeType":"YulIdentifier","src":"12880:9:89"}],"functionName":{"name":"sub","nativeSrc":"12867:3:89","nodeType":"YulIdentifier","src":"12867:3:89"},"nativeSrc":"12867:23:89","nodeType":"YulFunctionCall","src":"12867:23:89"},{"kind":"number","nativeSrc":"12892:2:89","nodeType":"YulLiteral","src":"12892:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12863:3:89","nodeType":"YulIdentifier","src":"12863:3:89"},"nativeSrc":"12863:32:89","nodeType":"YulFunctionCall","src":"12863:32:89"},"nativeSrc":"12860:52:89","nodeType":"YulIf","src":"12860:52:89"},{"nativeSrc":"12921:26:89","nodeType":"YulAssignment","src":"12921:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"12937:9:89","nodeType":"YulIdentifier","src":"12937:9:89"}],"functionName":{"name":"mload","nativeSrc":"12931:5:89","nodeType":"YulIdentifier","src":"12931:5:89"},"nativeSrc":"12931:16:89","nodeType":"YulFunctionCall","src":"12931:16:89"},"variableNames":[{"name":"value0","nativeSrc":"12921:6:89","nodeType":"YulIdentifier","src":"12921:6:89"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"12769:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12816:9:89","nodeType":"YulTypedName","src":"12816:9:89","type":""},{"name":"dataEnd","nativeSrc":"12827:7:89","nodeType":"YulTypedName","src":"12827:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12839:6:89","nodeType":"YulTypedName","src":"12839:6:89","type":""}],"src":"12769:184:89"},{"body":{"nativeSrc":"12990:95:89","nodeType":"YulBlock","src":"12990:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13007:1:89","nodeType":"YulLiteral","src":"13007:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"13014:3:89","nodeType":"YulLiteral","src":"13014:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"13019:10:89","nodeType":"YulLiteral","src":"13019:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"13010:3:89","nodeType":"YulIdentifier","src":"13010:3:89"},"nativeSrc":"13010:20:89","nodeType":"YulFunctionCall","src":"13010:20:89"}],"functionName":{"name":"mstore","nativeSrc":"13000:6:89","nodeType":"YulIdentifier","src":"13000:6:89"},"nativeSrc":"13000:31:89","nodeType":"YulFunctionCall","src":"13000:31:89"},"nativeSrc":"13000:31:89","nodeType":"YulExpressionStatement","src":"13000:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13047:1:89","nodeType":"YulLiteral","src":"13047:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"13050:4:89","nodeType":"YulLiteral","src":"13050:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"13040:6:89","nodeType":"YulIdentifier","src":"13040:6:89"},"nativeSrc":"13040:15:89","nodeType":"YulFunctionCall","src":"13040:15:89"},"nativeSrc":"13040:15:89","nodeType":"YulExpressionStatement","src":"13040:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13071:1:89","nodeType":"YulLiteral","src":"13071:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13074:4:89","nodeType":"YulLiteral","src":"13074:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"13064:6:89","nodeType":"YulIdentifier","src":"13064:6:89"},"nativeSrc":"13064:15:89","nodeType":"YulFunctionCall","src":"13064:15:89"},"nativeSrc":"13064:15:89","nodeType":"YulExpressionStatement","src":"13064:15:89"}]},"name":"panic_error_0x32","nativeSrc":"12958:127:89","nodeType":"YulFunctionDefinition","src":"12958:127:89"},{"body":{"nativeSrc":"13247:214:89","nodeType":"YulBlock","src":"13247:214:89","statements":[{"nativeSrc":"13257:26:89","nodeType":"YulAssignment","src":"13257:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13269:9:89","nodeType":"YulIdentifier","src":"13269:9:89"},{"kind":"number","nativeSrc":"13280:2:89","nodeType":"YulLiteral","src":"13280:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13265:3:89","nodeType":"YulIdentifier","src":"13265:3:89"},"nativeSrc":"13265:18:89","nodeType":"YulFunctionCall","src":"13265:18:89"},"variableNames":[{"name":"tail","nativeSrc":"13257:4:89","nodeType":"YulIdentifier","src":"13257:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13299:9:89","nodeType":"YulIdentifier","src":"13299:9:89"},{"arguments":[{"name":"value0","nativeSrc":"13314:6:89","nodeType":"YulIdentifier","src":"13314:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13330:3:89","nodeType":"YulLiteral","src":"13330:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"13335:1:89","nodeType":"YulLiteral","src":"13335:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13326:3:89","nodeType":"YulIdentifier","src":"13326:3:89"},"nativeSrc":"13326:11:89","nodeType":"YulFunctionCall","src":"13326:11:89"},{"kind":"number","nativeSrc":"13339:1:89","nodeType":"YulLiteral","src":"13339:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13322:3:89","nodeType":"YulIdentifier","src":"13322:3:89"},"nativeSrc":"13322:19:89","nodeType":"YulFunctionCall","src":"13322:19:89"}],"functionName":{"name":"and","nativeSrc":"13310:3:89","nodeType":"YulIdentifier","src":"13310:3:89"},"nativeSrc":"13310:32:89","nodeType":"YulFunctionCall","src":"13310:32:89"}],"functionName":{"name":"mstore","nativeSrc":"13292:6:89","nodeType":"YulIdentifier","src":"13292:6:89"},"nativeSrc":"13292:51:89","nodeType":"YulFunctionCall","src":"13292:51:89"},"nativeSrc":"13292:51:89","nodeType":"YulExpressionStatement","src":"13292:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13363:9:89","nodeType":"YulIdentifier","src":"13363:9:89"},{"kind":"number","nativeSrc":"13374:2:89","nodeType":"YulLiteral","src":"13374:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13359:3:89","nodeType":"YulIdentifier","src":"13359:3:89"},"nativeSrc":"13359:18:89","nodeType":"YulFunctionCall","src":"13359:18:89"},{"name":"value1","nativeSrc":"13379:6:89","nodeType":"YulIdentifier","src":"13379:6:89"}],"functionName":{"name":"mstore","nativeSrc":"13352:6:89","nodeType":"YulIdentifier","src":"13352:6:89"},"nativeSrc":"13352:34:89","nodeType":"YulFunctionCall","src":"13352:34:89"},"nativeSrc":"13352:34:89","nodeType":"YulExpressionStatement","src":"13352:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13406:9:89","nodeType":"YulIdentifier","src":"13406:9:89"},{"kind":"number","nativeSrc":"13417:2:89","nodeType":"YulLiteral","src":"13417:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13402:3:89","nodeType":"YulIdentifier","src":"13402:3:89"},"nativeSrc":"13402:18:89","nodeType":"YulFunctionCall","src":"13402:18:89"},{"arguments":[{"name":"value2","nativeSrc":"13426:6:89","nodeType":"YulIdentifier","src":"13426:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13442:3:89","nodeType":"YulLiteral","src":"13442:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"13447:1:89","nodeType":"YulLiteral","src":"13447:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13438:3:89","nodeType":"YulIdentifier","src":"13438:3:89"},"nativeSrc":"13438:11:89","nodeType":"YulFunctionCall","src":"13438:11:89"},{"kind":"number","nativeSrc":"13451:1:89","nodeType":"YulLiteral","src":"13451:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13434:3:89","nodeType":"YulIdentifier","src":"13434:3:89"},"nativeSrc":"13434:19:89","nodeType":"YulFunctionCall","src":"13434:19:89"}],"functionName":{"name":"and","nativeSrc":"13422:3:89","nodeType":"YulIdentifier","src":"13422:3:89"},"nativeSrc":"13422:32:89","nodeType":"YulFunctionCall","src":"13422:32:89"}],"functionName":{"name":"mstore","nativeSrc":"13395:6:89","nodeType":"YulIdentifier","src":"13395:6:89"},"nativeSrc":"13395:60:89","nodeType":"YulFunctionCall","src":"13395:60:89"},"nativeSrc":"13395:60:89","nodeType":"YulExpressionStatement","src":"13395:60:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed","nativeSrc":"13090:371:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13200:9:89","nodeType":"YulTypedName","src":"13200:9:89","type":""},{"name":"value2","nativeSrc":"13211:6:89","nodeType":"YulTypedName","src":"13211:6:89","type":""},{"name":"value1","nativeSrc":"13219:6:89","nodeType":"YulTypedName","src":"13219:6:89","type":""},{"name":"value0","nativeSrc":"13227:6:89","nodeType":"YulTypedName","src":"13227:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13238:4:89","nodeType":"YulTypedName","src":"13238:4:89","type":""}],"src":"13090:371:89"},{"body":{"nativeSrc":"13514:59:89","nodeType":"YulBlock","src":"13514:59:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13531:3:89","nodeType":"YulIdentifier","src":"13531:3:89"},{"arguments":[{"name":"value","nativeSrc":"13540:5:89","nodeType":"YulIdentifier","src":"13540:5:89"},{"kind":"number","nativeSrc":"13547:18:89","nodeType":"YulLiteral","src":"13547:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"13536:3:89","nodeType":"YulIdentifier","src":"13536:3:89"},"nativeSrc":"13536:30:89","nodeType":"YulFunctionCall","src":"13536:30:89"}],"functionName":{"name":"mstore","nativeSrc":"13524:6:89","nodeType":"YulIdentifier","src":"13524:6:89"},"nativeSrc":"13524:43:89","nodeType":"YulFunctionCall","src":"13524:43:89"},"nativeSrc":"13524:43:89","nodeType":"YulExpressionStatement","src":"13524:43:89"}]},"name":"abi_encode_rational_by","nativeSrc":"13466:107:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13498:5:89","nodeType":"YulTypedName","src":"13498:5:89","type":""},{"name":"pos","nativeSrc":"13505:3:89","nodeType":"YulTypedName","src":"13505:3:89","type":""}],"src":"13466:107:89"},{"body":{"nativeSrc":"13686:101:89","nodeType":"YulBlock","src":"13686:101:89","statements":[{"nativeSrc":"13696:26:89","nodeType":"YulAssignment","src":"13696:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13708:9:89","nodeType":"YulIdentifier","src":"13708:9:89"},{"kind":"number","nativeSrc":"13719:2:89","nodeType":"YulLiteral","src":"13719:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13704:3:89","nodeType":"YulIdentifier","src":"13704:3:89"},"nativeSrc":"13704:18:89","nodeType":"YulFunctionCall","src":"13704:18:89"},"variableNames":[{"name":"tail","nativeSrc":"13696:4:89","nodeType":"YulIdentifier","src":"13696:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13738:9:89","nodeType":"YulIdentifier","src":"13738:9:89"},{"arguments":[{"name":"value0","nativeSrc":"13753:6:89","nodeType":"YulIdentifier","src":"13753:6:89"},{"kind":"number","nativeSrc":"13761:18:89","nodeType":"YulLiteral","src":"13761:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"13749:3:89","nodeType":"YulIdentifier","src":"13749:3:89"},"nativeSrc":"13749:31:89","nodeType":"YulFunctionCall","src":"13749:31:89"}],"functionName":{"name":"mstore","nativeSrc":"13731:6:89","nodeType":"YulIdentifier","src":"13731:6:89"},"nativeSrc":"13731:50:89","nodeType":"YulFunctionCall","src":"13731:50:89"},"nativeSrc":"13731:50:89","nodeType":"YulExpressionStatement","src":"13731:50:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"13578:209:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13655:9:89","nodeType":"YulTypedName","src":"13655:9:89","type":""},{"name":"value0","nativeSrc":"13666:6:89","nodeType":"YulTypedName","src":"13666:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13677:4:89","nodeType":"YulTypedName","src":"13677:4:89","type":""}],"src":"13578:209:89"},{"body":{"nativeSrc":"13870:167:89","nodeType":"YulBlock","src":"13870:167:89","statements":[{"body":{"nativeSrc":"13916:16:89","nodeType":"YulBlock","src":"13916:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13925:1:89","nodeType":"YulLiteral","src":"13925:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"13928:1:89","nodeType":"YulLiteral","src":"13928:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13918:6:89","nodeType":"YulIdentifier","src":"13918:6:89"},"nativeSrc":"13918:12:89","nodeType":"YulFunctionCall","src":"13918:12:89"},"nativeSrc":"13918:12:89","nodeType":"YulExpressionStatement","src":"13918:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13891:7:89","nodeType":"YulIdentifier","src":"13891:7:89"},{"name":"headStart","nativeSrc":"13900:9:89","nodeType":"YulIdentifier","src":"13900:9:89"}],"functionName":{"name":"sub","nativeSrc":"13887:3:89","nodeType":"YulIdentifier","src":"13887:3:89"},"nativeSrc":"13887:23:89","nodeType":"YulFunctionCall","src":"13887:23:89"},{"kind":"number","nativeSrc":"13912:2:89","nodeType":"YulLiteral","src":"13912:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13883:3:89","nodeType":"YulIdentifier","src":"13883:3:89"},"nativeSrc":"13883:32:89","nodeType":"YulFunctionCall","src":"13883:32:89"},"nativeSrc":"13880:52:89","nodeType":"YulIf","src":"13880:52:89"},{"nativeSrc":"13941:29:89","nodeType":"YulVariableDeclaration","src":"13941:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"13960:9:89","nodeType":"YulIdentifier","src":"13960:9:89"}],"functionName":{"name":"mload","nativeSrc":"13954:5:89","nodeType":"YulIdentifier","src":"13954:5:89"},"nativeSrc":"13954:16:89","nodeType":"YulFunctionCall","src":"13954:16:89"},"variables":[{"name":"value","nativeSrc":"13945:5:89","nodeType":"YulTypedName","src":"13945:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14001:5:89","nodeType":"YulIdentifier","src":"14001:5:89"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"13979:21:89","nodeType":"YulIdentifier","src":"13979:21:89"},"nativeSrc":"13979:28:89","nodeType":"YulFunctionCall","src":"13979:28:89"},"nativeSrc":"13979:28:89","nodeType":"YulExpressionStatement","src":"13979:28:89"},{"nativeSrc":"14016:15:89","nodeType":"YulAssignment","src":"14016:15:89","value":{"name":"value","nativeSrc":"14026:5:89","nodeType":"YulIdentifier","src":"14026:5:89"},"variableNames":[{"name":"value0","nativeSrc":"14016:6:89","nodeType":"YulIdentifier","src":"14016:6:89"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"13792:245:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13836:9:89","nodeType":"YulTypedName","src":"13836:9:89","type":""},{"name":"dataEnd","nativeSrc":"13847:7:89","nodeType":"YulTypedName","src":"13847:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13859:6:89","nodeType":"YulTypedName","src":"13859:6:89","type":""}],"src":"13792:245:89"},{"body":{"nativeSrc":"14229:309:89","nodeType":"YulBlock","src":"14229:309:89","statements":[{"nativeSrc":"14239:27:89","nodeType":"YulVariableDeclaration","src":"14239:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"14259:6:89","nodeType":"YulIdentifier","src":"14259:6:89"}],"functionName":{"name":"mload","nativeSrc":"14253:5:89","nodeType":"YulIdentifier","src":"14253:5:89"},"nativeSrc":"14253:13:89","nodeType":"YulFunctionCall","src":"14253:13:89"},"variables":[{"name":"length","nativeSrc":"14243:6:89","nodeType":"YulTypedName","src":"14243:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14314:6:89","nodeType":"YulIdentifier","src":"14314:6:89"},{"kind":"number","nativeSrc":"14322:4:89","nodeType":"YulLiteral","src":"14322:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14310:3:89","nodeType":"YulIdentifier","src":"14310:3:89"},"nativeSrc":"14310:17:89","nodeType":"YulFunctionCall","src":"14310:17:89"},{"name":"pos","nativeSrc":"14329:3:89","nodeType":"YulIdentifier","src":"14329:3:89"},{"name":"length","nativeSrc":"14334:6:89","nodeType":"YulIdentifier","src":"14334:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"14275:34:89","nodeType":"YulIdentifier","src":"14275:34:89"},"nativeSrc":"14275:66:89","nodeType":"YulFunctionCall","src":"14275:66:89"},"nativeSrc":"14275:66:89","nodeType":"YulExpressionStatement","src":"14275:66:89"},{"nativeSrc":"14350:29:89","nodeType":"YulVariableDeclaration","src":"14350:29:89","value":{"arguments":[{"name":"pos","nativeSrc":"14367:3:89","nodeType":"YulIdentifier","src":"14367:3:89"},{"name":"length","nativeSrc":"14372:6:89","nodeType":"YulIdentifier","src":"14372:6:89"}],"functionName":{"name":"add","nativeSrc":"14363:3:89","nodeType":"YulIdentifier","src":"14363:3:89"},"nativeSrc":"14363:16:89","nodeType":"YulFunctionCall","src":"14363:16:89"},"variables":[{"name":"end_1","nativeSrc":"14354:5:89","nodeType":"YulTypedName","src":"14354:5:89","type":""}]},{"nativeSrc":"14388:29:89","nodeType":"YulVariableDeclaration","src":"14388:29:89","value":{"arguments":[{"name":"value1","nativeSrc":"14410:6:89","nodeType":"YulIdentifier","src":"14410:6:89"}],"functionName":{"name":"mload","nativeSrc":"14404:5:89","nodeType":"YulIdentifier","src":"14404:5:89"},"nativeSrc":"14404:13:89","nodeType":"YulFunctionCall","src":"14404:13:89"},"variables":[{"name":"length_1","nativeSrc":"14392:8:89","nodeType":"YulTypedName","src":"14392:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"14465:6:89","nodeType":"YulIdentifier","src":"14465:6:89"},{"kind":"number","nativeSrc":"14473:4:89","nodeType":"YulLiteral","src":"14473:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14461:3:89","nodeType":"YulIdentifier","src":"14461:3:89"},"nativeSrc":"14461:17:89","nodeType":"YulFunctionCall","src":"14461:17:89"},{"name":"end_1","nativeSrc":"14480:5:89","nodeType":"YulIdentifier","src":"14480:5:89"},{"name":"length_1","nativeSrc":"14487:8:89","nodeType":"YulIdentifier","src":"14487:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"14426:34:89","nodeType":"YulIdentifier","src":"14426:34:89"},"nativeSrc":"14426:70:89","nodeType":"YulFunctionCall","src":"14426:70:89"},"nativeSrc":"14426:70:89","nodeType":"YulExpressionStatement","src":"14426:70:89"},{"nativeSrc":"14505:27:89","nodeType":"YulAssignment","src":"14505:27:89","value":{"arguments":[{"name":"end_1","nativeSrc":"14516:5:89","nodeType":"YulIdentifier","src":"14516:5:89"},{"name":"length_1","nativeSrc":"14523:8:89","nodeType":"YulIdentifier","src":"14523:8:89"}],"functionName":{"name":"add","nativeSrc":"14512:3:89","nodeType":"YulIdentifier","src":"14512:3:89"},"nativeSrc":"14512:20:89","nodeType":"YulFunctionCall","src":"14512:20:89"},"variableNames":[{"name":"end","nativeSrc":"14505:3:89","nodeType":"YulIdentifier","src":"14505:3:89"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"14042:496:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14197:3:89","nodeType":"YulTypedName","src":"14197:3:89","type":""},{"name":"value1","nativeSrc":"14202:6:89","nodeType":"YulTypedName","src":"14202:6:89","type":""},{"name":"value0","nativeSrc":"14210:6:89","nodeType":"YulTypedName","src":"14210:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14221:3:89","nodeType":"YulTypedName","src":"14221:3:89","type":""}],"src":"14042:496:89"},{"body":{"nativeSrc":"14590:185:89","nodeType":"YulBlock","src":"14590:185:89","statements":[{"body":{"nativeSrc":"14629:111:89","nodeType":"YulBlock","src":"14629:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14650:1:89","nodeType":"YulLiteral","src":"14650:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"14657:3:89","nodeType":"YulLiteral","src":"14657:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"14662:10:89","nodeType":"YulLiteral","src":"14662:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"14653:3:89","nodeType":"YulIdentifier","src":"14653:3:89"},"nativeSrc":"14653:20:89","nodeType":"YulFunctionCall","src":"14653:20:89"}],"functionName":{"name":"mstore","nativeSrc":"14643:6:89","nodeType":"YulIdentifier","src":"14643:6:89"},"nativeSrc":"14643:31:89","nodeType":"YulFunctionCall","src":"14643:31:89"},"nativeSrc":"14643:31:89","nodeType":"YulExpressionStatement","src":"14643:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14694:1:89","nodeType":"YulLiteral","src":"14694:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"14697:4:89","nodeType":"YulLiteral","src":"14697:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"14687:6:89","nodeType":"YulIdentifier","src":"14687:6:89"},"nativeSrc":"14687:15:89","nodeType":"YulFunctionCall","src":"14687:15:89"},"nativeSrc":"14687:15:89","nodeType":"YulExpressionStatement","src":"14687:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14722:1:89","nodeType":"YulLiteral","src":"14722:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"14725:4:89","nodeType":"YulLiteral","src":"14725:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14715:6:89","nodeType":"YulIdentifier","src":"14715:6:89"},"nativeSrc":"14715:15:89","nodeType":"YulFunctionCall","src":"14715:15:89"},"nativeSrc":"14715:15:89","nodeType":"YulExpressionStatement","src":"14715:15:89"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"14606:5:89","nodeType":"YulIdentifier","src":"14606:5:89"},{"arguments":[{"kind":"number","nativeSrc":"14617:1:89","nodeType":"YulLiteral","src":"14617:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"14613:3:89","nodeType":"YulIdentifier","src":"14613:3:89"},"nativeSrc":"14613:6:89","nodeType":"YulFunctionCall","src":"14613:6:89"}],"functionName":{"name":"eq","nativeSrc":"14603:2:89","nodeType":"YulIdentifier","src":"14603:2:89"},"nativeSrc":"14603:17:89","nodeType":"YulFunctionCall","src":"14603:17:89"},"nativeSrc":"14600:140:89","nodeType":"YulIf","src":"14600:140:89"},{"nativeSrc":"14749:20:89","nodeType":"YulAssignment","src":"14749:20:89","value":{"arguments":[{"name":"value","nativeSrc":"14760:5:89","nodeType":"YulIdentifier","src":"14760:5:89"},{"kind":"number","nativeSrc":"14767:1:89","nodeType":"YulLiteral","src":"14767:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14756:3:89","nodeType":"YulIdentifier","src":"14756:3:89"},"nativeSrc":"14756:13:89","nodeType":"YulFunctionCall","src":"14756:13:89"},"variableNames":[{"name":"ret","nativeSrc":"14749:3:89","nodeType":"YulIdentifier","src":"14749:3:89"}]}]},"name":"increment_t_uint256","nativeSrc":"14543:232:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14572:5:89","nodeType":"YulTypedName","src":"14572:5:89","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"14582:3:89","nodeType":"YulTypedName","src":"14582:3:89","type":""}],"src":"14543:232:89"},{"body":{"nativeSrc":"14880:1089:89","nodeType":"YulBlock","src":"14880:1089:89","statements":[{"body":{"nativeSrc":"14926:16:89","nodeType":"YulBlock","src":"14926:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14935:1:89","nodeType":"YulLiteral","src":"14935:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"14938:1:89","nodeType":"YulLiteral","src":"14938:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14928:6:89","nodeType":"YulIdentifier","src":"14928:6:89"},"nativeSrc":"14928:12:89","nodeType":"YulFunctionCall","src":"14928:12:89"},"nativeSrc":"14928:12:89","nodeType":"YulExpressionStatement","src":"14928:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14901:7:89","nodeType":"YulIdentifier","src":"14901:7:89"},{"name":"headStart","nativeSrc":"14910:9:89","nodeType":"YulIdentifier","src":"14910:9:89"}],"functionName":{"name":"sub","nativeSrc":"14897:3:89","nodeType":"YulIdentifier","src":"14897:3:89"},"nativeSrc":"14897:23:89","nodeType":"YulFunctionCall","src":"14897:23:89"},{"kind":"number","nativeSrc":"14922:2:89","nodeType":"YulLiteral","src":"14922:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14893:3:89","nodeType":"YulIdentifier","src":"14893:3:89"},"nativeSrc":"14893:32:89","nodeType":"YulFunctionCall","src":"14893:32:89"},"nativeSrc":"14890:52:89","nodeType":"YulIf","src":"14890:52:89"},{"nativeSrc":"14951:37:89","nodeType":"YulVariableDeclaration","src":"14951:37:89","value":{"arguments":[{"name":"headStart","nativeSrc":"14978:9:89","nodeType":"YulIdentifier","src":"14978:9:89"}],"functionName":{"name":"calldataload","nativeSrc":"14965:12:89","nodeType":"YulIdentifier","src":"14965:12:89"},"nativeSrc":"14965:23:89","nodeType":"YulFunctionCall","src":"14965:23:89"},"variables":[{"name":"offset","nativeSrc":"14955:6:89","nodeType":"YulTypedName","src":"14955:6:89","type":""}]},{"body":{"nativeSrc":"15031:16:89","nodeType":"YulBlock","src":"15031:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15040:1:89","nodeType":"YulLiteral","src":"15040:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"15043:1:89","nodeType":"YulLiteral","src":"15043:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15033:6:89","nodeType":"YulIdentifier","src":"15033:6:89"},"nativeSrc":"15033:12:89","nodeType":"YulFunctionCall","src":"15033:12:89"},"nativeSrc":"15033:12:89","nodeType":"YulExpressionStatement","src":"15033:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"15003:6:89","nodeType":"YulIdentifier","src":"15003:6:89"},{"kind":"number","nativeSrc":"15011:18:89","nodeType":"YulLiteral","src":"15011:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15000:2:89","nodeType":"YulIdentifier","src":"15000:2:89"},"nativeSrc":"15000:30:89","nodeType":"YulFunctionCall","src":"15000:30:89"},"nativeSrc":"14997:50:89","nodeType":"YulIf","src":"14997:50:89"},{"nativeSrc":"15056:32:89","nodeType":"YulVariableDeclaration","src":"15056:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"15070:9:89","nodeType":"YulIdentifier","src":"15070:9:89"},{"name":"offset","nativeSrc":"15081:6:89","nodeType":"YulIdentifier","src":"15081:6:89"}],"functionName":{"name":"add","nativeSrc":"15066:3:89","nodeType":"YulIdentifier","src":"15066:3:89"},"nativeSrc":"15066:22:89","nodeType":"YulFunctionCall","src":"15066:22:89"},"variables":[{"name":"_1","nativeSrc":"15060:2:89","nodeType":"YulTypedName","src":"15060:2:89","type":""}]},{"body":{"nativeSrc":"15128:16:89","nodeType":"YulBlock","src":"15128:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15137:1:89","nodeType":"YulLiteral","src":"15137:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"15140:1:89","nodeType":"YulLiteral","src":"15140:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15130:6:89","nodeType":"YulIdentifier","src":"15130:6:89"},"nativeSrc":"15130:12:89","nodeType":"YulFunctionCall","src":"15130:12:89"},"nativeSrc":"15130:12:89","nodeType":"YulExpressionStatement","src":"15130:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15108:7:89","nodeType":"YulIdentifier","src":"15108:7:89"},{"name":"_1","nativeSrc":"15117:2:89","nodeType":"YulIdentifier","src":"15117:2:89"}],"functionName":{"name":"sub","nativeSrc":"15104:3:89","nodeType":"YulIdentifier","src":"15104:3:89"},"nativeSrc":"15104:16:89","nodeType":"YulFunctionCall","src":"15104:16:89"},{"kind":"number","nativeSrc":"15122:4:89","nodeType":"YulLiteral","src":"15122:4:89","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"15100:3:89","nodeType":"YulIdentifier","src":"15100:3:89"},"nativeSrc":"15100:27:89","nodeType":"YulFunctionCall","src":"15100:27:89"},"nativeSrc":"15097:47:89","nodeType":"YulIf","src":"15097:47:89"},{"nativeSrc":"15153:35:89","nodeType":"YulVariableDeclaration","src":"15153:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_2600","nativeSrc":"15166:20:89","nodeType":"YulIdentifier","src":"15166:20:89"},"nativeSrc":"15166:22:89","nodeType":"YulFunctionCall","src":"15166:22:89"},"variables":[{"name":"value","nativeSrc":"15157:5:89","nodeType":"YulTypedName","src":"15157:5:89","type":""}]},{"nativeSrc":"15197:31:89","nodeType":"YulVariableDeclaration","src":"15197:31:89","value":{"arguments":[{"name":"_1","nativeSrc":"15225:2:89","nodeType":"YulIdentifier","src":"15225:2:89"}],"functionName":{"name":"calldataload","nativeSrc":"15212:12:89","nodeType":"YulIdentifier","src":"15212:12:89"},"nativeSrc":"15212:16:89","nodeType":"YulFunctionCall","src":"15212:16:89"},"variables":[{"name":"value_1","nativeSrc":"15201:7:89","nodeType":"YulTypedName","src":"15201:7:89","type":""}]},{"body":{"nativeSrc":"15294:16:89","nodeType":"YulBlock","src":"15294:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15303:1:89","nodeType":"YulLiteral","src":"15303:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"15306:1:89","nodeType":"YulLiteral","src":"15306:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15296:6:89","nodeType":"YulIdentifier","src":"15296:6:89"},"nativeSrc":"15296:12:89","nodeType":"YulFunctionCall","src":"15296:12:89"},"nativeSrc":"15296:12:89","nodeType":"YulExpressionStatement","src":"15296:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"15250:7:89","nodeType":"YulIdentifier","src":"15250:7:89"},{"arguments":[{"name":"value_1","nativeSrc":"15263:7:89","nodeType":"YulIdentifier","src":"15263:7:89"},{"kind":"number","nativeSrc":"15272:18:89","nodeType":"YulLiteral","src":"15272:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"15259:3:89","nodeType":"YulIdentifier","src":"15259:3:89"},"nativeSrc":"15259:32:89","nodeType":"YulFunctionCall","src":"15259:32:89"}],"functionName":{"name":"eq","nativeSrc":"15247:2:89","nodeType":"YulIdentifier","src":"15247:2:89"},"nativeSrc":"15247:45:89","nodeType":"YulFunctionCall","src":"15247:45:89"}],"functionName":{"name":"iszero","nativeSrc":"15240:6:89","nodeType":"YulIdentifier","src":"15240:6:89"},"nativeSrc":"15240:53:89","nodeType":"YulFunctionCall","src":"15240:53:89"},"nativeSrc":"15237:73:89","nodeType":"YulIf","src":"15237:73:89"},{"expression":{"arguments":[{"name":"value","nativeSrc":"15326:5:89","nodeType":"YulIdentifier","src":"15326:5:89"},{"name":"value_1","nativeSrc":"15333:7:89","nodeType":"YulIdentifier","src":"15333:7:89"}],"functionName":{"name":"mstore","nativeSrc":"15319:6:89","nodeType":"YulIdentifier","src":"15319:6:89"},"nativeSrc":"15319:22:89","nodeType":"YulFunctionCall","src":"15319:22:89"},"nativeSrc":"15319:22:89","nodeType":"YulExpressionStatement","src":"15319:22:89"},{"nativeSrc":"15350:16:89","nodeType":"YulVariableDeclaration","src":"15350:16:89","value":{"kind":"number","nativeSrc":"15365:1:89","nodeType":"YulLiteral","src":"15365:1:89","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"15354:7:89","nodeType":"YulTypedName","src":"15354:7:89","type":""}]},{"nativeSrc":"15375:36:89","nodeType":"YulAssignment","src":"15375:36:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"15403:2:89","nodeType":"YulIdentifier","src":"15403:2:89"},{"kind":"number","nativeSrc":"15407:2:89","nodeType":"YulLiteral","src":"15407:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15399:3:89","nodeType":"YulIdentifier","src":"15399:3:89"},"nativeSrc":"15399:11:89","nodeType":"YulFunctionCall","src":"15399:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"15386:12:89","nodeType":"YulIdentifier","src":"15386:12:89"},"nativeSrc":"15386:25:89","nodeType":"YulFunctionCall","src":"15386:25:89"},"variableNames":[{"name":"value_2","nativeSrc":"15375:7:89","nodeType":"YulIdentifier","src":"15375:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15431:5:89","nodeType":"YulIdentifier","src":"15431:5:89"},{"kind":"number","nativeSrc":"15438:2:89","nodeType":"YulLiteral","src":"15438:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15427:3:89","nodeType":"YulIdentifier","src":"15427:3:89"},"nativeSrc":"15427:14:89","nodeType":"YulFunctionCall","src":"15427:14:89"},{"name":"value_2","nativeSrc":"15443:7:89","nodeType":"YulIdentifier","src":"15443:7:89"}],"functionName":{"name":"mstore","nativeSrc":"15420:6:89","nodeType":"YulIdentifier","src":"15420:6:89"},"nativeSrc":"15420:31:89","nodeType":"YulFunctionCall","src":"15420:31:89"},"nativeSrc":"15420:31:89","nodeType":"YulExpressionStatement","src":"15420:31:89"},{"nativeSrc":"15460:16:89","nodeType":"YulVariableDeclaration","src":"15460:16:89","value":{"kind":"number","nativeSrc":"15475:1:89","nodeType":"YulLiteral","src":"15475:1:89","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"15464:7:89","nodeType":"YulTypedName","src":"15464:7:89","type":""}]},{"nativeSrc":"15485:36:89","nodeType":"YulAssignment","src":"15485:36:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"15513:2:89","nodeType":"YulIdentifier","src":"15513:2:89"},{"kind":"number","nativeSrc":"15517:2:89","nodeType":"YulLiteral","src":"15517:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15509:3:89","nodeType":"YulIdentifier","src":"15509:3:89"},"nativeSrc":"15509:11:89","nodeType":"YulFunctionCall","src":"15509:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"15496:12:89","nodeType":"YulIdentifier","src":"15496:12:89"},"nativeSrc":"15496:25:89","nodeType":"YulFunctionCall","src":"15496:25:89"},"variableNames":[{"name":"value_3","nativeSrc":"15485:7:89","nodeType":"YulIdentifier","src":"15485:7:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15541:5:89","nodeType":"YulIdentifier","src":"15541:5:89"},{"kind":"number","nativeSrc":"15548:2:89","nodeType":"YulLiteral","src":"15548:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15537:3:89","nodeType":"YulIdentifier","src":"15537:3:89"},"nativeSrc":"15537:14:89","nodeType":"YulFunctionCall","src":"15537:14:89"},{"name":"value_3","nativeSrc":"15553:7:89","nodeType":"YulIdentifier","src":"15553:7:89"}],"functionName":{"name":"mstore","nativeSrc":"15530:6:89","nodeType":"YulIdentifier","src":"15530:6:89"},"nativeSrc":"15530:31:89","nodeType":"YulFunctionCall","src":"15530:31:89"},"nativeSrc":"15530:31:89","nodeType":"YulExpressionStatement","src":"15530:31:89"},{"nativeSrc":"15570:41:89","nodeType":"YulVariableDeclaration","src":"15570:41:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"15603:2:89","nodeType":"YulIdentifier","src":"15603:2:89"},{"kind":"number","nativeSrc":"15607:2:89","nodeType":"YulLiteral","src":"15607:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15599:3:89","nodeType":"YulIdentifier","src":"15599:3:89"},"nativeSrc":"15599:11:89","nodeType":"YulFunctionCall","src":"15599:11:89"}],"functionName":{"name":"calldataload","nativeSrc":"15586:12:89","nodeType":"YulIdentifier","src":"15586:12:89"},"nativeSrc":"15586:25:89","nodeType":"YulFunctionCall","src":"15586:25:89"},"variables":[{"name":"offset_1","nativeSrc":"15574:8:89","nodeType":"YulTypedName","src":"15574:8:89","type":""}]},{"body":{"nativeSrc":"15656:16:89","nodeType":"YulBlock","src":"15656:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15665:1:89","nodeType":"YulLiteral","src":"15665:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"15668:1:89","nodeType":"YulLiteral","src":"15668:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15658:6:89","nodeType":"YulIdentifier","src":"15658:6:89"},"nativeSrc":"15658:12:89","nodeType":"YulFunctionCall","src":"15658:12:89"},"nativeSrc":"15658:12:89","nodeType":"YulExpressionStatement","src":"15658:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"15626:8:89","nodeType":"YulIdentifier","src":"15626:8:89"},{"kind":"number","nativeSrc":"15636:18:89","nodeType":"YulLiteral","src":"15636:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15623:2:89","nodeType":"YulIdentifier","src":"15623:2:89"},"nativeSrc":"15623:32:89","nodeType":"YulFunctionCall","src":"15623:32:89"},"nativeSrc":"15620:52:89","nodeType":"YulIf","src":"15620:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15692:5:89","nodeType":"YulIdentifier","src":"15692:5:89"},{"kind":"number","nativeSrc":"15699:2:89","nodeType":"YulLiteral","src":"15699:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15688:3:89","nodeType":"YulIdentifier","src":"15688:3:89"},"nativeSrc":"15688:14:89","nodeType":"YulFunctionCall","src":"15688:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"15725:2:89","nodeType":"YulIdentifier","src":"15725:2:89"},{"name":"offset_1","nativeSrc":"15729:8:89","nodeType":"YulIdentifier","src":"15729:8:89"}],"functionName":{"name":"add","nativeSrc":"15721:3:89","nodeType":"YulIdentifier","src":"15721:3:89"},"nativeSrc":"15721:17:89","nodeType":"YulFunctionCall","src":"15721:17:89"},{"name":"dataEnd","nativeSrc":"15740:7:89","nodeType":"YulIdentifier","src":"15740:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"15704:16:89","nodeType":"YulIdentifier","src":"15704:16:89"},"nativeSrc":"15704:44:89","nodeType":"YulFunctionCall","src":"15704:44:89"}],"functionName":{"name":"mstore","nativeSrc":"15681:6:89","nodeType":"YulIdentifier","src":"15681:6:89"},"nativeSrc":"15681:68:89","nodeType":"YulFunctionCall","src":"15681:68:89"},"nativeSrc":"15681:68:89","nodeType":"YulExpressionStatement","src":"15681:68:89"},{"nativeSrc":"15758:42:89","nodeType":"YulVariableDeclaration","src":"15758:42:89","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"15791:2:89","nodeType":"YulIdentifier","src":"15791:2:89"},{"kind":"number","nativeSrc":"15795:3:89","nodeType":"YulLiteral","src":"15795:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15787:3:89","nodeType":"YulIdentifier","src":"15787:3:89"},"nativeSrc":"15787:12:89","nodeType":"YulFunctionCall","src":"15787:12:89"}],"functionName":{"name":"calldataload","nativeSrc":"15774:12:89","nodeType":"YulIdentifier","src":"15774:12:89"},"nativeSrc":"15774:26:89","nodeType":"YulFunctionCall","src":"15774:26:89"},"variables":[{"name":"offset_2","nativeSrc":"15762:8:89","nodeType":"YulTypedName","src":"15762:8:89","type":""}]},{"body":{"nativeSrc":"15845:16:89","nodeType":"YulBlock","src":"15845:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15854:1:89","nodeType":"YulLiteral","src":"15854:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"15857:1:89","nodeType":"YulLiteral","src":"15857:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15847:6:89","nodeType":"YulIdentifier","src":"15847:6:89"},"nativeSrc":"15847:12:89","nodeType":"YulFunctionCall","src":"15847:12:89"},"nativeSrc":"15847:12:89","nodeType":"YulExpressionStatement","src":"15847:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"15815:8:89","nodeType":"YulIdentifier","src":"15815:8:89"},{"kind":"number","nativeSrc":"15825:18:89","nodeType":"YulLiteral","src":"15825:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15812:2:89","nodeType":"YulIdentifier","src":"15812:2:89"},"nativeSrc":"15812:32:89","nodeType":"YulFunctionCall","src":"15812:32:89"},"nativeSrc":"15809:52:89","nodeType":"YulIf","src":"15809:52:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15881:5:89","nodeType":"YulIdentifier","src":"15881:5:89"},{"kind":"number","nativeSrc":"15888:3:89","nodeType":"YulLiteral","src":"15888:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15877:3:89","nodeType":"YulIdentifier","src":"15877:3:89"},"nativeSrc":"15877:15:89","nodeType":"YulFunctionCall","src":"15877:15:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"15915:2:89","nodeType":"YulIdentifier","src":"15915:2:89"},{"name":"offset_2","nativeSrc":"15919:8:89","nodeType":"YulIdentifier","src":"15919:8:89"}],"functionName":{"name":"add","nativeSrc":"15911:3:89","nodeType":"YulIdentifier","src":"15911:3:89"},"nativeSrc":"15911:17:89","nodeType":"YulFunctionCall","src":"15911:17:89"},{"name":"dataEnd","nativeSrc":"15930:7:89","nodeType":"YulIdentifier","src":"15930:7:89"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"15894:16:89","nodeType":"YulIdentifier","src":"15894:16:89"},"nativeSrc":"15894:44:89","nodeType":"YulFunctionCall","src":"15894:44:89"}],"functionName":{"name":"mstore","nativeSrc":"15870:6:89","nodeType":"YulIdentifier","src":"15870:6:89"},"nativeSrc":"15870:69:89","nodeType":"YulFunctionCall","src":"15870:69:89"},"nativeSrc":"15870:69:89","nodeType":"YulExpressionStatement","src":"15870:69:89"},{"nativeSrc":"15948:15:89","nodeType":"YulAssignment","src":"15948:15:89","value":{"name":"value","nativeSrc":"15958:5:89","nodeType":"YulIdentifier","src":"15958:5:89"},"variableNames":[{"name":"value0","nativeSrc":"15948:6:89","nodeType":"YulIdentifier","src":"15948:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr","nativeSrc":"14780:1189:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14846:9:89","nodeType":"YulTypedName","src":"14846:9:89","type":""},{"name":"dataEnd","nativeSrc":"14857:7:89","nodeType":"YulTypedName","src":"14857:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14869:6:89","nodeType":"YulTypedName","src":"14869:6:89","type":""}],"src":"14780:1189:89"},{"body":{"nativeSrc":"16149:211:89","nodeType":"YulBlock","src":"16149:211:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16166:9:89","nodeType":"YulIdentifier","src":"16166:9:89"},{"arguments":[{"name":"value0","nativeSrc":"16181:6:89","nodeType":"YulIdentifier","src":"16181:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16197:3:89","nodeType":"YulLiteral","src":"16197:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"16202:1:89","nodeType":"YulLiteral","src":"16202:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"16193:3:89","nodeType":"YulIdentifier","src":"16193:3:89"},"nativeSrc":"16193:11:89","nodeType":"YulFunctionCall","src":"16193:11:89"},{"kind":"number","nativeSrc":"16206:1:89","nodeType":"YulLiteral","src":"16206:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16189:3:89","nodeType":"YulIdentifier","src":"16189:3:89"},"nativeSrc":"16189:19:89","nodeType":"YulFunctionCall","src":"16189:19:89"}],"functionName":{"name":"and","nativeSrc":"16177:3:89","nodeType":"YulIdentifier","src":"16177:3:89"},"nativeSrc":"16177:32:89","nodeType":"YulFunctionCall","src":"16177:32:89"}],"functionName":{"name":"mstore","nativeSrc":"16159:6:89","nodeType":"YulIdentifier","src":"16159:6:89"},"nativeSrc":"16159:51:89","nodeType":"YulFunctionCall","src":"16159:51:89"},"nativeSrc":"16159:51:89","nodeType":"YulExpressionStatement","src":"16159:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16230:9:89","nodeType":"YulIdentifier","src":"16230:9:89"},{"kind":"number","nativeSrc":"16241:2:89","nodeType":"YulLiteral","src":"16241:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16226:3:89","nodeType":"YulIdentifier","src":"16226:3:89"},"nativeSrc":"16226:18:89","nodeType":"YulFunctionCall","src":"16226:18:89"},{"name":"value1","nativeSrc":"16246:6:89","nodeType":"YulIdentifier","src":"16246:6:89"}],"functionName":{"name":"mstore","nativeSrc":"16219:6:89","nodeType":"YulIdentifier","src":"16219:6:89"},"nativeSrc":"16219:34:89","nodeType":"YulFunctionCall","src":"16219:34:89"},"nativeSrc":"16219:34:89","nodeType":"YulExpressionStatement","src":"16219:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16273:9:89","nodeType":"YulIdentifier","src":"16273:9:89"},{"kind":"number","nativeSrc":"16284:2:89","nodeType":"YulLiteral","src":"16284:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16269:3:89","nodeType":"YulIdentifier","src":"16269:3:89"},"nativeSrc":"16269:18:89","nodeType":"YulFunctionCall","src":"16269:18:89"},{"kind":"number","nativeSrc":"16289:2:89","nodeType":"YulLiteral","src":"16289:2:89","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"16262:6:89","nodeType":"YulIdentifier","src":"16262:6:89"},"nativeSrc":"16262:30:89","nodeType":"YulFunctionCall","src":"16262:30:89"},"nativeSrc":"16262:30:89","nodeType":"YulExpressionStatement","src":"16262:30:89"},{"nativeSrc":"16301:53:89","nodeType":"YulAssignment","src":"16301:53:89","value":{"arguments":[{"name":"value2","nativeSrc":"16327:6:89","nodeType":"YulIdentifier","src":"16327:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"16339:9:89","nodeType":"YulIdentifier","src":"16339:9:89"},{"kind":"number","nativeSrc":"16350:2:89","nodeType":"YulLiteral","src":"16350:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16335:3:89","nodeType":"YulIdentifier","src":"16335:3:89"},"nativeSrc":"16335:18:89","nodeType":"YulFunctionCall","src":"16335:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"16309:17:89","nodeType":"YulIdentifier","src":"16309:17:89"},"nativeSrc":"16309:45:89","nodeType":"YulFunctionCall","src":"16309:45:89"},"variableNames":[{"name":"tail","nativeSrc":"16301:4:89","nodeType":"YulIdentifier","src":"16301:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"15974:386:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16102:9:89","nodeType":"YulTypedName","src":"16102:9:89","type":""},{"name":"value2","nativeSrc":"16113:6:89","nodeType":"YulTypedName","src":"16113:6:89","type":""},{"name":"value1","nativeSrc":"16121:6:89","nodeType":"YulTypedName","src":"16121:6:89","type":""},{"name":"value0","nativeSrc":"16129:6:89","nodeType":"YulTypedName","src":"16129:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16140:4:89","nodeType":"YulTypedName","src":"16140:4:89","type":""}],"src":"15974:386:89"},{"body":{"nativeSrc":"16455:577:89","nodeType":"YulBlock","src":"16455:577:89","statements":[{"body":{"nativeSrc":"16501:16:89","nodeType":"YulBlock","src":"16501:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16510:1:89","nodeType":"YulLiteral","src":"16510:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"16513:1:89","nodeType":"YulLiteral","src":"16513:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16503:6:89","nodeType":"YulIdentifier","src":"16503:6:89"},"nativeSrc":"16503:12:89","nodeType":"YulFunctionCall","src":"16503:12:89"},"nativeSrc":"16503:12:89","nodeType":"YulExpressionStatement","src":"16503:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16476:7:89","nodeType":"YulIdentifier","src":"16476:7:89"},{"name":"headStart","nativeSrc":"16485:9:89","nodeType":"YulIdentifier","src":"16485:9:89"}],"functionName":{"name":"sub","nativeSrc":"16472:3:89","nodeType":"YulIdentifier","src":"16472:3:89"},"nativeSrc":"16472:23:89","nodeType":"YulFunctionCall","src":"16472:23:89"},{"kind":"number","nativeSrc":"16497:2:89","nodeType":"YulLiteral","src":"16497:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16468:3:89","nodeType":"YulIdentifier","src":"16468:3:89"},"nativeSrc":"16468:32:89","nodeType":"YulFunctionCall","src":"16468:32:89"},"nativeSrc":"16465:52:89","nodeType":"YulIf","src":"16465:52:89"},{"nativeSrc":"16526:30:89","nodeType":"YulVariableDeclaration","src":"16526:30:89","value":{"arguments":[{"name":"headStart","nativeSrc":"16546:9:89","nodeType":"YulIdentifier","src":"16546:9:89"}],"functionName":{"name":"mload","nativeSrc":"16540:5:89","nodeType":"YulIdentifier","src":"16540:5:89"},"nativeSrc":"16540:16:89","nodeType":"YulFunctionCall","src":"16540:16:89"},"variables":[{"name":"offset","nativeSrc":"16530:6:89","nodeType":"YulTypedName","src":"16530:6:89","type":""}]},{"body":{"nativeSrc":"16599:16:89","nodeType":"YulBlock","src":"16599:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16608:1:89","nodeType":"YulLiteral","src":"16608:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"16611:1:89","nodeType":"YulLiteral","src":"16611:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16601:6:89","nodeType":"YulIdentifier","src":"16601:6:89"},"nativeSrc":"16601:12:89","nodeType":"YulFunctionCall","src":"16601:12:89"},"nativeSrc":"16601:12:89","nodeType":"YulExpressionStatement","src":"16601:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16571:6:89","nodeType":"YulIdentifier","src":"16571:6:89"},{"kind":"number","nativeSrc":"16579:18:89","nodeType":"YulLiteral","src":"16579:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16568:2:89","nodeType":"YulIdentifier","src":"16568:2:89"},"nativeSrc":"16568:30:89","nodeType":"YulFunctionCall","src":"16568:30:89"},"nativeSrc":"16565:50:89","nodeType":"YulIf","src":"16565:50:89"},{"nativeSrc":"16624:32:89","nodeType":"YulVariableDeclaration","src":"16624:32:89","value":{"arguments":[{"name":"headStart","nativeSrc":"16638:9:89","nodeType":"YulIdentifier","src":"16638:9:89"},{"name":"offset","nativeSrc":"16649:6:89","nodeType":"YulIdentifier","src":"16649:6:89"}],"functionName":{"name":"add","nativeSrc":"16634:3:89","nodeType":"YulIdentifier","src":"16634:3:89"},"nativeSrc":"16634:22:89","nodeType":"YulFunctionCall","src":"16634:22:89"},"variables":[{"name":"_1","nativeSrc":"16628:2:89","nodeType":"YulTypedName","src":"16628:2:89","type":""}]},{"body":{"nativeSrc":"16704:16:89","nodeType":"YulBlock","src":"16704:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16713:1:89","nodeType":"YulLiteral","src":"16713:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"16716:1:89","nodeType":"YulLiteral","src":"16716:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16706:6:89","nodeType":"YulIdentifier","src":"16706:6:89"},"nativeSrc":"16706:12:89","nodeType":"YulFunctionCall","src":"16706:12:89"},"nativeSrc":"16706:12:89","nodeType":"YulExpressionStatement","src":"16706:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"16683:2:89","nodeType":"YulIdentifier","src":"16683:2:89"},{"kind":"number","nativeSrc":"16687:4:89","nodeType":"YulLiteral","src":"16687:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"16679:3:89","nodeType":"YulIdentifier","src":"16679:3:89"},"nativeSrc":"16679:13:89","nodeType":"YulFunctionCall","src":"16679:13:89"},{"name":"dataEnd","nativeSrc":"16694:7:89","nodeType":"YulIdentifier","src":"16694:7:89"}],"functionName":{"name":"slt","nativeSrc":"16675:3:89","nodeType":"YulIdentifier","src":"16675:3:89"},"nativeSrc":"16675:27:89","nodeType":"YulFunctionCall","src":"16675:27:89"}],"functionName":{"name":"iszero","nativeSrc":"16668:6:89","nodeType":"YulIdentifier","src":"16668:6:89"},"nativeSrc":"16668:35:89","nodeType":"YulFunctionCall","src":"16668:35:89"},"nativeSrc":"16665:55:89","nodeType":"YulIf","src":"16665:55:89"},{"nativeSrc":"16729:23:89","nodeType":"YulVariableDeclaration","src":"16729:23:89","value":{"arguments":[{"name":"_1","nativeSrc":"16749:2:89","nodeType":"YulIdentifier","src":"16749:2:89"}],"functionName":{"name":"mload","nativeSrc":"16743:5:89","nodeType":"YulIdentifier","src":"16743:5:89"},"nativeSrc":"16743:9:89","nodeType":"YulFunctionCall","src":"16743:9:89"},"variables":[{"name":"length","nativeSrc":"16733:6:89","nodeType":"YulTypedName","src":"16733:6:89","type":""}]},{"nativeSrc":"16761:65:89","nodeType":"YulVariableDeclaration","src":"16761:65:89","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"16818:6:89","nodeType":"YulIdentifier","src":"16818:6:89"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"16790:27:89","nodeType":"YulIdentifier","src":"16790:27:89"},"nativeSrc":"16790:35:89","nodeType":"YulFunctionCall","src":"16790:35:89"}],"functionName":{"name":"allocate_memory","nativeSrc":"16774:15:89","nodeType":"YulIdentifier","src":"16774:15:89"},"nativeSrc":"16774:52:89","nodeType":"YulFunctionCall","src":"16774:52:89"},"variables":[{"name":"array","nativeSrc":"16765:5:89","nodeType":"YulTypedName","src":"16765:5:89","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"16842:5:89","nodeType":"YulIdentifier","src":"16842:5:89"},{"name":"length","nativeSrc":"16849:6:89","nodeType":"YulIdentifier","src":"16849:6:89"}],"functionName":{"name":"mstore","nativeSrc":"16835:6:89","nodeType":"YulIdentifier","src":"16835:6:89"},"nativeSrc":"16835:21:89","nodeType":"YulFunctionCall","src":"16835:21:89"},"nativeSrc":"16835:21:89","nodeType":"YulExpressionStatement","src":"16835:21:89"},{"body":{"nativeSrc":"16906:16:89","nodeType":"YulBlock","src":"16906:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16915:1:89","nodeType":"YulLiteral","src":"16915:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"16918:1:89","nodeType":"YulLiteral","src":"16918:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16908:6:89","nodeType":"YulIdentifier","src":"16908:6:89"},"nativeSrc":"16908:12:89","nodeType":"YulFunctionCall","src":"16908:12:89"},"nativeSrc":"16908:12:89","nodeType":"YulExpressionStatement","src":"16908:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"16879:2:89","nodeType":"YulIdentifier","src":"16879:2:89"},{"name":"length","nativeSrc":"16883:6:89","nodeType":"YulIdentifier","src":"16883:6:89"}],"functionName":{"name":"add","nativeSrc":"16875:3:89","nodeType":"YulIdentifier","src":"16875:3:89"},"nativeSrc":"16875:15:89","nodeType":"YulFunctionCall","src":"16875:15:89"},{"kind":"number","nativeSrc":"16892:2:89","nodeType":"YulLiteral","src":"16892:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16871:3:89","nodeType":"YulIdentifier","src":"16871:3:89"},"nativeSrc":"16871:24:89","nodeType":"YulFunctionCall","src":"16871:24:89"},{"name":"dataEnd","nativeSrc":"16897:7:89","nodeType":"YulIdentifier","src":"16897:7:89"}],"functionName":{"name":"gt","nativeSrc":"16868:2:89","nodeType":"YulIdentifier","src":"16868:2:89"},"nativeSrc":"16868:37:89","nodeType":"YulFunctionCall","src":"16868:37:89"},"nativeSrc":"16865:57:89","nodeType":"YulIf","src":"16865:57:89"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"16970:2:89","nodeType":"YulIdentifier","src":"16970:2:89"},{"kind":"number","nativeSrc":"16974:2:89","nodeType":"YulLiteral","src":"16974:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16966:3:89","nodeType":"YulIdentifier","src":"16966:3:89"},"nativeSrc":"16966:11:89","nodeType":"YulFunctionCall","src":"16966:11:89"},{"arguments":[{"name":"array","nativeSrc":"16983:5:89","nodeType":"YulIdentifier","src":"16983:5:89"},{"kind":"number","nativeSrc":"16990:2:89","nodeType":"YulLiteral","src":"16990:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16979:3:89","nodeType":"YulIdentifier","src":"16979:3:89"},"nativeSrc":"16979:14:89","nodeType":"YulFunctionCall","src":"16979:14:89"},{"name":"length","nativeSrc":"16995:6:89","nodeType":"YulIdentifier","src":"16995:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"16931:34:89","nodeType":"YulIdentifier","src":"16931:34:89"},"nativeSrc":"16931:71:89","nodeType":"YulFunctionCall","src":"16931:71:89"},"nativeSrc":"16931:71:89","nodeType":"YulExpressionStatement","src":"16931:71:89"},{"nativeSrc":"17011:15:89","nodeType":"YulAssignment","src":"17011:15:89","value":{"name":"array","nativeSrc":"17021:5:89","nodeType":"YulIdentifier","src":"17021:5:89"},"variableNames":[{"name":"value0","nativeSrc":"17011:6:89","nodeType":"YulIdentifier","src":"17011:6:89"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"16365:667:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16421:9:89","nodeType":"YulTypedName","src":"16421:9:89","type":""},{"name":"dataEnd","nativeSrc":"16432:7:89","nodeType":"YulTypedName","src":"16432:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16444:6:89","nodeType":"YulTypedName","src":"16444:6:89","type":""}],"src":"16365:667:89"},{"body":{"nativeSrc":"17118:103:89","nodeType":"YulBlock","src":"17118:103:89","statements":[{"body":{"nativeSrc":"17164:16:89","nodeType":"YulBlock","src":"17164:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17173:1:89","nodeType":"YulLiteral","src":"17173:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"17176:1:89","nodeType":"YulLiteral","src":"17176:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17166:6:89","nodeType":"YulIdentifier","src":"17166:6:89"},"nativeSrc":"17166:12:89","nodeType":"YulFunctionCall","src":"17166:12:89"},"nativeSrc":"17166:12:89","nodeType":"YulExpressionStatement","src":"17166:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17139:7:89","nodeType":"YulIdentifier","src":"17139:7:89"},{"name":"headStart","nativeSrc":"17148:9:89","nodeType":"YulIdentifier","src":"17148:9:89"}],"functionName":{"name":"sub","nativeSrc":"17135:3:89","nodeType":"YulIdentifier","src":"17135:3:89"},"nativeSrc":"17135:23:89","nodeType":"YulFunctionCall","src":"17135:23:89"},{"kind":"number","nativeSrc":"17160:2:89","nodeType":"YulLiteral","src":"17160:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17131:3:89","nodeType":"YulIdentifier","src":"17131:3:89"},"nativeSrc":"17131:32:89","nodeType":"YulFunctionCall","src":"17131:32:89"},"nativeSrc":"17128:52:89","nodeType":"YulIf","src":"17128:52:89"},{"nativeSrc":"17189:26:89","nodeType":"YulAssignment","src":"17189:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"17205:9:89","nodeType":"YulIdentifier","src":"17205:9:89"}],"functionName":{"name":"mload","nativeSrc":"17199:5:89","nodeType":"YulIdentifier","src":"17199:5:89"},"nativeSrc":"17199:16:89","nodeType":"YulFunctionCall","src":"17199:16:89"},"variableNames":[{"name":"value0","nativeSrc":"17189:6:89","nodeType":"YulIdentifier","src":"17189:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"17037:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17084:9:89","nodeType":"YulTypedName","src":"17084:9:89","type":""},{"name":"dataEnd","nativeSrc":"17095:7:89","nodeType":"YulTypedName","src":"17095:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17107:6:89","nodeType":"YulTypedName","src":"17107:6:89","type":""}],"src":"17037:184:89"},{"body":{"nativeSrc":"17429:282:89","nodeType":"YulBlock","src":"17429:282:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17446:9:89","nodeType":"YulIdentifier","src":"17446:9:89"},{"arguments":[{"name":"value0","nativeSrc":"17461:6:89","nodeType":"YulIdentifier","src":"17461:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17477:3:89","nodeType":"YulLiteral","src":"17477:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"17482:1:89","nodeType":"YulLiteral","src":"17482:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17473:3:89","nodeType":"YulIdentifier","src":"17473:3:89"},"nativeSrc":"17473:11:89","nodeType":"YulFunctionCall","src":"17473:11:89"},{"kind":"number","nativeSrc":"17486:1:89","nodeType":"YulLiteral","src":"17486:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17469:3:89","nodeType":"YulIdentifier","src":"17469:3:89"},"nativeSrc":"17469:19:89","nodeType":"YulFunctionCall","src":"17469:19:89"}],"functionName":{"name":"and","nativeSrc":"17457:3:89","nodeType":"YulIdentifier","src":"17457:3:89"},"nativeSrc":"17457:32:89","nodeType":"YulFunctionCall","src":"17457:32:89"}],"functionName":{"name":"mstore","nativeSrc":"17439:6:89","nodeType":"YulIdentifier","src":"17439:6:89"},"nativeSrc":"17439:51:89","nodeType":"YulFunctionCall","src":"17439:51:89"},"nativeSrc":"17439:51:89","nodeType":"YulExpressionStatement","src":"17439:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17510:9:89","nodeType":"YulIdentifier","src":"17510:9:89"},{"kind":"number","nativeSrc":"17521:2:89","nodeType":"YulLiteral","src":"17521:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17506:3:89","nodeType":"YulIdentifier","src":"17506:3:89"},"nativeSrc":"17506:18:89","nodeType":"YulFunctionCall","src":"17506:18:89"},{"arguments":[{"name":"value1","nativeSrc":"17530:6:89","nodeType":"YulIdentifier","src":"17530:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17546:3:89","nodeType":"YulLiteral","src":"17546:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"17551:1:89","nodeType":"YulLiteral","src":"17551:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17542:3:89","nodeType":"YulIdentifier","src":"17542:3:89"},"nativeSrc":"17542:11:89","nodeType":"YulFunctionCall","src":"17542:11:89"},{"kind":"number","nativeSrc":"17555:1:89","nodeType":"YulLiteral","src":"17555:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17538:3:89","nodeType":"YulIdentifier","src":"17538:3:89"},"nativeSrc":"17538:19:89","nodeType":"YulFunctionCall","src":"17538:19:89"}],"functionName":{"name":"and","nativeSrc":"17526:3:89","nodeType":"YulIdentifier","src":"17526:3:89"},"nativeSrc":"17526:32:89","nodeType":"YulFunctionCall","src":"17526:32:89"}],"functionName":{"name":"mstore","nativeSrc":"17499:6:89","nodeType":"YulIdentifier","src":"17499:6:89"},"nativeSrc":"17499:60:89","nodeType":"YulFunctionCall","src":"17499:60:89"},"nativeSrc":"17499:60:89","nodeType":"YulExpressionStatement","src":"17499:60:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17579:9:89","nodeType":"YulIdentifier","src":"17579:9:89"},{"kind":"number","nativeSrc":"17590:2:89","nodeType":"YulLiteral","src":"17590:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17575:3:89","nodeType":"YulIdentifier","src":"17575:3:89"},"nativeSrc":"17575:18:89","nodeType":"YulFunctionCall","src":"17575:18:89"},{"name":"value2","nativeSrc":"17595:6:89","nodeType":"YulIdentifier","src":"17595:6:89"}],"functionName":{"name":"mstore","nativeSrc":"17568:6:89","nodeType":"YulIdentifier","src":"17568:6:89"},"nativeSrc":"17568:34:89","nodeType":"YulFunctionCall","src":"17568:34:89"},"nativeSrc":"17568:34:89","nodeType":"YulExpressionStatement","src":"17568:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17622:9:89","nodeType":"YulIdentifier","src":"17622:9:89"},{"kind":"number","nativeSrc":"17633:2:89","nodeType":"YulLiteral","src":"17633:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17618:3:89","nodeType":"YulIdentifier","src":"17618:3:89"},"nativeSrc":"17618:18:89","nodeType":"YulFunctionCall","src":"17618:18:89"},{"kind":"number","nativeSrc":"17638:3:89","nodeType":"YulLiteral","src":"17638:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"17611:6:89","nodeType":"YulIdentifier","src":"17611:6:89"},"nativeSrc":"17611:31:89","nodeType":"YulFunctionCall","src":"17611:31:89"},"nativeSrc":"17611:31:89","nodeType":"YulExpressionStatement","src":"17611:31:89"},{"nativeSrc":"17651:54:89","nodeType":"YulAssignment","src":"17651:54:89","value":{"arguments":[{"name":"value3","nativeSrc":"17677:6:89","nodeType":"YulIdentifier","src":"17677:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"17689:9:89","nodeType":"YulIdentifier","src":"17689:9:89"},{"kind":"number","nativeSrc":"17700:3:89","nodeType":"YulLiteral","src":"17700:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17685:3:89","nodeType":"YulIdentifier","src":"17685:3:89"},"nativeSrc":"17685:19:89","nodeType":"YulFunctionCall","src":"17685:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"17659:17:89","nodeType":"YulIdentifier","src":"17659:17:89"},"nativeSrc":"17659:46:89","nodeType":"YulFunctionCall","src":"17659:46:89"},"variableNames":[{"name":"tail","nativeSrc":"17651:4:89","nodeType":"YulIdentifier","src":"17651:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17226:485:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17374:9:89","nodeType":"YulTypedName","src":"17374:9:89","type":""},{"name":"value3","nativeSrc":"17385:6:89","nodeType":"YulTypedName","src":"17385:6:89","type":""},{"name":"value2","nativeSrc":"17393:6:89","nodeType":"YulTypedName","src":"17393:6:89","type":""},{"name":"value1","nativeSrc":"17401:6:89","nodeType":"YulTypedName","src":"17401:6:89","type":""},{"name":"value0","nativeSrc":"17409:6:89","nodeType":"YulTypedName","src":"17409:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17420:4:89","nodeType":"YulTypedName","src":"17420:4:89","type":""}],"src":"17226:485:89"},{"body":{"nativeSrc":"17796:169:89","nodeType":"YulBlock","src":"17796:169:89","statements":[{"body":{"nativeSrc":"17842:16:89","nodeType":"YulBlock","src":"17842:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17851:1:89","nodeType":"YulLiteral","src":"17851:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"17854:1:89","nodeType":"YulLiteral","src":"17854:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17844:6:89","nodeType":"YulIdentifier","src":"17844:6:89"},"nativeSrc":"17844:12:89","nodeType":"YulFunctionCall","src":"17844:12:89"},"nativeSrc":"17844:12:89","nodeType":"YulExpressionStatement","src":"17844:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17817:7:89","nodeType":"YulIdentifier","src":"17817:7:89"},{"name":"headStart","nativeSrc":"17826:9:89","nodeType":"YulIdentifier","src":"17826:9:89"}],"functionName":{"name":"sub","nativeSrc":"17813:3:89","nodeType":"YulIdentifier","src":"17813:3:89"},"nativeSrc":"17813:23:89","nodeType":"YulFunctionCall","src":"17813:23:89"},{"kind":"number","nativeSrc":"17838:2:89","nodeType":"YulLiteral","src":"17838:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17809:3:89","nodeType":"YulIdentifier","src":"17809:3:89"},"nativeSrc":"17809:32:89","nodeType":"YulFunctionCall","src":"17809:32:89"},"nativeSrc":"17806:52:89","nodeType":"YulIf","src":"17806:52:89"},{"nativeSrc":"17867:29:89","nodeType":"YulVariableDeclaration","src":"17867:29:89","value":{"arguments":[{"name":"headStart","nativeSrc":"17886:9:89","nodeType":"YulIdentifier","src":"17886:9:89"}],"functionName":{"name":"mload","nativeSrc":"17880:5:89","nodeType":"YulIdentifier","src":"17880:5:89"},"nativeSrc":"17880:16:89","nodeType":"YulFunctionCall","src":"17880:16:89"},"variables":[{"name":"value","nativeSrc":"17871:5:89","nodeType":"YulTypedName","src":"17871:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17929:5:89","nodeType":"YulIdentifier","src":"17929:5:89"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"17905:23:89","nodeType":"YulIdentifier","src":"17905:23:89"},"nativeSrc":"17905:30:89","nodeType":"YulFunctionCall","src":"17905:30:89"},"nativeSrc":"17905:30:89","nodeType":"YulExpressionStatement","src":"17905:30:89"},{"nativeSrc":"17944:15:89","nodeType":"YulAssignment","src":"17944:15:89","value":{"name":"value","nativeSrc":"17954:5:89","nodeType":"YulIdentifier","src":"17954:5:89"},"variableNames":[{"name":"value0","nativeSrc":"17944:6:89","nodeType":"YulIdentifier","src":"17944:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"17716:249:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17762:9:89","nodeType":"YulTypedName","src":"17762:9:89","type":""},{"name":"dataEnd","nativeSrc":"17773:7:89","nodeType":"YulTypedName","src":"17773:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17785:6:89","nodeType":"YulTypedName","src":"17785:6:89","type":""}],"src":"17716:249:89"},{"body":{"nativeSrc":"18002:95:89","nodeType":"YulBlock","src":"18002:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18019:1:89","nodeType":"YulLiteral","src":"18019:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"18026:3:89","nodeType":"YulLiteral","src":"18026:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"18031:10:89","nodeType":"YulLiteral","src":"18031:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"18022:3:89","nodeType":"YulIdentifier","src":"18022:3:89"},"nativeSrc":"18022:20:89","nodeType":"YulFunctionCall","src":"18022:20:89"}],"functionName":{"name":"mstore","nativeSrc":"18012:6:89","nodeType":"YulIdentifier","src":"18012:6:89"},"nativeSrc":"18012:31:89","nodeType":"YulFunctionCall","src":"18012:31:89"},"nativeSrc":"18012:31:89","nodeType":"YulExpressionStatement","src":"18012:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18059:1:89","nodeType":"YulLiteral","src":"18059:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"18062:4:89","nodeType":"YulLiteral","src":"18062:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"18052:6:89","nodeType":"YulIdentifier","src":"18052:6:89"},"nativeSrc":"18052:15:89","nodeType":"YulFunctionCall","src":"18052:15:89"},"nativeSrc":"18052:15:89","nodeType":"YulExpressionStatement","src":"18052:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18083:1:89","nodeType":"YulLiteral","src":"18083:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"18086:4:89","nodeType":"YulLiteral","src":"18086:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18076:6:89","nodeType":"YulIdentifier","src":"18076:6:89"},"nativeSrc":"18076:15:89","nodeType":"YulFunctionCall","src":"18076:15:89"},"nativeSrc":"18076:15:89","nodeType":"YulExpressionStatement","src":"18076:15:89"}]},"name":"panic_error_0x12","nativeSrc":"17970:127:89","nodeType":"YulFunctionDefinition","src":"17970:127:89"},{"body":{"nativeSrc":"18239:150:89","nodeType":"YulBlock","src":"18239:150:89","statements":[{"nativeSrc":"18249:27:89","nodeType":"YulVariableDeclaration","src":"18249:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"18269:6:89","nodeType":"YulIdentifier","src":"18269:6:89"}],"functionName":{"name":"mload","nativeSrc":"18263:5:89","nodeType":"YulIdentifier","src":"18263:5:89"},"nativeSrc":"18263:13:89","nodeType":"YulFunctionCall","src":"18263:13:89"},"variables":[{"name":"length","nativeSrc":"18253:6:89","nodeType":"YulTypedName","src":"18253:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"18324:6:89","nodeType":"YulIdentifier","src":"18324:6:89"},{"kind":"number","nativeSrc":"18332:4:89","nodeType":"YulLiteral","src":"18332:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18320:3:89","nodeType":"YulIdentifier","src":"18320:3:89"},"nativeSrc":"18320:17:89","nodeType":"YulFunctionCall","src":"18320:17:89"},{"name":"pos","nativeSrc":"18339:3:89","nodeType":"YulIdentifier","src":"18339:3:89"},{"name":"length","nativeSrc":"18344:6:89","nodeType":"YulIdentifier","src":"18344:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"18285:34:89","nodeType":"YulIdentifier","src":"18285:34:89"},"nativeSrc":"18285:66:89","nodeType":"YulFunctionCall","src":"18285:66:89"},"nativeSrc":"18285:66:89","nodeType":"YulExpressionStatement","src":"18285:66:89"},{"nativeSrc":"18360:23:89","nodeType":"YulAssignment","src":"18360:23:89","value":{"arguments":[{"name":"pos","nativeSrc":"18371:3:89","nodeType":"YulIdentifier","src":"18371:3:89"},{"name":"length","nativeSrc":"18376:6:89","nodeType":"YulIdentifier","src":"18376:6:89"}],"functionName":{"name":"add","nativeSrc":"18367:3:89","nodeType":"YulIdentifier","src":"18367:3:89"},"nativeSrc":"18367:16:89","nodeType":"YulFunctionCall","src":"18367:16:89"},"variableNames":[{"name":"end","nativeSrc":"18360:3:89","nodeType":"YulIdentifier","src":"18360:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"18102:287:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18215:3:89","nodeType":"YulTypedName","src":"18215:3:89","type":""},{"name":"value0","nativeSrc":"18220:6:89","nodeType":"YulTypedName","src":"18220:6:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18231:3:89","nodeType":"YulTypedName","src":"18231:3:89","type":""}],"src":"18102:287:89"},{"body":{"nativeSrc":"18568:166:89","nodeType":"YulBlock","src":"18568:166:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18585:9:89","nodeType":"YulIdentifier","src":"18585:9:89"},{"kind":"number","nativeSrc":"18596:2:89","nodeType":"YulLiteral","src":"18596:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18578:6:89","nodeType":"YulIdentifier","src":"18578:6:89"},"nativeSrc":"18578:21:89","nodeType":"YulFunctionCall","src":"18578:21:89"},"nativeSrc":"18578:21:89","nodeType":"YulExpressionStatement","src":"18578:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18619:9:89","nodeType":"YulIdentifier","src":"18619:9:89"},{"kind":"number","nativeSrc":"18630:2:89","nodeType":"YulLiteral","src":"18630:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18615:3:89","nodeType":"YulIdentifier","src":"18615:3:89"},"nativeSrc":"18615:18:89","nodeType":"YulFunctionCall","src":"18615:18:89"},{"kind":"number","nativeSrc":"18635:2:89","nodeType":"YulLiteral","src":"18635:2:89","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"18608:6:89","nodeType":"YulIdentifier","src":"18608:6:89"},"nativeSrc":"18608:30:89","nodeType":"YulFunctionCall","src":"18608:30:89"},"nativeSrc":"18608:30:89","nodeType":"YulExpressionStatement","src":"18608:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18658:9:89","nodeType":"YulIdentifier","src":"18658:9:89"},{"kind":"number","nativeSrc":"18669:2:89","nodeType":"YulLiteral","src":"18669:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18654:3:89","nodeType":"YulIdentifier","src":"18654:3:89"},"nativeSrc":"18654:18:89","nodeType":"YulFunctionCall","src":"18654:18:89"},{"hexValue":"53656c662063616c6c206661696c6564","kind":"string","nativeSrc":"18674:18:89","nodeType":"YulLiteral","src":"18674:18:89","type":"","value":"Self call failed"}],"functionName":{"name":"mstore","nativeSrc":"18647:6:89","nodeType":"YulIdentifier","src":"18647:6:89"},"nativeSrc":"18647:46:89","nodeType":"YulFunctionCall","src":"18647:46:89"},"nativeSrc":"18647:46:89","nodeType":"YulExpressionStatement","src":"18647:46:89"},{"nativeSrc":"18702:26:89","nodeType":"YulAssignment","src":"18702:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"18714:9:89","nodeType":"YulIdentifier","src":"18714:9:89"},{"kind":"number","nativeSrc":"18725:2:89","nodeType":"YulLiteral","src":"18725:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18710:3:89","nodeType":"YulIdentifier","src":"18710:3:89"},"nativeSrc":"18710:18:89","nodeType":"YulFunctionCall","src":"18710:18:89"},"variableNames":[{"name":"tail","nativeSrc":"18702:4:89","nodeType":"YulIdentifier","src":"18702:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_a07439f902f1bd470ce3997f1765e8144dca2c4ced2587f5d56d513a4a4bc0db__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18394:340:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18545:9:89","nodeType":"YulTypedName","src":"18545:9:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18559:4:89","nodeType":"YulTypedName","src":"18559:4:89","type":""}],"src":"18394:340:89"},{"body":{"nativeSrc":"18868:145:89","nodeType":"YulBlock","src":"18868:145:89","statements":[{"nativeSrc":"18878:26:89","nodeType":"YulAssignment","src":"18878:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"18890:9:89","nodeType":"YulIdentifier","src":"18890:9:89"},{"kind":"number","nativeSrc":"18901:2:89","nodeType":"YulLiteral","src":"18901:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18886:3:89","nodeType":"YulIdentifier","src":"18886:3:89"},"nativeSrc":"18886:18:89","nodeType":"YulFunctionCall","src":"18886:18:89"},"variableNames":[{"name":"tail","nativeSrc":"18878:4:89","nodeType":"YulIdentifier","src":"18878:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18920:9:89","nodeType":"YulIdentifier","src":"18920:9:89"},{"arguments":[{"name":"value0","nativeSrc":"18935:6:89","nodeType":"YulIdentifier","src":"18935:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18951:3:89","nodeType":"YulLiteral","src":"18951:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"18956:1:89","nodeType":"YulLiteral","src":"18956:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"18947:3:89","nodeType":"YulIdentifier","src":"18947:3:89"},"nativeSrc":"18947:11:89","nodeType":"YulFunctionCall","src":"18947:11:89"},{"kind":"number","nativeSrc":"18960:1:89","nodeType":"YulLiteral","src":"18960:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"18943:3:89","nodeType":"YulIdentifier","src":"18943:3:89"},"nativeSrc":"18943:19:89","nodeType":"YulFunctionCall","src":"18943:19:89"}],"functionName":{"name":"and","nativeSrc":"18931:3:89","nodeType":"YulIdentifier","src":"18931:3:89"},"nativeSrc":"18931:32:89","nodeType":"YulFunctionCall","src":"18931:32:89"}],"functionName":{"name":"mstore","nativeSrc":"18913:6:89","nodeType":"YulIdentifier","src":"18913:6:89"},"nativeSrc":"18913:51:89","nodeType":"YulFunctionCall","src":"18913:51:89"},"nativeSrc":"18913:51:89","nodeType":"YulExpressionStatement","src":"18913:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18984:9:89","nodeType":"YulIdentifier","src":"18984:9:89"},{"kind":"number","nativeSrc":"18995:2:89","nodeType":"YulLiteral","src":"18995:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18980:3:89","nodeType":"YulIdentifier","src":"18980:3:89"},"nativeSrc":"18980:18:89","nodeType":"YulFunctionCall","src":"18980:18:89"},{"name":"value1","nativeSrc":"19000:6:89","nodeType":"YulIdentifier","src":"19000:6:89"}],"functionName":{"name":"mstore","nativeSrc":"18973:6:89","nodeType":"YulIdentifier","src":"18973:6:89"},"nativeSrc":"18973:34:89","nodeType":"YulFunctionCall","src":"18973:34:89"},"nativeSrc":"18973:34:89","nodeType":"YulExpressionStatement","src":"18973:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"18739:274:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18829:9:89","nodeType":"YulTypedName","src":"18829:9:89","type":""},{"name":"value1","nativeSrc":"18840:6:89","nodeType":"YulTypedName","src":"18840:6:89","type":""},{"name":"value0","nativeSrc":"18848:6:89","nodeType":"YulTypedName","src":"18848:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18859:4:89","nodeType":"YulTypedName","src":"18859:4:89","type":""}],"src":"18739:274:89"},{"body":{"nativeSrc":"19192:233:89","nodeType":"YulBlock","src":"19192:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19209:9:89","nodeType":"YulIdentifier","src":"19209:9:89"},{"kind":"number","nativeSrc":"19220:2:89","nodeType":"YulLiteral","src":"19220:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19202:6:89","nodeType":"YulIdentifier","src":"19202:6:89"},"nativeSrc":"19202:21:89","nodeType":"YulFunctionCall","src":"19202:21:89"},"nativeSrc":"19202:21:89","nodeType":"YulExpressionStatement","src":"19202:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19243:9:89","nodeType":"YulIdentifier","src":"19243:9:89"},{"kind":"number","nativeSrc":"19254:2:89","nodeType":"YulLiteral","src":"19254:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19239:3:89","nodeType":"YulIdentifier","src":"19239:3:89"},"nativeSrc":"19239:18:89","nodeType":"YulFunctionCall","src":"19239:18:89"},{"kind":"number","nativeSrc":"19259:2:89","nodeType":"YulLiteral","src":"19259:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"19232:6:89","nodeType":"YulIdentifier","src":"19232:6:89"},"nativeSrc":"19232:30:89","nodeType":"YulFunctionCall","src":"19232:30:89"},"nativeSrc":"19232:30:89","nodeType":"YulExpressionStatement","src":"19232:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19282:9:89","nodeType":"YulIdentifier","src":"19282:9:89"},{"kind":"number","nativeSrc":"19293:2:89","nodeType":"YulLiteral","src":"19293:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19278:3:89","nodeType":"YulIdentifier","src":"19278:3:89"},"nativeSrc":"19278:18:89","nodeType":"YulFunctionCall","src":"19278:18:89"},{"hexValue":"5472616e7366657248656c7065723a3a73616665417070726f76653a20617070","kind":"string","nativeSrc":"19298:34:89","nodeType":"YulLiteral","src":"19298:34:89","type":"","value":"TransferHelper::safeApprove: app"}],"functionName":{"name":"mstore","nativeSrc":"19271:6:89","nodeType":"YulIdentifier","src":"19271:6:89"},"nativeSrc":"19271:62:89","nodeType":"YulFunctionCall","src":"19271:62:89"},"nativeSrc":"19271:62:89","nodeType":"YulExpressionStatement","src":"19271:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19353:9:89","nodeType":"YulIdentifier","src":"19353:9:89"},{"kind":"number","nativeSrc":"19364:2:89","nodeType":"YulLiteral","src":"19364:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19349:3:89","nodeType":"YulIdentifier","src":"19349:3:89"},"nativeSrc":"19349:18:89","nodeType":"YulFunctionCall","src":"19349:18:89"},{"hexValue":"726f7665206661696c6564","kind":"string","nativeSrc":"19369:13:89","nodeType":"YulLiteral","src":"19369:13:89","type":"","value":"rove failed"}],"functionName":{"name":"mstore","nativeSrc":"19342:6:89","nodeType":"YulIdentifier","src":"19342:6:89"},"nativeSrc":"19342:41:89","nodeType":"YulFunctionCall","src":"19342:41:89"},"nativeSrc":"19342:41:89","nodeType":"YulExpressionStatement","src":"19342:41:89"},{"nativeSrc":"19392:27:89","nodeType":"YulAssignment","src":"19392:27:89","value":{"arguments":[{"name":"headStart","nativeSrc":"19404:9:89","nodeType":"YulIdentifier","src":"19404:9:89"},{"kind":"number","nativeSrc":"19415:3:89","nodeType":"YulLiteral","src":"19415:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19400:3:89","nodeType":"YulIdentifier","src":"19400:3:89"},"nativeSrc":"19400:19:89","nodeType":"YulFunctionCall","src":"19400:19:89"},"variableNames":[{"name":"tail","nativeSrc":"19392:4:89","nodeType":"YulIdentifier","src":"19392:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19018:407:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19169:9:89","nodeType":"YulTypedName","src":"19169:9:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19183:4:89","nodeType":"YulTypedName","src":"19183:4:89","type":""}],"src":"19018:407:89"},{"body":{"nativeSrc":"19490:519:89","nodeType":"YulBlock","src":"19490:519:89","statements":[{"nativeSrc":"19500:16:89","nodeType":"YulVariableDeclaration","src":"19500:16:89","value":{"name":"pos","nativeSrc":"19513:3:89","nodeType":"YulIdentifier","src":"19513:3:89"},"variables":[{"name":"pos_1","nativeSrc":"19504:5:89","nodeType":"YulTypedName","src":"19504:5:89","type":""}]},{"nativeSrc":"19525:26:89","nodeType":"YulVariableDeclaration","src":"19525:26:89","value":{"arguments":[{"name":"value","nativeSrc":"19545:5:89","nodeType":"YulIdentifier","src":"19545:5:89"}],"functionName":{"name":"mload","nativeSrc":"19539:5:89","nodeType":"YulIdentifier","src":"19539:5:89"},"nativeSrc":"19539:12:89","nodeType":"YulFunctionCall","src":"19539:12:89"},"variables":[{"name":"length","nativeSrc":"19529:6:89","nodeType":"YulTypedName","src":"19529:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"19567:3:89","nodeType":"YulIdentifier","src":"19567:3:89"},{"name":"length","nativeSrc":"19572:6:89","nodeType":"YulIdentifier","src":"19572:6:89"}],"functionName":{"name":"mstore","nativeSrc":"19560:6:89","nodeType":"YulIdentifier","src":"19560:6:89"},"nativeSrc":"19560:19:89","nodeType":"YulFunctionCall","src":"19560:19:89"},"nativeSrc":"19560:19:89","nodeType":"YulExpressionStatement","src":"19560:19:89"},{"nativeSrc":"19588:21:89","nodeType":"YulAssignment","src":"19588:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"19599:3:89","nodeType":"YulIdentifier","src":"19599:3:89"},{"kind":"number","nativeSrc":"19604:4:89","nodeType":"YulLiteral","src":"19604:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19595:3:89","nodeType":"YulIdentifier","src":"19595:3:89"},"nativeSrc":"19595:14:89","nodeType":"YulFunctionCall","src":"19595:14:89"},"variableNames":[{"name":"pos","nativeSrc":"19588:3:89","nodeType":"YulIdentifier","src":"19588:3:89"}]},{"nativeSrc":"19618:49:89","nodeType":"YulVariableDeclaration","src":"19618:49:89","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"19638:5:89","nodeType":"YulIdentifier","src":"19638:5:89"},{"arguments":[{"kind":"number","nativeSrc":"19649:1:89","nodeType":"YulLiteral","src":"19649:1:89","type":"","value":"5"},{"name":"length","nativeSrc":"19652:6:89","nodeType":"YulIdentifier","src":"19652:6:89"}],"functionName":{"name":"shl","nativeSrc":"19645:3:89","nodeType":"YulIdentifier","src":"19645:3:89"},"nativeSrc":"19645:14:89","nodeType":"YulFunctionCall","src":"19645:14:89"}],"functionName":{"name":"add","nativeSrc":"19634:3:89","nodeType":"YulIdentifier","src":"19634:3:89"},"nativeSrc":"19634:26:89","nodeType":"YulFunctionCall","src":"19634:26:89"},{"kind":"number","nativeSrc":"19662:4:89","nodeType":"YulLiteral","src":"19662:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19630:3:89","nodeType":"YulIdentifier","src":"19630:3:89"},"nativeSrc":"19630:37:89","nodeType":"YulFunctionCall","src":"19630:37:89"},"variables":[{"name":"tail","nativeSrc":"19622:4:89","nodeType":"YulTypedName","src":"19622:4:89","type":""}]},{"nativeSrc":"19676:30:89","nodeType":"YulVariableDeclaration","src":"19676:30:89","value":{"arguments":[{"name":"value","nativeSrc":"19694:5:89","nodeType":"YulIdentifier","src":"19694:5:89"},{"kind":"number","nativeSrc":"19701:4:89","nodeType":"YulLiteral","src":"19701:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19690:3:89","nodeType":"YulIdentifier","src":"19690:3:89"},"nativeSrc":"19690:16:89","nodeType":"YulFunctionCall","src":"19690:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"19680:6:89","nodeType":"YulTypedName","src":"19680:6:89","type":""}]},{"nativeSrc":"19715:10:89","nodeType":"YulVariableDeclaration","src":"19715:10:89","value":{"kind":"number","nativeSrc":"19724:1:89","nodeType":"YulLiteral","src":"19724:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"19719:1:89","nodeType":"YulTypedName","src":"19719:1:89","type":""}]},{"body":{"nativeSrc":"19783:200:89","nodeType":"YulBlock","src":"19783:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"19804:3:89","nodeType":"YulIdentifier","src":"19804:3:89"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"19817:4:89","nodeType":"YulIdentifier","src":"19817:4:89"},{"name":"pos_1","nativeSrc":"19823:5:89","nodeType":"YulIdentifier","src":"19823:5:89"}],"functionName":{"name":"sub","nativeSrc":"19813:3:89","nodeType":"YulIdentifier","src":"19813:3:89"},"nativeSrc":"19813:16:89","nodeType":"YulFunctionCall","src":"19813:16:89"},{"arguments":[{"kind":"number","nativeSrc":"19835:2:89","nodeType":"YulLiteral","src":"19835:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"19831:3:89","nodeType":"YulIdentifier","src":"19831:3:89"},"nativeSrc":"19831:7:89","nodeType":"YulFunctionCall","src":"19831:7:89"}],"functionName":{"name":"add","nativeSrc":"19809:3:89","nodeType":"YulIdentifier","src":"19809:3:89"},"nativeSrc":"19809:30:89","nodeType":"YulFunctionCall","src":"19809:30:89"}],"functionName":{"name":"mstore","nativeSrc":"19797:6:89","nodeType":"YulIdentifier","src":"19797:6:89"},"nativeSrc":"19797:43:89","nodeType":"YulFunctionCall","src":"19797:43:89"},"nativeSrc":"19797:43:89","nodeType":"YulExpressionStatement","src":"19797:43:89"},{"nativeSrc":"19853:46:89","nodeType":"YulAssignment","src":"19853:46:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"19885:6:89","nodeType":"YulIdentifier","src":"19885:6:89"}],"functionName":{"name":"mload","nativeSrc":"19879:5:89","nodeType":"YulIdentifier","src":"19879:5:89"},"nativeSrc":"19879:13:89","nodeType":"YulFunctionCall","src":"19879:13:89"},{"name":"tail","nativeSrc":"19894:4:89","nodeType":"YulIdentifier","src":"19894:4:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"19861:17:89","nodeType":"YulIdentifier","src":"19861:17:89"},"nativeSrc":"19861:38:89","nodeType":"YulFunctionCall","src":"19861:38:89"},"variableNames":[{"name":"tail","nativeSrc":"19853:4:89","nodeType":"YulIdentifier","src":"19853:4:89"}]},{"nativeSrc":"19912:27:89","nodeType":"YulAssignment","src":"19912:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"19926:6:89","nodeType":"YulIdentifier","src":"19926:6:89"},{"kind":"number","nativeSrc":"19934:4:89","nodeType":"YulLiteral","src":"19934:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19922:3:89","nodeType":"YulIdentifier","src":"19922:3:89"},"nativeSrc":"19922:17:89","nodeType":"YulFunctionCall","src":"19922:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"19912:6:89","nodeType":"YulIdentifier","src":"19912:6:89"}]},{"nativeSrc":"19952:21:89","nodeType":"YulAssignment","src":"19952:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"19963:3:89","nodeType":"YulIdentifier","src":"19963:3:89"},{"kind":"number","nativeSrc":"19968:4:89","nodeType":"YulLiteral","src":"19968:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19959:3:89","nodeType":"YulIdentifier","src":"19959:3:89"},"nativeSrc":"19959:14:89","nodeType":"YulFunctionCall","src":"19959:14:89"},"variableNames":[{"name":"pos","nativeSrc":"19952:3:89","nodeType":"YulIdentifier","src":"19952:3:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"19745:1:89","nodeType":"YulIdentifier","src":"19745:1:89"},{"name":"length","nativeSrc":"19748:6:89","nodeType":"YulIdentifier","src":"19748:6:89"}],"functionName":{"name":"lt","nativeSrc":"19742:2:89","nodeType":"YulIdentifier","src":"19742:2:89"},"nativeSrc":"19742:13:89","nodeType":"YulFunctionCall","src":"19742:13:89"},"nativeSrc":"19734:249:89","nodeType":"YulForLoop","post":{"nativeSrc":"19756:18:89","nodeType":"YulBlock","src":"19756:18:89","statements":[{"nativeSrc":"19758:14:89","nodeType":"YulAssignment","src":"19758:14:89","value":{"arguments":[{"name":"i","nativeSrc":"19767:1:89","nodeType":"YulIdentifier","src":"19767:1:89"},{"kind":"number","nativeSrc":"19770:1:89","nodeType":"YulLiteral","src":"19770:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19763:3:89","nodeType":"YulIdentifier","src":"19763:3:89"},"nativeSrc":"19763:9:89","nodeType":"YulFunctionCall","src":"19763:9:89"},"variableNames":[{"name":"i","nativeSrc":"19758:1:89","nodeType":"YulIdentifier","src":"19758:1:89"}]}]},"pre":{"nativeSrc":"19738:3:89","nodeType":"YulBlock","src":"19738:3:89","statements":[]},"src":"19734:249:89"},{"nativeSrc":"19992:11:89","nodeType":"YulAssignment","src":"19992:11:89","value":{"name":"tail","nativeSrc":"19999:4:89","nodeType":"YulIdentifier","src":"19999:4:89"},"variableNames":[{"name":"end","nativeSrc":"19992:3:89","nodeType":"YulIdentifier","src":"19992:3:89"}]}]},"name":"abi_encode_array_string_dyn","nativeSrc":"19430:579:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19467:5:89","nodeType":"YulTypedName","src":"19467:5:89","type":""},{"name":"pos","nativeSrc":"19474:3:89","nodeType":"YulTypedName","src":"19474:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19482:3:89","nodeType":"YulTypedName","src":"19482:3:89","type":""}],"src":"19430:579:89"},{"body":{"nativeSrc":"20086:474:89","nodeType":"YulBlock","src":"20086:474:89","statements":[{"nativeSrc":"20096:26:89","nodeType":"YulVariableDeclaration","src":"20096:26:89","value":{"arguments":[{"name":"value","nativeSrc":"20116:5:89","nodeType":"YulIdentifier","src":"20116:5:89"}],"functionName":{"name":"mload","nativeSrc":"20110:5:89","nodeType":"YulIdentifier","src":"20110:5:89"},"nativeSrc":"20110:12:89","nodeType":"YulFunctionCall","src":"20110:12:89"},"variables":[{"name":"length","nativeSrc":"20100:6:89","nodeType":"YulTypedName","src":"20100:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20138:3:89","nodeType":"YulIdentifier","src":"20138:3:89"},{"name":"length","nativeSrc":"20143:6:89","nodeType":"YulIdentifier","src":"20143:6:89"}],"functionName":{"name":"mstore","nativeSrc":"20131:6:89","nodeType":"YulIdentifier","src":"20131:6:89"},"nativeSrc":"20131:19:89","nodeType":"YulFunctionCall","src":"20131:19:89"},"nativeSrc":"20131:19:89","nodeType":"YulExpressionStatement","src":"20131:19:89"},{"nativeSrc":"20159:21:89","nodeType":"YulAssignment","src":"20159:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"20170:3:89","nodeType":"YulIdentifier","src":"20170:3:89"},{"kind":"number","nativeSrc":"20175:4:89","nodeType":"YulLiteral","src":"20175:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20166:3:89","nodeType":"YulIdentifier","src":"20166:3:89"},"nativeSrc":"20166:14:89","nodeType":"YulFunctionCall","src":"20166:14:89"},"variableNames":[{"name":"pos","nativeSrc":"20159:3:89","nodeType":"YulIdentifier","src":"20159:3:89"}]},{"nativeSrc":"20189:30:89","nodeType":"YulVariableDeclaration","src":"20189:30:89","value":{"arguments":[{"name":"value","nativeSrc":"20207:5:89","nodeType":"YulIdentifier","src":"20207:5:89"},{"kind":"number","nativeSrc":"20214:4:89","nodeType":"YulLiteral","src":"20214:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20203:3:89","nodeType":"YulIdentifier","src":"20203:3:89"},"nativeSrc":"20203:16:89","nodeType":"YulFunctionCall","src":"20203:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"20193:6:89","nodeType":"YulTypedName","src":"20193:6:89","type":""}]},{"nativeSrc":"20228:10:89","nodeType":"YulVariableDeclaration","src":"20228:10:89","value":{"kind":"number","nativeSrc":"20237:1:89","nodeType":"YulLiteral","src":"20237:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"20232:1:89","nodeType":"YulTypedName","src":"20232:1:89","type":""}]},{"body":{"nativeSrc":"20296:239:89","nodeType":"YulBlock","src":"20296:239:89","statements":[{"nativeSrc":"20310:23:89","nodeType":"YulVariableDeclaration","src":"20310:23:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"20326:6:89","nodeType":"YulIdentifier","src":"20326:6:89"}],"functionName":{"name":"mload","nativeSrc":"20320:5:89","nodeType":"YulIdentifier","src":"20320:5:89"},"nativeSrc":"20320:13:89","nodeType":"YulFunctionCall","src":"20320:13:89"},"variables":[{"name":"_1","nativeSrc":"20314:2:89","nodeType":"YulTypedName","src":"20314:2:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20353:3:89","nodeType":"YulIdentifier","src":"20353:3:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"20368:2:89","nodeType":"YulIdentifier","src":"20368:2:89"}],"functionName":{"name":"mload","nativeSrc":"20362:5:89","nodeType":"YulIdentifier","src":"20362:5:89"},"nativeSrc":"20362:9:89","nodeType":"YulFunctionCall","src":"20362:9:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20381:3:89","nodeType":"YulLiteral","src":"20381:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"20386:1:89","nodeType":"YulLiteral","src":"20386:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"20377:3:89","nodeType":"YulIdentifier","src":"20377:3:89"},"nativeSrc":"20377:11:89","nodeType":"YulFunctionCall","src":"20377:11:89"},{"kind":"number","nativeSrc":"20390:1:89","nodeType":"YulLiteral","src":"20390:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"20373:3:89","nodeType":"YulIdentifier","src":"20373:3:89"},"nativeSrc":"20373:19:89","nodeType":"YulFunctionCall","src":"20373:19:89"}],"functionName":{"name":"and","nativeSrc":"20358:3:89","nodeType":"YulIdentifier","src":"20358:3:89"},"nativeSrc":"20358:35:89","nodeType":"YulFunctionCall","src":"20358:35:89"}],"functionName":{"name":"mstore","nativeSrc":"20346:6:89","nodeType":"YulIdentifier","src":"20346:6:89"},"nativeSrc":"20346:48:89","nodeType":"YulFunctionCall","src":"20346:48:89"},"nativeSrc":"20346:48:89","nodeType":"YulExpressionStatement","src":"20346:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20418:3:89","nodeType":"YulIdentifier","src":"20418:3:89"},{"kind":"number","nativeSrc":"20423:4:89","nodeType":"YulLiteral","src":"20423:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20414:3:89","nodeType":"YulIdentifier","src":"20414:3:89"},"nativeSrc":"20414:14:89","nodeType":"YulFunctionCall","src":"20414:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"20440:2:89","nodeType":"YulIdentifier","src":"20440:2:89"},{"kind":"number","nativeSrc":"20444:4:89","nodeType":"YulLiteral","src":"20444:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20436:3:89","nodeType":"YulIdentifier","src":"20436:3:89"},"nativeSrc":"20436:13:89","nodeType":"YulFunctionCall","src":"20436:13:89"}],"functionName":{"name":"mload","nativeSrc":"20430:5:89","nodeType":"YulIdentifier","src":"20430:5:89"},"nativeSrc":"20430:20:89","nodeType":"YulFunctionCall","src":"20430:20:89"}],"functionName":{"name":"mstore","nativeSrc":"20407:6:89","nodeType":"YulIdentifier","src":"20407:6:89"},"nativeSrc":"20407:44:89","nodeType":"YulFunctionCall","src":"20407:44:89"},"nativeSrc":"20407:44:89","nodeType":"YulExpressionStatement","src":"20407:44:89"},{"nativeSrc":"20464:21:89","nodeType":"YulAssignment","src":"20464:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"20475:3:89","nodeType":"YulIdentifier","src":"20475:3:89"},{"kind":"number","nativeSrc":"20480:4:89","nodeType":"YulLiteral","src":"20480:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20471:3:89","nodeType":"YulIdentifier","src":"20471:3:89"},"nativeSrc":"20471:14:89","nodeType":"YulFunctionCall","src":"20471:14:89"},"variableNames":[{"name":"pos","nativeSrc":"20464:3:89","nodeType":"YulIdentifier","src":"20464:3:89"}]},{"nativeSrc":"20498:27:89","nodeType":"YulAssignment","src":"20498:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"20512:6:89","nodeType":"YulIdentifier","src":"20512:6:89"},{"kind":"number","nativeSrc":"20520:4:89","nodeType":"YulLiteral","src":"20520:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20508:3:89","nodeType":"YulIdentifier","src":"20508:3:89"},"nativeSrc":"20508:17:89","nodeType":"YulFunctionCall","src":"20508:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"20498:6:89","nodeType":"YulIdentifier","src":"20498:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"20258:1:89","nodeType":"YulIdentifier","src":"20258:1:89"},{"name":"length","nativeSrc":"20261:6:89","nodeType":"YulIdentifier","src":"20261:6:89"}],"functionName":{"name":"lt","nativeSrc":"20255:2:89","nodeType":"YulIdentifier","src":"20255:2:89"},"nativeSrc":"20255:13:89","nodeType":"YulFunctionCall","src":"20255:13:89"},"nativeSrc":"20247:288:89","nodeType":"YulForLoop","post":{"nativeSrc":"20269:18:89","nodeType":"YulBlock","src":"20269:18:89","statements":[{"nativeSrc":"20271:14:89","nodeType":"YulAssignment","src":"20271:14:89","value":{"arguments":[{"name":"i","nativeSrc":"20280:1:89","nodeType":"YulIdentifier","src":"20280:1:89"},{"kind":"number","nativeSrc":"20283:1:89","nodeType":"YulLiteral","src":"20283:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20276:3:89","nodeType":"YulIdentifier","src":"20276:3:89"},"nativeSrc":"20276:9:89","nodeType":"YulFunctionCall","src":"20276:9:89"},"variableNames":[{"name":"i","nativeSrc":"20271:1:89","nodeType":"YulIdentifier","src":"20271:1:89"}]}]},"pre":{"nativeSrc":"20251:3:89","nodeType":"YulBlock","src":"20251:3:89","statements":[]},"src":"20247:288:89"},{"nativeSrc":"20544:10:89","nodeType":"YulAssignment","src":"20544:10:89","value":{"name":"pos","nativeSrc":"20551:3:89","nodeType":"YulIdentifier","src":"20551:3:89"},"variableNames":[{"name":"end","nativeSrc":"20544:3:89","nodeType":"YulIdentifier","src":"20544:3:89"}]}]},"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"20014:546:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20063:5:89","nodeType":"YulTypedName","src":"20063:5:89","type":""},{"name":"pos","nativeSrc":"20070:3:89","nodeType":"YulTypedName","src":"20070:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20078:3:89","nodeType":"YulTypedName","src":"20078:3:89","type":""}],"src":"20014:546:89"},{"body":{"nativeSrc":"20635:531:89","nodeType":"YulBlock","src":"20635:531:89","statements":[{"nativeSrc":"20645:26:89","nodeType":"YulVariableDeclaration","src":"20645:26:89","value":{"arguments":[{"name":"value","nativeSrc":"20665:5:89","nodeType":"YulIdentifier","src":"20665:5:89"}],"functionName":{"name":"mload","nativeSrc":"20659:5:89","nodeType":"YulIdentifier","src":"20659:5:89"},"nativeSrc":"20659:12:89","nodeType":"YulFunctionCall","src":"20659:12:89"},"variables":[{"name":"length","nativeSrc":"20649:6:89","nodeType":"YulTypedName","src":"20649:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20687:3:89","nodeType":"YulIdentifier","src":"20687:3:89"},{"name":"length","nativeSrc":"20692:6:89","nodeType":"YulIdentifier","src":"20692:6:89"}],"functionName":{"name":"mstore","nativeSrc":"20680:6:89","nodeType":"YulIdentifier","src":"20680:6:89"},"nativeSrc":"20680:19:89","nodeType":"YulFunctionCall","src":"20680:19:89"},"nativeSrc":"20680:19:89","nodeType":"YulExpressionStatement","src":"20680:19:89"},{"nativeSrc":"20708:21:89","nodeType":"YulAssignment","src":"20708:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"20719:3:89","nodeType":"YulIdentifier","src":"20719:3:89"},{"kind":"number","nativeSrc":"20724:4:89","nodeType":"YulLiteral","src":"20724:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20715:3:89","nodeType":"YulIdentifier","src":"20715:3:89"},"nativeSrc":"20715:14:89","nodeType":"YulFunctionCall","src":"20715:14:89"},"variableNames":[{"name":"pos","nativeSrc":"20708:3:89","nodeType":"YulIdentifier","src":"20708:3:89"}]},{"nativeSrc":"20738:30:89","nodeType":"YulVariableDeclaration","src":"20738:30:89","value":{"arguments":[{"name":"value","nativeSrc":"20756:5:89","nodeType":"YulIdentifier","src":"20756:5:89"},{"kind":"number","nativeSrc":"20763:4:89","nodeType":"YulLiteral","src":"20763:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20752:3:89","nodeType":"YulIdentifier","src":"20752:3:89"},"nativeSrc":"20752:16:89","nodeType":"YulFunctionCall","src":"20752:16:89"},"variables":[{"name":"srcPtr","nativeSrc":"20742:6:89","nodeType":"YulTypedName","src":"20742:6:89","type":""}]},{"nativeSrc":"20777:10:89","nodeType":"YulVariableDeclaration","src":"20777:10:89","value":{"kind":"number","nativeSrc":"20786:1:89","nodeType":"YulLiteral","src":"20786:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"20781:1:89","nodeType":"YulTypedName","src":"20781:1:89","type":""}]},{"body":{"nativeSrc":"20845:296:89","nodeType":"YulBlock","src":"20845:296:89","statements":[{"nativeSrc":"20859:23:89","nodeType":"YulVariableDeclaration","src":"20859:23:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"20875:6:89","nodeType":"YulIdentifier","src":"20875:6:89"}],"functionName":{"name":"mload","nativeSrc":"20869:5:89","nodeType":"YulIdentifier","src":"20869:5:89"},"nativeSrc":"20869:13:89","nodeType":"YulFunctionCall","src":"20869:13:89"},"variables":[{"name":"_1","nativeSrc":"20863:2:89","nodeType":"YulTypedName","src":"20863:2:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20902:3:89","nodeType":"YulIdentifier","src":"20902:3:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"20917:2:89","nodeType":"YulIdentifier","src":"20917:2:89"}],"functionName":{"name":"mload","nativeSrc":"20911:5:89","nodeType":"YulIdentifier","src":"20911:5:89"},"nativeSrc":"20911:9:89","nodeType":"YulFunctionCall","src":"20911:9:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20930:3:89","nodeType":"YulLiteral","src":"20930:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"20935:1:89","nodeType":"YulLiteral","src":"20935:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"20926:3:89","nodeType":"YulIdentifier","src":"20926:3:89"},"nativeSrc":"20926:11:89","nodeType":"YulFunctionCall","src":"20926:11:89"},{"kind":"number","nativeSrc":"20939:1:89","nodeType":"YulLiteral","src":"20939:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"20922:3:89","nodeType":"YulIdentifier","src":"20922:3:89"},"nativeSrc":"20922:19:89","nodeType":"YulFunctionCall","src":"20922:19:89"}],"functionName":{"name":"and","nativeSrc":"20907:3:89","nodeType":"YulIdentifier","src":"20907:3:89"},"nativeSrc":"20907:35:89","nodeType":"YulFunctionCall","src":"20907:35:89"}],"functionName":{"name":"mstore","nativeSrc":"20895:6:89","nodeType":"YulIdentifier","src":"20895:6:89"},"nativeSrc":"20895:48:89","nodeType":"YulFunctionCall","src":"20895:48:89"},"nativeSrc":"20895:48:89","nodeType":"YulExpressionStatement","src":"20895:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20967:3:89","nodeType":"YulIdentifier","src":"20967:3:89"},{"kind":"number","nativeSrc":"20972:4:89","nodeType":"YulLiteral","src":"20972:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20963:3:89","nodeType":"YulIdentifier","src":"20963:3:89"},"nativeSrc":"20963:14:89","nodeType":"YulFunctionCall","src":"20963:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"20989:2:89","nodeType":"YulIdentifier","src":"20989:2:89"},{"kind":"number","nativeSrc":"20993:4:89","nodeType":"YulLiteral","src":"20993:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20985:3:89","nodeType":"YulIdentifier","src":"20985:3:89"},"nativeSrc":"20985:13:89","nodeType":"YulFunctionCall","src":"20985:13:89"}],"functionName":{"name":"mload","nativeSrc":"20979:5:89","nodeType":"YulIdentifier","src":"20979:5:89"},"nativeSrc":"20979:20:89","nodeType":"YulFunctionCall","src":"20979:20:89"}],"functionName":{"name":"mstore","nativeSrc":"20956:6:89","nodeType":"YulIdentifier","src":"20956:6:89"},"nativeSrc":"20956:44:89","nodeType":"YulFunctionCall","src":"20956:44:89"},"nativeSrc":"20956:44:89","nodeType":"YulExpressionStatement","src":"20956:44:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21024:3:89","nodeType":"YulIdentifier","src":"21024:3:89"},{"kind":"number","nativeSrc":"21029:4:89","nodeType":"YulLiteral","src":"21029:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21020:3:89","nodeType":"YulIdentifier","src":"21020:3:89"},"nativeSrc":"21020:14:89","nodeType":"YulFunctionCall","src":"21020:14:89"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"21046:2:89","nodeType":"YulIdentifier","src":"21046:2:89"},{"kind":"number","nativeSrc":"21050:4:89","nodeType":"YulLiteral","src":"21050:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21042:3:89","nodeType":"YulIdentifier","src":"21042:3:89"},"nativeSrc":"21042:13:89","nodeType":"YulFunctionCall","src":"21042:13:89"}],"functionName":{"name":"mload","nativeSrc":"21036:5:89","nodeType":"YulIdentifier","src":"21036:5:89"},"nativeSrc":"21036:20:89","nodeType":"YulFunctionCall","src":"21036:20:89"}],"functionName":{"name":"mstore","nativeSrc":"21013:6:89","nodeType":"YulIdentifier","src":"21013:6:89"},"nativeSrc":"21013:44:89","nodeType":"YulFunctionCall","src":"21013:44:89"},"nativeSrc":"21013:44:89","nodeType":"YulExpressionStatement","src":"21013:44:89"},{"nativeSrc":"21070:21:89","nodeType":"YulAssignment","src":"21070:21:89","value":{"arguments":[{"name":"pos","nativeSrc":"21081:3:89","nodeType":"YulIdentifier","src":"21081:3:89"},{"kind":"number","nativeSrc":"21086:4:89","nodeType":"YulLiteral","src":"21086:4:89","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"21077:3:89","nodeType":"YulIdentifier","src":"21077:3:89"},"nativeSrc":"21077:14:89","nodeType":"YulFunctionCall","src":"21077:14:89"},"variableNames":[{"name":"pos","nativeSrc":"21070:3:89","nodeType":"YulIdentifier","src":"21070:3:89"}]},{"nativeSrc":"21104:27:89","nodeType":"YulAssignment","src":"21104:27:89","value":{"arguments":[{"name":"srcPtr","nativeSrc":"21118:6:89","nodeType":"YulIdentifier","src":"21118:6:89"},{"kind":"number","nativeSrc":"21126:4:89","nodeType":"YulLiteral","src":"21126:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21114:3:89","nodeType":"YulIdentifier","src":"21114:3:89"},"nativeSrc":"21114:17:89","nodeType":"YulFunctionCall","src":"21114:17:89"},"variableNames":[{"name":"srcPtr","nativeSrc":"21104:6:89","nodeType":"YulIdentifier","src":"21104:6:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"20807:1:89","nodeType":"YulIdentifier","src":"20807:1:89"},{"name":"length","nativeSrc":"20810:6:89","nodeType":"YulIdentifier","src":"20810:6:89"}],"functionName":{"name":"lt","nativeSrc":"20804:2:89","nodeType":"YulIdentifier","src":"20804:2:89"},"nativeSrc":"20804:13:89","nodeType":"YulFunctionCall","src":"20804:13:89"},"nativeSrc":"20796:345:89","nodeType":"YulForLoop","post":{"nativeSrc":"20818:18:89","nodeType":"YulBlock","src":"20818:18:89","statements":[{"nativeSrc":"20820:14:89","nodeType":"YulAssignment","src":"20820:14:89","value":{"arguments":[{"name":"i","nativeSrc":"20829:1:89","nodeType":"YulIdentifier","src":"20829:1:89"},{"kind":"number","nativeSrc":"20832:1:89","nodeType":"YulLiteral","src":"20832:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20825:3:89","nodeType":"YulIdentifier","src":"20825:3:89"},"nativeSrc":"20825:9:89","nodeType":"YulFunctionCall","src":"20825:9:89"},"variableNames":[{"name":"i","nativeSrc":"20820:1:89","nodeType":"YulIdentifier","src":"20820:1:89"}]}]},"pre":{"nativeSrc":"20800:3:89","nodeType":"YulBlock","src":"20800:3:89","statements":[]},"src":"20796:345:89"},{"nativeSrc":"21150:10:89","nodeType":"YulAssignment","src":"21150:10:89","value":{"name":"pos","nativeSrc":"21157:3:89","nodeType":"YulIdentifier","src":"21157:3:89"},"variableNames":[{"name":"end","nativeSrc":"21150:3:89","nodeType":"YulIdentifier","src":"21150:3:89"}]}]},"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"20565:601:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20612:5:89","nodeType":"YulTypedName","src":"20612:5:89","type":""},{"name":"pos","nativeSrc":"20619:3:89","nodeType":"YulTypedName","src":"20619:3:89","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20627:3:89","nodeType":"YulTypedName","src":"20627:3:89","type":""}],"src":"20565:601:89"},{"body":{"nativeSrc":"21334:1208:89","nodeType":"YulBlock","src":"21334:1208:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21351:9:89","nodeType":"YulIdentifier","src":"21351:9:89"},{"kind":"number","nativeSrc":"21362:2:89","nodeType":"YulLiteral","src":"21362:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21344:6:89","nodeType":"YulIdentifier","src":"21344:6:89"},"nativeSrc":"21344:21:89","nodeType":"YulFunctionCall","src":"21344:21:89"},"nativeSrc":"21344:21:89","nodeType":"YulExpressionStatement","src":"21344:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21403:6:89","nodeType":"YulIdentifier","src":"21403:6:89"}],"functionName":{"name":"mload","nativeSrc":"21397:5:89","nodeType":"YulIdentifier","src":"21397:5:89"},"nativeSrc":"21397:13:89","nodeType":"YulFunctionCall","src":"21397:13:89"},{"arguments":[{"name":"headStart","nativeSrc":"21416:9:89","nodeType":"YulIdentifier","src":"21416:9:89"},{"kind":"number","nativeSrc":"21427:2:89","nodeType":"YulLiteral","src":"21427:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21412:3:89","nodeType":"YulIdentifier","src":"21412:3:89"},"nativeSrc":"21412:18:89","nodeType":"YulFunctionCall","src":"21412:18:89"}],"functionName":{"name":"abi_encode_rational_by","nativeSrc":"21374:22:89","nodeType":"YulIdentifier","src":"21374:22:89"},"nativeSrc":"21374:57:89","nodeType":"YulFunctionCall","src":"21374:57:89"},"nativeSrc":"21374:57:89","nodeType":"YulExpressionStatement","src":"21374:57:89"},{"nativeSrc":"21440:42:89","nodeType":"YulVariableDeclaration","src":"21440:42:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21470:6:89","nodeType":"YulIdentifier","src":"21470:6:89"},{"kind":"number","nativeSrc":"21478:2:89","nodeType":"YulLiteral","src":"21478:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21466:3:89","nodeType":"YulIdentifier","src":"21466:3:89"},"nativeSrc":"21466:15:89","nodeType":"YulFunctionCall","src":"21466:15:89"}],"functionName":{"name":"mload","nativeSrc":"21460:5:89","nodeType":"YulIdentifier","src":"21460:5:89"},"nativeSrc":"21460:22:89","nodeType":"YulFunctionCall","src":"21460:22:89"},"variables":[{"name":"memberValue0","nativeSrc":"21444:12:89","nodeType":"YulTypedName","src":"21444:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21502:9:89","nodeType":"YulIdentifier","src":"21502:9:89"},{"kind":"number","nativeSrc":"21513:2:89","nodeType":"YulLiteral","src":"21513:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21498:3:89","nodeType":"YulIdentifier","src":"21498:3:89"},"nativeSrc":"21498:18:89","nodeType":"YulFunctionCall","src":"21498:18:89"},{"kind":"number","nativeSrc":"21518:6:89","nodeType":"YulLiteral","src":"21518:6:89","type":"","value":"0x0100"}],"functionName":{"name":"mstore","nativeSrc":"21491:6:89","nodeType":"YulIdentifier","src":"21491:6:89"},"nativeSrc":"21491:34:89","nodeType":"YulFunctionCall","src":"21491:34:89"},"nativeSrc":"21491:34:89","nodeType":"YulExpressionStatement","src":"21491:34:89"},{"nativeSrc":"21534:66:89","nodeType":"YulVariableDeclaration","src":"21534:66:89","value":{"arguments":[{"name":"memberValue0","nativeSrc":"21566:12:89","nodeType":"YulIdentifier","src":"21566:12:89"},{"arguments":[{"name":"headStart","nativeSrc":"21584:9:89","nodeType":"YulIdentifier","src":"21584:9:89"},{"kind":"number","nativeSrc":"21595:3:89","nodeType":"YulLiteral","src":"21595:3:89","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"21580:3:89","nodeType":"YulIdentifier","src":"21580:3:89"},"nativeSrc":"21580:19:89","nodeType":"YulFunctionCall","src":"21580:19:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"21548:17:89","nodeType":"YulIdentifier","src":"21548:17:89"},"nativeSrc":"21548:52:89","nodeType":"YulFunctionCall","src":"21548:52:89"},"variables":[{"name":"tail_1","nativeSrc":"21538:6:89","nodeType":"YulTypedName","src":"21538:6:89","type":""}]},{"nativeSrc":"21609:44:89","nodeType":"YulVariableDeclaration","src":"21609:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21641:6:89","nodeType":"YulIdentifier","src":"21641:6:89"},{"kind":"number","nativeSrc":"21649:2:89","nodeType":"YulLiteral","src":"21649:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21637:3:89","nodeType":"YulIdentifier","src":"21637:3:89"},"nativeSrc":"21637:15:89","nodeType":"YulFunctionCall","src":"21637:15:89"}],"functionName":{"name":"mload","nativeSrc":"21631:5:89","nodeType":"YulIdentifier","src":"21631:5:89"},"nativeSrc":"21631:22:89","nodeType":"YulFunctionCall","src":"21631:22:89"},"variables":[{"name":"memberValue0_1","nativeSrc":"21613:14:89","nodeType":"YulTypedName","src":"21613:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21673:9:89","nodeType":"YulIdentifier","src":"21673:9:89"},{"kind":"number","nativeSrc":"21684:2:89","nodeType":"YulLiteral","src":"21684:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21669:3:89","nodeType":"YulIdentifier","src":"21669:3:89"},"nativeSrc":"21669:18:89","nodeType":"YulFunctionCall","src":"21669:18:89"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"21697:6:89","nodeType":"YulIdentifier","src":"21697:6:89"},{"name":"headStart","nativeSrc":"21705:9:89","nodeType":"YulIdentifier","src":"21705:9:89"}],"functionName":{"name":"sub","nativeSrc":"21693:3:89","nodeType":"YulIdentifier","src":"21693:3:89"},"nativeSrc":"21693:22:89","nodeType":"YulFunctionCall","src":"21693:22:89"},{"arguments":[{"kind":"number","nativeSrc":"21721:2:89","nodeType":"YulLiteral","src":"21721:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"21717:3:89","nodeType":"YulIdentifier","src":"21717:3:89"},"nativeSrc":"21717:7:89","nodeType":"YulFunctionCall","src":"21717:7:89"}],"functionName":{"name":"add","nativeSrc":"21689:3:89","nodeType":"YulIdentifier","src":"21689:3:89"},"nativeSrc":"21689:36:89","nodeType":"YulFunctionCall","src":"21689:36:89"}],"functionName":{"name":"mstore","nativeSrc":"21662:6:89","nodeType":"YulIdentifier","src":"21662:6:89"},"nativeSrc":"21662:64:89","nodeType":"YulFunctionCall","src":"21662:64:89"},"nativeSrc":"21662:64:89","nodeType":"YulExpressionStatement","src":"21662:64:89"},{"nativeSrc":"21735:55:89","nodeType":"YulVariableDeclaration","src":"21735:55:89","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"21767:14:89","nodeType":"YulIdentifier","src":"21767:14:89"},{"name":"tail_1","nativeSrc":"21783:6:89","nodeType":"YulIdentifier","src":"21783:6:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"21749:17:89","nodeType":"YulIdentifier","src":"21749:17:89"},"nativeSrc":"21749:41:89","nodeType":"YulFunctionCall","src":"21749:41:89"},"variables":[{"name":"tail_2","nativeSrc":"21739:6:89","nodeType":"YulTypedName","src":"21739:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21810:9:89","nodeType":"YulIdentifier","src":"21810:9:89"},{"kind":"number","nativeSrc":"21821:3:89","nodeType":"YulLiteral","src":"21821:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21806:3:89","nodeType":"YulIdentifier","src":"21806:3:89"},"nativeSrc":"21806:19:89","nodeType":"YulFunctionCall","src":"21806:19:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21837:6:89","nodeType":"YulIdentifier","src":"21837:6:89"},{"kind":"number","nativeSrc":"21845:2:89","nodeType":"YulLiteral","src":"21845:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21833:3:89","nodeType":"YulIdentifier","src":"21833:3:89"},"nativeSrc":"21833:15:89","nodeType":"YulFunctionCall","src":"21833:15:89"}],"functionName":{"name":"mload","nativeSrc":"21827:5:89","nodeType":"YulIdentifier","src":"21827:5:89"},"nativeSrc":"21827:22:89","nodeType":"YulFunctionCall","src":"21827:22:89"}],"functionName":{"name":"mstore","nativeSrc":"21799:6:89","nodeType":"YulIdentifier","src":"21799:6:89"},"nativeSrc":"21799:51:89","nodeType":"YulFunctionCall","src":"21799:51:89"},"nativeSrc":"21799:51:89","nodeType":"YulExpressionStatement","src":"21799:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21870:9:89","nodeType":"YulIdentifier","src":"21870:9:89"},{"kind":"number","nativeSrc":"21881:3:89","nodeType":"YulLiteral","src":"21881:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"21866:3:89","nodeType":"YulIdentifier","src":"21866:3:89"},"nativeSrc":"21866:19:89","nodeType":"YulFunctionCall","src":"21866:19:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21897:6:89","nodeType":"YulIdentifier","src":"21897:6:89"},{"kind":"number","nativeSrc":"21905:3:89","nodeType":"YulLiteral","src":"21905:3:89","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21893:3:89","nodeType":"YulIdentifier","src":"21893:3:89"},"nativeSrc":"21893:16:89","nodeType":"YulFunctionCall","src":"21893:16:89"}],"functionName":{"name":"mload","nativeSrc":"21887:5:89","nodeType":"YulIdentifier","src":"21887:5:89"},"nativeSrc":"21887:23:89","nodeType":"YulFunctionCall","src":"21887:23:89"}],"functionName":{"name":"mstore","nativeSrc":"21859:6:89","nodeType":"YulIdentifier","src":"21859:6:89"},"nativeSrc":"21859:52:89","nodeType":"YulFunctionCall","src":"21859:52:89"},"nativeSrc":"21859:52:89","nodeType":"YulExpressionStatement","src":"21859:52:89"},{"nativeSrc":"21920:45:89","nodeType":"YulVariableDeclaration","src":"21920:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21952:6:89","nodeType":"YulIdentifier","src":"21952:6:89"},{"kind":"number","nativeSrc":"21960:3:89","nodeType":"YulLiteral","src":"21960:3:89","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"21948:3:89","nodeType":"YulIdentifier","src":"21948:3:89"},"nativeSrc":"21948:16:89","nodeType":"YulFunctionCall","src":"21948:16:89"}],"functionName":{"name":"mload","nativeSrc":"21942:5:89","nodeType":"YulIdentifier","src":"21942:5:89"},"nativeSrc":"21942:23:89","nodeType":"YulFunctionCall","src":"21942:23:89"},"variables":[{"name":"memberValue0_2","nativeSrc":"21924:14:89","nodeType":"YulTypedName","src":"21924:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21985:9:89","nodeType":"YulIdentifier","src":"21985:9:89"},{"kind":"number","nativeSrc":"21996:3:89","nodeType":"YulLiteral","src":"21996:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"21981:3:89","nodeType":"YulIdentifier","src":"21981:3:89"},"nativeSrc":"21981:19:89","nodeType":"YulFunctionCall","src":"21981:19:89"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"22010:6:89","nodeType":"YulIdentifier","src":"22010:6:89"},{"name":"headStart","nativeSrc":"22018:9:89","nodeType":"YulIdentifier","src":"22018:9:89"}],"functionName":{"name":"sub","nativeSrc":"22006:3:89","nodeType":"YulIdentifier","src":"22006:3:89"},"nativeSrc":"22006:22:89","nodeType":"YulFunctionCall","src":"22006:22:89"},{"arguments":[{"kind":"number","nativeSrc":"22034:2:89","nodeType":"YulLiteral","src":"22034:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"22030:3:89","nodeType":"YulIdentifier","src":"22030:3:89"},"nativeSrc":"22030:7:89","nodeType":"YulFunctionCall","src":"22030:7:89"}],"functionName":{"name":"add","nativeSrc":"22002:3:89","nodeType":"YulIdentifier","src":"22002:3:89"},"nativeSrc":"22002:36:89","nodeType":"YulFunctionCall","src":"22002:36:89"}],"functionName":{"name":"mstore","nativeSrc":"21974:6:89","nodeType":"YulIdentifier","src":"21974:6:89"},"nativeSrc":"21974:65:89","nodeType":"YulFunctionCall","src":"21974:65:89"},"nativeSrc":"21974:65:89","nodeType":"YulExpressionStatement","src":"21974:65:89"},{"nativeSrc":"22048:65:89","nodeType":"YulVariableDeclaration","src":"22048:65:89","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"22090:14:89","nodeType":"YulIdentifier","src":"22090:14:89"},{"name":"tail_2","nativeSrc":"22106:6:89","nodeType":"YulIdentifier","src":"22106:6:89"}],"functionName":{"name":"abi_encode_array_string_dyn","nativeSrc":"22062:27:89","nodeType":"YulIdentifier","src":"22062:27:89"},"nativeSrc":"22062:51:89","nodeType":"YulFunctionCall","src":"22062:51:89"},"variables":[{"name":"tail_3","nativeSrc":"22052:6:89","nodeType":"YulTypedName","src":"22052:6:89","type":""}]},{"nativeSrc":"22122:45:89","nodeType":"YulVariableDeclaration","src":"22122:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"22154:6:89","nodeType":"YulIdentifier","src":"22154:6:89"},{"kind":"number","nativeSrc":"22162:3:89","nodeType":"YulLiteral","src":"22162:3:89","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"22150:3:89","nodeType":"YulIdentifier","src":"22150:3:89"},"nativeSrc":"22150:16:89","nodeType":"YulFunctionCall","src":"22150:16:89"}],"functionName":{"name":"mload","nativeSrc":"22144:5:89","nodeType":"YulIdentifier","src":"22144:5:89"},"nativeSrc":"22144:23:89","nodeType":"YulFunctionCall","src":"22144:23:89"},"variables":[{"name":"memberValue0_3","nativeSrc":"22126:14:89","nodeType":"YulTypedName","src":"22126:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22187:9:89","nodeType":"YulIdentifier","src":"22187:9:89"},{"kind":"number","nativeSrc":"22198:3:89","nodeType":"YulLiteral","src":"22198:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"22183:3:89","nodeType":"YulIdentifier","src":"22183:3:89"},"nativeSrc":"22183:19:89","nodeType":"YulFunctionCall","src":"22183:19:89"},{"arguments":[{"arguments":[{"name":"tail_3","nativeSrc":"22212:6:89","nodeType":"YulIdentifier","src":"22212:6:89"},{"name":"headStart","nativeSrc":"22220:9:89","nodeType":"YulIdentifier","src":"22220:9:89"}],"functionName":{"name":"sub","nativeSrc":"22208:3:89","nodeType":"YulIdentifier","src":"22208:3:89"},"nativeSrc":"22208:22:89","nodeType":"YulFunctionCall","src":"22208:22:89"},{"arguments":[{"kind":"number","nativeSrc":"22236:2:89","nodeType":"YulLiteral","src":"22236:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"22232:3:89","nodeType":"YulIdentifier","src":"22232:3:89"},"nativeSrc":"22232:7:89","nodeType":"YulFunctionCall","src":"22232:7:89"}],"functionName":{"name":"add","nativeSrc":"22204:3:89","nodeType":"YulIdentifier","src":"22204:3:89"},"nativeSrc":"22204:36:89","nodeType":"YulFunctionCall","src":"22204:36:89"}],"functionName":{"name":"mstore","nativeSrc":"22176:6:89","nodeType":"YulIdentifier","src":"22176:6:89"},"nativeSrc":"22176:65:89","nodeType":"YulFunctionCall","src":"22176:65:89"},"nativeSrc":"22176:65:89","nodeType":"YulExpressionStatement","src":"22176:65:89"},{"nativeSrc":"22250:77:89","nodeType":"YulVariableDeclaration","src":"22250:77:89","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"22304:14:89","nodeType":"YulIdentifier","src":"22304:14:89"},{"name":"tail_3","nativeSrc":"22320:6:89","nodeType":"YulIdentifier","src":"22320:6:89"}],"functionName":{"name":"abi_encode_array_struct_TokenAmount_dyn","nativeSrc":"22264:39:89","nodeType":"YulIdentifier","src":"22264:39:89"},"nativeSrc":"22264:63:89","nodeType":"YulFunctionCall","src":"22264:63:89"},"variables":[{"name":"tail_4","nativeSrc":"22254:6:89","nodeType":"YulTypedName","src":"22254:6:89","type":""}]},{"nativeSrc":"22336:45:89","nodeType":"YulVariableDeclaration","src":"22336:45:89","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"22368:6:89","nodeType":"YulIdentifier","src":"22368:6:89"},{"kind":"number","nativeSrc":"22376:3:89","nodeType":"YulLiteral","src":"22376:3:89","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"22364:3:89","nodeType":"YulIdentifier","src":"22364:3:89"},"nativeSrc":"22364:16:89","nodeType":"YulFunctionCall","src":"22364:16:89"}],"functionName":{"name":"mload","nativeSrc":"22358:5:89","nodeType":"YulIdentifier","src":"22358:5:89"},"nativeSrc":"22358:23:89","nodeType":"YulFunctionCall","src":"22358:23:89"},"variables":[{"name":"memberValue0_4","nativeSrc":"22340:14:89","nodeType":"YulTypedName","src":"22340:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22401:9:89","nodeType":"YulIdentifier","src":"22401:9:89"},{"kind":"number","nativeSrc":"22412:6:89","nodeType":"YulLiteral","src":"22412:6:89","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"22397:3:89","nodeType":"YulIdentifier","src":"22397:3:89"},"nativeSrc":"22397:22:89","nodeType":"YulFunctionCall","src":"22397:22:89"},{"arguments":[{"arguments":[{"name":"tail_4","nativeSrc":"22429:6:89","nodeType":"YulIdentifier","src":"22429:6:89"},{"name":"headStart","nativeSrc":"22437:9:89","nodeType":"YulIdentifier","src":"22437:9:89"}],"functionName":{"name":"sub","nativeSrc":"22425:3:89","nodeType":"YulIdentifier","src":"22425:3:89"},"nativeSrc":"22425:22:89","nodeType":"YulFunctionCall","src":"22425:22:89"},{"arguments":[{"kind":"number","nativeSrc":"22453:2:89","nodeType":"YulLiteral","src":"22453:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"22449:3:89","nodeType":"YulIdentifier","src":"22449:3:89"},"nativeSrc":"22449:7:89","nodeType":"YulFunctionCall","src":"22449:7:89"}],"functionName":{"name":"add","nativeSrc":"22421:3:89","nodeType":"YulIdentifier","src":"22421:3:89"},"nativeSrc":"22421:36:89","nodeType":"YulFunctionCall","src":"22421:36:89"}],"functionName":{"name":"mstore","nativeSrc":"22390:6:89","nodeType":"YulIdentifier","src":"22390:6:89"},"nativeSrc":"22390:68:89","nodeType":"YulFunctionCall","src":"22390:68:89"},"nativeSrc":"22390:68:89","nodeType":"YulExpressionStatement","src":"22390:68:89"},{"nativeSrc":"22467:69:89","nodeType":"YulAssignment","src":"22467:69:89","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"22513:14:89","nodeType":"YulIdentifier","src":"22513:14:89"},{"name":"tail_4","nativeSrc":"22529:6:89","nodeType":"YulIdentifier","src":"22529:6:89"}],"functionName":{"name":"abi_encode_array_struct_NFTAmount_dyn","nativeSrc":"22475:37:89","nodeType":"YulIdentifier","src":"22475:37:89"},"nativeSrc":"22475:61:89","nodeType":"YulFunctionCall","src":"22475:61:89"},"variableNames":[{"name":"tail","nativeSrc":"22467:4:89","nodeType":"YulIdentifier","src":"22467:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr__to_t_struct$_OutMessageV1_$16084_memory_ptr__fromStack_reversed","nativeSrc":"21171:1371:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21303:9:89","nodeType":"YulTypedName","src":"21303:9:89","type":""},{"name":"value0","nativeSrc":"21314:6:89","nodeType":"YulTypedName","src":"21314:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21325:4:89","nodeType":"YulTypedName","src":"21325:4:89","type":""}],"src":"21171:1371:89"},{"body":{"nativeSrc":"22694:142:89","nodeType":"YulBlock","src":"22694:142:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22711:9:89","nodeType":"YulIdentifier","src":"22711:9:89"},{"name":"value0","nativeSrc":"22722:6:89","nodeType":"YulIdentifier","src":"22722:6:89"}],"functionName":{"name":"mstore","nativeSrc":"22704:6:89","nodeType":"YulIdentifier","src":"22704:6:89"},"nativeSrc":"22704:25:89","nodeType":"YulFunctionCall","src":"22704:25:89"},"nativeSrc":"22704:25:89","nodeType":"YulExpressionStatement","src":"22704:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22749:9:89","nodeType":"YulIdentifier","src":"22749:9:89"},{"kind":"number","nativeSrc":"22760:2:89","nodeType":"YulLiteral","src":"22760:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22745:3:89","nodeType":"YulIdentifier","src":"22745:3:89"},"nativeSrc":"22745:18:89","nodeType":"YulFunctionCall","src":"22745:18:89"},{"kind":"number","nativeSrc":"22765:2:89","nodeType":"YulLiteral","src":"22765:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"22738:6:89","nodeType":"YulIdentifier","src":"22738:6:89"},"nativeSrc":"22738:30:89","nodeType":"YulFunctionCall","src":"22738:30:89"},"nativeSrc":"22738:30:89","nodeType":"YulExpressionStatement","src":"22738:30:89"},{"nativeSrc":"22777:53:89","nodeType":"YulAssignment","src":"22777:53:89","value":{"arguments":[{"name":"value1","nativeSrc":"22803:6:89","nodeType":"YulIdentifier","src":"22803:6:89"},{"arguments":[{"name":"headStart","nativeSrc":"22815:9:89","nodeType":"YulIdentifier","src":"22815:9:89"},{"kind":"number","nativeSrc":"22826:2:89","nodeType":"YulLiteral","src":"22826:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22811:3:89","nodeType":"YulIdentifier","src":"22811:3:89"},"nativeSrc":"22811:18:89","nodeType":"YulFunctionCall","src":"22811:18:89"}],"functionName":{"name":"abi_encode_string","nativeSrc":"22785:17:89","nodeType":"YulIdentifier","src":"22785:17:89"},"nativeSrc":"22785:45:89","nodeType":"YulFunctionCall","src":"22785:45:89"},"variableNames":[{"name":"tail","nativeSrc":"22777:4:89","nodeType":"YulIdentifier","src":"22777:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"22547:289:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22655:9:89","nodeType":"YulTypedName","src":"22655:9:89","type":""},{"name":"value1","nativeSrc":"22666:6:89","nodeType":"YulTypedName","src":"22666:6:89","type":""},{"name":"value0","nativeSrc":"22674:6:89","nodeType":"YulTypedName","src":"22674:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22685:4:89","nodeType":"YulTypedName","src":"22685:4:89","type":""}],"src":"22547:289:89"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n    }\n    function abi_encode_tuple_t_contract$_TacSAFactory_$19057__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_2598() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x60)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory_2600() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xa0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let src := add(offset, 0x20)\n        let array_1 := 0\n        array_1 := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array_1, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), src, length)\n        mstore(add(add(array_1, length), 0x20), 0)\n        array := array_1\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_decode_tuple_t_addresst_bool_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_struct_PreHook(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x80) { revert(0, 0) }\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x80)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        value := memPtr\n        let value_1 := calldataload(headStart)\n        validator_revert_bool(value_1)\n        mstore(memPtr, value_1)\n        let value_2 := calldataload(add(headStart, 32))\n        validator_revert_address(value_2)\n        mstore(add(memPtr, 32), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 64))\n        mstore(add(memPtr, 64), value_3)\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(memPtr, 96), abi_decode_bytes(add(headStart, offset), end))\n    }\n    function abi_decode_available_length_array_struct_PreHook_dyn(offset, length, end) -> array\n    {\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let _1 := shl(5, length)\n        size := add(_1, 0x20)\n        array := allocate_memory(size)\n        let dst := array\n        mstore(array, length)\n        dst := add(array, 0x20)\n        let srcEnd := add(offset, _1)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := offset\n        for { } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert(0, 0) }\n            mstore(dst, abi_decode_struct_PreHook(add(offset, innerOffset), end))\n            dst := add(dst, 0x20)\n        }\n    }\n    function abi_decode_array_struct_PostHook_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_array_struct_PreHook_dyn(add(offset, 0x20), calldataload(offset), end)\n    }\n    function abi_decode_tuple_t_struct$_SaHooks_$19478_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 0x60) { revert(0, 0) }\n        let value := allocate_memory_2598()\n        let offset_1 := calldataload(_1)\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let _2 := add(_1, offset_1)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        mstore(value, abi_decode_available_length_array_struct_PreHook_dyn(add(_2, 32), calldataload(_2), dataEnd))\n        let offset_2 := calldataload(add(_1, 32))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 32), abi_decode_array_struct_PostHook_dyn(add(_1, offset_2), dataEnd))\n        let offset_3 := calldataload(add(_1, 64))\n        if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 64), abi_decode_struct_PreHook(add(_1, offset_3), dataEnd))\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_rational_by(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        ret := add(value, 1)\n    }\n    function abi_decode_tuple_t_struct$_TacHeaderV1_$16110_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 0xa0) { revert(0, 0) }\n        let value := allocate_memory_2600()\n        let value_1 := calldataload(_1)\n        if iszero(eq(value_1, and(value_1, 0xffffffffffffffff))) { revert(0, 0) }\n        mstore(value, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(_1, 32))\n        mstore(add(value, 32), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(_1, 64))\n        mstore(add(value, 64), value_3)\n        let offset_1 := calldataload(add(_1, 96))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 96), abi_decode_bytes(add(_1, offset_1), dataEnd))\n        let offset_2 := calldataload(add(_1, 128))\n        if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 128), abi_decode_bytes(add(_1, offset_2), dataEnd))\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_string(value2, add(headStart, 96))\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := mload(_1)\n        let array := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), length)\n        value0 := array\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_a07439f902f1bd470ce3997f1765e8144dca2c4ced2587f5d56d513a4a4bc0db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Self call failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"TransferHelper::safeApprove: app\")\n        mstore(add(headStart, 96), \"rove failed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_array_string_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), not(31)))\n            tail := abi_encode_string(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, 0x20)\n            pos := add(pos, 0x20)\n        }\n        end := tail\n    }\n    function abi_encode_array_struct_TokenAmount_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let _1 := mload(srcPtr)\n            mstore(pos, and(mload(_1), sub(shl(160, 1), 1)))\n            mstore(add(pos, 0x20), mload(add(_1, 0x20)))\n            pos := add(pos, 0x40)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function abi_encode_array_struct_NFTAmount_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        pos := add(pos, 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let _1 := mload(srcPtr)\n            mstore(pos, and(mload(_1), sub(shl(160, 1), 1)))\n            mstore(add(pos, 0x20), mload(add(_1, 0x20)))\n            mstore(add(pos, 0x40), mload(add(_1, 0x40)))\n            pos := add(pos, 0x60)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_struct$_OutMessageV1_$16084_memory_ptr__to_t_struct$_OutMessageV1_$16084_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        abi_encode_rational_by(mload(value0), add(headStart, 32))\n        let memberValue0 := mload(add(value0, 32))\n        mstore(add(headStart, 64), 0x0100)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 288))\n        let memberValue0_1 := mload(add(value0, 64))\n        mstore(add(headStart, 96), add(sub(tail_1, headStart), not(31)))\n        let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n        mstore(add(headStart, 128), mload(add(value0, 96)))\n        mstore(add(headStart, 160), mload(add(value0, 128)))\n        let memberValue0_2 := mload(add(value0, 160))\n        mstore(add(headStart, 192), add(sub(tail_2, headStart), not(31)))\n        let tail_3 := abi_encode_array_string_dyn(memberValue0_2, tail_2)\n        let memberValue0_3 := mload(add(value0, 192))\n        mstore(add(headStart, 224), add(sub(tail_3, headStart), not(31)))\n        let tail_4 := abi_encode_array_struct_TokenAmount_dyn(memberValue0_3, tail_3)\n        let memberValue0_4 := mload(add(value0, 224))\n        mstore(add(headStart, 0x0100), add(sub(tail_4, headStart), not(31)))\n        tail := abi_encode_array_struct_NFTAmount_dyn(memberValue0_4, tail_4)\n    }\n    function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"968":[{"length":32,"start":5555},{"length":32,"start":5596},{"length":32,"start":5886}]},"linkReferences":{},"object":"6080604052600436106101b75760003560e01c80634f8632ba116100ec578063a22cb4651161008a578063b88d4fde11610064578063b88d4fde14610506578063c87b56dd14610526578063d09de08a14610546578063e985e9c51461055b57600080fd5b8063a22cb46514610495578063ad3cb1cc146104b5578063ae6e7180146104e657600080fd5b80636352211e116100c65780636352211e1461042057806370a08231146104405780637d6f0e9c1461046057806395d89b411461048057600080fd5b80634f8632ba146103d557806352d1902d146103f557806361bc221a1461040a57600080fd5b806322c3a793116101595780633c2d13c3116101335780633c2d13c31461036257806342842e0e14610382578063485cc955146103a25780634f1ef286146103c257600080fd5b806322c3a793146102d057806323b872dd1461032857806330c78b411461034857600080fd5b8063095ea7b311610195578063095ea7b31461024b5780630c5561a61461026d5780630d8e6e2c1461028d57806314f40e5e146102ab57600080fd5b806301ffc9a7146101bc57806306fdde03146101f1578063081812fc14610213575b600080fd5b3480156101c857600080fd5b506101dc6101d7366004612214565b61057b565b60405190151581526020015b60405180910390f35b3480156101fd57600080fd5b506102066105cd565b6040516101e89190612281565b34801561021f57600080fd5b5061023361022e366004612294565b610671565b6040516001600160a01b0390911681526020016101e8565b34801561025757600080fd5b5061026b6102663660046122c2565b610686565b005b34801561027957600080fd5b5061026b610288366004612336565b610695565b34801561029957600080fd5b5060015b6040519081526020016101e8565b3480156102b757600080fd5b506002546102339061010090046001600160a01b031681565b3480156102dc57600080fd5b5061026b6102eb3660046123a5565b600280546001600160a01b03909216610100026001600160a81b031990921691909117600117905550600380546001600160a01b03191633179055565b34801561033457600080fd5b5061026b6103433660046123d5565b6108a1565b34801561035457600080fd5b506002546101dc9060ff1681565b34801561036e57600080fd5b50600054610233906001600160a01b031681565b34801561038e57600080fd5b5061026b61039d3660046123d5565b610931565b3480156103ae57600080fd5b5061026b6103bd366004612416565b610951565b61026b6103d0366004612554565b610a83565b3480156103e157600080fd5b50600354610233906001600160a01b031681565b34801561040157600080fd5b5061029d610a95565b34801561041657600080fd5b5061029d60015481565b34801561042c57600080fd5b5061023361043b366004612294565b610ab2565b34801561044c57600080fd5b5061029d61045b3660046125a3565b610abd565b34801561046c57600080fd5b5061026b61047b366004612336565b610b19565b34801561048c57600080fd5b50610206610bf0565b3480156104a157600080fd5b5061026b6104b03660046125ce565b610c2f565b3480156104c157600080fd5b50610206604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156104f257600080fd5b506101dc6105013660046125a3565b610c3a565b34801561051257600080fd5b5061026b6105213660046125fc565b610c9e565b34801561053257600080fd5b50610206610541366004612294565b610cb6565b34801561055257600080fd5b5061026b610d2b565b34801561056757600080fd5b506101dc610576366004612416565b610d71565b60006001600160e01b031982166380ac58cd60e01b14806105ac57506001600160e01b03198216635b5e139f60e01b145b806105c757506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612d4283398151915280546060919081906105ed90612667565b80601f016020809104026020016040519081016040528092919081815260200182805461061990612667565b80156106665780601f1061063b57610100808354040283529160200191610666565b820191906000526020600020905b81548152906001019060200180831161064957829003601f168201915b505050505091505090565b600061067c82610dbe565b506105c782610df6565b610691828233610e30565b5050565b61069d610e3d565b6001600160a01b0316336001600160a01b0316146106ce576040516367ab7efd60e01b815260040160405180910390fd5b60006106da8585610e70565b600080546060830151604051630a66c4f560e41b815293945091926001600160a01b039091169163a66c4f50916107149190600401612281565b60408051808303816000875af1158015610732573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075691906126a1565b509050600061076784860186612812565b90506107738282610ea6565b5061077e82826110ae565b50610789828261115f565b50604080516001808252818301909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816107a15790505060408051808201825260025461010090046001600160a01b031680825291516370a0823160e01b8152306004820152929350916020830191906370a0823190602401602060405180830381865afa158015610827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084b91906128eb565b8152508160008151811061086157610861612904565b6020026020010181905250610897888883604051806040016040528060078152602001661c185e5b1bd85960ca1b815250611315565b5050505050505050565b6001600160a01b0382166108d057604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006108dd838333611480565b9050836001600160a01b0316816001600160a01b03161461092b576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016108c7565b50505050565b61094c83838360405180602001604052806000815250610c9e565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156109965750825b90506000826001600160401b031660011480156109b25750303b155b9050811580156109c0575080155b156109de5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a0857845460ff60401b1916600160401b1785555b610a118761158a565b610a1961159e565b600080546001600160a01b0319166001600160a01b0388161790558315610a7a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610a8b6115a8565b6106918282611636565b6000610a9f6116f3565b50600080516020612d6283398151915290565b60006105c782610dbe565b6000600080516020612d428339815191526001600160a01b038316610af8576040516322718ad960e21b8152600060048201526024016108c7565b6001600160a01b039092166000908152600390920160205250604090205490565b610b21610e3d565b6001600160a01b0316336001600160a01b031614610b52576040516367ab7efd60e01b815260040160405180910390fd5b6000610b5e8585610e70565b600080546060830151604051630a66c4f560e41b815293945091926001600160a01b039091169163a66c4f5091610b989190600401612281565b60408051808303816000875af1158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda91906126a1565b509050610be881600061173c565b505050505050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020612d42833981519152916105ed90612667565b610691338383611756565b6000816001600160a01b03166341e15ea06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c7919061291a565b610ca98484846108a1565b61092b3385858585611807565b6060610cc182610dbe565b506000610cd960408051602081019091526000815290565b90506000815111610cf95760405180602001604052806000815250610d24565b80610d0384611930565b604051602001610d14929190612937565b6040516020818303038152906040525b9392505050565b60018054906000610d3b83612966565b90915550506001546040513391907f6312957b833157dbcce860c9538737febb9491fde39563488a9c296f930376ed90600090a3565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b600080610dca836119c2565b90506001600160a01b0381166105c757604051637e27328960e01b8152600481018490526024016108c7565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b61094c83838360016119fc565b60007f9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d1005b546001600160a01b0316919050565b6040805160a0810182526000808252602082018190529181019190915260608082018190526080820152610d248284018461298d565b80518051606091906000906001600160401b03811115610ec857610ec8612444565b604051908082528060200260200182016040528015610efb57816020015b6060815260200190600190039081610ee65790505b50905060005b82518110156110a557828181518110610f1c57610f1c612904565b6020026020010151600001511561101d57856001600160a01b031663b61d27f6848381518110610f4e57610f4e612904565b602002602001015160200151858481518110610f6c57610f6c612904565b602002602001015160400151868581518110610f8a57610f8a612904565b6020026020010151606001516040518463ffffffff1660e01b8152600401610fb493929190612a5a565b6000604051808303816000875af1158015610fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffb9190810190612a81565b82828151811061100d5761100d612904565b602002602001018190525061109d565b61107f83828151811061103257611032612904565b60200260200101516020015184838151811061105057611050612904565b60200260200101516040015185848151811061106e5761106e612904565b602002602001015160600151611b12565b82828151811061109157611091612904565b60200260200101819052505b600101610f01565b50949350505050565b60408101518051606091901561114857602081015160408083015160608401519151635b0e93fb60e11b81526001600160a01b0388169363b61d27f6936110f9939192600401612a5a565b6000604051808303816000875af1158015611118573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111409190810190612a81565b9150506105c7565b611140816020015182604001518360600151611b12565b6060600082602001519050600081516001600160401b0381111561118557611185612444565b6040519080825280602002602001820160405280156111b857816020015b60608152602001906001900390816111a35790505b50905060005b82518110156110a5578281815181106111d9576111d9612904565b602002602001015160000151156112da57856001600160a01b031663b61d27f684838151811061120b5761120b612904565b60200260200101516020015185848151811061122957611229612904565b60200260200101516040015186858151811061124757611247612904565b6020026020010151606001516040518463ffffffff1660e01b815260040161127193929190612a5a565b6000604051808303816000875af1158015611290573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b89190810190612a81565b8282815181106112ca576112ca612904565b602002602001018190525061130d565b6112ef83828151811061103257611032612904565b82828151811061130157611301612904565b60200260200101819052505b6001016111be565b60005b82518110156113755761136d83828151811061133657611336612904565b60200260200101516000015161134a610e3d565b85848151811061135c5761135c612904565b602002602001015160200151611bc0565b600101611318565b5060006113828585610e70565b9050600060405180610100016040528083600001516001600160401b0316815260200183606001518152602001848152602001600081526020016000815260200160006001600160401b038111156113dc576113dc612444565b60405190808252806020026020018201604052801561140f57816020015b60608152602001906001900390816113fa5790505b5081526020808201879052604080516000808252928101825292019190611471565b61145e604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816114315790505b5090529050610be88147611ce8565b6000600080516020612d428339815191528161149b856119c2565b90506001600160a01b038416156114b7576114b7818587611d6b565b6001600160a01b038116156114f7576114d46000866000806119fc565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b03861615611528576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b611592611dcf565b61159b81611e18565b50565b6115a6611dcf565b565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061161857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661160c611e61565b6001600160a01b031614155b156115a65760405163703e46dd60e11b815260040160405180910390fd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611690575060408051601f3d908101601f1916820190925261168d918101906128eb565b60015b6116b857604051634c9c8ce360e01b81526001600160a01b03831660048201526024016108c7565b600080516020612d6283398151915281146116e957604051632a87526960e21b8152600481018290526024016108c7565b61094c8383611e77565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115a65760405163703e46dd60e11b815260040160405180910390fd5b610691828260405180602001604052806000815250611ecd565b600080516020612d428339815191526001600160a01b03831661179757604051630b61174360e31b81526001600160a01b03841660048201526024016108c7565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b1561192957604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611849908890889087908790600401612aee565b6020604051808303816000875af1925050508015611884575060408051601f3d908101601f1916820190925261188191810190612b2b565b60015b6118ed573d8080156118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b5080516000036118e557604051633250574960e11b81526001600160a01b03851660048201526024016108c7565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610be857604051633250574960e11b81526001600160a01b03851660048201526024016108c7565b5050505050565b6060600061193d83611ee5565b60010190506000816001600160401b0381111561195c5761195c612444565b6040519080825280601f01601f191660200182016040528015611986576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461199057509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020612d428339815191528180611a1f57506001600160a01b03831615155b15611ae1576000611a2f85610dbe565b90506001600160a01b03841615801590611a5b5750836001600160a01b0316816001600160a01b031614155b8015611a6e5750611a6c8185610d71565b155b15611a975760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016108c7565b8215611adf5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168585604051611b309190612b48565b60006040518083038185875af1925050503d8060008114611b6d576040519150601f19603f3d011682016040523d82523d6000602084013e611b72565b606091505b509150915081611bb75760405162461bcd60e51b815260206004820152601060248201526f14d95b198818d85b1b0819985a5b195960821b60448201526064016108c7565b95945050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691611c1c9190612b48565b6000604051808303816000865af19150503d8060008114611c59576040519150601f19603f3d011682016040523d82523d6000602084013e611c5e565b606091505b5091509150818015611c88575080511580611c88575080806020019051810190611c88919061291a565b6119295760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b60648201526084016108c7565b611cf0610e3d565b6001600160a01b031663e289adcd82600185604051602001611d129190612c65565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611d3e929190612d28565b6000604051808303818588803b158015611d5757600080fd5b505af1158015610a7a573d6000803e3d6000fd5b611d76838383611fbd565b61094c576001600160a01b038316611da457604051637e27328960e01b8152600481018290526024016108c7565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016108c7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166115a657604051631afcd79f60e31b815260040160405180910390fd5b611e20611dcf565b7f9b777d7f09ca6843192b146ee41249650756fb313cbc428aa2dd37d610f1d10080546001600160a01b0319166001600160a01b0392909216919091179055565b6000600080516020612d62833981519152610e61565b611e8082612023565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611ec55761094c8282612088565b6106916120f5565b611ed78383612114565b61094c336000858585611807565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611f245772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611f50576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611f6e57662386f26fc10000830492506010015b6305f5e1008310611f86576305f5e100830492506008015b6127108310611f9a57612710830492506004015b60648310611fac576064830492506002015b600a83106105c75760010192915050565b60006001600160a01b0383161580159061201b5750826001600160a01b0316846001600160a01b03161480611ff75750611ff78484610d71565b8061201b5750826001600160a01b031661201083610df6565b6001600160a01b0316145b949350505050565b806001600160a01b03163b60000361205957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016108c7565b600080516020612d6283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120a59190612b48565b600060405180830381855af49150503d80600081146120e0576040519150601f19603f3d011682016040523d82523d6000602084013e6120e5565b606091505b5091509150611bb7858383612179565b34156115a65760405163b398979f60e01b815260040160405180910390fd5b6001600160a01b03821661213e57604051633250574960e11b8152600060048201526024016108c7565b600061214c83836000611480565b90506001600160a01b0381161561094c576040516339e3563760e11b8152600060048201526024016108c7565b60608261218e57612189826121d5565b610d24565b81511580156121a557506001600160a01b0384163b155b156121ce57604051639996b31560e01b81526001600160a01b03851660048201526024016108c7565b5080610d24565b8051156121e55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6001600160e01b03198116811461159b57600080fd5b60006020828403121561222657600080fd5b8135610d24816121fe565b60005b8381101561224c578181015183820152602001612234565b50506000910152565b6000815180845261226d816020860160208601612231565b601f01601f19169290920160200192915050565b602081526000610d246020830184612255565b6000602082840312156122a657600080fd5b5035919050565b6001600160a01b038116811461159b57600080fd5b600080604083850312156122d557600080fd5b82356122e0816122ad565b946020939093013593505050565b60008083601f84011261230057600080fd5b5081356001600160401b0381111561231757600080fd5b60208301915083602082850101111561232f57600080fd5b9250929050565b6000806000806040858703121561234c57600080fd5b84356001600160401b0381111561236257600080fd5b61236e878288016122ee565b90955093505060208501356001600160401b0381111561238d57600080fd5b612399878288016122ee565b95989497509550505050565b600080604083850312156123b857600080fd5b8235915060208301356123ca816122ad565b809150509250929050565b6000806000606084860312156123ea57600080fd5b83356123f5816122ad565b92506020840135612405816122ad565b929592945050506040919091013590565b6000806040838503121561242957600080fd5b8235612434816122ad565b915060208301356123ca816122ad565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561247c5761247c612444565b60405290565b60405160a081016001600160401b038111828210171561247c5761247c612444565b604051601f8201601f191681016001600160401b03811182821017156124cc576124cc612444565b604052919050565b60006001600160401b038211156124ed576124ed612444565b50601f01601f191660200190565b600082601f83011261250c57600080fd5b8135602083016000612525612520846124d4565b6124a4565b905082815285838301111561253957600080fd5b82826020830137600092810160200192909252509392505050565b6000806040838503121561256757600080fd5b8235612572816122ad565b915060208301356001600160401b0381111561258d57600080fd5b612599858286016124fb565b9150509250929050565b6000602082840312156125b557600080fd5b8135610d24816122ad565b801515811461159b57600080fd5b600080604083850312156125e157600080fd5b82356125ec816122ad565b915060208301356123ca816125c0565b6000806000806080858703121561261257600080fd5b843561261d816122ad565b9350602085013561262d816122ad565b92506040850135915060608501356001600160401b0381111561264f57600080fd5b61265b878288016124fb565b91505092959194509250565b600181811c9082168061267b57607f821691505b60208210810361269b57634e487b7160e01b600052602260045260246000fd5b50919050565b600080604083850312156126b457600080fd5b82516126bf816122ad565b60208401519092506123ca816125c0565b6000608082840312156126e257600080fd5b604051608081016001600160401b038111828210171561270457612704612444565b6040529050808235612715816125c0565b81526020830135612725816122ad565b60208201526040838101359082015260608301356001600160401b0381111561274d57600080fd5b612759858286016124fb565b6060830152505092915050565b6000806001600160401b0384111561278057612780612444565b8360051b602081019150612793826124a4565b85815292506020830191508301858111156127ad57600080fd5b835b818110156127e85780356001600160401b038111156127cd57600080fd5b6127d9888288016126d0565b845250602092830192016127af565b5050509392505050565b600082601f83011261280357600080fd5b610d2483833560208501612766565b60006020828403121561282457600080fd5b81356001600160401b0381111561283a57600080fd5b82016060818503121561284c57600080fd5b61285461245a565b81356001600160401b0381111561286a57600080fd5b8201601f8101861361287b57600080fd5b61288a86823560208401612766565b82525060208201356001600160401b038111156128a657600080fd5b6128b2868285016127f2565b60208301525060408201356001600160401b038111156128d157600080fd5b6128dd868285016126d0565b604083015250949350505050565b6000602082840312156128fd57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561292c57600080fd5b8151610d24816125c0565b60008351612949818460208801612231565b83519083019061295d818360208801612231565b01949350505050565b60006001820161298657634e487b7160e01b600052601160045260246000fd5b5060010190565b60006020828403121561299f57600080fd5b81356001600160401b038111156129b557600080fd5b820160a081850312156129c757600080fd5b6129cf612482565b81356001600160401b03811681146129e657600080fd5b8152602082810135908201526040808301359082015260608201356001600160401b03811115612a1557600080fd5b612a21868285016124fb565b60608301525060808201356001600160401b03811115612a4057600080fd5b612a4c868285016124fb565b608083015250949350505050565b60018060a01b0384168152826020820152606060408201526000611bb76060830184612255565b600060208284031215612a9357600080fd5b81516001600160401b03811115612aa957600080fd5b8201601f81018413612aba57600080fd5b8051612ac8612520826124d4565b818152856020838501011115612add57600080fd5b611bb7826020830160208601612231565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612b2190830184612255565b9695505050505050565b600060208284031215612b3d57600080fd5b8151610d24816121fe565b60008251612b5a818460208701612231565b9190910192915050565b600082825180855260208501945060208160051b8301016020850160005b83811015612bb457601f19858403018852612b9e838351612255565b6020988901989093509190910190600101612b82565b50909695505050505050565b600081518084526020840193506020830160005b82811015612c0757815180516001600160a01b031687526020908101518188015260409096019590910190600101612bd4565b5093949350505050565b600081518084526020840193506020830160005b82811015612c0757815180516001600160a01b03168752602080820151818901526040918201519188019190915260609096019590910190600101612c25565b60208152612c7f6020820183516001600160401b03169052565b600060208301516101006040840152612c9c610120840182612255565b90506040840151601f19848303016060850152612cb98282612255565b91505060608401516080840152608084015160a084015260a0840151601f198483030160c0850152612ceb8282612b64565b91505060c0840151601f198483030160e0850152612d098282612bc0565b91505060e0840151601f1984830301610100850152611bb78282612c11565b82815260406020820152600061201b604083018461225556fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f363b592318ade4f7c4768b2dc9a8c3a5ee80dc7cb083d178a2ae747a9d8d90d64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4F8632BA GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x506 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0xD09DE08A EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x495 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xAE6E7180 EQ PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x440 JUMPI DUP1 PUSH4 0x7D6F0E9C EQ PUSH2 0x460 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x480 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4F8632BA EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x22C3A793 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x3C2D13C3 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x3C2D13C3 EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x382 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x3C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x22C3A793 EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x30C78B41 EQ PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0xC5561A6 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xD8E6E2C EQ PUSH2 0x28D JUMPI DUP1 PUSH4 0x14F40E5E EQ PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x213 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2214 JUMP JUMPDEST PUSH2 0x57B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x5CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x2281 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0x22E CALLDATASIZE PUSH1 0x4 PUSH2 0x2294 JUMP JUMPDEST PUSH2 0x671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x257 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x22C2 JUMP JUMPDEST PUSH2 0x686 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2336 JUMP JUMPDEST PUSH2 0x695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x233 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x23A5 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 OR SWAP1 SSTORE POP PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x23D5 JUMP JUMPDEST PUSH2 0x8A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x1DC SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x233 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x39D CALLDATASIZE PUSH1 0x4 PUSH2 0x23D5 JUMP JUMPDEST PUSH2 0x931 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x3BD CALLDATASIZE PUSH1 0x4 PUSH2 0x2416 JUMP JUMPDEST PUSH2 0x951 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2554 JUMP JUMPDEST PUSH2 0xA83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x233 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x401 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29D PUSH2 0xA95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29D PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0x43B CALLDATASIZE PUSH1 0x4 PUSH2 0x2294 JUMP JUMPDEST PUSH2 0xAB2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29D PUSH2 0x45B CALLDATASIZE PUSH1 0x4 PUSH2 0x25A3 JUMP JUMPDEST PUSH2 0xABD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x47B CALLDATASIZE PUSH1 0x4 PUSH2 0x2336 JUMP JUMPDEST PUSH2 0xB19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0xBF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x4B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x25CE JUMP JUMPDEST PUSH2 0xC2F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x501 CALLDATASIZE PUSH1 0x4 PUSH2 0x25A3 JUMP JUMPDEST PUSH2 0xC3A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x25FC JUMP JUMPDEST PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x541 CALLDATASIZE PUSH1 0x4 PUSH2 0x2294 JUMP JUMPDEST PUSH2 0xCB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x576 CALLDATASIZE PUSH1 0x4 PUSH2 0x2416 JUMP JUMPDEST PUSH2 0xD71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x5AC JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x5C7 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x5ED SWAP1 PUSH2 0x2667 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 0x619 SWAP1 PUSH2 0x2667 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x666 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x63B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x666 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 0x649 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67C DUP3 PUSH2 0xDBE JUMP JUMPDEST POP PUSH2 0x5C7 DUP3 PUSH2 0xDF6 JUMP JUMPDEST PUSH2 0x691 DUP3 DUP3 CALLER PUSH2 0xE30 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x69D PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6CE JUMPI PUSH1 0x40 MLOAD PUSH4 0x67AB7EFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6DA DUP6 DUP6 PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xA66C4F5 PUSH1 0xE4 SHL DUP2 MSTORE SWAP4 SWAP5 POP SWAP2 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA66C4F50 SWAP2 PUSH2 0x714 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x2281 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x732 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 0x756 SWAP2 SWAP1 PUSH2 0x26A1 JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x767 DUP5 DUP7 ADD DUP7 PUSH2 0x2812 JUMP JUMPDEST SWAP1 POP PUSH2 0x773 DUP3 DUP3 PUSH2 0xEA6 JUMP JUMPDEST POP PUSH2 0x77E DUP3 DUP3 PUSH2 0x10AE JUMP JUMPDEST POP PUSH2 0x789 DUP3 DUP3 PUSH2 0x115F JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x7A1 JUMPI SWAP1 POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 DUP3 MSTORE SWAP2 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP3 SWAP4 POP SWAP2 PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x827 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 0x84B SWAP2 SWAP1 PUSH2 0x28EB JUMP JUMPDEST DUP2 MSTORE POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x861 JUMPI PUSH2 0x861 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x897 DUP9 DUP9 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x1C185E5B1BD859 PUSH1 0xCA SHL DUP2 MSTORE POP PUSH2 0x1315 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8DD DUP4 DUP4 CALLER PUSH2 0x1480 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x92B JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x94C DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC9E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x996 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x9B2 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x9C0 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x9DE JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xA08 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xA11 DUP8 PUSH2 0x158A JUMP JUMPDEST PUSH2 0xA19 PUSH2 0x159E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0xA7A JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA8B PUSH2 0x15A8 JUMP JUMPDEST PUSH2 0x691 DUP3 DUP3 PUSH2 0x1636 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9F PUSH2 0x16F3 JUMP JUMPDEST POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D62 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C7 DUP3 PUSH2 0xDBE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xAF8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB21 PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB52 JUMPI PUSH1 0x40 MLOAD PUSH4 0x67AB7EFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB5E DUP6 DUP6 PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xA66C4F5 PUSH1 0xE4 SHL DUP2 MSTORE SWAP4 SWAP5 POP SWAP2 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA66C4F50 SWAP2 PUSH2 0xB98 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x2281 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBB6 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 0xBDA SWAP2 SWAP1 PUSH2 0x26A1 JUMP JUMPDEST POP SWAP1 POP PUSH2 0xBE8 DUP2 PUSH1 0x0 PUSH2 0x173C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x5ED SWAP1 PUSH2 0x2667 JUMP JUMPDEST PUSH2 0x691 CALLER DUP4 DUP4 PUSH2 0x1756 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41E15EA0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC7A 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 0x5C7 SWAP2 SWAP1 PUSH2 0x291A JUMP JUMPDEST PUSH2 0xCA9 DUP5 DUP5 DUP5 PUSH2 0x8A1 JUMP JUMPDEST PUSH2 0x92B CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x1807 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC1 DUP3 PUSH2 0xDBE JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCD9 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xCF9 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xD24 JUMP JUMPDEST DUP1 PUSH2 0xD03 DUP5 PUSH2 0x1930 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD14 SWAP3 SWAP2 SWAP1 PUSH2 0x2937 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xD3B DUP4 PUSH2 0x2966 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP2 SWAP1 PUSH32 0x6312957B833157DBCCE860C9538737FEBB9491FDE39563488A9C296F930376ED SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xDCA DUP4 PUSH2 0x19C2 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x94C DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x19FC JUMP JUMPDEST PUSH1 0x0 PUSH32 0x9B777D7F09CA6843192B146EE41249650756FB313CBC428AA2DD37D610F1D100 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0xD24 DUP3 DUP5 ADD DUP5 PUSH2 0x298D JUMP JUMPDEST DUP1 MLOAD DUP1 MLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xEC8 JUMPI PUSH2 0xEC8 PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEFB JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xEE6 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x10A5 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xF1C JUMPI PUSH2 0xF1C PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD ISZERO PUSH2 0x101D JUMPI DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB61D27F6 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xF4E JUMPI PUSH2 0xF4E PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xF6C JUMPI PUSH2 0xF6C PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0xF8A JUMPI PUSH2 0xF8A PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFB4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A5A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xFFB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2A81 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x100D JUMPI PUSH2 0x100D PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x109D JUMP JUMPDEST PUSH2 0x107F DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1032 JUMPI PUSH2 0x1032 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1050 JUMPI PUSH2 0x1050 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x106E JUMPI PUSH2 0x106E PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH2 0x1B12 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1091 JUMPI PUSH2 0x1091 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP JUMPDEST PUSH1 0x1 ADD PUSH2 0xF01 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x60 SWAP2 SWAP1 ISZERO PUSH2 0x1148 JUMPI PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD SWAP2 MLOAD PUSH4 0x5B0E93FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP4 PUSH4 0xB61D27F6 SWAP4 PUSH2 0x10F9 SWAP4 SWAP2 SWAP3 PUSH1 0x4 ADD PUSH2 0x2A5A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1118 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1140 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2A81 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5C7 JUMP JUMPDEST PUSH2 0x1140 DUP2 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x60 ADD MLOAD PUSH2 0x1B12 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1185 JUMPI PUSH2 0x1185 PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11B8 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x11A3 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x10A5 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x11D9 JUMPI PUSH2 0x11D9 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD ISZERO PUSH2 0x12DA JUMPI DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB61D27F6 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x120B JUMPI PUSH2 0x120B PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1229 JUMPI PUSH2 0x1229 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD DUP7 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x1247 JUMPI PUSH2 0x1247 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1271 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A5A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12B8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2A81 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12CA JUMPI PUSH2 0x12CA PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x130D JUMP JUMPDEST PUSH2 0x12EF DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1032 JUMPI PUSH2 0x1032 PUSH2 0x2904 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1301 JUMPI PUSH2 0x1301 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x11BE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1375 JUMPI PUSH2 0x136D DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1336 JUMPI PUSH2 0x1336 PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH2 0x134A PUSH2 0xE3D JUMP JUMPDEST DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x135C JUMPI PUSH2 0x135C PUSH2 0x2904 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x1BC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1318 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1382 DUP6 DUP6 PUSH2 0xE70 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x13DC JUMPI PUSH2 0x13DC PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x140F JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x13FA JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE SWAP3 DUP2 ADD DUP3 MSTORE SWAP3 ADD SWAP2 SWAP1 PUSH2 0x1471 JUMP JUMPDEST PUSH2 0x145E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x1431 JUMPI SWAP1 POP JUMPDEST POP SWAP1 MSTORE SWAP1 POP PUSH2 0xBE8 DUP2 SELFBALANCE PUSH2 0x1CE8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x149B DUP6 PUSH2 0x19C2 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x14B7 JUMPI PUSH2 0x14B7 DUP2 DUP6 DUP8 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x14F7 JUMPI PUSH2 0x14D4 PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0x19FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x1528 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1592 PUSH2 0x1DCF JUMP JUMPDEST PUSH2 0x159B DUP2 PUSH2 0x1E18 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x15A6 PUSH2 0x1DCF JUMP JUMPDEST JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 PUSH2 0x1618 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160C PUSH2 0x1E61 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x15A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1690 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x168D SWAP2 DUP2 ADD SWAP1 PUSH2 0x28EB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x16B8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D62 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 EQ PUSH2 0x16E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2A875269 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH2 0x94C DUP4 DUP4 PUSH2 0x1E77 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x15A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x703E46DD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x691 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1ECD JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1797 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x1929 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x1849 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2AEE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1884 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1881 SWAP2 DUP2 ADD SWAP1 PUSH2 0x2B2B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x18ED JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x18B2 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 0x18B7 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x18E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xBE8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x193D DUP4 PUSH2 0x1EE5 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x195C JUMPI PUSH2 0x195C PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1986 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x1990 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D42 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0x1A1F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1AE1 JUMPI PUSH1 0x0 PUSH2 0x1A2F DUP6 PUSH2 0xDBE JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1A5B JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1A6E JUMPI POP PUSH2 0x1A6C DUP2 DUP6 PUSH2 0xD71 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1A97 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST DUP3 ISZERO PUSH2 0x1ADF JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1B30 SWAP2 SWAP1 PUSH2 0x2B48 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 0x1B6D 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 0x1B72 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1BB7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14D95B198818D85B1B0819985A5B1959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x95EA7B3 PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP8 AND SWAP2 PUSH2 0x1C1C SWAP2 SWAP1 PUSH2 0x2B48 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1C59 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 0x1C5E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x1C88 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x1C88 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1C88 SWAP2 SWAP1 PUSH2 0x291A JUMP JUMPDEST PUSH2 0x1929 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A73616665417070726F76653A20617070 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x1C9BDD994819985A5B1959 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH2 0x1CF0 PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE289ADCD DUP3 PUSH1 0x1 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1D12 SWAP2 SWAP1 PUSH2 0x2C65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D3E SWAP3 SWAP2 SWAP1 PUSH2 0x2D28 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1D76 DUP4 DUP4 DUP4 PUSH2 0x1FBD JUMP JUMPDEST PUSH2 0x94C JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1DA4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1E20 PUSH2 0x1DCF JUMP JUMPDEST PUSH32 0x9B777D7F09CA6843192B146EE41249650756FB313CBC428AA2DD37D610F1D100 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D62 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xE61 JUMP JUMPDEST PUSH2 0x1E80 DUP3 PUSH2 0x2023 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x1EC5 JUMPI PUSH2 0x94C DUP3 DUP3 PUSH2 0x2088 JUMP JUMPDEST PUSH2 0x691 PUSH2 0x20F5 JUMP JUMPDEST PUSH2 0x1ED7 DUP4 DUP4 PUSH2 0x2114 JUMP JUMPDEST PUSH2 0x94C CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0x1807 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x1F24 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1F50 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1F6E JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1F86 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1F9A JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1FAC JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x5C7 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x201B JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1FF7 JUMPI POP PUSH2 0x1FF7 DUP5 DUP5 PUSH2 0xD71 JUMP JUMPDEST DUP1 PUSH2 0x201B JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2010 DUP4 PUSH2 0xDF6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x2059 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2D62 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x20A5 SWAP2 SWAP1 PUSH2 0x2B48 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x20E0 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 0x20E5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1BB7 DUP6 DUP4 DUP4 PUSH2 0x2179 JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x15A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x213E JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x214C DUP4 DUP4 PUSH1 0x0 PUSH2 0x1480 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x94C JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x218E JUMPI PUSH2 0x2189 DUP3 PUSH2 0x21D5 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x21A5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x21CE JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x8C7 JUMP JUMPDEST POP DUP1 PUSH2 0xD24 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x21E5 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x159B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2226 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD24 DUP2 PUSH2 0x21FE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x224C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2234 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x226D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x159B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x22E0 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x232F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x234C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2362 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x236E DUP8 DUP3 DUP9 ADD PUSH2 0x22EE JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2399 DUP8 DUP3 DUP9 ADD PUSH2 0x22EE JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23CA DUP2 PUSH2 0x22AD JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x23F5 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2405 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2434 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23CA DUP2 PUSH2 0x22AD JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x247C JUMPI PUSH2 0x247C PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x247C JUMPI PUSH2 0x247C PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x24CC JUMPI PUSH2 0x24CC PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x24ED JUMPI PUSH2 0x24ED PUSH2 0x2444 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x250C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 PUSH2 0x2525 PUSH2 0x2520 DUP5 PUSH2 0x24D4 JUMP JUMPDEST PUSH2 0x24A4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2539 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2572 DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x258D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2599 DUP6 DUP3 DUP7 ADD PUSH2 0x24FB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD24 DUP2 PUSH2 0x22AD JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x159B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x25EC DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23CA DUP2 PUSH2 0x25C0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x261D DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x262D DUP2 PUSH2 0x22AD JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x264F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x265B DUP8 DUP3 DUP9 ADD PUSH2 0x24FB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x267B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x269B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x26BF DUP2 PUSH2 0x22AD JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x23CA DUP2 PUSH2 0x25C0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2704 JUMPI PUSH2 0x2704 PUSH2 0x2444 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP3 CALLDATALOAD PUSH2 0x2715 DUP2 PUSH2 0x25C0 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2725 DUP2 PUSH2 0x22AD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x274D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2759 DUP6 DUP3 DUP7 ADD PUSH2 0x24FB JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x2780 JUMPI PUSH2 0x2780 PUSH2 0x2444 JUMP JUMPDEST DUP4 PUSH1 0x5 SHL PUSH1 0x20 DUP2 ADD SWAP2 POP PUSH2 0x2793 DUP3 PUSH2 0x24A4 JUMP JUMPDEST DUP6 DUP2 MSTORE SWAP3 POP PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x27AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27E8 JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x27CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27D9 DUP9 DUP3 DUP9 ADD PUSH2 0x26D0 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x27AF JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2803 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD24 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2766 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2824 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x283A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x60 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x284C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2854 PUSH2 0x245A JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x286A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x287B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x288A DUP7 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x2766 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x28A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28B2 DUP7 DUP3 DUP6 ADD PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x28D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28DD DUP7 DUP3 DUP6 ADD PUSH2 0x26D0 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x292C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xD24 DUP2 PUSH2 0x25C0 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x2949 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x2231 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x295D DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x2231 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x2986 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x299F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xA0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x29C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29CF PUSH2 0x2482 JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x29E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A21 DUP7 DUP3 DUP6 ADD PUSH2 0x24FB JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A4C DUP7 DUP3 DUP6 ADD PUSH2 0x24FB JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1BB7 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2AA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2ABA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2AC8 PUSH2 0x2520 DUP3 PUSH2 0x24D4 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2ADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB7 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2B21 SWAP1 DUP4 ADD DUP5 PUSH2 0x2255 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xD24 DUP2 PUSH2 0x21FE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2B5A DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2231 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 PUSH1 0x5 SHL DUP4 ADD ADD PUSH1 0x20 DUP6 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2BB4 JUMPI PUSH1 0x1F NOT DUP6 DUP5 SUB ADD DUP9 MSTORE PUSH2 0x2B9E DUP4 DUP4 MLOAD PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x20 SWAP9 DUP10 ADD SWAP9 SWAP1 SWAP4 POP SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2B82 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C07 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD DUP2 DUP9 ADD MSTORE PUSH1 0x40 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2BD4 JUMP JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C07 JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x40 SWAP2 DUP3 ADD MLOAD SWAP2 DUP9 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 SWAP1 SWAP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x2C7F PUSH1 0x20 DUP3 ADD DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x100 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2C9C PUSH2 0x120 DUP5 ADD DUP3 PUSH2 0x2255 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x2CB9 DUP3 DUP3 PUSH2 0x2255 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x2CEB DUP3 DUP3 PUSH2 0x2B64 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x2D09 DUP3 DUP3 PUSH2 0x2BC0 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH2 0x100 DUP6 ADD MSTORE PUSH2 0x1BB7 DUP3 DUP3 PUSH2 0x2C11 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x201B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2255 JUMP INVALID DUP1 0xBB 0x2B PUSH4 0x8CC20BC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB0079300360894A13BA1A3210667C828492DB98D 0xCA RETURNDATACOPY KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCA2646970667358221220F3 PUSH4 0xB592318A 0xDE 0x4F PUSH29 0x4768B2DC9A8C3A5EE80DC7CB083D178A2AE747A9D8D90D64736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1034:3357:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2673:311:6;;;;;;;;;;-1:-1:-1;2673:311:6;;;;;:::i;:::-;;:::i;:::-;;;565:14:89;;558:22;540:41;;528:2;513:18;2673:311:6;;;;;;;;3545:146;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4791:154::-;;;;;;;;;;-1:-1:-1;4791:154:6;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1743:32:89;;;1725:51;;1713:2;1698:18;4791:154:6;1579:203:89;4617:113:6;;;;;;;;;;-1:-1:-1;4617:113:6;;;;;:::i;:::-;;:::i;:::-;;1795:766:86;;;;;;;;;;-1:-1:-1;1795:766:86;;;;;:::i;:::-;;:::i;3052:103:74:-;;;;;;;;;;-1:-1:-1;712:1:74;3052:103;;;3510:25:89;;;3498:2;3483:18;3052:103:74;3364:177:89;1237:28:86;;;;;;;;;;-1:-1:-1;1237:28:86;;;;;;;-1:-1:-1;;;;;1237:28:86;;;2997:165;;;;;;;;;;-1:-1:-1;2997:165:86;;;;;:::i;:::-;3065:16;:23;;-1:-1:-1;;;;;3098:30:86;;;3065:23;3098:30;-1:-1:-1;;;;;;3098:30:86;;;;;;;3084:4;3098:30;;;-1:-1:-1;3138:4:86;:17;;-1:-1:-1;;;;;;3138:17:86;3145:10;3138:17;;;2997:165;5494:578:6;;;;;;;;;;-1:-1:-1;5494:578:6;;;;;:::i;:::-;;:::i;1203:28:86:-;;;;;;;;;;-1:-1:-1;1203:28:86;;;;;;;;1137:32;;;;;;;;;;-1:-1:-1;1137:32:86;;;;-1:-1:-1;;;;;1137:32:86;;;6138:132:6;;;;;;;;;;-1:-1:-1;6138:132:6;;;;;:::i;:::-;;:::i;1422:269:86:-;;;;;;;;;;-1:-1:-1;1422:269:86;;;;;:::i;:::-;;:::i;4161:214:4:-;;;;;;:::i;:::-;;:::i;1271:19:86:-;;;;;;;;;;-1:-1:-1;1271:19:86;;;;-1:-1:-1;;;;;1271:19:86;;;3708:134:4;;;;;;;;;;;;;:::i;1175:22:86:-;;;;;;;;;;;;;;;;3365:118:6;;;;;;;;;;-1:-1:-1;3365:118:6;;;;;:::i;:::-;;:::i;3043:265::-;;;;;;;;;;-1:-1:-1;3043:265:6;;;;;:::i;:::-;;:::i;2567:317:86:-;;;;;;;;;;-1:-1:-1;2567:317:86;;;;;:::i;:::-;;:::i;3755:150:6:-;;;;;;;;;;;;;:::i;5012:144::-;;;;;;;;;;-1:-1:-1;5012:144:6;;;;;:::i;:::-;;:::i;1819:58:4:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:4;;;;;3168:142:86;;;;;;;;;;-1:-1:-1;3168:142:86;;;;;:::i;:::-;;:::i;6336:233:6:-;;;;;;;;;;-1:-1:-1;6336:233:6;;;;;:::i;:::-;;:::i;3971:255::-;;;;;;;;;;-1:-1:-1;3971:255:6;;;;;:::i;:::-;;:::i;2890:101:86:-;;;;;;;;;;;;;:::i;5222:210:6:-;;;;;;;;;;-1:-1:-1;5222:210:6;;;;;:::i;:::-;;:::i;2673:311::-;2786:4;-1:-1:-1;;;;;;2821:40:6;;-1:-1:-1;;;2821:40:6;;:104;;-1:-1:-1;;;;;;;2877:48:6;;-1:-1:-1;;;2877:48:6;2821:104;:156;;;-1:-1:-1;;;;;;;;;;1134:40:8;;;2941:36:6;2802:175;2673:311;-1:-1:-1;;2673:311:6:o;3545:146::-;-1:-1:-1;;;;;;;;;;;3670:14:6;;3590:13;;2076:21;;;3670:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3545:146;:::o;4791:154::-;4858:7;4877:22;4891:7;4877:13;:22::i;:::-;;4917:21;4930:7;4917:12;:21::i;4617:113::-;4688:35;4697:2;4701:7;966:10:7;4688:8:6;:35::i;:::-;4617:113;;:::o;1795:766:86:-;1749:28:74;:26;:28::i;:::-;-1:-1:-1;;;;;1735:42:74;:10;-1:-1:-1;;;;;1735:42:74;;1731:101;;1800:21;;-1:-1:-1;;;1800:21:74;;;;;;;;;;;1731:101;1900:25:86::1;1928:27;1945:9;;1928:16;:27::i;:::-;1966:19;1990:12:::0;;2027:16:::1;::::0;::::1;::::0;1990:54:::1;::::0;-1:-1:-1;;;1990:54:86;;1900:55;;-1:-1:-1;1966:19:86;;-1:-1:-1;;;;;1990:12:86;;::::1;::::0;:36:::1;::::0;:54:::1;::::0;2027:16;1990:54:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;1965:79:86;-1:-1:-1;2056:27:86::1;2087:39;::::0;;::::1;2098:9:::0;2087:39:::1;:::i;:::-;2055:71;;2136:44;2161:11;2174:5;2136:24;:44::i;:::-;;2190;2215:11;2228:5;2190:24;:44::i;:::-;;2244:45;2270:11;2283:5;2244:25;:45::i;:::-;-1:-1:-1::0;2329:20:86::1;::::0;;2347:1:::1;2329:20:::0;;;;;::::1;::::0;;;2299:27:::1;::::0;2329:20:::1;;;;-1:-1:-1::0;;;;;;;;;;;;;;;;;2329:20:86::1;;;;;;;;;;;;;;-1:-1:-1::0;2371:130:86::1;::::0;;;;::::1;::::0;;2409:13:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;2409:13:86::1;2371:130:::0;;;2444:46;;-1:-1:-1;;;2444:46:86;;2484:4:::1;2444:46;::::0;::::1;1725:51:89::0;2299:50:86;;-1:-1:-1;2371:130:86;::::1;::::0;::::1;::::0;2409:13;2444:31:::1;::::0;1698:18:89;;2444:46:86::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2371:130;;::::0;2359:6:::1;2366:1;2359:9;;;;;;;;:::i;:::-;;;;;;:142;;;;2511:43;2525:9;;2536:6;2511:43;;;;;;;;;;;;;-1:-1:-1::0;;;2511:43:86::1;;::::0;:13:::1;:43::i;:::-;1889:672;;;;1795:766:::0;;;;:::o;5494:578:6:-;-1:-1:-1;;;;;5588:16:6;;5584:87;;5627:33;;-1:-1:-1;;;5627:33:6;;5657:1;5627:33;;;1725:51:89;1698:18;;5627:33:6;;;;;;;;5584:87;5889:21;5913:34;5921:2;5925:7;966:10:7;5913:7:6;:34::i;:::-;5889:58;;5978:4;-1:-1:-1;;;;;5961:21:6;:13;-1:-1:-1;;;;;5961:21:6;;5957:109;;6005:50;;-1:-1:-1;;;6005:50:6;;-1:-1:-1;;;;;13310:32:89;;;6005:50:6;;;13292:51:89;13359:18;;;13352:34;;;13422:32;;13402:18;;;13395:60;13265:18;;6005:50:6;13090:371:89;5957:109:6;5574:498;5494:578;;;:::o;6138:132::-;6224:39;6241:4;6247:2;6251:7;6224:39;;;;;;;;;;;;:16;:39::i;:::-;6138:132;;;:::o;1422:269:86:-;8870:21:3;4302:15;;-1:-1:-1;;;4302:15:3;;;;4301:16;;-1:-1:-1;;;;;4348:14:3;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:3;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:3;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:3;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:3;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:3;-1:-1:-1;;;5013:22:3;;;4979:67;1544:46:86::1;1573:16;1544:28;:46::i;:::-;1600:24;:22;:24::i;:::-;1642:12;:42:::0;;-1:-1:-1;;;;;;1642:42:86::1;-1:-1:-1::0;;;;;1642:42:86;::::1;;::::0;;5066:101:3;;;;5100:23;;-1:-1:-1;;;;5100:23:3;;;5142:14;;-1:-1:-1;13731:50:89;;5142:14:3;;13719:2:89;13704:18;5142:14:3;;;;;;;5066:101;4092:1081;;;;;1422:269:86;;:::o;4161:214:4:-;2655:13;:11;:13::i;:::-;4322:46:::1;4344:17;4363:4;4322:21;:46::i;3708:134::-:0;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:4;:::o;3365:118:6:-;3428:7;3454:22;3468:7;3454:13;:22::i;3043:265::-;3106:7;-1:-1:-1;;;;;;;;;;;;;;;;3184:19:6;;3180:87;;3226:30;;-1:-1:-1;;;3226:30:6;;3253:1;3226:30;;;1725:51:89;1698:18;;3226:30:6;1579:203:89;3180:87:6;-1:-1:-1;;;;;3283:18:6;;;;;;;:11;;;;:18;;-1:-1:-1;3283:18:6;;;;;3043:265::o;2567:317:86:-;1749:28:74;:26;:28::i;:::-;-1:-1:-1;;;;;1735:42:74;:10;-1:-1:-1;;;;;1735:42:74;;1731:101;;1800:21;;-1:-1:-1;;;1800:21:74;;;;;;;;;;;1731:101;2681:25:86::1;2709:27;2726:9;;2709:16;:27::i;:::-;2747:19;2771:12:::0;;2808:16:::1;::::0;::::1;::::0;2771:54:::1;::::0;-1:-1:-1;;;2771:54:86;;2681:55;;-1:-1:-1;2747:19:86;;-1:-1:-1;;;;;2771:12:86;;::::1;::::0;:36:::1;::::0;:54:::1;::::0;2808:16;2771:54:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:79;;;2844:25;2854:11;2867:1;2844:9;:25::i;:::-;2671:213;;2567:317:::0;;;;:::o;3755:150:6:-;3889:9;3882:16;;3802:13;;-1:-1:-1;;;;;;;;;;;2076:21:6;3882:16;;;:::i;5012:144::-;5097:52;966:10:7;5130:8:6;5140;5097:18;:52::i;3168:142:86:-;3227:4;3271:5;-1:-1:-1;;;;;3250:51:86;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6336:233:6:-;6449:31;6462:4;6468:2;6472:7;6449:12;:31::i;:::-;6490:72;966:10:7;6538:4:6;6544:2;6548:7;6557:4;6490:33;:72::i;3971:255::-;4035:13;4060:22;4074:7;4060:13;:22::i;:::-;;4093:21;4117:10;4544:9;;;;;;;;;-1:-1:-1;4544:9:6;;;4468:92;4117:10;4093:34;;4168:1;4150:7;4144:21;:25;:75;;;;;;;;;;;;;;;;;4186:7;4195:18;:7;:16;:18::i;:::-;4172:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4144:75;4137:82;3971:255;-1:-1:-1;;;3971:255:6:o;2890:101:86:-;2928:7;:9;;;:7;:9;;;:::i;:::-;;;;-1:-1:-1;;2964:7:86;;2952:32;;2973:10;;2964:7;2952:32;;;;;2890:101::o;5222:210:6:-;-1:-1:-1;;;;;5388:27:6;;;5310:4;5388:27;;;:20;:27;;;;;;;;:37;;;;;;;;;;;;;;;5222:210::o;17910:241::-;17973:7;17992:13;18008:17;18017:7;18008:8;:17::i;:::-;17992:33;-1:-1:-1;;;;;;18039:19:6;;18035:88;;18081:31;;-1:-1:-1;;;18081:31:6;;;;;3510:25:89;;;3483:18;;18081:31:6;3364:177:89;7372:184:6;7442:7;7523:26;;;:17;:26;;;;;;-1:-1:-1;;;;;7523:26:6;;7372:184::o;16076:120::-;16156:33;16165:2;16169:7;16178:4;16184;16156:8;:33::i;2134:145:74:-;2195:7;2076:36;2221:34;:51;-1:-1:-1;;;;;2221:51:74;;2134:145;-1:-1:-1;2134:145:74:o;2423:155::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2535:36:74;;;;2546:9;2535:36;:::i;334:635:80:-;478:14;;539:15;;417:14;;478;443:32;;-1:-1:-1;;;;;527:28:80;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:53;;570:9;565:374;589:8;:15;585:1;:19;565:374;;;629:8;638:1;629:11;;;;;;;;:::i;:::-;;;;;;;:31;;;625:304;;;710:2;-1:-1:-1;;;;;693:28:80;;722:8;731:1;722:11;;;;;;;;:::i;:::-;;;;;;;:27;;;751:8;760:1;751:11;;;;;;;;:::i;:::-;;;;;;;:17;;;770:8;779:1;770:11;;;;;;;;:::i;:::-;;;;;;;:16;;;693:94;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;693:94:80;;;;;;;;;;;;:::i;:::-;680:7;688:1;680:10;;;;;;;;:::i;:::-;;;;;;:107;;;;625:304;;;839:75;849:8;858:1;849:11;;;;;;;;:::i;:::-;;;;;;;:27;;;878:8;887:1;878:11;;;;;;;;:::i;:::-;;;;;;;:17;;;897:8;906:1;897:11;;;;;;;;:::i;:::-;;;;;;;:16;;;839:9;:75::i;:::-;826:7;834:1;826:10;;;;;;;;:::i;:::-;;;;;;:88;;;;625:304;606:3;;565:374;;;-1:-1:-1;955:7:80;334:635;-1:-1:-1;;;;334:635:80:o;1629:466::-;1778:18;;;;1810:32;;1712:12;;1778:18;1806:283;;;1894:28;;;;1924:18;;;;;1944:17;;;;1865:97;;-1:-1:-1;;;1865:97:80;;-1:-1:-1;;;;;1865:28:80;;;;;:97;;1894:28;;1865:97;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1865:97:80;;;;;;;;;;;;:::i;:::-;1858:104;;;;;1806:283;2000:78;2010:12;:28;;;2040:12;:18;;;2060:12;:17;;;2000:9;:78::i;975:648::-;1059:14;1085:34;1122:5;:15;;;1085:52;;1147:22;1184:9;:16;-1:-1:-1;;;;;1172:29:80;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1147:54;;1216:9;1211:382;1235:9;:16;1231:1;:20;1211:382;;;1276:9;1286:1;1276:12;;;;;;;;:::i;:::-;;;;;;;:32;;;1272:311;;;1358:2;-1:-1:-1;;;;;1341:28:80;;1370:9;1380:1;1370:12;;;;;;;;:::i;:::-;;;;;;;:28;;;1400:9;1410:1;1400:12;;;;;;;;:::i;:::-;;;;;;;:18;;;1420:9;1430:1;1420:12;;;;;;;;:::i;:::-;;;;;;;:17;;;1341:97;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1341:97:80;;;;;;;;;;;;:::i;:::-;1328:7;1336:1;1328:10;;;;;;;;:::i;:::-;;;;;;:110;;;;1272:311;;;1490:78;1500:9;1510:1;1500:12;;;;;;;;:::i;1490:78::-;1477:7;1485:1;1477:10;;;;;;;;:::i;:::-;;;;;;:91;;;;1272:311;1253:3;;1211:382;;3515:869:86;3669:9;3664:227;3688:6;:13;3684:1;:17;3664:227;;;3722:158;3766:6;3773:1;3766:9;;;;;;;;:::i;:::-;;;;;;;:20;;;3804:28;:26;:28::i;:::-;3850:6;3857:1;3850:9;;;;;;;;:::i;:::-;;;;;;;:16;;;3722:26;:158::i;:::-;3703:3;;3664:227;;;;3901:25;3929:27;3946:9;;3929:16;:27::i;:::-;3901:55;;3966:27;3996:324;;;;;;;;4034:6;:16;;;-1:-1:-1;;;;;3996:324:86;;;;;4075:6;:16;;;3996:324;;;;4117:7;3996:324;;;;4154:1;3996:324;;;;4185:1;3996:324;;;;4232:1;-1:-1:-1;;;;;4219:15:86;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3996:324:86;;;;;;;;;;4291:18;;-1:-1:-1;4291:18:86;;;;;;;;3996:324;;;4291:18;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4291:18:86;;;;;;;;;;;;;;;;-1:-1:-1;3996:324:86;;3966:354;-1:-1:-1;4331:46:86;3966:354;4355:21;4331:14;:46::i;10384:856:6:-;10470:7;-1:-1:-1;;;;;;;;;;;10470:7:6;10559:17;10568:7;10559:8;:17::i;:::-;10544:32;-1:-1:-1;;;;;;10636:18:6;;;10632:86;;10670:37;10687:4;10693;10699:7;10670:16;:37::i;:::-;-1:-1:-1;;;;;10762:18:6;;;10758:258;;10878:48;10895:1;10899:7;10916:1;10920:5;10878:8;:48::i;:::-;-1:-1:-1;;;;;10969:17:6;;;;;;:11;;;:17;;;;;:22;;-1:-1:-1;;10969:22:6;;;10758:258;-1:-1:-1;;;;;11030:16:6;;;11026:109;;-1:-1:-1;;;;;11090:15:6;;;;;;:11;;;:15;;;;;:20;;11109:1;11090:20;;;11026:109;11145:18;;;;:9;;;:18;;;;;;:23;;-1:-1:-1;;;;;;11145:23:6;-1:-1:-1;;;;;11145:23:6;;;;;;;;;11184:27;;11145:18;;11184:27;;;;;;;11229:4;10384:856;-1:-1:-1;;;;;10384:856:6:o;1279:161:74:-;6931:20:3;:18;:20::i;:::-;1378:55:74::1;1417:15;1378:38;:55::i;:::-;1279:161:::0;:::o;2970:67:4:-;6931:20:3;:18;:20::i;:::-;2970:67:4:o;4603:312::-;4683:4;-1:-1:-1;;;;;4692:6:4;4675:23;;;:120;;;4789:6;-1:-1:-1;;;;;4753:42:4;:32;:30;:32::i;:::-;-1:-1:-1;;;;;4753:42:4;;;4675:120;4658:251;;;4869:29;;-1:-1:-1;;;4869:29:4;;;;;;;;;;;6057:538;6174:17;-1:-1:-1;;;;;6156:50:4;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6156:52:4;;;;;;;;-1:-1:-1;;6156:52:4;;;;;;;;;;;;:::i;:::-;;;6152:437;;6518:60;;-1:-1:-1;;;6518:60:4;;-1:-1:-1;;;;;1743:32:89;;6518:60:4;;;1725:51:89;1698:18;;6518:60:4;1579:203:89;6152:437:4;-1:-1:-1;;;;;;;;;;;6250:40:4;;6246:120;;6317:34;;-1:-1:-1;;;6317:34:4;;;;;3510:25:89;;;3483:18;;6317:34:4;3364:177:89;6246:120:4;6379:54;6409:17;6428:4;6379:29;:54::i;5032:213::-;5106:4;-1:-1:-1;;;;;5115:6:4;5098:23;;5094:145;;5199:29;;-1:-1:-1;;;5199:29:4;;;;;;;;;;;12240:100:6;12307:26;12317:2;12321:7;12307:26;;;;;;;;;;;;:9;:26::i;17306:369::-;-1:-1:-1;;;;;;;;;;;;;;;;17468:22:6;;17464:91;;17513:31;;-1:-1:-1;;;17513:31:6;;-1:-1:-1;;;;;1743:32:89;;17513:31:6;;;1725:51:89;1698:18;;17513:31:6;1579:203:89;17464:91:6;-1:-1:-1;;;;;17564:27:6;;;;;;;:20;;;:27;;;;;;;;:37;;;;;;;;;;;;;:48;;-1:-1:-1;;17564:48:6;;;;;;;;;;17627:41;;540::89;;;17627::6;;513:18:89;17627:41:6;;;;;;;17399:276;17306:369;;;:::o;985:924:31:-;-1:-1:-1;;;;;1165:14:31;;;:18;1161:742;;1203:67;;-1:-1:-1;;;1203:67:31;;-1:-1:-1;;;;;1203:36:31;;;;;:67;;1240:8;;1250:4;;1256:7;;1265:4;;1203:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1203:67:31;;;;;;;;-1:-1:-1;;1203:67:31;;;;;;;;;;;;:::i;:::-;;;1199:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1560:6;:13;1577:1;1560:18;1556:323;;1664:39;;-1:-1:-1;;;1664:39:31;;-1:-1:-1;;;;;1743:32:89;;1664:39:31;;;1725:51:89;1698:18;;1664:39:31;1579:203:89;1556:323:31;1831:6;1825:13;1816:6;1812:2;1808:15;1801:38;1199:694;-1:-1:-1;;;;;;1317:51:31;;-1:-1:-1;;;1317:51:31;1313:182;;1437:39;;-1:-1:-1;;;1437:39:31;;-1:-1:-1;;;;;1743:32:89;;1437:39:31;;;1725:51:89;1698:18;;1437:39:31;1579:203:89;1199:694:31;985:924;;;;;:::o;637:632:39:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:39;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:39;-1:-1:-1;794:41:39;-1:-1:-1;924:28:39;;;940:2;924:28;979:247;-1:-1:-1;;1010:5:39;-1:-1:-1;;;1109:2:39;1098:14;;1093:32;1010:5;1080:46;1170:2;1161:11;;;-1:-1:-1;1190:21:39;979:247;1190:21;-1:-1:-1;1246:6:39;637:632;-1:-1:-1;;;637:632:39:o;7084:172:6:-;7150:7;7231:18;;;:9;:18;;;;;;-1:-1:-1;;;;;7231:18:6;;7084:172::o;16378:719::-;-1:-1:-1;;;;;;;;;;;16593:9:6;;:31;;-1:-1:-1;;;;;;16606:18:6;;;;16593:31;16589:460;;;16640:13;16656:22;16670:7;16656:13;:22::i;:::-;16640:38;-1:-1:-1;;;;;;16806:18:6;;;;;;:35;;;16837:4;-1:-1:-1;;;;;16828:13:6;:5;-1:-1:-1;;;;;16828:13:6;;;16806:35;:69;;;;;16846:29;16863:5;16870:4;16846:16;:29::i;:::-;16845:30;16806:69;16802:142;;;16902:27;;-1:-1:-1;;;16902:27:6;;-1:-1:-1;;;;;1743:32:89;;16902:27:6;;;1725:51:89;1698:18;;16902:27:6;1579:203:89;16802:142:6;16962:9;16958:81;;;17016:7;17012:2;-1:-1:-1;;;;;16996:28:6;17005:5;-1:-1:-1;;;;;16996:28:6;;;;;;;;;;;16958:81;16626:423;16589:460;17059:26;;;;:17;;:26;;-1:-1:-1;;17059:26:6;;;:31;;-1:-1:-1;;;;;;17059:31:6;-1:-1:-1;;;;;17059:31:6;;;;;;;;;;16378:719::o;2101:255:80:-;2183:12;2208;2222:23;2249:2;-1:-1:-1;;;;;2249:7:80;2264:5;2271:4;2249:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2207:69;;;;2294:7;2286:36;;;;-1:-1:-1;;;2286:36:80;;18596:2:89;2286:36:80;;;18578:21:89;18635:2;18615:18;;;18608:30;-1:-1:-1;;;18654:18:89;;;18647:46;18710:18;;2286:36:80;18394:340:89;2286:36:80;2339:10;2101:255;-1:-1:-1;;;;;2101:255:80:o;212:434:47:-;436:45;;;-1:-1:-1;;;;;18931:32:89;;;436:45:47;;;18913:51:89;18980:18;;;;18973:34;;;436:45:47;;;;;;;;;;18886:18:89;;;;436:45:47;;;;;;;-1:-1:-1;;;;;436:45:47;-1:-1:-1;;;436:45:47;;;425:57;;-1:-1:-1;;;;425:10:47;;;;:57;;436:45;425:57;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;389:93;;;;513:7;:57;;;;-1:-1:-1;525:11:47;;:16;;:44;;;556:4;545:24;;;;;;;;;;;;:::i;:::-;492:147;;;;-1:-1:-1;;;492:147:47;;19220:2:89;492:147:47;;;19202:21:89;19259:2;19239:18;;;19232:30;19298:34;19278:18;;;19271:62;-1:-1:-1;;;19349:18:89;;;19342:41;19400:19;;492:147:47;19018:407:89;2725:228:74;2836:28;:26;:28::i;:::-;-1:-1:-1;;;;;2819:58:74;;2885:9;772:1;2934:10;2923:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;2819:127;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8571:368:6;8683:38;8697:5;8704:7;8713;8683:13;:38::i;:::-;8678:255;;-1:-1:-1;;;;;8741:19:6;;8737:186;;8787:31;;-1:-1:-1;;;8787:31:6;;;;;3510:25:89;;;3483:18;;8787:31:6;3364:177:89;8737:186:6;8864:44;;-1:-1:-1;;;8864:44:6;;-1:-1:-1;;;;;18931:32:89;;8864:44:6;;;18913:51:89;18980:18;;;18973:34;;;18886:18;;8864:44:6;18739:274:89;7084:141:3;8870:21;8560:40;-1:-1:-1;;;8560:40:3;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:3;;;;;;;;;;;1446:237:74;6931:20:3;:18;:20::i;:::-;2076:36:74;1640;;-1:-1:-1;;;;;;1640:36:74::1;-1:-1:-1::0;;;;;1640:36:74;;;::::1;::::0;;;::::1;::::0;;1446:237::o;1441:138:17:-;1493:7;-1:-1:-1;;;;;;;;;;;1519:47:17;1899:163:38;2264:344:17;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:17;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;12561:207:6:-;12655:18;12661:2;12665:7;12655:5;:18::i;:::-;12683:78;966:10:7;12739:1:6;12743:2;12747:7;12756:4;12683:33;:78::i;25316:916:44:-;25369:7;;-1:-1:-1;;;25444:17:44;;25440:103;;-1:-1:-1;;;25481:17:44;;;-1:-1:-1;25526:2:44;25516:12;25440:103;25569:8;25560:5;:17;25556:103;;25606:8;25597:17;;;-1:-1:-1;25642:2:44;25632:12;25556:103;25685:8;25676:5;:17;25672:103;;25722:8;25713:17;;;-1:-1:-1;25758:2:44;25748:12;25672:103;25801:7;25792:5;:16;25788:100;;25837:7;25828:16;;;-1:-1:-1;25872:1:44;25862:11;25788:100;25914:7;25905:5;:16;25901:100;;25950:7;25941:16;;;-1:-1:-1;25985:1:44;25975:11;25901:100;26027:7;26018:5;:16;26014:100;;26063:7;26054:16;;;-1:-1:-1;26098:1:44;26088:11;26014:100;26140:7;26131:5;:16;26127:66;;26177:1;26167:11;26219:6;25316:916;-1:-1:-1;;25316:916:44:o;7867:272:6:-;7970:4;-1:-1:-1;;;;;8005:21:6;;;;;;:127;;;8052:7;-1:-1:-1;;;;;8043:16:6;:5;-1:-1:-1;;;;;8043:16:6;;:52;;;;8063:32;8080:5;8087:7;8063:16;:32::i;:::-;8043:88;;;;8124:7;-1:-1:-1;;;;;8099:32:6;:21;8112:7;8099:12;:21::i;:::-;-1:-1:-1;;;;;8099:32:6;;8043:88;7986:146;7867:272;-1:-1:-1;;;;7867:272:6:o;1671:281:17:-;1748:17;-1:-1:-1;;;;;1748:29:17;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:17;;-1:-1:-1;;;;;1743:32:89;;1805:47:17;;;1725:51:89;1698:18;;1805:47:17;1579:203:89;1744:119:17;-1:-1:-1;;;;;;;;;;;1872:73:17;;-1:-1:-1;;;;;;1872:73:17;-1:-1:-1;;;;;1872:73:17;;;;;;;;;;1671:281::o;3900:253:32:-;3983:12;4008;4022:23;4049:6;-1:-1:-1;;;;;4049:19:32;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;6113:122:17:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:17;;;;;;;;;;;11562:327:6;-1:-1:-1;;;;;11629:16:6;;11625:87;;11668:33;;-1:-1:-1;;;11668:33:6;;11698:1;11668:33;;;1725:51:89;1698:18;;11668:33:6;1579:203:89;11625:87:6;11721:21;11745:32;11753:2;11757:7;11774:1;11745:7;:32::i;:::-;11721:56;-1:-1:-1;;;;;;11791:27:6;;;11787:96;;11841:31;;-1:-1:-1;;;11841:31:6;;11869:1;11841:31;;;1725:51:89;1698:18;;11841:31:6;1579:203:89;4421:582:32;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4841:17;;:22;:49;;;;-1:-1:-1;;;;;;4867:18:32;;;:23;4841:49;4837:119;;;4917:24;;-1:-1:-1;;;4917:24:32;;-1:-1:-1;;;;;1743:32:89;;4917:24:32;;;1725:51:89;1698:18;;4917:24:32;1579:203:89;4837:119:32;-1:-1:-1;4976:10:32;4969:17;;5543:487;5674:17;;:21;5670:354;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;-1:-1:-1;;;5994:19:32;;;;;;;;;;;14:131:89;-1:-1:-1;;;;;;88:32:89;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:89;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:89;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:89:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:226::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1521:23:89;;1348:226;-1:-1:-1;1348:226:89:o;1787:131::-;-1:-1:-1;;;;;1862:31:89;;1852:42;;1842:70;;1908:1;1905;1898:12;1923:367;1991:6;1999;2052:2;2040:9;2031:7;2027:23;2023:32;2020:52;;;2068:1;2065;2058:12;2020:52;2107:9;2094:23;2126:31;2151:5;2126:31;:::i;:::-;2176:5;2254:2;2239:18;;;;2226:32;;-1:-1:-1;;;1923:367:89:o;2295:347::-;2346:8;2356:6;2410:3;2403:4;2395:6;2391:17;2387:27;2377:55;;2428:1;2425;2418:12;2377:55;-1:-1:-1;2451:20:89;;-1:-1:-1;;;;;2483:30:89;;2480:50;;;2526:1;2523;2516:12;2480:50;2563:4;2555:6;2551:17;2539:29;;2615:3;2608:4;2599:6;2591;2587:19;2583:30;2580:39;2577:59;;;2632:1;2629;2622:12;2577:59;2295:347;;;;;:::o;2647:712::-;2737:6;2745;2753;2761;2814:2;2802:9;2793:7;2789:23;2785:32;2782:52;;;2830:1;2827;2820:12;2782:52;2870:9;2857:23;-1:-1:-1;;;;;2895:6:89;2892:30;2889:50;;;2935:1;2932;2925:12;2889:50;2974:58;3024:7;3015:6;3004:9;3000:22;2974:58;:::i;:::-;3051:8;;-1:-1:-1;2948:84:89;-1:-1:-1;;3139:2:89;3124:18;;3111:32;-1:-1:-1;;;;;3155:32:89;;3152:52;;;3200:1;3197;3190:12;3152:52;3239:60;3291:7;3280:8;3269:9;3265:24;3239:60;:::i;:::-;2647:712;;;;-1:-1:-1;3318:8:89;-1:-1:-1;;;;2647:712:89:o;3546:367::-;3614:6;3622;3675:2;3663:9;3654:7;3650:23;3646:32;3643:52;;;3691:1;3688;3681:12;3643:52;3736:23;;;-1:-1:-1;3835:2:89;3820:18;;3807:32;3848:33;3807:32;3848:33;:::i;:::-;3900:7;3890:17;;;3546:367;;;;;:::o;3918:508::-;3995:6;4003;4011;4064:2;4052:9;4043:7;4039:23;4035:32;4032:52;;;4080:1;4077;4070:12;4032:52;4119:9;4106:23;4138:31;4163:5;4138:31;:::i;:::-;4188:5;-1:-1:-1;4245:2:89;4230:18;;4217:32;4258:33;4217:32;4258:33;:::i;:::-;3918:508;;4310:7;;-1:-1:-1;;;4390:2:89;4375:18;;;;4362:32;;3918:508::o;4661:388::-;4729:6;4737;4790:2;4778:9;4769:7;4765:23;4761:32;4758:52;;;4806:1;4803;4796:12;4758:52;4845:9;4832:23;4864:31;4889:5;4864:31;:::i;:::-;4914:5;-1:-1:-1;4971:2:89;4956:18;;4943:32;4984:33;4943:32;4984:33;:::i;5054:127::-;5115:10;5110:3;5106:20;5103:1;5096:31;5146:4;5143:1;5136:15;5170:4;5167:1;5160:15;5186:253;5258:2;5252:9;5300:4;5288:17;;-1:-1:-1;;;;;5320:34:89;;5356:22;;;5317:62;5314:88;;;5382:18;;:::i;:::-;5418:2;5411:22;5186:253;:::o;5444:::-;5516:2;5510:9;5558:4;5546:17;;-1:-1:-1;;;;;5578:34:89;;5614:22;;;5575:62;5572:88;;;5640:18;;:::i;5702:275::-;5773:2;5767:9;5838:2;5819:13;;-1:-1:-1;;5815:27:89;5803:40;;-1:-1:-1;;;;;5858:34:89;;5894:22;;;5855:62;5852:88;;;5920:18;;:::i;:::-;5956:2;5949:22;5702:275;;-1:-1:-1;5702:275:89:o;5982:186::-;6030:4;-1:-1:-1;;;;;6055:6:89;6052:30;6049:56;;;6085:18;;:::i;:::-;-1:-1:-1;6151:2:89;6130:15;-1:-1:-1;;6126:29:89;6157:4;6122:40;;5982:186::o;6173:516::-;6215:5;6268:3;6261:4;6253:6;6249:17;6245:27;6235:55;;6286:1;6283;6276:12;6235:55;6326:6;6313:20;6365:4;6357:6;6353:17;6394:1;6415:52;6431:35;6459:6;6431:35;:::i;:::-;6415:52;:::i;:::-;6404:63;;6492:6;6483:7;6476:23;6532:3;6523:6;6518:3;6514:16;6511:25;6508:45;;;6549:1;6546;6539:12;6508:45;6600:6;6595:3;6588:4;6579:7;6575:18;6562:45;6656:1;6627:20;;;6649:4;6623:31;6616:42;;;;-1:-1:-1;6631:7:89;6173:516;-1:-1:-1;;;6173:516:89:o;6694:455::-;6771:6;6779;6832:2;6820:9;6811:7;6807:23;6803:32;6800:52;;;6848:1;6845;6838:12;6800:52;6887:9;6874:23;6906:31;6931:5;6906:31;:::i;:::-;6956:5;-1:-1:-1;7012:2:89;6997:18;;6984:32;-1:-1:-1;;;;;7028:30:89;;7025:50;;;7071:1;7068;7061:12;7025:50;7094:49;7135:7;7126:6;7115:9;7111:22;7094:49;:::i;:::-;7084:59;;;6694:455;;;;;:::o;7336:247::-;7395:6;7448:2;7436:9;7427:7;7423:23;7419:32;7416:52;;;7464:1;7461;7454:12;7416:52;7503:9;7490:23;7522:31;7547:5;7522:31;:::i;7588:118::-;7674:5;7667:13;7660:21;7653:5;7650:32;7640:60;;7696:1;7693;7686:12;7711:382;7776:6;7784;7837:2;7825:9;7816:7;7812:23;7808:32;7805:52;;;7853:1;7850;7843:12;7805:52;7892:9;7879:23;7911:31;7936:5;7911:31;:::i;:::-;7961:5;-1:-1:-1;8018:2:89;8003:18;;7990:32;8031:30;7990:32;8031:30;:::i;8098:717::-;8193:6;8201;8209;8217;8270:3;8258:9;8249:7;8245:23;8241:33;8238:53;;;8287:1;8284;8277:12;8238:53;8326:9;8313:23;8345:31;8370:5;8345:31;:::i;:::-;8395:5;-1:-1:-1;8452:2:89;8437:18;;8424:32;8465:33;8424:32;8465:33;:::i;:::-;8517:7;-1:-1:-1;8597:2:89;8582:18;;8569:32;;-1:-1:-1;8678:2:89;8663:18;;8650:32;-1:-1:-1;;;;;8694:30:89;;8691:50;;;8737:1;8734;8727:12;8691:50;8760:49;8801:7;8792:6;8781:9;8777:22;8760:49;:::i;:::-;8750:59;;;8098:717;;;;;;;:::o;8820:380::-;8899:1;8895:12;;;;8942;;;8963:61;;9017:4;9009:6;9005:17;8995:27;;8963:61;9070:2;9062:6;9059:14;9039:18;9036:38;9033:161;;9116:10;9111:3;9107:20;9104:1;9097:31;9151:4;9148:1;9141:15;9179:4;9176:1;9169:15;9033:161;;8820:380;;;:::o;9205:379::-;9281:6;9289;9342:2;9330:9;9321:7;9317:23;9313:32;9310:52;;;9358:1;9355;9348:12;9310:52;9390:9;9384:16;9409:31;9434:5;9409:31;:::i;:::-;9509:2;9494:18;;9488:25;9459:5;;-1:-1:-1;9522:30:89;9488:25;9522:30;:::i;9589:946::-;9643:5;9691:4;9679:9;9674:3;9670:19;9666:30;9663:50;;;9709:1;9706;9699:12;9663:50;9762:2;9756:9;9804:4;9792:17;;-1:-1:-1;;;;;9824:34:89;;9860:22;;;9821:62;9818:88;;;9886:18;;:::i;:::-;9922:2;9915:22;9955:6;-1:-1:-1;9955:6:89;9985:23;;10017:30;9985:23;10017:30;:::i;:::-;10056:23;;10131:2;10116:18;;10103:32;10144:33;10103:32;10144:33;:::i;:::-;10205:2;10193:15;;10186:32;10291:2;10276:18;;;10263:32;10311:15;;;10304:32;10387:2;10372:18;;10359:32;-1:-1:-1;;;;;10403:30:89;;10400:50;;;10446:1;10443;10436:12;10400:50;10483:45;10524:3;10515:6;10504:9;10500:22;10483:45;:::i;:::-;10478:2;10470:6;10466:15;10459:70;;;9589:946;;;;:::o;10540:798::-;10626:5;10658:1;-1:-1:-1;;;;;10674:6:89;10671:30;10668:56;;;10704:18;;:::i;:::-;10750:6;10747:1;10743:14;10782:4;10778:2;10774:13;10766:21;;10805;10821:4;10805:21;:::i;:::-;10860;;;10796:30;-1:-1:-1;10908:4:89;10897:16;;;-1:-1:-1;10936:15:89;;10963;;;10960:35;;;10991:1;10988;10981:12;10960:35;11015:6;11030:302;11046:6;11041:3;11038:15;11030:302;;;11134:3;11121:17;-1:-1:-1;;;;;11157:11:89;11154:35;11151:55;;;11202:1;11199;11192:12;11151:55;11231:56;11283:3;11269:11;11261:6;11257:24;11231:56;:::i;:::-;11219:69;;-1:-1:-1;11317:4:89;11308:14;;;;11063;11030:302;;;11034:3;;;10540:798;;;;;:::o;11343:259::-;11405:5;11458:3;11451:4;11443:6;11439:17;11435:27;11425:55;;11476:1;11473;11466:12;11425:55;11498:98;11592:3;11583:6;11570:20;11563:4;11555:6;11551:17;11498:98;:::i;11607:1157::-;11692:6;11745:2;11733:9;11724:7;11720:23;11716:32;11713:52;;;11761:1;11758;11751:12;11713:52;11801:9;11788:23;-1:-1:-1;;;;;11826:6:89;11823:30;11820:50;;;11866:1;11863;11856:12;11820:50;11889:22;;11945:4;11927:16;;;11923:27;11920:47;;;11963:1;11960;11953:12;11920:47;11989:22;;:::i;:::-;12049:2;12036:16;-1:-1:-1;;;;;12067:8:89;12064:32;12061:52;;;12109:1;12106;12099:12;12061:52;12132:17;;12180:4;12172:13;;12168:27;-1:-1:-1;12158:55:89;;12209:1;12206;12199:12;12158:55;12236:92;12320:7;12315:2;12302:16;12297:2;12293;12289:11;12236:92;:::i;:::-;12229:5;12222:107;;12375:2;12371;12367:11;12354:25;-1:-1:-1;;;;;12394:8:89;12391:32;12388:52;;;12436:1;12433;12426:12;12388:52;12472:64;12528:7;12517:8;12513:2;12509:17;12472:64;:::i;:::-;12467:2;12460:5;12456:14;12449:88;;12583:2;12579;12575:11;12562:25;-1:-1:-1;;;;;12602:8:89;12599:32;12596:52;;;12644:1;12641;12634:12;12596:52;12680:53;12725:7;12714:8;12710:2;12706:17;12680:53;:::i;:::-;12675:2;12664:14;;12657:77;-1:-1:-1;12668:5:89;11607:1157;-1:-1:-1;;;;11607:1157:89:o;12769:184::-;12839:6;12892:2;12880:9;12871:7;12867:23;12863:32;12860:52;;;12908:1;12905;12898:12;12860:52;-1:-1:-1;12931:16:89;;12769:184;-1:-1:-1;12769:184:89:o;12958:127::-;13019:10;13014:3;13010:20;13007:1;13000:31;13050:4;13047:1;13040:15;13074:4;13071:1;13064:15;13792:245;13859:6;13912:2;13900:9;13891:7;13887:23;13883:32;13880:52;;;13928:1;13925;13918:12;13880:52;13960:9;13954:16;13979:28;14001:5;13979:28;:::i;14042:496::-;14221:3;14259:6;14253:13;14275:66;14334:6;14329:3;14322:4;14314:6;14310:17;14275:66;:::i;:::-;14404:13;;14363:16;;;;14426:70;14404:13;14363:16;14473:4;14461:17;;14426:70;:::i;:::-;14512:20;;14042:496;-1:-1:-1;;;;14042:496:89:o;14543:232::-;14582:3;14603:17;;;14600:140;;14662:10;14657:3;14653:20;14650:1;14643:31;14697:4;14694:1;14687:15;14725:4;14722:1;14715:15;14600:140;-1:-1:-1;14767:1:89;14756:13;;14543:232::o;14780:1189::-;14869:6;14922:2;14910:9;14901:7;14897:23;14893:32;14890:52;;;14938:1;14935;14928:12;14890:52;14978:9;14965:23;-1:-1:-1;;;;;15003:6:89;15000:30;14997:50;;;15043:1;15040;15033:12;14997:50;15066:22;;15122:4;15104:16;;;15100:27;15097:47;;;15140:1;15137;15130:12;15097:47;15166:22;;:::i;:::-;15225:2;15212:16;-1:-1:-1;;;;;15263:7:89;15259:32;15250:7;15247:45;15237:73;;15306:1;15303;15296:12;15237:73;15319:22;;15407:2;15399:11;;;15386:25;15427:14;;;15420:31;15517:2;15509:11;;;15496:25;15537:14;;;15530:31;15607:2;15599:11;;15586:25;-1:-1:-1;;;;;15623:32:89;;15620:52;;;15668:1;15665;15658:12;15620:52;15704:44;15740:7;15729:8;15725:2;15721:17;15704:44;:::i;:::-;15699:2;15692:5;15688:14;15681:68;;15795:3;15791:2;15787:12;15774:26;-1:-1:-1;;;;;15815:8:89;15812:32;15809:52;;;15857:1;15854;15847:12;15809:52;15894:44;15930:7;15919:8;15915:2;15911:17;15894:44;:::i;:::-;15888:3;15877:15;;15870:69;-1:-1:-1;15881:5:89;14780:1189;-1:-1:-1;;;;14780:1189:89:o;15974:386::-;16206:1;16202;16197:3;16193:11;16189:19;16181:6;16177:32;16166:9;16159:51;16246:6;16241:2;16230:9;16226:18;16219:34;16289:2;16284;16273:9;16269:18;16262:30;16140:4;16309:45;16350:2;16339:9;16335:18;16327:6;16309:45;:::i;16365:667::-;16444:6;16497:2;16485:9;16476:7;16472:23;16468:32;16465:52;;;16513:1;16510;16503:12;16465:52;16546:9;16540:16;-1:-1:-1;;;;;16571:6:89;16568:30;16565:50;;;16611:1;16608;16601:12;16565:50;16634:22;;16687:4;16679:13;;16675:27;-1:-1:-1;16665:55:89;;16716:1;16713;16706:12;16665:55;16749:2;16743:9;16774:52;16790:35;16818:6;16790:35;:::i;16774:52::-;16849:6;16842:5;16835:21;16897:7;16892:2;16883:6;16879:2;16875:15;16871:24;16868:37;16865:57;;;16918:1;16915;16908:12;16865:57;16931:71;16995:6;16990:2;16983:5;16979:14;16974:2;16970;16966:11;16931:71;:::i;17226:485::-;-1:-1:-1;;;;;17457:32:89;;;17439:51;;17526:32;;17521:2;17506:18;;17499:60;17590:2;17575:18;;17568:34;;;17638:3;17633:2;17618:18;;17611:31;;;-1:-1:-1;;17659:46:89;;17685:19;;17677:6;17659:46;:::i;:::-;17651:54;17226:485;-1:-1:-1;;;;;;17226:485:89:o;17716:249::-;17785:6;17838:2;17826:9;17817:7;17813:23;17809:32;17806:52;;;17854:1;17851;17844:12;17806:52;17886:9;17880:16;17905:30;17929:5;17905:30;:::i;18102:287::-;18231:3;18269:6;18263:13;18285:66;18344:6;18339:3;18332:4;18324:6;18320:17;18285:66;:::i;:::-;18367:16;;;;;18102:287;-1:-1:-1;;18102:287:89:o;19430:579::-;19482:3;19513;19545:5;19539:12;19572:6;19567:3;19560:19;19604:4;19599:3;19595:14;19588:21;;19662:4;19652:6;19649:1;19645:14;19638:5;19634:26;19630:37;19701:4;19694:5;19690:16;19724:1;19734:249;19748:6;19745:1;19742:13;19734:249;;;19835:2;19831:7;19823:5;19817:4;19813:16;19809:30;19804:3;19797:43;19861:38;19894:4;19885:6;19879:13;19861:38;:::i;:::-;19934:4;19959:14;;;;19853:46;;-1:-1:-1;19922:17:89;;;;;19770:1;19763:9;19734:249;;;-1:-1:-1;19999:4:89;;19430:579;-1:-1:-1;;;;;;19430:579:89:o;20014:546::-;20078:3;20116:5;20110:12;20143:6;20138:3;20131:19;20175:4;20170:3;20166:14;20159:21;;20214:4;20207:5;20203:16;20237:1;20247:288;20261:6;20258:1;20255:13;20247:288;;;20320:13;;20362:9;;-1:-1:-1;;;;;20358:35:89;20346:48;;20444:4;20436:13;;;20430:20;20414:14;;;20407:44;20480:4;20471:14;;;;20508:17;;;;20390:1;20276:9;20247:288;;;-1:-1:-1;20551:3:89;;20014:546;-1:-1:-1;;;;20014:546:89:o;20565:601::-;20627:3;20665:5;20659:12;20692:6;20687:3;20680:19;20724:4;20719:3;20715:14;20708:21;;20763:4;20756:5;20752:16;20786:1;20796:345;20810:6;20807:1;20804:13;20796:345;;;20869:13;;20911:9;;-1:-1:-1;;;;;20907:35:89;20895:48;;20993:4;20985:13;;;20979:20;20963:14;;;20956:44;21050:4;21042:13;;;21036:20;21020:14;;;21013:44;;;;21086:4;21077:14;;;;21114:17;;;;20939:1;20825:9;20796:345;;21171:1371;21362:2;21351:9;21344:21;21374:57;21427:2;21416:9;21412:18;21403:6;21397:13;-1:-1:-1;;;;;13536:30:89;13524:43;;13466:107;21374:57;21325:4;21478:2;21470:6;21466:15;21460:22;21518:6;21513:2;21502:9;21498:18;21491:34;21548:52;21595:3;21584:9;21580:19;21566:12;21548:52;:::i;:::-;21534:66;;21649:2;21641:6;21637:15;21631:22;21721:2;21717:7;21705:9;21697:6;21693:22;21689:36;21684:2;21673:9;21669:18;21662:64;21749:41;21783:6;21767:14;21749:41;:::i;:::-;21735:55;;;21845:2;21837:6;21833:15;21827:22;21821:3;21810:9;21806:19;21799:51;21905:3;21897:6;21893:16;21887:23;21881:3;21870:9;21866:19;21859:52;21960:3;21952:6;21948:16;21942:23;22034:2;22030:7;22018:9;22010:6;22006:22;22002:36;21996:3;21985:9;21981:19;21974:65;22062:51;22106:6;22090:14;22062:51;:::i;:::-;22048:65;;;22162:3;22154:6;22150:16;22144:23;22236:2;22232:7;22220:9;22212:6;22208:22;22204:36;22198:3;22187:9;22183:19;22176:65;22264:63;22320:6;22304:14;22264:63;:::i;:::-;22250:77;;;22376:3;22368:6;22364:16;22358:23;22453:2;22449:7;22437:9;22429:6;22425:22;22421:36;22412:6;22401:9;22397:22;22390:68;22475:61;22529:6;22513:14;22475:61;:::i;22547:289::-;22722:6;22711:9;22704:25;22765:2;22760;22749:9;22745:18;22738:30;22685:4;22785:45;22826:2;22815:9;22811:18;22803:6;22785:45;:::i"},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","checkBlueprint(address)":"ae6e7180","counter()":"61bc221a","getApproved(uint256)":"081812fc","getVersion()":"0d8e6e2c","increment()":"d09de08a","initialize(address,address)":"485cc955","isApprovedForAll(address,address)":"e985e9c5","mainCall(uint256,address)":"22c3a793","mainCallExecuted()":"30c78b41","mintAndSafeTransferCheck(bytes,bytes)":"7d6f0e9c","name()":"06fdde03","ownerOf(uint256)":"6352211e","proxiableUUID()":"52d1902d","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tacSAFactory()":"3c2d13c3","test(bytes,bytes)":"0c5561a6","tokenToBridge()":"14f40e5e","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","upgradeToAndCall(address,bytes)":"4f1ef286","user()":"4f8632ba"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCrossChainLayer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Incremented\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"checkBlueprint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"increment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_crossChainLayer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tacSAFactory\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_tokenToBrdige\",\"type\":\"address\"}],\"name\":\"mainCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mainCallExecuted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"tacHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"mintAndSafeTransferCheck\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tacSAFactory\",\"outputs\":[{\"internalType\":\"contract TacSAFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"tacHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"arguments\",\"type\":\"bytes\"}],\"name\":\"test\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenToBridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"user\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getVersion()\":{\"details\":\"Get Tac Proxy contract version.\",\"returns\":{\"_0\":\"Contract version.\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestSmartAccountProxyUser.sol\":\"TestSmartAccountProxyUser\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol\":{\"keccak256\":\"0xb719fe6bd47177169ae56e3a6300ca21cc966c649412a1d1156f02862e81beac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5207f4c145e0504ee8c81088b0eadbf9500c31ecbf26c46443f1f5076cafbf4\",\"dweb:/ipfs/QmevxdJoPzBHtcRtEQ9wtkSqhfYvqD4S4BmfEFxDrfYk3G\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol\":{\"keccak256\":\"0x5920bac7215d12961e23b207f6e81a1d64aa4935a4469abe95b64a96a3c3007b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b34bb828c45c3a4ebf6c2c585971abf5089e61357a3818a2900c7e85b74a1299\",\"dweb:/ipfs/QmewGAzKsPXYfSjCKxuH1SekKxtdyzhdbdyxjF5gohLigt\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"@uniswap/lib/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0xaff99b54915f57e2a4e71b8d15afd4ee425410e5a6f45c07517ae1beb806f8bd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://15432ec031f4cfa6709921289e198b030a0c5eac75b5a3e0eb64827a2b3b5595\",\"dweb:/ipfs/QmZvR1KuuDvuzXFiADCngTKyMCTy31uhq9U6CazP59B55j\"]},\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/core/TacInitializable.sol\":{\"keccak256\":\"0x1a60834ac4652782e16392d639235d96e1675970c507b8b6d2db9c8644b50941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ab364d4d3e4ea4d477132e98eeac8142d54d208440c7a73fd78138990fc2db5\",\"dweb:/ipfs/QmfRaaiGh4xFE2aDVHQiB57fE2rmu6c6m6vdHGXqKay62C\"]},\"contracts/interfaces/ICrossChainLayer.sol\":{\"keccak256\":\"0x435aeb361378447362b2bfc59de69237ec85706d9755e53b46b48c84a0ea186c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9d91e1e5c1b2a4b0df3ea28cd7ef3956147f082873d8abf03d9963aaa13a60\",\"dweb:/ipfs/QmVFL9rUScnu5XKk9ZioWZbyqq4sdFPz19dowWsfzE3fUM\"]},\"contracts/interfaces/ITacInitializable.sol\":{\"keccak256\":\"0xfd132053b291b5c74e756f9d6bc4c61c0c4d23ca49cd2dfcdf9dbc1daa43f4b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb2c3d85cd6528b7d821b2fd51891f60f2bcae3927ded0504c1f9e81eab6065\",\"dweb:/ipfs/QmdTXVjipQ7KCDamMcfLeaCmBKYH4pt5oWCneNJ5kTGrWA\"]},\"contracts/proxies/TacProxy.sol\":{\"keccak256\":\"0xbc37790a2523ad054248c90df15a3e8855afabaabf26e90c43a4d23e9cacd962\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee86fe6c1d7dec9068d88059f27aa62e40e7f8ae89ba00c077ed8eafac7edea1\",\"dweb:/ipfs/QmXDMLLkphX2a2jmvvFTmN1TqgtEroefKLpoFmFXNZbu56\"]},\"contracts/proxies/TacProxyV1Upgradeable.sol\":{\"keccak256\":\"0x64f9792d830341316893d6a19d4264aca33e39cba0a1ef72f70d430c3d3a4abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c8bcb432c68eb0d56e2e4944df26a749853d4b7501403c3e08ce91de12006bd\",\"dweb:/ipfs/QmRzp2cPtB1YWEcae4fp8TFtJJE4JhgupeET35c5SboRgn\"]},\"contracts/smart-account/TacSAFactory.sol\":{\"keccak256\":\"0x0bc96c7af927cad854c071c308cbe3ebd04c3af22ab095b200b8b83137464dd3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://70d06d4469f847c43950d69b00709143fe9a2dd24892e5b02b7798e2333cbb6d\",\"dweb:/ipfs/QmVxnVQvcBwj7B38mtr5WF2p4mY9Bpudx8ev68Dr6zJtB3\"]},\"contracts/smart-account/TacSmartAccount.sol\":{\"keccak256\":\"0x4609e52e0d11ab9904a4d10436daace0694b24cc75a44aed3ff2b5f1aa5b97c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3d0ff2038c2273cae96e93452ed0510af43981e0e075f2ce71b286f693111e8\",\"dweb:/ipfs/QmWsgtDDx7bg1fdz8LXo2SRfJoMS5UvZtWoV1ybBkw8bUF\"]},\"contracts/smart-account/interfaces/IHooks.sol\":{\"keccak256\":\"0x92df3e161f446d1e7424cb544f92326549ecbafb77b37c647fb83026db4cddb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://958f2d6114803e5cec8b5556cb5199fdec970a12ba67e5bb74de793293a257f3\",\"dweb:/ipfs/QmNproAXSrm5R8BXjCHF6mo8yU7NFdMBEqammh26iKpKQ8\"]},\"contracts/smart-account/interfaces/ISAFactory.sol\":{\"keccak256\":\"0xbc3865cbdc19dde77ff0a60d69db0185e6203252c298588143958d4660b109ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1101b2014e66dcab07df94da3b5eea75b256a321b4ffa98563e1b5a94719d375\",\"dweb:/ipfs/QmWHhNBL7G11HoiHtgiGBJVefwzsDQzsWovSQxdXfyE3Aa\"]},\"contracts/smart-account/interfaces/ITacSmartAccount.sol\":{\"keccak256\":\"0xd78a6839b3dfd4bc3c6a0898c10dbf7e7fbe73b4168964afce4671849853267b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ee2f0b2ea68353936cabb8ae16a7362ca7a6bffea0585e75ed5d413e193df84\",\"dweb:/ipfs/QmRbX4Pyp9hfLJxTyCdC4Bim2rdnVuM6Hnpj6TLFreqCb9\"]},\"contracts/smart-account/libs/SaHelper.sol\":{\"keccak256\":\"0xd0b3f79b56e30704fe002189de2aedf73f9b8131139bc31a732068fef9e43c4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://696fc91b85ad47a68726b16675e44f6a673bfb51b54071b2e87126c57579abca\",\"dweb:/ipfs/QmP88UY6jq6PvkvpiHq2YQig6zUfPuEawssJzFMXdNWUfp\"]},\"contracts/test/TestSmartAccountProxyUser.sol\":{\"keccak256\":\"0x5889fc3a39f012fc2b06c1b19dda3059e7cf9b2b0328312120a4752b89853c8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50319ca80d25cc62dac24594f61be10d476f24de9c44b9eb04512f0f5c648ed\",\"dweb:/ipfs/QmXtzfpqwLL1EJqhJW65grv8hsi8BH2ZkDPH8jX9mVQ24C\"]},\"contracts/test/interfaces/IMockTacSmartAccount.sol\":{\"keccak256\":\"0x0f0ff34a348f8581a1fd6f8568067ac1759903beadd556732fbf6355505b4bc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8680175fcbb9bee0c963e906ec425b6a371446896309da47048ddbc3f162e9ff\",\"dweb:/ipfs/QmW6wDiLa7bN3dhivFiLKwgU6ovgoVQ39BJjvt4ydid1cM\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":21132,"contract":"contracts/test/TestSmartAccountProxyUser.sol:TestSmartAccountProxyUser","label":"tacSAFactory","offset":0,"slot":"0","type":"t_contract(TacSAFactory)19057"},{"astId":21134,"contract":"contracts/test/TestSmartAccountProxyUser.sol:TestSmartAccountProxyUser","label":"counter","offset":0,"slot":"1","type":"t_uint256"},{"astId":21136,"contract":"contracts/test/TestSmartAccountProxyUser.sol:TestSmartAccountProxyUser","label":"mainCallExecuted","offset":0,"slot":"2","type":"t_bool"},{"astId":21138,"contract":"contracts/test/TestSmartAccountProxyUser.sol:TestSmartAccountProxyUser","label":"tokenToBridge","offset":1,"slot":"2","type":"t_address"},{"astId":21140,"contract":"contracts/test/TestSmartAccountProxyUser.sol:TestSmartAccountProxyUser","label":"user","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(TacSAFactory)19057":{"encoding":"inplace","label":"contract TacSAFactory","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/test/TestToken.sol":{"TestToken":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":"value","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_21452":{"entryPoint":null,"id":21452,"parameterSlots":2,"returnSlots":0},"@_4194":{"entryPoint":null,"id":4194,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":106,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":269,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":432,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":511,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":374,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":84,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4053:89","nodeType":"YulBlock","src":"0:4053:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"46:95:89","nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:89","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:89","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:89","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:89","nodeType":"YulIdentifier","src":"66:3:89"},"nativeSrc":"66:20:89","nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nativeSrc":"56:6:89","nodeType":"YulIdentifier","src":"56:6:89"},"nativeSrc":"56:31:89","nodeType":"YulFunctionCall","src":"56:31:89"},"nativeSrc":"56:31:89","nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:89","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:89","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:89","nodeType":"YulIdentifier","src":"96:6:89"},"nativeSrc":"96:15:89","nodeType":"YulFunctionCall","src":"96:15:89"},"nativeSrc":"96:15:89","nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:89","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:89","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:89","nodeType":"YulIdentifier","src":"120:6:89"},"nativeSrc":"120:15:89","nodeType":"YulFunctionCall","src":"120:15:89"},"nativeSrc":"120:15:89","nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nativeSrc":"14:127:89","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nativeSrc":"210:770:89","nodeType":"YulBlock","src":"210:770:89","statements":[{"body":{"nativeSrc":"259:16:89","nodeType":"YulBlock","src":"259:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"268:1:89","nodeType":"YulLiteral","src":"268:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"271:1:89","nodeType":"YulLiteral","src":"271:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"261:6:89","nodeType":"YulIdentifier","src":"261:6:89"},"nativeSrc":"261:12:89","nodeType":"YulFunctionCall","src":"261:12:89"},"nativeSrc":"261:12:89","nodeType":"YulExpressionStatement","src":"261:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"238:6:89","nodeType":"YulIdentifier","src":"238:6:89"},{"kind":"number","nativeSrc":"246:4:89","nodeType":"YulLiteral","src":"246:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"234:3:89","nodeType":"YulIdentifier","src":"234:3:89"},"nativeSrc":"234:17:89","nodeType":"YulFunctionCall","src":"234:17:89"},{"name":"end","nativeSrc":"253:3:89","nodeType":"YulIdentifier","src":"253:3:89"}],"functionName":{"name":"slt","nativeSrc":"230:3:89","nodeType":"YulIdentifier","src":"230:3:89"},"nativeSrc":"230:27:89","nodeType":"YulFunctionCall","src":"230:27:89"}],"functionName":{"name":"iszero","nativeSrc":"223:6:89","nodeType":"YulIdentifier","src":"223:6:89"},"nativeSrc":"223:35:89","nodeType":"YulFunctionCall","src":"223:35:89"},"nativeSrc":"220:55:89","nodeType":"YulIf","src":"220:55:89"},{"nativeSrc":"284:27:89","nodeType":"YulVariableDeclaration","src":"284:27:89","value":{"arguments":[{"name":"offset","nativeSrc":"304:6:89","nodeType":"YulIdentifier","src":"304:6:89"}],"functionName":{"name":"mload","nativeSrc":"298:5:89","nodeType":"YulIdentifier","src":"298:5:89"},"nativeSrc":"298:13:89","nodeType":"YulFunctionCall","src":"298:13:89"},"variables":[{"name":"length","nativeSrc":"288:6:89","nodeType":"YulTypedName","src":"288:6:89","type":""}]},{"body":{"nativeSrc":"354:22:89","nodeType":"YulBlock","src":"354:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"356:16:89","nodeType":"YulIdentifier","src":"356:16:89"},"nativeSrc":"356:18:89","nodeType":"YulFunctionCall","src":"356:18:89"},"nativeSrc":"356:18:89","nodeType":"YulExpressionStatement","src":"356:18:89"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"326:6:89","nodeType":"YulIdentifier","src":"326:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"342:2:89","nodeType":"YulLiteral","src":"342:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"346:1:89","nodeType":"YulLiteral","src":"346:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"338:3:89","nodeType":"YulIdentifier","src":"338:3:89"},"nativeSrc":"338:10:89","nodeType":"YulFunctionCall","src":"338:10:89"},{"kind":"number","nativeSrc":"350:1:89","nodeType":"YulLiteral","src":"350:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"334:3:89","nodeType":"YulIdentifier","src":"334:3:89"},"nativeSrc":"334:18:89","nodeType":"YulFunctionCall","src":"334:18:89"}],"functionName":{"name":"gt","nativeSrc":"323:2:89","nodeType":"YulIdentifier","src":"323:2:89"},"nativeSrc":"323:30:89","nodeType":"YulFunctionCall","src":"323:30:89"},"nativeSrc":"320:56:89","nodeType":"YulIf","src":"320:56:89"},{"nativeSrc":"385:23:89","nodeType":"YulVariableDeclaration","src":"385:23:89","value":{"arguments":[{"kind":"number","nativeSrc":"405:2:89","nodeType":"YulLiteral","src":"405:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"399:5:89","nodeType":"YulIdentifier","src":"399:5:89"},"nativeSrc":"399:9:89","nodeType":"YulFunctionCall","src":"399:9:89"},"variables":[{"name":"memPtr","nativeSrc":"389:6:89","nodeType":"YulTypedName","src":"389:6:89","type":""}]},{"nativeSrc":"417:85:89","nodeType":"YulVariableDeclaration","src":"417:85:89","value":{"arguments":[{"name":"memPtr","nativeSrc":"439:6:89","nodeType":"YulIdentifier","src":"439:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"463:6:89","nodeType":"YulIdentifier","src":"463:6:89"},{"kind":"number","nativeSrc":"471:4:89","nodeType":"YulLiteral","src":"471:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"459:3:89","nodeType":"YulIdentifier","src":"459:3:89"},"nativeSrc":"459:17:89","nodeType":"YulFunctionCall","src":"459:17:89"},{"arguments":[{"kind":"number","nativeSrc":"482:2:89","nodeType":"YulLiteral","src":"482:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"478:3:89","nodeType":"YulIdentifier","src":"478:3:89"},"nativeSrc":"478:7:89","nodeType":"YulFunctionCall","src":"478:7:89"}],"functionName":{"name":"and","nativeSrc":"455:3:89","nodeType":"YulIdentifier","src":"455:3:89"},"nativeSrc":"455:31:89","nodeType":"YulFunctionCall","src":"455:31:89"},{"kind":"number","nativeSrc":"488:2:89","nodeType":"YulLiteral","src":"488:2:89","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"451:3:89","nodeType":"YulIdentifier","src":"451:3:89"},"nativeSrc":"451:40:89","nodeType":"YulFunctionCall","src":"451:40:89"},{"arguments":[{"kind":"number","nativeSrc":"497:2:89","nodeType":"YulLiteral","src":"497:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"493:3:89","nodeType":"YulIdentifier","src":"493:3:89"},"nativeSrc":"493:7:89","nodeType":"YulFunctionCall","src":"493:7:89"}],"functionName":{"name":"and","nativeSrc":"447:3:89","nodeType":"YulIdentifier","src":"447:3:89"},"nativeSrc":"447:54:89","nodeType":"YulFunctionCall","src":"447:54:89"}],"functionName":{"name":"add","nativeSrc":"435:3:89","nodeType":"YulIdentifier","src":"435:3:89"},"nativeSrc":"435:67:89","nodeType":"YulFunctionCall","src":"435:67:89"},"variables":[{"name":"newFreePtr","nativeSrc":"421:10:89","nodeType":"YulTypedName","src":"421:10:89","type":""}]},{"body":{"nativeSrc":"577:22:89","nodeType":"YulBlock","src":"577:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"579:16:89","nodeType":"YulIdentifier","src":"579:16:89"},"nativeSrc":"579:18:89","nodeType":"YulFunctionCall","src":"579:18:89"},"nativeSrc":"579:18:89","nodeType":"YulExpressionStatement","src":"579:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"520:10:89","nodeType":"YulIdentifier","src":"520:10:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"540:2:89","nodeType":"YulLiteral","src":"540:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"544:1:89","nodeType":"YulLiteral","src":"544:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"536:3:89","nodeType":"YulIdentifier","src":"536:3:89"},"nativeSrc":"536:10:89","nodeType":"YulFunctionCall","src":"536:10:89"},{"kind":"number","nativeSrc":"548:1:89","nodeType":"YulLiteral","src":"548:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"532:3:89","nodeType":"YulIdentifier","src":"532:3:89"},"nativeSrc":"532:18:89","nodeType":"YulFunctionCall","src":"532:18:89"}],"functionName":{"name":"gt","nativeSrc":"517:2:89","nodeType":"YulIdentifier","src":"517:2:89"},"nativeSrc":"517:34:89","nodeType":"YulFunctionCall","src":"517:34:89"},{"arguments":[{"name":"newFreePtr","nativeSrc":"556:10:89","nodeType":"YulIdentifier","src":"556:10:89"},{"name":"memPtr","nativeSrc":"568:6:89","nodeType":"YulIdentifier","src":"568:6:89"}],"functionName":{"name":"lt","nativeSrc":"553:2:89","nodeType":"YulIdentifier","src":"553:2:89"},"nativeSrc":"553:22:89","nodeType":"YulFunctionCall","src":"553:22:89"}],"functionName":{"name":"or","nativeSrc":"514:2:89","nodeType":"YulIdentifier","src":"514:2:89"},"nativeSrc":"514:62:89","nodeType":"YulFunctionCall","src":"514:62:89"},"nativeSrc":"511:88:89","nodeType":"YulIf","src":"511:88:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"615:2:89","nodeType":"YulLiteral","src":"615:2:89","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"619:10:89","nodeType":"YulIdentifier","src":"619:10:89"}],"functionName":{"name":"mstore","nativeSrc":"608:6:89","nodeType":"YulIdentifier","src":"608:6:89"},"nativeSrc":"608:22:89","nodeType":"YulFunctionCall","src":"608:22:89"},"nativeSrc":"608:22:89","nodeType":"YulExpressionStatement","src":"608:22:89"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"646:6:89","nodeType":"YulIdentifier","src":"646:6:89"},{"name":"length","nativeSrc":"654:6:89","nodeType":"YulIdentifier","src":"654:6:89"}],"functionName":{"name":"mstore","nativeSrc":"639:6:89","nodeType":"YulIdentifier","src":"639:6:89"},"nativeSrc":"639:22:89","nodeType":"YulFunctionCall","src":"639:22:89"},"nativeSrc":"639:22:89","nodeType":"YulExpressionStatement","src":"639:22:89"},{"body":{"nativeSrc":"713:16:89","nodeType":"YulBlock","src":"713:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"722:1:89","nodeType":"YulLiteral","src":"722:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"725:1:89","nodeType":"YulLiteral","src":"725:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"715:6:89","nodeType":"YulIdentifier","src":"715:6:89"},"nativeSrc":"715:12:89","nodeType":"YulFunctionCall","src":"715:12:89"},"nativeSrc":"715:12:89","nodeType":"YulExpressionStatement","src":"715:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"684:6:89","nodeType":"YulIdentifier","src":"684:6:89"},{"name":"length","nativeSrc":"692:6:89","nodeType":"YulIdentifier","src":"692:6:89"}],"functionName":{"name":"add","nativeSrc":"680:3:89","nodeType":"YulIdentifier","src":"680:3:89"},"nativeSrc":"680:19:89","nodeType":"YulFunctionCall","src":"680:19:89"},{"kind":"number","nativeSrc":"701:4:89","nodeType":"YulLiteral","src":"701:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"676:3:89","nodeType":"YulIdentifier","src":"676:3:89"},"nativeSrc":"676:30:89","nodeType":"YulFunctionCall","src":"676:30:89"},{"name":"end","nativeSrc":"708:3:89","nodeType":"YulIdentifier","src":"708:3:89"}],"functionName":{"name":"gt","nativeSrc":"673:2:89","nodeType":"YulIdentifier","src":"673:2:89"},"nativeSrc":"673:39:89","nodeType":"YulFunctionCall","src":"673:39:89"},"nativeSrc":"670:59:89","nodeType":"YulIf","src":"670:59:89"},{"nativeSrc":"738:10:89","nodeType":"YulVariableDeclaration","src":"738:10:89","value":{"kind":"number","nativeSrc":"747:1:89","nodeType":"YulLiteral","src":"747:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"742:1:89","nodeType":"YulTypedName","src":"742:1:89","type":""}]},{"body":{"nativeSrc":"809:91:89","nodeType":"YulBlock","src":"809:91:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"838:6:89","nodeType":"YulIdentifier","src":"838:6:89"},{"name":"i","nativeSrc":"846:1:89","nodeType":"YulIdentifier","src":"846:1:89"}],"functionName":{"name":"add","nativeSrc":"834:3:89","nodeType":"YulIdentifier","src":"834:3:89"},"nativeSrc":"834:14:89","nodeType":"YulFunctionCall","src":"834:14:89"},{"kind":"number","nativeSrc":"850:4:89","nodeType":"YulLiteral","src":"850:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"830:3:89","nodeType":"YulIdentifier","src":"830:3:89"},"nativeSrc":"830:25:89","nodeType":"YulFunctionCall","src":"830:25:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"871:6:89","nodeType":"YulIdentifier","src":"871:6:89"},{"name":"i","nativeSrc":"879:1:89","nodeType":"YulIdentifier","src":"879:1:89"}],"functionName":{"name":"add","nativeSrc":"867:3:89","nodeType":"YulIdentifier","src":"867:3:89"},"nativeSrc":"867:14:89","nodeType":"YulFunctionCall","src":"867:14:89"},{"kind":"number","nativeSrc":"883:4:89","nodeType":"YulLiteral","src":"883:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"863:3:89","nodeType":"YulIdentifier","src":"863:3:89"},"nativeSrc":"863:25:89","nodeType":"YulFunctionCall","src":"863:25:89"}],"functionName":{"name":"mload","nativeSrc":"857:5:89","nodeType":"YulIdentifier","src":"857:5:89"},"nativeSrc":"857:32:89","nodeType":"YulFunctionCall","src":"857:32:89"}],"functionName":{"name":"mstore","nativeSrc":"823:6:89","nodeType":"YulIdentifier","src":"823:6:89"},"nativeSrc":"823:67:89","nodeType":"YulFunctionCall","src":"823:67:89"},"nativeSrc":"823:67:89","nodeType":"YulExpressionStatement","src":"823:67:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"768:1:89","nodeType":"YulIdentifier","src":"768:1:89"},{"name":"length","nativeSrc":"771:6:89","nodeType":"YulIdentifier","src":"771:6:89"}],"functionName":{"name":"lt","nativeSrc":"765:2:89","nodeType":"YulIdentifier","src":"765:2:89"},"nativeSrc":"765:13:89","nodeType":"YulFunctionCall","src":"765:13:89"},"nativeSrc":"757:143:89","nodeType":"YulForLoop","post":{"nativeSrc":"779:21:89","nodeType":"YulBlock","src":"779:21:89","statements":[{"nativeSrc":"781:17:89","nodeType":"YulAssignment","src":"781:17:89","value":{"arguments":[{"name":"i","nativeSrc":"790:1:89","nodeType":"YulIdentifier","src":"790:1:89"},{"kind":"number","nativeSrc":"793:4:89","nodeType":"YulLiteral","src":"793:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"786:3:89","nodeType":"YulIdentifier","src":"786:3:89"},"nativeSrc":"786:12:89","nodeType":"YulFunctionCall","src":"786:12:89"},"variableNames":[{"name":"i","nativeSrc":"781:1:89","nodeType":"YulIdentifier","src":"781:1:89"}]}]},"pre":{"nativeSrc":"761:3:89","nodeType":"YulBlock","src":"761:3:89","statements":[]},"src":"757:143:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"924:6:89","nodeType":"YulIdentifier","src":"924:6:89"},{"name":"length","nativeSrc":"932:6:89","nodeType":"YulIdentifier","src":"932:6:89"}],"functionName":{"name":"add","nativeSrc":"920:3:89","nodeType":"YulIdentifier","src":"920:3:89"},"nativeSrc":"920:19:89","nodeType":"YulFunctionCall","src":"920:19:89"},{"kind":"number","nativeSrc":"941:4:89","nodeType":"YulLiteral","src":"941:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"916:3:89","nodeType":"YulIdentifier","src":"916:3:89"},"nativeSrc":"916:30:89","nodeType":"YulFunctionCall","src":"916:30:89"},{"kind":"number","nativeSrc":"948:1:89","nodeType":"YulLiteral","src":"948:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"909:6:89","nodeType":"YulIdentifier","src":"909:6:89"},"nativeSrc":"909:41:89","nodeType":"YulFunctionCall","src":"909:41:89"},"nativeSrc":"909:41:89","nodeType":"YulExpressionStatement","src":"909:41:89"},{"nativeSrc":"959:15:89","nodeType":"YulAssignment","src":"959:15:89","value":{"name":"memPtr","nativeSrc":"968:6:89","nodeType":"YulIdentifier","src":"968:6:89"},"variableNames":[{"name":"array","nativeSrc":"959:5:89","nodeType":"YulIdentifier","src":"959:5:89"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"146:834:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"184:6:89","nodeType":"YulTypedName","src":"184:6:89","type":""},{"name":"end","nativeSrc":"192:3:89","nodeType":"YulTypedName","src":"192:3:89","type":""}],"returnVariables":[{"name":"array","nativeSrc":"200:5:89","nodeType":"YulTypedName","src":"200:5:89","type":""}],"src":"146:834:89"},{"body":{"nativeSrc":"1103:439:89","nodeType":"YulBlock","src":"1103:439:89","statements":[{"body":{"nativeSrc":"1149:16:89","nodeType":"YulBlock","src":"1149:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1158:1:89","nodeType":"YulLiteral","src":"1158:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1161:1:89","nodeType":"YulLiteral","src":"1161:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1151:6:89","nodeType":"YulIdentifier","src":"1151:6:89"},"nativeSrc":"1151:12:89","nodeType":"YulFunctionCall","src":"1151:12:89"},"nativeSrc":"1151:12:89","nodeType":"YulExpressionStatement","src":"1151:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1124:7:89","nodeType":"YulIdentifier","src":"1124:7:89"},{"name":"headStart","nativeSrc":"1133:9:89","nodeType":"YulIdentifier","src":"1133:9:89"}],"functionName":{"name":"sub","nativeSrc":"1120:3:89","nodeType":"YulIdentifier","src":"1120:3:89"},"nativeSrc":"1120:23:89","nodeType":"YulFunctionCall","src":"1120:23:89"},{"kind":"number","nativeSrc":"1145:2:89","nodeType":"YulLiteral","src":"1145:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1116:3:89","nodeType":"YulIdentifier","src":"1116:3:89"},"nativeSrc":"1116:32:89","nodeType":"YulFunctionCall","src":"1116:32:89"},"nativeSrc":"1113:52:89","nodeType":"YulIf","src":"1113:52:89"},{"nativeSrc":"1174:30:89","nodeType":"YulVariableDeclaration","src":"1174:30:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1194:9:89","nodeType":"YulIdentifier","src":"1194:9:89"}],"functionName":{"name":"mload","nativeSrc":"1188:5:89","nodeType":"YulIdentifier","src":"1188:5:89"},"nativeSrc":"1188:16:89","nodeType":"YulFunctionCall","src":"1188:16:89"},"variables":[{"name":"offset","nativeSrc":"1178:6:89","nodeType":"YulTypedName","src":"1178:6:89","type":""}]},{"body":{"nativeSrc":"1247:16:89","nodeType":"YulBlock","src":"1247:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1256:1:89","nodeType":"YulLiteral","src":"1256:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1259:1:89","nodeType":"YulLiteral","src":"1259:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1249:6:89","nodeType":"YulIdentifier","src":"1249:6:89"},"nativeSrc":"1249:12:89","nodeType":"YulFunctionCall","src":"1249:12:89"},"nativeSrc":"1249:12:89","nodeType":"YulExpressionStatement","src":"1249:12:89"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1219:6:89","nodeType":"YulIdentifier","src":"1219:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1235:2:89","nodeType":"YulLiteral","src":"1235:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"1239:1:89","nodeType":"YulLiteral","src":"1239:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1231:3:89","nodeType":"YulIdentifier","src":"1231:3:89"},"nativeSrc":"1231:10:89","nodeType":"YulFunctionCall","src":"1231:10:89"},{"kind":"number","nativeSrc":"1243:1:89","nodeType":"YulLiteral","src":"1243:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1227:3:89","nodeType":"YulIdentifier","src":"1227:3:89"},"nativeSrc":"1227:18:89","nodeType":"YulFunctionCall","src":"1227:18:89"}],"functionName":{"name":"gt","nativeSrc":"1216:2:89","nodeType":"YulIdentifier","src":"1216:2:89"},"nativeSrc":"1216:30:89","nodeType":"YulFunctionCall","src":"1216:30:89"},"nativeSrc":"1213:50:89","nodeType":"YulIf","src":"1213:50:89"},{"nativeSrc":"1272:71:89","nodeType":"YulAssignment","src":"1272:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1315:9:89","nodeType":"YulIdentifier","src":"1315:9:89"},{"name":"offset","nativeSrc":"1326:6:89","nodeType":"YulIdentifier","src":"1326:6:89"}],"functionName":{"name":"add","nativeSrc":"1311:3:89","nodeType":"YulIdentifier","src":"1311:3:89"},"nativeSrc":"1311:22:89","nodeType":"YulFunctionCall","src":"1311:22:89"},{"name":"dataEnd","nativeSrc":"1335:7:89","nodeType":"YulIdentifier","src":"1335:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1282:28:89","nodeType":"YulIdentifier","src":"1282:28:89"},"nativeSrc":"1282:61:89","nodeType":"YulFunctionCall","src":"1282:61:89"},"variableNames":[{"name":"value0","nativeSrc":"1272:6:89","nodeType":"YulIdentifier","src":"1272:6:89"}]},{"nativeSrc":"1352:41:89","nodeType":"YulVariableDeclaration","src":"1352:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1378:9:89","nodeType":"YulIdentifier","src":"1378:9:89"},{"kind":"number","nativeSrc":"1389:2:89","nodeType":"YulLiteral","src":"1389:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1374:3:89","nodeType":"YulIdentifier","src":"1374:3:89"},"nativeSrc":"1374:18:89","nodeType":"YulFunctionCall","src":"1374:18:89"}],"functionName":{"name":"mload","nativeSrc":"1368:5:89","nodeType":"YulIdentifier","src":"1368:5:89"},"nativeSrc":"1368:25:89","nodeType":"YulFunctionCall","src":"1368:25:89"},"variables":[{"name":"offset_1","nativeSrc":"1356:8:89","nodeType":"YulTypedName","src":"1356:8:89","type":""}]},{"body":{"nativeSrc":"1438:16:89","nodeType":"YulBlock","src":"1438:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1447:1:89","nodeType":"YulLiteral","src":"1447:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1450:1:89","nodeType":"YulLiteral","src":"1450:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1440:6:89","nodeType":"YulIdentifier","src":"1440:6:89"},"nativeSrc":"1440:12:89","nodeType":"YulFunctionCall","src":"1440:12:89"},"nativeSrc":"1440:12:89","nodeType":"YulExpressionStatement","src":"1440:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1408:8:89","nodeType":"YulIdentifier","src":"1408:8:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1426:2:89","nodeType":"YulLiteral","src":"1426:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"1430:1:89","nodeType":"YulLiteral","src":"1430:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1422:3:89","nodeType":"YulIdentifier","src":"1422:3:89"},"nativeSrc":"1422:10:89","nodeType":"YulFunctionCall","src":"1422:10:89"},{"kind":"number","nativeSrc":"1434:1:89","nodeType":"YulLiteral","src":"1434:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1418:3:89","nodeType":"YulIdentifier","src":"1418:3:89"},"nativeSrc":"1418:18:89","nodeType":"YulFunctionCall","src":"1418:18:89"}],"functionName":{"name":"gt","nativeSrc":"1405:2:89","nodeType":"YulIdentifier","src":"1405:2:89"},"nativeSrc":"1405:32:89","nodeType":"YulFunctionCall","src":"1405:32:89"},"nativeSrc":"1402:52:89","nodeType":"YulIf","src":"1402:52:89"},{"nativeSrc":"1463:73:89","nodeType":"YulAssignment","src":"1463:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1506:9:89","nodeType":"YulIdentifier","src":"1506:9:89"},{"name":"offset_1","nativeSrc":"1517:8:89","nodeType":"YulIdentifier","src":"1517:8:89"}],"functionName":{"name":"add","nativeSrc":"1502:3:89","nodeType":"YulIdentifier","src":"1502:3:89"},"nativeSrc":"1502:24:89","nodeType":"YulFunctionCall","src":"1502:24:89"},{"name":"dataEnd","nativeSrc":"1528:7:89","nodeType":"YulIdentifier","src":"1528:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1473:28:89","nodeType":"YulIdentifier","src":"1473:28:89"},"nativeSrc":"1473:63:89","nodeType":"YulFunctionCall","src":"1473:63:89"},"variableNames":[{"name":"value1","nativeSrc":"1463:6:89","nodeType":"YulIdentifier","src":"1463:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nativeSrc":"985:557:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1061:9:89","nodeType":"YulTypedName","src":"1061:9:89","type":""},{"name":"dataEnd","nativeSrc":"1072:7:89","nodeType":"YulTypedName","src":"1072:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1084:6:89","nodeType":"YulTypedName","src":"1084:6:89","type":""},{"name":"value1","nativeSrc":"1092:6:89","nodeType":"YulTypedName","src":"1092:6:89","type":""}],"src":"985:557:89"},{"body":{"nativeSrc":"1602:325:89","nodeType":"YulBlock","src":"1602:325:89","statements":[{"nativeSrc":"1612:22:89","nodeType":"YulAssignment","src":"1612:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"1626:1:89","nodeType":"YulLiteral","src":"1626:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"1629:4:89","nodeType":"YulIdentifier","src":"1629:4:89"}],"functionName":{"name":"shr","nativeSrc":"1622:3:89","nodeType":"YulIdentifier","src":"1622:3:89"},"nativeSrc":"1622:12:89","nodeType":"YulFunctionCall","src":"1622:12:89"},"variableNames":[{"name":"length","nativeSrc":"1612:6:89","nodeType":"YulIdentifier","src":"1612:6:89"}]},{"nativeSrc":"1643:38:89","nodeType":"YulVariableDeclaration","src":"1643:38:89","value":{"arguments":[{"name":"data","nativeSrc":"1673:4:89","nodeType":"YulIdentifier","src":"1673:4:89"},{"kind":"number","nativeSrc":"1679:1:89","nodeType":"YulLiteral","src":"1679:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1669:3:89","nodeType":"YulIdentifier","src":"1669:3:89"},"nativeSrc":"1669:12:89","nodeType":"YulFunctionCall","src":"1669:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"1647:18:89","nodeType":"YulTypedName","src":"1647:18:89","type":""}]},{"body":{"nativeSrc":"1720:31:89","nodeType":"YulBlock","src":"1720:31:89","statements":[{"nativeSrc":"1722:27:89","nodeType":"YulAssignment","src":"1722:27:89","value":{"arguments":[{"name":"length","nativeSrc":"1736:6:89","nodeType":"YulIdentifier","src":"1736:6:89"},{"kind":"number","nativeSrc":"1744:4:89","nodeType":"YulLiteral","src":"1744:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"1732:3:89","nodeType":"YulIdentifier","src":"1732:3:89"},"nativeSrc":"1732:17:89","nodeType":"YulFunctionCall","src":"1732:17:89"},"variableNames":[{"name":"length","nativeSrc":"1722:6:89","nodeType":"YulIdentifier","src":"1722:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1700:18:89","nodeType":"YulIdentifier","src":"1700:18:89"}],"functionName":{"name":"iszero","nativeSrc":"1693:6:89","nodeType":"YulIdentifier","src":"1693:6:89"},"nativeSrc":"1693:26:89","nodeType":"YulFunctionCall","src":"1693:26:89"},"nativeSrc":"1690:61:89","nodeType":"YulIf","src":"1690:61:89"},{"body":{"nativeSrc":"1810:111:89","nodeType":"YulBlock","src":"1810:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1831:1:89","nodeType":"YulLiteral","src":"1831:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1838:3:89","nodeType":"YulLiteral","src":"1838:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"1843:10:89","nodeType":"YulLiteral","src":"1843:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1834:3:89","nodeType":"YulIdentifier","src":"1834:3:89"},"nativeSrc":"1834:20:89","nodeType":"YulFunctionCall","src":"1834:20:89"}],"functionName":{"name":"mstore","nativeSrc":"1824:6:89","nodeType":"YulIdentifier","src":"1824:6:89"},"nativeSrc":"1824:31:89","nodeType":"YulFunctionCall","src":"1824:31:89"},"nativeSrc":"1824:31:89","nodeType":"YulExpressionStatement","src":"1824:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1875:1:89","nodeType":"YulLiteral","src":"1875:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"1878:4:89","nodeType":"YulLiteral","src":"1878:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"1868:6:89","nodeType":"YulIdentifier","src":"1868:6:89"},"nativeSrc":"1868:15:89","nodeType":"YulFunctionCall","src":"1868:15:89"},"nativeSrc":"1868:15:89","nodeType":"YulExpressionStatement","src":"1868:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1903:1:89","nodeType":"YulLiteral","src":"1903:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1906:4:89","nodeType":"YulLiteral","src":"1906:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1896:6:89","nodeType":"YulIdentifier","src":"1896:6:89"},"nativeSrc":"1896:15:89","nodeType":"YulFunctionCall","src":"1896:15:89"},"nativeSrc":"1896:15:89","nodeType":"YulExpressionStatement","src":"1896:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1766:18:89","nodeType":"YulIdentifier","src":"1766:18:89"},{"arguments":[{"name":"length","nativeSrc":"1789:6:89","nodeType":"YulIdentifier","src":"1789:6:89"},{"kind":"number","nativeSrc":"1797:2:89","nodeType":"YulLiteral","src":"1797:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"1786:2:89","nodeType":"YulIdentifier","src":"1786:2:89"},"nativeSrc":"1786:14:89","nodeType":"YulFunctionCall","src":"1786:14:89"}],"functionName":{"name":"eq","nativeSrc":"1763:2:89","nodeType":"YulIdentifier","src":"1763:2:89"},"nativeSrc":"1763:38:89","nodeType":"YulFunctionCall","src":"1763:38:89"},"nativeSrc":"1760:161:89","nodeType":"YulIf","src":"1760:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"1547:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1582:4:89","nodeType":"YulTypedName","src":"1582:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1591:6:89","nodeType":"YulTypedName","src":"1591:6:89","type":""}],"src":"1547:380:89"},{"body":{"nativeSrc":"1988:65:89","nodeType":"YulBlock","src":"1988:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2005:1:89","nodeType":"YulLiteral","src":"2005:1:89","type":"","value":"0"},{"name":"ptr","nativeSrc":"2008:3:89","nodeType":"YulIdentifier","src":"2008:3:89"}],"functionName":{"name":"mstore","nativeSrc":"1998:6:89","nodeType":"YulIdentifier","src":"1998:6:89"},"nativeSrc":"1998:14:89","nodeType":"YulFunctionCall","src":"1998:14:89"},"nativeSrc":"1998:14:89","nodeType":"YulExpressionStatement","src":"1998:14:89"},{"nativeSrc":"2021:26:89","nodeType":"YulAssignment","src":"2021:26:89","value":{"arguments":[{"kind":"number","nativeSrc":"2039:1:89","nodeType":"YulLiteral","src":"2039:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2042:4:89","nodeType":"YulLiteral","src":"2042:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2029:9:89","nodeType":"YulIdentifier","src":"2029:9:89"},"nativeSrc":"2029:18:89","nodeType":"YulFunctionCall","src":"2029:18:89"},"variableNames":[{"name":"data","nativeSrc":"2021:4:89","nodeType":"YulIdentifier","src":"2021:4:89"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"1932:121:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"1971:3:89","nodeType":"YulTypedName","src":"1971:3:89","type":""}],"returnVariables":[{"name":"data","nativeSrc":"1979:4:89","nodeType":"YulTypedName","src":"1979:4:89","type":""}],"src":"1932:121:89"},{"body":{"nativeSrc":"2139:437:89","nodeType":"YulBlock","src":"2139:437:89","statements":[{"body":{"nativeSrc":"2172:398:89","nodeType":"YulBlock","src":"2172:398:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2193:1:89","nodeType":"YulLiteral","src":"2193:1:89","type":"","value":"0"},{"name":"array","nativeSrc":"2196:5:89","nodeType":"YulIdentifier","src":"2196:5:89"}],"functionName":{"name":"mstore","nativeSrc":"2186:6:89","nodeType":"YulIdentifier","src":"2186:6:89"},"nativeSrc":"2186:16:89","nodeType":"YulFunctionCall","src":"2186:16:89"},"nativeSrc":"2186:16:89","nodeType":"YulExpressionStatement","src":"2186:16:89"},{"nativeSrc":"2215:30:89","nodeType":"YulVariableDeclaration","src":"2215:30:89","value":{"arguments":[{"kind":"number","nativeSrc":"2237:1:89","nodeType":"YulLiteral","src":"2237:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2240:4:89","nodeType":"YulLiteral","src":"2240:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2227:9:89","nodeType":"YulIdentifier","src":"2227:9:89"},"nativeSrc":"2227:18:89","nodeType":"YulFunctionCall","src":"2227:18:89"},"variables":[{"name":"data","nativeSrc":"2219:4:89","nodeType":"YulTypedName","src":"2219:4:89","type":""}]},{"nativeSrc":"2258:57:89","nodeType":"YulVariableDeclaration","src":"2258:57:89","value":{"arguments":[{"name":"data","nativeSrc":"2281:4:89","nodeType":"YulIdentifier","src":"2281:4:89"},{"arguments":[{"kind":"number","nativeSrc":"2291:1:89","nodeType":"YulLiteral","src":"2291:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"2298:10:89","nodeType":"YulIdentifier","src":"2298:10:89"},{"kind":"number","nativeSrc":"2310:2:89","nodeType":"YulLiteral","src":"2310:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2294:3:89","nodeType":"YulIdentifier","src":"2294:3:89"},"nativeSrc":"2294:19:89","nodeType":"YulFunctionCall","src":"2294:19:89"}],"functionName":{"name":"shr","nativeSrc":"2287:3:89","nodeType":"YulIdentifier","src":"2287:3:89"},"nativeSrc":"2287:27:89","nodeType":"YulFunctionCall","src":"2287:27:89"}],"functionName":{"name":"add","nativeSrc":"2277:3:89","nodeType":"YulIdentifier","src":"2277:3:89"},"nativeSrc":"2277:38:89","nodeType":"YulFunctionCall","src":"2277:38:89"},"variables":[{"name":"deleteStart","nativeSrc":"2262:11:89","nodeType":"YulTypedName","src":"2262:11:89","type":""}]},{"body":{"nativeSrc":"2352:23:89","nodeType":"YulBlock","src":"2352:23:89","statements":[{"nativeSrc":"2354:19:89","nodeType":"YulAssignment","src":"2354:19:89","value":{"name":"data","nativeSrc":"2369:4:89","nodeType":"YulIdentifier","src":"2369:4:89"},"variableNames":[{"name":"deleteStart","nativeSrc":"2354:11:89","nodeType":"YulIdentifier","src":"2354:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"2334:10:89","nodeType":"YulIdentifier","src":"2334:10:89"},{"kind":"number","nativeSrc":"2346:4:89","nodeType":"YulLiteral","src":"2346:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"2331:2:89","nodeType":"YulIdentifier","src":"2331:2:89"},"nativeSrc":"2331:20:89","nodeType":"YulFunctionCall","src":"2331:20:89"},"nativeSrc":"2328:47:89","nodeType":"YulIf","src":"2328:47:89"},{"nativeSrc":"2388:41:89","nodeType":"YulVariableDeclaration","src":"2388:41:89","value":{"arguments":[{"name":"data","nativeSrc":"2402:4:89","nodeType":"YulIdentifier","src":"2402:4:89"},{"arguments":[{"kind":"number","nativeSrc":"2412:1:89","nodeType":"YulLiteral","src":"2412:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"2419:3:89","nodeType":"YulIdentifier","src":"2419:3:89"},{"kind":"number","nativeSrc":"2424:2:89","nodeType":"YulLiteral","src":"2424:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2415:3:89","nodeType":"YulIdentifier","src":"2415:3:89"},"nativeSrc":"2415:12:89","nodeType":"YulFunctionCall","src":"2415:12:89"}],"functionName":{"name":"shr","nativeSrc":"2408:3:89","nodeType":"YulIdentifier","src":"2408:3:89"},"nativeSrc":"2408:20:89","nodeType":"YulFunctionCall","src":"2408:20:89"}],"functionName":{"name":"add","nativeSrc":"2398:3:89","nodeType":"YulIdentifier","src":"2398:3:89"},"nativeSrc":"2398:31:89","nodeType":"YulFunctionCall","src":"2398:31:89"},"variables":[{"name":"_1","nativeSrc":"2392:2:89","nodeType":"YulTypedName","src":"2392:2:89","type":""}]},{"nativeSrc":"2442:24:89","nodeType":"YulVariableDeclaration","src":"2442:24:89","value":{"name":"deleteStart","nativeSrc":"2455:11:89","nodeType":"YulIdentifier","src":"2455:11:89"},"variables":[{"name":"start","nativeSrc":"2446:5:89","nodeType":"YulTypedName","src":"2446:5:89","type":""}]},{"body":{"nativeSrc":"2540:20:89","nodeType":"YulBlock","src":"2540:20:89","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"2549:5:89","nodeType":"YulIdentifier","src":"2549:5:89"},{"kind":"number","nativeSrc":"2556:1:89","nodeType":"YulLiteral","src":"2556:1:89","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"2542:6:89","nodeType":"YulIdentifier","src":"2542:6:89"},"nativeSrc":"2542:16:89","nodeType":"YulFunctionCall","src":"2542:16:89"},"nativeSrc":"2542:16:89","nodeType":"YulExpressionStatement","src":"2542:16:89"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"2490:5:89","nodeType":"YulIdentifier","src":"2490:5:89"},{"name":"_1","nativeSrc":"2497:2:89","nodeType":"YulIdentifier","src":"2497:2:89"}],"functionName":{"name":"lt","nativeSrc":"2487:2:89","nodeType":"YulIdentifier","src":"2487:2:89"},"nativeSrc":"2487:13:89","nodeType":"YulFunctionCall","src":"2487:13:89"},"nativeSrc":"2479:81:89","nodeType":"YulForLoop","post":{"nativeSrc":"2501:26:89","nodeType":"YulBlock","src":"2501:26:89","statements":[{"nativeSrc":"2503:22:89","nodeType":"YulAssignment","src":"2503:22:89","value":{"arguments":[{"name":"start","nativeSrc":"2516:5:89","nodeType":"YulIdentifier","src":"2516:5:89"},{"kind":"number","nativeSrc":"2523:1:89","nodeType":"YulLiteral","src":"2523:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2512:3:89","nodeType":"YulIdentifier","src":"2512:3:89"},"nativeSrc":"2512:13:89","nodeType":"YulFunctionCall","src":"2512:13:89"},"variableNames":[{"name":"start","nativeSrc":"2503:5:89","nodeType":"YulIdentifier","src":"2503:5:89"}]}]},"pre":{"nativeSrc":"2483:3:89","nodeType":"YulBlock","src":"2483:3:89","statements":[]},"src":"2479:81:89"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2155:3:89","nodeType":"YulIdentifier","src":"2155:3:89"},{"kind":"number","nativeSrc":"2160:2:89","nodeType":"YulLiteral","src":"2160:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2152:2:89","nodeType":"YulIdentifier","src":"2152:2:89"},"nativeSrc":"2152:11:89","nodeType":"YulFunctionCall","src":"2152:11:89"},"nativeSrc":"2149:421:89","nodeType":"YulIf","src":"2149:421:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2058:518:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2111:5:89","nodeType":"YulTypedName","src":"2111:5:89","type":""},{"name":"len","nativeSrc":"2118:3:89","nodeType":"YulTypedName","src":"2118:3:89","type":""},{"name":"startIndex","nativeSrc":"2123:10:89","nodeType":"YulTypedName","src":"2123:10:89","type":""}],"src":"2058:518:89"},{"body":{"nativeSrc":"2666:81:89","nodeType":"YulBlock","src":"2666:81:89","statements":[{"nativeSrc":"2676:65:89","nodeType":"YulAssignment","src":"2676:65:89","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"2691:4:89","nodeType":"YulIdentifier","src":"2691:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2709:1:89","nodeType":"YulLiteral","src":"2709:1:89","type":"","value":"3"},{"name":"len","nativeSrc":"2712:3:89","nodeType":"YulIdentifier","src":"2712:3:89"}],"functionName":{"name":"shl","nativeSrc":"2705:3:89","nodeType":"YulIdentifier","src":"2705:3:89"},"nativeSrc":"2705:11:89","nodeType":"YulFunctionCall","src":"2705:11:89"},{"arguments":[{"kind":"number","nativeSrc":"2722:1:89","nodeType":"YulLiteral","src":"2722:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2718:3:89","nodeType":"YulIdentifier","src":"2718:3:89"},"nativeSrc":"2718:6:89","nodeType":"YulFunctionCall","src":"2718:6:89"}],"functionName":{"name":"shr","nativeSrc":"2701:3:89","nodeType":"YulIdentifier","src":"2701:3:89"},"nativeSrc":"2701:24:89","nodeType":"YulFunctionCall","src":"2701:24:89"}],"functionName":{"name":"not","nativeSrc":"2697:3:89","nodeType":"YulIdentifier","src":"2697:3:89"},"nativeSrc":"2697:29:89","nodeType":"YulFunctionCall","src":"2697:29:89"}],"functionName":{"name":"and","nativeSrc":"2687:3:89","nodeType":"YulIdentifier","src":"2687:3:89"},"nativeSrc":"2687:40:89","nodeType":"YulFunctionCall","src":"2687:40:89"},{"arguments":[{"kind":"number","nativeSrc":"2733:1:89","nodeType":"YulLiteral","src":"2733:1:89","type":"","value":"1"},{"name":"len","nativeSrc":"2736:3:89","nodeType":"YulIdentifier","src":"2736:3:89"}],"functionName":{"name":"shl","nativeSrc":"2729:3:89","nodeType":"YulIdentifier","src":"2729:3:89"},"nativeSrc":"2729:11:89","nodeType":"YulFunctionCall","src":"2729:11:89"}],"functionName":{"name":"or","nativeSrc":"2684:2:89","nodeType":"YulIdentifier","src":"2684:2:89"},"nativeSrc":"2684:57:89","nodeType":"YulFunctionCall","src":"2684:57:89"},"variableNames":[{"name":"used","nativeSrc":"2676:4:89","nodeType":"YulIdentifier","src":"2676:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2581:166:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2643:4:89","nodeType":"YulTypedName","src":"2643:4:89","type":""},{"name":"len","nativeSrc":"2649:3:89","nodeType":"YulTypedName","src":"2649:3:89","type":""}],"returnVariables":[{"name":"used","nativeSrc":"2657:4:89","nodeType":"YulTypedName","src":"2657:4:89","type":""}],"src":"2581:166:89"},{"body":{"nativeSrc":"2848:1203:89","nodeType":"YulBlock","src":"2848:1203:89","statements":[{"nativeSrc":"2858:24:89","nodeType":"YulVariableDeclaration","src":"2858:24:89","value":{"arguments":[{"name":"src","nativeSrc":"2878:3:89","nodeType":"YulIdentifier","src":"2878:3:89"}],"functionName":{"name":"mload","nativeSrc":"2872:5:89","nodeType":"YulIdentifier","src":"2872:5:89"},"nativeSrc":"2872:10:89","nodeType":"YulFunctionCall","src":"2872:10:89"},"variables":[{"name":"newLen","nativeSrc":"2862:6:89","nodeType":"YulTypedName","src":"2862:6:89","type":""}]},{"body":{"nativeSrc":"2925:22:89","nodeType":"YulBlock","src":"2925:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2927:16:89","nodeType":"YulIdentifier","src":"2927:16:89"},"nativeSrc":"2927:18:89","nodeType":"YulFunctionCall","src":"2927:18:89"},"nativeSrc":"2927:18:89","nodeType":"YulExpressionStatement","src":"2927:18:89"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"2897:6:89","nodeType":"YulIdentifier","src":"2897:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2913:2:89","nodeType":"YulLiteral","src":"2913:2:89","type":"","value":"64"},{"kind":"number","nativeSrc":"2917:1:89","nodeType":"YulLiteral","src":"2917:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2909:3:89","nodeType":"YulIdentifier","src":"2909:3:89"},"nativeSrc":"2909:10:89","nodeType":"YulFunctionCall","src":"2909:10:89"},{"kind":"number","nativeSrc":"2921:1:89","nodeType":"YulLiteral","src":"2921:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2905:3:89","nodeType":"YulIdentifier","src":"2905:3:89"},"nativeSrc":"2905:18:89","nodeType":"YulFunctionCall","src":"2905:18:89"}],"functionName":{"name":"gt","nativeSrc":"2894:2:89","nodeType":"YulIdentifier","src":"2894:2:89"},"nativeSrc":"2894:30:89","nodeType":"YulFunctionCall","src":"2894:30:89"},"nativeSrc":"2891:56:89","nodeType":"YulIf","src":"2891:56:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3000:4:89","nodeType":"YulIdentifier","src":"3000:4:89"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3038:4:89","nodeType":"YulIdentifier","src":"3038:4:89"}],"functionName":{"name":"sload","nativeSrc":"3032:5:89","nodeType":"YulIdentifier","src":"3032:5:89"},"nativeSrc":"3032:11:89","nodeType":"YulFunctionCall","src":"3032:11:89"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"3006:25:89","nodeType":"YulIdentifier","src":"3006:25:89"},"nativeSrc":"3006:38:89","nodeType":"YulFunctionCall","src":"3006:38:89"},{"name":"newLen","nativeSrc":"3046:6:89","nodeType":"YulIdentifier","src":"3046:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2956:43:89","nodeType":"YulIdentifier","src":"2956:43:89"},"nativeSrc":"2956:97:89","nodeType":"YulFunctionCall","src":"2956:97:89"},"nativeSrc":"2956:97:89","nodeType":"YulExpressionStatement","src":"2956:97:89"},{"nativeSrc":"3062:18:89","nodeType":"YulVariableDeclaration","src":"3062:18:89","value":{"kind":"number","nativeSrc":"3079:1:89","nodeType":"YulLiteral","src":"3079:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"3066:9:89","nodeType":"YulTypedName","src":"3066:9:89","type":""}]},{"nativeSrc":"3089:17:89","nodeType":"YulAssignment","src":"3089:17:89","value":{"kind":"number","nativeSrc":"3102:4:89","nodeType":"YulLiteral","src":"3102:4:89","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"3089:9:89","nodeType":"YulIdentifier","src":"3089:9:89"}]},{"cases":[{"body":{"nativeSrc":"3152:642:89","nodeType":"YulBlock","src":"3152:642:89","statements":[{"nativeSrc":"3166:35:89","nodeType":"YulVariableDeclaration","src":"3166:35:89","value":{"arguments":[{"name":"newLen","nativeSrc":"3185:6:89","nodeType":"YulIdentifier","src":"3185:6:89"},{"arguments":[{"kind":"number","nativeSrc":"3197:2:89","nodeType":"YulLiteral","src":"3197:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3193:3:89","nodeType":"YulIdentifier","src":"3193:3:89"},"nativeSrc":"3193:7:89","nodeType":"YulFunctionCall","src":"3193:7:89"}],"functionName":{"name":"and","nativeSrc":"3181:3:89","nodeType":"YulIdentifier","src":"3181:3:89"},"nativeSrc":"3181:20:89","nodeType":"YulFunctionCall","src":"3181:20:89"},"variables":[{"name":"loopEnd","nativeSrc":"3170:7:89","nodeType":"YulTypedName","src":"3170:7:89","type":""}]},{"nativeSrc":"3214:49:89","nodeType":"YulVariableDeclaration","src":"3214:49:89","value":{"arguments":[{"name":"slot","nativeSrc":"3258:4:89","nodeType":"YulIdentifier","src":"3258:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"3228:29:89","nodeType":"YulIdentifier","src":"3228:29:89"},"nativeSrc":"3228:35:89","nodeType":"YulFunctionCall","src":"3228:35:89"},"variables":[{"name":"dstPtr","nativeSrc":"3218:6:89","nodeType":"YulTypedName","src":"3218:6:89","type":""}]},{"nativeSrc":"3276:10:89","nodeType":"YulVariableDeclaration","src":"3276:10:89","value":{"kind":"number","nativeSrc":"3285:1:89","nodeType":"YulLiteral","src":"3285:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3280:1:89","nodeType":"YulTypedName","src":"3280:1:89","type":""}]},{"body":{"nativeSrc":"3356:165:89","nodeType":"YulBlock","src":"3356:165:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3381:6:89","nodeType":"YulIdentifier","src":"3381:6:89"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3399:3:89","nodeType":"YulIdentifier","src":"3399:3:89"},{"name":"srcOffset","nativeSrc":"3404:9:89","nodeType":"YulIdentifier","src":"3404:9:89"}],"functionName":{"name":"add","nativeSrc":"3395:3:89","nodeType":"YulIdentifier","src":"3395:3:89"},"nativeSrc":"3395:19:89","nodeType":"YulFunctionCall","src":"3395:19:89"}],"functionName":{"name":"mload","nativeSrc":"3389:5:89","nodeType":"YulIdentifier","src":"3389:5:89"},"nativeSrc":"3389:26:89","nodeType":"YulFunctionCall","src":"3389:26:89"}],"functionName":{"name":"sstore","nativeSrc":"3374:6:89","nodeType":"YulIdentifier","src":"3374:6:89"},"nativeSrc":"3374:42:89","nodeType":"YulFunctionCall","src":"3374:42:89"},"nativeSrc":"3374:42:89","nodeType":"YulExpressionStatement","src":"3374:42:89"},{"nativeSrc":"3433:24:89","nodeType":"YulAssignment","src":"3433:24:89","value":{"arguments":[{"name":"dstPtr","nativeSrc":"3447:6:89","nodeType":"YulIdentifier","src":"3447:6:89"},{"kind":"number","nativeSrc":"3455:1:89","nodeType":"YulLiteral","src":"3455:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3443:3:89","nodeType":"YulIdentifier","src":"3443:3:89"},"nativeSrc":"3443:14:89","nodeType":"YulFunctionCall","src":"3443:14:89"},"variableNames":[{"name":"dstPtr","nativeSrc":"3433:6:89","nodeType":"YulIdentifier","src":"3433:6:89"}]},{"nativeSrc":"3474:33:89","nodeType":"YulAssignment","src":"3474:33:89","value":{"arguments":[{"name":"srcOffset","nativeSrc":"3491:9:89","nodeType":"YulIdentifier","src":"3491:9:89"},{"kind":"number","nativeSrc":"3502:4:89","nodeType":"YulLiteral","src":"3502:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3487:3:89","nodeType":"YulIdentifier","src":"3487:3:89"},"nativeSrc":"3487:20:89","nodeType":"YulFunctionCall","src":"3487:20:89"},"variableNames":[{"name":"srcOffset","nativeSrc":"3474:9:89","nodeType":"YulIdentifier","src":"3474:9:89"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3310:1:89","nodeType":"YulIdentifier","src":"3310:1:89"},{"name":"loopEnd","nativeSrc":"3313:7:89","nodeType":"YulIdentifier","src":"3313:7:89"}],"functionName":{"name":"lt","nativeSrc":"3307:2:89","nodeType":"YulIdentifier","src":"3307:2:89"},"nativeSrc":"3307:14:89","nodeType":"YulFunctionCall","src":"3307:14:89"},"nativeSrc":"3299:222:89","nodeType":"YulForLoop","post":{"nativeSrc":"3322:21:89","nodeType":"YulBlock","src":"3322:21:89","statements":[{"nativeSrc":"3324:17:89","nodeType":"YulAssignment","src":"3324:17:89","value":{"arguments":[{"name":"i","nativeSrc":"3333:1:89","nodeType":"YulIdentifier","src":"3333:1:89"},{"kind":"number","nativeSrc":"3336:4:89","nodeType":"YulLiteral","src":"3336:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3329:3:89","nodeType":"YulIdentifier","src":"3329:3:89"},"nativeSrc":"3329:12:89","nodeType":"YulFunctionCall","src":"3329:12:89"},"variableNames":[{"name":"i","nativeSrc":"3324:1:89","nodeType":"YulIdentifier","src":"3324:1:89"}]}]},"pre":{"nativeSrc":"3303:3:89","nodeType":"YulBlock","src":"3303:3:89","statements":[]},"src":"3299:222:89"},{"body":{"nativeSrc":"3569:166:89","nodeType":"YulBlock","src":"3569:166:89","statements":[{"nativeSrc":"3587:43:89","nodeType":"YulVariableDeclaration","src":"3587:43:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3614:3:89","nodeType":"YulIdentifier","src":"3614:3:89"},{"name":"srcOffset","nativeSrc":"3619:9:89","nodeType":"YulIdentifier","src":"3619:9:89"}],"functionName":{"name":"add","nativeSrc":"3610:3:89","nodeType":"YulIdentifier","src":"3610:3:89"},"nativeSrc":"3610:19:89","nodeType":"YulFunctionCall","src":"3610:19:89"}],"functionName":{"name":"mload","nativeSrc":"3604:5:89","nodeType":"YulIdentifier","src":"3604:5:89"},"nativeSrc":"3604:26:89","nodeType":"YulFunctionCall","src":"3604:26:89"},"variables":[{"name":"lastValue","nativeSrc":"3591:9:89","nodeType":"YulTypedName","src":"3591:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3654:6:89","nodeType":"YulIdentifier","src":"3654:6:89"},{"arguments":[{"name":"lastValue","nativeSrc":"3666:9:89","nodeType":"YulIdentifier","src":"3666:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3693:1:89","nodeType":"YulLiteral","src":"3693:1:89","type":"","value":"3"},{"name":"newLen","nativeSrc":"3696:6:89","nodeType":"YulIdentifier","src":"3696:6:89"}],"functionName":{"name":"shl","nativeSrc":"3689:3:89","nodeType":"YulIdentifier","src":"3689:3:89"},"nativeSrc":"3689:14:89","nodeType":"YulFunctionCall","src":"3689:14:89"},{"kind":"number","nativeSrc":"3705:3:89","nodeType":"YulLiteral","src":"3705:3:89","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"3685:3:89","nodeType":"YulIdentifier","src":"3685:3:89"},"nativeSrc":"3685:24:89","nodeType":"YulFunctionCall","src":"3685:24:89"},{"arguments":[{"kind":"number","nativeSrc":"3715:1:89","nodeType":"YulLiteral","src":"3715:1:89","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3711:3:89","nodeType":"YulIdentifier","src":"3711:3:89"},"nativeSrc":"3711:6:89","nodeType":"YulFunctionCall","src":"3711:6:89"}],"functionName":{"name":"shr","nativeSrc":"3681:3:89","nodeType":"YulIdentifier","src":"3681:3:89"},"nativeSrc":"3681:37:89","nodeType":"YulFunctionCall","src":"3681:37:89"}],"functionName":{"name":"not","nativeSrc":"3677:3:89","nodeType":"YulIdentifier","src":"3677:3:89"},"nativeSrc":"3677:42:89","nodeType":"YulFunctionCall","src":"3677:42:89"}],"functionName":{"name":"and","nativeSrc":"3662:3:89","nodeType":"YulIdentifier","src":"3662:3:89"},"nativeSrc":"3662:58:89","nodeType":"YulFunctionCall","src":"3662:58:89"}],"functionName":{"name":"sstore","nativeSrc":"3647:6:89","nodeType":"YulIdentifier","src":"3647:6:89"},"nativeSrc":"3647:74:89","nodeType":"YulFunctionCall","src":"3647:74:89"},"nativeSrc":"3647:74:89","nodeType":"YulExpressionStatement","src":"3647:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"3540:7:89","nodeType":"YulIdentifier","src":"3540:7:89"},{"name":"newLen","nativeSrc":"3549:6:89","nodeType":"YulIdentifier","src":"3549:6:89"}],"functionName":{"name":"lt","nativeSrc":"3537:2:89","nodeType":"YulIdentifier","src":"3537:2:89"},"nativeSrc":"3537:19:89","nodeType":"YulFunctionCall","src":"3537:19:89"},"nativeSrc":"3534:201:89","nodeType":"YulIf","src":"3534:201:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3755:4:89","nodeType":"YulIdentifier","src":"3755:4:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3769:1:89","nodeType":"YulLiteral","src":"3769:1:89","type":"","value":"1"},{"name":"newLen","nativeSrc":"3772:6:89","nodeType":"YulIdentifier","src":"3772:6:89"}],"functionName":{"name":"shl","nativeSrc":"3765:3:89","nodeType":"YulIdentifier","src":"3765:3:89"},"nativeSrc":"3765:14:89","nodeType":"YulFunctionCall","src":"3765:14:89"},{"kind":"number","nativeSrc":"3781:1:89","nodeType":"YulLiteral","src":"3781:1:89","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3761:3:89","nodeType":"YulIdentifier","src":"3761:3:89"},"nativeSrc":"3761:22:89","nodeType":"YulFunctionCall","src":"3761:22:89"}],"functionName":{"name":"sstore","nativeSrc":"3748:6:89","nodeType":"YulIdentifier","src":"3748:6:89"},"nativeSrc":"3748:36:89","nodeType":"YulFunctionCall","src":"3748:36:89"},"nativeSrc":"3748:36:89","nodeType":"YulExpressionStatement","src":"3748:36:89"}]},"nativeSrc":"3145:649:89","nodeType":"YulCase","src":"3145:649:89","value":{"kind":"number","nativeSrc":"3150:1:89","nodeType":"YulLiteral","src":"3150:1:89","type":"","value":"1"}},{"body":{"nativeSrc":"3811:234:89","nodeType":"YulBlock","src":"3811:234:89","statements":[{"nativeSrc":"3825:14:89","nodeType":"YulVariableDeclaration","src":"3825:14:89","value":{"kind":"number","nativeSrc":"3838:1:89","nodeType":"YulLiteral","src":"3838:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3829:5:89","nodeType":"YulTypedName","src":"3829:5:89","type":""}]},{"body":{"nativeSrc":"3874:67:89","nodeType":"YulBlock","src":"3874:67:89","statements":[{"nativeSrc":"3892:35:89","nodeType":"YulAssignment","src":"3892:35:89","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3911:3:89","nodeType":"YulIdentifier","src":"3911:3:89"},{"name":"srcOffset","nativeSrc":"3916:9:89","nodeType":"YulIdentifier","src":"3916:9:89"}],"functionName":{"name":"add","nativeSrc":"3907:3:89","nodeType":"YulIdentifier","src":"3907:3:89"},"nativeSrc":"3907:19:89","nodeType":"YulFunctionCall","src":"3907:19:89"}],"functionName":{"name":"mload","nativeSrc":"3901:5:89","nodeType":"YulIdentifier","src":"3901:5:89"},"nativeSrc":"3901:26:89","nodeType":"YulFunctionCall","src":"3901:26:89"},"variableNames":[{"name":"value","nativeSrc":"3892:5:89","nodeType":"YulIdentifier","src":"3892:5:89"}]}]},"condition":{"name":"newLen","nativeSrc":"3855:6:89","nodeType":"YulIdentifier","src":"3855:6:89"},"nativeSrc":"3852:89:89","nodeType":"YulIf","src":"3852:89:89"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3961:4:89","nodeType":"YulIdentifier","src":"3961:4:89"},{"arguments":[{"name":"value","nativeSrc":"4020:5:89","nodeType":"YulIdentifier","src":"4020:5:89"},{"name":"newLen","nativeSrc":"4027:6:89","nodeType":"YulIdentifier","src":"4027:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"3967:52:89","nodeType":"YulIdentifier","src":"3967:52:89"},"nativeSrc":"3967:67:89","nodeType":"YulFunctionCall","src":"3967:67:89"}],"functionName":{"name":"sstore","nativeSrc":"3954:6:89","nodeType":"YulIdentifier","src":"3954:6:89"},"nativeSrc":"3954:81:89","nodeType":"YulFunctionCall","src":"3954:81:89"},"nativeSrc":"3954:81:89","nodeType":"YulExpressionStatement","src":"3954:81:89"}]},"nativeSrc":"3803:242:89","nodeType":"YulCase","src":"3803:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"3125:6:89","nodeType":"YulIdentifier","src":"3125:6:89"},{"kind":"number","nativeSrc":"3133:2:89","nodeType":"YulLiteral","src":"3133:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3122:2:89","nodeType":"YulIdentifier","src":"3122:2:89"},"nativeSrc":"3122:14:89","nodeType":"YulFunctionCall","src":"3122:14:89"},"nativeSrc":"3115:930:89","nodeType":"YulSwitch","src":"3115:930:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"2752:1299:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"2833:4:89","nodeType":"YulTypedName","src":"2833:4:89","type":""},{"name":"src","nativeSrc":"2839:3:89","nodeType":"YulTypedName","src":"2839:3:89","type":""}],"src":"2752:1299:89"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := mload(offset)\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(add(memPtr, i), 0x20), mload(add(add(offset, i), 0x20)))\n        }\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051610a51380380610a5183398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610785806102cc6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461011857806370a082311461012d57806395d89b4114610156578063a9059cbb1461015e578063dd62ed3e1461017157600080fd5b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100e457806323b872dd146100f6578063313ce56714610109575b600080fd5b6100ab6101aa565b6040516100b891906105ce565b60405180910390f35b6100d46100cf366004610638565b61023c565b60405190151581526020016100b8565b6002545b6040519081526020016100b8565b6100d4610104366004610662565b610256565b604051601281526020016100b8565b61012b610126366004610638565b61027a565b005b6100e861013b36600461069f565b6001600160a01b031660009081526020819052604090205490565b6100ab610288565b6100d461016c366004610638565b610297565b6100e861017f3660046106c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101b9906106f4565b80601f01602080910402602001604051908101604052809291908181526020018280546101e5906106f4565b80156102325780601f1061020757610100808354040283529160200191610232565b820191906000526020600020905b81548152906001019060200180831161021557829003601f168201915b5050505050905090565b60003361024a8185856102a5565b60019150505b92915050565b6000336102648582856102b7565b61026f85858561033a565b506001949350505050565b6102848282610399565b5050565b6060600480546101b9906106f4565b60003361024a81858561033a565b6102b283838360016103cf565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610334578181101561032557604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b610334848484840360006103cf565b50505050565b6001600160a01b03831661036457604051634b637e8f60e11b81526000600482015260240161031c565b6001600160a01b03821661038e5760405163ec442f0560e01b81526000600482015260240161031c565b6102b28383836104a4565b6001600160a01b0382166103c35760405163ec442f0560e01b81526000600482015260240161031c565b610284600083836104a4565b6001600160a01b0384166103f95760405163e602df0560e01b81526000600482015260240161031c565b6001600160a01b03831661042357604051634a1406b160e11b81526000600482015260240161031c565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561033457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161049691815260200190565b60405180910390a350505050565b6001600160a01b0383166104cf5780600260008282546104c4919061072e565b909155506105419050565b6001600160a01b038316600090815260208190526040902054818110156105225760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161031c565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661055d5760028054829003905561057c565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105c191815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156105fc57602081860181015160408684010152016105df565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461063357600080fd5b919050565b6000806040838503121561064b57600080fd5b6106548361061c565b946020939093013593505050565b60008060006060848603121561067757600080fd5b6106808461061c565b925061068e6020850161061c565b929592945050506040919091013590565b6000602082840312156106b157600080fd5b6106ba8261061c565b9392505050565b600080604083850312156106d457600080fd5b6106dd8361061c565b91506106eb6020840161061c565b90509250929050565b600181811c9082168061070857607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561025057634e487b7160e01b600052601160045260246000fdfea26469706673582212207b509c9f7ed85ae47ef55597b66d19c44966e88bb7a97ed466af7017a5166b9b64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA51 CODESIZE SUB DUP1 PUSH2 0xA51 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x10D JUMP JUMPDEST DUP2 DUP2 PUSH1 0x3 PUSH2 0x3D DUP4 DUP3 PUSH2 0x1FF JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x4A DUP3 DUP3 PUSH2 0x1FF JUMP JUMPDEST POP POP POP POP POP PUSH2 0x2BD JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x94 JUMPI PUSH2 0x94 PUSH2 0x54 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC2 JUMPI PUSH2 0xC2 PUSH2 0x54 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xF9 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP4 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xDD JUMP JUMPDEST POP PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x142 DUP6 DUP3 DUP7 ADD PUSH2 0x6A JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C DUP6 DUP3 DUP7 ADD PUSH2 0x6A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x18A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1AA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1FA JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1D7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1E3 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x218 JUMPI PUSH2 0x218 PUSH2 0x54 JUMP JUMPDEST PUSH2 0x22C DUP2 PUSH2 0x226 DUP5 SLOAD PUSH2 0x176 JUMP JUMPDEST DUP5 PUSH2 0x1B0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x260 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x248 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x1F7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x290 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x270 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x2AE JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x785 DUP1 PUSH2 0x2CC 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 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x171 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x109 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0x5CE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH2 0xCF CALLDATASIZE PUSH1 0x4 PUSH2 0x638 JUMP JUMPDEST PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB8 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB8 JUMP JUMPDEST PUSH2 0xD4 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0x662 JUMP JUMPDEST PUSH2 0x256 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB8 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x638 JUMP JUMPDEST PUSH2 0x27A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE8 PUSH2 0x13B CALLDATASIZE PUSH1 0x4 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xAB PUSH2 0x288 JUMP JUMPDEST PUSH2 0xD4 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x638 JUMP JUMPDEST PUSH2 0x297 JUMP JUMPDEST PUSH2 0xE8 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1B9 SWAP1 PUSH2 0x6F4 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 0x1E5 SWAP1 PUSH2 0x6F4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x232 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x207 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x232 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 0x215 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x24A DUP2 DUP6 DUP6 PUSH2 0x2A5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x264 DUP6 DUP3 DUP6 PUSH2 0x2B7 JUMP JUMPDEST PUSH2 0x26F DUP6 DUP6 DUP6 PUSH2 0x33A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x284 DUP3 DUP3 PUSH2 0x399 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1B9 SWAP1 PUSH2 0x6F4 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x24A DUP2 DUP6 DUP6 PUSH2 0x33A JUMP JUMPDEST PUSH2 0x2B2 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x3CF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x334 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x325 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x334 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x3CF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x364 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x38E JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH2 0x2B2 DUP4 DUP4 DUP4 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH2 0x284 PUSH1 0x0 DUP4 DUP4 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x3F9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x423 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x334 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4CF JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x72E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x541 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x522 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x55D JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x57C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x5C1 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5FC JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x5DF JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x654 DUP4 PUSH2 0x61C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x680 DUP5 PUSH2 0x61C JUMP JUMPDEST SWAP3 POP PUSH2 0x68E PUSH1 0x20 DUP6 ADD PUSH2 0x61C JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6BA DUP3 PUSH2 0x61C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6DD DUP4 PUSH2 0x61C JUMP JUMPDEST SWAP2 POP PUSH2 0x6EB PUSH1 0x20 DUP5 ADD PUSH2 0x61C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x708 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x728 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x250 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x509C9F7ED85AE47EF55597B66D19C44966E88BB7A97ED466AF7017A5 AND PUSH12 0x9B64736F6C634300081C0033 ","sourceMap":"130:211:87:-:0;;;164:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;226:5;233:7;1667:5:23;:13;226:5:87;1667::23;:13;:::i;:::-;-1:-1:-1;1690:7:23;:17;1700:7;1690;:17;:::i;:::-;;1601:113;;164:80:87;;130:211;;14:127:89;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:834;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;298:13;;-1:-1:-1;;;;;323:30:89;;320:56;;;356:18;;:::i;:::-;405:2;399:9;497:2;459:17;;-1:-1:-1;;455:31:89;;;488:2;451:40;447:54;435:67;;-1:-1:-1;;;;;517:34:89;;553:22;;;514:62;511:88;;;579:18;;:::i;:::-;615:2;608:22;639;;;680:19;;;701:4;676:30;673:39;-1:-1:-1;670:59:89;;;725:1;722;715:12;670:59;747:1;757:143;771:6;768:1;765:13;757:143;;;883:4;867:14;;;863:25;;857:32;834:14;;;830:25;;823:67;786:12;757:143;;;-1:-1:-1;948:1:89;920:19;;;941:4;916:30;909:41;;;;924:6;146:834;-1:-1:-1;;;146:834:89:o;985:557::-;1084:6;1092;1145:2;1133:9;1124:7;1120:23;1116:32;1113:52;;;1161:1;1158;1151:12;1113:52;1188:16;;-1:-1:-1;;;;;1216:30:89;;1213:50;;;1259:1;1256;1249:12;1213:50;1282:61;1335:7;1326:6;1315:9;1311:22;1282:61;:::i;:::-;1389:2;1374:18;;1368:25;1272:71;;-1:-1:-1;1368:25:89;-1:-1:-1;;;;;;1405:32:89;;1402:52;;;1450:1;1447;1440:12;1402:52;1473:63;1528:7;1517:8;1506:9;1502:24;1473:63;:::i;:::-;1463:73;;;985:557;;;;;:::o;1547:380::-;1626:1;1622:12;;;;1669;;;1690:61;;1744:4;1736:6;1732:17;1722:27;;1690:61;1797:2;1789:6;1786:14;1766:18;1763:38;1760:161;;1843:10;1838:3;1834:20;1831:1;1824:31;1878:4;1875:1;1868:15;1906:4;1903:1;1896:15;1760:161;;1547:380;;;:::o;2058:518::-;2160:2;2155:3;2152:11;2149:421;;;2196:5;2193:1;2186:16;2240:4;2237:1;2227:18;2310:2;2298:10;2294:19;2291:1;2287:27;2281:4;2277:38;2346:4;2334:10;2331:20;2328:47;;;-1:-1:-1;2369:4:89;2328:47;2424:2;2419:3;2415:12;2412:1;2408:20;2402:4;2398:31;2388:41;;2479:81;2497:2;2490:5;2487:13;2479:81;;;2556:1;2542:16;;2523:1;2512:13;2479:81;;;2483:3;;2149:421;2058:518;;;:::o;2752:1299::-;2872:10;;-1:-1:-1;;;;;2894:30:89;;2891:56;;;2927:18;;:::i;:::-;2956:97;3046:6;3006:38;3038:4;3032:11;3006:38;:::i;:::-;3000:4;2956:97;:::i;:::-;3102:4;3133:2;3122:14;;3150:1;3145:649;;;;3838:1;3855:6;3852:89;;;-1:-1:-1;3907:19:89;;;3901:26;3852:89;-1:-1:-1;;2709:1:89;2705:11;;;2701:24;2697:29;2687:40;2733:1;2729:11;;;2684:57;3954:81;;3115:930;;3145:649;2005:1;1998:14;;;2042:4;2029:18;;-1:-1:-1;;3181:20:89;;;3299:222;3313:7;3310:1;3307:14;3299:222;;;3395:19;;;3389:26;3374:42;;3502:4;3487:20;;;;3455:1;3443:14;;;;3329:12;3299:222;;;3303:3;3549:6;3540:7;3537:19;3534:201;;;3610:19;;;3604:26;-1:-1:-1;;3693:1:89;3689:14;;;3705:3;3685:24;3681:37;3677:42;3662:58;3647:74;;3534:201;-1:-1:-1;;;;3781:1:89;3765:14;;;3761:22;3748:36;;-1:-1:-1;2752:1299:89:o;:::-;130:211:87;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_4548":{"entryPoint":677,"id":4548,"parameterSlots":3,"returnSlots":0},"@_approve_4608":{"entryPoint":975,"id":4608,"parameterSlots":4,"returnSlots":0},"@_mint_4497":{"entryPoint":921,"id":4497,"parameterSlots":2,"returnSlots":0},"@_msgSender_6640":{"entryPoint":null,"id":6640,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_4656":{"entryPoint":695,"id":4656,"parameterSlots":3,"returnSlots":0},"@_transfer_4387":{"entryPoint":826,"id":4387,"parameterSlots":3,"returnSlots":0},"@_update_4464":{"entryPoint":1188,"id":4464,"parameterSlots":3,"returnSlots":0},"@allowance_4284":{"entryPoint":null,"id":4284,"parameterSlots":2,"returnSlots":1},"@approve_4308":{"entryPoint":572,"id":4308,"parameterSlots":2,"returnSlots":1},"@balanceOf_4243":{"entryPoint":null,"id":4243,"parameterSlots":1,"returnSlots":1},"@decimals_4221":{"entryPoint":null,"id":4221,"parameterSlots":0,"returnSlots":1},"@mint_21465":{"entryPoint":634,"id":21465,"parameterSlots":2,"returnSlots":0},"@name_4203":{"entryPoint":426,"id":4203,"parameterSlots":0,"returnSlots":1},"@symbol_4212":{"entryPoint":648,"id":4212,"parameterSlots":0,"returnSlots":1},"@totalSupply_4230":{"entryPoint":null,"id":4230,"parameterSlots":0,"returnSlots":1},"@transferFrom_4340":{"entryPoint":598,"id":4340,"parameterSlots":3,"returnSlots":1},"@transfer_4267":{"entryPoint":663,"id":4267,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1564,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1695,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1729,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1634,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1592,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1486,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1838,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":1780,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:3594:89","nodeType":"YulBlock","src":"0:3594:89","statements":[{"nativeSrc":"6:3:89","nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nativeSrc":"135:406:89","nodeType":"YulBlock","src":"135:406:89","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"152:9:89","nodeType":"YulIdentifier","src":"152:9:89"},{"kind":"number","nativeSrc":"163:2:89","nodeType":"YulLiteral","src":"163:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"145:6:89","nodeType":"YulIdentifier","src":"145:6:89"},"nativeSrc":"145:21:89","nodeType":"YulFunctionCall","src":"145:21:89"},"nativeSrc":"145:21:89","nodeType":"YulExpressionStatement","src":"145:21:89"},{"nativeSrc":"175:27:89","nodeType":"YulVariableDeclaration","src":"175:27:89","value":{"arguments":[{"name":"value0","nativeSrc":"195:6:89","nodeType":"YulIdentifier","src":"195:6:89"}],"functionName":{"name":"mload","nativeSrc":"189:5:89","nodeType":"YulIdentifier","src":"189:5:89"},"nativeSrc":"189:13:89","nodeType":"YulFunctionCall","src":"189:13:89"},"variables":[{"name":"length","nativeSrc":"179:6:89","nodeType":"YulTypedName","src":"179:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"222:9:89","nodeType":"YulIdentifier","src":"222:9:89"},{"kind":"number","nativeSrc":"233:2:89","nodeType":"YulLiteral","src":"233:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"218:3:89","nodeType":"YulIdentifier","src":"218:3:89"},"nativeSrc":"218:18:89","nodeType":"YulFunctionCall","src":"218:18:89"},{"name":"length","nativeSrc":"238:6:89","nodeType":"YulIdentifier","src":"238:6:89"}],"functionName":{"name":"mstore","nativeSrc":"211:6:89","nodeType":"YulIdentifier","src":"211:6:89"},"nativeSrc":"211:34:89","nodeType":"YulFunctionCall","src":"211:34:89"},"nativeSrc":"211:34:89","nodeType":"YulExpressionStatement","src":"211:34:89"},{"nativeSrc":"254:10:89","nodeType":"YulVariableDeclaration","src":"254:10:89","value":{"kind":"number","nativeSrc":"263:1:89","nodeType":"YulLiteral","src":"263:1:89","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"258:1:89","nodeType":"YulTypedName","src":"258:1:89","type":""}]},{"body":{"nativeSrc":"323:90:89","nodeType":"YulBlock","src":"323:90:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"352:9:89","nodeType":"YulIdentifier","src":"352:9:89"},{"name":"i","nativeSrc":"363:1:89","nodeType":"YulIdentifier","src":"363:1:89"}],"functionName":{"name":"add","nativeSrc":"348:3:89","nodeType":"YulIdentifier","src":"348:3:89"},"nativeSrc":"348:17:89","nodeType":"YulFunctionCall","src":"348:17:89"},{"kind":"number","nativeSrc":"367:2:89","nodeType":"YulLiteral","src":"367:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"344:3:89","nodeType":"YulIdentifier","src":"344:3:89"},"nativeSrc":"344:26:89","nodeType":"YulFunctionCall","src":"344:26:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"386:6:89","nodeType":"YulIdentifier","src":"386:6:89"},{"name":"i","nativeSrc":"394:1:89","nodeType":"YulIdentifier","src":"394:1:89"}],"functionName":{"name":"add","nativeSrc":"382:3:89","nodeType":"YulIdentifier","src":"382:3:89"},"nativeSrc":"382:14:89","nodeType":"YulFunctionCall","src":"382:14:89"},{"kind":"number","nativeSrc":"398:2:89","nodeType":"YulLiteral","src":"398:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"378:3:89","nodeType":"YulIdentifier","src":"378:3:89"},"nativeSrc":"378:23:89","nodeType":"YulFunctionCall","src":"378:23:89"}],"functionName":{"name":"mload","nativeSrc":"372:5:89","nodeType":"YulIdentifier","src":"372:5:89"},"nativeSrc":"372:30:89","nodeType":"YulFunctionCall","src":"372:30:89"}],"functionName":{"name":"mstore","nativeSrc":"337:6:89","nodeType":"YulIdentifier","src":"337:6:89"},"nativeSrc":"337:66:89","nodeType":"YulFunctionCall","src":"337:66:89"},"nativeSrc":"337:66:89","nodeType":"YulExpressionStatement","src":"337:66:89"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"284:1:89","nodeType":"YulIdentifier","src":"284:1:89"},{"name":"length","nativeSrc":"287:6:89","nodeType":"YulIdentifier","src":"287:6:89"}],"functionName":{"name":"lt","nativeSrc":"281:2:89","nodeType":"YulIdentifier","src":"281:2:89"},"nativeSrc":"281:13:89","nodeType":"YulFunctionCall","src":"281:13:89"},"nativeSrc":"273:140:89","nodeType":"YulForLoop","post":{"nativeSrc":"295:19:89","nodeType":"YulBlock","src":"295:19:89","statements":[{"nativeSrc":"297:15:89","nodeType":"YulAssignment","src":"297:15:89","value":{"arguments":[{"name":"i","nativeSrc":"306:1:89","nodeType":"YulIdentifier","src":"306:1:89"},{"kind":"number","nativeSrc":"309:2:89","nodeType":"YulLiteral","src":"309:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"302:3:89","nodeType":"YulIdentifier","src":"302:3:89"},"nativeSrc":"302:10:89","nodeType":"YulFunctionCall","src":"302:10:89"},"variableNames":[{"name":"i","nativeSrc":"297:1:89","nodeType":"YulIdentifier","src":"297:1:89"}]}]},"pre":{"nativeSrc":"277:3:89","nodeType":"YulBlock","src":"277:3:89","statements":[]},"src":"273:140:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"437:9:89","nodeType":"YulIdentifier","src":"437:9:89"},{"name":"length","nativeSrc":"448:6:89","nodeType":"YulIdentifier","src":"448:6:89"}],"functionName":{"name":"add","nativeSrc":"433:3:89","nodeType":"YulIdentifier","src":"433:3:89"},"nativeSrc":"433:22:89","nodeType":"YulFunctionCall","src":"433:22:89"},{"kind":"number","nativeSrc":"457:2:89","nodeType":"YulLiteral","src":"457:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"429:3:89","nodeType":"YulIdentifier","src":"429:3:89"},"nativeSrc":"429:31:89","nodeType":"YulFunctionCall","src":"429:31:89"},{"kind":"number","nativeSrc":"462:1:89","nodeType":"YulLiteral","src":"462:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"422:6:89","nodeType":"YulIdentifier","src":"422:6:89"},"nativeSrc":"422:42:89","nodeType":"YulFunctionCall","src":"422:42:89"},"nativeSrc":"422:42:89","nodeType":"YulExpressionStatement","src":"422:42:89"},{"nativeSrc":"473:62:89","nodeType":"YulAssignment","src":"473:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"489:9:89","nodeType":"YulIdentifier","src":"489:9:89"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"508:6:89","nodeType":"YulIdentifier","src":"508:6:89"},{"kind":"number","nativeSrc":"516:2:89","nodeType":"YulLiteral","src":"516:2:89","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:89","nodeType":"YulIdentifier","src":"504:3:89"},"nativeSrc":"504:15:89","nodeType":"YulFunctionCall","src":"504:15:89"},{"arguments":[{"kind":"number","nativeSrc":"525:2:89","nodeType":"YulLiteral","src":"525:2:89","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"521:3:89","nodeType":"YulIdentifier","src":"521:3:89"},"nativeSrc":"521:7:89","nodeType":"YulFunctionCall","src":"521:7:89"}],"functionName":{"name":"and","nativeSrc":"500:3:89","nodeType":"YulIdentifier","src":"500:3:89"},"nativeSrc":"500:29:89","nodeType":"YulFunctionCall","src":"500:29:89"}],"functionName":{"name":"add","nativeSrc":"485:3:89","nodeType":"YulIdentifier","src":"485:3:89"},"nativeSrc":"485:45:89","nodeType":"YulFunctionCall","src":"485:45:89"},{"kind":"number","nativeSrc":"532:2:89","nodeType":"YulLiteral","src":"532:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"481:3:89","nodeType":"YulIdentifier","src":"481:3:89"},"nativeSrc":"481:54:89","nodeType":"YulFunctionCall","src":"481:54:89"},"variableNames":[{"name":"tail","nativeSrc":"473:4:89","nodeType":"YulIdentifier","src":"473:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14:527:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"104:9:89","nodeType":"YulTypedName","src":"104:9:89","type":""},{"name":"value0","nativeSrc":"115:6:89","nodeType":"YulTypedName","src":"115:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"126:4:89","nodeType":"YulTypedName","src":"126:4:89","type":""}],"src":"14:527:89"},{"body":{"nativeSrc":"595:124:89","nodeType":"YulBlock","src":"595:124:89","statements":[{"nativeSrc":"605:29:89","nodeType":"YulAssignment","src":"605:29:89","value":{"arguments":[{"name":"offset","nativeSrc":"627:6:89","nodeType":"YulIdentifier","src":"627:6:89"}],"functionName":{"name":"calldataload","nativeSrc":"614:12:89","nodeType":"YulIdentifier","src":"614:12:89"},"nativeSrc":"614:20:89","nodeType":"YulFunctionCall","src":"614:20:89"},"variableNames":[{"name":"value","nativeSrc":"605:5:89","nodeType":"YulIdentifier","src":"605:5:89"}]},{"body":{"nativeSrc":"697:16:89","nodeType":"YulBlock","src":"697:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"706:1:89","nodeType":"YulLiteral","src":"706:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"709:1:89","nodeType":"YulLiteral","src":"709:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"699:6:89","nodeType":"YulIdentifier","src":"699:6:89"},"nativeSrc":"699:12:89","nodeType":"YulFunctionCall","src":"699:12:89"},"nativeSrc":"699:12:89","nodeType":"YulExpressionStatement","src":"699:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:89","nodeType":"YulIdentifier","src":"656:5:89"},{"arguments":[{"name":"value","nativeSrc":"667:5:89","nodeType":"YulIdentifier","src":"667:5:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"682:3:89","nodeType":"YulLiteral","src":"682:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"687:1:89","nodeType":"YulLiteral","src":"687:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"678:3:89","nodeType":"YulIdentifier","src":"678:3:89"},"nativeSrc":"678:11:89","nodeType":"YulFunctionCall","src":"678:11:89"},{"kind":"number","nativeSrc":"691:1:89","nodeType":"YulLiteral","src":"691:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"674:3:89","nodeType":"YulIdentifier","src":"674:3:89"},"nativeSrc":"674:19:89","nodeType":"YulFunctionCall","src":"674:19:89"}],"functionName":{"name":"and","nativeSrc":"663:3:89","nodeType":"YulIdentifier","src":"663:3:89"},"nativeSrc":"663:31:89","nodeType":"YulFunctionCall","src":"663:31:89"}],"functionName":{"name":"eq","nativeSrc":"653:2:89","nodeType":"YulIdentifier","src":"653:2:89"},"nativeSrc":"653:42:89","nodeType":"YulFunctionCall","src":"653:42:89"}],"functionName":{"name":"iszero","nativeSrc":"646:6:89","nodeType":"YulIdentifier","src":"646:6:89"},"nativeSrc":"646:50:89","nodeType":"YulFunctionCall","src":"646:50:89"},"nativeSrc":"643:70:89","nodeType":"YulIf","src":"643:70:89"}]},"name":"abi_decode_address","nativeSrc":"546:173:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"574:6:89","nodeType":"YulTypedName","src":"574:6:89","type":""}],"returnVariables":[{"name":"value","nativeSrc":"585:5:89","nodeType":"YulTypedName","src":"585:5:89","type":""}],"src":"546:173:89"},{"body":{"nativeSrc":"811:213:89","nodeType":"YulBlock","src":"811:213:89","statements":[{"body":{"nativeSrc":"857:16:89","nodeType":"YulBlock","src":"857:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"866:1:89","nodeType":"YulLiteral","src":"866:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"869:1:89","nodeType":"YulLiteral","src":"869:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"859:6:89","nodeType":"YulIdentifier","src":"859:6:89"},"nativeSrc":"859:12:89","nodeType":"YulFunctionCall","src":"859:12:89"},"nativeSrc":"859:12:89","nodeType":"YulExpressionStatement","src":"859:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"832:7:89","nodeType":"YulIdentifier","src":"832:7:89"},{"name":"headStart","nativeSrc":"841:9:89","nodeType":"YulIdentifier","src":"841:9:89"}],"functionName":{"name":"sub","nativeSrc":"828:3:89","nodeType":"YulIdentifier","src":"828:3:89"},"nativeSrc":"828:23:89","nodeType":"YulFunctionCall","src":"828:23:89"},{"kind":"number","nativeSrc":"853:2:89","nodeType":"YulLiteral","src":"853:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"824:3:89","nodeType":"YulIdentifier","src":"824:3:89"},"nativeSrc":"824:32:89","nodeType":"YulFunctionCall","src":"824:32:89"},"nativeSrc":"821:52:89","nodeType":"YulIf","src":"821:52:89"},{"nativeSrc":"882:39:89","nodeType":"YulAssignment","src":"882:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"911:9:89","nodeType":"YulIdentifier","src":"911:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"892:18:89","nodeType":"YulIdentifier","src":"892:18:89"},"nativeSrc":"892:29:89","nodeType":"YulFunctionCall","src":"892:29:89"},"variableNames":[{"name":"value0","nativeSrc":"882:6:89","nodeType":"YulIdentifier","src":"882:6:89"}]},{"nativeSrc":"930:14:89","nodeType":"YulVariableDeclaration","src":"930:14:89","value":{"kind":"number","nativeSrc":"943:1:89","nodeType":"YulLiteral","src":"943:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"934:5:89","nodeType":"YulTypedName","src":"934:5:89","type":""}]},{"nativeSrc":"953:41:89","nodeType":"YulAssignment","src":"953:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"979:9:89","nodeType":"YulIdentifier","src":"979:9:89"},{"kind":"number","nativeSrc":"990:2:89","nodeType":"YulLiteral","src":"990:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"975:3:89","nodeType":"YulIdentifier","src":"975:3:89"},"nativeSrc":"975:18:89","nodeType":"YulFunctionCall","src":"975:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"962:12:89","nodeType":"YulIdentifier","src":"962:12:89"},"nativeSrc":"962:32:89","nodeType":"YulFunctionCall","src":"962:32:89"},"variableNames":[{"name":"value","nativeSrc":"953:5:89","nodeType":"YulIdentifier","src":"953:5:89"}]},{"nativeSrc":"1003:15:89","nodeType":"YulAssignment","src":"1003:15:89","value":{"name":"value","nativeSrc":"1013:5:89","nodeType":"YulIdentifier","src":"1013:5:89"},"variableNames":[{"name":"value1","nativeSrc":"1003:6:89","nodeType":"YulIdentifier","src":"1003:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"724:300:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"769:9:89","nodeType":"YulTypedName","src":"769:9:89","type":""},{"name":"dataEnd","nativeSrc":"780:7:89","nodeType":"YulTypedName","src":"780:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"792:6:89","nodeType":"YulTypedName","src":"792:6:89","type":""},{"name":"value1","nativeSrc":"800:6:89","nodeType":"YulTypedName","src":"800:6:89","type":""}],"src":"724:300:89"},{"body":{"nativeSrc":"1124:92:89","nodeType":"YulBlock","src":"1124:92:89","statements":[{"nativeSrc":"1134:26:89","nodeType":"YulAssignment","src":"1134:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1146:9:89","nodeType":"YulIdentifier","src":"1146:9:89"},{"kind":"number","nativeSrc":"1157:2:89","nodeType":"YulLiteral","src":"1157:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1142:3:89","nodeType":"YulIdentifier","src":"1142:3:89"},"nativeSrc":"1142:18:89","nodeType":"YulFunctionCall","src":"1142:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1134:4:89","nodeType":"YulIdentifier","src":"1134:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1176:9:89","nodeType":"YulIdentifier","src":"1176:9:89"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1201:6:89","nodeType":"YulIdentifier","src":"1201:6:89"}],"functionName":{"name":"iszero","nativeSrc":"1194:6:89","nodeType":"YulIdentifier","src":"1194:6:89"},"nativeSrc":"1194:14:89","nodeType":"YulFunctionCall","src":"1194:14:89"}],"functionName":{"name":"iszero","nativeSrc":"1187:6:89","nodeType":"YulIdentifier","src":"1187:6:89"},"nativeSrc":"1187:22:89","nodeType":"YulFunctionCall","src":"1187:22:89"}],"functionName":{"name":"mstore","nativeSrc":"1169:6:89","nodeType":"YulIdentifier","src":"1169:6:89"},"nativeSrc":"1169:41:89","nodeType":"YulFunctionCall","src":"1169:41:89"},"nativeSrc":"1169:41:89","nodeType":"YulExpressionStatement","src":"1169:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1029:187:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1093:9:89","nodeType":"YulTypedName","src":"1093:9:89","type":""},{"name":"value0","nativeSrc":"1104:6:89","nodeType":"YulTypedName","src":"1104:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1115:4:89","nodeType":"YulTypedName","src":"1115:4:89","type":""}],"src":"1029:187:89"},{"body":{"nativeSrc":"1322:76:89","nodeType":"YulBlock","src":"1322:76:89","statements":[{"nativeSrc":"1332:26:89","nodeType":"YulAssignment","src":"1332:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1344:9:89","nodeType":"YulIdentifier","src":"1344:9:89"},{"kind":"number","nativeSrc":"1355:2:89","nodeType":"YulLiteral","src":"1355:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1340:3:89","nodeType":"YulIdentifier","src":"1340:3:89"},"nativeSrc":"1340:18:89","nodeType":"YulFunctionCall","src":"1340:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1332:4:89","nodeType":"YulIdentifier","src":"1332:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1374:9:89","nodeType":"YulIdentifier","src":"1374:9:89"},{"name":"value0","nativeSrc":"1385:6:89","nodeType":"YulIdentifier","src":"1385:6:89"}],"functionName":{"name":"mstore","nativeSrc":"1367:6:89","nodeType":"YulIdentifier","src":"1367:6:89"},"nativeSrc":"1367:25:89","nodeType":"YulFunctionCall","src":"1367:25:89"},"nativeSrc":"1367:25:89","nodeType":"YulExpressionStatement","src":"1367:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1221:177:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1291:9:89","nodeType":"YulTypedName","src":"1291:9:89","type":""},{"name":"value0","nativeSrc":"1302:6:89","nodeType":"YulTypedName","src":"1302:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1313:4:89","nodeType":"YulTypedName","src":"1313:4:89","type":""}],"src":"1221:177:89"},{"body":{"nativeSrc":"1507:270:89","nodeType":"YulBlock","src":"1507:270:89","statements":[{"body":{"nativeSrc":"1553:16:89","nodeType":"YulBlock","src":"1553:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1562:1:89","nodeType":"YulLiteral","src":"1562:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"1565:1:89","nodeType":"YulLiteral","src":"1565:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1555:6:89","nodeType":"YulIdentifier","src":"1555:6:89"},"nativeSrc":"1555:12:89","nodeType":"YulFunctionCall","src":"1555:12:89"},"nativeSrc":"1555:12:89","nodeType":"YulExpressionStatement","src":"1555:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1528:7:89","nodeType":"YulIdentifier","src":"1528:7:89"},{"name":"headStart","nativeSrc":"1537:9:89","nodeType":"YulIdentifier","src":"1537:9:89"}],"functionName":{"name":"sub","nativeSrc":"1524:3:89","nodeType":"YulIdentifier","src":"1524:3:89"},"nativeSrc":"1524:23:89","nodeType":"YulFunctionCall","src":"1524:23:89"},{"kind":"number","nativeSrc":"1549:2:89","nodeType":"YulLiteral","src":"1549:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1520:3:89","nodeType":"YulIdentifier","src":"1520:3:89"},"nativeSrc":"1520:32:89","nodeType":"YulFunctionCall","src":"1520:32:89"},"nativeSrc":"1517:52:89","nodeType":"YulIf","src":"1517:52:89"},{"nativeSrc":"1578:39:89","nodeType":"YulAssignment","src":"1578:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1607:9:89","nodeType":"YulIdentifier","src":"1607:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1588:18:89","nodeType":"YulIdentifier","src":"1588:18:89"},"nativeSrc":"1588:29:89","nodeType":"YulFunctionCall","src":"1588:29:89"},"variableNames":[{"name":"value0","nativeSrc":"1578:6:89","nodeType":"YulIdentifier","src":"1578:6:89"}]},{"nativeSrc":"1626:48:89","nodeType":"YulAssignment","src":"1626:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1659:9:89","nodeType":"YulIdentifier","src":"1659:9:89"},{"kind":"number","nativeSrc":"1670:2:89","nodeType":"YulLiteral","src":"1670:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1655:3:89","nodeType":"YulIdentifier","src":"1655:3:89"},"nativeSrc":"1655:18:89","nodeType":"YulFunctionCall","src":"1655:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1636:18:89","nodeType":"YulIdentifier","src":"1636:18:89"},"nativeSrc":"1636:38:89","nodeType":"YulFunctionCall","src":"1636:38:89"},"variableNames":[{"name":"value1","nativeSrc":"1626:6:89","nodeType":"YulIdentifier","src":"1626:6:89"}]},{"nativeSrc":"1683:14:89","nodeType":"YulVariableDeclaration","src":"1683:14:89","value":{"kind":"number","nativeSrc":"1696:1:89","nodeType":"YulLiteral","src":"1696:1:89","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1687:5:89","nodeType":"YulTypedName","src":"1687:5:89","type":""}]},{"nativeSrc":"1706:41:89","nodeType":"YulAssignment","src":"1706:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1732:9:89","nodeType":"YulIdentifier","src":"1732:9:89"},{"kind":"number","nativeSrc":"1743:2:89","nodeType":"YulLiteral","src":"1743:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1728:3:89","nodeType":"YulIdentifier","src":"1728:3:89"},"nativeSrc":"1728:18:89","nodeType":"YulFunctionCall","src":"1728:18:89"}],"functionName":{"name":"calldataload","nativeSrc":"1715:12:89","nodeType":"YulIdentifier","src":"1715:12:89"},"nativeSrc":"1715:32:89","nodeType":"YulFunctionCall","src":"1715:32:89"},"variableNames":[{"name":"value","nativeSrc":"1706:5:89","nodeType":"YulIdentifier","src":"1706:5:89"}]},{"nativeSrc":"1756:15:89","nodeType":"YulAssignment","src":"1756:15:89","value":{"name":"value","nativeSrc":"1766:5:89","nodeType":"YulIdentifier","src":"1766:5:89"},"variableNames":[{"name":"value2","nativeSrc":"1756:6:89","nodeType":"YulIdentifier","src":"1756:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"1403:374:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1457:9:89","nodeType":"YulTypedName","src":"1457:9:89","type":""},{"name":"dataEnd","nativeSrc":"1468:7:89","nodeType":"YulTypedName","src":"1468:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1480:6:89","nodeType":"YulTypedName","src":"1480:6:89","type":""},{"name":"value1","nativeSrc":"1488:6:89","nodeType":"YulTypedName","src":"1488:6:89","type":""},{"name":"value2","nativeSrc":"1496:6:89","nodeType":"YulTypedName","src":"1496:6:89","type":""}],"src":"1403:374:89"},{"body":{"nativeSrc":"1879:87:89","nodeType":"YulBlock","src":"1879:87:89","statements":[{"nativeSrc":"1889:26:89","nodeType":"YulAssignment","src":"1889:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"1901:9:89","nodeType":"YulIdentifier","src":"1901:9:89"},{"kind":"number","nativeSrc":"1912:2:89","nodeType":"YulLiteral","src":"1912:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1897:3:89","nodeType":"YulIdentifier","src":"1897:3:89"},"nativeSrc":"1897:18:89","nodeType":"YulFunctionCall","src":"1897:18:89"},"variableNames":[{"name":"tail","nativeSrc":"1889:4:89","nodeType":"YulIdentifier","src":"1889:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1931:9:89","nodeType":"YulIdentifier","src":"1931:9:89"},{"arguments":[{"name":"value0","nativeSrc":"1946:6:89","nodeType":"YulIdentifier","src":"1946:6:89"},{"kind":"number","nativeSrc":"1954:4:89","nodeType":"YulLiteral","src":"1954:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1942:3:89","nodeType":"YulIdentifier","src":"1942:3:89"},"nativeSrc":"1942:17:89","nodeType":"YulFunctionCall","src":"1942:17:89"}],"functionName":{"name":"mstore","nativeSrc":"1924:6:89","nodeType":"YulIdentifier","src":"1924:6:89"},"nativeSrc":"1924:36:89","nodeType":"YulFunctionCall","src":"1924:36:89"},"nativeSrc":"1924:36:89","nodeType":"YulExpressionStatement","src":"1924:36:89"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1782:184:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1848:9:89","nodeType":"YulTypedName","src":"1848:9:89","type":""},{"name":"value0","nativeSrc":"1859:6:89","nodeType":"YulTypedName","src":"1859:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1870:4:89","nodeType":"YulTypedName","src":"1870:4:89","type":""}],"src":"1782:184:89"},{"body":{"nativeSrc":"2041:116:89","nodeType":"YulBlock","src":"2041:116:89","statements":[{"body":{"nativeSrc":"2087:16:89","nodeType":"YulBlock","src":"2087:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2096:1:89","nodeType":"YulLiteral","src":"2096:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2099:1:89","nodeType":"YulLiteral","src":"2099:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2089:6:89","nodeType":"YulIdentifier","src":"2089:6:89"},"nativeSrc":"2089:12:89","nodeType":"YulFunctionCall","src":"2089:12:89"},"nativeSrc":"2089:12:89","nodeType":"YulExpressionStatement","src":"2089:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2062:7:89","nodeType":"YulIdentifier","src":"2062:7:89"},{"name":"headStart","nativeSrc":"2071:9:89","nodeType":"YulIdentifier","src":"2071:9:89"}],"functionName":{"name":"sub","nativeSrc":"2058:3:89","nodeType":"YulIdentifier","src":"2058:3:89"},"nativeSrc":"2058:23:89","nodeType":"YulFunctionCall","src":"2058:23:89"},{"kind":"number","nativeSrc":"2083:2:89","nodeType":"YulLiteral","src":"2083:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2054:3:89","nodeType":"YulIdentifier","src":"2054:3:89"},"nativeSrc":"2054:32:89","nodeType":"YulFunctionCall","src":"2054:32:89"},"nativeSrc":"2051:52:89","nodeType":"YulIf","src":"2051:52:89"},{"nativeSrc":"2112:39:89","nodeType":"YulAssignment","src":"2112:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2141:9:89","nodeType":"YulIdentifier","src":"2141:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2122:18:89","nodeType":"YulIdentifier","src":"2122:18:89"},"nativeSrc":"2122:29:89","nodeType":"YulFunctionCall","src":"2122:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2112:6:89","nodeType":"YulIdentifier","src":"2112:6:89"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1971:186:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2007:9:89","nodeType":"YulTypedName","src":"2007:9:89","type":""},{"name":"dataEnd","nativeSrc":"2018:7:89","nodeType":"YulTypedName","src":"2018:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2030:6:89","nodeType":"YulTypedName","src":"2030:6:89","type":""}],"src":"1971:186:89"},{"body":{"nativeSrc":"2249:173:89","nodeType":"YulBlock","src":"2249:173:89","statements":[{"body":{"nativeSrc":"2295:16:89","nodeType":"YulBlock","src":"2295:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2304:1:89","nodeType":"YulLiteral","src":"2304:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2307:1:89","nodeType":"YulLiteral","src":"2307:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2297:6:89","nodeType":"YulIdentifier","src":"2297:6:89"},"nativeSrc":"2297:12:89","nodeType":"YulFunctionCall","src":"2297:12:89"},"nativeSrc":"2297:12:89","nodeType":"YulExpressionStatement","src":"2297:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2270:7:89","nodeType":"YulIdentifier","src":"2270:7:89"},{"name":"headStart","nativeSrc":"2279:9:89","nodeType":"YulIdentifier","src":"2279:9:89"}],"functionName":{"name":"sub","nativeSrc":"2266:3:89","nodeType":"YulIdentifier","src":"2266:3:89"},"nativeSrc":"2266:23:89","nodeType":"YulFunctionCall","src":"2266:23:89"},{"kind":"number","nativeSrc":"2291:2:89","nodeType":"YulLiteral","src":"2291:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2262:3:89","nodeType":"YulIdentifier","src":"2262:3:89"},"nativeSrc":"2262:32:89","nodeType":"YulFunctionCall","src":"2262:32:89"},"nativeSrc":"2259:52:89","nodeType":"YulIf","src":"2259:52:89"},{"nativeSrc":"2320:39:89","nodeType":"YulAssignment","src":"2320:39:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2349:9:89","nodeType":"YulIdentifier","src":"2349:9:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2330:18:89","nodeType":"YulIdentifier","src":"2330:18:89"},"nativeSrc":"2330:29:89","nodeType":"YulFunctionCall","src":"2330:29:89"},"variableNames":[{"name":"value0","nativeSrc":"2320:6:89","nodeType":"YulIdentifier","src":"2320:6:89"}]},{"nativeSrc":"2368:48:89","nodeType":"YulAssignment","src":"2368:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2401:9:89","nodeType":"YulIdentifier","src":"2401:9:89"},{"kind":"number","nativeSrc":"2412:2:89","nodeType":"YulLiteral","src":"2412:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2397:3:89","nodeType":"YulIdentifier","src":"2397:3:89"},"nativeSrc":"2397:18:89","nodeType":"YulFunctionCall","src":"2397:18:89"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2378:18:89","nodeType":"YulIdentifier","src":"2378:18:89"},"nativeSrc":"2378:38:89","nodeType":"YulFunctionCall","src":"2378:38:89"},"variableNames":[{"name":"value1","nativeSrc":"2368:6:89","nodeType":"YulIdentifier","src":"2368:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"2162:260:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2207:9:89","nodeType":"YulTypedName","src":"2207:9:89","type":""},{"name":"dataEnd","nativeSrc":"2218:7:89","nodeType":"YulTypedName","src":"2218:7:89","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2230:6:89","nodeType":"YulTypedName","src":"2230:6:89","type":""},{"name":"value1","nativeSrc":"2238:6:89","nodeType":"YulTypedName","src":"2238:6:89","type":""}],"src":"2162:260:89"},{"body":{"nativeSrc":"2482:325:89","nodeType":"YulBlock","src":"2482:325:89","statements":[{"nativeSrc":"2492:22:89","nodeType":"YulAssignment","src":"2492:22:89","value":{"arguments":[{"kind":"number","nativeSrc":"2506:1:89","nodeType":"YulLiteral","src":"2506:1:89","type":"","value":"1"},{"name":"data","nativeSrc":"2509:4:89","nodeType":"YulIdentifier","src":"2509:4:89"}],"functionName":{"name":"shr","nativeSrc":"2502:3:89","nodeType":"YulIdentifier","src":"2502:3:89"},"nativeSrc":"2502:12:89","nodeType":"YulFunctionCall","src":"2502:12:89"},"variableNames":[{"name":"length","nativeSrc":"2492:6:89","nodeType":"YulIdentifier","src":"2492:6:89"}]},{"nativeSrc":"2523:38:89","nodeType":"YulVariableDeclaration","src":"2523:38:89","value":{"arguments":[{"name":"data","nativeSrc":"2553:4:89","nodeType":"YulIdentifier","src":"2553:4:89"},{"kind":"number","nativeSrc":"2559:1:89","nodeType":"YulLiteral","src":"2559:1:89","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"2549:3:89","nodeType":"YulIdentifier","src":"2549:3:89"},"nativeSrc":"2549:12:89","nodeType":"YulFunctionCall","src":"2549:12:89"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"2527:18:89","nodeType":"YulTypedName","src":"2527:18:89","type":""}]},{"body":{"nativeSrc":"2600:31:89","nodeType":"YulBlock","src":"2600:31:89","statements":[{"nativeSrc":"2602:27:89","nodeType":"YulAssignment","src":"2602:27:89","value":{"arguments":[{"name":"length","nativeSrc":"2616:6:89","nodeType":"YulIdentifier","src":"2616:6:89"},{"kind":"number","nativeSrc":"2624:4:89","nodeType":"YulLiteral","src":"2624:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"2612:3:89","nodeType":"YulIdentifier","src":"2612:3:89"},"nativeSrc":"2612:17:89","nodeType":"YulFunctionCall","src":"2612:17:89"},"variableNames":[{"name":"length","nativeSrc":"2602:6:89","nodeType":"YulIdentifier","src":"2602:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2580:18:89","nodeType":"YulIdentifier","src":"2580:18:89"}],"functionName":{"name":"iszero","nativeSrc":"2573:6:89","nodeType":"YulIdentifier","src":"2573:6:89"},"nativeSrc":"2573:26:89","nodeType":"YulFunctionCall","src":"2573:26:89"},"nativeSrc":"2570:61:89","nodeType":"YulIf","src":"2570:61:89"},{"body":{"nativeSrc":"2690:111:89","nodeType":"YulBlock","src":"2690:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2711:1:89","nodeType":"YulLiteral","src":"2711:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2718:3:89","nodeType":"YulLiteral","src":"2718:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"2723:10:89","nodeType":"YulLiteral","src":"2723:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2714:3:89","nodeType":"YulIdentifier","src":"2714:3:89"},"nativeSrc":"2714:20:89","nodeType":"YulFunctionCall","src":"2714:20:89"}],"functionName":{"name":"mstore","nativeSrc":"2704:6:89","nodeType":"YulIdentifier","src":"2704:6:89"},"nativeSrc":"2704:31:89","nodeType":"YulFunctionCall","src":"2704:31:89"},"nativeSrc":"2704:31:89","nodeType":"YulExpressionStatement","src":"2704:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2755:1:89","nodeType":"YulLiteral","src":"2755:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"2758:4:89","nodeType":"YulLiteral","src":"2758:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"2748:6:89","nodeType":"YulIdentifier","src":"2748:6:89"},"nativeSrc":"2748:15:89","nodeType":"YulFunctionCall","src":"2748:15:89"},"nativeSrc":"2748:15:89","nodeType":"YulExpressionStatement","src":"2748:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2783:1:89","nodeType":"YulLiteral","src":"2783:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"2786:4:89","nodeType":"YulLiteral","src":"2786:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2776:6:89","nodeType":"YulIdentifier","src":"2776:6:89"},"nativeSrc":"2776:15:89","nodeType":"YulFunctionCall","src":"2776:15:89"},"nativeSrc":"2776:15:89","nodeType":"YulExpressionStatement","src":"2776:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2646:18:89","nodeType":"YulIdentifier","src":"2646:18:89"},{"arguments":[{"name":"length","nativeSrc":"2669:6:89","nodeType":"YulIdentifier","src":"2669:6:89"},{"kind":"number","nativeSrc":"2677:2:89","nodeType":"YulLiteral","src":"2677:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2666:2:89","nodeType":"YulIdentifier","src":"2666:2:89"},"nativeSrc":"2666:14:89","nodeType":"YulFunctionCall","src":"2666:14:89"}],"functionName":{"name":"eq","nativeSrc":"2643:2:89","nodeType":"YulIdentifier","src":"2643:2:89"},"nativeSrc":"2643:38:89","nodeType":"YulFunctionCall","src":"2643:38:89"},"nativeSrc":"2640:161:89","nodeType":"YulIf","src":"2640:161:89"}]},"name":"extract_byte_array_length","nativeSrc":"2427:380:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2462:4:89","nodeType":"YulTypedName","src":"2462:4:89","type":""}],"returnVariables":[{"name":"length","nativeSrc":"2471:6:89","nodeType":"YulTypedName","src":"2471:6:89","type":""}],"src":"2427:380:89"},{"body":{"nativeSrc":"2969:188:89","nodeType":"YulBlock","src":"2969:188:89","statements":[{"nativeSrc":"2979:26:89","nodeType":"YulAssignment","src":"2979:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"2991:9:89","nodeType":"YulIdentifier","src":"2991:9:89"},{"kind":"number","nativeSrc":"3002:2:89","nodeType":"YulLiteral","src":"3002:2:89","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2987:3:89","nodeType":"YulIdentifier","src":"2987:3:89"},"nativeSrc":"2987:18:89","nodeType":"YulFunctionCall","src":"2987:18:89"},"variableNames":[{"name":"tail","nativeSrc":"2979:4:89","nodeType":"YulIdentifier","src":"2979:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3021:9:89","nodeType":"YulIdentifier","src":"3021:9:89"},{"arguments":[{"name":"value0","nativeSrc":"3036:6:89","nodeType":"YulIdentifier","src":"3036:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3052:3:89","nodeType":"YulLiteral","src":"3052:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"3057:1:89","nodeType":"YulLiteral","src":"3057:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3048:3:89","nodeType":"YulIdentifier","src":"3048:3:89"},"nativeSrc":"3048:11:89","nodeType":"YulFunctionCall","src":"3048:11:89"},{"kind":"number","nativeSrc":"3061:1:89","nodeType":"YulLiteral","src":"3061:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3044:3:89","nodeType":"YulIdentifier","src":"3044:3:89"},"nativeSrc":"3044:19:89","nodeType":"YulFunctionCall","src":"3044:19:89"}],"functionName":{"name":"and","nativeSrc":"3032:3:89","nodeType":"YulIdentifier","src":"3032:3:89"},"nativeSrc":"3032:32:89","nodeType":"YulFunctionCall","src":"3032:32:89"}],"functionName":{"name":"mstore","nativeSrc":"3014:6:89","nodeType":"YulIdentifier","src":"3014:6:89"},"nativeSrc":"3014:51:89","nodeType":"YulFunctionCall","src":"3014:51:89"},"nativeSrc":"3014:51:89","nodeType":"YulExpressionStatement","src":"3014:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3085:9:89","nodeType":"YulIdentifier","src":"3085:9:89"},{"kind":"number","nativeSrc":"3096:2:89","nodeType":"YulLiteral","src":"3096:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3081:3:89","nodeType":"YulIdentifier","src":"3081:3:89"},"nativeSrc":"3081:18:89","nodeType":"YulFunctionCall","src":"3081:18:89"},{"name":"value1","nativeSrc":"3101:6:89","nodeType":"YulIdentifier","src":"3101:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3074:6:89","nodeType":"YulIdentifier","src":"3074:6:89"},"nativeSrc":"3074:34:89","nodeType":"YulFunctionCall","src":"3074:34:89"},"nativeSrc":"3074:34:89","nodeType":"YulExpressionStatement","src":"3074:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3128:9:89","nodeType":"YulIdentifier","src":"3128:9:89"},{"kind":"number","nativeSrc":"3139:2:89","nodeType":"YulLiteral","src":"3139:2:89","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3124:3:89","nodeType":"YulIdentifier","src":"3124:3:89"},"nativeSrc":"3124:18:89","nodeType":"YulFunctionCall","src":"3124:18:89"},{"name":"value2","nativeSrc":"3144:6:89","nodeType":"YulIdentifier","src":"3144:6:89"}],"functionName":{"name":"mstore","nativeSrc":"3117:6:89","nodeType":"YulIdentifier","src":"3117:6:89"},"nativeSrc":"3117:34:89","nodeType":"YulFunctionCall","src":"3117:34:89"},"nativeSrc":"3117:34:89","nodeType":"YulExpressionStatement","src":"3117:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"2812:345:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2922:9:89","nodeType":"YulTypedName","src":"2922:9:89","type":""},{"name":"value2","nativeSrc":"2933:6:89","nodeType":"YulTypedName","src":"2933:6:89","type":""},{"name":"value1","nativeSrc":"2941:6:89","nodeType":"YulTypedName","src":"2941:6:89","type":""},{"name":"value0","nativeSrc":"2949:6:89","nodeType":"YulTypedName","src":"2949:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2960:4:89","nodeType":"YulTypedName","src":"2960:4:89","type":""}],"src":"2812:345:89"},{"body":{"nativeSrc":"3263:102:89","nodeType":"YulBlock","src":"3263:102:89","statements":[{"nativeSrc":"3273:26:89","nodeType":"YulAssignment","src":"3273:26:89","value":{"arguments":[{"name":"headStart","nativeSrc":"3285:9:89","nodeType":"YulIdentifier","src":"3285:9:89"},{"kind":"number","nativeSrc":"3296:2:89","nodeType":"YulLiteral","src":"3296:2:89","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3281:3:89","nodeType":"YulIdentifier","src":"3281:3:89"},"nativeSrc":"3281:18:89","nodeType":"YulFunctionCall","src":"3281:18:89"},"variableNames":[{"name":"tail","nativeSrc":"3273:4:89","nodeType":"YulIdentifier","src":"3273:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3315:9:89","nodeType":"YulIdentifier","src":"3315:9:89"},{"arguments":[{"name":"value0","nativeSrc":"3330:6:89","nodeType":"YulIdentifier","src":"3330:6:89"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3346:3:89","nodeType":"YulLiteral","src":"3346:3:89","type":"","value":"160"},{"kind":"number","nativeSrc":"3351:1:89","nodeType":"YulLiteral","src":"3351:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3342:3:89","nodeType":"YulIdentifier","src":"3342:3:89"},"nativeSrc":"3342:11:89","nodeType":"YulFunctionCall","src":"3342:11:89"},{"kind":"number","nativeSrc":"3355:1:89","nodeType":"YulLiteral","src":"3355:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3338:3:89","nodeType":"YulIdentifier","src":"3338:3:89"},"nativeSrc":"3338:19:89","nodeType":"YulFunctionCall","src":"3338:19:89"}],"functionName":{"name":"and","nativeSrc":"3326:3:89","nodeType":"YulIdentifier","src":"3326:3:89"},"nativeSrc":"3326:32:89","nodeType":"YulFunctionCall","src":"3326:32:89"}],"functionName":{"name":"mstore","nativeSrc":"3308:6:89","nodeType":"YulIdentifier","src":"3308:6:89"},"nativeSrc":"3308:51:89","nodeType":"YulFunctionCall","src":"3308:51:89"},"nativeSrc":"3308:51:89","nodeType":"YulExpressionStatement","src":"3308:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3162:203:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3232:9:89","nodeType":"YulTypedName","src":"3232:9:89","type":""},{"name":"value0","nativeSrc":"3243:6:89","nodeType":"YulTypedName","src":"3243:6:89","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3254:4:89","nodeType":"YulTypedName","src":"3254:4:89","type":""}],"src":"3162:203:89"},{"body":{"nativeSrc":"3418:174:89","nodeType":"YulBlock","src":"3418:174:89","statements":[{"nativeSrc":"3428:16:89","nodeType":"YulAssignment","src":"3428:16:89","value":{"arguments":[{"name":"x","nativeSrc":"3439:1:89","nodeType":"YulIdentifier","src":"3439:1:89"},{"name":"y","nativeSrc":"3442:1:89","nodeType":"YulIdentifier","src":"3442:1:89"}],"functionName":{"name":"add","nativeSrc":"3435:3:89","nodeType":"YulIdentifier","src":"3435:3:89"},"nativeSrc":"3435:9:89","nodeType":"YulFunctionCall","src":"3435:9:89"},"variableNames":[{"name":"sum","nativeSrc":"3428:3:89","nodeType":"YulIdentifier","src":"3428:3:89"}]},{"body":{"nativeSrc":"3475:111:89","nodeType":"YulBlock","src":"3475:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3496:1:89","nodeType":"YulLiteral","src":"3496:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3503:3:89","nodeType":"YulLiteral","src":"3503:3:89","type":"","value":"224"},{"kind":"number","nativeSrc":"3508:10:89","nodeType":"YulLiteral","src":"3508:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3499:3:89","nodeType":"YulIdentifier","src":"3499:3:89"},"nativeSrc":"3499:20:89","nodeType":"YulFunctionCall","src":"3499:20:89"}],"functionName":{"name":"mstore","nativeSrc":"3489:6:89","nodeType":"YulIdentifier","src":"3489:6:89"},"nativeSrc":"3489:31:89","nodeType":"YulFunctionCall","src":"3489:31:89"},"nativeSrc":"3489:31:89","nodeType":"YulExpressionStatement","src":"3489:31:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3540:1:89","nodeType":"YulLiteral","src":"3540:1:89","type":"","value":"4"},{"kind":"number","nativeSrc":"3543:4:89","nodeType":"YulLiteral","src":"3543:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3533:6:89","nodeType":"YulIdentifier","src":"3533:6:89"},"nativeSrc":"3533:15:89","nodeType":"YulFunctionCall","src":"3533:15:89"},"nativeSrc":"3533:15:89","nodeType":"YulExpressionStatement","src":"3533:15:89"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3568:1:89","nodeType":"YulLiteral","src":"3568:1:89","type":"","value":"0"},{"kind":"number","nativeSrc":"3571:4:89","nodeType":"YulLiteral","src":"3571:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3561:6:89","nodeType":"YulIdentifier","src":"3561:6:89"},"nativeSrc":"3561:15:89","nodeType":"YulFunctionCall","src":"3561:15:89"},"nativeSrc":"3561:15:89","nodeType":"YulExpressionStatement","src":"3561:15:89"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"3459:1:89","nodeType":"YulIdentifier","src":"3459:1:89"},{"name":"sum","nativeSrc":"3462:3:89","nodeType":"YulIdentifier","src":"3462:3:89"}],"functionName":{"name":"gt","nativeSrc":"3456:2:89","nodeType":"YulIdentifier","src":"3456:2:89"},"nativeSrc":"3456:10:89","nodeType":"YulFunctionCall","src":"3456:10:89"},"nativeSrc":"3453:133:89","nodeType":"YulIf","src":"3453:133:89"}]},"name":"checked_add_t_uint256","nativeSrc":"3370:222:89","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3401:1:89","nodeType":"YulTypedName","src":"3401:1:89","type":""},{"name":"y","nativeSrc":"3404:1:89","nodeType":"YulTypedName","src":"3404:1:89","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"3410:3:89","nodeType":"YulTypedName","src":"3410:3:89","type":""}],"src":"3370:222:89"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), 32)))\n        }\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461011857806370a082311461012d57806395d89b4114610156578063a9059cbb1461015e578063dd62ed3e1461017157600080fd5b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100e457806323b872dd146100f6578063313ce56714610109575b600080fd5b6100ab6101aa565b6040516100b891906105ce565b60405180910390f35b6100d46100cf366004610638565b61023c565b60405190151581526020016100b8565b6002545b6040519081526020016100b8565b6100d4610104366004610662565b610256565b604051601281526020016100b8565b61012b610126366004610638565b61027a565b005b6100e861013b36600461069f565b6001600160a01b031660009081526020819052604090205490565b6100ab610288565b6100d461016c366004610638565b610297565b6100e861017f3660046106c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101b9906106f4565b80601f01602080910402602001604051908101604052809291908181526020018280546101e5906106f4565b80156102325780601f1061020757610100808354040283529160200191610232565b820191906000526020600020905b81548152906001019060200180831161021557829003601f168201915b5050505050905090565b60003361024a8185856102a5565b60019150505b92915050565b6000336102648582856102b7565b61026f85858561033a565b506001949350505050565b6102848282610399565b5050565b6060600480546101b9906106f4565b60003361024a81858561033a565b6102b283838360016103cf565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610334578181101561032557604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b610334848484840360006103cf565b50505050565b6001600160a01b03831661036457604051634b637e8f60e11b81526000600482015260240161031c565b6001600160a01b03821661038e5760405163ec442f0560e01b81526000600482015260240161031c565b6102b28383836104a4565b6001600160a01b0382166103c35760405163ec442f0560e01b81526000600482015260240161031c565b610284600083836104a4565b6001600160a01b0384166103f95760405163e602df0560e01b81526000600482015260240161031c565b6001600160a01b03831661042357604051634a1406b160e11b81526000600482015260240161031c565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561033457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161049691815260200190565b60405180910390a350505050565b6001600160a01b0383166104cf5780600260008282546104c4919061072e565b909155506105419050565b6001600160a01b038316600090815260208190526040902054818110156105225760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161031c565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661055d5760028054829003905561057c565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105c191815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156105fc57602081860181015160408684010152016105df565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461063357600080fd5b919050565b6000806040838503121561064b57600080fd5b6106548361061c565b946020939093013593505050565b60008060006060848603121561067757600080fd5b6106808461061c565b925061068e6020850161061c565b929592945050506040919091013590565b6000602082840312156106b157600080fd5b6106ba8261061c565b9392505050565b600080604083850312156106d457600080fd5b6106dd8361061c565b91506106eb6020840161061c565b90509250929050565b600181811c9082168061070857607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561025057634e487b7160e01b600052601160045260246000fdfea26469706673582212207b509c9f7ed85ae47ef55597b66d19c44966e88bb7a97ed466af7017a5166b9b64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x171 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x109 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0x5CE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH2 0xCF CALLDATASIZE PUSH1 0x4 PUSH2 0x638 JUMP JUMPDEST PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB8 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB8 JUMP JUMPDEST PUSH2 0xD4 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0x662 JUMP JUMPDEST PUSH2 0x256 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB8 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x638 JUMP JUMPDEST PUSH2 0x27A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE8 PUSH2 0x13B CALLDATASIZE PUSH1 0x4 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xAB PUSH2 0x288 JUMP JUMPDEST PUSH2 0xD4 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x638 JUMP JUMPDEST PUSH2 0x297 JUMP JUMPDEST PUSH2 0xE8 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1B9 SWAP1 PUSH2 0x6F4 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 0x1E5 SWAP1 PUSH2 0x6F4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x232 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x207 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x232 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 0x215 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x24A DUP2 DUP6 DUP6 PUSH2 0x2A5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x264 DUP6 DUP3 DUP6 PUSH2 0x2B7 JUMP JUMPDEST PUSH2 0x26F DUP6 DUP6 DUP6 PUSH2 0x33A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x284 DUP3 DUP3 PUSH2 0x399 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1B9 SWAP1 PUSH2 0x6F4 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x24A DUP2 DUP6 DUP6 PUSH2 0x33A JUMP JUMPDEST PUSH2 0x2B2 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x3CF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x334 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x325 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x334 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x3CF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x364 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x38E JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH2 0x2B2 DUP4 DUP4 DUP4 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH2 0x284 PUSH1 0x0 DUP4 DUP4 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x3F9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x423 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x334 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4CF JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x72E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x541 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x522 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x55D JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x57C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x5C1 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5FC JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x5DF JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x654 DUP4 PUSH2 0x61C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x680 DUP5 PUSH2 0x61C JUMP JUMPDEST SWAP3 POP PUSH2 0x68E PUSH1 0x20 DUP6 ADD PUSH2 0x61C JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6BA DUP3 PUSH2 0x61C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6DD DUP4 PUSH2 0x61C JUMP JUMPDEST SWAP2 POP PUSH2 0x6EB PUSH1 0x20 DUP5 ADD PUSH2 0x61C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x708 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x728 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x250 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x509C9F7ED85AE47EF55597B66D19C44966E88BB7A97ED466AF7017A5 AND PUSH12 0x9B64736F6C634300081C0033 ","sourceMap":"130:211:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;:::i;:::-;;:::i;:::-;;;1194:14:89;;1187:22;1169:41;;1157:2;1142:18;3998:186:23;1029:187:89;2849:97:23;2927:12;;2849:97;;;1367:25:89;;;1355:2;1340:18;2849:97:23;1221:177:89;4776:244:23;;;;;;:::i;:::-;;:::i;2707:82::-;;;2780:2;1924:36:89;;1912:2;1897:18;2707:82:23;1782:184:89;250:89:87;;;;;;:::i;:::-;;:::i;:::-;;3004:116:23;;;;;;:::i;:::-;-1:-1:-1;;;;;3095:18:23;3069:7;3095:18;;;;;;;;;;;;3004:116;1981:93;;;:::i;3315:178::-;;;;;;:::i;:::-;;:::i;3551:140::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3657:18:23;;;3631:7;3657:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3551:140;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;735:10:33;4125:31:23;735:10:33;4141:7:23;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;;:::o;4776:244::-;4863:4;735:10:33;4919:37:23;4935:4;735:10:33;4950:5:23;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;-1:-1:-1;5009:4:23;;4776:244;-1:-1:-1;;;;4776:244:23:o;250:89:87:-;313:19;319:3;324:7;313:5;:19::i;:::-;250:89;;:::o;1981:93:23:-;2028:13;2060:7;2053:14;;;;;:::i;3315:178::-;3384:4;735:10:33;3438:27:23;735:10:33;3455:2:23;3459:5;3438:9;:27::i;8726:128::-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;-1:-1:-1;;;;;3657:18:23;;;10514:24;3657:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10580:37:23;;10576:310;;10656:5;10637:16;:24;10633:130;;;10688:60;;-1:-1:-1;;;10688:60:23;;-1:-1:-1;;;;;3032:32:89;;10688:60:23;;;3014:51:89;3081:18;;;3074:34;;;3124:18;;;3117:34;;;2987:18;;10688:60:23;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10504:388;10415:477;;;:::o;5393:300::-;-1:-1:-1;;;;;5476:18:23;;5472:86;;5517:30;;-1:-1:-1;;;5517:30:23;;5544:1;5517:30;;;3308:51:89;3281:18;;5517:30:23;3162:203:89;5472:86:23;-1:-1:-1;;;;;5571:16:23;;5567:86;;5610:32;;-1:-1:-1;;;5610:32:23;;5639:1;5610:32;;;3308:51:89;3281:18;;5610:32:23;3162:203:89;5567:86:23;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;7458:208::-;-1:-1:-1;;;;;7528:21:23;;7524:91;;7572:32;;-1:-1:-1;;;7572:32:23;;7601:1;7572:32;;;3308:51:89;3281:18;;7572:32:23;3162:203:89;7524:91:23;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;9701:432::-;-1:-1:-1;;;;;9813:19:23;;9809:89;;9855:32;;-1:-1:-1;;;9855:32:23;;9884:1;9855:32;;;3308:51:89;3281:18;;9855:32:23;3162:203:89;9809:89:23;-1:-1:-1;;;;;9911:21:23;;9907:90;;9955:31;;-1:-1:-1;;;9955:31:23;;9983:1;9955:31;;;3308:51:89;3281:18;;9955:31:23;3162:203:89;9907:90:23;-1:-1:-1;;;;;10006:18:23;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10051:76;;;;10101:7;-1:-1:-1;;;;;10085:31:23;10094:5;-1:-1:-1;;;;;10085:31:23;;10110:5;10085:31;;;;1367:25:89;;1355:2;1340:18;;1221:177;10085:31:23;;;;;;;;9701:432;;;;:::o;6008:1107::-;-1:-1:-1;;;;;6097:18:23;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6093:540:23;;-1:-1:-1;6093:540:23;;-1:-1:-1;;;;;6307:15:23;;6285:19;6307:15;;;;;;;;;;;6340:19;;;6336:115;;;6386:50;;-1:-1:-1;;;6386:50:23;;-1:-1:-1;;;;;3032:32:89;;6386:50:23;;;3014:51:89;3081:18;;;3074:34;;;3124:18;;;3117:34;;;2987:18;;6386:50:23;2812:345:89;6336:115:23;-1:-1:-1;;;;;6571:15:23;;:9;:15;;;;;;;;;;6589:19;;;;6571:37;;6093:540;-1:-1:-1;;;;;6647:16:23;;6643:425;;6810:12;:21;;;;;;;6643:425;;;-1:-1:-1;;;;;7021:13:23;;:9;:13;;;;;;;;;;:22;;;;;;6643:425;7098:2;-1:-1:-1;;;;;7083:25:23;7092:4;-1:-1:-1;;;;;7083:25:23;;7102:5;7083:25;;;;1367::89;;1355:2;1340:18;;1221:177;7083:25:23;;;;;;;;6008:1107;;;:::o;14:527:89:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;263:1;273:140;287:6;284:1;281:13;273:140;;;398:2;382:14;;;378:23;;372:30;367:2;348:17;;;344:26;337:66;302:10;273:140;;;277:3;462:1;457:2;448:6;437:9;433:22;429:31;422:42;532:2;525;521:7;516:2;508:6;504:15;500:29;489:9;485:45;481:54;473:62;;;14:527;;;;:::o;546:173::-;614:20;;-1:-1:-1;;;;;663:31:89;;653:42;;643:70;;709:1;706;699:12;643:70;546:173;;;:::o;724:300::-;792:6;800;853:2;841:9;832:7;828:23;824:32;821:52;;;869:1;866;859:12;821:52;892:29;911:9;892:29;:::i;:::-;882:39;990:2;975:18;;;;962:32;;-1:-1:-1;;;724:300:89:o;1403:374::-;1480:6;1488;1496;1549:2;1537:9;1528:7;1524:23;1520:32;1517:52;;;1565:1;1562;1555:12;1517:52;1588:29;1607:9;1588:29;:::i;:::-;1578:39;;1636:38;1670:2;1659:9;1655:18;1636:38;:::i;:::-;1403:374;;1626:48;;-1:-1:-1;;;1743:2:89;1728:18;;;;1715:32;;1403:374::o;1971:186::-;2030:6;2083:2;2071:9;2062:7;2058:23;2054:32;2051:52;;;2099:1;2096;2089:12;2051:52;2122:29;2141:9;2122:29;:::i;:::-;2112:39;1971:186;-1:-1:-1;;;1971:186:89:o;2162:260::-;2230:6;2238;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2330:29;2349:9;2330:29;:::i;:::-;2320:39;;2378:38;2412:2;2401:9;2397:18;2378:38;:::i;:::-;2368:48;;2162:260;;;;;:::o;2427:380::-;2506:1;2502:12;;;;2549;;;2570:61;;2624:4;2616:6;2612:17;2602:27;;2570:61;2677:2;2669:6;2666:14;2646:18;2643:38;2640:161;;2723:10;2718:3;2714:20;2711:1;2704:31;2758:4;2755:1;2748:15;2786:4;2783:1;2776:15;2640:161;;2427:380;;;:::o;3370:222::-;3435:9;;;3456:10;;;3453:133;;;3508:10;3503:3;3499:20;3496:1;3489:31;3543:4;3540:1;3533:15;3571:4;3568:1;3561:15"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"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\":\"value\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestToken.sol\":\"TestToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/test/TestToken.sol\":{\"keccak256\":\"0x1413fe878d8e54eb74b7a69a2a4718c3a5194b9dab97ceb7c865e689ce27d11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddf85f27805d34b35bf7d0f9d4886c36e16e2cd302ce60dc096d7a5ec12f126b\",\"dweb:/ipfs/QmZGqPFQqNGoVQEi3Wzy7H24NieobBnyLFNGkTv6iT1U1i\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":4165,"contract":"contracts/test/TestToken.sol:TestToken","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":4171,"contract":"contracts/test/TestToken.sol:TestToken","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":4173,"contract":"contracts/test/TestToken.sol:TestToken","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":4175,"contract":"contracts/test/TestToken.sol:TestToken","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":4177,"contract":"contracts/test/TestToken.sol:TestToken","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/test/interfaces/IMockTacSmartAccount.sol":{"IMockTacSmartAccount":{"abi":[{"inputs":[],"name":"upgradedToMockBluePrint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"upgradedToMockBluePrint()":"41e15ea0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"upgradedToMockBluePrint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/interfaces/IMockTacSmartAccount.sol\":\"IMockTacSmartAccount\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Structs.sol\":{\"keccak256\":\"0xfb7851f306ce173151d969f81fb110e6cd0387b57f77ac18eb363054da974e25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d52998672fafa5b600dc8fce8063e1a5842d07537d77ec108e2abd6a075eac\",\"dweb:/ipfs/QmYLC32ZAdQrqT98FHUhJ55wT9LCH1Xz7ad9AN2FSFx7ZT\"]},\"contracts/test/interfaces/IMockTacSmartAccount.sol\":{\"keccak256\":\"0x0f0ff34a348f8581a1fd6f8568067ac1759903beadd556732fbf6355505b4bc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8680175fcbb9bee0c963e906ec425b6a371446896309da47048ddbc3f162e9ff\",\"dweb:/ipfs/QmW6wDiLa7bN3dhivFiLKwgU6ovgoVQ39BJjvt4ydid1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}}}}}